Apparatus comprising a circular buffer and an arrangement carrying out a programm accessing said circular buffer
Abstract
The memory operating method indicates the jump of the read and/or write pointers, used for addressing the memory, from the end of the memory to the beginning of the memory or vice versa by a signalising device. The signalisation of the read/write pointer jump can be used as an interrupt command for a programme loop, or as a jump command. Different signalisations may be used for indicating the jump of the read and/or write pointer from the memory end to the memory beginning and the jump from the memory beginning to the memory end.

Term
Term ended
Projected expiry passed 24 August 2018, 8.1 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
9 claims: 6 independent, 3 dependent
- 1A method for operating a writing and / or a read pointer addressable wraparound memory, characterized, that the jump of the write and / or the read pointer from Memory End to store start and / or signaled reversed becomes.
- 4Method according to one of the preceding claims, characterized, that the circulating memory is so defined or used, that the jump of the write and / or read pointer intended with the End of a program loop to be executed coincides.
- 5Method according to one of the preceding claims, characterized, that the signaling by a set, reset or switch an identifier carried.
- 7Method according to one of the preceding claims, characterized, that jumps of the write pointer and the read pointer and / or Jumps from the same storage end to the start of the memory and the Memory start to memory end signaled differently will.
- 8Method according to one of the preceding claims, characterized, that the signaling of a write and / or read pointer generating or managing Adreßgenerierungseinheit is caused.
- 9A device for operating a writing and / or a read pointer addressable wraparound memory, characterized, that a signaling device is provided which adapted the leap of writing and / or the Read pointer from the storage end to store start and / or vice versa to signal.
Independent claims6
39 paragraphs, as filed
The present invention relates to a method according to the Preamble of claim 1 and an apparatus according the preamble of patent claim 9, that a method and a device for operating a via a write and / or a read pointer addressable wraparound memory.
About write and / or read pointer (read and / or read pointer) addressable cyclic memory, which as circular buffers or memories are called, are based to "normal", for data storage designed storage devices or storage areas; However, be - unlike the normal store - the writing and / or Read pointer managed such that they of when crossing Storage area end automatically to the memory area beginning, and when the memory area beginning exceeded are automatically set to the storage area and the end thereby the circulating memory-forming memory area never being able to leave.
Such circulating memory have long been known and require no further explanation.
The use of circulating Save proves particularly at regularly recurring or repeated write and / or Reads as advantageous because of the Available memory to be used particularly efficiently can and the writing and reading of data lack consuming writing and especially Leseadreßverwaltung can be done quickly and easily.
Regularly recurring or repeated read and write operations occur in, among other things, but of course far not exclusively in the digital signal processing on, since there because of the regular structure of the used Algorithms to go through quite a lot of program loops are.
The run of this program loops must especially when the data or signals entered keeping pace (in Real-time) to be processed is very urgent. Experience shows that this is even with the use of Outstanding Save as memory devices not readily is possible.
The present invention is therefore based on the object, the method according to the preamble of claim 1 or the apparatus according to the preamble of claim 9 in such a way that these even faster and / or simpler data or signal processing enable.
This object is achieved according to the in characterizing Part of claim 1 (method) or in the characterizing Part of claim 9 (apparatus) claimed resolved features.
Accordingly, it is provided<ul><li>that the jump of the write and / or the read pointer from Memory End to store start and / or signaled reversed is (characteristic part of claim 1) or.</li><li>that a signaling device is provided which adapted the leap of writing and / or the Read pointer from memory to memory end beginning and / or inversely to signal (characteristic part of Patent claim 9).</li></ul>
The signaling of jumps of the read and / or Read pointer can be exploited for Various kinds of purposes.
Among others, characterized the flow of executed made dependent on the program memory address of the data be that to be processed by the executing program are.
Defines or used namely for example the circulating memory so that the jump of the write and / or the Read pointer from the storage end to store start and / or vice versa with the intended end be executed program loops coincides, then the signaling of Write and / or read pointer jump as a termination condition for a program loop can be used. The implementation and evaluation a counting program loop runs (Hardware and / or software-implemented) loop counter, based on which the program loop end has been detected, can be omitted thereby.
The program sequence and thus also the contribution thereby made Data or signal processing can greatly in this way faster and / or easier than the previously Case.
Advantageous developments of the invention are of the subclaims.
The invention is described using an exemplary embodiment explained in more detail with reference to the drawing. Show it <dl tsize="8"><dt>figure 1</dt><dd>a schematic diagram illustrating which takes place in a first program loop operations,</dd><dt>figure 2</dt><dd>a schematic diagram illustrating the operations in the subsequent execution held a second program loop, and</dd><dt>figure 3</dt><dd>a schematic diagram illustrating the operations in the subsequent execution a third program loop to take place.</dd></dl>
The hereinafter described in more detail circulating memory (circular buffer or circular memory) is part of a microcontroller and serves for the implementation of a Fast Loop especially for DSP (Digital Signal Processor) applications.
However, it is already pointed out at this point, that the use of the described circular buffer then is not limited. It can also be a separate element or be made part of any other devices and is generally used for any purpose.
The circular buffer is characterized by a signaling device of which is adapted to the leap of Write and / or the read pointer from the memory to the end of the beginning memory and / or to signal vice versa. signaling is preferably of a write and / or Read pointer generating or managing Adreßgenerierungseinheit causes.
The signaling is the example under consideration in the setting or resetting or switching of an identifier (flag). It can principle but also in any other way done. Important for the present example considered is that the signaling takes place in a manner, which makes it possible that these from one to the circular buffer accessing program perceptible, particularly as is a condition of a conditional branch instruction used.
The identifier is the example under consideration for controlling the Sequence of accessing the circular buffer program used.
The program may for filtering audio, video or other Signals representing information to be designed. To this end, the data must be multiplied by a plurality of coefficients will.
The data and the coefficients are stored in separate circular buffers stored. The designated hereinafter as a data buffer D circular buffer has n storage sections for Storing n data words d<sub>0</sub> to d<sub>n-1</sub> on; the hereafter as coefficients buffer K designated circular buffer includes n storage sections for storing n coefficients k<sub>0</sub> to k<sub>n-1</sub> on. Each of the n data words d<sub>0</sub> to d<sub>n-1</sub> should with each of the n coefficients k<sub>0</sub> to k<sub>n-1</sub> are multiplied.
This is done by executing n program loops of which the first, the second and the third schematically in the figures, Figure 1 illustrates to the third
When in Figure 1 illustrates the first program loop clear The products are d<sub>0</sub>* k<sub>0</sub>, d<sub>1</sub>* k<sub>1</sub>, ... And d<sub>n-1</sub>* k<sub>n-1</sub>educated. with which coefficients multiplied Which data word is, in the figure 1 by double arrows P1<sub>0</sub> to P1<sub>n-1</sub> in which state the indices in which Order the respective multiplications are performed. The data word and the coefficient, which in each case one another multiply applicable, are data pointer DP<sub>0</sub>to DP<sub>n-1</sub> or coefficient pointer KP<sub>0</sub> to KP<sub>n-1</sub> selected, where the indices of the respective pointer the order specify in which they follow one another.
The first time through the illustrated in Figure 1 Program loop are represented by the data pointer DP<sub>0</sub> addressed Data word, so the data word d<sub>0</sub>, And by the Coefficient pointer KP<sub>0</sub> addressed coefficient, so the coefficient k<sub>0</sub> multiplied together. The data pointer and the coefficient pointer are incremented accordingly, and that in the adjoining the first program loop pass second program loop pass through the Data pointer DP<sub>1</sub> addressed data word, so the data word d<sub>1</sub>, And the coefficient pointer KP<sub>1</sub> addressed Coefficient, ie, the coefficient k<sub>1</sub> multiplied together will. This process is repeated until finally in an n-th program loop pass through the Data pointer DP<sub>n-1</sub> addressed data word, so the data word d<sub>n-1</sub>, And the coefficient pointer KP<sub>n-1</sub> addressed Coefficient, ie, the coefficient k<sub>n-1</sub> multiplied together will. If then again the data pointer and the Coefficient pointer are incremented, they jump as they are each at the end of the circular buffers D and K forming storage areas are automatically at the beginning the respective memory areas. The return or the imminent return of the coefficient pointer thereby dissolves the a return signaling Action which, as already mentioned above, the example considered in the set, reset or switch an identifier is.
After each program loop cycle (up to the next Program through the loop) will be reviewed whether by the state of said identifier, a return of the Coefficient pointer is signaled. Is that the case, so no next program loop cycle more is carried out, the implementation of the program loop thus ended. Subsequently, the data pointer is incremented, and thereby indicating to the next data word (data word d<sub>1</sub>).
Starting from this state (the data pointer points to the Data word d<sub>1</sub>, The coefficient pointer points to the coefficient k<sub>0</sub>) Is the illustrated in Figure 2 second Program loop performed. In this second program loop The products are d<sub>1</sub>* k<sub>0</sub>, d<sub>2</sub>* k<sub>1</sub>, ... And d<sub>0</sub>* k<sub>n-1</sub> educated. with which coefficients multiplied Which data word is, in the figure 2 by double arrows P2<sub>0</sub> to P2<sub>n-1</sub> in which state the indices in which Order the respective multiplications are performed. The data word and the coefficient, which in each case one another multiply applies, in turn on the Data pointer DP<sub>0</sub> to DP<sub>n-1</sub> or coefficient pointer KP<sub>0</sub> to KP<sub>n-1</sub> selected, wherein the indices of the respective pointer which specify order in which they follow one another.
The first time through the illustrated in Figure 2 Program loop are represented by the data pointer DP<sub>0</sub> addressed Data word, so the data word d<sub>1</sub>, And by the Coefficient pointer KP<sub>0</sub> addressed coefficient, so the coefficient k<sub>0</sub> multiplied together. The data pointer and the coefficient pointer are incremented accordingly, and that in the adjoining the first program loop pass second program loop pass through the Data pointer DP<sub>1</sub> addressed data word, so the data word d<sub>2</sub>, And the coefficient pointer KP<sub>1</sub> addressed Coefficient, ie, the coefficient k<sub>1</sub> multiplied together will. This process is repeated until finally in an n-th program loop pass through the Data pointer DP<sub>n-1</sub> addressed data word, so the data word d<sub>0</sub>, And the coefficient pointer KP<sub>n-1</sub> addressed Coefficient, ie, the coefficient k<sub>n-1</sub> multiplied together will.
If then again the data pointer and the coefficient pointer are incremented, jumps the coefficient pointer, since it is at the end of the circular buffer K-forming The memory area is automatically at the beginning of the Storage area back; the data pointer has to return already carried out (before the n-th program loop cycle). The return or imminent Return of the coefficient pointer solves this again Set, reset or switching of such events signaling of identification.
If the taking place as in the first program loop Checking the condition of said identifier that by signaled this a return of the coefficient pointer is, so is no next program loop cycle more performed, the implementation of the program loop thus ended. Subsequently, the data pointer is incremented thereby indicating to the next data word (data word d<sub>2</sub>).
Starting from this state (the data pointer points to the Data word d<sub>2</sub>, The coefficient pointer points to the coefficient k<sub>0</sub>) Is the illustrated in Figure 3 third Program loop performed. In this third program loop The products are d<sub>2</sub>* k<sub>0</sub>, d<sub>3</sub>* k<sub>1</sub>, ... And d<sub>1</sub>* k<sub>n-1</sub> educated. with which coefficients multiplied Which data word is, in the figure 3 by double arrows P3<sub>0</sub> to P3<sub>n-1</sub> in which state the indices in which Order the respective multiplications are performed. The data word and the coefficient, which in each case one another multiply applies, in turn on the Data pointer DP<sub>0</sub> to DP<sub>n-1</sub> or coefficient pointer KP<sub>0</sub> to KP<sub>n-1</sub> selected, wherein the indices of the respective pointer which specify order in which they follow one another.
The first time through the illustrated in Figure 3 Program loop are represented by the data pointer DP<sub>0</sub> addressed Data word, so the data word d<sub>2</sub>, And by the Coefficient pointer KP<sub>0</sub> addressed coefficient, so the coefficient k<sub>0</sub> multiplied together. The data pointer and the coefficient pointer are incremented accordingly, and that in the adjoining the first program loop pass second program loop pass through the Data pointer DP<sub>1</sub> addressed data word, so the data word d<sub>3</sub>, And the coefficient pointer KP<sub>1</sub> addressed Coefficient, ie, the coefficient k<sub>1</sub> multiplied together will. This process is repeated until finally in an n-th program loop pass through the Data pointer DP<sub>n-1</sub> addressed data word, so the data word d<sub>1</sub>, And the coefficient pointer KP<sub>n-1</sub> addressed Coefficient, ie, the coefficient k<sub>n-1</sub> multiplied together will.
If then again the data pointer and the coefficient pointer are incremented, jumps the coefficient pointer, since it is at the end of the circular buffer K-forming The memory area is automatically at the beginning of the Storage area back; the data pointer has to return before (in front of the n-1-th program loop cycle) executed. The return or imminent Return of the coefficient pointer solves this again Set, reset or switching of such events signaling of identification.
If the as with the above-described program loops check carried out and the state of said identifier that through this a return of the coefficient pointer is signaled, then no next program loop pass longer performed, performing So the program loop terminates.
Until all the data words with all coefficients multiplied are, have more, more specifically a total of n program loops be executed, wherein execution of the program loops is each terminated when the return of the Coefficient pointer is signaled.
The interpretation or the use of the coefficient buffer K in a manner that the jump of the coefficient pointer and / or the same a defined behavior Other as a termination condition of a currently executed program loop can be used, allowing a waiver the guiding and checking a loop counter. Abandoning the loop counter or similar proves (hardware or software implemented) facilities in many respects advantageous: leave one hand the program loops with less effort and / or execute faster (because the initialization and the required at each iteration of change can be omitted loop count), and on the other hand can Program interrupts as interrupts, and the like be handled more easily and quickly (because no loop counter must be more buffered in the stack).
The commonly used commands to program loops Loop commands can by conditional jump instructions be replaced.
The coefficient pointer defines the example under consideration in each case the location from which the next coefficient to is read; so it is a read-only pointer. Accordingly, this is what is signaled, the return of a Read pointer from the end of the coefficient buffer forming Storage area thereof to the start. Alternatively or in addition, also a jump of the read pointer from the beginning of the coefficient buffer forming memory area on the end of which and / or cracks of a combined read / write pointer or a write pointer to be signaled. Thereby, the jumps of the write pointer and the read pointer and / or jumps from the same storage end to Store start and from the top of memory for storage end equal are signaled or different.
The signaling of a write and / or read pointer jump can automatically after a predetermined time, to interrogating and evaluating the initiative of the signaling Program or circuit section or in response disabled in other events, withdrawn be or reset.
2 sheets
Sheet 1 Sheet 2
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US4800524A | Cites | United States of America | Search report |
| US5519701A | Cites | United States of America | Search report |
| US5659698A | Cites | United States of America | Search report |
4 members in 2 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 19741213 | Germany | A | |
| 19741213 | Germany | – | |
| 19741213 | – | – | – |
| DE1997141213 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| EP0903663A2This record | European Patent Office (EPO) | A2 | |
| EP0903663A3 | European Patent Office (EPO) | A3 | |
| US6189054B1 | United States of America | B1 | |
| EP0903663B1 | European Patent Office (EPO) | B1 |
32 legal events, as 4 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Gb: ep patent (uk) treated as always having been void in accordance with gb section 77(7)/1977 [no translation filed]GBV | GBV | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedNOT ENGLISHFG4D | FG4D | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Title (correction)APPARATUS COMPRISING A CIRCULAR BUFFER AND AN ARRANGEMENT CARRYING OUT A PROGRAMM ACCESSING SAID CIRCULAR BUFFERRTI1 | RTI1 | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Party data changed (applicant data changed or rights of an application transferred)RAP1 | RAP1 | EP | |
| Designation fees paidDE FR GB ITAKX | AKX | EP | |
| Request for examination filed17P | 17P | EP | |
| Information provided on ipc code assigned before grant7G 06F 5/06 A, 7G 06F 9/355 BRIC1 | RIC1 | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAL;LT;LV;MK;RO;SIAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0903663
- Publication, DOCDB
- 0903663
- Publication, EPODOC
- EP0903663
- Application
- 98115903
- Application, DOCDB
- 98115903
- Application, EPODOC
- EP19980115903
Titles6
- German
- Verfahren und Vorrichtung zum Betreiben eines über einen Schreib- und/oder einen Lesezeiger adressierbaren Umlaufspeichers
- English
- Method and apparatus for operating a circular buffer addressable over a write ora read pointer
- French
- Procédé et appareil pour l'opération d'un tampon circulaire addressable par un pointeur d'écriture et/ou lecture
- German
- Anordnung mit einem Umlaufspeicher und mit eine Einrichtung, welche ein auf den Umlaufspeicher zugreifendes Programm ausführt
- English
- Apparatus comprising a circular buffer and an arrangement carrying out a programm accessing said circular buffer
- French
- Dispositif comprenant un tampon circulaire et un appareil exécutant un programme qui accède audit tampon circulaire
Classification
- CPC, 1
- G06F5/10
- IPC, 3
- G06F5 06
- G06F5 10
- G06F9 355
Designated states3
- Contracting states, 2
- Sweden
- Italy
- Extension states, 1
- Slovenia