The person shown here is a ProZ.com member. He or she may be contacted directly for language-related services.
| Member since Mar '03 Working languages: English to Italian Italian to English French to English French to Italian English to French | Availability today: | October 2009 | | | S | M | T | W | T | F | S | | | | | | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | | 18 | 19 | 20 | 21 | 22 | 23 | 24 | | 25 | 26 | 27 | 28 | 29 | 30 | 31 | |
|  giorgioten Certified PROZ IT-EN translator Corato, Puglia, Italy Local time: 01:18 CET (GMT+1)
Native in: English  , Italian | | |
Certified ProZ.com PRO Italian-English translator - 10 positive WWA entries from clients around the world. | | Freelancer | | Blue Board: Technical translations | | Translation, Editing/proofreading | | Specializes in: | | Electronics / Elect Eng | Engineering (general) | | Mechanics / Mech Engineering | Patents | | Automotive / Cars & Trucks | Computers (general) | | Construction / Civil Engineering | Medical: Instruments | | Law (general) | Energy / Power Generation |
| Also works in: | | Environment & Ecology | Economics | | Law: Contract(s) | Law: Patents, Trademarks, Copyright | | Manufacturing | Marketing / Market Research | | Metallurgy / Casting | Physics | | Surveying | Tourism & Travel | | Transport / Transportation / Shipping | Computers: Systems, Networks | | Materials (Plastics, Ceramics, etc.) | Medical: Health Care | | Nuclear Eng/Sci | Paper / Paper Manufacturing | | Ships, Sailing, Maritime | Textiles / Clothing / Fashion | | Wine / Oenology / Viticulture | Geology | | Finance (general) | Engineering: Industrial | | IT (Information Technology) | Petroleum Eng/Sci | | Science (general) | Telecom(munications) | | Automation & Robotics | Business/Commerce (general) | | Certificates, Diplomas, Licenses, CVs | Computers: Software |
More Less | | Questions answered: 101, Questions asked: 7 Easy / 140 PRO, PRO-level points: 114 | 1 projects entered | Project Details | Project Summary | Corroboration | Translation Volume: 40000 words Completed: Dec 2005 Languages: French to English | Reports on patentability of French patent applications
A long term project started in November 2005 and ongoing at least until April 2006. Very helpful and prompt replies to queries by PM.
Law: Patents, Trademarks, Copyright | No comment. |
More Less | 11 entries| Outsourcer name | Country | LWA  | Comment | Outsourcer feedback | | Hidden | Hidden | 5 | Mr Samu is an excellent outsourcer, paying without delays. Will work for him any time | Thank you! | | Hidden | Hidden | 5 | This was the first translation and everything went very smoothly. Will work definetely again for Michelle any time. Extremely prompt payment. | Excellent translator, very professional and recommended, good service | | Hidden | Hidden | 5 | Excellent outsourcer. Immediate payment upon presentation of invoice | ... | | Hidden | Hidden | 5 | Great! Your new payment system works fine. A job invoiced on 9/28 was paid only within 2 weeks. | ... | | Hidden | Hidden | 5 | Most positive comments. Prompt and helpful in communicating. Payments without reminders and on one occasion well before set term. I certainly recommended this outsourcer. | ... | | Hidden | Hidden | 5 | We have been collaborating smoothly both ways for some time now. Sonia and Federica respond promptly in solving problems. No complaints whatsoever about payments | ... | | Hidden | Hidden | 5 | In 2 years have translated for Gordon about 30 texts without problems of any sort, especially for payments which occur even before the due date. | ... | | Hidden | Hidden | 5 | My several jobs for Michael have proved to be without any problems. Very prompt answering queries and payments which are settled within due time. | ... | | Hidden | Hidden | 5 | Worked for Rohini for more than a year on s number of projects. Very attentive outsourcer with prompt replies to queries. No problems whatsoever with payments. | Thank you!Very good quality and timely work.Goes extra mile to ensure work delivered as per schedule.Wish you all the very best! | | Hidden | Hidden | 5 | Very positive outsourcer. Payment on following day of translation delivery.. | ... | | Hidden | Hidden | 5 | Allan is most professional to say nothing of payments. I receive payment on the following day from delivery of the yranslation. | Thanks George |
More Less | Sample translations submitted: 1| Italian to English: Data processing device | Source text - Italian (GEORGE TENEDIOS)
PAST TRANSLATION SAMPLE
ITALIAN ORIGINAL
PATENT: DISPOSITIVO ELABORAZIONE DATI
Testo del Brevetto Europeo N° Y
depositato il Y.2005
a nome della ditta Y
con sede a Y, ITALIA
avente per titolo: DISPOSITIVO ELABORAZIONE DATI.
DESCRIZIONE
ANTEFATTI DELL’INVENZIONE
La presente invenzione descrive un dispositivo per elaborazione dati avente una struttura pipeline. Le strutture pipeline sono ben note e utilizzate nei microprocessori e microcontrollori. Per funzionare più efficientemente, una pipeline è riempita con una sequenza d’istruzioni. Una volta che la sequenza viene interrotta, la pipeline è riempita di nuovo. Questo causa una perdita di velocità d’elaborazione al microprocessore. Tali interruzioni avvengono principalmente quando un’istruzione di salto, di diramazione o di ciclo viene eseguita, perché la successiva istruzione di solito non è l’istruzione successiva all’istruzione di salto, di diramazione o di ciclo.
Le istruzioni di salto e di diramazione dipendono generalmente da una condizione, di sua decisione, se, oppure no, un salto o una diramazione deve essere eseguita. D’altra parte, un’istruzione a ciclo comprende un parametro che indica il numero di volte che il ciclo viene eseguito ed un parametro che indica l’inizio del ciclo. In particolare, gli elaboratori di segnali digitali di solito utilizzano istruzioni a ciclo. Quindi, le istruzioni a ciclo possono aver un’importante influenza sulla velocità d’esecuzione risultante dell’elaboratore oppure di un’unità per l’elaborazione dati. È quindi un obiettivo della presente invenzione di provvedere un dispositivo per l’elaborazione dati con mezzi per eseguire istruzioni a ciclo, quanto velocemente possibile.
SOMMARIO DELL’INVENZIONE
In conformità con un primo aspetto della presente invenzione, un dispositivo per l’elaborazione dati comprende un’unità pipeline per l’elaborazione dati; un’unità di fornitura d’istruzioni accoppiata all’unità pipeline dal quale fornire istruzioni; un mezzo d’ingresso per fornire dati d’ingresso per l’unità di fornitura d’istruzioni; detta unità di fornitura d’istruzioni e detto mezzo d’ingresso formando uno stato di prelievo per detta unità pipeline; primi mezzi di controllo per controllare l’unità di fornitura d’istruzioni; e secondi mezzi di controllo per controllare il mezzo d’ingresso; caratterizzato in quanto il dispositivo comprende anche un’unità pipeline a ciclo per l’elaborazione di un’istruzione a ciclo; in cui l’unità pipeline a ciclo opera indipendentemente della, ed in parallelo con, l’unità pipeline ed è accoppiata all’unità di fornitura d’istruzioni dalla quale ricevere istruzioni a ciclo; in cui il mezzo d’ingresso comprende un mezzo di memoria di transito di ciclo di memoria in deposito per memorizzare le dette istruzioni a ciclo in modo che nessuno stato di prelievo sia richiesto per l’unità pipeline a ciclo; in cui il secondo mezzo di controllo controlla il mezzo di memoria di transito di ciclo di memoria in deposito; in cui l’unità pipeline a ciclo comprende un’unità d’esecuzione a ciclo accoppiata al secondo mezzo di controllo ed il mezzo di memoria di transito di ciclo di memoria in deposito; ed in cui la detta istruzione a ciclo viene rilasciata alla detta unità pipeline alla sua prima occorrenza e la detta istruzione a ciclo viene estratta dal detto flusso d’istruzioni in tutte le successive occorrenze e rilasciata alla detta unità pipeline a ciclo.
In una realizzazione, un dispositivo per l’elaborazione dati comprende un’unità di prelievo d’istruzioni (per esempio, comprendente un demultiplatore d’istruzioni) avente almeno un ingresso ed un’uscita, un’unità pipeline per l’elaborazione dati avente almeno degli stati d’ingresso e d’uscita, ed un’unità pipeline a ciclo per l’elaborazione di un’istruzione a ciclo avente almeno degli stati d’ingresso e d’uscita. Gli stati d’ingresso delle unità pipeline, sono collegate all’uscita dell’unità di fornitura d’istruzioni la quale fornisce dati per tutte le unità pipeline. Le unità pipeline sono in grado d’elaborare i dati forniti indipendentemente in parallelo. La pipeline a ciclo può essere una pipeline con una funzionalità diretta solamente all’istruzione speciale a ciclo. Perciò, questo non richiede necessariamente tutte le unità operative di una pipeline regolare. La pipeline a ciclo maneggia i cicli privi d’oneri in modo che durante la ripetizione di un ciclo nessun’istruzione di diramazione o di salto e nessuna condizione di prova siano eseguite nella pipeline principale. La pipeline a ciclo viene utilizzata per aprire l’istruzione a ciclo dal flusso d’esecuzione permettendo ad un’istruzione a ciclo di essere eseguita in parallelo, per esempio, con un’operazione a numero intero e di carico/memorizzazione. Un ciclo di memoria d’istruzioni in deposito è fornito, il quale memorizza in deposito l’istruzione a ciclo, così che nessuna unità di prelievo nell’unità pipeline a ciclo sia necessaria. Un multiplatore può essere fornito il quale fornisce sia la sequenza d’istruzioni, oppure l’istruzione a ciclo di memoria in deposito all’unità di fornitura d’istruzioni.
In conformità con un secondo aspetto della presente invenzione, un metodo di eseguire un’istruzione a ciclo che forma parte di un flusso d’istruzioni dati in un dispositivo per l’elaborazione dati in conformità al primo aspetto, comprende i passi di predecodificare detto flusso d’istruzioni dati; fornendo istruzioni per la detta unità pipeline; rilasciando detta istruzione a ciclo alla detta unità pipeline a ciclo alla sua prima occorrenza; estraendo l’istruzione a ciclo dal flusso d’istruzioni dati in tutte le successive occorrenze; memorizzando in deposito la detta istruzione a ciclo nel mezzo di memoria di transito di ciclo di memoria in deposito; rilasciando l’istruzione a ciclo dal mezzo di memoria di transito di ciclo di memoria in deposito all’unità pipeline a ciclo; ed eseguendo la detta istruzione a ciclo in parallelo con altre istruzioni del detto flusso d’istruzioni dati.
Un metodo d’eseguire un ciclo comprende i passi di: se un’istruzione a ciclo dovesse avvenire per la prima volta, allora l’istruzione a ciclo è eseguita nella detta unità pipeline e perciò i dati che riguardano il ciclo sono memorizzati in una memoria in deposito con obiettivo a ciclo. Durante l’esecuzione del ciclo, l’istruzione a ciclo è eseguita nella pipeline a ciclo e le istruzioni comprese nel ciclo sono eseguite nell’unità pipeline in parallelo. Così, durante l’esecuzione del ciclo non avviene nessun onere. In altre parole, la vera e propria istruzione a ciclo non appare mai nell’unità pipeline d’istruzioni, poiché è rilasciata in parallelo con altre istruzioni alla pipeline a ciclo. Quando si trova un’istruzione a ciclo l’istruzione a ciclo viene prelevata e rilasciata alla pipeline di carico di memoria. Tuttavia, nelle successive iterazioni a ciclo l’istruzione a ciclo è eseguita nella pipeline a ciclo. Quindi, i cicli possono essere eseguiti molto velocemente con onere zero.
BREVE DESCRIZIONE DEI DISEGNI
La Figura 1 mostra uno schema a blocchi funzionale di un modulo di prelievo d’istruzioni secondo la presente invenzione;
la Figura 2 mostra con più dettagli una memoria in deposito con obiettivo a ciclo;
la Figura 3 mostra con più dettagli un’unità d’esecuzione di un ciclo, una memoria di transito di ciclo di memoria in deposito e l’unità d’aggiornamento del contatore e di controllo di programma;
la Figura 4 illustra una tabella mostrando il contenuto delle pipeline durante la prima iterazione del ciclo;
la Figura 5 illustra una tabella mostrando il contenuto delle pipeline durante la seconda e le successive iterazioni del ciclo; e,
la Figura 6 illustra una tabella mostrando il contenuto delle pipilene durante l’uscita del ciclo.
DESCRIZIONE DELLA REALIZZAZIONE PREFERITA
Le istruzioni a ciclo sono progettate per ottimizzare i cicli interni nei, per esempio, algoritmi d’elaborazione dei segnali digitali, ecc.. Una serie di hardware dedicati è associata con le istruzioni del ciclo. Questa serie di hardware dedicati implementa dei cicli ad onere zero.
Tali hardware possono comprendere un modulo di prelievo d’istruzioni che è una parte integrale di una realizzazione preferita di un microcontrollore, e mostrato schematicamente nella Figura 1. Per una migliore visione complessiva la Figura 1 mostra soltanto i principali collegamenti tra le principali unità. Nella realizzazione preferita, questo modulo di prelievo d’istruzioni 1 comprende tre unità pipeline 10, 11, e 12. Tuttavia, il microprocessore potrebbe avere soltanto una pipeline principale oppure la pipeline principale potrebbe consistere di una pluralità di pipeline .
(NOTE BY TRANSLATOR GEORGE TENEDIOS: THE ORIGINAL ITALIAN TEXT BEING TOO LONG – 27 PAGES – FOR PAST SAMPLE TRANSLATION PURPOSES ONLY, THE PARAGRAPHS THAT FOLLOW THE ABOVE PARAGRAPH HAVE BEEN DELETED TO PASS DIRECTLY TO THE CLAIMS):
RIVENDICAZIONI
1. Un dispositivo per l’elaborazione dati (1) comprendente:
un’unità pipeline (10, 11) per l’elaborazione dati;
un’unità di fornitura d’istruzioni (7) accoppiata all’unità pipeline (10, 11) per fornire da questa istruzioni;
un mezzo d’ingresso (3, 5, 6, 13) per fornire dati d’ingresso per l’unità di fornitura d’istruzioni (7); detta unità di fornitura d’istruzioni e detto mezzo d’ingresso, formando uno stato di prelievo per detta unità pipeline;
primo mezzo di controllo (9, 14) per controllare l’unità di fornitura d’istruzioni (7); e
secondo mezzo di controllo (2) per controllare il mezzo d’ingresso (3, 5, 6, 13),
caratterizzato in quanto il dispositivo (1) comprendente anche un’unità pipeline a ciclo (4, 12) per l’elaborazione di un’istruzione a ciclo, in cui l’unità pipeline a ciclo (4, 12) opera indipendentemente dal, ed in parallelo con, l’unità pipeline (10, 11) ed è accoppiata all’unità di fornitura d’istruzioni (7), per ricevere da questa istruzioni a ciclo; in cui il mezzo d’ingresso (3, 5, 6, 13) comprende un mezzo di memoria di transito di ciclo di memoria in deposito (3) per memorizzare le dette istruzioni a ciclo in modo che nessuno stato di prelievo sia richiesto per l’unità pipeline a ciclo; in cui il secondo mezzo di controllo (2), controlla il mezzo di memoria di transito di ciclo di memoria in deposito (3); in cui l’unità pipeline a ciclo (4, 12) comprende un’unità d’esecuzione a ciclo (4), accoppiata al secondo mezzo di controllo (2) ed il mezzo di memoria di transito di ciclo di memoria in deposito (3); ed in cui la detta istruzione a ciclo è rilasciata alla detta unità pipeline (10, 11) nella sua prima occorrenza e la detta istruzione a ciclo viene estratta dal detto flusso d’istruzioni in tutte le successive occorrenze e rilasciata alla detta unità pipeline a ciclo (4, 12).
2. Un dispositivo secondo la Rivendicazione 1, in cui il mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) comprende un registro (3a, 3b, 3c) avente una porzione (3a) per memorizzare un indirizzo d’istruzioni a ciclo ed una porzione (3b) per memorizzare un indirizzo d’istruzioni d’obiettivo a ciclo ed un valore di contatore di programma che segue l’indirizzo d’istruzioni d’obiettivo.
3. Un dispositivo secondo la Rivendicazione 2, in cui la porzione (3a) che memorizza l’indirizzo d’istruzioni a ciclo memorizza un indirizzo d’istruzioni precedente.
4. Un dispositivo secondo la Rivendicazione 3, in cui il registro (3a, 3b, 3c) comprendente anche una porzione (3c) per memorizzare una dimensione d’istruzione.
5. Un dispositivo secondo la Rivendicazione 1, in cui il mezzo d’ingresso (3, 5, 6, 13) comprende un multiplatore d’istruzioni (5) con due ingressi ed un’uscita, uno dei detti ingressi essendo collegato ad un sottosistema di memoria in deposito (13) per ricevere una sequenza d’istruzioni, l’altro dei detti ingressi essendo collegato al detto mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) e l’uscita essendo collegata all’unità di fornitura d’istruzioni (7).
6. Un dispositivo secondo la Rivendicazione 1, in cui il mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) comprende una memoria in deposito con obiettivo a diramazione.
7. Un dispositivo secondo la Rivendicazione 6, in cui la memoria in deposito con obiettivo a diramazione comprende un registro per memorizzare un contatore di programma dei dati ed un previsto contatore di programma dei dati.
8. Un dispositivo secondo la Rivendicazione 1, in cui l’unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) comprende una prima unità pipeline (10, 10a, 10b, 10c) ed una seconda unità pipeline (11, 11a, 11b, 11c), ogni unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c), avente rispettivi stati d’ingresso e d’uscita (10a, 11a) collegati all’unità di fornitura d’istruzioni (7).
9. Un dispositivo secondo la Rivendicazione 1, in cui l’unità pipeline a ciclo (4, 12, 12a, 12c) comprende un mezzo di memorizzare (4b) per memorizzare un valore di contatore a ciclo e mezzo (4d) per confrontare e decrementare il valore di contatore a ciclo.
10. Un metodo per eseguire un’istruzione a ciclo che forma parte di un flusso d’istruzioni dati in un dispositivo per l’elaborazione dati secondo qualsiasi delle Rivendicazioni precedenti, il metodo comprendente i passi di:
predecodificare detto flusso d’istruzioni dati;
fornire istruzioni per la detta unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c);
rilasciare detta istruzione a ciclo alla detta unità pipeline a ciclo (4, 12, 12a, 12c) nella sua prima occorrenza;
estrarre l’istruzione a ciclo dal flusso d’istruzioni dei dati in tutte le successive occorrenze;
memorizzare in deposito detta istruzione a ciclo nel mezzo di memoria di transito di ciclo di memoria in deposito;
rilasciare l’istruzione a ciclo dal mezzo di memoria di transito di ciclo di memoria in deposito all’unità pipeline a ciclo; e
eseguire detta istruzione a ciclo in parallelo con altre istruzioni del detto flusso d’istruzioni dati.
11. Un metodo secondo la Rivendicazione 10, comprendente anche il passo di distribuire istruzioni in parallelo alla detta unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c).
12. Un metodo secondo la Rivendicazione 10, comprendente anche il passo di eseguire detta istruzione a ciclo nella detta unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c), e memorizzare i dati relativi al ciclo nel detto mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) se un’istruzione a ciclo dovesse avvenire per la prima volta.
13. Un metodo secondo la Rivendicazione 12, in cui detta istruzione a ciclo è rilasciata alla detta unità pipeline a ciclo (4, 12, 12a, 12c) all’inizio d’ogni ciclo.
14. Un metodo secondo la Rivendicazione 12, in cui detta istruzione a ciclo è rilasciata alla detta unità pipeline a ciclo (4, 12, 12a, 12c) alla fine d’ogni ciclo.
PAST TRANSLATION SAMPLE
ENGLISH TRANSLATION BY GEORGE TENEDIOS
PATENT: DATA PROCESSING DEVICE
Translation of European Patent N° Y
registered on the Y, 2005
in the name of Y
with Head Office in Y (ITALY)
having as title: DATA PROCESSING DEVICE
D E S C R I P T I O N
BACKGROUND OF THE INVENTION
The present invention relates to a data processing device having a pipeline structure. Pipeline structures are well known, and used in microprocessors and microcontrollers. To work most efficiently, a pipeline is filled up with a sequence of instructions. Once the sequence is interrupted, the pipeline is filled up again. This causes a loss of processing speed for the microprocessor. Such interruptions occur mainly when a jump, branch or loop instruction is executed, because the following instruction is often not the instruction which follows the jump, branch or loop instruction.
Jump and branch instructions generally depend on a condition for its decision whether or not a jump or branch is to be executed. On the other hand, a loop instruction includes a parameter which indicates the number of times the loop is executed and a parameter which indicates the beginning of the loop. In particular, digital signal processors are often using loop instructions. Therefore, loop instructions can have an important influence on the resulting execution speed of the processor or a data processing unit. It is therefore an object of the present invention to provide a data processing device with means to execute loop instructions as fast as possible.
SUMMARY OF THE INVENTION
In accordance with a first aspect of the present invention, a data processing device comprises a pipeline unit for processing data; an instruction providing unit coupled to the pipeline unit from which to provide instructions; input means for providing input data for the instruction providing unit; said instruction providing unit and said input means forming a fetch stage for said pipeline unit; first control means for controlling the instruction providing unit; and second control means for controlling the input means; characterized in that the device further comprises a loop pipeline unit for processing a loop instruction, wherein the loop pipeline unit operates independently of, and in parallel with, the pipeline unit and is coupled to the instruction providing unit from which to receive loop instructions; wherein the input means comprises loop cache buffer means for storing said loop instructions such that no fetch stage is required for the loop pipeline unit; wherein the second control means controls the loop cache buffer means; wherein the loop pipeline unit includes a loop execution unit coupled to the second control means and the loop cache buffer means; and wherein said loop instruction is issued to said pipeline unit on its first occurrence and said loop instruction is extracted from said instruction stream on all following occurrences and issued to said loop pipeline unit.
In one embodiment, a data processing device comprises an instruction fetch unit (e.g. comprising an instruction demultiplexer) having at least an input and an output, a pipeline unit for processing data having at least input and output stages, and a loop pipeline unit for processing a loop instruction having at least input and output stages. The input stages of the pipeline units are connected to the output of the instruction providing unit which provides data for all pipeline units. The pipeline units are able to process the provided data independently in parallel. The loop pipeline can be a pipeline with a functionality only directed to the special loop instruction. It therefore does not necessarily need all the operating units of a regular pipeline. The loop pipeline handles the zero overhead loops, such that during the repetition of a loop, no branch or jump instruction and no condition testing are executed in the main pipeline. The loop pipeline is used to fold out the loop instruction from the execution flow allowing a loop instruction to be performed in parallel, for example, with an integer and load/store operation. A loop instruction cache is provided which caches the loop instruction, thus no fetch unit in the loop pipeline is necessary. A multiplexer can be provided which supplies either the instruction sequence or the cached loop instruction to the instruction providing unit.
In accordance with a second aspect of the present invention, a method of executing a loop instruction forming part of an instruction data stream in a data processing device according to the first aspect comprises the steps of pre-decoding said instruction data stream; providing instructions for said pipeline unit; issuing said loop instruction to said loop pipeline unit on its first occurrence; extracting the loop instruction from the instruction data stream on all following occurrences; caching said loop instruction in the loop cache buffer means; issuing the loop instruction from the loop cache buffer means to the loop pipeline unit; and executing said loop instruction in parallel with other instructions of said instruction data stream.
A method of executing a loop comprises the steps of: if a loop instruction occurs for the first time, then the loop instruction is executed in said pipeline unit and thereby the loop related data are stored in a loop target buffer. During execution of the loop, the loop instruction is executed in the loop pipeline and the instructions included in the loop are executed in the pipeline unit in parallel. Thus during execution of the loop no overhead occurs. In other words, the loop instruction proper never appears in the instruction pipeline unit, because it is issued in parallel with other instructions to the loop pipeline. When a loop instruction is encountered the loop instruction is fetched and issued to the load store pipeline. However, on subsequent loop iterations the loop instruction is executed in the loop pipeline. Therefore, the loops can be executed very fast with zero overhead.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a functional block diagram of an instruction fetch module according to the present invention;
Figure 2 shows a loop target buffer in more detail;
Figure 3 shows a loop execution unit, loop cache buffer and the program counter update and control unit in more detail;
Figure 4 depicts a table showing the content of the pipelines during the first iteration of the loop;
Figure 5 depicts a table showing the content of the pipelines during the second and following iterations of the loop; and,
Figure 6 depicts a table showing the content of the pipelines during the exit of the loop.
DESCRIPTION OF THE PREFERRED EMBODIMENT
The loop instructions are designed to optimize inner loops in, for example, digital signal processor algorithms, etc.. A set of dedicated hardware is associated with the loop instructions. This set of dedicated hardware implements zero overhead loops.
Such hardware can include an instruction fetch module which is an integral part of a preferred embodiment of a microcontroller and schematically shown in Figure 1. For a better overview, Figure 1 shows only the main connections between the main units. In the preferred embodiment, this instruction fetch module 1 comprises three pipeline units 10, 11 and 12. However, the microprocessor may have only one main pipeline or the main pipeline may consist of a plurality of pipelines.
(NOTE BY TRANSLATOR GEORGE TENEDIOS: THE ORIGINAL ITALIAN TEXT BEING TOO LONG – 27 PAGES – FOR PAST SAMPLE TRANSLATION PURPOSES ONLY, THE PARAGRAPHS THAT FOLLOW THE ABOVE PARAGRAPH HAVE BEEN DELETED TO PASS DIRECTLY TO THE CLAIMS):
CLAIMS
1. A data processing device (1) comprising:
a pipeline unit (10, 11) for processing data;
an instruction providing unit (7) coupled to the pipeline unit (10, 11) for providing instructions there from;
input means (3, 5, 6, 13) for providing input data for the instruction providing unit (7); said instruction providing unit and said input means forming a fetch stage for said pipeline unit;
first control means (9, 14) for controlling the instruction providing unit (7); and
second control means (2) for controlling the input means (3, 5, 6, 13),
characterized in that the device (1) further comprises a loop pipeline unit (4, 12) for processing a loop instruction, wherein the loop pipeline unit (4, 12) operates independently for, and in parallel with, the pipeline unit (10, 11) and is coupled to the instruction providing unit (7) for receiving loop instructions there from; wherein the input means (3, 5, 6, 13) comprises loop cache buffer means (3) for storing said loop instructions such that no fetch stage is required for the loop pipeline unit; wherein the second control means (2) controls the loop cache buffer means (3); wherein the loop pipeline unit (4, 12) includes a loop execution unit (4) coupled to the second control means (2) and the loop cache buffer means (3); and wherein said loop instruction is issued to said pipeline unit (10, 11) on its first occurrence and said loop instruction is extracted from said instruction stream on all following occurrences and issued to said loop pipeline unit (4, 12).
2. A device according to claim 1, wherein the loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) comprises a register (3a, 3b, 3c) having a portion (3a) for storing a loop instruction address and a portion (3b) for storing a loop target instruction address and a program counter value following the target instruction address.
3. A device according to claim 2, wherein the portion (3a) storing the loop instruction address stores a previous instruction address.
4. A device according to claim 3, wherein the register (3a, 3b, 3c) further includes a portion (3c) for storing an instruction size.
5. A device according to claim 1, wherein the input means (3, 5, 6, 13) comprises an instruction multiplexer (5) with two inputs and an output, one of said inputs being connected to a cache subsystem (13) for receiving an instruction sequence, the other of said inputs being connected to said loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) and the output being connected to the instruction providing unit (7).
6. A device according to claim 1, wherein the loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) comprises a branch target buffer.
7. A device according to claim 6, wherein the branch target buffer comprises a register for storing a program counter data and a predicted program counter data.
8. A device according to claim 1, wherein the pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) comprises a first pipeline unit (10, 10a, 10b, 10c) and a second pipeline unit (11, 11a, 11b, 11c), each pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) having respective input and output stages (10a, 11a) connected to the instruction providing unit (7).
9. A device according to claim 1, wherein the loop pipeline unit (4, 12, 12a, 12c) comprises a storing means (4b) for storing a loop counter value and means (4c) for comparing and decrementing the loop counter value.
10. A method of executing a loop instruction forming part of an instruction data steam in a data processing device according to any one of the preceding claims, the method comprising the steps of:
pre-decoding said instruction data steam;
providing instructions for said pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c);
issuing said loop instruction to said loop pipeline unit (4, 12, 12a, 12c) on its first occurrence;
extracting the loop instruction from the instruction data stream on all following occurrences;
caching said loop instruction in loop cache buffer means;
issuing the loop instruction from the loop cache buffer means to the loop pipeline unit; and
executing said loop instruction in parallel with other instructions of said instruction data stream.
11. A method according to claim 10, further comprising the step of distributing instructions in parallel to said pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c).
12 A method according to claim 10, further comprising the step of executing said loop instruction in said pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) and storing loop related data in said loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) if a loop instruction occurs for the first time.
13. A method according to claim 12, wherein said loop instruction is issued to said loop pipeline unit (4, 12, 12a, 12c) at the beginning of each loop.
14. A method according to claim 12, wherein said loop instruction is issued to said loop pipeline unit (4, 12, 12a, 12c) at the end of each loop.
| Translation - English PAST TRANSLATION SAMPLE
PATENT: DATA PROCESSING DEVICE
ENGLISH TRANSLATION
(GEORGE TENEDIOS)
European Patent N° Y
registered on the Y, 2005
in the name of Y
with Head Office in Y (ITALY)
having as title: DATA PROCESSING DEVICE
D E S C R I P T I O N
BACKGROUND OF THE INVENTION
The present invention relates to a data processing device having a pipeline structure. Pipeline structures are well known, and used in microprocessors and microcontrollers. To work most efficiently, a pipeline is filled up with a sequence of instructions. Once the sequence is interrupted, the pipeline is filled up again. This causes a loss of processing speed for the microprocessor. Such interruptions occur mainly when a jump, branch or loop instruction is executed, because the following instruction is often not the instruction which follows the jump, branch or loop instruction.
Jump and branch instructions generally depend on a condition for its decision whether or not a jump or branch is to be executed. On the other hand, a loop instruction includes a parameter which indicates the number of times the loop is executed and a parameter which indicates the beginning of the loop. In particular, digital signal processors are often using loop instructions. Therefore, loop instructions can have an important influence on the resulting execution speed of the processor or a data processing unit. It is therefore an object of the present invention to provide a data processing device with means to execute loop instructions as fast as possible.
SUMMARY OF THE INVENTION
In accordance with a first aspect of the present invention, a data processing device comprises a pipeline unit for processing data; an instruction providing unit coupled to the pipeline unit from which to provide instructions; input means for providing input data for the instruction providing unit; said instruction providing unit and said input means forming a fetch stage for said pipeline unit; first control means for controlling the instruction providing unit; and second control means for controlling the input means; characterized in that the device further comprises a loop pipeline unit for processing a loop instruction, wherein the loop pipeline unit operates independently of, and in parallel with, the pipeline unit and is coupled to the instruction providing unit from which to receive loop instructions; wherein the input means comprises loop cache buffer means for storing said loop instructions such that no fetch stage is required for the loop pipeline unit; wherein the second control means controls the loop cache buffer means; wherein the loop pipeline unit includes a loop execution unit coupled to the second control means and the loop cache buffer means; and wherein said loop instruction is issued to said pipeline unit on its first occurrence and said loop instruction is extracted from said instruction stream on all following occurrences and issued to said loop pipeline unit.
In one embodiment, a data processing device comprises an instruction fetch unit (e.g. comprising an instruction demultiplexer) having at least an input and an output, a pipeline unit for processing data having at least input and output stages, and a loop pipeline unit for processing a loop instruction having at least input and output stages. The input stages of the pipeline units are connected to the output of the instruction providing unit which provides data for all pipeline units. The pipeline units are able to process the provided data independently in parallel. The loop pipeline can be a pipeline with a functionality only directed to the special loop instruction. It therefore does not necessarily need all the operating units of a regular pipeline. The loop pipeline handles the zero overhead loops, such that during the repetition of a loop, no branch or jump instruction and no condition testing are executed in the main pipeline. The loop pipeline is used to fold out the loop instruction from the execution flow allowing a loop instruction to be performed in parallel, for example, with an integer and load/store operation. A loop instruction cache is provided which caches the loop instruction, thus no fetch unit in the loop pipeline is necessary. A multiplexer can be provided which supplies either the instruction sequence or the cached loop instruction to the instruction providing unit.
In accordance with a second aspect of the present invention, a method of executing a loop instruction forming part of an instruction data stream in a data processing device according to the first aspect comprises the steps of pre-decoding said instruction data stream; providing instructions for said pipeline unit; issuing said loop instruction to said loop pipeline unit on its first occurrence; extracting the loop instruction from the instruction data stream on all following occurrences; caching said loop instruction in the loop cache buffer means; issuing the loop instruction from the loop cache buffer means to the loop pipeline unit; and executing said loop instruction in parallel with other instructions of said instruction data stream.
A method of executing a loop comprises the steps of: if a loop instruction occurs for the first time, then the loop instruction is executed in said pipeline unit and thereby the loop related data are stored in a loop target buffer. During execution of the loop, the loop instruction is executed in the loop pipeline and the instructions included in the loop are executed in the pipeline unit in parallel. Thus during execution of the loop no overhead occurs. In other words, the loop instruction proper never appears in the instruction pipeline unit, because it is issued in parallel with other instructions to the loop pipeline. When a loop instruction is encountered the loop instruction is fetched and issued to the load store pipeline. However, on subsequent loop iterations the loop instruction is executed in the loop pipeline. Therefore, the loops can be executed very fast with zero overhead.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a functional block diagram of an instruction fetch module according to the present invention;
Figure 2 shows a loop target buffer in more detail;
Figure 3 shows a loop execution unit, loop cache buffer and the program counter update and control unit in more detail;
Figure 4 depicts a table showing the content of the pipelines during the first iteration of the loop;
Figure 5 depicts a table showing the content of the pipelines during the second and following iterations of the loop; and,
Figure 6 depicts a table showing the content of the pipelines during the exit of the loop.
DESCRIPTION OF THE PREFERRED EMBODIMENT
The loop instructions are designed to optimize inner loops in, for example, digital signal processor algorithms, etc.. A set of dedicated hardware is associated with the loop instructions. This set of dedicated hardware implements zero overhead loops.
Such hardware can include an instruction fetch module which is an integral part of a preferred embodiment of a microcontroller and schematically shown in Figure 1. For a better overview, Figure 1 shows only the main connections between the main units. In the preferred embodiment, this instruction fetch module 1 comprises three pipeline units 10, 11 and 12. However, the microprocessor may have only one main pipeline or the main pipeline may consist of a plurality of pipelines.
(NOTE BY TRANSLATOR GEORGE TENEDIOS: THE ORIGINAL ENGLISH TEXT BEING TOO LONG – 27 PAGES – FOR PAST SAMPLE TRANSLATION PURPOSES ONLY, THE PARAGRAPHS THAT FOLLOW THE ABOVE PARAGRAPH HAVE BEEN DELETED TO PASS DIRECTLY TO THE CLAIMS):
CLAIMS
1. A data processing device (1) comprising:
a pipeline unit (10, 11) for processing data;
an instruction providing unit (7) coupled to the pipeline unit (10, 11) for providing instructions there from;
input means (3, 5, 6, 13) for providing input data for the instruction providing unit (7); said instruction providing unit and said input means forming a fetch stage for said pipeline unit;
first control means (9, 14) for controlling the instruction providing unit (7); and
second control means (2) for controlling the input means (3, 5, 6, 13),
characterized in that the device (1) further comprises a loop pipeline unit (4, 12) for processing a loop instruction, wherein the loop pipeline unit (4, 12) operates independently for, and in parallel with, the pipeline unit (10, 11) and is coupled to the instruction providing unit (7) for receiving loop instructions there from; wherein the input means (3, 5, 6, 13) comprises loop cache buffer means (3) for storing said loop instructions such that no fetch stage is required for the loop pipeline unit; wherein the second control means (2) controls the loop cache buffer means (3); wherein the loop pipeline unit (4, 12) includes a loop execution unit (4) coupled to the second control means (2) and the loop cache buffer means (3); and wherein said loop instruction is issued to said pipeline unit (10, 11) on its first occurrence and said loop instruction is extracted from said instruction stream on all following occurrences and issued to said loop pipeline unit (4, 12).
2. A device according to claim 1, wherein the loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) comprises a register (3a, 3b, 3c) having a portion (3a) for storing a loop instruction address and a portion (3b) for storing a loop target instruction address and a program counter value following the target instruction address.
3. A device according to claim 2, wherein the portion (3a) storing the loop instruction address stores a previous instruction address.
4. A device according to claim 3, wherein the register (3a, 3b, 3c) further includes a portion (3c) for storing an instruction size.
5. A device according to claim 1, wherein the input means (3, 5, 6, 13) comprises an instruction multiplexer (5) with two inputs and an output, one of said inputs being connected to a cache subsystem (13) for receiving an instruction sequence, the other of said inputs being connected to said loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) and the output being connected to the instruction providing unit (7).
6. A device according to claim 1, wherein the loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) comprises a branch target buffer.
7. A device according to claim 6, wherein the branch target buffer comprises a register for storing a program counter data and a predicted program counter data.
8. A device according to claim 1, wherein the pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) comprises a first pipeline unit (10, 10a, 10b, 10c) and a second pipeline unit (11, 11a, 11b, 11c), each pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) having respective input and output stages (10a, 11a) connected to the instruction providing unit (7).
9. A device according to claim 1, wherein the loop pipeline unit (4, 12, 12a, 12c) comprises a storing means (4b) for storing a loop counter value and means (4c) for comparing and decrementing the loop counter value.
10. A method of executing a loop instruction forming part of an instruction data steam in a data processing device according to any one of the preceding claims, the method comprising the steps of:
pre-decoding said instruction data steam;
providing instructions for said pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c);
issuing said loop instruction to said loop pipeline unit (4, 12, 12a, 12c) on its first occurrence;
extracting the loop instruction from the instruction data stream on all following occurrences;
caching said loop instruction in loop cache buffer means;
issuing the loop instruction from the loop cache buffer means to the loop pipeline unit; and
executing said loop instruction in parallel with other instructions of said instruction data stream.
11. A method according to claim 10, further comprising the step of distributing instructions in parallel to said pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c).
12 A method according to claim 10, further comprising the step of executing said loop instruction in said pipeline unit (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) and storing loop related data in said loop cache buffer means (3, 3a, 3b, 3c, 3d, 3e) if a loop instruction occurs for the first time.
13. A method according to claim 12, wherein said loop instruction is issued to said loop pipeline unit (4, 12, 12a, 12c) at the beginning of each loop.
14. A method according to claim 12, wherein said loop instruction is issued to said loop pipeline unit (4, 12, 12a, 12c) at the end of each loop.
PAST TRANSLATION SAMPLE
PATENT: DATA PROCESSING DEVICE
ITALIAN TRANSLATION
(BY GEORGE TENEDIOS)
Traduzione del testo del Brevetto Europeo N° Y
depositato il Y.2005
a nome della ditta Y
con sede a Y, ITALIA
avente per titolo: DISPOSITIVO ELABORAZIONE DATI.
DESCRIZIONE
ANTEFATTI DELL’INVENZIONE
La presente invenzione descrive un dispositivo per elaborazione dati avente una struttura pipeline. Le strutture pipeline sono ben note e utilizzate nei microprocessori e microcontrollori. Per funzionare più efficientemente, una pipeline è riempita con una sequenza d’istruzioni. Una volta che la sequenza viene interrotta, la pipeline è riempita di nuovo. Questo causa una perdita di velocità d’elaborazione al microprocessore. Tali interruzioni avvengono principalmente quando un’istruzione di salto, di diramazione o di ciclo viene eseguita, perché la successiva istruzione di solito non è l’istruzione successiva all’istruzione di salto, di diramazione o di ciclo.
Le istruzioni di salto e di diramazione dipendono generalmente da una condizione, di sua decisione, se, oppure no, un salto o una diramazione deve essere eseguita. D’altra parte, un’istruzione a ciclo comprende un parametro che indica il numero di volte che il ciclo viene eseguito ed un parametro che indica l’inizio del ciclo. In particolare, gli elaboratori di segnali digitali di solito utilizzano istruzioni a ciclo. Quindi, le istruzioni a ciclo possono aver un’importante influenza sulla velocità d’esecuzione risultante dell’elaboratore oppure di un’unità per l’elaborazione dati. È quindi un obiettivo della presente invenzione di provvedere un dispositivo per l’elaborazione dati con mezzi per eseguire istruzioni a ciclo, quanto velocemente possibile.
SOMMARIO DELL’INVENZIONE
In conformità con un primo aspetto della presente invenzione, un dispositivo per l’elaborazione dati comprende un’unità pipeline per l’elaborazione dati; un’unità di fornitura d’istruzioni accoppiata all’unità pipeline dal quale fornire istruzioni; un mezzo d’ingresso per fornire dati d’ingresso per l’unità di fornitura d’istruzioni; detta unità di fornitura d’istruzioni e detto mezzo d’ingresso formando uno stato di prelievo per detta unità pipeline; primi mezzi di controllo per controllare l’unità di fornitura d’istruzioni; e secondi mezzi di controllo per controllare il mezzo d’ingresso; caratterizzato in quanto il dispositivo comprende anche un’unità pipeline a ciclo per l’elaborazione di un’istruzione a ciclo; in cui l’unità pipeline a ciclo opera indipendentemente della, ed in parallelo con, l’unità pipeline ed è accoppiata all’unità di fornitura d’istruzioni dalla quale ricevere istruzioni a ciclo; in cui il mezzo d’ingresso comprende un mezzo di memoria di transito di ciclo di memoria in deposito per memorizzare le dette istruzioni a ciclo in modo che nessuno stato di prelievo sia richiesto per l’unità pipeline a ciclo; in cui il secondo mezzo di controllo controlla il mezzo di memoria di transito di ciclo di memoria in deposito; in cui l’unità pipeline a ciclo comprende un’unità d’esecuzione a ciclo accoppiata al secondo mezzo di controllo ed il mezzo di memoria di transito di ciclo di memoria in deposito; ed in cui la detta istruzione a ciclo viene rilasciata alla detta unità pipeline alla sua prima occorrenza e la detta istruzione a ciclo viene estratta dal detto flusso d’istruzioni in tutte le successive occorrenze e rilasciata alla detta unità pipeline a ciclo.
In una realizzazione, un dispositivo per l’elaborazione dati comprende un’unità di prelievo d’istruzioni (per esempio, comprendente un demultiplatore d’istruzioni) avente almeno un ingresso ed un’uscita, un’unità pipeline per l’elaborazione dati avente almeno degli stati d’ingresso e d’uscita, ed un’unità pipeline a ciclo per l’elaborazione di un’istruzione a ciclo avente almeno degli stati d’ingresso e d’uscita. Gli stati d’ingresso delle unità pipeline, sono collegate all’uscita dell’unità di fornitura d’istruzioni la quale fornisce dati per tutte le unità pipeline. Le unità pipeline sono in grado d’elaborare i dati forniti indipendentemente in parallelo. La pipeline a ciclo può essere una pipeline con una funzionalità diretta solamente all’istruzione speciale a ciclo. Perciò, questo non richiede necessariamente tutte le unità operative di una pipeline regolare. La pipeline a ciclo maneggia i cicli privi d’oneri in modo che durante la ripetizione di un ciclo nessun’istruzione di diramazione o di salto e nessuna condizione di prova siano eseguite nella pipeline principale. La pipeline a ciclo viene utilizzata per aprire l’istruzione a ciclo dal flusso d’esecuzione permettendo ad un’istruzione a ciclo di essere eseguita in parallelo, per esempio, con un’operazione a numero intero e di carico/memorizzazione. Un ciclo di memoria d’istruzioni in deposito è fornito, il quale memorizza in deposito l’istruzione a ciclo, così che nessuna unità di prelievo nell’unità pipeline a ciclo sia necessaria. Un multiplatore può essere fornito il quale fornisce sia la sequenza d’istruzioni, oppure l’istruzione a ciclo di memoria in deposito all’unità di fornitura d’istruzioni.
In conformità con un secondo aspetto della presente invenzione, un metodo di eseguire un’istruzione a ciclo che forma parte di un flusso d’istruzioni dati in un dispositivo per l’elaborazione dati in conformità al primo aspetto, comprende i passi di predecodificare detto flusso d’istruzioni dati; fornendo istruzioni per la detta unità pipeline; rilasciando detta istruzione a ciclo alla detta unità pipeline a ciclo alla sua prima occorrenza; estraendo l’istruzione a ciclo dal flusso d’istruzioni dati in tutte le successive occorrenze; memorizzando in deposito la detta istruzione a ciclo nel mezzo di memoria di transito di ciclo di memoria in deposito; rilasciando l’istruzione a ciclo dal mezzo di memoria di transito di ciclo di memoria in deposito all’unità pipeline a ciclo; ed eseguendo la detta istruzione a ciclo in parallelo con altre istruzioni del detto flusso d’istruzioni dati.
Un metodo d’eseguire un ciclo comprende i passi di: se un’istruzione a ciclo dovesse avvenire per la prima volta, allora l’istruzione a ciclo è eseguita nella detta unità pipeline e perciò i dati che riguardano il ciclo sono memorizzati in una memoria in deposito con obiettivo a ciclo. Durante l’esecuzione del ciclo, l’istruzione a ciclo è eseguita nella pipeline a ciclo e le istruzioni comprese nel ciclo sono eseguite nell’unità pipeline in parallelo. Così, durante l’esecuzione del ciclo non avviene nessun onere. In altre parole, la vera e propria istruzione a ciclo non appare mai nell’unità pipeline d’istruzioni, poiché è rilasciata in parallelo con altre istruzioni all pipeline a ciclo. Quando si trova un’istruzione a ciclo l’istruzione a ciclo viene prelevata e rilasciata allA pipeline di carico di memoria. Tuttavia, nelle successive iterazioni a ciclo l’istruzione a ciclo è eseguita nellA pipeline a ciclo. Quindi, i cicli possono essere eseguiti molto velocemente con onere zero.
BREVE DESCRIZIONE DEI DISEGNI
La Figura 1 mostra uno schema a blocchi funzionale di un modulo di prelievo d’istruzioni secondo la presente invenzione;
la Figura 2 mostra con più dettagli una memoria in deposito con obiettivo a ciclo;
la Figura 3 mostra con più dettagli un’unità d’esecuzione di un ciclo, una memoria di transito di ciclo di memoria in deposito e l’unità d’aggiornamento del contatore e di controllo di programma;
la Figura 4 illustra una tabella mostrando il contenuto delle catene di montaggio durante la prima iterazione del ciclo;
la Figura 5 illustra una tabella mostrando il contenuto delle pipeline durante la seconda e le successive iterazioni del ciclo; e,
la Figura 6 illustra una tabella mostrando il contenuto delle pipeline durante l’uscita del ciclo.
DESCRIZIONE DELLA REALIZZAZIONE PREFERITA
Le istruzioni a ciclo sono progettate per ottimizzare i cicli interni nei, per esempio, algoritmi d’elaborazione dei segnali digitali, ecc.. Una serie di hardware dedicati è associata con le istruzioni del ciclo. Questa serie di hardware dedicati implementa dei cicli ad onere zero.
Tali hardware possono comprendere un modulo di prelievo d’istruzioni che è una parte integrale di una realizzazione preferita di un microcontrollore, e mostrato schematicamente nella Figura 1. Per una migliore visione complessiva la Figura 1 mostra soltanto i principali collegamenti tra le principali unità. Nella realizzazione preferita, questo modulo di prelievo d’istruzioni 1 comprende tre unità pipeline 10, 11, e 12. Tuttavia, il microprocessore potrebbe avere soltanto una pipeline principale oppure la pipeline principale potrebbe consistere di una pluralità di catene di montaggio.
(NOTE BY TRANSLATOR GEORGE TENEDIOS: THE ORIGINAL ENGLISH TEXT BEING TOO LONG – 27 PAGES – FOR PAST SAMPLE TRANSLATION PURPOSES ONLY, THE PARAGRAPHS THAT FOLLOW THE ABOVE PARAGRAPH HAVE BEEN DELETED TO PASS DIRECTLY TO THE CLAIMS):
RIVENDICAZIONI
1. Un dispositivo per l’elaborazione dati (1) comprendente:
un’unità pipeline (10, 11) per l’elaborazione dati;
un’unità di fornitura d’istruzioni (7) accoppiata all’unità pipeline (10, 11) per fornire da questa istruzioni;
un mezzo d’ingresso (3, 5, 6, 13) per fornire dati d’ingresso per l’unità di fornitura d’istruzioni (7); detta unità di fornitura d’istruzioni e detto mezzo d’ingresso, formando uno stato di prelievo per detta unità pipeline;
primo mezzo di controllo (9, 14) per controllare l’unità di fornitura d’istruzioni (7); e
secondo mezzo di controllo (2) per controllare il mezzo d’ingresso (3, 5, 6, 13),
caratterizzato in quanto il dispositivo (1) comprendente anche un’unità pipeline a ciclo (4, 12) per l’elaborazione di un’istruzione a ciclo, in cui l’unità pipeline a ciclo (4, 12) opera indipendentemente dal, ed in parallelo con, l’unità pipeline (10, 11) ed è accoppiata all’unità di fornitura d’istruzioni (7), per ricevere da questa istruzioni a ciclo; in cui il mezzo d’ingresso (3, 5, 6, 13) comprende un mezzo di memoria di transito di ciclo di memoria in deposito (3) per memorizzare le dette istruzioni a ciclo in modo che nessuno stato di prelievo sia richiesto per l’unità pipeline a ciclo; in cui il secondo mezzo di controllo (2), controlla il mezzo di memoria di transito di ciclo di memoria in deposito (3); in cui l’unità pipeline a ciclo (4, 12) comprende un’unità d’esecuzione a ciclo (4), accoppiata al secondo mezzo di controllo (2) ed il mezzo di memoria di transito di ciclo di memoria in deposito (3); ed in cui la detta istruzione a ciclo è rilasciata alla detta unità pipeline (10, 11) nella sua prima occorrenza e la detta istruzione a ciclo viene estratta dal detto flusso d’istruzioni in tutte le successive occorrenze e rilasciata alla detta unità pipeline a ciclo (4, 12).
2. Un dispositivo secondo la Rivendicazione 1, in cui il mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) comprende un registro (3a, 3b, 3c) avente una porzione (3a) per memorizzare un indirizzo d’istruzioni a ciclo ed una porzione (3b) per memorizzare un indirizzo d’istruzioni d’obiettivo a ciclo ed un valore di contatore di programma che segue l’indirizzo d’istruzioni d’obiettivo.
3. Un dispositivo secondo la Rivendicazione 2, in cui la porzione (3a) che memorizza l’indirizzo d’istruzioni a ciclo memorizza un indirizzo d’istruzioni precedente.
4. Un dispositivo secondo la Rivendicazione 3, in cui il registro (3a, 3b, 3c) comprendente anche una porzione (3c) per memorizzare una dimensione d’istruzione.
5. Un dispositivo secondo la Rivendicazione 1, in cui il mezzo d’ingresso (3, 5, 6, 13) comprende un multiplatore d’istruzioni (5) con due ingressi ed un’uscita, uno dei detti ingressi essendo collegato ad un sottosistema di memoria in deposito (13) per ricevere una sequenza d’istruzioni, l’altro dei detti ingressi essendo collegato al detto mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) e l’uscita essendo collegata all’unità di fornitura d’istruzioni (7).
6. Un dispositivo secondo la Rivendicazione 1, in cui il mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) comprende una memoria in deposito con obiettivo a diramazione.
7. Un dispositivo secondo la Rivendicazione 6, in cui la memoria in deposito con obiettivo a diramazione comprende un registro per memorizzare un contatore di programma dei dati ed un previsto contatore di programma dei dati.
8. Un dispositivo secondo la Rivendicazione 1, in cui l’unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c) comprende una prima unità pipeline (10, 10a, 10b, 10c) ed una seconda unità pipeline (11, 11a, 11b, 11c), ogni unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c), avente rispettivi stati d’ingresso e d’uscita (10a, 11a) collegati all’unità di fornitura d’istruzioni (7).
9. Un dispositivo secondo la Rivendicazione 1, in cui l’unità pipeline a ciclo (4, 12, 12a, 12c) comprende un mezzo di memorizzare (4b) per memorizzare un valore di contatore a ciclo e mezzo (4d) per confrontare e decrementare il valore di contatore a ciclo.
10. Un metodo per eseguire un’istruzione a ciclo che forma parte di un flusso d’istruzioni dati in un dispositivo per l’elaborazione dati secondo qualsiasi delle Rivendicazioni precedenti, il metodo comprendente i passi di:
predecodificare detto flusso d’istruzioni dati;
fornire istruzioni per la detta unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c);
rilasciare detta istruzione a ciclo alla detta unità pipeline a ciclo (4, 12, 12a, 12c) nella sua prima occorrenza;
estrarre l’istruzione a ciclo dal flusso d’istruzioni dei dati in tutte le successive occorrenze;
memorizzare in deposito detta istruzione a ciclo nel mezzo di memoria di transito di ciclo di memoria in deposito;
rilasciare l’istruzione a ciclo dal mezzo di memoria di transito di ciclo di memoria in deposito all’unità pipeline a ciclo; e
eseguire detta istruzione a ciclo in parallelo con altre istruzioni del detto flusso d’istruzioni dati.
11. Un metodo secondo la Rivendicazione 10, comprendente anche il passo di distribuire istruzioni in parallelo alla detta unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c).
12. Un metodo secondo la Rivendicazione 10, comprendente anche il passo di eseguire detta istruzione a ciclo nella detta unità pipeline (10, 10a, 10b, 10c, 11, 11a, 11b, 11c), e memorizzare i dati relativi al ciclo nel detto mezzo di memoria di transito di ciclo di memoria in deposito (3, 3a, 3b, 3c, 3d, 3e) se un’istruzione a ciclo dovesse avvenire per la prima volta.
13. Un metodo secondo la Rivendicazione 12, in cui detta istruzione a ciclo è rilasciata alla detta unità pipeline a ciclo (4, 12, 12a, 12c) all’inizio d’ogni ciclo.
14. Un metodo secondo la Rivendicazione 12, in cui detta istruzione a ciclo è rilasciata alla detta unità pipeline a ciclo (4, 12, 12a, 12c) alla fine d’ogni ciclo.
|
More Less | | giorgioten | | OTHER | | Years of translation experience: 10. Registered at ProZ.com: Mar 2003. Became a member: Mar 2003. | Italian to English | | N/A | | N/A | | Adobe Acrobat, Adobe Photoshop, DejaVu, Indesign, Microsoft Excel, Microsoft Word, Powerpoint, SDL TRADOS, SDLX, Wordfast | | 2 forum posts | | http://www.proz.com/profile/49648 | | English (DOC), Italian (DOC), French (DOC) | | giorgioten endorses ProZ.com's Professional Guidelines. | | About me
- Contract documents: International Tenders, Conditions of Contract, Specifications and other contract related documents;
- Patent Invention Claims;
- IT;
- Mechanical engineering;
- Automotive industry;
- Electrical engineering;
- Electronics;
- Electromechanical installations;
- Telecommunications;
- Medical Instrumentation;
- Instruction/User Manuals, Brochures, Glossaries;
- Finance, Legal, Business, Marketing.
Native in Italian and English.
Fluent in French.
Holds a Mechanical Engineering Degree (London University, UK).
Experience includes:
- At present over 550 patent invention claims (approx. 5.5 million words).
- A 27-year constant handling of technical translations in various mechanical, electrical, civil and other fields (see Areas of Specialization).
- A voluminous portfolio of technical correspondence.
- Contract Documents, International Tenders, Specifications, Contract Conditions, Bills of Quantities, Lists of materials, equipment, spare parts, etc..
Language pairs are English>Italian>English, French> English and French>Italian.
| This user has earned KudoZ points by helping other translators with PRO-level terms. Click point total(s) to see term translations provided.
Total pts earned: 114 (All PRO level)
| | Top languages (PRO) | | English to Italian | 36 | | French to English | 31 | | Italian to English | 27 | | French to Italian | 20 | | Top general fields (PRO) | | Tech/Engineering | 80 | | Other | 30 | | Bus/Financial | 4 | | Top specific fields (PRO) | | Construction / Civil Engineering | 93 | | Engineering (general) | 7 | | Chemistry; Chem Sci/Eng | 4 | | Mechanics / Mech Engineering | 4 | | Finance (general) | 4 | | Business/Commerce (general) | 2 | See all points earned > |
| Keywords: mechanical, electrical, electronics, civil engineering, telecommunications, medical instrumentation, patent claims, automotive industry, it, manuals, brochures, glossaries, contract documents, tenders, specifications, bills of quantities, materials, equipment, spare parts, marketing, business, finance, legal
This profile has received 130 visits in the last month, from a total of 85 visitors
Profile last updated Oct 21 |