Gerade schaue ich mir den AT32UC3A4 an, der eine AES Einheit integriert hat. Der AT32UC3A4 läuft mit 66MHz und auf Seite 883 im Datenblatt http://atmel.com/dyn/resources/prod_documents/doc32072.pdf steht, dass AES 16 Clockcycles im 256 Bit-Modus benötigt. Auf der nächsten Seite 884 und bei Wikipedia steht, dass die Datenblöcke bei AES 128 Bit = 16 Byte groß sind. Nach meiner Rechnung ergibt dies: 66 MHz / 16 Zyklen x 16 Byte = 66 MByte/s Das erscheint mir eine unglaublich hohe Leistung zu sein. Habe ich mich verrechnet oder einen Denkfehler gemacht?!
Weder noch. Du hast nur was vergessen: Die Daten müssen rein in die Registergruppe und auch wieder weggeschrieben werden. Und selbst mit DMA wären das nochmal 8 Takte nur für den Datentransport vom SRAM zur AES-Einheit und wieder weg. Der Transport zum SRAM hin und wieder weg nach draußen kommt noch oben drauf. Da bleibt von den 66MBytes/s nicht mehr soviel übrig. Gruß Jadeclaw.
Du meinst also, dass je Datenblock noch mal 16 Takte für den Datentransfer nötig sind. Ist dann folgende Rechnung korrekt? 66 MHz / 32 Zyklen x 16 Byte = 33 MByte/s
Und dann muß das Zeug auch noch aus de CPU ganz raus auf den Massenspeicher. Das bremst noch zusätzlich. Ich denke mal, je nachdem wie gut du im Programmieren bist, sind zwischen 1 - 5 MByte/s drin. Gruß Jadeclaw
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.