Контроллер — это электронное устройство, предназначенное для подключения к магистрали компьютера разных по принципу действия, интерфейсу и конструктивному исполнению периферийных устройств (см. также “Функциональное устройство” и “Шины и интерфейсы”).
И еще одним похожим устройством является сопроцессор. Сопроцессоры “помогают” основному (центральному) процессору, который исполняет программу, реализовывать сложные специфические функции. Примером может служить графический сопроцессор, выполняющий геометрические построения и обработку графических изображений, — его вполне можно считать графическим контроллером. Несколько особняком стоит математический сопроцессор, который выполняет свои функции “в одиночку”, не управляя никакими внешними устройствами.
Все перечисленные выше устройства служат для уменьшения нагрузки на центральный процессор и повышают общую производительность системы. Значение контроллеров состоит в том, что они освобождают процессор от наиболее медленных функций ввода/вывода информации. Идеи применения специализированных интеллектуальных схем для разгрузки центрального процессора были заложены еще в третьем поколении ЭВМ в больших машинах коллективного пользования IBM-360 (в СССР данное семейство машин известно в качестве “аналога” под именем ЕС ЭВМ). В четвертом поколении возникла технологическая возможность собирать схемы управления в едином кристалле, и появились микроконтроллеры.
В качестве примера на фотографии приведен вид микроконтроллера, располагающегося внутри клавиатуры. Подчеркнем, что еще один контроллер для обслуживания клавиатуры есть в самом компьютере. Кроме того, все устройства ввода/вывода и внешняя память также имеют свои контроллеры.
В состав контроллера, как правило, входят: собственный микропроцессор, ОЗУ, ПЗУ, регистры внешних устройств (через них контроллер взаимодействует с центральным процессором), буферные (согласующие) схемы. В определенном смысле сложный контроллер является упрощенной специализированной ЭВМ.
Еще боRльшим интеллектом обладает контроллер современного винчестера. Например, он “помнит” все имеющиеся на магнитной поверхности некачественно изготовленные сектора (а их при современной плотности записи избежать не удается!) и способен подменять их резервными, создавая видимость диска, который полностью свободен от дефектов. Или еще один пример. Современные жесткие диски используют технологию S.M.A.R.T. (Self Monitoring Analysis and Report Technology — дословно “технология самоконтроля, анализа и отчета”; кроме того, английское слово “smart” имеет значение “разумный”, “интеллектуальный”). Винчестер, оснащенный такой возможностью, со времени самого первого включения ведет статистику своих параметров, сохраняя ее результаты в некоторой скрытой области диска. Накопленные данные могут помочь специалистам при анализе состояния жесткого диска и условий его эксплуатации.
Методические рекомендации
Курс информатики основной школы
Строго говоря, в Стандарте и Примерной программе не упоминается термин “контроллер”. Тем не менее минимальное представление о контроллерах и их функциях, по нашему мнению, школьникам желательно дать.
Курс информатики в старших классах
Стандарты (базовый и профильный) старших классов содержат вопросы, связанные с архитектурой и организацией современных компьютеров. По-видимому, осветить эти вопросы, не упоминая терминов “адаптер”, “контроллер” и “сопроцессор”, просто невозможно. Изложенный в статье материал можно рассматривать в качестве минимума информации, который следует изложить старшекласснику в рамках рассказа об устройстве современного компьютера.
11 Гук М. Аппаратные средства IBM PC. Энциклопедия. СПб.: Питер, 2003, 923.
12 Э.Таненбаум. Современные операционные системы. СПб.: Питер, 2004, 1040 с.
Ура, свершилось! Открываем раздел по микроконтроллерам! Я знаю, что все вы, дорогие товарищи, давно держите в своих пытливых умах целый список вопросов про контроллеры. Но не знаете, кому их задать… Теперь жить вам должно стать чуть-чуть проще, ибо мы ответим на все (почти все) ваши вопросы.
Например, в более «навороченных» контроллерах может быть АЦП (аналого-цифровой преобразователь), ЦАП (наоборот) и прочие прибамбасы. Чего только ни придумают! Но мы с вами, для начала, рассмотрим более простой вариант. Для примера возьмем контроллер фирмы Atmel, AT90s2313.
Чтобы понять, как работает контроллер, надо знать, что у него внутри. Ниже я нарисовал как мог сильно упрощенную схему контроллера – без таймеров, генераторов и прочей фигни – все только самое необходимое.
Самый главный элемент любого процессора – арифметико-логический узел (АЛУ). Кстати, по буржуйски он называется так-же – ALU (ariphmetic-logical unit). В нем-то, как вы уже догадались, и происходят все мыслимые и немыслимые арифметические и логические операции над числами. Кстати, насчет чисел: контроллер, как и любая другая цифровая система, работает с двоичными числами. О том, что это такое, я подробно распинался в статье «Что такое digital».
Тот контроллер, который мы сейчас мучаем, работает с 8-разрядными двоичными числами, иными словами – он 8-битный. То есть, АЛУ может захавать два 8-битных слова, произвести над ними какую то арифметическую или логическую операцию, и выплюнуть ответ – опять же, 8-битное слово.
Вопрос: а какие бывают арифметические и логические операции? И че эт ваще такое?
Ну, арифметическим операциям нас всех учили еще в 1 классе – это сложение, вычитание, сравнение 🙂 Логические операции – это операции алгебры логики. Вот некоторые из них: «И», «ИЛИ», «НЕ», «исключающее ИЛИ», сдвиг влево, сдвиг вправо. Также существуют операции, которые ни относятся ни к тем ни к другим: сброс в «0», установка в «1» и т.п.
Чтобы произвести операцию, АЛУ должен взять откуда-то два числа. Выполнив операцию, опять же, должен положить куда-то ответ. Для этих целей служат регистры общего назначения – РОН. Их у нас 16. Каждый регистр – это ячейка памяти емкостью 8 бит. Иначе говоря – 1 Байт. Именно в них и хранятся числа, с которыми работает АЛУ.
Для каждой команды, которую выполняет АЛУ, необходимо назвать те регистры, с которыми он будет в данный момент работать.
Как вы могли заметить, ответ всегда помещается в тот регистр, который назван первым. Естественно, старое содержимое регистра при этом затирается. Если нам нужно сохранить изначальное содержимое регистра, то перед операцией надо скопировать его в какой-нибудь другой регистр. Иначе – никак.
Оператор копирования – mov
Пример: mov R16,R17 add R17,R24
Кроме РОН, на схеме присутствует ОЗУ – оперативная память контроллера. Для чего она? Да для того, чтобы хранить данные при выполнении программы. Регистров ведь – всего 16. Для полноценной работы этого явно недостаточно. В регистрах хранится обычно только те данные, которые будут использоваться непосредственно прямо сейчас. Все остальное удобнее положить в память. Позднее мы поговорим о таких вещах как стек, указатели и пр. Пока что запомним, что память есть.
Ну вот. Откуда АЛУ берет данные для вычислений – разобрались. Теперь разберемся, откуда он берет команды.
А все очень просто! Для этого существует регистр команд. В этот регистр постепенно выводятся команды той программы, которую выполняет контроллер. Эти команды касаются всего контроллера, а не только АЛУ (как мы помним, в контроллере просто тьма всего). Чтобы «выудить» из общей кучи «свою» команду, АЛУ постоянно заглядывает в регистр команд на предмет, нет ли там что-нить для него. И как только видит – стрелой мчится выполнять.
В регистр команд, команды попадают из программной памяти. Программная память – это ПЗУ (постоянное запоминающее устройство), в котором по каждому адресу записана одна команда. Вместе, все эти команды и составляют программу, и записаны в той последовательности, в какой они стоят в программе.
Чтобы «достать» команду из ПЗУ, надо сказать ему адрес ячейки памяти, в которой лежит эта команда. В ответ, ПЗУ выдаст содержимое этой ячейки. Команды записываются в ячейки в той последовательности, в которой стоят в программе. Поэтому, для того чтобы последовательно «перебирать» команды, достаточно просто каждый раз прибавлять к адресу «1».
Именно этим и занимается счетчик команд.
Однако же, программа, выполняющаяся внутри микросхемы и ни коим образом не связанная с внешним миром была бы просто никому не нужна. Для полноценной работы, контроллеру необходимо обмениваться данными с внешним миром.
Для этого существуют порты ввода/вывода (ПВВ).
Порт – это пачка однобитных каналов, каждый из которых может быть независимо настроен либо на ввод, либо на вывод.
В контроллере AT90s2313 два ПВВ – PortB и PortD. PortB состоит из 8-ми каналов, Portd – из 7-ми.
Эта «культяпость» порта D объясняется простой нехваткой ножек микросхемы. Просто разработчики очень хотели запихнуть все это дело в 20-ножный корпус, и поэтому урезали PortD на один канал.
Любая программа для контроллера начинается именно с настройки портов. Мы должны определить, какие каналы будут работать на ввод, какие – на вывод. По умолчанию, все каналы включены на ввод. Но это мы обсудим чуть позже.
Ну в общем-то, вот первоначальные сведения о микроконтроллерах. Дальше мы поговорим о том как написать, скомпилировать и зашить в контроллер его программу.
Контроллеры — это устройства управления в электронике и вычислительной технике. Контроллер: определение, схема, устройство и виды
Контроллеры – это устройства, позволяющие производить обработку цифровых сигналов. Буквально несколько десятилетий назад все логические системы строились на основе электромеханических реле. Они до сих применяются, но в большинстве сфер были вытеснены микроконтроллерами. Наибольшее распространение контроллеры получили в промышленности, именно в системах управления и автоматизации. Впервые на рынке электроники появилось устройство MODICON производства Bedford Associates в 1960-х годах.
Аналогичные устройства, разработанные другими компаниями, стали известны как ПЛК. А если точнее, то это программируемые логические контроллеры. Их работа зависит от программы, которую записывают при помощи персонального компьютера через специальный интерфейс. Именно благодаря использованию устройств на контроллерах получилось заменить большое количество электромеханических реле логическими элементами.
Особенности ПЛК
Для того чтобы понять, что такое контроллер, необходимо разобраться с его устройством и назначением. У программируемого элемента несколько входов – с их помощью происходит контролирование состояния выключателей и датчиков. И есть выходные клеммы, которые подают сигналы различного уровня на электроклапаны, контакторы, электроприводы, реле и другие исполнительные устройства.
Программирование ПЛК очень простое, потому что язык, на котором это делается, очень схож с логикой работы электромагнитных реле. Если инженер-электрик или обычный монтер умеет читать схемы релейных систем, то он без особых трудностей сможет выполнить программирование контроллеров. Это займет немного времени, все зависит от количества логических элементов и функций.
Нужно отметить, что, в зависимости от модели ПЛК, подключение к ним источников сигналов и особенности программирования будут незначительно отличаться. Но суть процедуры настройки остается неизменной.
Подключение элементов к ПЛК
В корпусе контроллера есть оптический изолятор – простой светодиод. С его помощью происходит связь входной клеммы и общей. При подаче напряжения на ПЛК загорается светодиод – именно по нему можно судить о том, что устройство работает. На выходе происходит генерация сигнала при помощи компьютерной схемотехники – активируется устройство переключения. В качестве переключающего устройства могут использоваться электромагнитные реле, транзисторы, силовые ключи, тиристоры. Выходы обозначаются буквой Y. На каждом выходе устанавливается светодиод, сигнализирующий о том, что устройство работает.
Как происходит программирование
Контроллеры – это устройства, позволяющие обрабатывать электрический сигнал и преобразовывать его. На сегодняшний день в ПЛК ставится логика при помощи компьютерной программы. Именно она определяет, на каких выходных клеммах будет присутствовать напряжение при определенных условиях на входных клеммах. Отчасти эта логика схожа с той, которая применяется в релейной схемотехнике. Но в ней нет никаких реле, переключателей, контактов. Написание и просмотр программы происходит при помощи компьютера, который соединяется с портом программирования.
Логика простой программы
Допустим, у нас есть контроллер, лампа и выключатель. Контроллер подключается к источнику питания, со входом соединяется выключатель, а на выходе ставится лампа. При нажатии кнопки должна загораться лампа. Вариант простейшей программы для ПЛК:
Все действия, которые производятся с контроллерами, удобнее всего рассматривать на примере электромагнитных реле. Так нагляднее видна работа устройства.
Зачем нужен компьютер
При помощи компьютера происходит создание логической связи между входными и выходными клеммами. Программное обеспечение, с помощью которого осуществляется составление логики, позволяет направить в контроллер виртуальный сигнал и проследить, как он будет действовать при определенных условиях. После того как будет заложена логика внутрь ПЛК, компьютер отключается и контроллер работает самостоятельно. Все команды, которые ему были заданы на этапе программирования, он сможет выполнять без сторонней помощи.
Универсальность ПЛК
Чтобы понять всю силу и универсальность программируемых компонентов, необходимо рассмотреть несколько типов программ. Контроллер – это программируемый элемент, поэтому без вторичной настройки подключенных к нему элементов можно изменить все заданные команды. Допустим, вам нужно изменить программу, рассмотренную выше – при замыкании кнопки должна тухнуть лампа, а при размыкании загораться.
Для выполнения такой команды нужно просто поменять местами типы команд, которые были ранее. При нажатии на кнопку должно подаваться напряжение на вход ПЛК, а мнимое реле, которое находится в нем, имеет нормально-замкнутые контакты. Поэтому при подаче напряжения контакты размыкаются и лампа тухнет. Но когда в схеме контроллера пропадает сигнал, мнимое реле замыкает контакты и лампа загорается.
Преимущества контроллеров
Одно из преимуществ контроллеров – это возможность реализации в программном обеспечении логического контроля. Причем, в отличие от релейного оборудования, выходной сигнал может использоваться столько раз, сколько требуется для автоматизации. При помощи контроллера для систем автоматизации можно спроектировать систему запуска и останова электродвигателя. Чтобы построить аналогичную систему на электромеханических элементах, нужно использовать три реле.
При использовании контроллера на две входные клеммы подключаются кнопки. На выходе устанавливается электрический двигатель. Логика выглядит таким образом:
Причем все процессы, которые происходят в контроллерной системе, могут дублироваться для удаленного мониторинга. Именно с помощью такого свойства реализуется удаленное управление системами. Теперь вы знаете, что такое контроллеры и каковы их ключевые особенности. Программирование устройств может осилить любой человек, который разбирается в компьютерной и релейной технике.
Всё, что вы хотели узнать о RAID-контроллерах, но лень было искать
Дисковый массив с нотками ретро.
На плечах RAID-контроллеров лежит ответственная задача — управление дисковой подсистемой, то есть всей информацией, хранимой на сервере. Именно они отвечают за работу дисковых массивов, позволяя повысить производительность сервера или надёжность хранения данных. Поэтому давайте поговорим о RAID-контроллерах, установленных в серверы вендоров «большой тройки», об их возможностях и особенностях.
Что такое RAID-контроллер?
Чаще всего задачи, выполняемые серверами, требуют высокой скорости чтения/записи данных и/или необходимость сохранить данные при выходе из строя самих накопителей. Поэтому установка в сервер единственного диска редко имеет смысл. Этот вариант можно рассматривать, если нагрузка будет совсем небольшой, а сохранность данных не волнует вовсе. Да и объёмы информации, которыми оперируют серверы, часто требуют куда больше пространства для хранения, чем может дать один диск. А чем больше накопителей, тем выше вероятность выхода из строя, особенно при высокой нагрузке.
Проблемы производительности и отказоустойчивости дисковой подсистемы решаются с помощью создания массивов: логических структур, в которые с помощью RAID-контроллера объединяется несколько накопителей — жёстких дисков и SSD. При этом массив выглядит для системы единым пространством для хранения данных.
Существует много видов массивов, отличающихся производительностью, надёжностью хранения данных и минимально необходимым количеством дисков. Выбор конкретного вида зависит от ваших задач и потребностей, а также от возможностей самого RAID-контроллера.
RAID-контроллеры делятся на:
Если на борту RAID-контроллера есть кэш-память, то она может использоваться для промежуточного хранения записываемых или считываемых данных. Это позволяет эффективнее управлять операциями ввода/вывода.
Чтобы при сбое питания не потерять данные, находящиеся в кэше, используется два разных подхода:
Некоторые RAID-контроллеры позволяют увеличить объём кэш-памяти и установить батарейку, если они её не имеют. Чем больше размер кэша контроллера, тем выше производительность RAID-массивов.
RAID-контроллеры в серверах «большой тройки»
Чтобы не превращать статью в археологическое исследование, ограничимся только теми контроллерами, что используются в поколениях серверов начиная с 2009-2010:
Большинство RAID-контроллеров HP и Dell изначально поддерживают все основные виды массивов. У IBM таких моделей — по пальцам пересчитать, почти в каждом случае придётся устанавливать на контроллер 1-2 дополнительных модуля апгрейда, что не слишком удобно.
Другая интересная особенность RAID-контроллеров IBM — большинство из них применяются в серверах нескольких поколений. У HP и Dell другая склонность — с выпуском нового поколения серверов они обычно выпускают и новое поколение контроллеров.
Как выбрать подходящий контроллер?
Если вы решили апгрейдить сервер и озаботились выбором RAID-контроллера, то в первую очередь исходите из ваших потребностей.
Вам нужна хорошая производительность, но не волнует сохранность данных? Или хочется с небольшими усилиями повысить отказоустойчивость, поступившись скоростью? Понадобился простенький веб-сервер для нужд разработки? Достаточно выбрать недорогой контроллер и создать RAID 0 или 1. Можно даже без кэш-памяти.
При желании сэкономить на накопителях или выжать всю возможную ёмкость из имеющихся, рассмотрите вариант с RAID 5 или 50. Это вполне годное решение для создания архивов. Для таких задач достаточно взять контроллер с поддержкой нужного вида RAID и кэш-памятью среднего объёма.
При создании высокоскоростных и надёжных массивов под базы данных, или больших хранилищ под файловые серверы, нужны производительные контроллеры с большим объёмом кэш-памяти и высокой пропускной способностью. Это тот случай, когда экономия на одном устройстве может свести на нет все ваши усилия.