Формально темой июньского номера журнала Computer являются многоядерные процессоры (multicore processors). На самом деле, этой теме посвящены только две статьи из шести больших статей, представленных в номере. Тем не менее, по традиции начнем с обзора тематических статей.
Статья «Среда с открытыми кодами для программной системы Cell Broadband Engine» («An Open Source Environment for Cell Broadband Engine System Software») написана Микаелем Гшвиндом, Дэвидом Ербом, Сидом Мэннингом и Марком Наттером (Michael Gschwind, IBM T.J. Watson Research Center, David Erb, Sid Manning, Mark Nutter, IBM Austin).
Архитекторы компьютеров редко внедряют новые архитектуры, потому что действующие архитектуры обладают такими значительными преимуществами, как зрелость, привычность для программистов и доступность программного обеспечения. Новые архитектуры обычно появляются в ответ на тектонические сдвиги в технологии и состоянии рынка. Например, исходная архитектура IBM System/360 была первой архитектурой, отвечающей потребности массового производства систем. RISC-системы возникли в ответ на возникновение производства сверхбольших интегральных схем и появление однокристальных микропроцессоров.
В связи с окончанием эпохи частотного масштабирования технологии CMOS архитекторы снова вынуждены прибегнуть к массовым технологическим изменениям на основе эффективного использования масштабирования за счет плотности. Вариантом решения этих проблем является микропроцессор Cell Broadband Engine (Cell BE), первая реализация однокристального мультипроцессора со значительным числом программируемых ядер общего назначения, предназначенный для поддержки широкого набора рабочих нагрузок, включая интенсивную обработку мультимедийных и научных данных.
Разработка мультипроцессора Cell была начата в 2000 г. компаниями IBM, Sony и Toshiba (STI) для использования в игровой приставке PlayStation 3, а также других средах интенсивной обработки данных. Целью проекта являлось достижение производительности, на порядок превосходящей производительность настольных компьютеров образца 2005 г. Для достижения этой цели разработчикам требовалось оптимизировать производительность по отношению к контактной поверхности, мощности, объему и стоимости некоторым способом, невозможным при использовании предыдущих архитектур. Стратегия разработки заключалась в использовании параллелизма за счет наличия многочисленных ядер, поддерживающих устоявшиеся модели приложений, что должно было обеспечивать хорошие возможности программирования и поддерживать эффективность программистов.
В результате была создана архитектура CBEA (Cell Broadband Engine Architecture) распределенного многоядерного однокристального микропроцессора, пригодного для поддержки массивной обработки числовых данных с плавающей точкой при поддержке рабочих нагрузок с интенсивными вычислениями и мультимедийных приложений. В первой реализации CBEA, мультипроцессоре Cell BE на одном кристалле имеются один 64-разрядный процессорный элемент Power (Power processor element, PPE), восемь процессоров-акселераторов, называемых синергическими процессорными элементами (Synergistic Processor Elements, SPE), высокоскоростной контроллер памяти, широкополосная шина для соединения элементов, а также высокоскоростные интерфейсы памяти и ввода-вывода.
При разработке новой процессорной архитектуры имеются риски, с которыми редко сталкиваются группы разработчиков микропроцессоров. Невозможность проверить, что новая архитектура отвечает потребностям, приведшим к ее разработке, или обеспечить стек программного обеспечения для первых пользователей обычно приводит к неудачному выводу соответствующего продукта на рынок и возможному отказу от этой архитектуры. В дополнение к традиционной проблеме определения новой микроархитектуры перед группой разработчиков встает проблема обоснования того, что эта архитектура может эффективно поддерживать широкий диапазон приложений. Поскольку при разработке Cell использовалось много новшеств, было важно обеспечить опытно-экспериментальную установку для проверки и доработки понятий, образующих основу архитектуры CBEA и ее первой реализации, мультипроцессора Cell BE.
Для убыстрения процесса разработки экосистемы архитектуры Cell группа разработчиков прибегла к использованию подхода разработки и использования программного обеспечения с открытыми кодами. Программное обеспечение категории open source позволило быстро создать и внедрить для использования среду, используемую как для исследования архитектуры, так и в качестве платформы первых пользователей для разработки программных систем верификации архитектуры, библиотек, промежуточного программного обеспечения и пробных приложений.
Стратегия использования подхода open source в проекте Cell включала четыре этапа:
- этап создания начальной опытно-экспериментальной установки, ориентированной на валидацию целей проекта, концепций компиляции и парадигм программирования, разрабатывавшихся одновременно с построением архитектуры;
- этап формирования программного обеспечения с поддержкой кода первых пользователей для библиотек, промежуточного программного обеспечения и приложений;
- этап развития модели программирования, на которой использовался более полный набор примитивов, инструментальных средств и сред для применения наиболее эффективных парадигм разработки программного обеспечения для новых платформ;
- этап перехода к полнофункциональной экосистеме Cell, доступной для непрерывно растущего сообщества разработчиков Cell на основе распространения средств разработки программного обеспечения. Cell SDK свободно доступен на этом сайте.
Открытые коды также использовались для обеспечения среды использования проприетарных инструментальных средств, таких как автоматически распараллеливающие компиляторы, основанные на проприетарном компиляторе IBM XL C. XL C интегрируется в смешанную среду совместно с ассемблерами, компоновщиками, отладчиками и библиотеками с открытыми кодами.
Использование открытых кодов позволило разработчикам Cell сократить цикл разработки за счет привлечения разработчиков из сообщества open source и обеспечить возможность построения прототипов на ранних этапах выполнения проекта. На фазе исследований разработка происходила в основном независимо от сообщества open source, и решения принимались исключительно на основе технологических потребностей. Впоследствии в публично распространяемых пакетах программного обеспечения отражались изменения, произведенные под влиянием сообщества open source, и принимались компромиссы, отражающие кросс-платформенную природу проектов с открытыми кодами. Созданные инструментальные средства с открытыми кодами внедрены в проприетарные среды симуляции мультипроцессора Cell.
Вторая статья тематической подборки написана Нидхи Аггарвалом, Партасарати Ранганатаном, Норманном Юппи и Джеймсом Смитом (Nidhi Aggarwal, University of Wisconsin-Madison, Parthasarathy Ranganathan, Norman P. Jouppi, Hewlett-Packard Laboratories, James E. Smith, University of Wisconsin-Madison) и называется «Изоляция в массовых многоядерных процессорах» («Isolation in Commodity Multicore Processors»).
Тенденции к масштабированию технологии приводят к тому, что однокристальные мультипроцессоры (chip multiprocessor, CMP) становятся доминирующей парадигмой компьютерной аппаратуры. Множественные ядра интегрируются в одном кристалле, образуя мультипроцессоры общего назначения. Компании Intel и AMD производят двух- и четырехядерные процессоры. С системной точки зрения CMP обеспечивают более высокий уровень интеграции, обычно включая несколько обрабатывающих ядер, кэшей, контроллеров памяти и даже обработку ввода-вывода. Например, в процессоре Niagara компании Sun имеется восемь ядер, общий кэш второго уровня и интегрированные контроллеры памяти и интерфейсы ввода-вывода. В кристалле процессора Power компании IBM имеется котроллер памяти.
Тенденции к использованию множественных ядер, по всей видимости, сохранятся. На последней конференции Intel Developer Forum компания объявила о плане развития технологии многоядерных процессоров на одном кристалле, включая построения прототипа мультипроцессора с 80 ядрами. В академических исследованиях обсуждаются вопросы создания процессоров с гораздо большим числом ядер, а также возможности построения однокристальных неоднородных мультипроцессоров.
Масштабирование микропроцессоров за счет включения большего числа ядер обеспечивает повышенные вычислительные возможности и интеграцию системы на уровне кристалла. В свою очередь, это позволяет снизить стоимость компьютеров за счет уменьшения числа компонентов. Кроме того, совместное использование ресурсов позволяет повысить производительность. Совместное использование компонентов кристалла повышает коэффициент полезного действия ресурсов на основе технологий гиперпоточности, разделяемых кэшей и интерфейсов ввода-вывода. Однако те же особенности многоядерных процессоров, которые являются достоинствами, могут представлять и их недостатки. В частности, повышенный уровень интеграции приводит к важным проблемам изоляции, касающимся производительности, безопасности и отказоустойчивости.
Основные проблемы связаны к отказоустойчивостью. Современные исследования показывают существенно возрастающее число аппаратных ошибок при сокращении размеров компонентов аппаратуры. Разработчики сталкиваются с двумя основными разновидностями ошибок. Во-первых, источником постоянных или периодических аппаратных сбоев являются дефекты в полупроводниках, что приводит к жестким ошибкам. Во-вторых, электрические помехи или внешняя радиация могут приводить к неустойчивым сбоям, вызывающим мягкие ошибки. При использовании CMP проблема отказоустойчивости усугубляется тем, что сбой в каком-либо одном компоненте может привести к сбою всего процессора.
Показатели числа сбоев в единицу времени (failure in time, FIT) ядер, кэшей, памяти и компонентов ввода-вывода в совокупности приводят к высокому значению FIT для CMP в целом. В будущих CMP должна обеспечиваться возможность изоляции сбойных компонентов и исключения их из числа ресурсов кристалла, чтобы его можно было использовать при наличии оставшихся исправных компонентов.
Очень простым подходом к обеспечению изоляции в многоядерных процессорах является статическая изоляция, при которой на кристалле монтируются независимые компьютеры. В этом случае у каждого компьютера имеются собственные контроллер памяти и интерфейсы ввода-вывода. Однако у этой архитектуры имеется несколько недостатков. Статическое разделение ресурсов кэша, препятствующее совместному использованию других ресурсов мультипроцессора, приводит к значительному снижению системной производительности, для достижения должного уровня которого требуется компромисс между изоляцией и совместным использованием ресурсов.
Поэтому проблемой является разработка методов конфигурирования «массовых» CMP с добавлением небольшого числа компонентов и незначительным повышением сложности для получения надежных избыточных систем. Такие методы не используются в современных массовых CMP. Аналогично, статическое разделение интерфейсов и контактов кристалла приводит к неэффективному использованию пропускной способности, что делает CMP малопригодными для приложений, для которых высокая эффективность более важна, чем высокая надежность. В предлагаемом подходе уровни изоляции ресурсов CMP выбираются динамически в зависимости от текущих потребностей.
Оставшиеся статьи июньского номера будем обсуждать в порядке их расположения в журнале. Фейсал Кеблави и Дик Салливан (Feisal Keblawi, Dick Sullivan) представили статью «Доводы в пользу гибких стандартов безопасности NIST» («The Case for Flexible NIST Security Standards»).
Недавно Национальный институт стандартов и технологии США (National Institute of Standards and Technology, NIST) приступил к выпуску нового вида стандартов безопасности информационных систем (information system security, ISS). В соответствии с Федеральным актом об управлении информационной безопасностью (Federal Information Security Management Act, FISMA) от 2002 г. эти обязательные стандарты регулируют процессы ISS в федеральных гражданских организациях и требуют стандартного контроля безопасности во всех родственных информационных системах федерального уровня.
Опыт показывает, что обычно успешными оказываются федеральные стандарты, согласованные с установившейся практикой коммерческих организаций. Стандарты, ориентированные исключительно на правительственные организации, такие как Государственный профиль взаимодействия открытых систем (Government Open Systems Interconnection Profile, GOSIP), не приводят к достижению хороших результатов. С одной стороны, NIST вносит свой вклад в повышение качества информационной безопасности путем учреждения эксплуатационных нормативов и оказания помощи организациям при определении процессов поддержки безопасности. С другой стороны, при наличии у NIST нормотворческих полномочий к принятию нецелесообразных стандартов и давления со стороны сторонников FISMA возникает возможность создания конфликтов и повышения расходов без получения ожидаемого выигрыша.
Авторы обосновывают потребность в диалоге с NIST относительно роли и области влияния этого института при определении нормативных требований и создании стандартов федеральной компьютерной безопасности. Результатом такого обсуждения должно явиться новое понимание пределов нормотворчества в области безопасности на федеральном уровне.
Следующая статья называется «Практический опыт автоматизированной трассируемости» («Best Practices for Automated Traceability»). Авторы статьи: Джейн Клеланд-Хаунг, Рафаэлла Сеттими, Эли Романова, Брайан Беренбах и Стефен Кларк (Jane Cleland-Huang, Raffaella Settimi, Eli Romanova, DePaul University, Brian Berenbach, Siemens Corporate Research, Stephen Clark, iRise).
Трассируемость требований, определяемая как возможность «следовать жизненному циклу требования в прямом и обратном направлениях», обеспечивает важную поддержку разработчикам программного обеспечения при разработке и сопровождении программных систем. Трассируемость помогает определить, что исследователи детализировали требования до уровня низкоуровневых компонентов, встроили эти компоненты в исполняемую систему и эффективно их протестировали. Эта возможность также помогает аналитикам понять последствия предложенных изменений и убедиться в отсутствии постороннего кода.
В многочисленных стандартах трассируемость упоминается как рекомендуемое или формально требуемое свойство. Например, в стандарте IEEE 830-1998 утверждается, что спецификация требований к программному обеспечению (software requirements specification, SRS) должна являться трассируемой. В этом стандарте SRS определяется как трассируемая, «если понятно происхождение каждого требования, и спецификация способствует указанию ссылок на каждое требование при будущей разработке документации или ее модернизации». Требуются обратная трассируемость от требований к «предыдущим стадиям разработки» и прямая трассируемость от требований ко «всем документам, порожденным на основе SRS».
Кроме того, от организаций, производящих системы с особыми требованиями к безопасности, часто формально требуется демонстрация того, что для всех частей кода прослеживаются действующие требования. Законы, подобные US Sarbanes-Oxley Act от 2002 г., требуют реализации в организациях процессов управления изменениями с явными границами трассируемости для любых частей программного продукта, которые потенциально влияют на финансовое благосостояние организаций.
К сожалению, во многих организациях не удается внедрить практику эффективной трассируемости либо из-за трудностей создания, использования и поддержки связей, либо по причине того заблуждения, что затраты на поддержку трассируемости требований не окупаются. Традиционно связи трассируемости физически сохраняются в электронных таблицах, текстовых файлах, базах данных, или для их хранения используются инструментальные средства управления требованиями (requirements management, RM), такие как DOORS компании Telelogic или Rational RequisitePro компании IBM. Такие связи деградируют в ходе выполнения проекта, поскольку из-за нехватки времени не обновляются участниками проектной группы. Эта проблема обостряется при использовании офшоринга и аутсорсинга, когда возникает временная и пространственная дистанция между экспертами и разработчиками.
Поскольку трассы часто создаются вручную, непродуманным образом по прихоти разработчиков, они часто бывают несогласованными и неполными. Имеющиеся инструментальные средства RM обеспечивают ограниченную поддержку создания и сопровождения связей, поддерживая методы drag-and-drop для создания связей, простые средства визуализации для представления связей и инструменты маркировки «сомнительных» связей, для которых был изменен один из ассоциированных с ними артефактов, в результате чего связи могли устареть. К сожалению, такая поддержка недостаточно облегчает управление связями трассируемости, и на практике часто приходится обнаруживать, что все большее число связей становится подозрительным.
Кроме того, почти никогда не удается установить трассируемость между требованиями и дополнительными документами, такими как мотивация акционеров, документы о концепциях или другие текстовые документы, написанные в свободной форме. Для многих организаций, стремящихся к достижению соответствия общекорпоративных стандартов, таких как Capability Maturity Model Integration (CMMI) третьего уровня, достижение трассируемости в проектах, для которых она изначально не предусматривалась, может показаться трудной и часто невыполнимой задачей.
Методы автоматизированной трассируемости позволяют ослабить эти проблемы за счет снижения трудозатрат на конструирование и поддержку набора связей трассируемости, а также обеспечения трассируемости между более обширным набором документов. В статье описывается опыт внедрения девяти автоматизированных систем трассируемости.
Ю-Чи Ценг, Ю-Чиун Ванг, Кай-Янг Ченг и Яо-Ю Хсиех (Yu-Chee Tseng, You-Chiun Wang, Kai-Yang Cheng, Yao-Yu Hsieh, National Chiao Tung University, National Chiao Tung University) представили статью «iMouse: интегрированная система мобильного контроля с беспроводными датчиками» («iMouse: An Integrated Mobile Surveillance and Wireless Sensor System»).
Выдающиеся достижения в областях микросенсорных микроэлектромеханических систем (microsensing microelectromechanical systems, MEMS) и технологий беспроводных коммуникаций способствуют развитию беспроводных сенсорных сетей (wireless sensor network, WSN). WSN состоит из многих сенсорных узлов, плотно размещенных в пространстве. Каждый из этих узлов может собирать информацию об окружающей среде, и все узлы вместе могут поддерживать произвольную многозвенную маршрутизацию. WSN обеспечивают недорогой и удобный способ мониторинга физических сред. При наличии возможности восприятия окружающей среды могут привнести в человеческое общество приложения в областях здравоохранения, мониторинга зданий и домашней безопасности.
Традиционные системы контроля обычно собирают большой объем видеозаписей, поступающих от настенных камер. Для анализа этих данных требуется большой объем вычислений и человеческого труда. Интеграция в эти системы сенсорных возможностей WSN может привести к сокращению этих накладных расходов, обеспечивая при этом более развитые, учитывающие контекст сервисы. Например, в приложениях поддержки безопасности при обнаружении системой злоумышленника она может произвести углубленный анализ для обнаружения возможного источника нарушения безопасности.
Описываемая в статье интегрированная система мобильного контроля с беспроводными датчиками (integrated mobile surveillance and wireless sensor system, iMouse) состоит из многочисленных статических беспроводных сенсоров и нескольких более мощных мобильных сенсоров. К преимуществам своей системы авторы относят следующее.
- Она обеспечивает оперативный мониторинг в реальном масштабе времени. Например, при фиксации системой событий статические сенсоры могут немедленно проинформировать пользователей о месте происхождения событий, а мобильные сенсоры могут позже обеспечить детализированные образы этих событий.
- Система управляется событиями в том смысле, что только при возникновении события некоторый мобильный сенсор выделяется для фиксации образов этого события. Таким образом, в системе iMouse можно избежать записи образов при отсутствии событий.
- Более дорогие мобильные сенсоры приписываются к участкам событий. От них не требуется покрытие всего отслеживаемого пространства, и поэтому достаточно иметь лишь небольшое число таких сенсоров.
- Система является модульной и масштабируемой. При добавлении к числу мобильных сенсоров более развитых устройств могут усилиться возможности восприятия системы, но замена существующих статических сенсоров не требуется.
Поскольку мобильные сенсоры питаются от аккумуляторов, важной проблемой является продление их времени жизни. Поэтому авторы рассматривают проблему диспетчеризации мобильных сенсоров к местам совершения событий с минимизацией энергозатрат. В статье показано, что если число мест возможных инцидентов не превышает число мобильных сенсоров, то проблема сводится к проблеме нахождения максимального покрытия в двудольном графе. В противном случае места возможных инцидентов группируются в кластеры таким образом, чтобы один мобильный сенсор мог эффективно обслуживать каждый кластер.
Наконец, последняя большая статья июньского номера журнала Computer называется «Аутентификация на основе паролей: предотвращение атак на словари» («Password-Based Authentication: Preventing Dictionary Attacks»). Ее написали Сайкат Чакрабарти и Мукеш Сингхал (Saikat Chakrabarti, Mukesh Singhal, University of Kentucky).
Аутентификация обеспечивает средства надежной идентификации субъектов. Наиболее распространенным методом контроля является проверка того, что претендент обладает информацией или характеристиками, которыми должен обладать истинный субъект. Например, можно аутентифицировать телефонный звонок по голосу человека или опознать знакомых людей по их внешности.
Но при отсутствии визуальной или слуховой информации процесс аутентификации может усложниться. Например, спулеру печати может потребоваться аутентификация сетевого принтера, а компьютеру - аутентификация пользователя, пытающегося начать работу.
Компьютер может аутентифицировать людей с использованием биометрических устройств, таких как сканеров сетчатки глаз, анализаторов отпечатков пальцев, систем распознавания голоса, удостоверяющих личность пользователя; на основе паролей, удостоверяющих правильность знаний пользователя; при помощи смарт-карт или физических ключей, удостоверяющих наличие у пользователя соответствующего предмета.
Благодаря дешевизне и удобство пароли стали наиболее популярным методом аутентификации пользователей, пытающихся получить доступ к хранимой в компьютерах конфиденциальной информации. Однако аутентификация на основе паролей уязвима по отношению к нескольким видам атак.
Люди обычно выбирают для входа на сервер короткие, легко запоминающиеся пароли, не задумываясь о том, что методы аутентификации на основе паролей являются чувствительными к атакам при использовании ненадежных каналов коммуникации, таких как Internet. В то же время сложные пароли могут быть похищены во время их записи пользователями, что обесценивает построение безопасных схем аутентификации на основе паролей.
Исследователи разработали несколько протоколов для предотвращения атак, в том числе атак на базы данных возможных паролей, называемые словарями. В статье анализируется ряд таких протоколов и отмечается потребность в формальных моделях, позволяющих анализировать существующие протоколы и эффективно разрабатывать приемлемые протоколы проверки паролей, предотвращающие атаки на словари.