-         

Ergebnis 1 bis 5 von 5

Thema: PIC Geschwindigkeit

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.12.2004
    Beiträge
    84

    PIC Geschwindigkeit

    Anzeige

    Hi!

    In den Datenblättern steht ja überall was von "single cycle instructions"
    Das würde bedeuten, dass bei 4 Mhz, dass in einer sek. 4Mio Befehle
    ausgeführt werden müssten.
    Ich hab mein Programm mit MPLAB geschrieben und im TRACE-Fenster
    kann ich mir bei einer Simulation die verstrichene Zeit anzeigen lassen.
    Dabei hab ich festgestellt, dass nach jedem Befehl eine Zeit von
    0.000001 sek. dazuaddiert wird. Damit würden aber nur 1 Mio Befehle
    Pro sek ausgeführt werden.
    Das heißt, dass alle befehle nicht einen, sondern 4 Taktzyklen benötigen.
    Im Datenblatt steht auch was von 200ns bei 20Mhz, das hieße,
    dass pro sek. 5 Mio befehle ausgeführt werden, statt 20 Mio, was meine
    Theorie bestätigt.

    Wozu dann single cycle?

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Überraschung !!!
    Ja, das is ganz was Feines. Die Microchips (PIC.....) teilen die Quartz Frequenz durch 4 und das gilt dann erst.
    Du kaufst 20 Mhz und kriegst dann 5
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    34
    Beiträge
    506
    single-cycle-instructions = Instruktionen, die in einem Maschinenzyklus ausgeführt werden können.

    1 Maschinenzyklus entspricht dabei 4 Taktzyklen.

    Wenn man sich beispielsweise die 18er-PICs anschaut, stellt man fest, dass diese eine 4x-PLL haben, und somit 1 Maschinenzyklus einem externen Taktzyklus entspricht, also 10 Mips. Das derzeitige Maximum bei 18er PICs liegt bei 12 Mips (18F2550/4550).

    MfG
    Stefan

  4. #4
    JohanneS..
    Gast
    Und wie sieht's bei den ATMEL AVR Controllern
    oder bei dem (angeblich) schnellen SX28 aus?

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.11.2003
    Ort
    Dresden
    Alter
    53
    Beiträge
    409
    Hallo Johannes,

    der Unterschied zwischen PICs und AVR liegt in der sogenannten Instruction Pipeline. Die PICs brauchen für einen Zyklus 4 Takte für die komplette Abarbeitung eines Befehls (Fetch, Decode, Execute, Write).
    Die AVRs haben eine Zweiteilung (Fetch/Decode, Execute/Write) und eine Pipeline. Beim ersten Takt wird der Befehl aus dem Speicher geholt und decodiert, beim zweiten Takt wird dieser dann abgearbeitet. Gleichzeitig wird in der Pipeline schon der nächste Befehl geholt und decodiert. Somit erreicht man, dass bei jedem Takt ein Befehl abgearbeitet wird, solange die Pipeline gefüllt ist. Bei Sprungbefehlen wird der Ablauf unterbrochen und es muss einen Takt länger auf die Abarbeitung gewartet werden.

    Der Ubicom-SX, der ja eigentlich ein "aufgebohrter" PIC16C5x ist, hat übrigens eine 4fach Pipeline, die 4 Zyklen sind vom PIC übernommen und braucht damit auch 4 Takte um die Pipeline zu füllen. Mit gefüllter Pipeline wird dann ebenfalls pro Takt ein Befehl abgearbeitet (75MHz Takt -> 75MIPS). Bis zum nächsten Sprungbefehl....

    Hoffe das war halbwegs anschaulich.

    Viele Grüße
    Jörg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •