Forum: Mikrocontroller und Digitale Elektronik PEC Transfer


von MB (Gast)


Lesenswert?

kann mir jemand mit ein paar worten den begriff "PEC Transfer" 
erklären??
danke schon mal

von Иван S. (ivan)


Lesenswert?

Aus einem der ersten bei Google erscheinenden Links:

"A PEC-transfer is nearly the same than a DMA-transfer of the common 
CPU-systems. The most difference is, that each byte- or word-transfer 
should be initiated by a "hidden interrupt". But the transfer of the 
byte/word will be done without fetching new opcode from flash. Even if 
the belonging interrupt appears the opcode for that transfer-operation 
is injected into the prefetch-pipeline of the CPU. So no special time to 
fetch new code, and clearing of the pipeline is necessary."

Oder meintest Du den Pectoralis-major-Transfer bei chronischer 
Subskapularisinsuffizienz?

mahlzeit,
Iwan

von MB (Gast)


Lesenswert?

jo danke schon mal aber so ganz hilft mir das auch noch nich weiter...
brauch mal ne richtige erlärung oder so^^

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ein PEC-Transfer (Peripherial Event Controller) ist quasi ein in 
Hardware gegossener Interrupt, der seine Übertragungsbefehle in den 
normalen Programmablauf einschleust. Damit werden z.B. Daten eines frei 
laufenden AD-Wandlers ohne expliziten Interrupthandler in einen 
definierbaren Speicherbereich (z.B. in ein Array) abgelegt.

Die bereits gepostete Erklärung trifft es auf den Punkt.

von Falk B. (falk)


Lesenswert?

@  MB (Gast)

>jo danke schon mal aber so ganz hilft mir das auch noch nich weiter...
>brauch mal ne richtige erlärung oder so^^

Naja, also es gibt DMA und PEC. PEC ist die Sparvariante von DMA, 
vereinfacht formuliert.

DMA: Ein Modul auf dem Mikrocontroller, welches parallel zur CPU 
arbeitet, schaufelt parallel zur Arbeit der CPU Daten von A nach B.
PEC: Die CPU schaufelt selber Daten von A nach B, wobei allerdings NICHT 
klassische eine kleine Schleife wie z.B. hier als C-Code

1
for (i=0; i<100; i++) array_B[i] = array_A[i];

abgearbeitet wird, sondern die CPU durch ein paar "Tricks" in ihrer 
Hardware das in der CPU löst. Das spart die Ausführung einiger 
Assemblerbefehle (Index hochzählen, Pointer berechnen etc.), welche für 
jedes Datenwort immer wieder ausgeführt werden müssten. Das ist zwar 
schneller als die normale Softwareschleife, aber immer noch langsamer 
als DMA; weil di CPU selber arbeiten muss.

MFG
Falk

von Falk B. (falk)


Lesenswert?

@  Lothar Miller (lkmiller) Benutzerseite

>Die bereits gepostete Erklärung trifft es auf den Punkt.

Ist aber englisch und voll mit komplexen Fachbegriffen. Nicht wirklich 
leichte Kost.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ist aber englisch...
Stimmt, habe ich übersehen... ;-)

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
Noch kein Account? Hier anmelden.