КУРС ЛЕКЦИЙ 2011 ТЕХНИКА МИКРОПРОЦЕССОРНЫХ СИСТЕМ (ТМПС) /Разработчик курса: к.т.н., доцент МАНОХИН ВЛАДИМИР АЛЕКСЕЕВИЧ/ КОНЦЕПЦИЯ ЛЕКЦИОННОГО МАТЕРИАЛА Концепция определяет то или иное понимание явления, система взглядов. Для курса лекций это своеобразный угол зрения, под которым построен лекционный материал. ПРЕДМЕТ. Что изучается в курсе? Как видно из названия, его ключевой компонентой являются микропроцессоры. На их основе строятся микропроцессорные системы (МПС). На базе МПС строятся все современные телекоммуникационные системы. Они также применяются во всех областях техники от бытовой до космической. Такое чрезвычайное разнообразие применения связано с тем, что МПС относятся к классу систем реального времени (СРВ). В свою очередь СРВ реализуют принцип, известный как управление. Таким образом, выстраивается логическая последовательность: УПРАВЛЕНИЕ СРВ МИКРОПРОЦЕССОР МПС Вот эти компоненты логической последовательности и будут ПРЕДМЕТОМ изучения в курсе. ЦЕЛИ. С какой целью изучаются эти компоненты? ► В 21-ом веке продолжается резкое ускорением научно - технического прогресса (НТП), связанное с расширением сфер деятельности человека, одним из направлений которого является управление различными процессами. Управление всегда происходит в реальном времени. Современные виды телекоммуникационных систем являются частным случаем СРВ (что и будет показано в курсе лекций). Поэтому инженеру по таким системам необходимо знать основы СРВ. ► Знание основ СРВ расширяет прикладные возможности инженера, позволяя ему достаточно быстро перестроиться на любую техническую разработку, связанную с СРВ. Расширение диапазона типов работ для инженеров 21-го века одна из важнейших задач, ибо высокие темпы развития НТП требуют быстрого переключения в широком спектре деятельности. ► Появление в 70-х годах 20-го века микропроцессоров в корне изменило подходы к проектированию технических систем. Раньше задачей большинства инженеров было проектирование отдельных функциональных блоков из радиоэлектронных компонент типа электронная лампа, транзистор, диод и т.д. (нижний уровень проектирования). Лишь единицы среди инженеров, имеющие большой практический опыт на нижнем уровне, допускались к проектированию верхних уровней, в которых применялись блоки, узлы и вся система в целом. ► Микропроцессоры практически свели к минимуму объемы работы с радиоэлектронными компонентами, заменив их готовыми, функциональными блоками на микросхемной основе, что в свою очередь расширило сферу проектирования инженера. Он уже должен быстро и качественно самостоятельно разрабатывать проблему от ее постановки (идеи) до полной технической реализации. Из этого следует, что инженер должен знать не только микропроцессор, как функциональный элемент, но и представлять, как работают СРВ, в которых он применяется. 1 СРЕДСТВА ДОСТИЖЕНИЯ ЦЕЛЕЙ. Что будет изучаться в компонентах логической последовательности, данной выше? Можно, конечно, рассматривать в данном курсе каждый тип телекоммуникационных систем каждой фирмы на базе микропроцессоров, но это путь в бесконечность, который ничего не даёт, кроме фактов (да есть такие системы, и есть такие). Тогда на чём будет основано изучение указанных выше последовательностей? У французского учёного и философа Рене Декарта (17 век) есть следующее изречение, точно определяющее нужное направление в построении лекционного материала: «уточняйте исходные понятия, и вы избавите мир от великих бедствий». Что для инженера является «исходными понятиями» (базовыми компонентами)? Ими являются принципы построения того, что он проектирует. Принцип - основное, исходное положение какой – нибудь теории, учения и т.д. Применительно к технике – основная идея реализации для класса устройств, представляющая собой обобщение и распространение этой особенности на все типы устройств этого класса. Например, любой тип связи базируется на принципе коммутации абонентов. В основном принципы будут рассматриваться в виде принципиальных (типовых) структурных схем. Что даёт изучение принципов? Французский мыслитель 18-го века Клод Гельвеций ясно и четко сформулировал фундаментальную роль принципов: “Знание некоторых принципов в жизни нередко восполняет знание многих фактов”. Незнание принципов всегда приводит к «изобретению велосипеда», что в условиях рыночной экономики совершенно недопустимо. Но кроме знания принципа необходимо и его понимание (для Гельвеция это было само собой разумеющееся), ибо знать и понимать – не одно и тоже. Знать базируется на запоминании чего – то, понимать что - то - это не только знать это что – то, но и понять смысл того, что узнал. Понимая принципы построения класса устройств, инженер может быстро и качественно создавать конкретную модификацию данного класса, ибо ему не нужно проверять принцип построения модификации. Это резко ускоряет время построения и повышает качество работы. Даже при современных скоростях научно – технического прогресса принципы построения классов изделий массового производства меняются довольно редко, в то время как модификации на базе данного принципа проводятся довольно часто. При изучении какой – либо системы (ее компонент) знание принципов их построения существенно сокращает время ознакомления с любыми ее модификациями. Данный курс лекций можно отнести к направлению, известному как «teach to learn» /самообучение, учить учиться/. Он не даёт готовых рецептов по конкретной телекоммуникационной системе, но существенно упрощает ознакомление с любой такой системой, основанной на микропроцессорах. Исходя из такой трактовки, курс лекция можно назвать: введение в телекоммуникационные системы. СФЕРЫ ДЕЯТЕЛЬНОСТИ ИНЖЕНЕРА К сферам деятельности инженера относятся: проектирование, разработка, эксплуатация, Проектирование - процесс переработки информации для получения знакового описания идеи, замысла (в частности – устройства). Знаковое описание по форме м.б. различно: таблицы, схемы, формулы, словесное описание и т.д. Таким образом, в проектировании задача интерпретируется как информация, которую нужно переработать на основе имеющихся знаний, и решение задачи выразить в форме знакового описания. Разработка материальное воплощение знакового описания (например, реализация спроектированной электронной схемы). Эксплуатация - использование материальной реализации с заданной при проектировании целью. 2 Предмет анализа в проектировании. Базовые компоненты проектирования. Предметом анализа в проектировании является процесс создания изделия, а не само изделие. Например, если разрабатывается какое – либо электронное устройство, то требования к изделию, входные, выходные сигналы и т.д., согласованные с заказчиком, не являются предметом анализа при его проектировании (почему такие данные, а не другие). При проектировании они принимаются как данное, а вот как их реализовать – это уже проектирование. На заводах под проектированием подразумевается технология создания изделий, выпускаемых на них, а сами изделия не являются объектом проектирования (т.е. завод не интересует, почему именно такие изделия и с такими характеристиками даны для производства). В проектировании и разработке процесс разбивается на этапы, каждый из которых разбивается на проектные процедуры (ПП), состоящие из заданной последовательности операций и заканчивающейся проектным решением (ПР). Если такую последовательность обозначить как (ПП -> ПР), присвоив ей название проектная диада, то последовательность таких диад и составляет проектирование (разработку). Длительность и качество проектирования и разработки зависят от количества, длительности и качества разработки в каждой диаде ПП -> ПР. Основной компонентой, с помощью которой реализуется любая диада, являются инструменты, применяемые в ней для работы. Любой инструмент создается с целью сокращения времени и повышения качества работы. Весь класс инструментов можно разбить на два типа: ♦ инструменты действия – обычные материальные инструменты в традиционном их понимании (отвертка, напильник, станки, приборы и т.д.); ♦ инструменты мысли – инструменты, используемые в мыслительной деятельности человека: формулы, таблицы, описательный материал и т.д., а также принципы. Научным направлением, занимающимся технологией автоматизации отдельных компонент процессов проектирования, является САПР (система автоматизации проектирования). ПРИНЦИПЫ РАБОТЫ С ТЕКСТОМ /Данный фрагмент введения написан на основании большого и разнообразного опыта работы разработчика данного курса, один из аспектов которого показал, что большинство инженеров не умеют анализировать техническую литературу./ Логическая структура текста. Информация, излагаемая в источнике информации (книга, статья, курс лекций и т.д.), в структурном плане дается в виде иерархии, например: книга -> главы -> разделы (в главах) -> абзацы (в разделах) -> предложения (в абзацах). Каждая из этих компонент написана с какой – то целью. Но если есть цель, то должны быть даны и средства достижения цели. Таким образом, для анализа структуры текста мы получаем инструмент, который можно формально обозначить как ЦЕЛЬ -> СРЕДСТВО. Цель задаёт ЧТО должно рассматриваться, а средство – КАК это рассматривается. (Такой инструмент можно обозначить и ЧТО -> КАК). Например, содержание любой технической книги строится на таком инструменте. Главы дают средство (как реализуется цель, заданная в названии книги). В главах заголовки разделов дают краткую информацию, как реализуется то, что указано в данной главе книги и т.д. В свою очередь содержание раздела даёт информацию, как реализуется то, что указано в заголовке раздела. В курсе лекций для каждой главы и разделов в них даётся цель. Средством является логическая последовательность излагаемой информации в главе, разделе. В разделах это последовательности крупных фрагментов (от одного до нескольких абзацев). Аналогично ведется анализ абзацев и предложений. Для анализа смысла в предложениях необходимо выделять ключевые слова. 3 Ключевые слова – слова в предложениях, несущие основную смысловую нагрузку. Например, в последнем предложении предыдущего абзаца выделены слова: смысл и ключевые слова. В нём они несут основную смысловую нагрузку (не просто анализ, а анализ смысла, выделять не что - нибудь, а ключевые слова). При работе с лекциями необходимо находить ключевые слова и подчеркивать их, ибо они помогают схватывать смысл текста, а именно на этом и основано не только знание, но и понимание. Из предложений строятся абзацы. Наиболее простой и эффективный прием понимания смысла абзаца – описание абзаца одним предложением. Тренировка в этом вначале трудна и приводит к ошибкам, но эффект получаемый впоследствии велик. Следующим этапом анализа (более сложным, но и более эффективным впоследствии) является построение логической взаимосвязи абзацев. Соседние абзацы могут быть по смыслу: не связаны друг с другом или связаны друг с другом. Также возможна связь абзаца с несколькими абзацами (например, идет описание нескольких вариантов и на каждый вариант описания отводится абзац). Связь абзацев может быть и через несколько абзацев. Компактно визуально представить взаимосвязь абзацев в разделе можно с помощью следующего инструмента: пронумеруйте все абзацы в разделе и затем начертите взаимосвязи номеров абзацев, используя стрелки, показывающие взаимосвязь номеров. Нужно также использовать отчёркивание (подчёркивание) в тексте карандашом на правом поле листа или выписки наиболее заинтересовавших Вас предложений или абзацев. Вообще запомните! Изучать техническую литературу (в том числе и лекционный материал) нужно всегда с карандашом (или фломастером)! Такой подход к анализу текста приучает инженера к логике мышления. Рисунки. Анализ рисунков проводится на основе их описаний. Необходимо обращать внимание на стрелки в рисунках. Нужно всегда объяснить, почему стрелка именно в эту сторону, а, например, не в обратную. Такое объяснение возможно при анализе текста. 4 Глава 1. СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ В главе 1 системы реального времени рассматриваются с позиций структурнологического подхода. В данном подходе система реального времени даётся на уровне различных структурных схем без «физики» реализации их компонент. Фактически здесь рассматриваются общие принципы реализации систем реального времени, что позволяет использовать их при изложении конкретных систем такого типа, построенных на микропроцессорах (вспомните высказывание Гельвеция). 1.1 УПРАВЛЕНИЕ ЦЕЛЬ – дать понятие УПРАВЛЕНИЕ. В данном разделе анализируется первое понятие (управление) из логической последовательности, приведённой в концепции лекционного материала. Управление можно определить как средство достижения каких – то определенных, заданных целей. Из этого следует, что управление, как компонента, появляется тогда, когда задаётся цель. Так как это универсальное определение, то оно применимо к широчайшей сфере деятельности человека. Примеры задаваемых целей: 1. Цель: разработка устройства, определяющего поднятие микротелефонной трубки в стационарном телефоне. 2.Цель: жители данной территории должны быть обеспечены телефонной связью. 3. Цель: продукция предприятия должна быть наилучшего качества при наименьших затратах и т.д. Управление как средство достижения цели Поставленная цель реализуется в объекте управления, т.е. объект является средством достижения цели(ей). В такой интерпретации, введение понятия объект условно «разделяет» окружающий мир как бы на две части: объект и всё остальное (среда) (рис.1.1.1). Но, если объект создан в среде, то естественно, что среда каким – то образом воздействует на объект и объект каким – то образом воздействует на среду. Например, если построена АТС, то жители данного района, подключённые к этой АТС, являются «средой» для неё. Для технических систем средой является то, с чем связан объект по своему входу и выходу. Связь объекта со средой в широкой трактовке это ни что иное, как сигналы на входе объекта (на рис.1.1.1 они обозначены через X), и сигналы, которые должен выдавать сам объект в среду (на рис.1.1.1 они обозначены через Y). X СРЕДА Y СРЕДА ОБЪЕКТ СРЕДА Здесь: X – сигналы из среды на объект; Y – сигналы из объекта на среду. рис. 1.1.1 Выделение объекта из среды На основе графического представления (рис 1.1.1) данного выше абзаца, рассмотрим аналитическую запись. В ней объект управления интерпретируется как преобразователь 5 (F) сигналов из среды X в сигналы Y из объекта. В формальном виде такая взаимосвязь описывается как: Y = F (X) (1.1.1) Высокая абстрактность выражения 1.1.1, подразумевает и широкий диапазон конкретных областей его применения. Примеры. 1. Любое предприятие (или цех в нём) может рассматриваться как F. Тогда X – сырьё (заготовки), поступающее на вход предприятия (цеха), а Y – готовая продукция, производимая предприятием (цехом), которая трактуется как преобразователь сырья (заготовок) в готовую продукцию. 2. Административная организация может рассматриваться как преобразователь F, потока входящих бумаг (X) в поток исходящих бумаг (Y) из неё. /Проанализируйте, используя данный пример, чем является наш университет как административная (а не учебная!) организация по отношению лично к Вам/. 3. Лектор и студенты. Что здесь F, X, Y? / Подсказка: Вы - F/. 4. Если Вы работаете, то представьте Вашу работу через F, X, Y где F, естественно, Вы. Таким образом, можно сказать, что с причинно – следственной точки зрения, главным свойством объекта управления является преобразование каких – то причин X в следствия Y. Примем теперь преобразование за цель (т.е. преобразование трактуется как цель (что), которую нужно достичь) и рассмотрим, как оно должно быть реализовано. Как реализуется управление? Сам по себе объект ничего преобразовывать не будет. Преобразование осуществляется управлением (U) объекта, которое выступает как дополнительное воздействие на объект, в результате которого объект должен достигать запланированной цели. Это означает, что управление U должно так изменять состояния объекта, чтобы оно совпало с заданной для объекта целью. Например, наличие самого предприятия с его помещениями, станками (оборудованием) не приведет к выпуску продукции до тех пор, пока не будет осуществляться управление процессом производства продукции. Какая информация нужна для управления? Для управления необходимо получать информацию о: ♦ состояниях среды (X); ♦ состояниях объекта (Y) /т.е. то, как реагирует объект на среду/; ♦ цели, которую нужно достигнуть. X СРЕДА Y ОБЪЕКТ СРЕДА U УПРАВЛЕНИЕ ОБЪЕКТОМ ЦЕЛЬ рис. 1.1.2 Принцип управления объектом 6 Рис.1.1.2 позволяет уточнить исходное понятие объект, это не просто объекта, а управляемый объект, т.е. компонента на рис.1.1.2, состоящая из двух частей: собственно объект и его управление. Рис.1.1.2 является самой общей схемой управления, применимой к объектам любой природы. При этом X, Y, U можно образно трактовать как: X – возмущения, которые оказывает среда на объект. U – выработка продукта управления. Y – реакция объекта с помощью выработанного продукта управления, на возмущения от среды. Научное понятие управление определяется как функция организованных систем, обеспечивающая: ► сохранение их структуры; ► поддержание режима деятельности на основе реализации программ достижения цели(ей) системы. Дальнейшая детализация рис.1.1.2 проводится в следующем разделе. 7 1.2 СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ ЦЕЛЬ – на основе принципа управления дать понятие «система реального времени» как типовой конструкции, реализующей процесс управления. В этом разделе анализируется второе понятие (СРВ) из логической последовательности, приведённой во введении. Для чего это нужно? В дальнейшем лекционном материале будет показано, что в любой связи базой является система реального времени, а это предполагает идентичность в принципах построения. Следовательно, если Вы будете знать принцип построения СРВ, то те же принципы должны быть и у систем связи. А это уже другой подход к изучению систем связи. Вы будете не только запоминать, как устроено, но и понимать, почему так, а не иначе. Система реального времени. Для введения понятия система реального времени необходимо, прежде всего, уточнить: а что же такое система? Система – любой объект, который одновременно рассматривается как: ♦ нечто, состоящее из множества связанных частей. (При этом связь подразумевается в широком смысле этого слова, например, связь не только через провода, но и волновая (через атмосферу), информативная и т.д.) /Шпаргалка и студент это нечто, связанное между собой?/; ♦ единое, функционирующее целое; (При этом под функционированием подразумеваются различные его варианты (режимы)). Данное определение показывает, что системой может быть только объект, удовлетворяющий всем перечисленным свойствам. Например, разбросанные части какого–либо устройства не будут системой, ибо они не единое целое, не связаны друг с другом и не функционирующее целое. Эти же части, собранные в кучу также не будут системой, ибо хотя они и единое целое (формально - куча), но не связаны друг с другом и не функционируют. Части, соединенные хаотическим образом также не система (хотя и единое целое), ибо такой объект не будет функционировать. / Можете привести свой пример/ Любая система имеет цель (для чего она создана?), а любая цель, как указано в разделе 1.1, должна иметь средства её достижения. В качестве такого средства и выступает система. Для дальнейшего анализа используем рис.1.2.1. Он является аналогом рис.1.1.2, упрощенным без смыслового ущерба. Во – первых, название «управление объектом» заменено на более «техническое» название - «устройство управления» (УУ); во – вторых, снята цель, ибо она, как следует из определения управления, «заложена» в УУ; в – третьих, объединение компонент объект и УУ, принято за систему, ибо функционально эти компоненты представляют собой единое целое; в – четвертых, для упрощения рисунка, среда условно дана в виде одной компоненты. 8 СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ X ОБЪЕКТ УПРАВЛЕНИЯ (ОУ) СРЕДА Y УСТРОЙСТВО УПРАВЛЕНИЯ (УУ) Рис. 1.2.1 Принципиальная структурная схема СРВ Что является главным в работе схемы на рис. 1.2.1? Им является время реакции объекта управления на возмущения, оказываемые средой, ибо если объект не успеет во – время отреагировать на изменение среды, т.е. не выдать Y, то, ни о каком управлении говорить не приходится. Требование необходимости во - время реагировать на возмущения среды является системной характеристикой схемы на рис.1.2.1. Системы, в которых время является системной характеристикой, называются системами реального времени (СРВ) /real-time system/. Схема на рис.1.2.1 является принципиальной структурной схемой СРВ, базирующейся на принципе управления, данном в разделе 1.1. В принципиальном плане, существенная роль времени генерации выходного сигнала связана с тем, что входной сигнал, поступающий из среды, соответствует каким – то изменениям в ней, следовательно, и выходной сигнал, как «отклик» на изменение среды, также связан с этими изменениями. Такая взаимосвязь требует, чтобы в СРВ временна’я задержка от входного сигнала X до выходного сигнала Y (т.е. время реакции) должна быть меньше, чем время изменения состояния среды. В конкретных системах эта принципиальная зависимость может быть выражена различными техническими требованиями, например, в АТС время ответа станции при снятии трубки абонентом заложено в виде определенной временно’й константы. На рис. 1.2.2 дано графическое пояснение этому требованию. 9 Y(t-1) Y’t Yt t1 tож t1’ процесс управления t2 X(t-1) Xt X(t+1) Здесь: X(t-1), Xt, X(t+1) – входные сигналы; Y(t-1) – выходной сигнал (реакция на X(t-1)); Yt – выходной сигнал (необходимая реакция на Xt); Y’t – выходной сигнал (недопустимая реакция на Xt); t2 – время от появления входного сигнала Xt до появления следующего входного сигнала X(t+1); t1 – время от появления входного сигнала Xt до появления выходного сигнала Yt (необходимая реакция СРВ); t1’ – время от появления входного сигнала Xt до появления выходного сигнала Y’t (недопустимая реакция СРВ); tож – время ожидания устройством управления следующего входного сигнала X(t+1) после выдачи ВЫХОДНОГО сигнала Yt. Рис.1.2.2 Графическое пояснение в системной характеристике СРВ На рис.1.2.2 рассмотрены два типа реакций СРВ на появление входного сигнала Xt: необходимая и недопустимая. НЕОБХОДИМАЯ реакция СРВ на входной сигнал Xt. При этой реакции всегда t1< t2, т.е. сигнал Yt должен быть выдан до прихода следующего входного сигнала X(t+1). НЕДОПУСТИМАЯ реакция СРВ на входной сигнал Xt. При такой реакции всегда t1’ > t2. Из рис. 1.2.2 понятна причина такой недопустимости: через время t2 приходит следующий входной сигнал X(t+1), а СРВ еще не выдало реакции Y’t на предыдущий входной сигнал Xt. (Например, устройство с задержкой отработки команды не выдало отработку на пришедшую команду, а уже пришла следующая команда) Из приведенного анализа рис.1.2.2 следует, что скорость работы СРВ должна быть выше скорости изменения функций среды, которыми она управляет. На рис.1.2.2 это требование к СРВ визуально представлено в виде обязательного наличия временно’го интервала tож, при котором СРВ как бы «ожидает» следующий входной сигнал X(t+1), после того, как отработан предыдущий входной сигнал Xt (т.е. выдан Yt)./Подумайте, при tож = 0 СРВ будет функционировать?/ Временно’й интервал tож имеет и еще одну важную функцию, связанную с модернизацией СРВ. Необходимость модернизации всех типов СРВ всегда актуальна уже с момента окончания ее проектирования. Если СРВ разработана так, что tож в системе 10 почти 0, то дальнейшая модернизация может идти только за счет увеличения скорости обработки входных сигналов, что влечет как программные так и, возможно, аппаратные изменения. Если СРВ разработана с запасом tож, то модернизация идет, как правило, за счёт программного обеспечения /при массовом производстве таких СРВ сокращаются затраты на модернизацию. Подумайте, почему?/ Время реакции для разных типов СРВ различно, ибо оно определяется областью процессов управления, т.е.ОУ. Например, при управлении ракетой требуется реакция в миллисекундах, а управление движением судов измеряется днями. СРВ массового обслуживания. В реальном времени можно управлять как одним объектом (например, технологический процесс) так и множеством объектов одной природы (движение самолетов, различные виды связи абонентов, поликлиники, продажа товаров и т.д.). Такие СРВ называются СРВ массового обслуживания. Управление в СРВ может реализовываться на различных принципах, например, механический (клапаны с пружинами, регулирующие давление пара), электрический (электрические пробки в квартирах), световой (фотоэлементы) и т.д. Мы будем рассматривать СРВ, УУ которых реализуются компьютерами. Сферы применения и особенности СРВ. Появление ЭВМ чрезвычайно расширило сферу применения СРВ, которая охватывает: ● промышленное производство и транспорт; ● военное назначение; ● непромышленная сфера (медицина, локальные вычислительные сети, ЭВМ в сетях связи, коммунальное хозяйство, игровые автоматы). Характерные особенности СРВ. 1. Реальный масштаб времени функционирования. 2. Постоянство и цикличность решаемых задач. 3.Случайность поступления внешних воздействий, и, как правило, асинхронность решения функциональных задач. 4. Как правило, длительная непрерывная эксплуатация. 5. Закрытие СРВ для разработчика. 6. Повышенные требования к надежности функционирования СРВ. Типовой инструмент ознакомления с любой СРВ. При начальном ознакомлении с любой СРВ, как правило, возникает вопрос: с чего начать ознакомление? Рис.1.2.1 позволяет создать простой инструмент для начального этапа ознакомления. Согласно схеме рис.1.2.1 ознакомление со структурой любой СРВ должно начинаться с поиска компонент, указанных на рис.1.2.1. Поиск ведется постановкой следующих вопросов: ► ЧТО управляется? Ответом является поиск или указание объекта управления; ► ЧЕМ управляется? Ответом является поиск или указание УУ. 11 1.3 ТИПОВАЯ СТРУКТУРНАЯ СХЕМА СРВ ЦЕЛЬ – детализация принципиальной схемы СРВ. Типовая структурная схема СРВ. В предыдущем разделе указывалось, что в лекционном материале будут рассматриваться СРВ, УУ которых реализовано компьютерами. На рис.1.3.1 дана типовая, структурная схема СРВ, являющаяся детализацией (т.е. отвечающей на вопрос: как реализуется?) принципиальной схемы СРВ на рис.1.2.1. СИСТЕМА РЕАЛЬНОГО СРЕДА Источники возмущений ОБЪЕКТ УПРАВЛЕНИЯ (ОУ) X Д Д Реакции на возмущения П П X ВРЕМЕНИ УСТРОЙСТВО УПРАВЛЕНИЯ (УУ) КОМПЬЮТЕР Ап Y ПО Y Условные обозначения: Д – датчики информации П – потребители информации Ап – аппаратные средства ПО – программное обеспечение X – сигналы от датчиков Y - сигналы к потребителям . Рис. 1.3.1 Типовая структурная схема СРВ При всем разнообразии типов построения Объектов Управления (ОУ) в любом их них присутствуют датчики (Д) и потребители (П) информации. Расположение их на рисунке внутри ОУ показывает только факт принадлежности этих компонент к ОУ, хотя территориально они могут быть разнесены, но обязательно должны быть связаны с ОУ. Среда, как источник возмущения, воздействует на Д, которые преобразуют эти воздействия в сигналы X, поступающие в компьютер. Результатом их обработки в компьютере являются сигналы Y, которые воздействуют на П. В свою очередь П преобразуют их в виде реакций на возмущения. Датчики являются источником динамической информации о среде. Если управляется один объект (например, технологический процесс), то множество Д несет информацию о разных состояниях этого процесса, если управляется множество объектов, то множество Д состоит из подмножеств, каждое из которых несет информацию об одном из управляемых объектов. Необходимо отметить важную особенность Д для СРВ: кроме 12 информации от них СРВ не получает никакой информации о среде. Образно выражаясь, только через датчики УУ СРВ «видит», «слышит» и «чувствует» те компоненты среды, которые воздействуют на ОУ. Характерными особенностями ДАТЧИКОВ являются: 1. Моделирование свойств среды. В датчиках, заданные для них свойства среды, преобразуются (моделируются) в процессы электрической природы, которые затем обрабатываются в компьютере. /Например, цифры номера при наборе их на телефоне/. Из данной особенности следуют особенности 2 и 3. 2. Ограниченность типов моделируемых свойств. Из всех свойств среды Д выбирают только те, на которые они спроектированы. Остальные свойства среды датчики «не замечают». 3. Приближённость моделирования. Свойства, на которые «настроены» датчики, определяются всегда с какой – то точностью (приближенно), удовлетворяющей разработанной СРВ./ Например, определение температуры среды в каком – нибудь технологическом процессе/. Потребители информации являются потребителями воздействий, вырабатываемых компьютером. Их особенности те же, что и у датчиков. Если исходить из определения, что «данные – информация, подготовленная для определенных целей», и учитывая, что в СРВ такие данные идут непрерывно (в реальном времени), удобно называть их «потоками данных от Д или к П». Компьютеры используются в качестве УУ. Компьютеры имеют Аппаратные (Ап) средства и Программное Обеспечение (ПО). Назначение компьютера – обрабатывать потоки данных, поступающих от Д, т.е. программно реализовывать процессы управления на основе этих данных. В результате обработки из компьютера выдаются потоки данных к П. Темп обработки данных, в соответствии с системной характеристикой СРВ, должен быть не ниже скорости изменения среды. ПО разрабатывается на основе алгоритмов процессов преобразования данных от Д к П. Анализ типовой структурной схемы. Несмотря на довольно простую схему рис.1.3.1, ее инженерный анализ представляет значительный интерес, ибо результаты анализа применимы для любой конкретной схемы, базирующейся на данном рисунке. С практической точки зрения наибольший интерес представляют возможные ошибки при проектировании. Ошибки могут быть системного, программного или аппаратного характера. В свою очередь каждый такой тип ошибок можно детализировать по уровням. Например, аппаратные ошибки детализируются на уровне плат – в платах, в соединениях между платами; на уровне устройств – в устройствах, в соединениях между устройствами и т. д. Чем выше уровень ошибок, тем более «дороже» их нахождение и исправление. Следовательно, при разработках СРВ вопросы контроля и диагностики (т. е. поиска ошибок) должны обязательно учитываться. Самыми «дорогими» в разработках СРВ являются ошибки системного уровня, т.е. ошибки самой концепции системы. Можно идеально реализовать нижестоящие уровни, но система не будет работать, если была ошибка на системном уровне. Рис.1.3.1 является типовой, структурной схемой любой СРВ, т. е. конструкцией системного уровня. Рассмотрим типовые ошибки возможные в схеме рис.1.3.1. Наиболее очевидной ошибкой является несоблюдение системной характеристики, анализ которой дан в разделе 1.2. Для Д и П возможны ошибки: ♦ не учтено какое – либо свойство среды, которое на практике все же влияет на поведение ОУ (например; не учтено какое – либо свойство исходного сырья, которое на практике влияет на технологический процесс производства); ♦ точность моделирования в датчиках занижена (завышение точности в принципе лучше); 13 ♦ ненадежность любых компонент системы из – за их низкого качества. В свою очередь вопросы качества в современных рыночных условиях напрямую связаны со стоимостью и правдивостью рекламируемых покупных компонент. Как указывалось, основная цель ПО – преобразование потоков информации от Д в потоки информации к П, поэтому типовой ошибкой является неправильный выбор принципа построения алгоритма преобразования информации с учетом системной характеристики. Разработку ПО необходимо строить на принципе максимальной «мобильности», т.е. возможности при эксплуатации вносить максимальные изменения с минимальными затратами. Принцип управления объектом удобно представлять в виде процесса проталкивания («протолкнуть – толкая, продвинуть»). В зависимости от уровня, на котором рассматривается «проталкивание» в СРВ, объекты (что и чем проталкивается?) различны. На уровне структуры СРВ (рис.1.3.1) «проталкивание» как процесс управления объектом идет от входного сигнала Xi до следующего сигнала X(i+1) (рис.1.3.2), (они «инициаторы» проталкивания). Множество таких сигналов обрабатывается в УУ. Результаты обработки представляются как множество выходных сигналов Ym для потребителей (реакции на возмущение среды). ПОТРЕБИТЕЛИ Сигналы Y для потребителей Y1 Y2 Ym Yp ……….. ………… …………. ………… ПРОЦЕСС УПРАВЛЕНИЯ Сигналы X от датчиков, воспринимающих возмущения от среды X1 X2 X3 ДАТЧИКИ Xi Xj Рис.1.3.2 Принцип «проталкивания» процесса управления на уровне сигналов Xi и Yj Механизм реализации принципа проталкивания. В «проталкивании» процессов управления используется принцип прерывания, при котором очередной входной сигнал Xi прерывает работу УУ для того, чтобы УУ обработало («обслужило») пришедший входной сигнал (т.е. выдало выходной сигнал Yj). Необходимость прерывания обоснована абсолютной важностью обработки каждого входного сигнала (см. рис.1.2.2). Понятие «прерывание», как инструмента для реализации нескольких работ в реальном времени, неосознанно применяется нами в бытовых ситуациях. Примеры. 1. Дома, если у Вас зазвонил телефон, Вы прерываете свою работу и снимаете трубку (обрабатываете входной сигнал в виде телефонного звонка). После разговора Вы возвращаетесь к прерванной работе (если предположить, что разговор не требует каких – то срочных действий). Пример 2. Приготовление обеда на кухне - типичная СРВ массового обслуживания (если этот вопрос попадётся студентке, то она обязана объяснить, используя данный термин, как «работает» такая СРВ (приготовление обеда) при приготовлении первого и второго). В СРВ массового обслуживания также сохраняется требование реализации системной характеристики, но уже для каждого процесса. Такое требование еще более ужесточает требование к скорости обработки входных сигналов 14 каждого процесса, т.к. нужно не только успеть выдать Yj для данного процесса, но и успевать обрабатывать входные сигналы от других процессов в отведенное для них время. Режимы on-line и off-line. С точки зрения таких понятий как процесс и инструмент для реализации процесса, СРВ является инструментом, реализующим различные процессы в реальном времени. Какие могут быть типы процессов в реальном времени? Например, включённый автопилот в самолёте по заданной цели (курсу) в режиме реального времени ведёт самолёт. Другой пример. Корреспондент ведёт репортаж с места события (т.е. в режиме реального времени), но репортаж ведётся в диалоге с диктором телевидения. Процессы такого типа (диалоговые) имеют отдельное название режим online. Режим on-line (в системе) определяется как диалоговый, интерактивный, оперативный режим. /Интерактивный это обозначение, с помощью которого указывается, что для системы или режима работы характерен отклик на вводимые оператором команды/. Фактически это диалоговая работа пользователя с различными удалёнными информационными ресурсами. Если же идёт трансляция, например, какого-либо концерта в режиме реального времени, то это и будет просто прямая трансляция (в режиме реального времени). Режим off-line (автономный) определяется как приём и передача информации без непосредственного участия пользователя. Например, при работе принтера пользователь задаёт команду компьютеру, а тот на запуск принтера и далее принтер сам печатает, выбирая информацию из компьютера. 15 1.4 ПРИНЦИПЫ ПОСТРОЕНИЯ ПРОГРАММНОГО УУ СРВ / Фрагменты в данном разделе, посвящённые фон – неймановской архитектуре очень важны для понимания структуры и работы микропроцессора (раздел 2.1 лекционного курса), ибо, изучая его структуру в разделе 2.1, Вы не только быстро «схватите» принцип его работы (как он работает?), но и будете знать, почему он работает так, а не иначе./ ЦЕЛЬ – дать принцип построения и структуру программного УУ СРВ. Исходная фон неймановская машина. Почти все компьютеры сейчас фон – неймановского типа. Джон фон Нейман – американский ученый венгерского происхождения в 1945г. предложил идею построения вычислительных машин на основе следующей архитектуры (фон – неймановская архитектура) (рис.1.4.1). АЛУ ВВОД ЗУ ВЫВОД ЗУ УУ Рис. 1.4.1 Исходная фон – неймановская машина Фон – неймановская машина имеет следующие части: АЛУ, ЗУ, УУ, ВВОД, ВЫВОД. В АЛУ (Арифметико – Логическом Устройстве) выполняются операции (команды) над двоичным числами; в ЗУ (Запоминающем Устройстве) хранится информация в двоичном коде; УУ (Устройство Управления) управляет работой АЛУ. Устройство ВВОДа осуществляет ввод информации в двоичном виде в машину, а устройство ВЫВОДа – вывод обработанной двоичной информации из машины. Информация ЗУ может быть в виде: ● программ, представляющих собой набор команд, обрабатываемых в АЛУ; ● данных, которые обрабатываются командами. Две фундаментальные идеи фон Неймана определили направление развития вычислительной техники: ♦ программа вводится в машину не через отдельный ввод, а через тоже устройство ввода, через которое в нее поступают данные; ♦ программа имеет для машины тот же вид двоичной последовательности, что и данные, которые с ее помощью обрабатываются. Несмотря на современную очевидность этих идей, тогда (40-е, 50-е годы 20-го века) они были не ясны. Так, в 50-е годы на равных правах с фон – неймановской машиной существовала гарвардская схема, в которой для программ был свой ввод – вывод и хранились они в отдельном от данных ЗУ (чаще всего это было постоянное ЗУ, а ввод – вывод программ состоял в замене одного ЗУ на другое). Советская вычислительная машина МЭСМ (1952г.) имела раздельное ЗУ: 19- разрядные ячейки для программ м 16-ти разрядные для данных. При совмещении путей ввода программ и данных: ■ отпадала необходимость в отдельном ЗУ программ; 16 ■ появилась возможность оперативно изменять программу в ходе счета, модифицируя команды в программе как обычные данные. Сейчас эта возможность не используется, но она существенно повлияла на историю развития вычислительной техники Дальнейшее развитие фон – неймановской машины шло по двум путям ее усовершенствования в виде сращивания: ► АЛУ + УУ; ► ЗУ+ УУ. ►АЛУ + УУ. Идея сращивания АЛУ и УУ привела к идее ЦПр (Центрального Процессора), т.е. такого АЛУ, в котором есть свое местное УУ, выполняющее наиболее оперативные функции (рис.1.4.2). ВВОД ВЫВОД ЦПр ЗУ АЛУ УУ Рис.1.4.2 Типовая фон – неймановская машина В ЗУ хранятся программы и данные в двоичном коде, Программа – упорядоченная последовательность команд, подлежащих обработке в ЦПр. Данные – по отношению к программе это информация, с которой работает программа, получая ее на вводе, обрабатывая и выдавая ее на выходе. В ЗУ программы и данные расположены в ячейках памяти, каждая из которых имеет свой адрес, по которому информация может быть считана или записана в нее. При чтении считывается копия информации, т.е. информация после считывания остается в ЗУ. Таким образом, возможно неограниченное чтение информации из ячеек ЗУ. При записи в ячейку предыдущая информация стирается. Возможность не только чтения, но и записи в ЗУ, дает концепцию модификации данных, т.е. изменения данных в одной и той же ячейке. Таким образом, появляется понятие «переменная», широко используемое в программировании. ЦПр, состоящий из УУ и АЛУ, определяет действия, подлежащие выполнению, путем считывания команд, находящихся в ЗУ. Программа состоит из набора двоичных команд, которые выбираются одна за другой в ЦПр с помощью СчК (Счетчика Команд), находящегося в УУ. Если в СчК занести определенный адрес ЗУ, начиная с которого в ЗУ находится данная программа, то после выполнения очередной команды, СчК автоматически наращивается на 1. Затем идет выборка по этому адресу следующей команды, ее обработка, затем опять СчК = СчК + 1 и так далее до команды стоп. Исключение составляют команды переходов в программах. Они меняют последовательный ход программы. В этих командах при их реализации формируется новый адрес памяти (куда уйти в программе, чтобы продолжить вычисления). Затем этот адрес записывается в СчК и выборка команд идет уже, начиная с этого адреса. Связь ВВОДа / ВЫВОДа с ЗУ показывает необходимость двух видов преобразования информации, приходящей в машину: ♦ сигналы любой физической основы (механические, электрические, световые и т.д.) от устройства ВВОДа должны быть преобразованы в двоичный код, применяемый в ЗУ; ♦ двоичный код в ЗУ, предназначенный для ВЫВОДа должен быть преобразован в сигналы той же физической основы, которые «понятны» устройству ВЫВОДа. 17 В вычислительных машинах последующих поколений развитие фон – неймановской машины шло добавлением спецпроцессоров (для решения узкого, но часто повторяющегося класса задач), периферийным процессором (для управления вводом/выводом). Это позволило разгрузить основной ЦПр, что увеличило скорость его работы. УУ стало снабжаться системой прерывания, таймером (устройством, отсчитывающим время) и т.д. ►ЗУ + УУ. На идее сращивании УУ и ЗУ развивалось микропрограммное управление. Целью такого сращивания – стремление упростить работу. Вместо того, чтобы расписывать каждую команду программы до мелких операций (фрагменты такой росписи были однотипны), лучше заранее записать такую «мелочевку» в память (создать микропрограмму), и при необходимости вызывать нужные наборы микроопераций (т.е. микропрограмм) по известным адресам. Поскольку изменения в таких программах редки, то целесообразно сделать такую память постоянной т.е. только читаемой. Схемная реализация в виде только читаемой памяти дает: ● увеличение быстродействия (подумайте, почему?); ● потенциальное уменьшение сбоев и ошибок (подумайте, почему?). Микропрограммирование позволяет достигать более высокого уровня организации и гибкости при проектировании УУ и создает возможность модификации УУ посредством простого изменения содержимого микропроцессорной памяти (например, организация такой же памяти, но на более быстродействующих элементах) Программная и схемная реализации. Появление возможности программной реализации функций привело к качественным изменениям в технологии проектирования СРВ. Эти изменения связаны с особенностями программной и схемной реализации функций по отношению к: ♦ скорости реакции на возмущения; ♦ гибкости, как способности внесения изменений; ♦ внесению несанкционированных изменений При схемной реализации реакция на возмущения идет на уровне электронных скоростей (электронные схемы), что значительно превышает программную скорость реализации этих реакций. Однако схемная реализация не дает гибкости, ибо любая электронная схема «жесткая». Применение схемной реализации оправдано при очень высоких скоростях реакций (наносекундный диапазон) и потенциальном постоянстве алгоритмов реализации таких реакций (например: радар, ракеты). Внесение несанкционированных изменений в схему возможно только непосредственным контактом со схемой (диверсия). При программной реализации реакций на возмущения скорость их даже при современном промышленном развитии вычислительной техники ниже схемной, но гибкость такой реализации значительно выше. Программные УУ можно в довольно широких пределах корректировать за счет программ, не меняя оборудование СРВ. Именно это качество дало резкий толчок к применению программной реализации, ибо большинство СРВ не требуют реакции на уровне наносекундного диапазона. К сожалению, программная реализация намного более подвержена внесению несанкционированных изменений («хакеры» с их вирусами, выводящими из строя программное обеспечение). 18 1.5 ИНСТРУМЕНТАЛЬНЫЕ ТИПОВЫЕ СТРУКТУРЫ СРВ ЦЕЛЬ – дать типовые структуры СРВ как инструменты (модели) для начального этапа разработок или ознакомления с любой СРВ. В данном разделе показывается, как, объединив схемы из разделов 1.3 и 1.4, получить типовой инструмент (модель) для начального этапа разработок или ознакомления с СРВ. Типовая структура СРВ. На рис.1.5.1 дана типовая структура СРВ, в которой УУ представлено фон – неймановской структурой. Рис.1.5.1 является компоновкой рисунков 1.3.1 и 1.4.2. Программное обеспечение (ПО) располагается в ЗУ. СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ С Р Е ОБЪЕКТ УПРАВЛЕНИЯ УУ СРВ Д ВВОД Д ЗУ Д А ЦПр П П ВЫВОД ВОД Рис.1.5.1 Типовая структурная схема СРВ, в которой УУ представлено фон – неймановской структурой В качестве примера использования схемы рассмотрим принцип работы компьютера по отношению к его клавишам. Клавиши являются датчиками (Д), при нажатии которых в память (ЗУ) записывается двоичный код, соответствующий данной клавише. Запись идет по прерыванию, возникающему при нажатии клавиши. Специальная программная система (операционная система), заложенная в компьютере, по типу прерывания определяет тип и назначение клавиши и вызывает соответствующие программы обработки. Например, если была нажата буква или цифра для высветки на мониторе, то потребителем информации (буквы или цифры) является монитор, на котором с помощью специальных программ высвечивается нажатая буква или цифра. Схема рис.1.5.1 может быть использована как исходный инструмент (модель) для начального этапа разработок СРВ. Например, она показывает важную особенность ввода и вывода информации. При вводе любые виды сигналов от датчиков д.б. преобразованы в двоичный код, применяемый в ЗУ. При выводе информации к потребителям она д.б. преобразована в сигналы, которые «понятны» потребителям. Несмотря на большое разнообразие СРВ, их базовыми компонентами (своего рода фундаментом) являются: ►процесс(ы) в ОУ, (которые подлежат управлению в реальном времени); 19 ►процесс(ы) в реальном времени (управление процессами в реальном времени) ; ►база данных процессов в реальном времени. На основе такого «фундамента» строятся остальные программные компоненты СРВ. Как указывалось в разделе 1.4, практически все компьютеры сейчас фон – неймановского типа. Таким образом, принципиальное единообразие построения УУ (фон – неймановская структура) показывает, что акцент на начальной стадии разработки должен быть сделан не на УУ, а на ОУ (процессов в них), многообразие которых безгранично. Большой класс объектов управления составляют программируемые логические функции, к которым относятся функции, принимающие логические значения: 0 или 1; «да» или «нет» и т.д. Например: установление соединения – логическая функция (абонент поднял / положил трубку; набрал или не набрал цифру; ). проверка устройств – (выданная в устройство команда отработала правильно или не правильно). Эффективным направлением в методологии (совокупность методов (принципов), упрощающих разработку сложных систем) разработки таких объектов является табличный метод проектирования программируемых логических функций (см. лабораторную работу, курсовую или контрольную), который основывается на: ●выделении функций объекта; ●аксиоматизации функций (выделении своего рода «исходных кубиков»), на основе которых разрабатываются функции; ●подборе соответствующего типа таблиц для «связывания» аксиоматических «кубиков»; ●табличном построении выделенных функций; Затем, с учетом реализации функций в реальном времени, разрабатываются: ■ программа обработки выбранной таблицы; ■ программы реализации «исходных кубиков». Типовая структурная схема ПО СРВ. При всем разнообразии процессов управления объектами в СРВ его ПО разделяется на: ►функциональное (ФПО); ► операционная система(ОС). В операционную систему входят средства реализации управления ФПО в реальном времени, которые предназначены для управления ресурсами системы и процессами, использующими эти ресурсы. Наиболее типовыми ресурсами в СРВ являются время и память. В принципиальном плане ОС имеют достаточно типовые проектные решения, ибо принцип управления объектами различной физической природы в реальном времени един («проталкивание» см. разд.1.3). В функциональном ПО реализуются конкретные алгоритмы взаимодействия с объектами управления. Несмотря на большое принципиальное разнообразие функциональных процессов, на уровне «датчики – потребители» ФПО имеет типовую структуру, представленную на рис.1.5.2. Здесь датчики (Д) выдают сигналы (информацию) от объекта управления, а потребители (П) получают сигналы (информацию), выработанную УУ для управления объектом Компоненты ФПО на рис.1.5.2 представлены в виде подсистем: ►ввода информации от Д; ►обработки информации; ►выдачи результатов обработки к П. Подсистема ввода реализует сбор информации от Д. Результаты ее работы используются как входная информация в подсистему обработки информации. 20 Подсистема обработки информации реализует ее обработку в соответствии с программами преобразования информации от Д в информацию для П. Результаты ее работы используются как входная информация в подсистему выдачи результатов. ОБЪЕКТ УПРАВЛЕНИЯ Программное обеспечение СРВ ОПЕРАЦИОННАЯ СИСТЕМА С Р Е Д Д Подсистема ВВОДА Подсистема ОБРАБОТКИ Д А Ф П О П П Подсистема ВЫВОДА Рис.1.5.2 Типовая структура ФПО СРВ Подсистема выдачи результатов выдает информацию потребителям (П). Операционная система управляет компонентами ФПО в режиме реального времени. (Исторически операционная компонента называется «операционной системой», хотя по отношению к СРВ она – подсистема). Схема на рис.1.5.2 может использоваться как исходный инструмент (модель) для начального этапа разработок ФПО. Она не отменяет инженерного мышления, но ориентирует его в определенном направлении. Схема на рис.1.5.2 может использоваться так же и при ознакомлении с ФПО реальной СРВ. В этом варианте она используется как «типовой каркас» ФПО и задача инженера сводится к нахождению и соотнесению компонент реального ФПО и каркаса (принцип «ЧТО есть ЧТО?»). Разработка ПО для СРВ является наиболее сложным типом разработок программного обеспечения (например, решения отдельных задач не временно’го характера). Сложность заключается в системной характеристике СРВ. Нужно не только разработать алгоритмы (и программы по ним) обработки информации от Д и выдачи информации к П, но и «уложить» потоки информации от Д и к П, в, как правило, жесткие временны’е рамки. В настоящее время высокие скорости микропроцессорной техники позволяют существенно упростить задачи такого типа. Применение механизма прерывания в СРВ массового обслуживания для входных сигналов от Д и выдачи сигналов к П зависит от числа датчиков и сложности процесса обработки. При большом числе датчиков и сложной реализации процесса обработки резко усложняется механизм взаимодействия программ в процессе обработки из – за не синхронности появления прерываний. Целесообразность применения прерываний находится в пределах от единиц до 2 – 3 сотен. 21 ГЛАВА 2 МИКРОПРОЦЕССОРЫ ЦЕЛЬ – дать общие принципы построения микропроцессоров и микропроцессорных систем. 2.1 ТИПОВАЯ СТРУКТУРА МИКРОПРОЦЕССОРА ЦЕЛЬ – дать типовую структуру микропроцессора. Первый микропроцессор был создан в 1971 году по идее Т. Хоффа (фирма Intel) для калькулятора. Сейчас микропроцессоры имеют сложную многофункциональную структуру, однако фон неймановский принцип работы остался тем же. Микропроцессор (МП) – полупроводниковый кристалл, содержащий от десятков тысяч до миллионов транзисторов, на котором реализуется ЦПр. Размеры кристалла не превышают нескольких миллиметров. На рис. 2.1.1 дана типовая структура МП. Естественно, реальные МП сейчас более сложны, но все они базируются на типовой структуре, данной на рис.2.1.1. регистр команд рабочие регистры команд Арифметикологическое устройство(АЛУ) имп синхр устройство управления (УУ) Шина управления регистр состояния программный счетчик D7-D0 A15-A0 Шина данных Шина адреса рис.2.1.1 Типовая структура микропроцессора Так как МП реализует ЦПр фон – неймановской структуры, то его обязательными элементами являются УУ и АЛУ. Для связи с другими компонентами МП имеет 3 шины (управления, данных, адреса). Все действия в МП инициируются импульсами 22 синхронизации (на рис.2.1.1 “имп. синхр”), которые позволяют использовать единый стандарт времени для всех элементов в МП. С помощью такого стандарта решается проблема синхронизации взаимодействия элементов. Импульсы задаются с помощью генератора тактовых импульсов (на рис.2.1.1 не показан). Фон – неймановская архитектура определяет и фон – неймановский принцип работы МП. Это означает, что МП работает с командами, которые считываются из памяти, анализируются и выполняются. Последовательность выполнения каждой команды представляется следующим рядом действий. 1. ЦПр выдает адрес следующей команды на шину адреса (А15 – А0). 2. Команда, т.е. содержимое ячейки памяти по выдаваемому адресу, появляется на шине данных (D7 – D0). 3. ЦПр считывает команду с шины данных в регистр команд, анализирует ее и выполняет. Элементы схемы на рис.2.1.1 выполняют следующие функции. Программный счётчик (СчК). Его содержимое помещается на шину адреса для выборки следующей команды из памяти (ЗУ) (память на рис.2.1.1 не показана). Регистр команд (РК). В него помещается выбранная из ЗУ команда. Устройство управления (УУ) дешифрирует команду из РК и инициирует в МП действия, необходимые для ее выполнения. (Для упрощения схемы на рис.2.1.1 связь УУ со всеми компонентами не показана). Рабочие регистры (РР) содержат данные, обрабатываемые командами. Почему появились РР? Неужели нельзя было эти данные, обрабатываемые командами, сразу поместить в ЗУ? Появление РР связано с решением проблемы увеличения скорости работы ЦПр, и, как следствие, времени работы программ. Увеличение скорости зависит от аппаратных средств реализации. Особенно это сказывалось на начальном этапе развития. Электронные схемы, на которых строилось АЛУ, давали высокое быстродействие, но были дороги. Магнитные элементы, на которых тогда строилось ЗУ, имели более низкую скорость, но были дешевле. Их сравнительная дешевизна позволяла увеличивать объемы ЗУ. Компромисс между скоростью и стоимостью был найден в том, что часть памяти, реализовывалась на электронных схемах в виде регистров (РР) и ставилась в ЦПр. Размещение их в ЦПР еще больше увеличивало скорость работы (Подумайте, почему?). В свою очередь, чем бо’льшая часть программы реализуется командами, работающими с регистрами (команды «регистр – регистр»), тем более увеличивается скорость работы программы. В качестве эквивалента названия «рабочие регистры» часто используются названия: регистры, сверхоперативное ЗУ (СОЗУ) (см. разд 2.2). Количество регистров (как правило – 16) было подобрано экспериментально, анализом десятков тысяч программ. Было установлено, что любая задача, в принципе, может быть разложена на достаточно независимые фрагменты с точки зрения пересылок информации, для которых в среднем было достаточно 16-ти ячеек памяти. Вот их то и превратили в регистры. В РР существует специализированный регистр – аккумулятор. Он может накапливать (аккумулировать) результаты отработки команд в АЛУ. Первым применением МП были калькуляторы, в которых часто использовалась последовательное сложение чисел, при этом в аккумуляторе накапливается их сумма. Помимо удобства такой регистр повышает быстродействие для широкого класса задач, связанных с вычислениями. Арифметико – логическое устройство (АЛУ) реализует все операции ЦПр, заданные командами, которые могут быть арифметического, логического типа или управления. Регистры состояния содержит «флажки» (биты), регистрирующие особенности результатов операций АЛУ. Наличие таких флажков упрощает реализацию программ за счет автоматических проверок результатов операций. Например, если 7-ой разряд 23 регистра состояния при значении «1» обозначает, что в АЛУ после реализации арифметической операции получен нулевой результат, то проверка этого разряда после выполнения операции, позволит определить наличие нулевого результата, а не выбирать результат и затем сравнивать его с 0. Длина слова ЦПр определяется числом бит, которые обрабатываются операциями АЛУ. Например, 16-ти битные ЦПр выполняют операции над 16-ти битными числами. МП могут быть 8. 16, 32 - разрядные. Команды. Двоичные команды, с которыми работает АЛУ, называются машинными командами. Они находятся в ЗУ и каждая из них имеет двоичные поля, содержащие: ♦ код выполняемой команды (что делать?); ♦ указания по определению операндов или их адресов (над чем делать?); ♦ указания по размещению получаемого результата (куда поместить результат операции); ♦ для команд перехода указания по определению адреса перехода к следующей команде. Для остальных команд инициируется переход к следующей команде. Выполнение команды в АЛУ подразделяется на две фазы – выборка и исполнение, последовательность которых образует цикл выполнения команды. Если фаза выборки команд из ЗУ одинакова для всех команд, то фаза исполнения может иногда потребовать дополнительных обращений к памяти. Фаза выполнения некоторых команд требует операций с АЛУ (например, операции, выполняемые на регистрах), в других же командах идет обращение к памяти. Поэтому время выполнения команд оказывается переменным и зависит от типа команды. Время выполнения команд определяется количеством временны’х тактов, которые задаются в виде импульсов синхронизации. В компьютерах они задаются тактовой частотой. Пример выполнения команд, различных по количеству тактов. КОМАНДА 1 – прибавить рабочий регистр В к рабочему регистру А (аккумулятор). Такт 1 – выборка команды в ЦПр из ЗУ. Такт 2 – выполнение команды (прибавление содержимого регистра В к рабочему регистру А (аккумулятор)). КОМАНДА 2 – загрузить регистр А из ЗУ. Такт 1 – выборка команды в ЦПр из ЗУ. Такт 2 – выполнение действия 2 (считать из поля команды первую половину адреса памяти). Такт 3 – выполнение действия 2 (считать из поля команды вторую половину адреса памяти). Такт 4 – выполнение действия 3 (считать в регистр А байт данных по сформированному адресу памяти). Таким образом, 2-я команда выполняется в 2 раза дольше, чем 1-я. Приведенный пример показывает, что длина команд – величина переменная. Если в первом примере команда занимает 1 байт, то во втором – 3 байта (второй и третий байты содержат 16-битный адрес памяти, по которому хранится нужное значение данных). Недостаток фон – неймановской машины. На примере потактового выполнения команд рассмотрим принципиальный скоростной недостаток фон – неймановской машины. Наличие одного ЗУ в нем не позволяет осуществить параллельную выборку команд и данных. Так, например, в примере команда 2 на такте 4 можно было бы уже выбрать из ЗУ следующую команду программы (подумайте, почему уже можно?) и тем самым ускорить работу ЦПр, но это невозможно из – за того, что ЗУ участвует в выполнении этого такта. Этот недостаток устранен в гарвардской схеме (разд.1.4), где имеются два ЗУ для данных и команд. В этом случае в такте 4 можно организовать параллельную выборку данных для текущей команды и выборку следующей команды. 24 Принцип гарвардской схемы используется в современных процессорах обработки цифровых сигналов DSP. Системы команд микропроцессоров могут содержать от 50 до нескольких сот типов команд. Несмотря на большое количество команд их можно разделить на следующие варианты: ♦ команды обработки данных, т.е. когда АЛУ изменяет значение данных в результате арифметических или логических операций. ♦ команды переходов, т.е. передачи управления в другую, как правило, не следующую ячейку памяти. ♦ команды пересылки данных, например, между регистром ЦПр и другим регистром ЦПр, ячейкой памяти или каналом ввода – вывода. ♦ дополнительные команды, например, прекращение выполнения программы (команда останов). Режимы адресации. В командах обработки и пересылки данных применяются различные способы обращения к данным, называемыми режимами адресации. Наиболее распространены следующие режимы адресации (для лучшего закрепления представьте их в виде схем): ■ прямая регистровая адресация, когда значение данных находится в регистре ЦПр, а номер этого регистра указывается в одном из полей команды. ■ прямая абсолютная адресация, когда значение данных находится в ячейке памяти, а адрес этой ячейки указывается в одном из полей команды. ■ непосредственная адресация, когда значение данных находится в самой команде. ■ косвенная регистровая адресация, когда значение данных находится в ячейке памяти, адрес этой ячейки занесен в один из регистров ЦПр, номер которого указан в одном из полей команды (т.е. в команде адрес указан не явно, а косвенно через регистр). ■ индексная адресация аналогична косвенной адресации, но для вычисления адреса памяти смещение, которое задаётся в одном из полей команды, прибавляется к содержимому специального индексного регистра, номер которого указан в одном из полей команды. МП с точки зрения программиста. Любая сфера деятельности человека основана: ♦ на каких – то исходных компонентах («кубиках»); ♦ правилах их компоновки для получения заданного результата. При создании программ используются различные языки программирования высокого или низкого уровня. Принципиальное различие между уровнями языков можно представить аналогией в строительстве зданий. Здания можно построить из кирпичей или из специальных блоков. Из кирпичей можно построить любое здание (например: промышленное, жилое). Из специализированных блоков можно построить, и быстрее чем при использовании кирпичей, только специальный класс зданий, для которых эти блоки разработаны. Например, если блоки разработаны для строительства промышленных зданий, то ясно, что они не подойдут для строительства жилого здания. Таким образом, использование специальных блоков ускоряет процесс постройки, но ограничивает класс таких построек, применение же кирпича, как универсального элемента строительства, позволяет строить любое здание, но в более продолжительное время. Аналогичная ситуация и с языками программирования. В языках программирования низкого уровня (ассемблеры) в мнемонической форме (т.е. в форме, привычной для человеческой записи, а не машинной, двоичной) записываются команды, которые затем преобразуются (путем трансляции программы) в машинные коды (двоичные комбинации, записываемые в ячейки памяти). Одна команда ассемблера, как правило, транслируется в одну машинную команду. Такие языки позволяют реализовать любые программы, но время их разработки увеличивается по сравнению с использованием языком высокого 25 уровня. Языки программирования высокого уровня ориентированы, как правило, на отдельные классы задач. Разработка программ данного класса при этом упрощается, но использование такого ориентированного языка в других классах задач или не эффективно или невозможно. В языках высокого уровня один оператор (команда) транслируется в несколько (6 – 10) машинных команд. В этом отношении разработка компонент СРВ, в которых требуется минимальное количество машинных команд (с целью быстрейшей реализации их функций), предпочтительна на ассемблере (например, частей операционной системы). На уровне машинных команд при создании программ, программист абстрагируется от всего многообразия элементов МП и имеет дело только с компонентами в виде: ● множества ячеек ЗУ, в которых находятся данные и программы; ● ограниченное число программно – доступных регистров (а где они находятся?). Эти регистры имеют имена, применяемые в командах и их содержимое, также как и ячеек памяти, может быть прочитано, изменено по желанию программиста. ● команд, из которых строятся программы. Причиной интенсивного развития техники МП является то, что МП позволили революционным путем (а не эволюционным, как ранее) решить две задачи: ♦ резко увеличить скорости обработки информации и объемы памяти в вычислительных машинах; ♦ столь же резко уменьшить размеры вычислительных машин, их стоимость и энергопотребление. Следствием этого является существенное расширение круга лиц, использующих компьютеры. Для них характерно требование к ним на уровне бытового прибора, т.е. простой и надежный интерфейс (способ взаимодействия) человека с компьютером. Типичным примером разработки на уровне бытового прибора является телевизор. Любой пользователь может настроить его по всем заданным в нём параметрам, хотя никто не может сказать (за редким исключением); как он работает? Дешевизна МП расширила круг их использования от космической техники до бытовой. Такой широкий диапазон применения включает и применение МП в качестве УУ СРВ. 26 2.2 МИКРОЭВМ НА БАЗЕ МИКРОПРОЦЕССОРА ЦЕЛЬ – дать типовую, структурную схему микроЭВМ и провести её анализ. Рассмотренный в разделе 2.1 МП, является основной компонентой («мозгом») при построении более крупной конструкции – микроЭВМ (Электронной Вычислительной Машины). МикроЭВМ – вычислительная система, в которой используется ЦПр в виде МП. В свою очередь микроЭВМ является базовой компонентой МикроПроцессорной Системы (МПС) (разд.2.3), принцип построения которой аналогичен построению СРВ (см. рис.1.5.1). /Необходимо отметить, что современные микроЭВМ отличаются высокой сложностью, но базируются на структуре, рассматриваемой ниже./ На рис.2.2.1 дана типовая структура микроЭВМ. /Периферия – обобщенное обозначение внешних устройств, включая датчики (Д) (сенсоры) и потребители (П) по рис.1.5.1. Они не входят в состав микроЭВМ, и на рисунке даны для наглядности того, к чему подключается микроЭВМ/. ПЕРИФЕРИЯ ВНЕШНЕЕ УСТРОЙСТВО ВВОДА ДАННЫХ МИКРОЭВМ Ш И Н А У П Р А В Л Е Н И Я ВНЕШНЕЕ УСТРОЙСТВО ВЫВОДА ДАННЫХ А Д Р Е ВВОД С Н А Я ЦПр Ш И Н ЗУ А Ш И Н А Д А Н Н Ы Х ВЫВОД Рис.2.2.1 Типовая структура микроЭВМ Типовыми компонентами микроЭВМ являются микросхемы: ВВОД, ВЫВОД, ЦПр, ЗУ, которые связаны между собой шинами. ШИНА – среда передачи сигналов, к которой может параллельно подключаться несколько компонент и через которую осуществляется обмен данными. Физически она представляет собой группу проводов, обеспечивающих параллельное соединение компонент. (Подумайте, почему параллельное, а не 27 последовательное?). Такую структуру можно расширять в довольно широких пределах лишь незначительным усложнением внутренних связей. /Вместо термина шина иногда употребляется термин магистраль/. Адресная шина предназначена для выборки информации из ячеек памяти в ЗУ, или из микросхем ВВОДА / ВЫВОДА. Адрес задается из ЦПр. Шина данных. В неё пересылается информация, выбранная по заданному адресу. Информация может быть от ЦПр к ЗУ или ВЫВОДУ либо от ВВОДА или ЗУ к ЦПр./Попробуйте представить это предложение в виде схемы со стрелками «от», «к»/. Управляющая шина предназначена для управления ЦПром всеми компонентами микроЭВМ. При всем многообразии управляющих сигналов их можно разделить на две группы: ♦ сигналы готовности ЦПр выполнить очередную пересылку данных; ♦ запросы ВВОДа / ВЫВОДа и ЗУ к ЦПр. ЗУ. Имеет двоичную (0,1) структуру разрядов (бит), объединённые, как правило, в 32х битные слова (возможны варианты: 64, 16, 8). Объёмы ЗУ определяются в: ● байтах: 1байт = 8 бит. 32-х битное слово содержит 4 байта; ● килобайтах (К): 1К = 1000 байт. Пример: память 256 К; ● мегабайтах (М): 1М = 1000 К. Пример: память 400 М: ● гигабайтах (Г): 1Г = 1000 К. Пример: память 5 Г. Типы памяти ЗУ: ♦ сверхоперативная (СОЗУ) - информация может, как считываться, так и записываться; ♦ кэш – память - информация может, как считываться, так и записываться; ♦ оперативная (ОЗУ) – информация может, как считываться, так и записываться; ♦ постоянная (ПЗУ) – информация может только считываться; ♦ дисковая - информация может, как считываться, так и записываться; ♦ флеш – память - информация может, как считываться, так и записываться. СОЗУ представляет собой набор рабочих регистров (РР) в МП (см. разд.2.1). и является самой быстродействующей памятью. Кэш – память является переходной между СОЗУ и ОЗУ по быстродействию. Она предназначена для выравнивания степени доступности этих двух типов памяти за счёт временного хранения содержимого ячеек памяти. Реализуется в микропроцессорах в виде блока памяти от единиц К и более. В ОЗУ размещаются программы, с которыми работает ЦПр. ПЗУ применяется для создания микропрограмм или записи без чтения (см. разд.1.4). К дисковой памяти относятся жёсткие диски, дискеты и диски. В отличие от ОЗУ, которое находится в компьютере постоянно, дискеты и диски съёмные, т.е. могут быть вставлены в компьютер или вынуты из него. Такое их свойство позволяет иметь неограниченную память. Жёсткие диски. В компьютерах по объёму являются его основной памятью (от десятков до сотен Гбайт). Жёсткий диск нельзя снимать, ибо его снятие полностью лишает компьютер базового программного обеспечения. Дискеты. Их объём в пределах от 1,4 мб до десятков и сотен мегабайт. Диски CD – R,RW / Compact (компактный) Disc (диск) Read (читать) Write (писать)/. Компакт - диск представляет собой лазерную пластину с записанной цифровым способом информацией, чтение или запись на которую осуществляется миниатюрным лазером. Из CD-R в плеерах и компьютерах можно только считывать. На CD-RW, при наличии специальной программы в компьютере и соответствующего устройства, можно как считывать, так и записывать. Объёмы память в CD – сотни мегабайт. 28 Диски DVD. Отличаются ещё большей памятью по сравнению с CD, что определило их как носителей видеоинформации (кинофильмы). Флэш – память (флэш – карта, жаргонное название флэшка) отличается большой компактностью (размер - с тюбик губной помады), большими объёмами памяти (сотни мегабайт), способностью долго хранить информацию и более стойкой к механическим нагрузкам (по сравнению с дискетами). Стоимость их непрерывно снижается, поэтому они постепенно вытесняет дискеты (В Англии в 2006 году выпуск дискет прекратили). Они появились в середине 80-х годов, но их массовое производство началось с появления цифровых фотокамер, требующих больших объёмов памяти и компактности. Они используются в MP3 – плеерах, карманных компьютерах, мобильных телефонах, GPSнавигаторах (/джи –пи - эс/. (Навигатор – карманный прибор для определения местоположения его пользователя в любой точке земного шара по спутнику. Российская система определения местоположения для гражданских пользователей ГЛОНАСС будет внедряться с 2008 года). Ввод / Вывод. Микросхемы ввода / вывода данных применяются для подключения микроЭВМ к разнообразным периферийным устройствам (принтер, дисплей, линии связи с другими компьютерами, приборами или электрическим оборудованием в системах управления, различными индикаторами и т.д.). Работа по приёму и выводу данных в микросхемах ввода / вывода осуществляется через порты ввода / вывода. /Аналогия с любым морским портом, в который корабли прибывают (ВВОД), или из которого они уплывают ВЫВОД/. ПОРТ – аппаратура сопряжения, содержащая цепи управления и позволяющая подключать устройства ввода / вывода к внутренней шине микропроцессора. Один и тот же порт может переключаться на ввод или на вывод. Основу портов составляют специальные ячейки памяти, в которые данные “входят” (ввод) из периферии, или “выходят” (вывод) в периферию. Таким образом, «общение» компьютера с «внешним миром» (периферией) происходит через порты ввода/вывода. /Учитывая приведённую выше аналогию с традиционным понятием «порт», «общение», например, между собой нескольких компьютеров можно представить как «передвижение, поток» байтов информации ( по аналогии с морским портом «судов») от порта (компьютера) к порту (компьютеру)/. Микросхемы ввода / вывода имеют, как правило, число портов от единиц до нескольких сотен, которые объединены в более крупные компоненты разной разрядности. Применение портов ввода / вывода многообразно. В основном это подключение разнообразных периферийных устройств СРВ, к которым относятся и компьютеры, аналого–цифровые, цифро–аналоговые преобразователи вплоть до управления различными индикаторами. Ввод / вывод может быть последовательным или параллельным. Параллельный. При передаче параллельным кодом на линию данных (D0 – D7) подается (или считывается) байт данных, что обеспечивает высокую скорость работы такого порта, но требуют бо’льшего расхода материалов (8 проводов вместо одного). Последовательный. В нем 8-битные данные передаются к периферии по одной линии. Хотя при этом достигается экономия физических соединений, недостаток такой организации заключается в уменьшении скорости передачи. Такая передача применяется для подключения к низкоскоростным, периферийным устройствам. Типичным представителем порта последовательной передачи данных является порт RS – 232). Он широко применяется в компьютерах, где используется, например, для подключения: мыши, принтеров, сканеров, модемов передачи данных по телефонным линиям, персональных компьютеров. Более современным типом порта является порт USB (ю-эсби), обеспечивающий высокую скорость и, благодаря развитому программному 29 обеспечению, широкие возможности работы с ним. Интерфейсы USB постепенно заменяют все «классические» интерфейсы. На рис.2.2.2 показана принципиальная типовая структура микросхемы ввода / вывода. Возможны следующие режимы работы ввода / вывода: 1. Работа под управлением ЦПр 2. Прямой доступ к памяти. выбор кристалла считывание / запись линии адреса A0 A1 линии данных D0 D1 D2 D3 D4 D5 D6 D7 П О А Р Т Е МИКРО - П СХЕМА О B Р ВВОД / Т ВЫВОД ПОРТ = 8 бит П Е Р И Ф Е Р И Я П О C Р Т к ЦПр к периферии Комбинации сигналов управления по линии адреса А0 А1 : 0 0 – выбор порта A 1 0 – выбор порта C 0 1 – выбор порта B рис.2.2.2 Принципиальная типовая, структурная схема микросхемы ВВОД / ВЫВОД Работа под управлением ЦПр. При сигнале выбор кристалла осуществляется ввод / вывод данных из / в периферию. Сигнал считывание / запись указывает на тип работы (ЧТО делать? – читать / записывать). Комбинации на шинах линии адресов (А0 и А1) дают указания из какой внешней периферии (портов A, B, C) читать или записывать данные. После записи данных в порт идёт прерывание, по котором ЦПр узнаёт о пришедшей информации. Порт имеет буфер, в который данные записываются. Буфер может записывать до нескольких десятков данных, после записи которых следует прерывание, показывающее ЦПр, что порция передаваемых данных принята. Прямой доступ к памяти (ПДП). В этом режиме работы передача данных осуществляется между памятью и периферией без участия ЦПр. Схема ввод / вывода дает команду ЦПр освободить шины (данных, адреса, две управляющие). Когда ЦПр отключается от шин, схема ввода / вывода сама адресует память и передает байты данных. Такой способ эффективнее передачи каждого байта под управлением ЦПр, и он применяется при передачах больших массивов данных. 30 2.3 МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ ЦЕЛЬ – дать типовую схему микропроцессорной системы, пример, как принцип разработки программы для МПС Микропроцессорные системы (МПС) Принцип. В методологическом аспекте МПС является типичной СРВ, в которой УУ реализовано в виде микроЭВМ. МикроЭВМ функционирует по принципу фон неймановской машины. Программа и данные загружаются в память. ЦПр загружает СчК и по его значению считывается первая команда программы, которая затем выполняется в ЦПр. Затем осуществляется переход к следующей команде и т.д. до команды стоп. Цель программ, разработанных в МПС, обеспечить обработку данных, принятых на вводе и в соответствии с системной характеристикой СРВ выдать результаты обработки на вывод. Периферия состоит из внешних устройств ввода данных и внешних устройств вывода данных. Каждое устройство имеет в микропроцессоре свой порт ввода / вывода. Принцип работы МПС полностью соответствует принципу работы СРВ (см. разд.1.5). В инженерной практике (особенно для начинающих работать с микропроцессорами) желательно иметь типовую схему, позволяющую представить простую МПС до её конкретной разработки. На рис.2.3.1 дана такая типовая схема, с помощью которой можно «мысленно» собрать простую МПС. (На рисунке дана упрощенная схема микропроцессора с рис.2.2.1, которая обычно применяется в технической литературе). М П С сигналы от Д . . . УПРАВЛЯ ЕМЫЙ ОБЪЕКТ П . ВВОД датчиков ЦПР З У сигналы к ВЫВОД потребителям . . Рис. 2.3.1 Типовая схема МПС Для МПС, включающих несколько микропроцессоров, она может использоваться как типовой модуль (кубик), из которых «собирается» сложная МПС. Какие компоненты нужны для сборки МПС по рис.2.3.1? Из рисунка видно, что необходимы следующие компоненты: ►микроЭВМ (микропроцессор); ►объект управления, в котором есть: ●датчики (сенсоры) (Д), с которыми микроЭВМ связана через порты ввода; ● потребители (П), с которыми микроЭВМ связана через порты вывода. 31 Затем, на основе такой принципиальной типовой схемы, идёт конкретная разработка МПС. Пример, как принцип разработки программ для МПС. Общую методологию разработки алгоритмико–программного обеспечения покажем на примере разработки программы для МПС для управления устройством, имеющим входной регистр. На рис.2.3.2 дана типовая структурная схема МПС, в которой микропроцессор управляет устройством, имеющим на входе регистр. /Так как повсеместно в МПС оперируют с портами ВВОДА и ВЫВОДА как более конкретными компонентами, то начиная с этого рисунка, микросхемы ВВОД и ВЫВОД будем обозначать как соответствующие порты ВВОДА или ВЫВОДА/ М П С микропроцессор Порт ВВОДА Ц П Р (вход) регистр УСТРОЙСТВО З У выход Порт ВЫВОДА Рис.2.3.2 Типовая схема МПС для управления устройством, имеющим на входе регистр Как работает такая МПС? На вход устройства (в его регистр) подается двоичная команда из микропроцессора, которую устройство отрабатывает, реализуя заданную ему функцию. Отработка команды в устройстве фиксируется в виде состояния, например, контрольных точек (КТ) устройства (на рис. 2.3.2 они условно даны как выход). Эти состояния записываются в соответствующий порт, который закрепляется за этим устройством. Как реализуется управление устройством в МПС по рис.2.3.2?. Для этого разрабатывается программа, которая после её запуска: ♦ формирует очередную команду в устройство и записывает её в порт вывода; ♦ устройство, получив команду, отрабатывает её и выдаёт состояния КТ (реакция устройства) после отработки выданной команды, которые записываются в порт ввода; ♦ программа анализирует состояния КТ. Анализ идет сравнением считанного и эталонного состояний КТ, который находится в программе в виде константы; ♦ реализует действия в зависимости от результата сравнения, т.е. осуществляется переход к соответствующей части программы, реализующей данное действие. Разработанная программа записывается в ЗУ микропроцессора. Далее фон неймановский принцип работы с реализацией указанных функций для каждой команды. 32 2.4 СИСТЕМЫ СВЯЗИ КАК СРВ ЦЕЛЬ – показать идентичность различных типов связи основным принципам построения СРВ. Рассмотрим типы связи в понятиях СРВ, данных в главе 1 и разделах 2.1, 2.2, 2.3. Итак, режим реального времени, это режим работы вычислительной системы, при котором обработка данных о процессах, происходящих во внешней среде, происходит в том же темпе, что и сами процессы. Исходя из данного определения, вычислительная система является инструментом в виде СРВ. Назначение такого инструмента, как указано в определении, обеспечивать обработку данных о процессах, происходящих во внешней среде. Для систем связи внешней средой являются абоненты, которым нужно: ♦ соединиться друг с другом; ♦ с целью передачи различных видов информации (разговор, данные, изображение). Любой тип связи в понятиях СРВ, рассматривается как система массового обслуживания реального времени. Так как все виды связи являются частным случаем СРВ, то все рассмотренные в главе 1 свойства СРВ, принадлежат и системам связи. Так, например, принцип управления соединениями абонентов состоит в «проталкивании» процессов соединения от одного действия до следующего действия. Абонент «руководит» действиями, а система связи «реализует» руководство, выдавая соответствующую информацию абоненту и создавая для него разговорный тракт. Устройство управления (УУ). Несмотря на разнообразие программных УУ (компьютеров) в системах связи, все они базируются на фон – неймановской архитектуре (см. рис.1.5.1 компонента УУ СРВ). Количество компьютеров в УУ варьируется от единиц до десятков. Объектом управления является оборудование в различных типах связи, назначение которого довольно разнообразно, но конечная цель состоит в создании физических каналов связи (коммутации) абонентов. Для работы с ним используются команды, которые посылаются в него, и на которые оно реагирует. Команды представляют собой двоичные последовательности, формируемые в соответствующих программах (см. раздел 2.3). На основе раздела 2.3 можно обобщить программную начинку МПС на уровне портов ввода/вывода в виде следующей структурной схемы (рис.2.4.1). порты ВВОДА комплексы программ порты ВЫВОДА Рис.2.4.1 Обобщённая структурная схема программной начинки МПС на уровне портов ввода/вывода Из схемы на рис.2.4.1 видно, что любая МПС: ■ с портов ввода принимает информацию; ■ комплекс программ, находящийся в ней, перерабатывает её; ■ и выдаёт переработанную информацию в порты вывода. 33 На вопрос «а что же входит в комплексы программ?» даёт ответ рис.1.5.2. Объединив рис.1.5.2 и 2.4.1 получаем рис.2.4.2. Здесь порты ввода/вывода условно обозначены через П. КОМПЬЮТЕР операционная система П подсистема ВВОДА УПРАВЛЯЕМЫЙ подсистема ОБРАБОТКИ П ОБЪЕКТ подсистема ВЫВОДА Рис.2.4.2 Типовая структура МПС как детализация структуры СРВ /Рисунок 2.4.2 даёт наглядное подтверждение того, зачем нужно знать и понимать, что такое СРВ? Зная и понимая типовые структуры СРВ, не так уж трудно разработать конкретную структуру конкретной МПС./ Учитывая, что компьютеры общаются между собой через порты, то разговорные тракты, проходящие через них, можно представить в виде (рис.2.4.3). На рис.2.4.3 П – порты, Т - терминалы (телефонные аппараты, сотовые телефоны, компьютеры). компьютер 1 Т П П компьютер 2 П П компьютер n П П Т Рис.2.4.3 Передача информации в различных типах связи Как указано в разделе 1.5 базовыми компонентами (своего рода фундаментом) СРВ являются: ►процесс(ы) в ОУ, (которые подлежат управлению в реальном времени); ►процесс(ы) в реальном времени (управление процессами в реальном времени) ; ►база данных процессов в реальном времени. На основе такого «фундамента» строятся остальные программные компоненты СРВ. В системах связи такими процессами являются соединения между абонентами. Следовательно, всё алгоритмико-программное обеспечение систем связи имеет эти же компоненты. Примеры связи как СРВ. Рассмотрим АТС, сотовую связь, IP-телефонию и сети передачи данных в понятиях СРВ. АТС. Датчиками и потребителями в АТС являются стационарные телефоны, в сотовой связи – сотовые телефоны, в IP-телефонии – компьютеры, в сетях передачи 34 данных - терминалы. Средой являются абоненты, которые работают со своими аппаратами, выдавая из них сигналы Xi и получая сигналы Yj. Например, сигналами Xi для АТС могут быть поднятие и опускание трубки, набор номера; для сотовой связи - различные манипуляции с клавишами сотового телефона; для IP-телефонии - различные манипуляции с клавишами компьютера. Сигналами Yj для АТС являются различные сигналы из АТС (например, сигнал «занято»); для сотовой связи – подаваемые на сотовый телефон голосовые, звуковые сигналы или информация на дисплее; для IP-телефонии – те же типы сигналов и информации, что и на сотовый телефон, но подаваемые на компьютер. Назначение всех сигналов Xi, Yj в различных типах связи – установление физического соединения между абонентами в режиме реального времени. После установления соединения абоненты обмениваются информацией в виде речи, данных, изображения. В терминах СРВ можно сказать, что после установления соединения абоненты работают как датчики и потребители, но сигналами для них является их речь (данные или изображение), передаваемая в режиме реального времени. Типовая, структурная схема АТС в понятиях СРВ дана на рис.2.4.4. С абонент ТА Xi Yj Р Е Д А абонент ТА А Т С ОБЪЕКТ УПРАВЛЕНИЯ Yj (КОММУТАЦИОННОЕ ОБОРУДОВАНИЕ) Xk от других АТС Ym к другим АТС УСТРОЙСТВО УПРАВЛЕНИЯ Рис.2.4.4 АТС как система реального времени Условные обозначения на рис.2.4.4: ТА – телефонные аппараты; Xi - сигналы и информация от абонентов в АТС; Yj - сигналы и информация от АТС к абоненту; Xk – сигналы и информация от других АТС; Ym – сигналы и информация к другим АТС. 35 Всё изложенное выше действительно для сотовой связи и IP-телефонии. Сотовая связь. На рис.2.4.5 дана типовая структурная схема сотовой связи. ЦК С абонент МТ Xi, Yj сота а Объект управления Р абонент МТ Е Xi, Yj сота а Устройство управления ТфОП ЦК Д абонент МТ сот а А абонент МТ сот а Объект управления Устройство управления Рис.2.4.5 Типовая структурная схема сотовой связи как СРВ Условные обозначения на рис.2.4.5: МТ – мобильные телефоны пользователей; Сота – условное обозначение компоненты (ячейки), каждая из которых обслуживается отдельной базовой радиостанцией небольшой мощности, находящейся в центре ячейки; Xi - сигналы и информация от мобильного телефона; Yj - сигналы и информация от соты к мобильному телефону; ЦК – центр коммутации (на рисунке показано два центра коммутации) ТфОП – телефонная сеть общего пользования 36 IP-телефония. На рис.2.4.6 дан один из вариантов IP-телефонии. телефон шлюз компьютер интернет телефон шлюз компьютер Рис.2.4.6 Один из вариантов IP-телефонии IP-телефония это технология, позволяющая использовать Интернет для ведения телефонных разговоров в режиме реального времени. /Аббревиатура IP расшифровывается как Internet Protocol – межсетевой протокол/. Использование Интернет позволяет резко удешевить телефонные разговоры, особенно междугородные и международные. Для организации связи используется специальное устройство – шлюз (gateway). Шлюз, в его обычном понятии, представляет устройство, для «согласования» разноуровневых водных поверхностей, с целью проводки судов. В него входят (выходят) суда различного типа. По аналогии и здесь, название «шлюз» используется как стыковочное по электрическим и логическим характеристикам устройство. Можно сказать, что в нем проводится перекодировка разноуровневых характеристик сигналов из различных не IP сетей, подключаемых к шлюзу. При этом сигналы приводятся в виду, «понятному» в IP сети. Таким образом, общий принцип действия телефонных шлюзов таков: ♦ с одной стороны шлюз подключается к телефонным линиям; ♦ с другой стороны шлюз подключается к компьютеру, который подключён к IP сети и может связаться с любым компьютером в мире. Таким образом, абонент может связаться с любым телефоном в мире, также подключённым через шлюз в сети. От абонента в шлюз. Шлюз принимает телефонный сигнал, оцифровывает его (если он исходно не цифровой), сжимает, разбивает на пакеты и отправляет через IP сеть по назначению с использованием протокола IP(коммутация пакетов). . От шлюза к абоненту. Для пакетов, приходящих из IP сети в шлюз и направляемых в телефонную линию, операция происходит в обратном порядке. В чём значимость появления шлюза? До появления шлюза телефонные сети (сети с коммутацией каналов) и IP-сети (сети с коммутацией пакетов) существовали независимо друг от друга и использовались для различных целей. Телефонные сети базируются на аналоговом сигнале и предназначены для ведения разговоров, а IP-сети базируются на цифровом сигнале и используются для передачи данных. Технология IP-телефонии с помощью шлюзов объединила эти сети. В телефонном варианте человеческий голос в виде аналогового сигнала передаётся по телефонным проводам через выделенное подключение. В IP – телефонии голосовой сигнал преобразовывается в цифровую форму («оцифровка сигнала»), разбивается на пакеты, имеющие заголовки, указывающие, куда он должен быть доставлен, и посредством Интернета доставляется к получателю. Методы снятия информации с датчиков в СРВ. Понятие прерывания широко используется в программном обеспечении компьютеров. Однако количество портов не 37 превышает несколько сотен. А если прерываний тысячи? При таких количествах прерываний производительность систем резко снижается. Почему? Обработка прерывания реализуется программным методом через процессор. Процессор при возникновении прерывания приостанавливает работу программы, которую он обрабатывает (свёртывает процесс), и запускает программу обработки прерывания. После обработки процессор возвращается к прерванной программе (развёртывание процесса). Программа обработки хотя и небольшая, но при таких количествах прерываний процессор может просто захлебнуться, обрабатывая их (сворачивая и разворачивая прерванные процессы). Конечно, можно поставить более производительный процессор, но существует и другая, более существенная причина ограничения прерываний. После обработки прерывания запускаются процессы их реализации. Например, процесс установления соединений. Во всех однотипных процессах используются одинаковые программы. Таким образом, возникают очереди к ним, что резко усложняет логическое взаимодействие программ. При этом такое усложнение никакими суперскоростными процессорами не уменьшить. Это усложнение остаётся, оно просто переводится на более короткие промежутки времени. Выход из такой ситуации был найден в периодическом снятии информации с датчиков, а не в прерывании от каждого из них. Наиболее наглядно этот принцип можно показать на коммутационном оборудовании программных АТС, в которых он определяется как сканирование устройств (периодический просмотр состояний устройств). Всё оборудование объекта управления снабжено датчиками состояния (в программных АТС они называются “контрольные точки” (КТ)). Все КТ программно доступны, т.е. их состояния можно считывать из памяти (ЗУ). Специальные программы (программы сканирования) периодически (по таймеру) проводят опрос состояния КТ (так называемые “циклы сканирования”) для каждого типа оборудования. Снятые в цикле сканирования текущие состояния КТ сравниваются с состояниями в предыдущем цикле. При сравнении выделяются те КТ, которые изменили свое состояние по сравнению с предыдущим циклом. Таким образом, за один цикл (опрос состояний) выявляется всё то оборудование, которое изменило свое состояние. Затем вся группа изменений задаётся как входная информация в соответствующие программы. Таким образом, исключается очередь к программам. Например, на таком принципе построено определение состояний «абонент поднял/опустил МТТ». Разработка принципа периодического опроса явилась техническим решением управления процессами массового обслуживания, в которых объект управления содержит оборудование, исчисляемое тысячами и десятками тысяч единиц. Принцип позволяет эффективно решить проблему логического взаимодействия программ. Он обеспечивает синхронность выявления изменений датчиков, ибо изменения выявляются за один такт опроса в отличие от прерываний, которые произвольны во времени. Возможно как аппаратное, так и программное создание устройств, реализующих принцип сканирования. В аппаратуре это может быть, например, устройство обработки сигналов, которое периодически считывает (снимает) выходные сигналы от группы подключённых к нему устройств, сравнивает их с предыдущим значением и выдаёт только те сигналы, которые изменили своё состояние. 38 2.5 МУЛЬТИПРОГРАММНЫЕ, МУЛЬТИПРОЦЕССОРНЫЕ И КЛАСТЕРНЫЕ СИСТЕМЫ ЦЕЛЬ – дать базовые принципы компьютерных систем, работающих с несколькими независимыми программами, которые реализуются на одном или нескольких процессорах. Объединение нескольких процессоров в МПС для работы с несколькими независимыми программами настолько широко используется, что варианты их получили специальные названия, которые рассматриваются ниже. В приводимых ниже понятиях присутствует компонента мульти, обозначающая множественность чего – то. Итак, исходными понятиями являются: ► независимые программы, каждая из которых реализует какой – то процесс, ►процессоры (один или несколько), на которых реализуются эти программы. Мультипрограммная система – система, содержащая один Пр, в которой задействованы несколько независимых программ, каждая их которых реализует некоторый процесс. В качестве аналога, поясняющего принцип работы нескольких независимых программ (процессов) на одном Пр, рассмотрим работу с очередью к одному кассиру в универсаме. В этой аналогии кассир интерпретируется как один Пр, а покупатели в очереди – как независимые программы (процессы). Если считать, например, что за 5 мин. кассир обслуживает 3 человека, то можно сказать, что на уровне кванта времени 5 мин., он обслуживает их одновременно (т.е. каждые 5 мин. – 3 чел.). В определении этот факт обозначается как «задействованы несколько», однако в каждый момент внутри этих 5-ти мин. (например, через 1 сек), он обслуживает только одного покупателя из этих 3-х.. Аналогично работает и один Пр с несколькими независимыми программами. Если рассматривать работу такого Пр на уровне кванта времени, бо’льшего чем время выполнения одной команды, то за счет своей большой скорости он успевает обслужить все процессы одновременно. Однако, на уровне выполнения любой команды в Пр, он работает только с одной программой (процессом). Мультипроцессорная система (мультипроцессор) – система, в которой имеются несколько Пр, общие память и периферийные устройства. В качестве аналога рассмотрим работу нескольких кассиров, у каждого из которых имеется очередь. В этой аналогии каждый кассир интерпретируется как Пр (несколько кассиров как несколько Пр), а покупатели в очереди – как независимые программы (процессы) В этой ситуации в каждый момент времени (например, через 1 сек.) все кассиры будут работать одновременно каждый со своим покупателем. Аналогично работают несколько Пр с несколькими процессами. Для каждого процесса отводится свой Пр. В любой момент времени на уровне выполнения команды все Пр работают со всеми процессами. Такая система всегда мультипрограммна. Такой режим обработки не нужно путать с мультипрограммной обработкой на одном Пр, т.к. в этом варианте любая команда в Пр реализуется только на одном Пр, а здесь команды одновременно на всех Пр. На рис. 2.5.1 в виде схемы показана взаимосвязь между количеством Пр и типом системы. 39 СИСТЕМА Мультипрограммная Мультипроцессорная реализация на одном или нескольких Пр реализация всегда на нескольких Пр всегда мультипрограммна Рис. 2.5.1 Взаимосвязь между количеством Пр и типом системы Управление в таких системах может быть: ♦ общим; ♦ распределенным. ♦ Общее управление характеризуется наличием общего УУ (как функционально, так и физически), управляющего всеми Пр (им может быть один из процессоров). Исторически оно сложилось, например, в телефонии как реакция на появление первых ЦПр. В телефонии первые вычислительные машины были использованы для управления соединениями в виде создания квазиэлектронных АТС. В них одна машина управляла всеми процессами установления всех соединений (общее управление). При появлении первых микропроцессоров идея общего управления была перенесена на несколько процессоров. ♦ Распределённое (децентрализованное) управление является базовым при создании распределённых вычислительных систем, характеризующихся наличием отсутствием единого центра управления и наличием нескольких центров обработки данных. К таким системам относятся компьютерные сети, в которых нет единого центра управления. Конструктивно такие системы могут быть: ■ мультипроцессорные; ■ кластерные. ■ Мультипроцессорные. В них для всех процессоров общими являются: ● операционная система, которая кроме типовых функций управления (распределения времени и памяти) занимается управлением вычислительной нагрузки между процессорами; ● память, включая оперативную (ОЗУ) и дисковую (диски); ● периферийные устройства. Связь между процессорами осуществляется через оперативную память. Избыточность в них организована на уровне процессорных блоков. Существенной характеристикой таких систем является связность компьютеров, которая проявляется в том, что любой из них не может работать самостоятельно, т.е. не используя общую память и периферийные устройства. Преимущества таких систем: ♦ Высокая производительность. Она достигается за счёт параллельной работы всех компьютеров в системе. ♦ Отказоустойчивость. Система способна продолжать работу при отказах отдельных элементов (например, процессоров, блоков памяти), хотя при этом её производительность и снижается, но не до нуля. 40 ■ Кластерные (многомашинные) (анг. cluster – блок, группа)) - система, состоящая: ● из нескольких компьютеров, каждый из которых работает автономно (т.е под управлением своей операционной системы, используя свою память и периферийные устройства); ● и имеющая программно – аппаратные средства связи компьютеров в систему. Избыточность в них организована на уровне компьютеров. Надёжность повышается за счёт того, что при отказе одного из узлов кластера нагрузка его переносится на другой узел в результате процесса реконфигурации (перераспределения, перекоммутации) нагрузки. Основным отличием таких систем является то, что задачи в компьютерах хранятся на разделяемой памяти, доступ к которым возможен из другого компьютера. При наличии отказа одного из компьютеров (это осуществляется периодическими опросами на работоспособность компьютеров друг друга), компьютер, который имеет доступ к памяти неисправного компьютера, реконфигурирует нагрузку на себя. При этом возможна потеря части данных, находящихся в оперативной памяти неисправного компьютера. /В чём отличие мультипроцессорных и кластерных систем?/ Исторически многомашинные (кластерные) системы появились после создания сравнительно дешевых компьютеров на базе микропроцессоров. На определённом этапе развития появилась потребность в объединении нескольких компьютеров в единую систему (сети передачи данных). 41 2.6 СУПЕРКОМПЬЮТЕРЫ ЦЕЛЬ – анализ методов повышения производительности МПС, определение суперкомпьютера и их классификация. Принципы повышения производительности МПС. Необходимость повышения скорости работы МПС связана с появлением всё более сложных задач для удовлетворения потребностей человека. В СРВ такая необходимость порождается потребностью обработки мощных потоков информации от датчиков. Проблема повышения скорости работы МПС привела к разработке суперкомпьютеров, т.е. компьютеров, имеющих производительность более 100 млн. оп./ сек. Наиболее очевидным принципом повышения производительности компьютера является увеличение скорости работы его ЦПр. Пока это наиболее массовое направление разработок в создании коммерческих процессоров. Однако скорость работы базируется на физике процессов, проходящих в микросхемах. Наиболее значимыми из них являются: ♦ конечная скорость распространения электрических сигналов (не больше скорости света (300 тыс. км./ сек.)); ♦ увеличение тепловых шумов при уменьшении размеров микросхем. Шумы являются электрическим подобием броуновского движения, от которых избавиться нельзя. При уменьшении размеров микросхем увеличивается уровень тепловых шумов и наконец, с некоторого уровня микроминиатюризации затраты на борьбу с шумами не будут окупать получаемый эффект быстродействия. Применение криогенной техники, т.е. снижение тепловых шумов путем глубокого охлаждения схем, отодвигает этот барьер, но не снимает его. Другим направлением повышения производительности МПС является объединение типовых (сравнительно «медленных») микропроцессоров в единое целое – суперкомпьютеры, достигающие сверхвысокой производительности. Направлением решения такой задачи является распараллеливание (параллельная обработка), принцип которой заключается в одновременном решении разных частей одной задачи на разных процессорах, объединенных в единое целое (Потренируйтесь в выделении ключевых слов, в данном описании принципа). Пример. Пусть нужно решить за T = 100 с. задачу, требующую N = 10.000.000.000 машинных операций. Для этого нужно взять компьютер со скоростью N/T = 10.000.000.000 : 100 = 100.000.000 оп./ сек. Предположим, что таких процессоров нет, но есть процессоры производительностью V = 1.000.000 оп./сек. Тогда если задача допускает распараллеливание, нужно взять 100 таких процессоров, разбить задачу на 100 частей, и они одновременно, проработав каждый над своей частью 100 сек., выполнят всю задачу. Для решения таких задач используются мультипроцессорные системы. В таких системах, как правило, используется мультипрограммирование (параллельное программирование) - процесс создания программы (и её выполнение), содержащий параллельно выполняемые части программы, т.е. части, которые будут выполняться одновременно на нескольких Пр. Основные задачи, решаемые в мультипрограммировании: разбиение (или преобразование) задачи на части, с указанием, когда и какую часть задачи должен решать каждый Пр, откуда он получает данные и куда отправляет результаты работы. Основная цель при решении – максимальная загрузка каждого Пр, т.е. минимизация их простоев и работ по решению вспомогательных задач, например, обмена данными между Пр. Естественно не все алгоритмы могут быть распараллелены. Распараллеливание возможно только без нарушения причинно – следственных связей физических законов, реализуемых алгоритмами процессов. 42 Виды распараллеливания по классификации Флинна. Виды параллелизма основываются на классификации Флинна, которая ведется по двум типам потоков информации в вычислительных системах (рис.2.6.1): ♦ параллелизма потока команд; ♦ параллелизма потока данных. ПОТОКИ КОМАНД одиночные множественные ПОТОКИ ДАННЫХ одиночные множественные ОКОД ОКМД МКОД МКМД Рис. 2.6.1 Классификация параллелизма по Флинну В таблице на рис.2.5.1 на пересечении строк и столбцов указаны абревиатуры классов параллелизма: ► ОКОД (одиночный поток команд – одиночный поток данных); ► ОКМД (одиночный поток команд – множественный поток данных); ► МКМД (множественный поток команд – одиночный поток данных); ► МКМД (множественный поток команд – множественный поток данных). ► ОКОД представляет собой обычный МП последовательной обработки, который в каждый момент времени, обрабатывает один набор данных с помощью одной команды. МП именно этого класса являются «базовыми кирпичиками» для построения остальных классов МПС. СУПЕРКОМПЬЮТЕРЫ. ►ОКМД (рис.2.6.2) /Для простоты на рис. 2.6.2 – 2.5.5 показаны принципы построения на уровне объединяемых процессоров без остальных компонент мультипроцессорной системы/. 43 П О Т О К И Д А Н Н Ы Х X1 Пр1 X2 Пр2 Xn ПрN Р Е З Y2 П У О Л Т Ь О Т К А Yn И Т О В Y1 Команда рис.2.6.2 Принцип объединения процессоров машин класса ОКМД На рис.2.6.2 дан принцип объединения процессоров машин класса ОКМД. Система из N взаимосвязанных процессоров (Пр1, Пр2,…, ПрN) обрабатывает на одной команде n потоков данных (X1, X2,…, Xn), преобразуя их в n потоков результатов (Y1, Y2,…, Yn). Особенностью класса ОКМД является то, что за одну операцию в N процессорах выполняются: ♦ одинаковые команды; ♦ данные для таких команд в каждом из N процессоров различны. Таким образом, одна команда (одиночный поток) выполняется над различными данными (множественный поток). Память делится между процессорами и каждый из них имеет возможность быстрого обращения к своему участку памяти и более сложное обращение к памяти соседа. Связи между процессорами позволяют им обмениваться необходимой промежуточной информацией. Такую схему обработки часто называют векторной, а мультипроцессор – векторным, т.к. с его помощью удобно обрабатывать n – мерные вектора, например, траектории движения летательного аппарата. По отношению к пространству этот класс называется распараллеливанием в пространстве, т.к. разные части одной задачи решаются на разных процессорах, которые распределены в пространстве. Круг решаемых задач компьютерами данного типа, задачи со слабо связанными частями, т.к. в них требуется небольшой объем информации между процессорами. Это ограничение резко сужает сферу применения ОКМД. 44 ►МКОД. (рис. 2.6.3). потоки X данных потоки Пр1 K1 Пр2 потоки K2 …….. команд Пр N Y результатов Kn Рис. 2.6.3 Принцип объединения процессоров машин класса МКОД На рис.2.6.3 дан принцип объединения процессоров машин класса МКОД. На вход X подается поток данных и каждый процессор (Пр1, Пр2,…,ПрN) работает по своему потоку команд, передавая результаты работы на вход следующего процессора, последний из которых и выдает результат Y. Данная схема применяется для задач с сильно связанной структурой, в которых каждый оператор получает исходные данные от предыдущего, а результат обработки направляет следующему оператору. Здесь ничего в пространстве распараллелить нельзя. Если такие задачи нужно решать многократно, при различных исходных данных, то распараллелить можно во времени. Аналогом распараллеливания во времени является идея конвейера, когда при изготовлении изделия оно передается от одного рабочего к другому. Один из них делает некоторую небольшую операцию для изготовления изделия, другой – другую и т.д., а на выходе конвейера появляется готовое изделие. Резкое увеличение скорости в конвейере происходит за счет того, что после того, как i-й рабочий сделал свою операцию и передал изделие дальше, он освобождается и, следовательно, готов принять следующее изделие от (i –1)–го рабочего для того, чтобы сделать свою операцию. Этот принцип используется и в конвейерной обработке информации. При обработке одного потока данных за одну операцию выполняется множество команд из разных потоков команд. Эта схема обработки удобна при работе с программой, которую нельзя разбить на независимые части, и части связаны через данные, которые обрабатывает программа. Чем короче по времени операции на конвейере, тем выше скорость обработки. При всей привлекательности данного типа обработки информации он имеет существенное ограничение: все операции на всех процессорах должны быть равны по времени срабатывания. Это требование является системным для любого конвейера. Если операции на нем не синхронны по времени, то конвейер не может работать. Например, если i–й рабочий занимает на свою операцию время m, а (i + 1)–й рабочий – время k и m больше k на d (т.е. m = k + d), то (i + 1)-й рабочий, после окончания своей работы через время k, будет простаивать время d. 45 ►МКМД. (рис.2.6.4) П О Т О К И X1 Пр1 Прi Пр2 Прm Xn Д А Н Н Ы Х K1 ПОТОКИ Kp Р Е Y1 П З О У Т Л О Ь Yn К Т И А Т О В КОМАНД Рис.2.6.4 Принцип объединения процессоров машин класса МКМД На рис.2.6.4 дан принцип объединения процессоров машин класса МКМД. Класс является гибридом векторной и конвейерной схем и представляет собой матричную схему обработки. Такой мультипроцессор называется матричным, так как структурная схема представлена в виде матрицы и принцип работы также основан на обработке матриц. Каждый процессор за одну операцию обрабатывает один элемент матрицы, таким образом, за одну операцию параллельно обрабатываются все элементы матрицы. Чтобы получить такой же результат при использовании обычного процессора, надо обработать каждый элемент матрицы последовательно, поэтому и время вычисления значительно больше. Матричные процессоры – мощное устройство решения задач, характеризующихся высокой степенью параллелизма. Машины потока данных (рис.2.6.5).Такие машины являются частным случаем классов Флинна и решают задачи, когда данные не известны, а генерируются в самой машине как промежуточные результаты. Это позволяет использовать описанные выше принципы параллельной обработки для решения громоздких вычислительных задач при отсутствии потока данных извне. 46 X1 МУЛЬТИ – ПРОЦЕССОР Xn Y1 Yn K1 Km З У Рис. 2.6.5 Принцип построения машины потока данных Мультипроцессор реализован по матричной схеме. Здесь потоки промежуточных результатов (данных) X1,…., Xn, получаемые в процессе решения задачи, являются исходными данными для последующих вычислений. Потоки команд K1,…,Km обеспечивают обработку поступающих на мультипроцессор потоков данных, а потоки результатов Y1,…,Yn поступают в ЗУ, чтобы стать потом потоками данных. Здесь процесс вычислений управляется не программой, а потоком данных, получаемых в процессе вычислений. Для этого выделяется свободный Пр той части программы, для которой имеются данные. Такое последовательное применение этого подхода приводит к тому, что заранее уже нельзя сказать, какой обработкой будет занят тот или иной процессор – все решится после его освобождения от предыдущей работы. И ему в соответствии с принципом управления данных поступает задача, для которой к этому моменту будут готовы данные. Так данные (точнее, моменты их появления в вычислительной системе) управляют вычислительным процессом. Чем больше процессоров, тем более эффективно применение этого подхода, т.к. меньше вероятность, что Пр будут простаивать в ожидании данных и данные в ожидании своего процессора. 47 2.7 СТРАТЕГИЯ РАЗРАБОТКИ МПС ЦЕЛЬ – дать и обосновать стратегическое направление разработок МПС. Как указывалось ранее, любой тип связи является частным случаем СРВ, которые имеют объект управления (ОУ) и устройство управления (УУ). В качестве УУ в СРВ используются компьютеры. Все компьютеры сейчас построены на фон – неймановской структуре. Таким образом, принципиальное единообразие построения УУ (фон – неймановская структура) определяет и принципиальное однообразие операционных систем УУ (см. раздел 1.5). В ОУ такого принципиального единообразия нет, так как каждый тип ОУ имеет свою специфику (связь, технологический процессы, космос, электроснабжение городов, управление транспортом и т.д.). Для реализации ОУ используется специфическое аппаратное и функциональное программное обеспечения (ФПО). Анализ взаимосвязи компонент СРВ. Так как в СРВ имеются две взаимосвязанных компоненты (УУ и ОУ), то, естественно, возникает вопрос: откуда вести разработку?: ►от УУ к ОУ; ►или от ОУ к УУ. ►Разработка от УУ к ОУ. Обоснованием для такой стратегии разработки служит следующая «железная логика»: ФПО находится в компьютере, значит, нужен специалист, знающий компьютер. Но согласно такой «логике» и любой настройщик фортепьяно должен профессионально сыграть фортепьянный концерт потому, что фортепьянные концерты исполняются на фортепьяно, а он его великолепно знает. К сожалению, именно такой тип рассуждений, естественно, считающихся «логичными», распространён при разработках СРВ, в которых УУ является компьютером. Данное образное сравнение показывает нелепость принципа разработки «от УУ к ОУ». Значит, остаётся принцип «от ОУ к УУ», но не ясно, «почему так нужно, почему именно с ОУ?». ►Разработка от ОУ к УУ. Для логического обоснования такого направления разработки рассмотрим следующее образное сравнение. Нужно перевести какой – то груз. С чего начать решение данной задачи: с варианта «на чём перевести?» или с варианта «что перевести?». Элементарная логика подсказывает вариант: «что перевести?». Почему? Да всё зависит от груза. Если этот груз по габаритам и весу мал, то его может перевести (перенести) человек в сумке, если более крупный, то на машине, причем в зависимости от веса это может быть машина разной грузоподъёмности. Таким образом, только после того как определились с грузом, можно приступить к решению варианта «на чём перевести?». В исходных алгоритмах ФПО реализуются специфические для данного ОУ процессы. Безграничное терминологическое разнообразие ОУ в различных СРВ не даёт возможности создать единые алгоритмы в конкретных терминах для всех типов ОУ (как например, в операционных системах УУ). Для специалиста, работающего с данным типом ОУ, вытащить логику работы (а именно она является базой алгоритмов ФПО) из физики конкретных процессов - трудная проблема, требующая времени и знания физики процессов ОУ («что перевести?»), а не УУ («на чём перевести?»). Но только после того, как будет качественно (начиная с системного уровня) алгоритмизирована логика процессов, к ней нужно подключать специалиста по УУ (компьютерщика) Таким образом, акцент при разработках СРВ должен быть сделан именно на ФПО, т.е. ведущими в проектировании таких систем должны быть разработчики ОУ, а не УУ (хотя в созданной системе УУ управляет ОУ). При этом разработчику ФПО знание компьютера необходимо, но не так углублённо, как компьютерщику. При современном разнообразии компьютеров и большом числе специалистов в них, подобрать соответствующий компьютер под проработанное ФПО, задача менее сложная, чем разработка самого ФПО. 48 Почему в Интернете и сетях нужен только компьютерщик? Интенсивно развивающиеся в последнее время различные типы сетей и Интернет также являются СРВ. Таким образом, и там есть ОУ и УУ, но именно при их разработке знание компьютера и необходимо и достаточно, т.е. разработчику сетей и Интернета нужно знать только компьютер. Почему так происходит? Дело всё в том, что ОУ в них является другой компьютер, и специалисту по компьютерам известно, не только сигналы из другого компьютера, но и как их обрабатывать, а также отдельные специфические нюанса такого ОУ. К сожалению, именно массовость развития этих направлений и выработала устойчивый стереотип мышления в виде необходимости вести разработки СРВ, в которых ОУ не является другим компьютером, от компьютера, т.е. для разработки программного ОУ привлекать специалистов по компьютерам как основных разработчиков. Методологический принцип разработки ФПО. В условиях рыночной экономики разработку необходимо вести так, как это выразил основатель конвейерной системы в производстве Фредерик Тейлор (США): «Поймите точно, что Вы хотите сделать, и затем следите, чтобы это делалось наилучшим и самым дешёвым способом». Методология разработки должна основываться на «бритве Оккама» – методологическом принципе, сформулированном английским философом Уильямом Оккамом в 14 веке в виде: «То, что можно объяснить посредством меньшего, не следует выражать посредством большего» (принцип бережливости или экономии гипотез). Этот принцип требует, чтобы любая научная гипотеза, объясняющая ряд фактов, основывалось на наименьшем числе предположений, т.е. наиболее правдоподобной является та гипотеза, которая основывается на меньшем количестве допущений. Как этот принцип применим к разработкам технических систем? На начальных стадиях разработок прорабатываются несколько вариантов реализации системы. После этого возникает вопрос выбора варианта реализации. Но как выбрать, когда система ещё не готова? В этом случае необходимо использовать «бритву Оккама» в виде следующей модификации: «Из нескольких технических решений, обеспечивающих данные требования, наиболее простое в реализации является наиболее правильным». Синонимы «бритвы Оккама» в западных разработках известны как «принцип простоты». «элегантное решение», «максимум при минимуме». «Упрощайте сложное и вы получите самый существенный результат». / Английский историк и социолог Генри Бокль 19 век/. Разработать простое (элегантное) решение технической проблемы очень сложно. В основном это зависит от интуиции, умноженной на опыт, но эффект, получаемый от него, велик. При этом не нужно путать простое решение с примитивным, базирующимся на невежественности и халатности. В любых разработках инженер не тот, кто сделает «так», а тот, кто ещё и объяснит, «почему он сделал так, а не иначе» (т.е. из нескольких вариантов выбрал именно этот). Типология построения МПС. Типовая структура и типовая, структурная схема ПО базируется на положениях для СРВ, данных в разделе 1.5. Выбор варианта снятия информации от датчиков /например, телефонных аппаратов или мобильников/ (прерывание или сканирование) основывается на положениях, данных в разделе 2.4. Вообще, в сложных системах всё должно быть предсказуемо, а прерывания непредсказуемы. Сложные системы не должны «гоняться» за каждым прерыванием от датчиков СРВ, обрабатывая их. В качестве инструментов при разработках МПС необходимо создавать методологии, которые определяются как наборы принципов, упрощающих разработку сложного изделия. Архитектура и структура МПС. Слово архитектура в строительстве означает потребительские характеристики строительного объекта, т.е. те, которые важны для проживающих или работающих в этих объектах. Аналогично под архитектурой МПС понимают совокупность её свойств и характеристик, которые должен знать пользователь. 49 К ним относятся: ♦ сопряжения основных устройств системы. ♦ представление передачи информации при взаимодействии пользователя с системой; Структуру не нужно путать с архитектурой. Архитектура, также как структура, определяет правила взаимодействия составных частей системы, но регламентирует не все связи, а лишь наиболее важные с точки зрения пользователя, которые нужны ему для грамотного использования системы. Структура же более детальна, чем архитектура. В МПС термин архитектура используется для описания принципа действия, конфигурации и взаимного соединения их основных логических узлов. Если рассматривать архитектуру определенного класса таких систем, то реализация конкретной системы из данного класса, может отличаться как на уровне физических компонентов аппаратных средств, так и на уровне способов реализации подсистем. Те или иные реализации также отличаются по производительности и стоимости. Детали реализации «невидимые» для пользователя не оказывают влияния на архитектуру. Общность архитектуры класса обеспечивает их совместимость с точки зрения пользователя. Принципы разбивки ПО СРВ. Как с точки зрения функциональной реализации разбивается программное обеспечение (ПО) СРВ? Почему это важно? Анализ этого вопроса сразу же даёт стратегическое направление разработки, а правильно выбранное стратегическое направление резко снижает время и затраты на разработку. Образное сравнение: можно из СПб в Москву поехать как обычно, а можно и через Париж. Ясно, что если выбрано стратегическое направление через Париж, то не укладываются и в сроки и в деньги. При этом некого винить, что они бездельничают, (ведь человек то не сачкует, а едет). Традиционной «разбивкой» ПО СРВ является деление его на: ♦ функциональное ПО (ФПО); ♦ операционную систему (ОС). ФПО реализует функциональные процессы (т.е. процессы ОУ). ОС реализует управление функциональных процессов в реальном времени. Это традиционная правильная разбивка, но в ней нет чёткого деления, кто за что отвечает, а одна из крупных компонент вообще отсутствует. Более правильной является следующее разделение. ПО СРВ имеет следующие базовые компоненты (своего рода фундамент): ►функциональные процессы в ОУ, которые подлежат управлению в реальном времени; ►функциональные процессы в реальном времени (управление процессами ОУ в реальном времени); ►база данных (БД) функциональных процессов в реальном времени. На основе такого «фундамента» строится всё программное обеспечение СРВ. ►Функциональные процессы в ОУ. Например, это установление различного рода соединений в различных АТС. Причём, это сами процессы без «привязки» их к УУ. Описание алгоритмов здесь идёт, естественно, в терминах функциональных процессов. В качестве типовых примеров можно привести описание работы различных функций сотового телефона, описание работы оператора на различных пультах и т.д. ►Функциональные процессы в реальном времени. Здесь уже ставятся задачи «привязки» разработанных функциональных процессов к УУ. Алгоритмы исходных процессов, разработанные выше, здесь являются «базой» для их реализации в реальном времени, т.е. на компьютере. Естественно, в этих алгоритмах кроме терминов функциональных процессов используются компьютерные термины. ►База данных (БД) функциональных процессов в реальном времени. Здесь реализуются БД процессов в ОУ. 50 Что даёт такое деление? Оно чётко разграничивает работу: ♦ по направлению; ♦ и по специализации. Что это такое? Функциональные процессы в ОУ должен делать специалист в данном ОУ. Он и только он, а не компьютерщик. Для связи это специалист, знающий данный тип связи! Функциональными процессами в реальном времени должен заниматься компьютерщик, ибо он хорошо знает инструменты УУ (т.е. компьютер) и может грамотно «уложить» функциональные процессы в реальном времени с точки зрения имеющихся инструментов в компьютере. Но задавать ему сам процесс, который нужно «уложить» в реальное время, должен специалист по функциональным процессам. Именно он должен ему объяснять логику и специфику этих процессов, а не он сам догадываться. Что задаст специалист по функциональным процессам в ОУ, то на компьютере и реализует компьютерщик. Таким образом, стратегией разработки на данном этапе «владеет» компьютерщик, но смыслом функциональных процессов – специалист по ОУ. База данных (БД) функциональных процессов в реальном времени. Здесь опять компьютерщик, но он должен реализовать то, что даст ему специалист по функциональным процессам. Таким образом, стратегией разработки на данном этапе «владеет» компьютерщик, но смыслом данных – специалист по ОУ. Резюме. Таким образом, ведущим при разработках СРВ должен являться специалист по ОУ, а не по УУ. Такой специалист должен качественно знать свою область (ОУ) и понимать принципы построения ПО в компьютерах (но он не обязан знать досконально их реализацию). Если он не понимает ни того, ни другого, то тогда «власть» перехватывают компьютерщики и, набив шишек, что-то делают (именно «что-то», ибо они не освоят качественно ОУ, а просто «нахватаются по верху»). 51 2.8 НЕКОТОРЫЕ ТИПОВЫЕ КОМПОНЕНТЫ ПРОГРАММНОЙ РАЗРАБОТКИ МПС ЦЕЛЬ - анализ некоторых типовых программных компонент МПС, используемых в разработках Функционального Программного Обеспечения (ФПО), т.е. ПО, разрабатываемого для управления ОУ. Структура алгоритмико – программного обеспечения. Основой его разработки являются алгоритмы и программное обеспечение (ПО), которое разрабатывается по этим алгоритмам. Программисты, работающие только в области компьютера, могут оспорить это утверждение, заявив, что они сразу пишут программы. Но это невозможно, так же как невозможно построить дом без чертежа дома. Алгоритм находится в их голове и там же он кодируется командами. Алгоритм - заранее заданная последовательность четко определенных правил или команд для получения решения задачи за конечное число шагов. Большой класс алгоритмов построен на программно - логических функциях. К ним относятся функции, принимающие значения 1 или 0 (бинарная логика). Например, в телефонных процессах логические значения 1 или 0 могут интерпретироваться как: микротелефонная трубка снята? (да(1)/нет(0)), есть сигнал / нет сигнала; для сотового телефона нажал / не нажал; выбрал из меню функцию да/нет и т.д. Если из таких компонент реализуется алгоритм функции, по которому затем разрабатывается программа, то такие функции называются программно – логическими. В начальной стадии разработок выделяются функции, алгоритмы которых должны быть реализованы (например, все типы установления соединений). Разработки алгоритмов функций процессов проводятся в три этапа. Первый (идеальный вариант) – разработка данной функции в предположении её реализации при наличии всех нужных ресурсов, например, данных, с которыми работает программа; отсутствие ошибок в устройствах, если программа работает с ними (устройство всегда отрабатывает нормально) и т.д. Второй этап (реальный вариант или разработка отрицательных веток алгоритма) – дополнение алгоритма первого этапа фрагментами, реализующими действия при наличии ошибок разного рода (например, нет необходимых данных в базе данных, устройство не отработало). При описании ошибок важно предусмотреть их подробный комментарий с высветкой на экран или печатью (номер ошибки, что произошло, почему произошло, как это устранить). Запомните! Проработка отрицательных веток алгоритма: ♦ повышает компетенцию алгоритмиста в реализации алгоритма (только идеальный вариант в алгоритмах это, как правило, в лучшем случае - половина разработки); ♦ существенно сокращает общее время отладки всего ПО, т.к. программы, построенные на соответствующих методах разработки (см. далее), сами сообщают о неисправностях и методах их устранений. Третий этап (разработка под пользователя). Этот этап относится и к программам, которые реализуют алгоритмы. Программа - продукт, отчуждаемый от разработчика, поэтому сервис программы, вещь необходимая. При разработках программ необходимо придерживаться принципа: разработка не под «объект», а под «класс объектов данного типа» с учётом принципа бытового прибора. Любой бытовой прибор разрабатывается так, чтобы упростить обращение с ним, хотя внутри он и сложен. Также при разработках любой аппаратуры на заводе в ней существуют, как правило, какие-то инструменты наладки. Наладчик электронных блоков всегда имеет возможность подкорректировать отдельные параметры блока, хотя блок уже собран на участке монтажа. Тоже должно быть и в программах. Они должны иметь инструменты, позволяющие, не используя программирование, в каких-то пределах менять настройку программы. В крупных программных комплексах сервис аккумулируется в виде графического интерфейса пользователя. Другая функция сервиса состоит в том, что программа должна «сообщать о 52 своём здоровье». К сожалению, это часто игнорируется программистами, для которых главное - реализация функций. Конечно, хороший сервис требует и глубоких знаний, что, естественно, увеличивает время разработки, но при комплексных отладках это время с лихвой компенсируется. Таким образом, алгоритмы (и программы по ним) должны разрабатываться с принципом адаптации к изменяющимся внешним условиям. Класс программно – логических функций необходимо аксиоматизировать Аксиоматика избавляет от «проклятия смысла», ибо с её помощью функции реализуются в виде «кубиков». Это позволяет чётко разделить «логику» и «физику» функций. Если не аксиоматизировать функции, то каждый их реализатор будет сам придумывать свой способ реализации, т.е будет столько способов реализации сколько будет реализаторов функций, при этом обычно смешивают «физику» с «логикой», размазывая её по функциям. Программное обеспечение (ПО). В данном подразделе под ПО подразумеваются и алгоритмы и программы по ним.. В условиях рыночных механизмов отношение к разработке ПО как к “искусству” (индивидуальное программирование) увеличивает время разработок и резко снижает коррекционную стойкость ПО. При коррекциях, которые, например, будут нужны заказчику через год, даже разработчик данного фрагмента ПО, созданного по принципу “искусства”, не может сделать их быстро и качественно. К сожалению, промышленного программирования в массовом масштабе до сих пор нет. Как указано в разделе 1.5, в ФПО реализуются конкретные алгоритмы взаимодействия с объектами управления, т.е. эта компонента ПО является наиболее разнообразной в реализации. Несмотря на широкий диапазон функциональных различий ФПО, архитектура программ должна строиться по следующей логической структуре ( знак -> обозначает «компонента слева состоит из..», например, подсистема состоит из комплексов): система (ФПО) -> подсистема -> комплекс -> программа (подпрограмма) -> модуль > блок -> фрагмент -> команда. Разбиение программ на модули. Как следует из данной выше логической структуры, программы должны быть разбиты на модули (программные части). К сожалению, разработка программ в несколько сотен и даже тысяч команд в виде монолитных мастодонтов вещь не такая уж редкая даже в 21-ом веке. Модули должны содержать несколько десятков строк (команд) и в идеале иметь один вход и один выход. Однако на практике для ФПО «один вход – один выход» не всегда удаётся создать. Например, если в алгоритме имеется переключатель и каждая «ветка» в нём реализуется несколькими десятками команд, рациональнее сделать модуль с переключателем, у которого будет столько выходов, сколько есть у переключателя, чем делать один громоздкий модуль, реализующий все ветки переключателя. Как показывает практика, общая методология процесса разбиения программ ФПО на модули должна строиться на том, чтобы при разбиении следовать «физике» процесса, даже если это приводит к увеличению числа входов и выходов в модули. Программа с таким разбиением более понятна (по названиям функций модуля), а уже после понимания принципа её работы легче будет разбираться с её входами и выходами. Если же разбить её на модули по принципу «один вход – один выход» логическое взаимодействие модулей будет простым и наглядным, но «физика реализации» будет скрыта за такой логикой взаимодействия модулей, т.к. приходится в этом случае, как правило, искусственно создавать «один вход – один выход», затемняя физику процесса. /В качестве примера, разработчик данного лекционного материала, в своё время, более месяца «разрезал» функциональный алгоритм, разработанный аппаратурщиком по заданной ему табличной форме, который при программной реализации потянул почти на 2 тысячи команд ассемблера. Некоторые модули в ней имели до пяти выходов. При комплексной отладке и опытной эксплуатации 53 аппаратурщиками (разработчиками алгоритмов) было внесено несколько коррекций, которые, однако, не затронули связи между модулями/. Листинг программного модуля должен быть самодостаточным (принцип самодокументируемости программ), т.е. в нем должна быть информация, позволяющая понять принцип программной реализации алгоритма. К такой информации можно отнести: название модуля, перечень реализуемых им функций, описание общего принципа реализации. Для блоков, реализующих часть функции, и фрагментов внутри блоков необходимо давать их развернутое название и принцип реализации. Комментарий для команд должен быть смысловым для реализуемой функции, а не повторением описания языковой команды. Принцип, выдвинутый ещё на заре программирования, вначале комментарий, а потом команда, никто не отменял (правда, даже тогда большинство программистов его «в упор» не замечали). Хороший комментарий при коррекциях, связанных, например, с расширением или изменением функций, особенно после длительной эксплуатации программы, экономит массу времени. Как указано выше, программа – продукт, отчуждаемый от разработчика, как и любая электронная схема. Также как в начерченной электронной схеме должны быть указаны номиналы всех её компонент, так и листинг программы должен объяснять не только в программной, но и в словесной форме как реализованы все компоненты программы. Отладку, как программ, так и всего ПО необходимо проводить в два этапа: ● этап 1 - на программных имитаторах оборудования, ресурсов; ● этап 2 – на реальных компонентах (оборудование, ресурсы). Такой подход резко сокращает время комплексных отладок (отладок с реальным оборудованием и ресурсами). Почему? На начальных этапах отладок крупных программных комплексов априори ( лат. - до опыта) считается, что программы и оборудование содержит ошибки. К сожалению, это положение часто игнорируется как алгоритмистами, так и программистами, поэтому, при появлении ошибки, в принципе неясно, где ошибка, в программе или в оборудовании (или чужих программах и базах данных). Разбор (кто виноват?) занимает много времени, особенно если программисты и алгоритмисты считают свои программы и алгоритмы непогрешимыми (как показывает практика именно такие специалисты, и бывают иногда не компетентны). При наличии в программе отрицательных веток и отладке её с помощью имитаторов проблема резко упрощается, т.к. программный имитатор устройства, например, настраивается при отладке по варианту отработки или не отработки устройства и, если программа отработала неправильно, то ошибка может быть только в отлаживаемой программе. При выходе на реальные ресурсы (программные, аппаратные) проблема так же значительно упрощается, ибо программа, разработанная по указанным выше принципам, сама сообщает об ошибках. Некоторые компоненты программ. Программирование как процесс аналогичен работе мозга. Мозг воспринимает слова, которыми в нашем мире человек “кодирует” конкретные предметы и явления. Например, у нас нет в голове реального стула, книги и т.д., но по условному обозначению в русском языке “стол”, “книга” и т.д. мы понимаем, о каких предметах реального мира идет речь. При этом исходными компонентами для кодировки предметов реального мира для человека, говорящего, например, на русском языке, являются буквы и правила русского языка. Такой процесс кодировки называется абстрактным представлением конкретных объектов и явлений реального мира. Для программиста исходными компонентами, которые он использует при работе, являются: память (ЗУ), рабочие регистры (РР) и порты ввода / вывода. Типы данных в этих компонентах представляют собой информационные объекты, с которыми работает машинная команда: бит, полубайт (4 бита), байт (8 бит), слово (16 бит), двойное слово (32 бита). Так как процесс работы с двоичными объектами для человека неудобен, были разработаны языки высокого уровня, приближенные к естественному (английскому) языку. Программист разрабатывает по алгоритму программу на таком языке и затем 54 специальная программа преобразовывает (транслирует) предложения (команды) таких языков в машинный (двоичный) код, «понятный» ЦПр. В языках программирования компоненты обозначаются именами (так же как, например, в мозгу человека реальное дерево обозначается на русском языке словом дерево), с помощью которых, программист на выбранном языке программирования кодирует элементы реального процесса, заданные в алгоритме. Для унификации кодирования программ (модулей) необходимо разрабатывать систему типовых элементов кодирования (СТЭК), включающую программную реализацию наиболее типовых элементов и структур кодирования на данном языке. Текстовый материал, предназначенный для высветки на экран, должен быть собран в одном массиве, а не разбросан по тексту программы. Унификация кодирования особенно эффективна при работе бригад программистов. БУФЕР – специально отведенный участок памяти для промежуточного хранения данных. Принцип работы буфера аналогичен работе почтовых ящиков, в которые в произвольные моменты времени письма опускаются, а их выборка идет через определенные интервалы времени. В буфере реализуется следующий временной принцип: загрузка информации в буфер идет в произвольные моменты времени (т.е. в темпе реального времени), а разгрузка – через определенные моменты времени. Такой принцип работы позволяет, например, эффективно использовать буфер для работы с процессами, имеющими разные скорости. Так как буфер физически - «кусок» памяти, то в нем различают два конца (образно «верх», «низ»). В буфере используются следующие принципы записи / чтения (вставки / удаления): ♦ запись / чтение проводится с разных концов; ♦ запись / чтение проводится с одного конца (стек). СТЕК – программно – аппаратное средство, представляющее собой совокупность ячеек памяти (список), записи в котором вставляются и убираются с одного конца, называемого вершиной стека (списка). Такой тип доступа к записям реализует принцип: «последним вошел, первым вышел», т.е. последний вставленный в список элемент, удаляется первым из списка. В бытовой ситуации стековый принцип реализуется, например, при заполнении сумки продуктами. Вы постепенно заполняете сумку, при этом продукт, купленный первым, находится в самом низу, а самый последний – наверху. При разгрузке сумки первым достается продукт, положенный туда последним (он на самом верху). У этого принципа есть и другое название – магазинный, ибо он используется в оружии типа автомата, пистолета. В них имеется магазин, своего рода плоская коробка, в которой находятся патроны. При зарядке магазина патронами первый заряжаемый патрон оказывается внизу, а последний – наверху. При стрельбе первым выбирается патрон, заряженный последним. Процессы вставки и удаления элементов через вершину стека называются соответственно, проталкиванием в стек и выталкиванием из стека. Типовое использование стека – хранение содержимого СчК и РР при прерываниях или переходах из программ в подпрограммы, которые можно рассматривать как прерывания основной программы. Стеки имеют достаточно памяти, позволяющей последовательно запоминать содержимое СчК и РР каждого из прерываний, «вложенных» друг в друга. Таким образом, появляется вложенная структура прерываний. ПРЕРЫВАНИЕ – сигнал, по которому процессор «узнает» о совершении асинхронного, относительно циклов его работы, события, которое ему нужно срочно реализовать (обработать). В разделе 1.3 рассмотрен принцип прерывания. Реализация его в ЦПр определяется следующей последовательностью действий. ■ При поступлении прерывания ЦПр заканчивает выполнение текущей команды в программе, которая им обрабатывается. 55 ■ ЦПр запоминает состояние СчК и РР прерванной программы, записывая их в стек. Совокупность запомненных состояний программы называется ССП (слово состояния программы). ■ ЦПр начинает выполнять программу обработки данного прерывания. ■ После выполнения программы обработки данного прерывания ЦПр восстанавливает запомненное состояние прерванной программы и продолжает выполнять её так, как будто никакого прерывания и не было. Наиболее типовыми событиями, вызывающими прерывание могут быть следующие: ● внешнее прерывание от датчиков; ● прерывание по таймеру, По окончании времени отработки, выставленном на таймере, происходит прерывание, по которому процессор «узнает», что время в таймере окончено; ● предопределённые события. Например, прерывания, специально «вставленные» в программу программистом; ● не предопределённые события, Например, при попытке программы осуществить неизвестное или запрещенное действие, приходит прерывание на которое реагирует операционная система; ● действия оператора. В МПС имеется возможность маскировать (не замечать) некоторые прерывания. С этой точки зрения прерывания могут быть: ♦ не маскируемые, Они реализованы аппаратно и не управляются программистом. Это, как правило, прерывания «жизненно необходимые» для МПС, например, сообщение о неисправности какой либо программно - аппаратной компоненты; ♦ маскируемые. Могут управляться программистом. Они управляются специальными командами и имеют цель дать программисту возможность гибкого управления вычислительным процессом. 56 2.9 ТАБЛИЧНЫЕ МЕТОДЫ ПРОЕКТИРОВАНИЯ ФПО Цель – показать применение табличного метода проектирования программно-логических функций как инструмента, упрощающего разработку ФПО систем связи. При разработках таких сложных систем как ФПО систем связи главной целью должно быть не реализация функций, а разработка технологии их реализации. К сожалению, на технологию реализации обращается мало внимания. Главная задача любой технологии упрощение создания объекта проектирования. Для этого в технологиях разрабатываются инструменты, вбирающие сложность разработок частей сложного объекта. Ниже рассматривается табличный метод реализации программно-логических функций ФПО, позволяющий существенно снизить сложность их разработки. Рассмотрение начинается с анализа структуры системы функций ФПО. Структура. ФПО как и любая сложная конструкция имеет структуру. Одной из компонент начального этапа разработки ФПО является перечисление всех видов соединений, Эти функции и являются исходной базой разработки ФПО. Таким образом, первичное выделение ФПО как подсистемы из системы проводится по функциональному признаку, т.е. определяется, каковы функции системы. В системном анализе рассматриваются два принципа построения структур систем: ► «структура из функций»; ► «функции из структуры». ►Принцип «структура из функций». Самый распространённый эмпирический способ построения структур через описание функций системы, т.е. структура определяется перечислением функций, реализуемых ею. Описание ведется на языке функций, положительным свойством которого является простота структуры в виде набора функций. Однако структура такой системы является «жёсткой», не адаптируемой. Она плохо приспособлена к модернизации системы в процессе её «жизненного цикла». Для простых систем, содержащих небольшое количество функций, такой подход является приемлемым. Для систем, содержащих десятки и более функций и ориентированных на постоянную модернизацию в процессе «жизненного цикла», он явно не приемлем. Кроме того, существенным недостатком, даже при небольшом количестве функций, является невозможность видеть принцип построения функций. Структура такой системы отвечает на вопрос: что делает система? (какие её функции?). Более же важным на всех этапах разработки, и особенно при модернизации, является вопрос: как строятся функции? Его решение позволяет ответить на вопрос, какие вообще функции данного класса можно построить? ►Принцип «функции из структуры». Таким образом, построение структуры системы перечислением её функций, не даёт желаемого эффекта. Однако в ходе практической деятельности человека был создан другой – удобный и компактный способ построения структур в виде ограниченного числа элементов, с помощью которых, по заданным правилам их соединения (компоновки), строятся более крупные объекты. Например, буквы алфавита, из которых создаются слова, а из них строятся предложения; детские кубики, с помощью которых строятся рисунки. Структура таких систем задаётся следующими компонентами: ♦ набора исходных компонент; ♦ правил соединения компонент (связей), используемых для получения заданных функций в системе. Описание функций здесь идёт на языке структуры. Достоинством таких структур, кроме их компактности, является и указание метода, как создать функции системы. Такая структура хорошо адаптируема, так как в ней заложен принцип построения её функций. Формально её можно задать в виде: СТРУКТУРА = (ЭЛЕМЕНТЫ + СВЯЗИ) -> ЦЕЛОСТНОСТЬ Как видно из описания, принцип функции из структуры нужно использовать как инструмент реализации алгоритмов программно - логических функций. 57 Каждый из подходов характеризуется своим типом структур. Структура систем первого типа характеризуется жёсткостью образующих её функций, ибо функции реализуются отдельно друг от друга. Появление новой функции приводит к новой реализации, т.к. жёсткость не даёт возможности перекомпоновки элементов, связей, цепочек (да они при таком подходе и не выделяются в функциях). В системах второго типа, структура характеризуется гибкостью, и появление новой функции сводится к перекомпоновке элементов за счёт связей. Функциональное многообразие таких систем получается не за счёт многообразия жёстких функций, а за счёт того, что при резко ограниченном числе элементов функций система имеет возможность менять связи между ними. Подход к построению структур методом «функции из структуры». С точки зрения научного направления САПР (Системы Автоматизации ПРоектирования) в части системной технологии, оба метода являются формальными методами построения структур сложных систем. Как видно из описания, метод «структура из функций» затрагивает внешние компоненты системы (её функции). Метод «функции из структуры», который даёт гибкую структуру, наоборот, для своей реализации требует глубинной проработки функций системы (т.е. внешне он «не виден»). Инструментом глубинных проработок систем является математика. С математической точки зрения гибкая структура – та, которая задана аксиоматически. Аксиоматический метод (аксиоматика) определяется как способ построения предметной области, при котором выбираются исходные (неопределяемые) положения, а всё остальное выводится из исходных положений через принятую систему логики. Таким образом, математическим методом построения функций из «кубиков» является аксиоматизация, в частности аксиоматизация класса программно-логических функций. Методология аксиоматизации программно-логических функций. Функция определяется как совокупность состояний в пространстве и времени. Проанализируем данное определение. Во – первых, из него можно выделить понятие состояние. Далее, это совокупность состояний, которая развёртывается в пространстве и времени, причём переход из одного состояния в другое интерпретируется как процесс, развёртывающийся во времени. Любой переход осуществляется под действием причины (сигнала), которая порождает этот переход. Таким образом, функция в данной интерпретации характеризуется следующими компонентами: состояние, причина, процесс, время. На их основе скомпонуем пару (функция – состояния функции). Сразу же возникает задача: как программно – логические функции разделить (раздробить, разрезать и т.д.) на состояния? Эта задача влечёт за собой поиск инструмента для разделения функции. Этот инструмент должен быть предельно абстрактным, чтобы его можно было применять к любой конкретной функции. Процесс описания класса конкретных функций абстрактным инструментом называется формализацией. В нижеследующих подразделах показана формализация пары функция – состояния функции. Так как при её формализации, как инструмент, используется компонента теории дискретных автоматов, то введён подраздел, дающий краткие сведения об абстрактном дискретном автомате. Абстрактный дискретный автомат. Абстрактный дискретный автомат (от греч. automatos – самодействующий) является математической конкретизацией ЧЯ. Он является базовой компонентой в теории автоматов, которая была разработана для логического описания электрических схем, содержащих логические элементы И, ИЛИ, НЕ. Абстрактный дискретный автомат – объект, способ реализации которого не имеет значения (т.е.ЧЯ), и который описывается взаимосвязью множеств: ► входов X = {X1, X2, ..., Xi,…, Xm } ► выходов Y = {Y1, Y2, ..., Yk …, Yp } ► состояний S = {S1, S2, ..., Sj,…, Sn } Задание работы автомата определяется указанием для каждой пары {Xi, Sj,}: 58 ♦ входного сигнала Xi, который является причиной перехода состояния S(j-1) в состояние Sj; ♦ состояния Sr, в которое автомат переходит в результате отработки сигнала Xi; ♦ выходного сигнала Yk, который появляется на выходе автомата после отработки входного сигнала Xi; В дискретном автомате приняты следующие допущения. ● Наличие произвольного числа отличных друг от друга состояний автомата. ● Переход из одного состояния в другое возможен не ранее чем через некоторый промежуток времени ∆ (∆>0 - интервал дискретности), т.е. автомат функционирует в дискретном времени t= 0,1,2,… ● Число различных входных и выходных сигналов конечно. ● Входные сигналы – причина перехода автомата из одного состояния в другое. ● Выходные сигналы – реакция автомата на входные сигналы, они относятся к моментам времени, определяемым соответствующими переходами автомата. ● Однозначность переходов: автомат, находящийся в некотором состоянии, под действием входного сигнала не может перейти более чем в одно состояние. Формальное описание работы автомата во времени t задаётся на уровне его: ■ состояний (S); ■ выходных сигналов(Y). В методологии рассматривается только описание работы автомата на уровне его состояний. На уровне состояний формальное описание работы автомата во времени t задаётся в виде: S(t) = Ψ [S(t- 1), X(t)] (1) Функция Ψ называется функцией переходов (т.е. функция, которая описывает переходы автомата из одного состояния в другое). Компоненты функции (1) имеют следующий смысл: S(t) – одно из состояний в множестве S, в которое перешёл автомат в момент времени t; S(t-1) – одно из состояний в множестве S, в котором находился автомат в момент времени (t – 1) (в момент, предыдущий перед t); X(t) - один из входных сигналов в множестве X, приходящий в момент t. Выражение .(1) задаёт следующее словесное описание работы автомата: ► если автомат в момент времени t находился в одном из своих состояний S(t-1) ► и пришёл входной сигнал X(t), ► то автомат перейдёт в состояние S(t). Кроме функции перехода в абстрактном дискретном автомате используется и инструмент в виде таблицы переходов. Таблицы переходов. Представим формально процесс одного из переходов S(t-1) в S(t) по функции в виде: X(t) +S(t-1) S(t) (2) Последовательность таких процессов в дискретные интервалы времени t = 1, 2, 3,…n дает описание алгоритма работы автомата. Таким образом, каждое состояние Sj в соответствующие дискретные моменты времени может быть или S(t-1) или S(t). Из этого следует, что для идентификации состояний их нужно нумеровать. Например, фрагмент работы автомата имеет состояния S = {S0, S1, S2, S3, S4}, входные сигналы X = {X1, X2, X3} и 5 тактов (t1 - t5) работа фрагмента описываются следующим образом: t=1 X1 + S0 S1 t=4 X3 + S3 S4 t=2 X3 + S1 S2 t=5 X2 + S4 S2 t=3 X2 + S2 S3 (3) 59 Как видно из примера, аксиоматическими компонентами здесь являются различные состояния функции. Такое описание при разработках различного типа систем или процессов удобно, т.к. требует только конкретизации в виде названий сигналов Xi и названий состояний алгоритма работы автомата Sj, ибо как реализуются (программно-аппаратный вид) эти компоненты на данном этапе значения не имеет. Недостатками такого описания являются: ● громоздкость (при большом количестве состояний и сигналов); ● абстрактность (для конкретного автомата нужно все время помнить как называются все Хi и Sj). Представление автомата по (1) можно описываться в табличном виде. Такие таблицы называются таблицами переходов. На рис.2.9.1 таблицей переходов описан фрагмент работы автомата по выражению (1). В столбце «Названия сигналов» вписаны построчно обозначения входных сигналов X1, X2, X3 (названия сигналов и состояний в примере не даны). Столбцы S0, S1, S2, S3, S4 являются состояниями в S(t-1) по (1). В клетке на пересечении соответствующей строки с сигналом X(t) и столбца S(t-1) ставится состояние S(t). При разработке логических алгоритмов в табличном виде необходимо соблюдать все условия, данные для дискретных автоматов (см. раздел «абстрактный дискретный автомат»). Коррекции в такой таблице просты. Например, новые связи при тех же сигналах и состояниях вводятся путем постановки соответствующего состояния в клетку на пересечении нужных столбца и строки. Новое состояние вводится добавлением столбца, а новый сигнал – добавлением строки. Названия сигналов X1 X2 X3 Названия состояний S0… S1… Sn…. Состояние в S (t-1) S0 S1 S2 S3 S4 S1 S3 S2 S2 S4 Рис.2.9.1 Фрагмент описания работы автомата таблицей переходов Интерпретация функции переходов абстрактного дискретного автомата для реализации программно - логических функций. /Здесь интерпретация обозначает истолкование (раскрытие смысла) абстрактных понятий автомата в конкретные, применительно к данной реализации/. Теория автоматов была разработана для электронных схем устройств, содержащих базовые логические схемы типа И,ИЛИ,НЕ. В них ясно, что подразумевалось под входными и выходными сигналами. Под состояниями схемы подразумевались состояния её электронных компонент от прихода входного сигнала до выдачи выходного сигнала. Для применения функции (1) как инструмента при разработке ФПО класса программно – логических функций необходима её интерпретация. Входные сигналы X(t) интерпретируются как сигналы начала процесса по переводу любого состояния функции S(t-1) в состояние S(t). Например: действия абонентов на телефонном аппарате или мобильном телефоне (МТ); различные действия операторов на пультах (в том числе и проверка какой – либо информации, появляющейся на пульте, после которой необходимо провести какие – либо действия), отработка / не отработка устройства и т.д. 60 Окончание процесса перехода интерпретируется как переход в состояние S(t). Например: окончание какой–либо части реализуемой функции после нажатия клавиши на МТ; окончание какой-либо части процесса после прихода сигнала; «отклик» из оборудования после посылки в него входного сигнала; различного рода высветки, появляющиеся на пультах операторов после проведения каких – либо действий; и т.д. Исходя из такой широкой интерпретации, применительно к программным компонентам входной и выходной сигналы интерпретируются как начало и окончание работы программной компоненты. Переход из состояния в состояние интерпретируется как запуск соответствующей программы, реализующей переход из состояния S(t-1) в состояние S(t). Аналитическое представление автомата, как указано выше, даётся в виде функции переходов: S(t) = Ψ [S(t- 1), X(t)] (3) Семантика (смысл) компонент функции переходов (3) в данной интерпретации задаётся в виде: ♦ X(t) – множество входных сигналов, которые интерпретируются как действия абонентов; ♦ S – множество состояний алгоритма конкретной программно–логической функции; ♦ S(t- 1) – состояние функции до прихода xi сигнала из множества X(t), т.е. до действия абонента; ♦ S(t) – состояние функции после прихода и отработки xi сигнала из множества X(t), т.е. после обработки действия абонента; ♦ t – время, принимающее дискретные значения: 0, 1, 2…., n. В данной интерпретации каждая дискрета это время программной реализации алгоритма, переводящего состояние S(t- 1) в S(t); ♦ Ψ – функция, реализующая выражение (2). В данной интерпретации это, пока неизвестные алгоритмы, на основе которых будут реализованы программы перехода из состояния S(t- 1) в состояние S(t) под действием сигнала из множества X(t). На уровне состояний реализация программно – логических функций по (2) во времени t описывается в виде: ● если алгоритм функции во время (t-1) был в состоянии S(t-1) и затем ● во время t пришёл сигнал X(t), ● то алгоритм функции переходит в состояние S(t). Описание функций с такой интерпретацией ведётся с помощью таблицы переходов. Стратегия разработки ФПО с использованием таблиц. Применение таблиц в программировании для описания логических процессов существенно меняет стратегию разработки ФПО. На рис.2.9.2 показаны схемы разработок программного обеспечения традиционным методом (рис.2.9.2а) и табличным (рис.2.9.2б) на уровне «функции - алгоритм – программы». 61 Ф П О Функция 1 Функция k Ф Функция 1 Функция k … … АЛГОРИТМЫ Функция 1 П О Аксиоматика функций Функция k … табличный шаблон КОМПЛЕКС ПРОГРАММ программа1 программа k … КОМПЬЮТЕР КОМПЬЮТЕР … Функция 1 Функция 1(таблица) (таблица) а) Комплекс программ переходов состояний S(t-1) в St Функция k (таблица) … Комплекс обработки таблиц б) Рис. 2.9.2 Схема разработок ФПО традиционным и табличным методами При традиционном методе ФПО делится на функции, затем разрабатываются их алгоритмы, после чего они программируются. Таким образом, получается столько программ сколько функций. В больших программных СРВ, где ОУ не компьютер, алгоритмы и программы разрабатываются, как правило, разными типами специалистов. При этом каждый тип 62 специалистов, мысля в терминах своей предметной области, вынужден вникать в смысл другой области, в которой он не специалист. В таких системах непонимание между ними – основной источник ошибок. Табличная аксиоматика свободна от этих недостатков. Она основывается на табличном способе описания связей компонентов, в отличие от традиционного, программного описания. В программно – логических функциях логические связи составляют наибольший объем, и именно они резко усложняют разработку. В табличном методе связи выделяются и вместо их программирования они переносятся в таблицу. Описание их через таблицу не требует знания языка программирования. Методология применения аксиоматики. В понятии «структура» выражение 2 является аналитическим представлением принципа «функции из структуры» в математических терминах /математическая модель/. На её основе, как инструменте, строится методология. В методических рекомендациях методология определяется как набор технологических принципов разработки, упрощающих разработку сложного изделия. С точки зрения математики этап построения функций на базе символов прост и удобен, так как их описание сводится к построению цепочек символов – идеала математики. Однако, практическая реализация крайне затруднительна из-за высокой абстрактности и низкой наглядности. Поэтому, в методологическом плане, строится вспомогательная модель, повышающая наглядность и снижающая абстрактность (в данном случае это таблица). Таким образом, возникает задача разработки методологии класса программнологических функций, на базе выражений (1 – 3), упрощающих их проектирование. На рис.2.9.3 дана принципиальная методологическая схема разработки программнологических функций. Э1 Э2 Э3 Э4 Рис.2.9.3 Методологическая схема разработки программно – логических функций В схеме на рис.2.9.3 обозначены следующие этапы разработки: Э1 – выделение функций реализуемого объекта с их описанием реализации. Э2 – разработка конкретных элементов аксиоматики («кубиков») для выделенного объекта /создание логико-математической модели объекта проектирования/. Э3 – выбор табличной формы для «связывания» элементов аксиоматики. Э4 – описание реализуемого объекта с использованием компонент из Э2 и Э3. Разработка по схеме на рис.2.9.2 заключается в следующем. На этапе Э1 Выделяется объект проектирования т.е. как функция(и), так и её(их) описание их реализации в терминах ОУ. Например, для сотового телефона это будут реализуемые функции (каждая функция – это объект). Выбранный объект является «входными данными» для этапа Э2. На этапе Э2 проводится разработка на основе интерпретации абстрактного автомата для реализации программно - логических функций конкретных компонент описания выделенного объекта. Например, для сотового телефона это будут действия абонента МТ (мобильного телефона), которые, как бы «разрезают» реализуемые функции на состояния (Sj)./кубики/ Этот этап является наиболее креативным, использующим принцип «что есть что?». Этап заканчивается выделением компонент выбранного объекта. Выходные данные этапа являются «входными данными» для этапа Э3 и как одна из компонент «входных данных» для этапа Э4. На этапе Э3 проводится выбор одной из табличных форм для «связывания» компонент, полученных на этапе Э3. Здесь это таблица переходов. Табличная форма, помимо простоты 63 «связывания» компонент, имеет и простую программную реализацию. Выбранная форма является одной из компонент «входных данных» для этапа Э4. Здесь также начинается разработка комплекса обработки выбранного типа таблиц. (Так как табличная форма выбирается для класса функций, то уже после реализации в табличном виде первой функции этот этап пропускается для всех остальных функций). Полученные на этапах Э2 и Э3 компоненты в совокупности есть ни что иное как инструмент для реализации этапа Э4. На этапе Э4 проводится табличное описание выбранного объекта с использованием инструмента, компоненты которого разработаны на этапах Э2 и Э3. Место методологии в процессе проектирования. Данная методология в пособии обозначается как табличный метод проектирования алгоритмов класса программно логических функций. Рассмотрим место данной методологии в процессе проектирования. Разработка ПО СРВ характеризуется понятием «жизненный цикл», одним из компонентов которого является проектирование ПО, которое должно представляться в виде двух фаз (этапов): ♦ архитектурное проектирование (проектирование верхнего уровня); ♦ рабочее проектирование (детальное или проектирование нижнего уровня). В архитектурное проектирование (АП) входит разработка описания программ в самом общем виде: сведения об основных компонентах программ и их взаимосвязях, об основных алгоритмах, которые в них реализуются, об основных структурах данных и т.д. Сюда же входит и декомпозиция программ – разбиение готовой программы на модули, которое проводится в соответствии с рядом проектных принципов и критериев. В результате такой декомпозиции грубо определяется структура программы. Для комплексов алгоритмов, объединённых единой функциональной целью (например, функции сотового телефона) разработка такой методологии входит в этап архитектурного проектирования, ибо методология позволяет представить весь спектр функций в виде набора состояний Sj, соединённых соответствующими связями. На этапе рабочего проектирования (РП) общее архитектурное описание детализируется до уровня реализации на соответствующем языке программирования. Принципиальное отличие АП от РП состоит в том, что АП указывает направление конкретной разработки программ (т.е. направление достижения цели), а РП, согласно этому направлению реализует достижение поставленной цели в заданном направлении. /Образное различие АП с РП можно представить в виде следующей аналогии: поставлена задача (цель) – «прибыть из Санкт–Петербурга в Москву». На этапе АП решается задача выбора направления поездки: любой вид транспорта (поезд, самолёт, электричка, автомобиль) непосредственно от Санкт – Петербурга до Москвы, или, например, через Копенгаген и Париж (Санкт - Петербург - Копенгаген, Копенгаген – Париж, Париж – Москва). На этапе РП выбранное направление реализуется. Как видно из примера, если будет выбран путь через Копенгаген, Париж, то на этапе РП поездка «влетит в копеечку», не говоря уже о времени. Такой алогичный пример выбран специально, чтобы показать важность этапа АП. К сожалению, в программных разработках иногда выбирается путь через Копенгаген и Париж, ведь это не география, которую знают все/. Табличный метод проектирования алгоритмов класса программно - логических функций для больших программных СРВ принадлежит к фазе АП, ибо он задаёт направление разработки алгоритмов с помощью таблиц. На фазе РП такое направление резко снижает объёмы работы, ибо вместо разработки массы программ, реализующих заданный класс алгоритмов функций, разрабатываются таблицы алгоритмов и один комплекс обработки всех таблиц, реализующих этот класс. 64