Schätzung der erforderlichen Rechenleistung

Ich bin derzeit in einem Informatikkurs und wurde gebeten, ein Produkt zu entwerfen, das blinde Menschen führen kann. In meinem fiktiven Produkt werde ich ein Modul implementieren, um Entfernungen zu erkennen (ein einfacher Laser-Entfernungsmesser, der im Leerlauf 10 mA verbraucht und 100 mA, wenn er einen Strahl schießt), ein Spracherkennungsmodul (das im Leerlauf 1 Mikroampere verbraucht), und auch ein GPS-System. Das bedeutet, dass mein Gerät ständig Eingaben vom Entfernungssensor und dem GPS-System verarbeitet. Es gibt auch Anweisungen wie "Links abbiegen" basierend auf der Zieladresse aus, die der Benutzer über einen Sprachbefehl eingegeben hat, und es teilt dem Benutzer auch Beobachtungen mit wie "Direkt vor ihm befindet sich ein Hindernis".

Ich wurde gebeten, die von diesem Gerät benötigte Rechenleistung sowie die Menge an benötigtem flüchtigem und nicht flüchtigem Speicher zu schätzen. Es basiert natürlich alles auf Schätzungen, und die verwendeten Komponenten können von 2014 bis 3 Jahre in die Zukunft (2017) reichen. Gibt es Schätzmethoden zur Bestimmung der erforderlichen Rechenleistung? Und genauer gesagt, wie wird die Rechenleistung quantifiziert? In Bezug auf den nicht flüchtigen Speicher glaube ich, dass die einzigen Informationen, die ich speichern muss, Adressen, Benutzereingaben und die Befehle sind, die das System eingeben und die Befehle, die das System ausgeben kann. Vielen Dank für jeden Rat!

Sie benötigen 42,7 Recheneinheiten, +-3 %.
Die Rechenleistung erfordert so viel mehr Informationen, dass es nicht einmal lustig ist. Sie müssen die Prozessorarchitektur und Architekturimplementierung kennen, wie niedrig der Code sein wird, die spezifischen Algorithmen, die vorhanden sind, die Effizienz der Implementierung dieser Algorithmen, das Abfrageintervall für die Daten usw. Ganz zu schweigen davon, dass Sie auch Komponenten aus der Zukunft erwähnen....
„Power“ zu verarbeiten ist kein sinnvoller Ingenieursbegriff, sondern eine Marketingidee. (In der Tat Computer ...) In einem echten Produkt entwickeln sich die Anforderungen ständig weiter (und genauso ehrgeizig wie in Ihrem Beispiel) ... also würde ich als Ingenieur einen etwas "leistungsstärkeren" Mikrocontroller wählen , müsste dies aber gegen die tatsächliche Leistung (V * I) und den Batteriebedarf abwägen. Erster Prototyp wäre Proof of Concept, mal sehen ob es überhaupt machbar ist. Wenn es funktioniert, prüfen Sie, ob das System optimiert werden kann, um alle Kosten-/Größen-/Verpackungs-/Leistungs-/Regulierungsanforderungen zu erfüllen.
Die grundlegende Frage scheint hier zu sein, wie man sich dem technischen Design nähert? Das Gadget ist nur ein Beispiel.

Antworten (1)

@ Jarrod Christman hat vollkommen recht. Dies lässt sich jedoch etwas vereinfachen. Da dies ein CSE-Kurs ist, gehe ich davon aus, dass Sie nicht in die Tiefe auf die Feinheiten des Elektrodesigns eingehen und daher auf einen Systemansatz verzichten werden. Lassen Sie uns alle Komponenten des Systems außer der MCU ignorieren, die Ihre Verarbeitung übernimmt.

Gehen Sie voran und suchen Sie nach einer netten MCU (ich empfehle einen STM32). Sie haben wunderbare Datenblätter, und darin finden Sie die MIPS-Zählung, die Millionen von IPS (Anweisungen pro Sekunde) sein wird. Verwenden Sie dies als Basis dafür, wie viele Operationen Sie in einer bestimmten Zeit berechnen können. Jetzt sollten Sie mit Ihrem CS-Hintergrund in der Lage sein, basierend auf Ihrem Algorithmus (der hoffentlich O (N) ist) herauszufinden, wie viele Operationen Sie benötigen. Darüber hinaus gibt es Ineffizienzen und Spezifikationen für Temperaturen, Geräusche basierend auf dem Layout, und die Liste geht weiter.

Wenn Sie sich wirklich darauf einlassen, sollten Sie sich ansehen, welche Sensoren Sie benötigen, sich ihre Abtastrate ansehen und so sehen, wie schnell Sie Daten von ihnen ziehen können. Dadurch erfahren Sie einen realistischeren Zeitpunkt zum Abrufen der Verarbeitungsdaten. Ich garantiere fast, dass der Prozessor schneller rechnen kann, als Sie Sensordaten extrahieren können. Dies wird sehr wichtig, wenn man bedenkt, dass ein Sensor für Blinde eine Echtzeitverarbeitung haben sollte. Wenn Sie Daten nicht schnell genug bekommen können, wird der Blinde abstürzen.

Ich glaube, diese Überlegungen werden Ihnen einen guten Start ermöglichen. Sehen Sie sich von dort aus alle besonderen Überlegungen an, die alle diese Teile untersuchen sollen. Sie werden in ein viel zu großes Kaninchenloch geführt und kommen dann zurück und stellen weitere Fragen. Beifall.