Эта запись является продолжением записи «Коммуникационные фабрики: xMAS как подход к моделированию и верификации»
Коммуникационная фабрика – это сложное распределенное устройство, решающее задачу взаимодействия агентов (отдельных функциональных блоков) в составе системы на кристалле и обеспечивающее эффективное разделение ресурсов. Для коммуникационных фабрик характерен высокий уровень параллелизма и конвейеризации, с буферизацией данных и одновременной обработкой множества транзакций, проводимых разными устройствами и находящихся на разных стадиях исполнения.
Некорректное распределенное взаимодействие агентов и фабрики может приводить к нарушению целостности памяти, возникновению тупиковых ситуаций, истощению ресурсов, деградации производительности и другим проблемам.
Ресурсы в системах на кристалле (размеры очередей, разрядность шин, и т.д.), как правило, ограничены, а производительность и корректность работы системы сильно зависят от эффективности их разделения конкурирующими транзакциями. Поэтому при проектировании коммуникационных фабрик необходимо учитывать минимальный уровень обслуживания, который система должна гарантировать своим агентам. Совокупность таких гарантий называется качеством обслуживания.
Качество обслуживания (Quality of Service, QoS) – это способность системы обеспечивать своим агентам определенные измеряемые гарантии по обработке потоков данных. Нас в первую очередь будут интересовать гарантии касающиеся производительности, а потоком данных мы будем называть совокупность сообщений, обладающих каким-либо общим признаком, например, сообщения от одного источника или адресованные одному получателю.
Количественно такие гарантии для потока данных, как правило, описываются тремя характеристиками:
• Форма потока – объем данных, переданных потоком, начиная с некоторого момента времени. Для описания формы потока часто используют показатели средней плотности (rate, bandwidth) и величины всплеска (burst).
• Задержка передачи (latency) – интервал времени между отправлением данных источником и их получением в точке назначения.
• Вариация задержки (jitter) – разница между максимальным и минимальным значениями задержки в потоке данных.
Современные подходы к анализу качества обслуживания преимущественно представлены двумя группами: неформальное ревью архитектуры системы и детальное имитационное моделирование. Первые – крайне неточны и склонны к ошибкам, а вторые становятся доступны только на поздних стадиях разработки, когда большинство архитектурных решений уже принято и не подлежит изменению за разумное время. Кроме того, ни те, ни другие методы не способны решить проблему истощения ресурсов или вычислить верхнюю границу на задержку передачи пакетов определенного потока данных. Формальная верификация для свойств качества обслуживания практически не используется т.к. такие свойства гораздо более сложны для доказательства, чем safety или liveness свойства.
Ранее приближенные оценки для подобных свойств получались с помощью аналитических методов [1,6,4], таких, как, например, network calculus. Однако для современных систем межсоединений внутри кристалла подобные методы или не применимы или дают слишком неточные оценки из-за требуемых для применения методов ограничений и упрощений.
Другая интересная задача носит в литературе название «Exploration». Современные коммуникационные фабрики параметризованы множеством параметров: размеры буферов и очередей, алгоритмы арбитража, ширина линий связи, количество используемых классов трафика, и т.д. Быстрый выбор такого набора параметров, который бы оптимизировал метрики качества обслуживания, на сегодняшний день является открытой проблемой. На текущий момент она (не слишком эффективно) решается путем ревью архитектуры и валидации производительности.
Некоторые частные exploration-задачи имеют эффективное решение. Например, задача оптимального выбора емкости буферов и очередей успешно решена для асинхронных и синхронных эластичных структур [5,2,3]. Но это лишь небольшое подмножество структур используемых в современных фабриках.
Возможно, в одной из следующих записей я расскажу подробнее, какие новые подходы разрабатываются для анализа свойств качества обслуживания и как они ложатся в инфраструктуру xMAS, о которой я упоминал в предыдущих записях.
Библиографический список:
1. Boudec, J.Y.L., Thiran, P.: A Theory of Deterministic Queuing Systems for the Internet, lncs, vol. 2050. Springer-Verlag (2004)
2. Bufistov, D., J´ulvez, J., Cortadella, J.: Performance optimization of elastic systems using buffer resizing and buffer insertion. In: Proc. International Conf. Computer-Aided Design (ICCAD). pp. 442–448 (Nov 2008)
3. Bufistov, D.E., Cortadella, J., Galceran-Oms, M., J´ulvez, J., Kishinevsky, M.: Retiming and recycling for elastic systems with early evaluation. In: DAC ’09: Proceedings of the 46th Annual Design Automation Conferen ce. pp. 288–291. ACM (2009)
4. Burns, S.M., Hulgaard, H., Amon, T., Borriello, G.: An algorithm for exact bounds on the time separation of events in concurrent systems. IEEE Trans. Comput. 44, 1306–1317 (November 1995), http://dx.doi.org/10.1109/12.475126
5. Manohar, R., Martin, A.J.: Slack elasticity in concurrent computing. In: Proc. 4th Int. Conf. on the Mathematics of Program Construction. LNCS, vol. 1422, pp. 272–285 (1998)
6. Wilhelm, R.: Timing analysis and timing predictability. In: de Boer, F., Bonsangue, M., Graf, S., de Roever, W.P. (eds.) Formal Methods for Components and Objects, Lecture Notes in Computer Science, vol. 3657, pp.
Коммуникационная фабрика – это сложное распределенное устройство, решающее задачу взаимодействия агентов (отдельных функциональных блоков) в составе системы на кристалле и обеспечивающее эффективное разделение ресурсов. Для коммуникационных фабрик характерен высокий уровень параллелизма и конвейеризации, с буферизацией данных и одновременной обработкой множества транзакций, проводимых разными устройствами и находящихся на разных стадиях исполнения.
Некорректное распределенное взаимодействие агентов и фабрики может приводить к нарушению целостности памяти, возникновению тупиковых ситуаций, истощению ресурсов, деградации производительности и другим проблемам.
Ресурсы в системах на кристалле (размеры очередей, разрядность шин, и т.д.), как правило, ограничены, а производительность и корректность работы системы сильно зависят от эффективности их разделения конкурирующими транзакциями. Поэтому при проектировании коммуникационных фабрик необходимо учитывать минимальный уровень обслуживания, который система должна гарантировать своим агентам. Совокупность таких гарантий называется качеством обслуживания.
Качество обслуживания (Quality of Service, QoS) – это способность системы обеспечивать своим агентам определенные измеряемые гарантии по обработке потоков данных. Нас в первую очередь будут интересовать гарантии касающиеся производительности, а потоком данных мы будем называть совокупность сообщений, обладающих каким-либо общим признаком, например, сообщения от одного источника или адресованные одному получателю.
Количественно такие гарантии для потока данных, как правило, описываются тремя характеристиками:
• Форма потока – объем данных, переданных потоком, начиная с некоторого момента времени. Для описания формы потока часто используют показатели средней плотности (rate, bandwidth) и величины всплеска (burst).
• Задержка передачи (latency) – интервал времени между отправлением данных источником и их получением в точке назначения.
• Вариация задержки (jitter) – разница между максимальным и минимальным значениями задержки в потоке данных.
Современные подходы к анализу качества обслуживания преимущественно представлены двумя группами: неформальное ревью архитектуры системы и детальное имитационное моделирование. Первые – крайне неточны и склонны к ошибкам, а вторые становятся доступны только на поздних стадиях разработки, когда большинство архитектурных решений уже принято и не подлежит изменению за разумное время. Кроме того, ни те, ни другие методы не способны решить проблему истощения ресурсов или вычислить верхнюю границу на задержку передачи пакетов определенного потока данных. Формальная верификация для свойств качества обслуживания практически не используется т.к. такие свойства гораздо более сложны для доказательства, чем safety или liveness свойства.
Ранее приближенные оценки для подобных свойств получались с помощью аналитических методов [1,6,4], таких, как, например, network calculus. Однако для современных систем межсоединений внутри кристалла подобные методы или не применимы или дают слишком неточные оценки из-за требуемых для применения методов ограничений и упрощений.
Другая интересная задача носит в литературе название «Exploration». Современные коммуникационные фабрики параметризованы множеством параметров: размеры буферов и очередей, алгоритмы арбитража, ширина линий связи, количество используемых классов трафика, и т.д. Быстрый выбор такого набора параметров, который бы оптимизировал метрики качества обслуживания, на сегодняшний день является открытой проблемой. На текущий момент она (не слишком эффективно) решается путем ревью архитектуры и валидации производительности.
Некоторые частные exploration-задачи имеют эффективное решение. Например, задача оптимального выбора емкости буферов и очередей успешно решена для асинхронных и синхронных эластичных структур [5,2,3]. Но это лишь небольшое подмножество структур используемых в современных фабриках.
Возможно, в одной из следующих записей я расскажу подробнее, какие новые подходы разрабатываются для анализа свойств качества обслуживания и как они ложатся в инфраструктуру xMAS, о которой я упоминал в предыдущих записях.
Библиографический список:
1. Boudec, J.Y.L., Thiran, P.: A Theory of Deterministic Queuing Systems for the Internet, lncs, vol. 2050. Springer-Verlag (2004)
2. Bufistov, D., J´ulvez, J., Cortadella, J.: Performance optimization of elastic systems using buffer resizing and buffer insertion. In: Proc. International Conf. Computer-Aided Design (ICCAD). pp. 442–448 (Nov 2008)
3. Bufistov, D.E., Cortadella, J., Galceran-Oms, M., J´ulvez, J., Kishinevsky, M.: Retiming and recycling for elastic systems with early evaluation. In: DAC ’09: Proceedings of the 46th Annual Design Automation Conferen ce. pp. 288–291. ACM (2009)
4. Burns, S.M., Hulgaard, H., Amon, T., Borriello, G.: An algorithm for exact bounds on the time separation of events in concurrent systems. IEEE Trans. Comput. 44, 1306–1317 (November 1995), http://dx.doi.org/10.1109/12.475126
5. Manohar, R., Martin, A.J.: Slack elasticity in concurrent computing. In: Proc. 4th Int. Conf. on the Mathematics of Program Construction. LNCS, vol. 1422, pp. 272–285 (1998)
6. Wilhelm, R.: Timing analysis and timing predictability. In: de Boer, F., Bonsangue, M., Graf, S., de Roever, W.P. (eds.) Formal Methods for Components and Objects, Lecture Notes in Computer Science, vol. 3657, pp.