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

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

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

Относительно недавно начали активно использоваться регулируемые системы переменного тока с подключением электродвигателей переменного тока через .

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

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

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

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

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

    однофазный асинхронный двигатель с короткозамкнутым ротором;

    двухфазный асинхронный двигатель с короткозамкнутым ротором;

    трехфазный асинхронный двигатель с короткозамкнутым ротором;

    трехфазный асинхронный двигатель с фазным ротором.

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

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


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

Эти двигатели также имеют короткозамкнутый ротор, а их применение гораздо шире, чем у однофазных. Здесь уже и стиральные машины, и различные станки. Двухфазные двигатели для питания от однофазных сетей называют конденсаторными двигателями, так как фазосдвигающий конденсатор является зачастую неотъемлемой их частью.

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


Обмотки статора трехфазного двигателя можно соединить по схеме «звезда» или «треугольник», причем для питания двигателя по схеме «звезда» требуется напряжение выше, чем для схемы «треугольник», и на двигателе, поэтому, указываются два напряжения, например: 127/220 или 220/380. Трехфазные двигатели незаменимы для приведения в действие различных станков, лебедок, циркулярных пил, подъемных кранов, и т.д.


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


1 - кожух с жалюзями, 2 - щетки, 3 - щеточная траверса со щеткодержателями, 4 - палец крепления щеточных траверс, 5 - выводы от щеток, 6 - колодка, 7 - изоляционная втулка, 8 - контактные кольца, 9 - наружная крышка подшипника, 10 - шпилька крепления коробки и крышек подшипника, 11 - задний подшипниковый щит, 12 - обмотка ротора, 13 - обмоткодержатель, 14 - сердечник ротора, 15 - обмотка ротора, 16 - передний подшипниковый щит, 7 - наружная крышка подшипника, 18 - вентиляционные отверстия, 19 - станина, 20 - сердечник статора, 21 - шпильки внутренней крышки подшипника, 22 - бандаж, 23 - внутренняя крышка подшипника, 21 - подшипник, 25 - вал, 26 - контактные кольца, 27 - выводы обмотки ротора

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

4.4 Сравнение синхронных и асинхронных систем связи

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

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

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

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

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

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

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

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

Рассмотрим обычное коммерческое аналоговое АМ-радио, которое может быть важной частью системы широковещательной связи, включающей центральный передатчик и множество приемников. Данная система связи не синхронизирована. В то же время полоса пропускания приемника должна быть достаточно широкой, чтобы включать не только информационный сигнал, но и любые флуктуации несущей, возникающие вследствие эффекта Доплера или дрейфа опорной частоты передатчика. Это требование к полосе пропускания передатчика означает, что на детектор поступает дополнительная энергия шума, превышающая энергию, которая теоретически требуется для передачи информации. Несколько более сложные приемники, содержащие систему слежения за частотой несущей, могут включать узкий полосовой фильтр, центрированный на несущей, что позволит значительно снизить шумовую энергию и увеличить принятое отношение сигнал/шум. Следовательно, хотя обычные радиоприемники вполне подходят для приема сигналов от больших передатчиков на расстоянии несколько десятков километров, они могут оказаться недееспособными при менее качественных условиях.

Для цифровой связи компромиссы между производительностью и сложностью приемника часто рассматриваются при выборе модуляции. В число простейших цифровых приемников входят приемники, разработанные для использования с бинарной схемой FSK с некогерентным обнаружением. Единственное требование – битовая синхронизация и сопровождение частоты. Впрочем, если в качестве модуляции выбрать когерентную схему BPSK, то можно получить ту же вероятность битовой ошибки, но при меньшем отношении сигнал/шум (приблизительно на 4 дБ). Недостатком модуляции BPSK является то, что приемник требует точного отслеживания фазы, что может представлять сложную конструктивную проблему, если сигналы обладают высокими доплеровскими скоростями или для них характерно замирание.

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

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


Заключение

В первом разделе моей работы описаны принципы построения беспроводных телекоммуникационных систем связи: приведена схема построения системы сотовой связи, указаны методы разделения абонентов в сотовой связи и отмечены преимущества (конфиденциальность и помехоустойчивость) кодового разделения по сравнению с временным и частотным, а также рассмотрены распространенные стандарты беспроводной связи DECT, Bluetooth и Wi-Fi (802.11, 802.16).

Далее рассмотрены корреляционные и спектральные свойства сигналов и, для примера, приведены расчеты спектров некоторых сигналов (прямоугольного импульса, гауссовского колокола, сглаженного импульса) и автокорреляционных функций распространенных в цифровой связи сигналов Баркера и функций Уолша, а также указаны типы сложных сигналов для телекоммуникационных систем.

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

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


Список литературы:

1. Ратынский М.В. Основы сотовой связи / Под ред. Д. Б. Зимина – М.: Радио и связь, 1998. – 248 с.

2. Скляр Б. Цифровая связь. Теоретические основы и практическое применение, 2-е издание.: Пер. с англ. – М.: Издательский дом “Вильямс”, 2003. – 1104 с.

3. Шахнович И. Современные технологии беспроводной связи. Москва: Техносфера, 2004. – 168 с.

4. Баскаков С.И. Радиотехнические цепи и сигналы: Учеб. для вузов по спец. «Радиотехника». – 3-е изд., перераб. и доп. – М.: Высш. шк., 2000. – 462 с.

5. Шумоподобные сигналы в системах передачи информации. Под ред. проф. В.Б. Пестрякова. М., «Сов. радио», 1973. – 424 с.

6. Варакин Л.Е. Системы связи с шумоподобными сигналами. – М.: Радио и связь, 1985. – 384 с.

7. Вишневский В.М., Ляхов А.И., Портной С.Л., Шахнович И.В. Широкополосные беспроводные сети передачи информации. Москва: Техносфера, 2005. – 592 с.

8. Радченко Ю.С., Радченко Т.А. Эффективность кодового разделения сигналов с неизвестным временем прихода. Труды 5 междунар. конф. «Радиолокация, навигация, связь» - RLNC-99, Воронеж, 1999, т.1, с. 507-514.

9. Радиотехнические системы: Учеб. для вузов по спец. «Радиотехника» / Ю.П. Гришин, В.П. Ипатов, Ю.М. Казаринов и др.; Под ред. Ю.М. Казаринова. – М.: Высш. шк., 1990. – 469 с.

Управляемые выпрямители однофазного тока

Мостовой управляемый выпрямитель трехфазного тока

Работа тиристорных групп /, // в реверсивном преобразователе характеризуется попеременным использованием в них режимов вы­прямления и инвертирования. Различают два режима управления тиристорными группами - совместное и раздельное.

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


Синхронные системы импульсно-фазового управления

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

Сущность синхронного принципа построения СУ и функциональ­ное назначение ее узлов покажем на примере выполнения канала уп­равления одним тиристором преобразователя (рис. 6.36). В схему ка­нала входят генератор опорного напряжения ГОН, нуль-орган НО и усилитель-формирова­тель УФ отпирающих импульсов.

Синхронные системы управления многофазными преобразователя­ми могут быть выполнены по многоканальному и одноканальному способам.

В многоканальной системе управления (рис. 6.37) регулирование угла а осуществляется от общего управляю­щего напряжения при выполнении каждого канала по типу рис. 6.36.

Количество каналов равно числу тирис­торов в схеме преобразователя (так, в СУ трехфазного мостового управляемо­го выпрямителя число каналов равно шести). При соответствующей синхро низации фазосдвигающих устройств от сети переменного тока (фази-ровки) система формирует для тиристоров в фазах а, Ь, с управ­ляющие импульсы, симметричные относительно точек естественного отпирания (см. рис. 6.15, в), что требуется для работы схемы.



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

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

Асинхронные системы импульсно-фазового управления

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

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


Ступенчатый метод регулирования переменного напряжения. Сту­пенчатый метод регулирования характеризуется ступенчатым изме­нением амплитуды (действующего значения) переменного напряжения, подводимого к нагрузке, без изменения формы его кривой. Этот ме­тод осуществляется с помощью трансформатора, выводы от вторич­ной обмотки которого через включенные встречно-параллельно тиристоры связаны с нагрузкой (рис. 6.55, а). Отпирание ти­ристоров происходит при переходе пере­менного напряжения через нуль (рис. 6.55, б, в). Регулирование мощности в на­грузке (например, с целью изменения тем­пературы печи в определенном диапазоне^ осуществляется системой управления, ко­торая производит избирательную подачу отпирающих импульсов на соответствую­щую пару включенных встречно-парал­лельно тиристоров. Сложная конструк­ция трансформатора, наличие большого количества тиристоров, а также невоз­можность плавного регулирования мощ­ности в нагрузке являются недостатками данного метода регулирования. Преиму­щества метода - отсутствие искажений в кривой потребляемого от сети тока, а также фазового сдвига тока относительно напряжения питающей сети (при чисто активной нагрузке).

Фазоступенчатый метод регулирования переменного напряжения. Фазоступенча­тый метод регулирования основывается на совместном использовании ступенчато­го и фазовых методов регулирования. Он реализуется по схеме с трансформатором на входе вида рис. 6.55, а. В зависимости от числа ступеней вторичного напряжения трансформатора и 2 (тиристорных пар) су­ществует двух-, трех-, четырех-и много­ступенчатое фазовое регулирование.

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

Широтно-импульсный метод регулирования переменного напряже­ния на пониженной частоте. Широтно-импульсный метод регулирова­ния на пониженной частоте основывается на изменении числа периодов переменного напряжения, подво­димого к нагрузке. Для его реализа­ции требуется схема вида рис. 6.47, а или б, в. Диаграммы напряжений на рис. 6.58 иллюстрируют принцип ра­боты преобразователя переменного на­пряжения при данном методе регули­рования. Этот метод позволяет осуще­ствить регулирование мощности в на­грузке в диапазоне от и 2 Ш н до ну­ля. Его недостатком является при­сутствие гармонических в токе сети с частотами ниже 50 Гц, что обуслов­ливается импульсным характером потребления энергии от сети. Ука­занный недостаток в значительной степени ослабляется при питании от общей сети переменного тока группы из нескольких преобразова­телей, когда отсутствие потребления тока одним преобразователем ком­пенсируется потреблением тока дру­гими преобразователями.

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

1. Синхронные вычисления

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

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

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

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

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

2. Безадресные асинхронные вычисления

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

  • коммутаторов, которые доставляют пакеты получателю;
  • вычислительных элементов, преобразующих пакеты по определенным правилам;
  • элементов памяти, которые хранят пакеты и выдают их по первому требованию;
  • периферийных устройств, обеспечивающих вычислительной системе интерфейс с внешним миром.

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

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

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

2.1 Коммутаторы

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

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

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

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

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

2.2 Память

Чтобы блоки памяти выполняли свои функции, они должны поддерживать два основных типа операций:

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

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

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

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

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

2.3 Периферийные устройства

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

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

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

2.4 Вычислительные блоки

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

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

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

Заключение

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

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

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

Мне любопытно, что async ожидает встроенные функции потоковой передачи.

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

Но рассмотрим этот сценарий.

У меня есть async methodA, выполняющий операцию async в базе данных. Api базы данных предоставляет функцию BeginQuery и событие QueryCompleted. Я завернул их в задачу (с использованием TaskCompletionSource).

Мой вопрос заключается в том, что происходит под капотом между вызовом BeginQuery и срабатыванием QueryCompleted.

Я имею в виду - не нужно ли создавать какого-то рабочего, чтобы запустить это событие? На очень низком уровне должен быть некоторый синхронный цикл, который блокирует результат чтения нити с db.

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

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

При вызове асинхронного метода всегда создается новый рабочий поток?

Может ли кто-нибудь подтвердить мое понимание?

4 ответов

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

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

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

Нет. На уровне ОС все операции ввода/вывода являются асинхронными. Это синхронные API-интерфейсы, которые блокируют поток, в то время как основной асинхронный ввод-вывод выполняется. Я недавно написал это в сообщении в блоге: .

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

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

Я имею в виду - не нужно ли создавать какого-то рабочего, чтобы мероприятие? На очень низком уровне должен быть некоторый синхронный цикл, который блокировка результата чтения нити из db.

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

Например, синхронный код:

Void Consume() { var completedMre = new ManualResetEvent(false); producer.StartOperation(completedMre); completedMre.WaitOne(); // blocking wait Console.WriteLine(producer.DequeueResult()); }

Асинхронный аналог:

Async Task ConsumeAsync() { var completedMre = new ManualResetEvent(false); producer.StartOperation(completedMre); var tcs = new TaskCompletionSource(); ThreadPool.RegisterWaitForSingleObject(completedMre, (s, t) => tcs.SetResult(producer.DequeueResult()), null, Timeout.Infinite, true); var result = await tcs.Task; Console.WriteLine(result); }

Асинхронная версия масштабируется более чем в 64 раза (MAXIMUM_WAIT_OBJECTS), что максимальное количество объектов ядра, которое может быть агрегировано RegisterWaitForSingleObject для ожидания в одном потоке). Таким образом, вы можете вызвать Consume() в 64 раза параллельно, и он будет блокировать 64 потока. Или вы можете вызвать ConsumeAsync в 64 раза и заблокировать только один поток.