Gast
#954617
Ich habe da mal eine dumme Frage bezüglich eines ARM7 von Atmel (AT91SAM7A2). Der ARM kann mit maximal 30MHz getaktet werden. Ein Takt ist also 33.3ns lang. Der Flash ist einer mit 55ns. Also habe ich 2 wait states im advanced memory controller eingestellt. Der Flash ist mit einem 16Bit Datenbus mit dem ARM verbunden. D.h. für 32 Bit ARM Befehle muss zwei mal gelesen werden. Das bedeutet doch, dass ein Befehl, der normal zur Ausführung 1 Takt benötigt, durch die wait states 5 (1 + 2 + 2) Takte dauert. Wie wirkt sich die interne pipeline darauf aus? Benötigt der Befehl effektiv dann nur 1 Takt oder doch 5? Der Hintergrund meiner Frage ist der, das ich eigentlich der Meinung bin bei der PLL als Faktor 5 eingestellt zu haben. (6MHz externer Quarz) Mit einer einfachen Schleife, 1.5Mio Durchläufen, einer Stoppuhr und einer LED hab ich aber so ca. 4-5 MIPS ermittelt, was für einen 30MHz ARM etwas enttäuschend wäre. Oder hängt das mit der Schleife zusammen, das die ein Leeren der pipeline und damit eine relativ niedrige Geschwindigkeit verursacht?