JP2000029703A - Dsp architecture optimized for memory access - Google Patents

Dsp architecture optimized for memory access

Info

Publication number
JP2000029703A
JP2000029703A JP11094975A JP9497599A JP2000029703A JP 2000029703 A JP2000029703 A JP 2000029703A JP 11094975 A JP11094975 A JP 11094975A JP 9497599 A JP9497599 A JP 9497599A JP 2000029703 A JP2000029703 A JP 2000029703A
Authority
JP
Japan
Prior art keywords
unit
instruction
queue
memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP11094975A
Other languages
Japanese (ja)
Inventor
Didier Fuin
フュワン ディディエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of JP2000029703A publication Critical patent/JP2000029703A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

PROBLEM TO BE SOLVED: To provide a super-scalar processor which has maximum efficiency for the execution of a loop, including a memory access instruction. SOLUTION: A processor includes at least one memory access unit (MENU) 10 which provides a readout or write-in address for the address bus of a memory 16 as a readout or write-in instruction is executed, a computing and logic unit(ALU) 12, which operates in parallel to the memory access unit and is arranged at least to provide data for the data bus of the memory while the memory access unit provides a write address, and a stored address quene (STAQ) in which respective write addresses provided by the memory access unit waiting until the availability of the data is written are stored.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、デジタル信号プロ
セッサ(DSP)に関し、特にメモリレイテンシ(laten
cy)に起因する問題を回避するアーキテクチャに関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a digital signal processor (DSP), and more particularly to a memory latency (laten).
cy).

【0002】[0002]

【従来の技術】図1は、従来のDSPアーキテクチャの
一部を概略的に表している。該DSPは、平行に動作す
る4つの処理ユニットを含む。これらユニットの2つ
は、メモリアクセスユニット(MEMU)10である。
更に、計算及び論理ユニット(ALU)12及び分岐ユ
ニット(BRU)14が設けられている。MEMUユニ
ットの各々は、独立したバスを介してメモリ16に係合
する。
FIG. 1 schematically illustrates a portion of a conventional DSP architecture. The DSP includes four processing units operating in parallel. Two of these units are memory access units (MEMU) 10.
Further, a calculation and logic unit (ALU) 12 and a branch unit (BRU) 14 are provided. Each of the MEMU units engages the memory 16 via an independent bus.

【0003】分岐ユニットBRUは、平行に各ユニット
に設けられるべき4つの要素命令を含むことができる複
合命令INSTを、表されていない命令メモリから受信
する。ユニットBRUは、その意味する命令を検索し、
ALU及びMEMUユニットへ3つの残存命令I1、I
2及びI3を平行に分散する。
[0003] The branch unit BRU receives from a non-represented instruction memory a compound instruction INST, which may include four element instructions to be provided in each unit in parallel. The unit BRU searches for the instruction that means,
3 surviving instructions I1, I to ALU and MEMU units
2 and I3 are distributed in parallel.

【0004】ALU及びMEMUユニットの各々は、通
常、FIFO形式の命令キュー18を含んでおり、命令
が対応するユニットによって処理される前に該命令がそ
の中でウエイトされる。
[0004] Each of the ALU and MEMU units typically includes an instruction queue 18 in the form of a FIFO in which instructions are weighted before the instructions are processed by the corresponding unit.

【0005】図1のタイプのDSPは、タイプX[i]
OP Y[j]のベクトルオペレーションを行うため
に最適化される。i及びjは通常ループ内で変化し、O
Pは計算ユニット12によって実行すべきいずれかのオ
ペレーションを指示する。実際に、オペランドX[i]
及びY[j]を、2つのバスを介してメモリ16に一緒
にフェッチでき、ALU12によって同じサイクルにお
いて理論通り処理される。
A DSP of the type shown in FIG. 1 is of the type X [i]
Optimized to perform OP Y [j] vector operations. i and j usually change in a loop, and O
P indicates any operation to be performed by the computation unit 12. In fact, the operand X [i]
And Y [j] can be fetched together into memory 16 via the two buses and are processed by ALU 12 in the same cycle in theory.

【0006】[0006]

【発明が解決しようとする課題】実際に、通常SRAM
である、現在用いられているメモリの構造のために問題
が生じる。メモリアクセスを各サイクルで実行できるけ
れども、従来のSRAMからのデータの読み出しは、通
常、2サイクルのレイテンシを有する。実際に、読み出
し命令の実行において、アドレスをメモリへ提供する。
読み出しアクセス信号を有するメモリを提供するために
追加のサイクルが必要とされ、最後のサイクルが、その
データバスにデータを提供するメモリのために必要とさ
れる。
In practice, a conventional SRAM
A problem arises because of the structure of the currently used memory. Although memory access can be performed in each cycle, reading data from a conventional SRAM typically has a latency of two cycles. In effect, in executing the read instruction, the address is provided to the memory.
An additional cycle is required to provide the memory with the read access signal, and the last cycle is required for the memory providing data on its data bus.

【0007】その結果的な問題を説明するために、メモ
リにストアされた一定の連続する値によって増加するそ
の関数である共通ループが、一例として以下で検討され
る。このループを、以下のように直接記載することがで
きる。
To illustrate the resulting problem, the common loop, which is a function of which is incremented by certain successive values stored in memory, is discussed below as an example. This loop can be described directly as follows:

【0008】 LD:R1=[i] (1) OP:R1=R1+R2 ST:[i]=R1 BR:test i,i++,loopLD: R1 = [i] (1) OP: R1 = R1 + R2 ST: [i] = R1 BR: test i, i ++, loop

【0009】このループは、明確には、1つのMEMU
ユニットを用いる。それは、アドレスiでメモリにスト
アされた値をレジスタR1内にロードし(LD)、レジ
スタR2に含まれた値だけレジスタR1の内容を増分し
(OP)、レジスタR1の新しい内容をアドレス1でス
トアし(ST)、最後にループを再び始めるためにアド
レスiを増分し且つテストする(BR)ことからなる。
アドレスiが予め決められた値に達したことを分岐ユニ
ットBRUが検出したときに、ループから出る。DSP
においては、通常、非BR型命令である。ループは、テ
スト、増分及び分岐を独立して実行するユニットBRU
内に、このために設けられたレジスタを先にセットする
ことによってプログラムされる。
This loop is clearly one MEMU
Use a unit. It loads the value stored in memory at address i into register R1 (LD), increments the contents of register R1 by the value contained in register R2 (OP), and stores the new contents of register R1 at address 1. Store (ST) and finally increment and test (BR) the address i to start the loop again.
When the branch unit BRU detects that the address i has reached a predetermined value, the process exits the loop. DSP
Is usually a non-BR type instruction. The loop is a unit BRU that independently executes tests, increments and branches
, By first setting a register provided for this purpose.

【0010】レジスタR1はALUの作業レジスタであ
り、アドレスiが分岐ユニットBRUのレジスタ内にス
トアされる。オペレーションLD及びSTは、ユニット
MEMUの一方によって実行すべきオペレーションであ
り、オペレーションOPは、ユニットALUによって実
行すべきであり、オペレーションBRはユニットBRU
によって実行すべきである。オペレーションLD及びO
Pは、同じ複合命令においてユニットMEMU及びAL
Uに平行に提供され、一方、オペレーションST及びB
Rは、第2の複合命令においてユニットMEMU及びB
RUに平行に提供される。
The register R1 is a working register of the ALU, and the address i is stored in the register of the branch unit BRU. Operations LD and ST are operations to be performed by one of the units MEMU, operation OP is to be performed by the unit ALU, and operation BR is a unit BRU
Should be done by Operations LD and O
P is the unit MEMU and AL in the same compound instruction
Provided in parallel to U, while operations ST and B
R is the unit MEMU and B in the second compound instruction
Provided parallel to the RU.

【0011】実際に、幾つかの複合命令は、一度に幾つ
かのユニットに提供されるフィールドを含む。例えば、
ユニットMEMUを意味するロード命令LDはまた、メ
モリによって提供されるデータを受信するそのレジスタ
(R1)の1つを準備するために、ユニットALUを意
味するするフィールドをも含む。同時にストア命令ST
は、レジスタを選択するためにユニットALUを意味す
るフィールドを含み、その内容はメモリバスに提供され
る。従って、図1に表されたように、ユニットMEMU
に提供された命令I2及びI3の各々のフィールドf
が、通常の命令I1と共に平行にユニットALUの命令
キュー18へ提供され、ユニットALUは、通常の命令
とフィールドfによって指示されたオペレーションとを
1サイクルで実行することができる。
In practice, some compound instructions contain fields that are provided to several units at a time. For example,
The load instruction LD, meaning unit MEMU, also includes a field, meaning unit ALU, to prepare one of its registers (R1) to receive the data provided by the memory. At the same time, store instruction ST
Contains a field which means unit ALU for selecting a register, the contents of which are provided on the memory bus. Therefore, as shown in FIG.
F of each of the instructions I2 and I3 provided to
Are provided in parallel with the normal instruction I1 to the instruction queue 18 of the unit ALU, and the unit ALU can execute the normal instruction and the operation indicated by the field f in one cycle.

【0012】以下の表は、ループのいくつかの繰り返し
に対して、一方のメモリアクセスユニットMEMUによ
って及び計算ユニットALUによって実行されたオペレ
ーションを説明する。分岐命令BRはいずれの問題をも
生じず、表では明確にはそれらを説明しない。
The following table describes the operations performed by one memory access unit MEMU and by the calculation unit ALU for some iterations of the loop. The branch instructions BR do not cause any problems and the table does not explicitly explain them.

【0013】表の各列は命令サイクルに対応しており、
表にマークされた各オペレーションは、ループの繰り返
しに対応する番号で割り当てられる。
Each column of the table corresponds to an instruction cycle,
Each operation marked in the table is assigned a number corresponding to the loop iteration.

【0014】[0014]

【表1】 [Table 1]

【0015】第1のサイクルにおいて、ユニットMEM
U及びALUは、第1の命令LD及びOP(LD1,O
P1)を受信する。ユニットMEMUは、直ぐに命令L
D1を実行し、メモリ内でアドレスiにストアされた値
の読み出しサイクルを開始する。命令LD1は、ユニッ
トMEMUの命令キューから削除される。命令LD1に
よってフェッチされた値を必要とする命令OP1は、未
だ実行できない。この命令OP1は、ユニットALUの
命令キュー内でウエイトする。
In the first cycle, the unit MEM
U and ALU are the first instructions LD and OP (LD1, O
P1) is received. The unit MEMU immediately executes the instruction L
Execute D1 to start a read cycle of the value stored in the memory at address i. The instruction LD1 is deleted from the instruction queue of the unit MEMU. The instruction OP1 requiring the value fetched by the instruction LD1 cannot be executed yet. This instruction OP1 waits in the instruction queue of the unit ALU.

【0016】第2のサイクルにおいて、ユニットMEM
Uは、第1の命令ST(ST1)を受信する。オペレー
ションOP1の結果を必要とする命令ST1は、未だ実
行することができず、ユニットMEMUの命令キュー内
でウエイトする。それが必要とするオペランドをメモリ
が返送しないために、命令OP1はユニットALUのキ
ュー内でウエイトする。
In the second cycle, the unit MEM
U receives the first command ST (ST1). The instruction ST1 requiring the result of the operation OP1 cannot be executed yet, and waits in the instruction queue of the unit MEMU. Instruction OP1 waits in the queue of unit ALU so that the memory does not return the operands it requires.

【0017】第3のサイクルにおいて、ユニットMEM
U及びALUは、命令LD2及びOP2を受信する。こ
れら命令は、未だ実行されない命令ST1及びOP1の
後でキュー内に置かれる。メモリは最後に命令OP1に
よって必要とされるオペランドを返送する。従って、こ
の命令OP1が実行され、命令キューから削除される。
In the third cycle, the unit MEM
U and ALU receive commands LD2 and OP2. These instructions are placed in the queue after the instructions ST1 and OP1 that have not yet been executed. The memory finally returns the operands required by instruction OP1. Therefore, the instruction OP1 is executed and is deleted from the instruction queue.

【0018】サイクル4において、ユニットMEMU
は、命令ST2を受信する。命令ST2は、命令LD2
の後でユニットMEMUのキュー内でウエイトするため
に置かれる。命令OP1が先のサイクルで実行されたた
めに、その結果が利用できる。従って、命令ST1が実
行され、キューから削除される。命令OP2がユニット
ALUのキュー内にただ1つあるけれども、命令LD2
の実行によってフェッチされるオペランドを必要とする
ために、この命令は未だ実行できない。
In cycle 4, the unit MEMU
Receives the command ST2. The instruction ST2 is an instruction LD2
After to wait in the queue of the unit MEMU. The result is available because instruction OP1 was executed in the previous cycle. Therefore, the instruction ST1 is executed and deleted from the queue. Although there is only one instruction OP2 in the queue of the unit ALU, the instruction LD2
This instruction cannot yet be executed because it requires an operand to be fetched by the execution of.

【0019】サイクル5において、ユニットMEMU及
びALUは、命令LD3及びOP3を受信する。命令L
D2は、実行され、キューから削除される。
In cycle 5, units MEMU and ALU receive instructions LD3 and OP3. Instruction L
D2 is executed and removed from the queue.

【0020】命令LD2に応じてメモリによって遅れた
2つのサイクルを返送するオペランドを必要とするため
に、命令OP2はキュー内で未だウエイトしなければな
らない。
Instruction OP2 must still wait in the queue to require an operand to return two cycles delayed by the memory in response to instruction LD2.

【0021】第5のサイクルから、ループの第2の繰り
返しの命令の実行は、サイクル1で開始する第1の繰り
返しをする限り進行する。
From the fifth cycle, execution of the instructions of the second iteration of the loop proceeds as long as the first iteration starting in cycle 1 is performed.

【0022】表によって表されたように、プロセッサが
各サイクルで1つのメモリアクセスを実行することがで
きるが、それは、4サイクルのうちの2サイクルでメモ
リアクセスだけを実行する。即ちループ実行効率はわず
か50%である。
As represented by the table, the processor can perform one memory access each cycle, but it only performs memory accesses in two out of four cycles. That is, the loop execution efficiency is only 50%.

【0023】更に、ループの各新しい繰り返しにおい
て、ユニットMEMUの命令キューは、追加の命令で満
たされ、オーバフローして終了する。オーバフローを避
けるために、命令の提供は、キューを空にできるように
規則正しく停止されなければならない。この検討は効率
を低下させる。
Further, at each new iteration of the loop, the instruction queue of unit MEMU is filled with additional instructions and overflows and ends. To avoid overflow, instruction provision must be stopped regularly to allow the queue to be emptied. This consideration reduces efficiency.

【0024】実際に、そのまっすぐな形式のループプロ
グラミングは、メモリレイテンシのために全く最適では
ない。
In fact, its straight form of loop programming is not at all optimal due to memory latencies.

【0025】効率の改善のために、メモリレイテンシを
考慮して、ループアンローリング技術と称されるものが
しばしば用いられる。この技術は、マクロループをプロ
グラミングすることからなり、その各繰り返しは、通常
ループのいくつかの繰り返しに対応する。従って、先の
ループ(1)は、以下のように書き込まれる。
In order to improve the efficiency, what is called a loop unrolling technique is often used in consideration of memory latency. This technique consists of programming a macro loop, each iteration of which usually corresponds to several iterations of the loop. Therefore, the previous loop (1) is written as follows.

【0026】 Lda:R1=[i] (2) Opa:R1=R1+R2 Ldb:R3=[i+1] Opb:R3=R3+R2 Sta:[i]=R1 Stb:[i+1]=R3 BR :test i,i=+2,loopLda: R1 = [i] (2) Opa: R1 = R1 + R2 Ldb: R3 = [i + 1] Opb: R3 = R3 + R2 Sta: [i] = R1 Stb: [i + 1] = R3 BR: test i, i = + 2, loop

【0027】このループにおいて、アドレスiに含まれ
た値はレジスタR1にロードされ(LDa)、レジスタ
R2の内容がレジスタR1の内容によって増分され(O
Pa)、アドレスi+1に含まれた値がレジスタR3に
ロードされ(LDb)、レジスタR3の内容がレジスタ
R2に含まれた値だけ増分され(OPb)、レジスタR
1の内容がアドレスiにストアされ(STa)、レジス
タR3の内容がアドレスi+1にストアされ(ST
b)、変数iはループを再スタートするために2だけ増
分される。
In this loop, the value contained in the address i is loaded into the register R1 (LDa), and the contents of the register R2 are incremented by the contents of the register R1 (O
Pa), the value contained in the address i + 1 is loaded into the register R3 (LDb), the content of the register R3 is incremented by the value contained in the register R2 (OPb), and the register R
1 is stored at address i (STa), and the content of register R3 is stored at address i + 1 (STa).
b) The variable i is incremented by 2 to restart the loop.

【0028】このループは、4つの複合命令でプログラ
ミングされる。第1の命令は、オペレーションLDa及
びOPaから形成され、第2の命令はLDb及びOPb
から形成され、第3の命令はSTaから形成され、第4
の命令はSTb及びBRから形成される。以下の表は、
いくつかのループの繰り返しに対するオペレーションの
シーケンスを説明する。
This loop is programmed with four compound instructions. The first instruction is formed from operations LDa and OPa and the second instruction is LDb and OPb
And the third instruction is formed from STa and the fourth
Are formed from STb and BR. The following table shows
A sequence of operations for several loop iterations will be described.

【0029】[0029]

【表2】 [Table 2]

【0030】第1のサイクルにおいて、ユニットMEM
U及びALUは、第1の命令LDa及びOPa(LDa
1、OPa1)を受信する。命令LDa1は、直ぐに実
行され、キューから削除される。
In the first cycle, the unit MEM
U and ALU are the first instructions LDa and OPa (LDa
1, OPa1) is received. The instruction LDa1 is executed immediately and is deleted from the queue.

【0031】第2のサイクルにおいて、ユニットMEM
U及びALUは、命令LDb1及びOPb1を受信す
る。命令LDb1は直ぐに実行され、キューから削除さ
れる。命令OPa1及びOPb1は、メモリが命令LD
a1及びLDb1に応じて返送されなければならない、
対応するオペランドを待つユニットALUのキュー内に
残存する。
In the second cycle, the unit MEM
U and ALU receive commands LDb1 and OPb1. The instruction LDb1 is executed immediately and is deleted from the queue. The instructions OPa1 and OPb1 are stored in the memory as the instruction LD.
must be returned according to a1 and LDb1,
It remains in the queue of the unit ALU waiting for the corresponding operand.

【0032】第3のサイクルにおいて、ユニットMEM
Uは命令STa1を受信する。メモリは命令LDa1に
よって質問され且つ命令OPa1によって必要とされる
オペランドを返送する。従って、命令OPa1は、実行
され、キューから削除される。
In the third cycle, the unit MEM
U receives the command STa1. The memory is queried by instruction LDa1 and returns the operands required by instruction OPa1. Therefore, the instruction OPa1 is executed and deleted from the queue.

【0033】第4のサイクルにおいて、ユニットMEM
Uは命令STb1を受信する。メモリは、命令LDb1
によって質問され且つ命令OPb1によって必要とされ
るオペランドを返送する。従って、命令OPb1を実行
できる。
In the fourth cycle, the unit MEM
U receives the command STb1. The memory stores the instruction LDb1
And returns the operands required by instruction OPb1. Therefore, the instruction OPb1 can be executed.

【0034】第5のサイクルにおいて、ユニットMEM
U及びALUは、命令LDa2及びOPa2を受信す
る。それが必要とする値が前の2サイクルで命令OPa
1によって計算されたために、命令STa1を実行でき
る。
In the fifth cycle, the unit MEM
U and ALU receive commands LDa2 and OPa2. The value it needs is the instruction OPa in the previous two cycles.
The instruction STa1 can be executed because it has been calculated by 1.

【0035】第6のサイクルにおいて、ユニットMEM
U及びALUは、命令LDb2及びOPb2を受信す
る。それが必要とする値が前の2サイクルで命令OPb
1によって計算されたために、命令STb1を実行でき
る。
In the sixth cycle, the unit MEM
U and ALU receive commands LDb2 and OPb2. The value required by the instruction OPb in the previous two cycles
The instruction STb1 can be executed because it is calculated by 1.

【0036】第7のサイクルにおいて、ユニットMEM
Uは命令STa2を受信する。ループの新しい繰り返し
は、命令LDa2の実行によって開始される。
In the seventh cycle, the unit MEM
U receives the command STa2. A new iteration of the loop is started by execution of instruction LDa2.

【0037】プロセッサは、6サイクル毎に4つのメモ
リアクセスを実行することがこの表で明らかにされてお
り、前述の解決策に対して66%の効率と33%の利得
との合計になる。
The table reveals that the processor performs four memory accesses every six cycles, for a total of 66% efficiency and 33% gain over the above solution.

【0038】しかしながら、ユニットMEMUのキュー
は進んでいっぱいになることが明らかであり、命令の提
供を規則正しく停止することを必要とする。前述の解決
策の場合のように、全4サイクルを2つの命令で満たす
代わりに、それは全6サイクルを2つの命令で満たす。
However, it is clear that the queue of the unit MEMU is willingly full, requiring the provision of instructions to be stopped regularly. Instead of filling all four cycles with two instructions, as in the previous solution, it fills all six cycles with two instructions.

【0039】ループアンローリング技術は、効率を実質
的に改善するけれども、スーパスカラプロセッサに対す
る最適な解決策ではない。実際に、それはスーパスカラ
において更に良く動作する。
While the loop unrolling technique substantially improves efficiency, it is not an optimal solution for superscalar processors. In fact, it works even better in superscalar.

【0040】本発明の目的は、メモリアクセス命令を含
むループの実行に対して最大効率を有するスーパスカラ
プロセッサを提供することにある。
An object of the present invention is to provide a superscalar processor having the highest efficiency for executing a loop including a memory access instruction.

【0041】[0041]

【課題を解決するための手段】この目的及びその他の目
的は、読み出し又は書き込み命令の実行に応じてメモリ
のアドレスバスに読み出し又は書き込みアドレスを提供
する、少なくとも1つのメモリアクセスユニットと、該
メモリアクセスユニットと平行に動作し、メモリアクセ
スユニットが書き込みアドレスを提供すると同時にメモ
リのデータバスにデータを提供するために少なくとも配
置される、計算及び論理ユニットとを含むプロセッサを
用いて達成される。該プロセッサは、データのアベイラ
ビリティが書き込まれるまでウエイトするメモリアクセ
スユニットによって提供された各書き込みアドレスがそ
の中にストアされる、書き込みアドレスキューを含む。
SUMMARY OF THE INVENTION This and other objects are at least one memory access unit for providing a read or write address to an address bus of a memory in response to execution of a read or write instruction, and the memory access unit. This is accomplished using a processor that operates in parallel with the unit and includes a computation and logic unit that is at least arranged to provide data to the data bus of the memory while the memory access unit provides the write address. The processor includes a write address queue in which each write address provided by a memory access unit that waits until data availability is written is stored therein.

【0042】本発明の一実施形態によれば、計算及び論
理ユニットは、実行を待つ命令を受信するための2つの
独立した命令キューを含んでおり、該第1の命令キュー
は、論理及び計算命令を受信するためのものであり、該
第2の命令キューは、読み出し又は書き込みオペレーシ
ョンに含まれた計算及び論理ユニットのレジスタを確認
するためにメモリアクセスユニットに提供された命令フ
ィールドを受信するためのものである。
According to one embodiment of the present invention, the computation and logic unit includes two independent instruction queues for receiving instructions awaiting execution, the first instruction queue comprising a logic and a computational queue. For receiving instructions, wherein the second instruction queue is for receiving instruction fields provided to the memory access unit to identify registers of computation and logical units involved in a read or write operation. belongs to.

【0043】本発明の一実施形態によれば、計算及び論
理ユニットは、メモリに書き込まれるべき各データが、
書き込みアドレスキューで書き込みアドレスの存在をそ
の中で待つストアデータキューを含む。
According to one embodiment of the present invention, the computation and logic unit comprises:
A write data queue includes a store data queue that waits for the presence of a write address therein.

【0044】本発明の一実施形態によれば、計算及び論
理ユニットは、該計算及び論理ユニットに対してメモリ
からの各データがその中に書き込まれるロードデータキ
ューを含み、前記計算及び論理ユニットが利用できるま
でウエイトする。
According to one embodiment of the invention, the computation and logic unit includes a load data queue into which each data from the memory is written, the computation and logic unit comprising: Wait until available.

【0045】本発明の一実施形態によれば、プロセッサ
は、命令を受信し、それ自身のメモリアクセスユニット
及び計算及び論理ユニットの間で平行に命令を分散する
ための分岐ユニットを含む。
According to one embodiment of the invention, the processor includes a branch unit for receiving the instructions and distributing the instructions in parallel between its own memory access unit and the computation and logic units.

【0046】本発明の一実施形態によれば、ユニットの
各々は、メモリに書き込むべき各データが、書き込みア
ドレスキューの書き込みアドレスが存在するまでその中
でウエイトするストアデータキューを含む。
According to one embodiment of the present invention, each of the units includes a store data queue in which each data to be written to memory waits until a write address in the write address queue exists.

【0047】本発明の一実施形態によれば、ユニットの
各々が、ユニットに対してメモリから各データをその中
に書き込むべきロードデータキューを含み、ユニットが
利用できるまでウエイトする。
According to one embodiment of the present invention, each of the units includes a load data queue into which each data is to be written from memory for the unit and waits until the unit is available.

【0048】[0048]

【発明の実施の形態】本発明の前述した目的、特徴及び
効果は、添付図面と共に以下の具体的な実施形態の限定
しない説明について詳細に説明する。
BRIEF DESCRIPTION OF THE DRAWINGS The foregoing objects, features and advantages of the present invention will be described in detail in the following non-limiting description of specific embodiments with reference to the accompanying drawings.

【0049】図2において、本発明によるプロセッサ
は、図1のように、分岐ユニット14に全て結合された
2つのメモリアクセスユニット10(MEMU)と1つ
の論理及び計算ユニット(ALU)とを含む。ユニット
10及び12は、分岐ユニットBRUが実行を待つ命令
をその中にスタックする命令キューを含む。
In FIG. 2, the processor according to the invention comprises, as in FIG. 1, two memory access units 10 (MEMU) all coupled to a branch unit 14 and one logic and computation unit (ALU). Units 10 and 12 include an instruction queue in which instructions waiting for execution by branch unit BRU are stacked.

【0050】本発明によれば、各メモリアクセスユニッ
トMEMUは、メモリ16への書き込みアクセスに対し
て用いられるアドレスをそれから提供するストアアドレ
スキューSTAQを含む。読み出しアドレスは、キュー
STAQを横切る破線によって表されるように、従来メ
モリ16へ提供される。
In accordance with the present invention, each memory access unit MEMU includes a store address queue STAQ from which the addresses used for write access to memory 16 are provided. The read address is provided to conventional memory 16, as represented by the dashed line across queue STAQ.

【0051】更に、ユニットALUは、メモリと交換さ
れるデータが通過する、ストアデータキューSTDQと
ロードデータキューLDDQとを備える。実際問題とし
て、プロセッサの全てのユニットは、メモリとデータを
交換することは従来と同様であり、従って、表されたよ
うにキューSTDQ及びLDDQを含む。キューSTA
Q、STDQ及びLDDQは全てFIFO型である。
The unit ALU further includes a store data queue STDQ and a load data queue LDDQ through which data exchanged with the memory passes. As a practical matter, all units of the processor exchange data with memory as before, and thus include the queues STDQ and LDDQ as shown. Queue STA
Q, STDQ and LDDQ are all of FIFO type.

【0052】ユニットMEMUがストア命令を実行する
毎に、書き込みアドレスは対応するキューSTAQ内に
スタックされる。この命令によって書き込まれるデータ
は、通常、ユニットALUの、対応するストアデータキ
ューSTDQにスタックされる。例えば、ユニットAL
UのレジスタR1の内容がアドレスiに書き込まれるべ
きならば、書き込み命令を実行するユニットMEMU
は、そのキューSTAQのアドレスiをスタックし、同
時にユニットALUは、そのキューSTDQのレジスタ
R1の内容をスタックする。書き込まれるべきデータが
キューSTDQにスタックされる必要がなく、同時にア
ドレスがキューSTAQにスタックされることに注目す
べきである。これは、本発明の本質的態様である。
Each time the unit MEMU executes a store instruction, the write address is stacked in the corresponding queue STAQ. The data written by this instruction is normally stacked in the corresponding store data queue STDQ of the unit ALU. For example, unit AL
If the contents of U's register R1 are to be written to address i, a unit MEMU executing the write instruction
Stacks the address i of the queue STAQ, and at the same time, the unit ALU stacks the contents of the register R1 of the queue STDQ. It should be noted that the data to be written does not need to be stacked on the queue STDQ, while the addresses are stacked on the queue STAQ. This is an essential aspect of the present invention.

【0053】各サイクルにおいて、キューSTDQ及び
STAQの内容はポールされる。キューSTAQが1つ
のアドレスを含み、キューSTDQの1つがデータを含
むならば、データはキューSTAQに含まれたアドレス
に書き込まれ、従ってキューSTDQ及びSTAQは更
新される。これら条件が満たされないならば、即ちキュ
ーSTAQが空である又はキューSTDQが全て空であ
るならば、書き込みは実行されない。2つのキューST
DQが同時にデータを含む状態は、決して発生しない。
In each cycle, the contents of queues STDQ and STAQ are polled. If the queue STAQ contains one address and one of the queues STDQ contains data, the data is written to the address contained in the queue STAQ, so that the queues STDQ and STAQ are updated. If these conditions are not met, ie if the queue STAQ is empty or if the queues STDQ are all empty, no writing is performed. Two queues ST
The situation where the DQ contains data at the same time never occurs.

【0054】2つのメモリアクセスユニットMEMUを
含むDSPの場合において、キューSTDQの各位置
は、ユニットMEMUの各々に対して1つである、2つ
のデータワードを含む。従って、発生する書き込みに対
して、キューSTDQの位置に含まれたデータワード
は、更に、空でないキューSTAQを有するユニットM
EMUに対応しなければならない。
In the case of a DSP containing two memory access units MEMU, each location of the queue STDQ contains two data words, one for each of the units MEMU. Thus, for a write to take place, the data word contained at the position of the queue STDQ will also have a unit M with a nonempty queue STAQ.
EMU must be supported.

【0055】このメカニズムは、メモリバス又は書き込
まれるデータの利用率を考慮することなく、直ぐに書き
込み命令を実行することを可能にする。書き込むべきデ
ータが連続して書き込まれ、直ぐにデータ及びメモリバ
スが全て利用できる。このメカニズムを、一例を用いて
ここで詳細に説明する。
This mechanism makes it possible to execute a write command immediately without taking into account the utilization of the memory bus or the data to be written. Data to be written is written continuously, and all data and memory buses are immediately available. This mechanism will now be described in detail using an example.

【0056】ループ(1)の例を再び検討して、以下の
ようなまっすぐな形式にプログラムされる。
Considering again the example of loop (1), it is programmed into a straight form as follows.

【0057】 LD:R1=[i] (1) OP:R1=R1+R2 ST:[i]=R1 BR:test i,i++,loopLD: R1 = [i] (1) OP: R1 = R1 + R2 ST: [i] = R1 BR: test i, i ++, loop

【0058】前述したように、ロード命令LD又はスト
ア命令STは2つのフィールドから形成され、ユニット
MEMUに対する一方のフィールドは、読み出し又は書
き込みアドレスを指示するためのものであり、ユニット
ALUに対する他方のフィールドは、読み出されたデー
タ又は書き込むべきその内容を受信すべきレジスタを指
示するためのものである。従って、命令LDは、前述し
たようにALU命令内で、ロードキューLDDQの第1
の要素をレジスタR1にロードするためのものであっ
て、MEMU命令である、LDA:R1=LDDQと、
読み出しモードでアドレスiを提供するための、LD
M:R(i)とに分解する。
As described above, the load instruction LD or the store instruction ST is formed of two fields, one field for the unit MEMU is for indicating a read or write address, and the other field for the unit ALU. Is for indicating the register to receive the read data or its contents to be written. Therefore, the instruction LD is, as described above, within the ALU instruction, the first of the load queue LDDQ.
LDA: R1 = LDDQ, which is a MEMU instruction for loading the elements of
LD for providing address i in read mode
M: Decomposed into R (i).

【0059】前述のストア命令STは、ALU命令内で
ストアキューSTDQ内でレジスタR1の内容をスタッ
クするためであって、MEMU命令である、STA:S
TDQ=R1と、アドレスキューSTAQ内で書き込み
アドレスをスタックするための、STM:STAQ=i
とに分解する。
The above-mentioned store instruction ST is for stacking the contents of the register R1 in the store queue STDQ in the ALU instruction, and is a MEMU instruction, STA: S
TDQ = R1 and STM: STAQ = i for stacking the write address in the address queue STAQ
And decompose into

【0060】ユニットALUに対する読み出し/書き込
み命令のフィールドfは、本発明によれば、(命令OP
のような)ユニットALUに対する通常の命令I1がそ
れによって受信されるキュー18の独立した命令キュー
19にスタックされる。
According to the present invention, the field f of the read / write command for the unit ALU is (command OP)
The normal instruction I1 for the unit ALU (as in) is stacked in a separate instruction queue 19 of the queue 18 by which it is received.

【0061】以下の表は、ループ(1)のいくつかの繰
り返しに対して、ユニットMEMU及びユニットALU
の一方によって実行されたオペレーションと、ユニット
MEMU及びALUの命令キューの内容、ユニットME
MUのキューSTAQの内容、及び最後にユニットAL
UのキューSTDQ及びLDDQの内容とを説明する。
その表において、オペレーションは、繰り返しに対応す
る番号で割り当てられる。
The following table shows, for some iterations of loop (1), the units MEMU and ALU
And the contents of the instruction queues of units MEMU and ALU, unit ME
The contents of the MU queue STAQ, and finally the unit AL
The contents of the queues STDQ and LDDQ of U will be described.
In that table, operations are assigned numbers corresponding to the iterations.

【0062】[0062]

【表3】 [Table 3]

【0063】第1のサイクルにおいて、ユニットMEM
U及びALUは、命令LD1及びOP1を受信する。命
令LD1は、ユニットMEMUに提供された命令LDM
1とユニットALUに提供された命令LDA1とに分解
される。読み出しアドレスの送信を指示する命令LDM
1が、直ぐに実行される。空である読み出しキューLD
DQからの値を必要とするために、命令LDA1はウエ
イトにセットされる。この同じ値を必要とする命令OP
1もまた、ウエイトにセットされる。
In the first cycle, the unit MEM
U and ALU receive commands LD1 and OP1. The instruction LD1 is the instruction LDM provided to the unit MEMU.
1 and the instruction LDA1 provided to the unit ALU. Instruction LDM for instructing transmission of read address
1 is executed immediately. Read queue LD that is empty
To require the value from DQ, instruction LDA1 is set to wait. Instruction OP requiring this same value
1 is also set to the weight.

【0064】第2のサイクルにおいて、ユニットMEM
Uは、ユニットMEMUに提供された命令STM1とユ
ニットALUに提供された命令STA1とに分解された
命令ST1を受信する。命令STM1は、実行され、オ
ペレーションOP1の結果が書き込まれるアドレスiの
キューSTAQにスタックする。命令STA1は、命令
LDA1の後ろでウエイトにセットされる。
In the second cycle, the unit MEM
U receives the instruction ST1 that has been decomposed into the instruction STM1 provided to the unit MEMU and the instruction STA1 provided to the unit ALU. The instruction STM1 is executed and is stacked on the queue STAQ at the address i where the result of the operation OP1 is written. Instruction STA1 is set to wait after instruction LDA1.

【0065】第3のサイクルにおいて、ユニットMEM
U及びALUは、命令LD2(LDM2、LDA2)及
びOP2を受信する。メモリは、命令LDM1によって
必要とされる値[i]を有するキューLDDQを提供す
る。命令LDA1は、実行され、キューLDDQからレ
ジスタR1へ値[i]を転送させる。命令OP1は、実
行され、レジスタR1の内容を更新する。ユニットME
MUは解放されており、命令LDM2も実行される。
In the third cycle, the unit MEM
U and ALU receive commands LD2 (LDM2, LDA2) and OP2. The memory provides a queue LDDQ with the value [i] required by the instruction LDM1. Instruction LDA1 is executed, causing value [i] to be transferred from queue LDDQ to register R1. Instruction OP1 is executed and updates the contents of register R1. Unit ME
The MU has been released and the instruction LDM2 is also executed.

【0066】第4のサイクルにおいて、ユニットMEM
Uは命令ST2(STM2、STA2)を受信する。命
令STM2及びSTA1が実行される。命令STA1
は、キューSTDQへレジスタR1の内容R1をコピ
ーする。命令STM2はオペレーションOP2の結果が
書き込まれるアドレスi+1のキューSTAQにスタッ
クされる。同じサイクルにおいて、キューSTAQはア
ドレスiを含むことが検出され、ユニットALUのキュ
ーSTDQはデータR1を含むことが検出される。メ
モリバスが利用できるために、データR1は直ぐにア
ドレスiで書き込まれ、キューSTAQ及びSTDQが
更新される。
In the fourth cycle, the unit MEM
U receives the command ST2 (STM2, STA2). Instructions STM2 and STA1 are executed. Instruction STA1
Copies the contents of R1 1 of the register to the queue STDQ R1. The instruction STM2 is stacked on the queue STAQ at the address i + 1 where the result of the operation OP2 is written. In the same cycle, queue STAQ is detected to contain an address i, queue STDQ unit ALU is detected to contain data R1 1. For memory bus is available, the data R1 1 is immediately written in the address i, the queue STAQ and STDQ are updated.

【0067】第5のサイクルにおいて、第3のサイクル
のオペレーションは、新しいループの繰り返しのために
反復される。
In the fifth cycle, the operations of the third cycle are repeated for a new loop iteration.

【0068】前述の表は、メモリユニットMEMUが各
サイクルに対してアクセス命令を実行することを説明す
る。従って、効率が最大となる。更に、命令キューがい
っぱいにならない。それは、キューのオーバフローを避
けるために、命令の提供を規則正しく停止することを必
要としない。
The above table illustrates that the memory unit MEMU executes an access instruction for each cycle. Therefore, efficiency is maximized. Further, the instruction queue does not fill. It does not require regular stopping of instruction serving to avoid queue overflow.

【0069】キューSTDQ及びLDDQは、この例に
おいてせいぜい1つの要素を受信することを表してい
る。従って、これらキューを、単なるレジスタにするこ
とができ、そのレジスタは、入力し及び出力するデータ
をラッチするために従来のユニット内に通常設けられ
る。
The queues STDQ and LDDQ represent receiving at most one element in this example. Thus, these queues can be simply registers, which are usually provided in conventional units for latching input and output data.

【0070】より複雑なループに対する他の場合におい
て、キューSTDQ及びLDDQは、1つ以上の要素を
受信することが明らかである。そのとき、キューSTD
Q及びLDDQの位置の番号は、オーバフローの何らか
のリスクを避けるために増加される。
In other cases for more complex loops, it is clear that the queues STDQ and LDDQ receive one or more elements. At that time, the queue STD
The number of Q and LDDQ locations is incremented to avoid any risk of overflow.

【0071】もちろん、本発明は、当業者によれば容易
にできるであろう種々の変更、修正及び改善をすること
ができる。このような変更、修正及び改善は、この開示
の一部分をしようとするものであり、本発明の技術的思
想及び見地の中でしようとするものである。従って、前
述の説明は単に例であって、限定しようとするものでは
ない。本発明は、特許請求の範囲及びその均等物に規定
されるものにのみ限定される。
Of course, the present invention is capable of various alterations, modifications and improvements which will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description is by way of example only and is not intended as limiting. The invention is limited only as defined in the following claims and equivalents thereof.

【図面の簡単な説明】[Brief description of the drawings]

【図1】従来のDSPアーキテクチャである。FIG. 1 is a conventional DSP architecture.

【図2】本発明によるDSPアーキテクチャである。FIG. 2 is a DSP architecture according to the present invention.

【符号の説明】[Explanation of symbols]

10 メモリアクセスユニット、MEMU 12 計算及び論理ユニット、ALU 14 分岐ユニット、BRU 16 メモリ 18 第1の命令キュー 19 第2の命令キュー Reference Signs List 10 memory access unit, MEMU 12 calculation and logical unit, ALU 14 branch unit, BRU 16 memory 18 first instruction queue 19 second instruction queue

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 読み出し又は書き込み命令の実行に応じ
てメモリ(16)のアドレスバスに読み出し又は書き込
みアドレスを提供する、少なくとも1つのメモリアクセ
スユニット(MEMU)と、 前記メモリアクセスユニットと平行に動作し、前記メモ
リアクセスユニットが書き込みアドレスを提供すると同
時に前記メモリのデータバスにデータを提供するために
少なくとも配置される、計算及び論理ユニット(AL
U)と、 データのアベイラビリティが書き込まれるまでウエイト
する前記メモリアクセスユニットによって提供された各
書き込みアドレスがその中にストアされる書き込みアド
レスキュー(STAQ)とを含むことを特徴とするプロ
セッサ。
At least one memory access unit (MEMU) for providing a read or write address to an address bus of a memory (16) in response to execution of a read or write instruction, and operating in parallel with the memory access unit. , A computation and logic unit (AL) arranged at least to provide data to a data bus of the memory while the memory access unit provides a write address.
U) and a write address queue (STAQ) in which each write address provided by the memory access unit that waits until data availability is written is stored therein.
【請求項2】 前記計算及び論理ユニット(ALU)
は、実行を待つ命令を受信するための2つの独立した命
令キュー(18、19)を含んでおり、該第1の命令キ
ュー(18)は、論理及び計算命令を受信するためのも
のであり、該第2の命令キュー(19)は、読み出し又
は書き込みオペレーションに含まれた前記計算及び論理
ユニット(ALU)のレジスタを確認するために前記メ
モリアクセスユニット(MEMU)に提供された命令フ
ィールド(f)を受信するためのものであることを特徴
とする請求項1に記載のプロセッサ。
2. The computing and logical unit (ALU)
Includes two independent instruction queues (18, 19) for receiving instructions awaiting execution, the first instruction queue (18) for receiving logical and computational instructions. , The second instruction queue (19) may include an instruction field (f) provided to the memory access unit (MEMU) to identify registers of the computation and logical unit (ALU) included in a read or write operation. 2. The processor according to claim 1, wherein the processor is adapted to receive).
【請求項3】 前記計算及び論理ユニット(ALU)
は、前記メモリ(16)内に書き込まれるべき各データ
が、前記書き込みアドレスキュー(STAQ)に書き込
みアドレスが存在するまでその中でウエイトするストア
データキュー(STDQ)を含むことを特徴とする請求
項1に記載のプロセッサ。
3. The computing and logical unit (ALU)
Wherein each data to be written into the memory (16) includes a store data queue (STDQ) that waits until a write address is present in the write address queue (STAQ). The processor according to claim 1.
【請求項4】 前記計算及び論理ユニット(ALU)
は、該計算及び論理ユニットに対して前記メモリ(1
6)からの各データがその中に書き込まれるロードデー
タキュー(LDDQ)を含み、前記計算及び論理ユニッ
トが利用できるまでウエイトすることを特徴とする請求
項1又は3に記載のプロセッサ。
4. The computing and logical unit (ALU)
Is the memory (1) for the computation and logical units.
4. A processor according to claim 1 or 3, wherein each data from 6) includes a load data queue (LDDQ) into which is written and waits until the computation and logic unit is available.
【請求項5】 命令を受信し、それ自身の前記メモリア
クセスユニット(MEMU)及び前記計算及び論理ユニ
ット(ALU)の間で平行に前記命令を分散するための
分岐ユニット(BRU)を含むことを特徴とする請求項
1に記載のプロセッサ。
5. A method for receiving instructions and including a branch unit (BRU) for distributing the instructions in parallel between the memory access unit (MEMU) and the computation and logic unit (ALU) itself. The processor of claim 1, wherein:
【請求項6】 前記ユニットの各々は、前記メモリに書
き込むべき各データが、前記書き込みアドレスキュー
(STAQ)の書き込みアドレスが存在するまでその中
でウエイトするストアデータキュー(STDQ)を含む
ことを特徴とする請求項5に記載のプロセッサ。
6. Each of the units includes a store data queue (STDQ) in which each data to be written to the memory waits until a write address of the write address queue (STAQ) exists. The processor according to claim 5, wherein
【請求項7】 前記ユニットの各々が、前記ユニットに
対して前記メモリから各データをその中に書き込むべき
ロードデータキュー(LDDQ)を含み、前記ユニット
が利用できるまでウエイトすることを特徴とする請求項
5又は6に記載のプロセッサ。
7. Each of said units includes a load data queue (LDDQ) into which each data is to be written from said memory for said unit, and waits until said unit is available. Item 7. The processor according to item 5 or 6.
JP11094975A 1998-04-09 1999-04-01 Dsp architecture optimized for memory access Withdrawn JP2000029703A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9804710A FR2777370B1 (en) 1998-04-09 1998-04-09 OPTIMIZED DSP ARCHITECTURE FOR MEMORY ACCESS
FR9804710 1998-04-09

Publications (1)

Publication Number Publication Date
JP2000029703A true JP2000029703A (en) 2000-01-28

Family

ID=9525282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11094975A Withdrawn JP2000029703A (en) 1998-04-09 1999-04-01 Dsp architecture optimized for memory access

Country Status (4)

Country Link
US (1) US6564309B1 (en)
EP (1) EP0949565A1 (en)
JP (1) JP2000029703A (en)
FR (1) FR2777370B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1050812A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Storage of data in a computer memory
US20030196072A1 (en) * 2002-04-11 2003-10-16 Chinnakonda Murali S. Digital signal processor architecture for high computation speed
US20060031201A1 (en) * 2004-08-06 2006-02-09 Microsoft Corporation Life moment tagging and storage
KR101424020B1 (en) * 2009-07-21 2014-07-28 마이클 제이. 플린 A lower energy consumption and high speed computer without the memory bottleneck
US9465576B1 (en) * 2009-10-07 2016-10-11 Cypress Semiconductor Corporation First-in-first-out (FIFO) memory devices and methods having multiple queuing

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2678527B2 (en) * 1991-01-08 1997-11-17 三菱電機株式会社 Cache memory device
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US5500950A (en) * 1993-01-29 1996-03-19 Motorola, Inc. Data processor with speculative data transfer and address-free retry
US5878245A (en) * 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5623628A (en) * 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
DE69506623T2 (en) * 1994-06-03 1999-07-22 Motorola Inc Data processor with an execution unit for executing load commands and method for its operation
US5966514A (en) * 1995-05-31 1999-10-12 Matsushita Electric Industrial Co., Ltd. Microprocessor for supporting reduction of program codes in size
EP0747872B1 (en) * 1995-06-07 1999-03-03 International Business Machines Corporation Video processor with addressing mode control
US5752069A (en) * 1995-08-31 1998-05-12 Advanced Micro Devices, Inc. Superscalar microprocessor employing away prediction structure

Also Published As

Publication number Publication date
FR2777370A1 (en) 1999-10-15
FR2777370B1 (en) 2000-06-23
EP0949565A1 (en) 1999-10-13
US6564309B1 (en) 2003-05-13

Similar Documents

Publication Publication Date Title
EP0087978B1 (en) Information processing unit
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US4229790A (en) Concurrent task and instruction processor and method
JP3520371B2 (en) Register file backup queue
US7200741B1 (en) Microprocessor having main processor and co-processor
CA1103368A (en) Task handling apparatus for a computer system
US5129093A (en) Method and apparatus for executing an operation request signal in a loosely coupled parallel computer having processor elements capable of updating memory contents and minimizing exclusive control of sharable distributed memories
US5752071A (en) Function coprocessor
US4819155A (en) Apparatus for reading to and writing from memory streams of data while concurrently executing a plurality of data processing operations
EP2335149A1 (en) Very long instruction word processor with multiple data queues
CN110908716B (en) Method for implementing vector aggregation loading instruction
US20150121037A1 (en) Computing architecture and method for processing data
US5974522A (en) Machine for processing interrupted out-of-order instructions
US5237702A (en) System for prefetching vector data based on the status of the vector registers
CN114579188A (en) RISC-V vector access and storage processing system and processing method
WO1999064954A2 (en) Processor with memory and data prefetch unit
EP0793168A2 (en) Pipeline processing method and device for instruction execution
JP2000029703A (en) Dsp architecture optimized for memory access
JP2690406B2 (en) Processor and data processing system
US5329621A (en) Microprocessor which optimizes bus utilization based upon bus speed
US5677859A (en) Central processing unit and an arithmetic operation processing unit
JP4631442B2 (en) Processor
JP2668987B2 (en) Data processing device
US9323521B2 (en) Decimal floating-point processor

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060606