Что такое модуль системы

Модуль (программирование)

Модуль — функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части (например, Active Oberon), предназначенный для использования в других программах. Модули позволяют разбивать сложные задачи на более мелкие в соответствии с принципом модульности. Обычно проектируются таким образом, чтобы предоставлять программистам удобную для многократного использования функциональность (интерфейс) в виде набора функций, классов, констант. Модули могут объединяться в пакеты и, далее, в библиотеки. Удобство использования модульной архитектуры заключается в возможности обновления (замены) модуля, без необходимости изменения остальной системы. В большинстве случаев различные модули могут запускаться как на одном сервере, так и на разных, для распределения нагрузки и создания распределенной архитектуры.

История концепции модулей

История концепции модулей, как единиц компиляции, восходит к языкам Фортран II и Кобол, то есть к концу 1950-х годов [1] [2] . В 1976 году появилась публикация, в которой была развита концепция модульности — о языке Mesa (англ.), который был разработан в Xerox PARC. В 1977 году подробно ознакомился с этой концепцией ученый Никлаус Вирт, общаясь с разработчиками в Xerox PARC. [3] Эти идеи были использованы Виртом при создании языка Модула-2, публикация о котором вышла в 1977 году [4] .

Поддерживающие языки

Языки формально поддерживающие концепцию модулей: IBM S/360 Assembler, Кобол, RPG, ПЛ/1, Ада, D, F   (англ.) , Фортран, Haskell, Blitz BASIC, OCaml, Паскаль, ML, Модула-2, Оберон, Компонентный Паскаль, Zonnon, Erlang, Perl, Python и Ruby. В IBM System i использовались «модули» от языков RPG, Кобол и CL, когда программировалась в среде ILE.

Модульное программирование может быть осуществлено, даже когда синтаксис языка программирования не поддерживает явное задание имён модулям.

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

Примечания

  1. A brief history of FORTRAN
  2. COBOL Subprograms
  3. Никлаус Вирт. Краткая история Modula и Lilith, перевод с англ. с комментариями в тексте Р. Богатырева
  4. The History of Modula-2 and Oberon
  • Концепции языков программирования
  • Структурные языки программирования

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «Модуль (программирование)» в других словарях:

Модуль — (от лат. modulus  «маленькая мера»): В Викисловаре есть статья «модуль» Мо … Википедия

Модуль (значения) — Модуль (от лат. modulus «маленькая мера») составная часть, отделимая или хотя бы мысленно выделяемая из общего. Модульной обычно называют вещь, состоящую из чётко выраженных частей, которые нередко можно убирать или добавлять, не разрушая вещь… … Википедия

Контрактное программирование — (design by contract (DbC), programming by contract, contract based programming)  это метод проектирования программного обеспечения. Он предполагает, что проектировщик должен определить формальные, точные и верифицируемые спецификации… … Википедия

Связанность (программирование) — Связанность (англ. coupling) или зависимость (англ. dependency) характеристика взаимосвязи модуля с другими модулями. Это степень, в которой каждый программный модуль полагается на другие модули. Связанность обычно… … Википедия

Функциональное программирование на Питоне — Функциональное программирование является одной из парадигм, поддерживаемых языком программирования Python. Основными предпосылками для полноценного функционального программирования в Python являются: функции высших порядков, развитые средства… … Википедия

Функциональное программирование на Python — Функциональное программирование является одной из парадигм, поддерживаемых языком программирования Python. Основными предпосылками для полноценного функционального программирования в Python являются: функции высших порядков, развитые средства… … Википедия

Объектно-ориентированное программирование на Python — Объектно ориентированное программирование на Python  программирование на Python с использованием парадигмы ООП: с самого начала Python проектировался как объектно ориентированный язык программирования[1]. Содержание 1 Введение 1.1 … Википедия

Аспектно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия

Эволюционное программирование — Содержание 1 Эволюционное программирование 2 Современное эволюционное программирование … Википедия

Компонентно-ориентированное программирование — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная … Википедия

Что такое модуль системы

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

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

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

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

Подсистемы (и реализующие их модули) могут образовывать в системе уровни, либо разделы.

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

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

Система с уровневой архитектурой при переносе на другую платформу требует переписывания только одного (самого нижнего) уровня. Пример системы с уровневой архитектурой представлен на рисунке 3.1.

Рис. 3.1. Пример системы с уровневой архитектурой

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

Обычно система подразделяется на модули (подсистемы) с использованием обоих способов разбиения в самых разных комбинациях: уровни делятся на разделы, разделы содержат в себе уровни. Пример такой структуры системы показан на рисунке 3.2.

Рис. 3.2. Типичная структура системы

Рис. 3.4. Топология звезды

Когда все модули и подсистемы всех уровней названы, необходимо показать информационные потоки между модулями и подсистемами, построив ДПД (примеры см. в п. 3.1.8). Это позволит понять топологию системы. Топология системы определяется совокупностью потоков информации в системе; например, у компилятора конвейерная топология (рисунок 3.3), можно представить себе топологию звезды (рисунок 3.4) и т.п.; нужно стремиться, чтобы топология системы была как можно проще.

Компьютерные модули. Описание преимуществ применения и обзор популярных стандартов

В статье рассматриваются особенности и преимущества использования компьютерных модулей при разработке промышленных вычислительных систем и комплексов. Приведены обзор наиболее популярных стандартов компьютерных модулей и примеры их применения.

Введение

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

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

Вариантом решения может быть использование готовых встраиваемых процессорных модулей, например компьютерных модулей (Сomputer on Module (CoM) или System on Module (SoM), одноплатных компьютеров (Single Board Computer (SBC) или материнских плат (Motherboard).

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

Проблемы проектирования и обеспечения серийного выпуска промышленного электронного оборудования

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

Помимо требований к производительности и масштабируемости, оборудование, предназначенное для промышленного применения, должно выпускаться в течение длительного срока, как правило от 10лет.

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

Преимущества модульного построения

Доступные на рынке встраиваемые процессорные модули построены на базе современных высокопроизводительных процессоров, имеют встроенную поддержку различных интерфейсов ввода-вывода и компактный форм-фактор.

Компьютерные модули (КМ) – хороший выбор для индустриальных применений, особенно где решения на базе стандартных одноплатных встраиваемых компьютеров не эффективны.

КМ помещает весь вычислительный узел в модуль малого форм-фактора, который может быть установлен на платах-носителях, содержащих специализированные схемы ввода-вывода и питания (рис.1).

Рисунок 1. Структура КМ и платы-носителя.

Рисунок 1. Структура КМ и платы-носителя.

Все стандартные функции персонального компьютера, такие как графика, Ethernet, звук, оперативная и постоянная память или интерфейсы для ее подключения, параллельный и последовательный порты, порты USB и системные шины (PCIe, PCI, ISA, I 2 C, SPI, LPC) размещаются в стандартном модуле. Пользователю нужно лишь добавить специально разработанную несущую плату (плату-носитель) для реализации определенных функций. На несущей плате (рис.2) размещаются все интерфейсные разъемы для подключения системы к периферийным устройствам, таким как жесткие диски, дисплеи и т. д.

Рисунок 2. Несущая плата с компьютерным модулем.

Рисунок 2. Несущая плата с компьютерным модулем.

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

Практически все преимущества использования КМ лежат в экономической плоскости. Самое главное преимущество – это снижение стоимости и сроков разработки.

Применение КМ может помочь производителям промышленного оборудования реализовать современные требования, сократив затраты и время разработки, необходимые для изменения существующих конструкций и расширения ассортимента продукции. Это справедливо, в частности, для устройств, которым требуется долговечность (жизненный цикл от 10 до 30 лет), а также современные производительность и возможности ввода-вывода.

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

При полностью самостоятельной разработке аппаратной части как правило разработчик затрачивает от 12 до 36 месяцев, не считая времени на разработку системного и прикладного программного обеспечения, тестирование, проведение испытаний, сертификацию и т.п.

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

Рисунок 3. Сравнение подходов при разработке вычислительного устройства.

Рисунок 3. Сравнение подходов при разработке вычислительного устройства.

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

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

К другим экономическим преимуществам использования КМ относятся возможность построения линейки продукции на базе КМ различной производительности, выбора производителя КМ с наилучшим соотношением цена/качество и другие возможности, актуальные для мелкосерийных производств и узкоспециализированных рынков.

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

Обзор рынка

Мировой рынок КМ неуклонно растет с момента выпуска первого стандарта COM Express в 2005 году. С тех пор КМ нашли применение в самых разных вычислительных приборах и приложениях, особенно тех, которые требуют компактного размера и гибкого подхода для модернизации и адаптации под различные применения. Телекоммуникационное оборудование и аппаратура связи, сетевые устройства, игровые автоматы, устройства промышленной автоматизации и здравоохранения уже много лет назад начали применять КМ для реализации тех. требований к оборудованию. КМ и их масштабируемая архитектура особенно привлекательны для новых высокопроизводительных приложений, таких как искусственный интеллект (ИИ), интернет вещей, машинное зрение (ML), периферийные вычисления и аналитика и другие высокопроизводительные приложения.

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

По данным международного рейтингового агентства VDC Research VDC (рис. 4), мировой рынок встраиваемых компьютерных модулей начиная с 2020г показывает рост в 12, 4% и к 2025г. достигнет уровня 5,51 млрд. долларов США.

Рисунок 4. Объем продаж КМ за 2018-2023 гг (млн. долл. США)

Рисунок 4. Объем продаж КМ за 2018-2023 гг (млн. долл. США)

Популярность модулей COM Express основана на заложенной в стандарт гибкости, наличия нескольких типов размеров и назначений контактов при использовании общих разъемов и монтажных отверстий. КМ COM Express поддерживают высокоскоростные последовательные интерфейсы, включая PCI-Express Gen 3, 10GbE, USB 3.0, SATA, а также графику высокого разрешения. Альтернативные архитектуры, такие как Qseven и SMARC имеют свои уникальные преимущества, например использование процессоров с архитектурами ARM, x86 и RISC-V (рис. 5).

Рисунок 5. Рынок КМ, сегментированный по форм-факторам (% от общего объема продаж).

Рисунок 5. Рынок КМ, сегментированный по форм-факторам (% от общего объема продаж).

Стандарты компьютерных модулей

Для компьютерных компьютеров существует множество стандартов и форм-факторов, позволяющих быстро и эффективно создавать решения для тех или иных приложений практически во всех отраслях промышленности, телекоммуникаций, систем безопасности, транспорта, энергетики и др. Далее будут представлены стандарты компьютерных модулей ETX, QSeven, SMARC СOM Express, COM-HPC как наиболее популярные среди разработчиков и пользователей встраиваемых систем.

ETX

Исторически спецификация ETX (англ. Embedded Technology eXtended) появилась самой первой, и можно сказать, что с данной спецификации, разработанной компанией Kontron, фактически началась эра КМ.

Главная особенность данной спецификации заключается в наличии шины ISA. Соответственно КМ, производимые по данной спецификации, как правило, выбираются заказчиками тогда, когда им нужна данная шина.

Размер платы составляет 95×114 мм (рис. 6). Все сигналы ввода-вывода, а также полноценная реализация шин ISA и PCI выводятся на четыре низкопрофильных разъема типа HIROSE на нижней стороне платы.

Рисунок 6. Габаритные размеры модулей ETX

Рисунок 6. Габаритные размеры модулей ETX

КМ, производимые согласно спецификации ETX, до сих пор широко распространены при решении задач промышленной автоматизации, визуализации технологических процессов и в других приложениях, где не требуются высокая производительность процессора и наличие широкополосных коммуникационных интерфейсов (рис. 7).

Список основных интерфейсов и их распределение по разъёмам Х1. Х4 можно найти в табл. 1.

Рисунок 7. Внешний вид модуля ETX

Рисунок 7. Внешний вид модуля ETX

QSeven

Родоначальникам спецификации Qseven являются компании Congatec и Seco. Данная спецификация была разработана с целью удешевления КМ, сделав их более доступными и более приемлемыми для относительно лёгких и простых приложений.

Модули имеют стандартизированные габариты 70 x 70 или 40 x 70 мм (рис. 8). Данная спецификация предполагает использование всего одного разъёма типа MXM (такие разъёмы широко применяются для подключения высокоскоростных графических карт PCI Express в ноутбуках), устанавливаемого на плате носителе, и краевых двухсторонних контактов на плате КM.

Рисунок 8. Габаритные размеры модулей QSeven

Рисунок 8. Габаритные размеры модулей QSeven

Спецификация позволяет выводить дополнительные (определяемые производителем) интерфейсы ввода вывода в специально предназначенном для этого месте на плате КМ. Низкий бюджет теплового рассеяния предполагает использование маломощных процессоров, что в совокупности с возможностью отвода тепла через специальную теплопроводящую пластину позволяет создавать безвентиляторные решения.

Рисунок 9. Внешний вид модуля Qseven

Рисунок 9. Внешний вид модуля Qseven

Qseven позволяет использовать процессоры с архитектурой x86 и ARM. Благодаря своей тонкой конструкции, модули Qseven помещаются в компактные корпуса и, таким образом, идеально подходят для мобильных приложений и приложений IoT (рис. 9).

Основные характеристики модулей стандарта Qseven приведены в табл. 1.

SMARC

Стандарт SMARC («Smart Mobility ARChitecture») разработан консорциумом SGET в 2013 году. Модули стандарта быстро стали очень популярными масштабируемыми строительными блоками, позволяющими разработчикам создавать приложения нового поколения.

Рисунок 10. Габаритные размеры модулей SMARC

Рисунок 10. Габаритные размеры модулей SMARC

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

Кроме того, модули SMARC зарекомендовали себя при создании компактных портативных устройств, где энергопотребление не должно превышать нескольких ватт, а вычислительная мощность должна быть особенно высокой

Модули могут быть построены на процессорах с архитектурами ARM, X86 или RISC – аналогичных тем, которые используются во многих привычных устройствах, таких как планшетные компьютеры и смартфоны.

Рисунок 11. Внешний вид модуля SMARC

Рисунок 11. Внешний вид модуля SMARC

Спецификация определяет два размера модуля: 82 мм x 50 мм и 82 мм x 80 мм (рис.10). Основные характеристики модулей стандарта SMARC приведены в табл. 1.

Печатные платы модуля имеют 314 контактный краевой разъем, который соединяются с низкопрофильным 314-контактным прямоугольным разъемом на несущей плате (рис.11).

СOM Express

Стандарт COM Express описывает четыре типоразмера КМ, называемые Mini, Compact, Basic и Extended. Все четыре типоразмера имеют перекрывающиеся механические узлы, стандартизированные высоту и теплораспределители (рис. 12).

Рисунок 12. Габаритные размеры модулей COM Express

Рисунок 12. Габаритные размеры модулей COM Express

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

К основным характеристикам модулей Mini относятся:

Размер модуля: 84 мм x 55 мм

Варианты высоты стека между несущей платой и модулем 5 и 8 мм

Широкий диапазон входного напряжения питания (4,75-20 В)

Один 220-контактный разъем (2-й разъем обычно не используется)

Хотя это и не является обязательным требованием, модули Mini часто содержат напаянный Flash-накопитель.

Модули Compact предназначены для мобильных систем и стационарных систем с габаритными ограничениями. К основным характеристикам модулей относятся:

Размер модуля: 95 мм x 95 мм

Варианты высоты стека между несущей платой и модулем 5 и 8 мм

Высота модуля с теплоотводом 18 мм

Возможность установки одного (или двух сложенных) модулей SO-DIMM с горизонтальным креплением.

Два 220-контактных разъема.

Модули Basic предназначенs для мобильных систем и стационарных систем с габаритными ограничениями. К основным особенностям модулей Basic относятся:

Размер модуля: 125 мм x 95 мм.

Варианты высоты стека между несущей платой и модулем 5 и 8 мм

Высота модуля с теплоотводом 18 мм

Возможность установки одного (или двух сложенных) модулей SO-DIMM с горизонтальным креплением.

Два 220-контактных разъема.

Модули Extended, предназначены для заказных приложений, которым требуется больший объем системной памяти, допустим размер модуля для размещения полноразмерных модулей DIMM,

Ключевые особенности модулей Extended:

Размер модуля: 155 мм x 110 мм

Варианты высоты стека между несущей платой и модулем 5 и 8 мм

Высота модуля с теплоотводом 18 мм

Возможность установки двух полноразмерных модуля памяти DIMM или mini DIMM или 2 модуля SO-DIMM горизонтального или вертикального монтажа.

Два 220-контактных разъема.

Позволяет использовать ЦП с более высокой производительностью, которые не поддерживаются в модулях Compact и Basic.

Габарит Extended не популярен среди серийно-выпускаемых модулей COM Express

Присоединение КМ COM Express к платам-носителям осуществляется через один или два высокоплотных низкопрофильных разъёма со стандартизированным назначением контактов (рис. 13). Наиболее популярны типы «распиновок» с номерами 6, 7 и 10. Причём для каждого типа «распиновки» стандарт COM Express описывает набор обязательных интерфейсов (минимальный набор), и набор дополнительных интерфейсов (максимальный набор).

Рисунок 13. Внешний вид модулей COM Express

Рисунок 13. Внешний вид модулей COM Express

Основные характеристики модулей стандарта COM Express и описание интерфейсов для популярных типов распиновок контактов приведены в табл. 1.

СOM-HPC

Такие приложения как искусственный интеллект, технология беспроводной связи 5G требуют большой пропускной способности и вычислительной мощности. Это, в свою очередь, требует новых подходов к проектированию встраиваемых компьютеров: вычислительной мощности существующих стандартов уже недостаточно для обеспечения растущих требований рынка встраиваемых систем по производительности и пропускной способности.

Ведущие производители компьютерных модулей и встраиваемых систем входящих в консорциум PICMG создали новую стандарт компьютерных модулей под названием COM-HPC, призванный дополнять существующий стандарт COM Express в части облегчения создания высокопроизводительных приложений.

По сравнению с COM Express, стандарт COM-HPC обеспечивает более высокую производительность встраиваемых систем. 440 контактов модуля COM Express уже недостаточно для создания мощных вычислительных устройств. К тому же производительность разъема COM Express также постепенно приближается к пределу: хотя COM Express может легко работать с тактовой частотой 8,0 ГГц и пропускной способностью 8 Гбит/с PCIe Gen 3.

Рисунок 14. Габаритные размеры модулей COM-HPC

Рисунок 14. Габаритные размеры модулей COM-HPC

Определены три типоразмера модулей COM-HPC (рис. 14):

клиентский модуль COM-HPC/Client. Предназначен для использования в вычислительных устройствах, которым требуется один или несколько дисплеев, набор интерфейсов ввода-вывода с низкой, средней и очень высокой пропускной способностью, мощные процессоры и компактные размеры. Типичными областями применения являются медицинское оборудование, высокоточные или высокопроизводительные приборы, промышленное оборудование, игровые автоматы для казино, защищенные компьютеры для применения на транспорте и т.п. Клиентские модули обычно используют SO-DIMM или припаянную память. На модуле может быть установлено до четырех модулей памяти SO-DIMM. Размеры модулей и набор интерфейсов приведены в табл 1.

серверный модуль COM-HPC/Server. Предназначен для использования в высокопроизводительных встраиваемых серверах без поддержки видео, которым требуется высокая производительности ЦП (до 150 Вт), большой объем памяти и большое количество операций ввода-вывода с высокой пропускной способностью, включая несколько каналов Ethernet 10 Гбит/с или 25 Гбит/с и до 65 каналов PCIe на скорости до PCIe Gen 5. Типичное применение — встраиваемое серверное оборудование, предназначенное для использования в полевых условиях и такие приложения, как автономные транспортные средства, базовые станции вышек сотовой связи, медицинское оборудование, системы специального назначения и т.п.. В серверных модулях обычно используются полноразмерные модули DIMM. В самом большом форм-факторе модуля COM-HPC может быть реализовано до восьми полноразмерных модулей памяти DIMM. Типовые размеры модулей и набор интерфейсов описаны в табл. 1.

COM-HPC Mini. Это новый перспективный стандарт КМ, который в настоящее время разрабатывается консорциумом PICMG с целью получения компактного высокопроизводительного стандартизированного КМ. Габариты модулей нового типа составляют всего 95 × 60 мм (рис. 15). Этого удалось добиться путём отказа от одного из разъёмов, так что контактов у COM-HPC Mini всего 400. По коммутационным возможностям это 90% от возможностей COM Express Type 6 (125 × 96 мм). На данный момент размеры и «распиновка» COM-HPC Mini финализированы, минимальные изменения в стандарт могут быть внесены в I и II кварталах 2023 года.

Назначение контактов клиентского и серверного модулей имеют много общего, но они разные. Клиентские модули не следует использовать с несущей платой, предназначенной для использования с серверным модулем, и наоборот.

Рисунок 16. Внешний вид модулей COM-HPC

Рисунок 16. Внешний вид модулей COM-HPC

В COM-HPC используется 400 контактные разъемы. На модуле может быть установлено один или два таких разъемов, что обеспечивает высокую пропускную способность на основе 800 контактов (рис. 16).

3. Структура системы. Подсистема, элемент, модуль. Типовые

Структурой системы называется её расчленение на группы элементов с указанием связей между ними, неизменное на всё время рассмотрения и дающее представление о системе в целом.

Система может рассматриваться как элемент другой системы. В этом случае она является подсистемой надсистемы (суперсистемы).

Практически любой объект с определенной точки зрения мо­жет рассматриваться как система.

То, что не входит в систему, по отношению к ней является средой. Среда системы представляет факторы, влияющие на входные переменные.

Системы, взаимодействующие со средой, называются открытыми.

Системы с входными и выходными переменными называются направленными, а системы, у которых переменные не классифицированы подобным образом-нейтральными.

Системы, перед которыми поставлена некоторая сформулированная цель называются целенаправленными. Такими почти всегда будут искусственные системы.

Понятие цели системы определим как задачу получения желаемого выходного воздействия или достижения желаемого состояния системы.

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

Набор локальных целей, как правило, сам имеет иерархическое многоуровневое строение и в той или иной степени соот­ветствует общей иерархии в системе.

Зафиксируем все значения характеристик в системе, важных для целей рассмотрения. Такую ситуацию назовем состоя­нием системы.

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

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

Большой системой назовем систему, включающую значительное число однотипных элементов и однотипных свя­зей.

Сложной системой назовем систему, состоящую из элементов разных типов и обладающую разнородными связями между ними.

Понятия «сложная система» и «большая система» не являются тождественными, т. к. последний термин характеризует только одну черту «сложности» — размерность системы.

Обще­принятого определения понятия «сложная система» нет. Сложность почти не поддается ни точному определению, ни измерению.

Скорее можно привести примеры сложной системы и характеристику «сложности», чем дать строгое математическое определение этого термина.

Сложные системы управления—собирательное название систем, состоящих из большого числа взаимосвязанных элементов. Часто сложными системами наз. системы, ко­торые нельзя корректно описать математически либо потому, что в системе имеется очень боль­шое число различных элементов, неизвестным образом связанных друг с другом (напр., мозг), либо потому, что мы не знаем природы явлений, протекающих в системе, и поэтому не можем количественно их описать. В других случаях сложными называются системы, для изучения которых необходимо было бы решать задачи с непомерно большим объемом вычислений или, вообще, переработать такой большой объем информа­ции, что для этого, даже если использовать самые быстродействующие ЭЦВМ, потребова­лось бы много миллионов лет.

Независимо от того, что рассматрива­ется как сложное или простое, в общем случае степень сложности связана с числом различаемых частей и мерой их взаимосвязанности. Т.е. степень сложности оценивается количеством информации, необходимой для описания реальной системы.

Кроме того, понятие сложности имеет субъективную обус­ловленность, поскольку оно связано со способностью понимания или использования рассматриваемого объекта. Таким образом, то, что сложно для одного, может оказаться простым для другого. Можно сказать, что мерой сложности объекта является количество интеллектуальных усилий, необходимых для понимания этого объекта.

В борьбе со сложностью можно при­влечь две концепции из общей теории систем [2].

Первая — неза­висимость. В соответствии с этой концепцией для минимизации сложности необходимо максимально усилить независимость ком­понент системы. По существу, это означает такое разбиение (декомпозицию) систе­мы, чтобы высокочастотная динамика ее была заключена в единых компонентах, а межкомпонентные взаимодействия представляли лишь низкочастотную динамику системы.

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

Традиционный метод борьбы со сложностью — принцип «разделяй и властвуй», часто называемый «модуляризацией».

Модуль – группа элементов системы, описываемая только своими входами и выходами и обладающая определённой цельностью. Чтобы уменьшить сложность системы, нужно разбить ее на множество небольших, в высокой степени независимых модулей. Довольно высокой степени не­зависимости можно достичь с помощью двух методов оптими­зации: усилением внутренних связей в каждом модуле и ослабле­нием взаимосвязи между модулями. Нужно стремиться, во-первых, реализовывать отдель­ные функции отдельными модулями (высокая прочность модуля) и ослаблять связь между модулями по данным, применяя формаль­ный механизм передачи параметров (слабое сцепление модулей).

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

Важность понятий модуля, входа, выхода подчеркивается и большим количеством их синонимов в различных разделах науки и техники. Так, например, синонимом модуля являются «агре­гат, блок , «узел», «механизм» в технике; «подпрограмма», программный модуль», «логический блок» — в программирова­нии; подразделение», «комиссия» —в организации и управле­нии.

Именно модульное строение системы в сочетании с принципе введения все более крупных модулей при сохранении отобразим объема входов и выходов позволяет рассматривать в принципе сколь угодно сложные системы.

Вторая концепция — иерархическая структура.

Иерархией назовем структуру с наличием подчиненности, т. е. неравноправных связей между элементами, когда воздействия в одном из направлений оказывают гораздо большее влияние на элемент, чем в другом. Типичная иерархическая связь с воздействиями вида «информация» и «управление» изображена на рис. 2.1.

Виды иерархических структур разнообразны. Но основных, важных для практики иерархически структур всего две — древовидная (веерная) и ромбовидная (рис. 2.2).

Рис. 2.2. Примеры иерархических структур. а – древовидная (веерная); б –

Ромбовидная структура ведет к двойной (иногда и более) подчиненности.

Иерархия поз­воляет стратифицировать систему по уровням понимания. Каждый уровень представляет собой совокупность структурных отношений между элементами нижних уровней. Концепция уровня позволяет понять систему, скрывая несущественные уровни детализации. На­пример, система, которую мы называем «человек», представляет­ся иерархией. Социолог может интересоваться взаимоотношения­ми людей, не заботясь об их внутреннем устройстве. Психолог ра­ботает на более низком уровне иерархии. Он может исследовать различные логические и физические процессы в мозге, не рассмат­ривая внутреннего строения областей мозга. Еще ниже в этой иерар­хии находится нейролог — он имеет дело со структурой основных компонент мозга. Однако он может изучать мозг на этом уровне, не заботясь о молекулярной структуре отдельных белков в ней­роне. Химик-органик интересуется построением сложных амино­кислот из таких компонент, как атомы углерода, водорода, кис­лорода и хлора. Наконец, физик-ядерщик изучает систему на уров­не элементарных частиц в атоме и взаимодействия между ними. Иерархия позволяет проектировать, описывать и понимать слож­ные системы. Если бы нельзя было принять описанный подход к из­учению человека, социологу пришлось бы рассматривать его как необъятное и сложное множество субатомных частиц. Очевидно, что такое количество деталей подавило бы его, так что невозможны были бы даже те ограниченные знания о человеке, которыми мы располагаем.

Характерны следующие виды иерархии: временная, пространственная, функциональная, си­туационная и информационная.

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

Пространственная иерархия. Признаком деления здесь является площадь, занимаемая объектом управления. Чем больше площадь объекта, тем выше его ранг. Данный признак — субъективный, так как не всегда площадь, занимаемая объектом, соответствует его зна­чимости, и его можно использовать в случае аналогичности парамет­ров элементов одного уровня.

Функциональная иерархия. В основе лежит функциональная зави­симость (подчиненность) элементов системы. Такое разделение так­же является субъективным, так как в этом случае трудно выделить границы между элементами системы.

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

Информационная иерархия. В настоящее время этот вид иерархии является очень существенным в связи с возросшим значением ин­формации для управления. В основе деления на уровни лежат опера­тивность и обновляемость информации. Именно через эти характе­ристики прослеживается иерархия информации по уровням управле­ния предприятием.

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *