Wie zu erkennen, ein Read-Modify-Write in einzelnen Zyklus mit einem Dual-Port-RAM

B

blooz

Guest
Wie zu erkennen, ein Read-Modify-Write in einzelnen Zyklus mit einem Dual-Port-RAM?
 
Die read-modify-write ist typischerweise ein Prozessor-style-Anweisung, die noch benötigt mehrere Speicherzugriffe und erfordert nicht unbedingt ein Dual-Port-Speicher. Das zentrale Element ist, dass die Anweisung von Interrupts ist geschützt, so dass die Lese-modify-write ist garantiert ohne Unterbrechung von einem anderen Prozess ausgeführt werden. Mit einem Dual-Port-Speicher, würden Sie brauchen, um diesen Schutz in Hardware zu implementieren über einen Speicher-Controller, die garantieren, dass einmal RMW-Zyklus auf den ersten Port gestartet würden, keinen Zugang zu den zweiten Port würde die gleiche Adresse erlaubt sein, bis der Schreibvorgang aufgetreten ist - oder umgekehrt. Dies ist nicht eine einfache Hardware-Schaltung so typischerweise Dual-Port-Speicher Multi-Access-Schutz Systeme in Software mit Mutexe oder Semaphore, um Zugriff auf gemeinsam genutzte Speicherbereiche Kontrolle umgesetzt werden. Mit "Single-Cycle" Ich nehme an du meinst einen einzelnen Prozessor-Anweisung? Da kann diese nicht in einem einzigen Speicher-Zyklus passieren. Sie müssten mindestens zwei Speicher-Zyklen, eine zu lesen und die zweite, wieder zu schreiben verändert Speicherinhalt - egal, wie viele Ports die Erinnerung hat.
 
Wenn Ihre Uhr ist nicht zu schnell können Sie das Beispiel I in den Thread gab versuchen: Kontinuierliche Abtastung 3GSPS ADC und Altera FPGA-Schnittstelle --- JA
 
Ich fand das von einem Xilinx Weißbuch "Eine synchrone RAM nicht durchführen kann read-modify-write-Operationen in einem einzigen Taktzyklus, aber das Dual-Port-, Synchron-Block-RAM in allen Xilinx ® FPGAs kann Pipeline der Schreib-Operation und einem Durchsatz von zu erreichen zu lesen-Modify-Write-Betrieb pro Taktzyklus. Um dies zu tun, die Designer-Port nutzt A als gelesen Port verwendet Port B als Write-Port und verwendet einen gemeinsamen Takt für beide Ports. Die Lese-Adresse weitergeleitet wird an einen Port . Eine Kopie der Leseadresse ist um einen Takt verzögert und weitergeleitet, um Port B. Die Daten von Port A wird geändert und wie die Dateneingabe nach Port B verwendet "...
 
Wenn die Lese-Adresse ist durch eine Uhr als wie funktioniert das in einem Taktzyklus verzögert. Es klingt immer noch wie zwei für mich. Natürlich ist der 2. Schreib-Zyklus verborgen, so schätze ich sie vernachlässigt werden kann. ;-)
 

Welcome to EDABoard.com

Sponsor

Back
Top