Wodurch wurde diese ganzheitliche Sichtweise der Systeme in unserem Alltag möglich – von der medizinischen Überwachung, Diagnose und Empfehlung bis hin zu den klugen Geräten, die in unseren vernetzten Häusern alles steuern? Natürlich durch die enormen Fortschritte im Bereich der Embedded-Systeme. Die Reise begann im Jahr 1988, als ein Desktop-Computer einige wenige MHz hatte und sich der Speicher im einstelligen Bereich bewegte. Bis 2008 stiegen Frequenz, Kapazität und Leistung jeweils um das Tausendfache, heute erreichen die Werte eine nahezu unvorstellbare Dimension.
Die heutigen Embedded-Systeme sind weit verbreitet und nahtlos integriert. Sie sind miteinander vernetzt und tauschen Informationen aus. Embedded-Systeme mit weichen Übergängen zwischen System und Netzwerk haben die programmierbaren Makro-Objekte der Vergangenheit verdrängt.
Übrigens: Habe ich erwähnt, dass ich fahre, während ich dies schreibe? Mein umweltfreundlicher Wagen düst den Freeway entlang und hält dabei konstant einen komfortablen Abstand zu anderen Autos ein. Wir sind schon da? Perfekt, mein Auto wird mich absetzen und sich dann selbst parken. Vor zwanzig Jahren haben wir schon die ersten Ansätze intelligenter Fahrzeuge dieser Art gesehen: etwa mit System on Chips (SoCs) wie dem EyeQ2 von Mobileye zur optischen Echtzeit-Erkennung und Umgebungsinterpretation, das in intelligenten Fahrzeugsystemen zum Einsatz kam.
Die Leistung all dieser Systeme zu steigern, war ein großer Fortschritt der Prozessortechnologie. Bedeutende Erfolge in reiner Prozessorleistung gingen mit immensen Effizienzsteigerungen einher. Im Jahr 2028 arbeitet der Embedded-Designer mit hoch abstrakten Systemen und Software. Verschwunden sind die prozeduralen Befehlssprachen der Vergangenheit. Der Designer von heute arbeitet mit einem regelbasierten, natürlichen Sprachbeschreibungsprozess: Er beschreibt dem System, was er möchte und ermöglicht es ihm umgekehrt, klärende Rückfragen zu stellen, etwa wenn die Zielbeschreibung widersprüchlich ist. Algorithmen in einer prozeduralen Sprache zu programmieren, mutet malerisch an, ist aber ziemlich mühsam, wie es von den Unglücklichen beschrieben wurde, die es tun mussten.
Die Materialien, aus denen unsere »Processing Engines« gebaut wurden, haben sich stetig weiterentwickelt. Dabei machte es einen großen Unterschied, dass wir vor dem regelbasierten Programmieren konfigurierbare Funktionalitäten in RTL anboten, die auf den »Engines« wie Hardware oder Regeln implementiert werden konnten.
Die heutigen regelbasierten Systeme sind unerlässlich für komplexe, kompatible Umgebungen, in denen man nicht über all die benötigten Verhaltensweisen nachdenken und sie auch nicht alle definieren kann. Aufgrund der hohen Abstraktionsschicht wissen Leute nicht, was darunter vor sich geht – oder es ist ihnen egal. Unsere modernen Systeme kontrollieren sich inzwischen selbst.
Wer weiß, was noch alles vor uns liegt?