JP3424430B2 - Processor - Google Patents

Processor

Info

Publication number
JP3424430B2
JP3424430B2 JP07583996A JP7583996A JP3424430B2 JP 3424430 B2 JP3424430 B2 JP 3424430B2 JP 07583996 A JP07583996 A JP 07583996A JP 7583996 A JP7583996 A JP 7583996A JP 3424430 B2 JP3424430 B2 JP 3424430B2
Authority
JP
Japan
Prior art keywords
instruction
storing
instructions
address
executed
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.)
Expired - Fee Related
Application number
JP07583996A
Other languages
Japanese (ja)
Other versions
JPH09265395A (en
Inventor
和彦 田中
啓二 小島
清和 西岡
徹 野尻
義文 藤川
浩二 細木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP07583996A priority Critical patent/JP3424430B2/en
Publication of JPH09265395A publication Critical patent/JPH09265395A/en
Application granted granted Critical
Publication of JP3424430B2 publication Critical patent/JP3424430B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明はパーソナルコンピュ
ータなどの情報処理装置の、命令キャッシュ装置に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an instruction cache device for an information processing device such as a personal computer.

【0002】[0002]

【従来の技術】近年、パーソナルコンピュータなどの情
報処理装置では、テレビ会議システムや、わかりやすい
プレゼンテーションシステム、より迫力のあるゲームな
どの実現のために、動画処理や三次元グラフィックス処
理の実現に対する要求が高まっている。従来、これらの
処理は、専用のハードウェアを用いて行われている例が
多かった。専用のハードウェアを用いた場合、柔軟性が
少ないために新しいアルゴリズムが開発された場合に
は、ハードウェアの再設計が必要であることや、複数の
異なる処理を実行させるには、実行する処理の種類に対
応した数のハードウェアが必要になるという問題点があ
った。そこで、最近ではプロセッサのようなプログラミ
ング可能なハードウェアによって、これらの処理を実現
しようとする動きが高まっている。
2. Description of the Related Art In recent years, information processing apparatuses such as personal computers have been required to realize moving image processing and three-dimensional graphics processing in order to realize video conference systems, easy-to-understand presentation systems, and more powerful games. It is rising. Conventionally, these processes were often performed using dedicated hardware. When a new algorithm is developed due to the lack of flexibility when using dedicated hardware, it is necessary to redesign the hardware, and in order to execute multiple different processes, There was a problem that the number of hardware corresponding to the type was required. Therefore, recently, there is an increasing tendency to implement these processes by using programmable hardware such as a processor.

【0003】しかし、これらの処理は膨大な量のデータ
を扱うため、これらの処理を実現するには多くの演算処
理が必要である。このため、プロセッサの処理性能向上
が必須条件となっている。
However, since these processes handle a huge amount of data, many arithmetic processes are required to realize these processes. Therefore, improving the processing performance of the processor is an essential condition.

【0004】プロセッサの処理性能を向上させるには、
クロック周波数の向上、複数の処理の同時実行などの手
段がある。近年、LSIの集積度は向上し、複数個の処
理ユニットを一つのLSIに搭載することが容易に実現
可能になりつつある。すなわち、複数個の処理ユニット
を用いて、複数の処理の同時実行を行うことで、プロセ
ッサの性能を上げることができる。複数の処理を並列に
実行する場合には、処理の依存性という問題がある。こ
れを図1を用いて説明する。
To improve the processing performance of the processor,
There are means such as improvement of clock frequency and simultaneous execution of plural processes. In recent years, the degree of integration of LSIs has improved, and it has become easy to implement a plurality of processing units in one LSI. That is, the performance of the processor can be improved by simultaneously executing a plurality of processes using a plurality of processing units. When a plurality of processes are executed in parallel, there is a problem of process dependency. This will be described with reference to FIG.

【0005】図1はプロセッサが実行する処理の一例で
ある。この図において、各処理は本来は上から一つずつ
逐次的に実行されるべきものであるとする。矢印は代入
を表している。例えば、処理0は、変数Bの値と変数C
の値を加算して、その結果を変数Aに代入するという処
理である。変数Aの値は処理0を行った結果、得られる
ものであるため、処理0の実行が終了する前に処理1を
実行することはできない。このため、処理0と処理1は
並列に実行することができない。一方、処理2が使用す
る変数B,Cは、処理1の結果に依存していない。この
ため、処理1と処理2は同時に実行することが可能であ
る。このように、あるプログラムを、複数の処理ユニッ
トで並列に実行させる場合、並列処理が可能であるかど
うか、処理間の依存関係を調べる必要がある。
FIG. 1 shows an example of processing executed by the processor. In this figure, each process is supposed to be sequentially executed one by one from the top. Arrows represent substitution. For example, the process 0 is the value of the variable B and the variable C.
Is added and the result is assigned to the variable A. Since the value of the variable A is obtained as a result of performing the process 0, the process 1 cannot be executed before the execution of the process 0 is completed. Therefore, processing 0 and processing 1 cannot be executed in parallel. On the other hand, the variables B and C used by the process 2 do not depend on the result of the process 1. Therefore, the processing 1 and the processing 2 can be executed at the same time. In this way, when a certain program is executed in parallel by a plurality of processing units, it is necessary to check whether or not parallel processing is possible and the dependency relation between the processing.

【0006】複数の処理を並列に実行する方式として、
現在主流となっているのが、スーパスカラ方式である。
一般に、スーパスカラ方式を使用したプロセッサでは、
一つの処理は、一つの命令で表される。この方式では、
処理を実行する時に、いくつかの命令をバッファに蓄
え、バッファ内で並列に実行できる命令を探し、これら
を同時に実行する。この場合、並列に実行可能な命令を
探すことのできる範囲は、バッファの容量によって制限
される。このため、本来、並列に実行することが可能な
処理であっても、バッファ容量の制限により、並列に実
行できることを検出できず、並列に実行できない可能性
がある。また、並列に処理可能な命令を検出するための
ハードウェアが必要であるため、ハードウェア規模の増
大などの問題が発生する。
As a method for executing a plurality of processes in parallel,
The superscalar method is currently the mainstream.
Generally, a processor using the superscalar method
One process is represented by one command. With this method,
When a process is executed, some instructions are stored in a buffer, an instruction that can be executed in parallel is searched in the buffer, and these are executed at the same time. In this case, the range in which an instruction that can be executed in parallel can be searched for is limited by the capacity of the buffer. For this reason, even if the processes can be originally executed in parallel, it may not be possible to detect that they can be executed in parallel due to the limitation of the buffer capacity, and thus the processes may not be executed in parallel. In addition, since hardware for detecting instructions that can be processed in parallel is required, problems such as an increase in hardware scale occur.

【0007】これに対抗する方式として、現在注目され
ている方式が、超長命令語(以下、VLIW:Very
Long Instruction Wordと略
す)方式である。これは、コンパイル時に、コンパイラ
が各処理の間の依存関係を調べ、並列に実行可能な処理
を、長い命令語にまとめて、プロセッサへ入力する方式
である。例えば、4並列のVLIWプロセッサでは、1
命令は四つのフィールドから構成され、フィールドの位
置と処理を行うべき処理装置が1対1に対応している。
1フィールドの幅を32ビットとすると、1命令の長さ
は128ビットの固定長となる。このように、1命令の
長さが従来のプロセッサに比べて非常に長いため、VL
IWという名称が付いている。
As a method to counter this, a method which is currently receiving attention is a very long instruction word (hereinafter, VLIW: Very).
Long Instruction Word). This is a method in which the compiler examines the dependencies between the processes at the time of compilation, collects the processes that can be executed in parallel into long instruction words, and inputs them to the processor. For example, in a 4-parallel VLIW processor, 1
The instruction is composed of four fields, and the position of the field and the processing device to be processed have a one-to-one correspondence.
When the width of one field is 32 bits, the length of one instruction is a fixed length of 128 bits. As described above, since the length of one instruction is much longer than that of the conventional processor, the VL
The name is IW.

【0008】この方式では、並列に実行できる処理の検
出をソフトウェアが行うため、スーパスカラ方式よりも
広い範囲から、並列に実行可能な命令を探すことがで
き、より多くの処理を並列に実行することが可能とな
る。
In this method, since software detects processing that can be executed in parallel, it is possible to search for instructions that can be executed in parallel from a wider range than in the superscalar method, and execute more processing in parallel. Is possible.

【0009】VLIWプロセッサでは、処理の並列度が
低く、全ての命令フィールドに有効な処理を割り当てら
れない場合には、命令長を一定に保つために、有効な処
理を割り当てられない命令フィールドに対して、何も処
理をしないことを示す無処理フィールド(以下、NO
P:No OPerationと略す)を挿入する必要
がある。
In the VLIW processor, when the degree of parallelism of processing is low and valid processing cannot be assigned to all instruction fields, in order to keep the instruction length constant, the instruction fields to which valid processing cannot be assigned are kept. The unprocessed field (hereinafter, NO
P: Abbreviated as No Operation).

【0010】一般にプログラムには、処理の並列度が高
い部分と低い部分がある。並列度の低い部分では、多く
のNOPが挿入されることになるため、プログラムサイ
ズが増加することになる。プログラムサイズが増加する
と、命令キャッシュの使用効率が下がり、命令キャッシ
ュのヒット率が低下するという問題が発生する。また、
主記憶からプロセッサへ命令を転送する際の、データ量
が増えるという問題も発生する。
Generally, a program has a portion having a high degree of parallelism and a portion having a low degree of parallelism. A large number of NOPs are inserted in the portion where the degree of parallelism is low, which increases the program size. As the program size increases, the efficiency of using the instruction cache decreases, and the hit rate of the instruction cache decreases. Also,
There is also a problem that the amount of data increases when an instruction is transferred from the main memory to the processor.

【0011】この問題を解決するために、特開平5−2
57687号公報に、処理の並列性によって、スーパス
カラ方式とVLIW方式を使い分ける方式が記載されて
いる。すなわち、この方式では、並列性の低い処理部分
では、スーパスカラ方式を使用し、並列性の高い部分で
はVLIW方式を使用する。
In order to solve this problem, Japanese Unexamined Patent Publication (Kokai) No. 5-2
Japanese Patent No. 576887 describes a method in which a superscalar method and a VLIW method are selectively used depending on the parallelism of processing. That is, in this system, the superscalar system is used in the processing part having low parallelism, and the VLIW system is used in the part having high parallelism.

【0012】ただし、この方式では、純粋なVLIWと
比較すると、スーパスカラ方式を実現するために、並列
性を検出するハードウェアが必要であり、ハードウェア
規模の増大、設計期間の増大などの問題が発生する。
However, this system requires hardware for detecting parallelism in order to realize the superscalar system, as compared with pure VLIW, which causes problems such as an increase in hardware scale and an increase in design period. Occur.

【0013】[0013]

【発明が解決しようとする課題】この問題を解決するた
めに本発明では、主記憶および命令キャッシュにプログ
ラムが格納されているときにはNOPを削除しておき、
命令を命令キャッシュから処理ユニットへ転送する途中
でNOPを復元する。削除されているNOPを復元する
ために各命令に属性情報を付加し、これを用いて圧縮前
の命令を復元する。
In order to solve this problem, in the present invention, the NOP is deleted when the program is stored in the main memory and the instruction cache.
Restore the NOP on the way of transferring the instruction from the instruction cache to the processing unit. Attribute information is added to each instruction in order to restore the deleted NOP, and this is used to restore the instruction before compression.

【0014】この方式では、大きさの異なる命令フィー
ルドと属性情報を連続したアドレスに置くと、命令フィ
ールド長と属性情報長の合計が、1バイトの整数倍でな
い場合に、各命令の開始アドレスが、バイト境界から始
まらなくなるため、プログラムカウンタの更新が複雑に
なるという問題が発生していた。
In this system, when the instruction field and the attribute information having different sizes are placed at consecutive addresses, the start address of each instruction is determined when the total of the instruction field length and the attribute information length is not an integral multiple of 1 byte. Since there is no start from a byte boundary, updating the program counter becomes complicated.

【0015】[0015]

【課題を解決するための手段】この問題を、解決するた
めに、本発明では命令空間を複数個の命令フィールドの
組と、各命令フィールドに1対1に対応した属性情報の
組から構成されるブロックと呼ばれる単位に分割し、ブ
ロックごとに属性情報を管理する。
In order to solve this problem, in the present invention, the instruction space is composed of a set of a plurality of instruction fields and a set of attribute information corresponding to each instruction field one to one. It is divided into units called blocks, and attribute information is managed for each block.

【0016】本発明を使用することで、命令フィールド
長と属性情報長の合計が1バイトの整数倍でない場合で
も、命令フィールドがバイト境界から開始されるように
配置することが可能となる。これにより、プログラムカ
ウンタの制御を簡略化する事ができる。
By using the present invention, even if the total of the instruction field length and the attribute information length is not an integral multiple of 1 byte, it is possible to arrange the instruction field so that it starts from a byte boundary. Thereby, the control of the program counter can be simplified.

【0017】[0017]

【発明の実施の形態】本発明のプロセッサによる命令の
圧縮について、図2ないし図5を用いて説明する。図2
は圧縮の対象となる元の命令列、図3は圧縮後の命令
列、図4は命令空間の構成、図5はブロックの構成を示
した図である。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Instruction compression by a processor according to the present invention will be described with reference to FIGS. Figure 2
Is an original instruction sequence to be compressed, FIG. 3 is an instruction sequence after compression, FIG. 4 is an instruction space configuration, and FIG. 5 is a block configuration.

【0018】まず、命令の圧縮方法について、図2の命
令列を例に説明する。この図において、それぞれの長方
形(900a,900b,・・・)は命令フィールドで
ある。本実施例では、各命令フィールドは、32ビット
幅の固定長である。横1列の四つの命令フィールドが1
命令を構成する。例えば、900a〜dの四つの命令フ
ィールドは、1命令を構成し、これらは同時に実行され
る。
First, the instruction compression method will be described by taking the instruction sequence of FIG. 2 as an example. In this figure, each rectangle (900a, 900b, ...) Is an instruction field. In this embodiment, each instruction field has a fixed length of 32 bits. Four command fields in one horizontal row are 1
Compose an instruction. For example, four instruction fields 900a-d constitute one instruction, which are executed simultaneously.

【0019】図中の処理n(n=0〜12)は、演算な
どの処理を示す命令フィールドである。NOPは、何も
処理を行わない無処理フィールドである。本実施例のプ
ロセッサでは、命令フィールドの命令中の位置によっ
て、その命令フィールドを処理する処理装置を決定す
る。すなわち、命令中のn番目のフィールドに位置する
命令フィールドは、n番目の処理装置で処理される。こ
のため、命令を正確に実行するには、命令フィールドの
位置が保持されている必要がある。NOPは、有効な処
理が存在しない命令フィールドに挿入して、命令フィー
ルドの位置を保持するために使用される。
Process n (n = 0 to 12) in the figure is an instruction field indicating a process such as an operation. NOP is an unprocessed field in which no processing is performed. In the processor of this embodiment, the position of the instruction field in the instruction determines the processing device that processes the instruction field. That is, the instruction field located in the nth field in the instruction is processed by the nth processing unit. Therefore, the position of the instruction field must be maintained in order for the instruction to execute correctly. The NOP is used to insert into the instruction field where there is no valid operation to hold the position of the instruction field.

【0020】本実施例では、命令の圧縮を命令列からN
OPを削除することによって行う。しかし、元の命令列
から単純にNOPを削除するだけでは、削除されたNO
Pを復元する場所がわからないため、実行時に元の命令
列を復元することができない。このため、本実施例で
は、NOPを削除する時に、フィールド番号と最終フラ
グという属性情報を作成し、命令フィールドと1対1に
対応して付加する。図2の命令列からNOPを削除し、
属性情報を付加したものを、図3に示す。
In this embodiment, the instruction compression is performed N times from the instruction sequence.
This is done by deleting the OP. However, if the NOP is simply deleted from the original instruction sequence, the deleted NO
The original instruction sequence cannot be restored at the time of execution because the location to restore P is unknown. Therefore, in this embodiment, when the NOP is deleted, the attribute information including the field number and the final flag is created and added in a one-to-one correspondence with the instruction field. Delete NOP from the instruction sequence in FIG.
The one to which the attribute information is added is shown in FIG.

【0021】フィールド番号は、対応する命令フィール
ドが、圧縮前の命令中の何番目のフィールドであるかを
示す情報である。フィールド番号がnならば、対応する
命令フィールドは圧縮前の命令のフィールドnの位置に
存在する。すなわち、その命令フィールドは、処理装置
nで処理されることになる。例えば、処理0のフィール
ド番号は0なので、処理0は、元の命令列では、フィー
ルド0に位置しており、処理装置0で処理される。1命
令フィールド当たりのフィールド番号のビット数は、処
理ユニットの数によって決定される。フィールド番号が
iビットであれば、最大2のi乗個の処理ユニットま
で、対応可能である。本実施例では、フィールド番号の
ビット幅を3ビットとしている。このため、最大8個の
処理ユニットまで対応することが可能である。
The field number is information indicating which number field in the instruction before compression the corresponding instruction field is. If the field number is n, the corresponding instruction field exists at the position of the field n of the instruction before compression. That is, the instruction field will be processed by the processor n. For example, since the field number of the process 0 is 0, the process 0 is located in the field 0 in the original instruction sequence and is processed by the processor 0. The number of bits of the field number per instruction field is determined by the number of processing units. If the field number is i bits, a maximum of 2 i processing units can be handled. In this embodiment, the bit width of the field number is 3 bits. Therefore, it is possible to handle up to eight processing units.

【0022】最終フラグは、対応する命令フィールドが
命令中の最終フィールドかどうかを示す情報である。最
終フラグが1ならば、対応する命令フィールドが、NO
Pを除いた後の命令中の最終フィールドとなる。例え
ば、処理0の最終フラグ920aは1なので、次の処理
1は別の命令に含まれることになる。
The final flag is information indicating whether the corresponding instruction field is the final field in the instruction. If the final flag is 1, the corresponding instruction field is NO
It is the final field in the instruction after P is removed. For example, since the final flag 920a of the process 0 is 1, the next process 1 is included in another instruction.

【0023】これら二つの属性情報を使用することで、
圧縮後の命令列から圧縮前の命令列を復元することがで
きる。この方式で、圧縮された命令列から元の命令を復
元するには、命令フィールドの他に、それに対応した属
性情報が必要である。
By using these two pieces of attribute information,
The instruction sequence before compression can be restored from the instruction sequence after compression. In this method, in order to restore the original instruction from the compressed instruction sequence, attribute information corresponding to the instruction field is necessary in addition to the instruction field.

【0024】一般に、情報処理装置で扱うデータの幅
は、2のn乗ビットとなっている。このため、データを
格納するメモリのビット幅も、これに対応して、2のn
乗とすると効率よくデータを格納できる。命令とデータ
を同じメモリに格納することを考えると、命令アクセス
の最小単位も2のn乗ビットとなっていることが好まし
い。
Generally, the width of data handled by the information processing device is 2 to the nth power bit. Therefore, the bit width of the memory for storing the data is also n corresponding to 2
Data can be stored efficiently by taking power. Considering that the instruction and the data are stored in the same memory, it is preferable that the minimum unit of instruction access is 2n bits.

【0025】しかし、2のn乗ビット幅の命令フィール
ドに属性情報を付加すると、両者の合計幅は2のn乗ビ
ットではなくなってしまう。本実施例では、32ビット
の命令フィールドと4ビットの属性情報を合わせると、
36ビットとなってしまい、2のn乗ではない。このた
め、1語の長さが2のn乗のメモリに格納すると、命令
の先頭が2のn乗ビットの境界に整列せずに、プログラ
ムカウンタの値の更新が複雑になってしまう。
However, if attribute information is added to an instruction field having a bit width of 2 to the nth power, the total width of the two will not be 2 to the nth power bit. In this embodiment, when the 32-bit instruction field and the 4-bit attribute information are combined,
It is 36 bits, not 2 to the nth power. For this reason, if one word is stored in a memory whose power is 2 n, the start of an instruction is not aligned with a boundary of 2 n bits, and updating of the value of the program counter becomes complicated.

【0026】そこで、本発明では、図4に示すように命
令を格納する空間を、ブロックと呼ばれる単位に分割
し、ブロック単位で属性情報を付加することによって、
この問題を解決する。
Therefore, in the present invention, as shown in FIG. 4, the space for storing instructions is divided into units called blocks, and attribute information is added in block units.
To solve this problem.

【0027】この図で、800はプロセッサが実行する
命令が格納されている命令空間である。命令空間800
は、ブロック810に分割されている。本実施例では、
ブロック810の大きさは256バイトであり、ブロッ
ク810の先頭は常に256バイト境界に整列している
ものとする。
In this figure, reference numeral 800 is an instruction space in which instructions executed by the processor are stored. Command space 800
Is divided into blocks 810. In this embodiment,
The size of the block 810 is 256 bytes, and the beginning of the block 810 is always aligned on a 256-byte boundary.

【0028】各ブロックの構成を図5に示す。ブロック
810は属性情報を格納する領域820と命令フィール
ドを格納する領域830から構成されている。属性情報
820はブロック内オフセット00h〜1Fhの部分
に、命令フィールド830はブロック内オフセット20
h〜FFhの部分に格納されている。なお、数値の末尾
の「h」は、その数値が16進数であることを示してい
る。属性情報820の先頭の4バイトは未使用領域であ
り、残りの28バイトに各命令フィールドに対応した属
性が格納でされている。本実施例では、1命令フィール
ド当たりの属性フィールドは4ビットなので、ブロック
当たり56個の属性情報が格納されている。命令フィー
ルド830は228バイトであり、32ビットの命令フ
ィールドが56個格納されている。
The structure of each block is shown in FIG. The block 810 is composed of an area 820 for storing attribute information and an area 830 for storing an instruction field. The attribute information 820 is in the block offsets 00h to 1Fh, and the instruction field 830 is in the block offsets 20.
It is stored in the portion of h to FFh. In addition, "h" at the end of the numerical value indicates that the numerical value is a hexadecimal number. The first 4 bytes of the attribute information 820 is an unused area, and the attribute corresponding to each instruction field is stored in the remaining 28 bytes. In the present embodiment, since the attribute field per instruction field is 4 bits, 56 pieces of attribute information are stored per block. The instruction field 830 is 228 bytes, and 56 32-bit instruction fields are stored.

【0029】次に本実施例を実現するためのハードウェ
ア構成を図6〜図23を使用して説明する。図6は、プ
ロセッサ1の中で命令の供給に関連する部分の構成およ
び主記憶2を記載した図である。この図では、命令供給
に関係がない部分については省略している。
Next, a hardware configuration for realizing this embodiment will be described with reference to FIGS. FIG. 6 is a diagram showing a configuration of a portion related to instruction supply in the processor 1 and a main memory 2. In this figure, parts not related to instruction supply are omitted.

【0030】図6で、1はプロセッサ、2は主記憶、1
0は命令キャッシュのタグ格納部、20は命令キャッシ
ュの属性格納部、30は命令キャッシュの命令フィール
ド格納部、40はヒット判定回路、50は属性解析回
路、60はセレクト回路、70はキャッシュ制御回路、
80は命令供給制御回路、90a〜dは処理装置であ
る。
In FIG. 6, 1 is a processor, 2 is a main memory, and 1
0 is an instruction cache tag storage unit, 20 is an instruction cache attribute storage unit, 30 is an instruction cache instruction field storage unit, 40 is a hit determination circuit, 50 is an attribute analysis circuit, 60 is a select circuit, and 70 is a cache control circuit. ,
Reference numeral 80 is a command supply control circuit, and 90a to 90d are processing devices.

【0031】最初に、図中の各回路の説明を行う。特に
指定しない限り、信号は正論理であり、Hレベルが1
に、Lレベルが0に対応している。また、原則として、
回路はクロックの立ち上がりエッジに同期して動作す
る。すなわち、クロックがLレベルからHレベルに変化
する時に、状態が遷移する。図が煩雑になるのを避ける
ため、図示しないが、全ての回路に対してクロック信号
は、接続されているものとする。
First, each circuit in the figure will be described. Unless otherwise specified, signals are positive logic and H level is 1
The L level corresponds to 0. Also, in principle,
The circuit operates in synchronization with the rising edge of the clock. That is, the state transitions when the clock changes from the L level to the H level. To avoid complicating the figure, although not shown, the clock signals are connected to all circuits.

【0032】主記憶2には、プロセッサ1が実行する命
令と、命令実行時に操作されるデータが格納されてい
る。命令とデータは、この図の様に、同一のメモリに格
納しても良いし、別のメモリに格納しても良い。本実施
例では、主記憶2の一部を読み出し専用メモリ(以下R
OMと略す)で構成し、残りを読み書き可能メモリ(以
下RAMと略す)で構成するものとする。
The main memory 2 stores instructions executed by the processor 1 and data operated when the instructions are executed. The instruction and the data may be stored in the same memory as shown in this figure, or may be stored in another memory. In this embodiment, a part of the main memory 2 is a read-only memory (hereinafter referred to as R
OM) and the rest is readable / writable memory (hereinafter abbreviated as RAM).

【0033】電源投入時には、ROMに格納されている
プログラムが実行される。ROMは、不揮発性の素子で
あり、電源を切っても格納内容は保持されている。プロ
セッサ1が実行するプログラムを全てROMにすること
も可能であるが、より処理の自由度を持たせたい場合に
は、ROMにプロセッサ1に接続されている外部記憶装
置から、主記憶2のRAM部分へプログラムを転送する
プログラムを格納し、これを実行することで、プログラ
ムを外部記憶装置から主記憶2へ転送するという手段を
とることも可能である。
When the power is turned on, the program stored in the ROM is executed. The ROM is a non-volatile element, and the stored contents are retained even when the power is turned off. All programs executed by the processor 1 can be stored in the ROM, but if it is desired to have more processing freedom, the ROM of the main storage 2 can be changed from the external storage connected to the processor 1 to the ROM. It is also possible to store the program for transferring the program to the part and execute the program to transfer the program from the external storage device to the main memory 2.

【0034】なお、本実施例では、プロセッサ1と主記
憶2を接続するデータの幅は、128ビットとしてい
る。
In this embodiment, the width of the data connecting the processor 1 and the main memory 2 is 128 bits.

【0035】命令キャッシュは、タグ格納部10,属性
格納部20,命令格納部30の3種類のメモリから構成
されている。タグ格納部10の構成を図7に、属性格納
部20の構成を図8に、命令格納部30の構成を図9に
示す。なお、本実施例では、ダイレクトマップ構成のキ
ャッシュを想定しているが、本発明はキャッシュの構成
には依存しない。このため、4ウェイセットアソシアテ
ィブなどの、他の構成にすることも可能である。
The instruction cache is composed of three types of memories including a tag storage unit 10, an attribute storage unit 20, and an instruction storage unit 30. The structure of the tag storage unit 10 is shown in FIG. 7, the structure of the attribute storage unit 20 is shown in FIG. 8, and the structure of the instruction storage unit 30 is shown in FIG. In this embodiment, a cache having a direct map structure is assumed, but the present invention does not depend on the cache structure. Therefore, other configurations such as 4-way set associative are possible.

【0036】タグ格納部10は、19ビット×64語構
成のメモリ11とセレクタ12から構成されている。1
00はメモリ11へのライトデータであり、アドレスタ
グ100aと有効ビット100bから構成される。以
後、アルファベットの添字を取った記述はアルファベッ
トを付けたもの総称を示すこととする。アドレスタグ1
00aは18ビット幅、有効ビット100bは1ビット
幅である。106はリードデータであり、アドレスタグ
106aと有効ビット106bから構成される。アドレ
スタグ106aは18ビット幅、有効ビット106bは
1ビット幅である。102はタグ格納部10への書き込
みを行う際に使用される信号であり、ライトアドレス1
02aとリードライト信号102bから構成されてい
る。リードライト信号102bは、Hにするとメモリ1
1へリードアクセスが行われ、Lにするとライトアクセ
スが行われる。111はリードアドレスである。ライト
アドレス102aとリードアドレス111は、セレクタ
12によって選択されてメモリ11へ与えられる。セレ
クタ12の制御は、リードライト信号102bによって
行われる。セレクタ12の出力は、リードライト信号1
02bがHの時にはリードアドレス111、Lの時には
ライトアドレス102aとなる。
The tag storage unit 10 is composed of a memory 11 of 19 bits × 64 words and a selector 12. 1
00 is write data to the memory 11, and is composed of an address tag 100a and a valid bit 100b. Hereinafter, the description with the subscript of the alphabet will be the generic one with the alphabet. Address tag 1
00a has an 18-bit width, and effective bit 100b has a 1-bit width. Reference numeral 106 is read data, which is composed of an address tag 106a and a valid bit 106b. The address tag 106a is 18 bits wide and the effective bit 106b is 1 bit wide. Reference numeral 102 denotes a signal used when writing to the tag storage unit 10, and the write address 1
02a and a read / write signal 102b. When the read / write signal 102b is set to H, the memory 1
Read access is made to 1, and write access is made to L. Reference numeral 111 is a read address. The write address 102a and the read address 111 are selected by the selector 12 and given to the memory 11. The control of the selector 12 is performed by the read / write signal 102b. The output of the selector 12 is the read / write signal 1
When 02b is H, it is the read address 111, and when 02b is L, it is the write address 102a.

【0037】メモリ11の動作は次の通りである。The operation of the memory 11 is as follows.

【0038】クロックの立ち上がり時に、リードライト
信号102bがHレベルであれば、メモリへのアクセス
はリードアクセスとなり、リードアドレス111で指定
されるアドレスのメモリの内容がリードデータ106へ
出力される。
If the read / write signal 102b is at the H level at the rising edge of the clock, the memory access is a read access, and the contents of the memory at the address designated by the read address 111 are output to the read data 106.

【0039】クロックの立ち上がり時に、リードライト
信号102bがLレベルであれば、メモリへのアクセス
はライトアクセスとなり、ライトアドレス102aで指
定されるアドレスのメモリに対して、ライトデータ信号
100の内容が書き込まれる。
If the read / write signal 102b is at the L level at the rising edge of the clock, the memory access is a write access, and the content of the write data signal 100 is written to the memory at the address specified by the write address 102a. Be done.

【0040】タグ格納部10には、1エントリー当たり
18ビットのアドレスタグと1ビットのエントリーの有
効ビットを格納する。エントリー数は64である。タグ
格納部10の格納内容は、キャッシュのヒット判定に使
用する。すなわち、ヒット判定を行う際にはタグ格納部
10へ、リードアクセスが発生する。また、キャッシュ
の内容を更新したときには、タグ格納部10へ、新しい
タグ情報が書き込むためのライトアクセスが発生する。
通常の命令アクセスでは、1命令につき1回のヒット判
定が必要となるため、タグ格納部10へ1回アクセスを
行うが、二つのブロックにまたがる命令を実行する際に
は、2回のアクセスを行う必要がある。
The tag storage unit 10 stores an address tag of 18 bits per entry and a valid bit of the entry of 1 bit. The number of entries is 64. The content stored in the tag storage unit 10 is used for cache hit determination. That is, when the hit determination is performed, a read access is made to the tag storage unit 10. Further, when the content of the cache is updated, a write access for writing new tag information occurs in the tag storage unit 10.
In normal instruction access, since hit determination is required once for each instruction, the tag storage unit 10 is accessed once. However, when an instruction that spans two blocks is executed, two accesses are required. There is a need to do.

【0041】属性格納部20は、16ビット×896語
構成のメモリ21とセレクタ22とデータ幅変換回路2
3から構成されている。101は属性格納部20へのラ
イトデータであり、128ビット幅である。201はメ
モリ21へのライトデータであり、連続した四つの命令
フィールドに対応した属性情報から構成されている。1
命令フィールド当たりの属性情報は、4ビット(フィー
ルド番号3ビットと最終フラグ1ビット)なので、ライ
トデータ201の幅は、4ビット×4=16ビットとな
る。なお、本実施例では、説明の簡略化および拡張性を
考慮してフィールド番号を3ビットとしているが、処理
装置の数を四つに限定すれば、ライトデータ201の幅
は、12ビットに削減することも可能である。このよう
に属性格納部20へのライトデータ101とメモリ21
へのライトデータ201の幅が異なるため、これを吸収
するためにデータ幅変換回路23を使用している。10
7はリードデータであり、ライトデータ201と同様の
構成で16ビット幅となっている。103は属性格納部
20への書き込みを行う際に使用される信号であり、ラ
イトアドレス103aとリードライト信号103bから
構成されている。リードライト信号103bは、Hにす
るとメモリ21へリードアクセスが行われ、Lにすると
ライトアクセスが行われる。111はリードアドレスで
ある。ライトアドレス103aとリードアドレス111
は、セレクタ22によって選択されてメモリ21へ与え
られる。セレクタ22の制御は、リードライト信号10
3bによって行われる。セレクタ22の出力は、リード
ライト信号103bがHの時にはリードアドレス11
1、Lの時にはライトアドレス103aとなる。
The attribute storage unit 20 includes a memory 21 of 16 bits × 896 words, a selector 22, and a data width conversion circuit 2.
It consists of three. Reference numeral 101 is write data to the attribute storage unit 20 and has a 128-bit width. Reference numeral 201 denotes write data to the memory 21, which is composed of attribute information corresponding to four consecutive instruction fields. 1
Since the attribute information per instruction field is 4 bits (field number 3 bits and final flag 1 bit), the width of the write data 201 is 4 bits × 4 = 16 bits. In the present embodiment, the field number is 3 bits in consideration of simplification and expandability of the description, but if the number of processing devices is limited to 4, the width of the write data 201 is reduced to 12 bits. It is also possible to do so. In this way, the write data 101 and the memory 21 for the attribute storage unit 20 are stored.
Since the width of the write data 201 to the write data is different, the data width conversion circuit 23 is used to absorb this. 10
Reference numeral 7 is read data, which has the same configuration as the write data 201 and has a 16-bit width. Reference numeral 103 is a signal used when writing to the attribute storage unit 20, and is composed of a write address 103a and a read / write signal 103b. When the read / write signal 103b is set to H, read access to the memory 21 is performed, and when set to L, write access is performed. Reference numeral 111 is a read address. Write address 103a and read address 111
Are selected by the selector 22 and given to the memory 21. The selector 22 controls the read / write signal 10
3b. The output of the selector 22 is the read address 11 when the read / write signal 103b is H.
When it is 1 or L, it becomes the write address 103a.

【0042】メモリ21の動作は、メモリ11と同様で
ある。ただし、メモリ21の内部は、任意のアドレス位
置から、連続した四つの属性情報をリードすることが可
能な構成となっている。
The operation of the memory 21 is similar to that of the memory 11. However, the inside of the memory 21 is configured so that four consecutive pieces of attribute information can be read from an arbitrary address position.

【0043】命令フィールド格納部30は、128ビッ
ト×896語構成のメモリ31とセレクタ32から構成
されている。101はメモリ31へのライトデータであ
り、連続した四つの命令フィールドから構成されてい
る。ライトデータ101の幅は、32ビット×4=12
8ビットである。108はリードデータであり、ライト
データ101と同様の構成で128ビット幅となってい
る。104は命令フィールド格納部30への書き込みを
行う際に使用される信号であり、ライトアドレス104
aとリードライト信号104bから構成されている。リ
ードライト信号104bは、Hにするとメモリ31へリ
ードアクセスが行われ、Lにするとライトアクセスが行
われる。111はリードアドレスである。ライトアドレ
ス104aとリードアドレス111は、セレクタ32に
よって選択されてメモリ31へ与えられる。セレクタ3
2の制御は、リードライト信号104bによって行われ
る。セレクタ32の出力は、リードライト信号104b
がHの時にはリードアドレス111、Lの時にはライト
アドレス104aとなる。
The instruction field storage unit 30 is composed of a memory 31 of 128 bits × 896 words and a selector 32. Reference numeral 101 is write data to the memory 31, and is composed of four consecutive instruction fields. The width of the write data 101 is 32 bits × 4 = 12
It is 8 bits. Reference numeral 108 is read data, which has the same configuration as the write data 101 and has a 128-bit width. Reference numeral 104 denotes a signal used when writing to the instruction field storage unit 30, and the write address 104
a and a read / write signal 104b. When the read / write signal 104b is set to H, read access to the memory 31 is performed, and when set to L, write access is performed. Reference numeral 111 is a read address. The write address 104a and the read address 111 are selected by the selector 32 and given to the memory 31. Selector 3
The control No. 2 is performed by the read / write signal 104b. The output of the selector 32 is the read / write signal 104b.
Is H, the read address 111, and L is the write address 104a.

【0044】メモリ31の動作は、メモリ11と同様で
ある。ただし、メモリ31の内部は、任意のアドレス位
置から、連続した四つの命令フィールドをリードするこ
とが可能な構成となっている。
The operation of the memory 31 is similar to that of the memory 11. However, the inside of the memory 31 is configured to be able to read four consecutive instruction fields from an arbitrary address position.

【0045】各ブロックで、ブロック内オフセットが0
0h〜1Fhの領域は、属性が格納されているため、命
令フィールドは存在しない。このため、命令フィールド
格納部30の、この部分にはメモリを実装しないことに
より、命令フィールド格納部30が必要とするチップ面
積を小さくできる。すなわち、64ページ格納可能なキ
ャッシュメモリを構成するには、本来は、64ページ×
256バイト=16キロバイトのメモリが必要である。
これは、128ビット×1024語構成のメモリに相当
する。
In each block, the block offset is 0.
In the area of 0h to 1Fh, since the attribute is stored, the command field does not exist. Therefore, by not mounting a memory in this portion of the instruction field storage unit 30, the chip area required by the instruction field storage unit 30 can be reduced. That is, in order to configure a cache memory capable of storing 64 pages, originally, 64 pages ×
256 bytes = 16 kilobytes of memory is required.
This corresponds to a memory of 128 bits × 1024 words.

【0046】しかし、実際には、命令フィールド格納部
30の容量は、ブロック内オフセットが00h〜1Fh
の属性格納部分を除外して良いため、64ページ×22
8バイト=14キロバイトで良いことになる。これは、
128ビット×896語構成のメモリに相当する。同様
に、命令フィールド格納部30に1対1に対応している
属性格納部20の容量も削減することができる。
However, in practice, the capacity of the instruction field storage unit 30 has an in-block offset of 00h to 1Fh.
64 pages x 22 because the attribute storage part of
8 bytes = 14 kilobytes is good. this is,
This corresponds to a memory having a structure of 128 bits × 896 words. Similarly, the capacity of the attribute storage unit 20 that has a one-to-one correspondence with the instruction field storage unit 30 can be reduced.

【0047】ヒット判定回路40は、命令キャッシュの
タグ格納部10から読み出したアドレスタグ106aと
有効ビット106bの内容とプログラムカウンタの値1
11を用いて、次に実行する命令が命令キャッシュに格
納されているかどうかを調べる回路である。ヒット判定
回路40の構成例を、図10に示す。ヒット判定回路4
0は、比較器41とNAND回路42から構成されてい
る。比較器40は18ビット幅の二つの入力、106a
と111aを持つ。111aはプログラムカウンタの値
111の上位18ビットであり、タグ部と呼ばれる。二
つの入力が、18ビットとも一致した場合、比較器41
の出力200はHレベルとなる。1ビットでも異なるビ
ットがある場合には、出力200はLレベルとなる。N
AND回路42は、2入力のNANDゲートであり、二
つの入力、200と106bが共にHレベルの場合にの
み、NAND回路42の出力であるキャッシュミス信号
109はLレベルになる。それ以外の入力の組み合わせ
では、キャッシュミス信号109はHレベルとなる。
The hit determination circuit 40 has the contents of the address tag 106a and valid bit 106b read from the tag storage unit 10 of the instruction cache and the value 1 of the program counter.
11 is a circuit for checking whether an instruction to be executed next is stored in the instruction cache. FIG. 10 shows a configuration example of the hit determination circuit 40. Hit determination circuit 4
0 is composed of a comparator 41 and a NAND circuit 42. Comparator 40 has two 18-bit wide inputs, 106a
And 111a. 111a is the upper 18 bits of the value 111 of the program counter and is called the tag portion. If the two inputs also match 18 bits, the comparator 41
Output 200 becomes H level. If even one bit is different, the output 200 becomes L level. N
The AND circuit 42 is a 2-input NAND gate, and the cache miss signal 109, which is the output of the NAND circuit 42, becomes the L level only when the two inputs 200 and 106b are both at the H level. With other combinations of inputs, the cache miss signal 109 becomes H level.

【0048】次に、図11を用いてヒット判定の原理を
説明する。図11に示すように、プログラムカウンタの
値は、タグ部111a,エントリー選択部111b,オ
フセット111cの三つのフィールドから構成されてい
る。タグ部111aは18ビット幅、エントリー選択部
111bは6ビット幅である。ヒット判定には、タグ部
111aとエントリー選択部111bを使用する。エン
トリー選択部111bは、命令キャッシュのタグ格納部
10の中から、アクセス対象となるエントリーを選択す
るために使用される。すなわちエントリー選択部111
bの値が、タグ格納部10へのリードアドレスとなる。
命令供給制御回路80は、タグ格納部10中の選択され
たエントリーのアドレスタグの値106aと有効ビット
の値106bを読み出す。読み出されたアドレスタグの
値106aと有効ビットの値106bおよび、プログラ
ムカウンタのタグ部の値111aは、ヒット判定回路4
0に入力される。アドレスタグの値106aとプログラ
ムカウンタのタグ部111aが等しくない場合または、
有効ビットの値106bが0である場合、キャッシュは
ミスしており、ヒット判定回路40の出力であるキャッ
シュミス信号109はHレベルになる。その他の場合に
はキャッシュはヒットしており、キャッシュミス信号1
09はLレベルになる。
Next, the principle of hit determination will be described with reference to FIG. As shown in FIG. 11, the value of the program counter is composed of three fields of a tag section 111a, an entry selection section 111b, and an offset 111c. The tag portion 111a is 18 bits wide and the entry selection portion 111b is 6 bits wide. The tag section 111a and the entry selection section 111b are used for hit determination. The entry selection unit 111b is used to select an entry to be accessed from the tag storage unit 10 of the instruction cache. That is, the entry selection unit 111
The value of b becomes the read address to the tag storage unit 10.
The instruction supply control circuit 80 reads the address tag value 106a and the valid bit value 106b of the selected entry in the tag storage unit 10. The read address tag value 106a, valid bit value 106b, and tag portion value 111a of the program counter are the hit determination circuit 4
Input to 0. If the address tag value 106a and the program counter tag portion 111a are not equal, or
When the value 106b of the valid bit is 0, the cache has missed, and the cache miss signal 109 output from the hit determination circuit 40 becomes H level. In other cases, the cache is hit and the cache miss signal 1
09 becomes L level.

【0049】属性解析回路50は、命令キャッシュの属
性格納部20から読み出した属性データを用いて、他の
回路を制御するための制御信号を生成する回路である。
属性解析回路50の構成を図12に示す。この図で、5
1はセレクト信号生成回路、52は命令長算出回路であ
る。また、107は属性格納部20から読み出した4命
令フィールド分の属性情報であり、フィールド番号10
7aと終了フラグ107bから構成されている。
The attribute analysis circuit 50 is a circuit which uses the attribute data read from the attribute storage section 20 of the instruction cache to generate a control signal for controlling other circuits.
The structure of the attribute analysis circuit 50 is shown in FIG. In this figure, 5
Reference numeral 1 is a select signal generation circuit, and 52 is an instruction length calculation circuit. Further, 107 is attribute information for four instruction fields read from the attribute storage unit 20, and the field number 10
7a and end flag 107b.

【0050】114はセレクト回路60の制御信号、1
17は現在実行している命令の命令長を表す信号であ
る。
Reference numeral 114 is a control signal for the select circuit 60, 1
Reference numeral 17 is a signal representing the instruction length of the instruction currently being executed.

【0051】セレクト信号生成回路51は、フィールド
番号の値107aと終了フラグの値107bから、セレ
クト回路60を制御するための制御信号114を生成す
る回路である。削除されていたNOPの挿入も、ここで
行われる。この回路は、組み合わせ回路で構成すること
ができる。
The select signal generating circuit 51 is a circuit for generating a control signal 114 for controlling the select circuit 60 from the field number value 107a and the end flag value 107b. The insertion of the deleted NOP is also performed here. This circuit can be configured as a combinational circuit.

【0052】命令長算出回路52は、終了フラグの値1
07bから、命令長117(実行中の命令を構成してい
る命令フィールドの数)を求める回路である。算出され
た命令長117は、プログラムカウンタの更新に使用さ
れる。命令長算出回路52は、組み合わせ回路で構成さ
れ、その真理値表は図13のようになっている。この表
で、1番目の最終フラグ107b−0は、プログラムカ
ウンタが指しているアドレスにある命令フィールドに対
応した終了フラグである。2番目の最終フラグ107b
−1は、プログラムカウンタが指しているアドレスにあ
る命令フィールドの次の命令フィールドに対応した終了
フラグである。3番目,4番目も同様である。Xは、
0,1のどちらでも良いことを示している。また、命令
長117がErrとなっている組み合わせは、エラーで
ある。正常なプログラムでは、この組み合わせは発生し
ない。
The instruction length calculation circuit 52 uses the value 1 of the end flag.
This is a circuit for obtaining the instruction length 117 (the number of instruction fields forming the instruction being executed) from 07b. The calculated instruction length 117 is used to update the program counter. The instruction length calculation circuit 52 is composed of a combination circuit, and its truth table is as shown in FIG. In this table, the first final flag 107b-0 is an end flag corresponding to the instruction field at the address pointed to by the program counter. Second final flag 107b
-1 is an end flag corresponding to the instruction field next to the instruction field at the address pointed to by the program counter. The same applies to the third and fourth. X is
It indicates that either 0 or 1 is acceptable. A combination in which the instruction length 117 is Err is an error. This combination does not occur in normal programs.

【0053】セレクト回路60は、セレクト信号生成回
路51で生成した制御信号114を用いて、命令キャッ
シュの命令フィールド格納部30から読み出した、四つ
の命令フィールドを、対応する処理装置へ配る回路であ
る。セレクト回路の構成を図14に示す。この図で61
a〜dはセレクタである。セレクタ61a〜dは、組み
合わせ回路で構成される。この図で、NOPは、NOP
に相当する命令コードを出力することを示している。
The select circuit 60 is a circuit for distributing the four instruction fields read from the instruction field storage unit 30 of the instruction cache to the corresponding processing device by using the control signal 114 generated by the select signal generation circuit 51. . The configuration of the select circuit is shown in FIG. 61 in this figure
a to d are selectors. The selectors 61a to 61d are composed of combinational circuits. In this figure, NOP is NOP
It indicates that the instruction code corresponding to is output.

【0054】命令供給制御回路80は、命令供給を制御
する回路である。命令制御回路80の構成を、図15を
用いて説明する。この図で、81はプログラムカウン
タ、82,83はセレクタ、84は加算器、85は属性
スキップ回路、86は処理実行制御シーケンサである。
The command supply control circuit 80 is a circuit for controlling the command supply. The configuration of the instruction control circuit 80 will be described with reference to FIG. In this figure, 81 is a program counter, 82 and 83 are selectors, 84 is an adder, 85 is an attribute skip circuit, and 86 is a process execution control sequencer.

【0055】処理実行制御シーケンサ86は、処理の実
行および停止を決定する回路であり、実行,停止の二つ
の状態を持つ。処理実行制御シーケンサ86の初期状態
は、停止状態である。この時、処理装置90は処理の実
行を行わない。命令キャッシュのフィル動作中や、命令
キャッシュの無効化中には、処理装置90が命令キャッ
シュに対してアクセスできない。このように、処理の実
行を継続できない場合に、処理実行制御シーケンサ86
は停止状態に移行する。逆に、命令キャッシュのフィル
動作完了や、命令キャッシュの無効化処理終了時に、処
理実行制御シーケンサ86は実行状態に移行する。実行
制御シーケンサ86の状態は処理実行信号110に反映
される。すなわち、停止状態では処理実行信号110は
Lレベルとなり、実行状態では処理実行信号110はH
レベルとなる。
The process execution control sequencer 86 is a circuit for determining whether to execute or stop the process, and has two states of execution and stop. The initial state of the process execution control sequencer 86 is the stopped state. At this time, the processing device 90 does not execute the process. The processor 90 cannot access the instruction cache during the filling operation of the instruction cache or the invalidation of the instruction cache. In this way, when the execution of the process cannot be continued, the process execution control sequencer 86
Shifts to the stopped state. On the contrary, when the instruction cache fill operation is completed or the instruction cache invalidation processing is completed, the processing execution control sequencer 86 shifts to the execution state. The state of the execution control sequencer 86 is reflected in the process execution signal 110. That is, the processing execution signal 110 is at the L level in the stopped state, and the processing execution signal 110 is at the H level in the execution state.
It becomes a level.

【0056】次に、プログラムカウンタ81の更新方法
を、図15と図16を対応させて説明する。図16は、
プログラムカウンタ81の更新方法を示したフローチャ
ートである。プログラムカウンタ81の更新も、クロッ
クに同期して行われる。処理実行制御シーケンサ86が
停止状態にある場合には、プログラムカウンタ81は更
新しない(700)。この処理は、セレクタ83で行
う。セレクタ83の出力は、処理実行信号によって切り
換えられる。処理実行信号はHレベルならば、命令長1
17が出力され、Lレベルならば、0が出力される。す
なわち、停止状態では、加算器84における、プログラ
ムカウンタ81への加算値が0となり、プログラムカウ
ンタ81は前の値を保持することになる。処理実行制御
シーケンサ86が実行状態である場合には、現在実行中
の命令が分岐命令であるかどうかを調べる(701)。
これは、処理ユニット90から出力される分岐実行信号
113aの内容を、調べることによって行われる。分岐
実行信号113aの値がHならば、現在実行中の命令は
分岐命令である。実行中の命令が分岐命令であった場合
には、プログラムカウンタ81へ分岐先のアドレス11
3bを代入する(702)。この処理は、セレクタ82
で行われる。分岐実行信号113aがHならば、セレク
タ82の出力は処理ユニット90から出力された分岐先
アドレス113bとなり、分岐実行信号がLならば、出
力220は、属性スキップ回路85の出力221とな
る。分岐命令でなければ、プログラムカウンタ81の値
に、現在実行中の命令の命令長を加算する(703)。
これは、加算器84で実行される。加算した結果、プロ
グラムカウンタ81の指すアドレスが、命令フィールド
830内を指さずに属性情報820内を指していた場合
には、さらに、プログラムカウンタ81に、20h(1
0進数では32)を加算する。これは、命令スキップ回
路85で実行される。命令スキップ回路85は、0また
は20hを加算する加算器である。どちらを加算するか
は、加算器の出力222によって決定される。
Next, a method of updating the program counter 81 will be described with reference to FIGS. 16
9 is a flowchart showing a method for updating the program counter 81. The program counter 81 is also updated in synchronization with the clock. When the process execution control sequencer 86 is in the stopped state, the program counter 81 is not updated (700). This processing is performed by the selector 83. The output of the selector 83 is switched by the processing execution signal. If the processing execution signal is at H level, instruction length 1
17 is output, and if it is at L level, 0 is output. That is, in the stopped state, the value added to the program counter 81 in the adder 84 becomes 0, and the program counter 81 holds the previous value. If the process execution control sequencer 86 is in the execution state, it is checked whether the instruction currently being executed is a branch instruction (701).
This is done by examining the content of the branch execution signal 113a output from the processing unit 90. If the value of the branch execution signal 113a is H, the instruction currently being executed is a branch instruction. If the instruction being executed is a branch instruction, the branch destination address 11 is sent to the program counter 81.
3b is substituted (702). This process is performed by the selector 82
Done in. When the branch execution signal 113a is H, the output of the selector 82 is the branch destination address 113b output from the processing unit 90, and when the branch execution signal is L, the output 220 is the output 221 of the attribute skip circuit 85. If it is not a branch instruction, the instruction length of the instruction currently being executed is added to the value of the program counter 81 (703).
This is done in adder 84. As a result of the addition, when the address pointed to by the program counter 81 does not point in the instruction field 830 but in the attribute information 820, the program counter 81 further sets 20h (1
32) is added in the case of 0-base number. This is executed by the instruction skip circuit 85. The instruction skip circuit 85 is an adder that adds 0 or 20h. Which is added is determined by the output 222 of the adder.

【0057】以上の方法でプログラムカウンタを更新す
ることで、各ブロックの属性領域を飛ばして、命令フィ
ールドのみを実行することが可能となる。
By updating the program counter by the above method, the attribute area of each block can be skipped and only the instruction field can be executed.

【0058】命令キャッシュ制御回路70の構成を図1
7に示す。この図で、71はフィル制御回路、72は命
令キャッシュの全エントリーを無効化する無効化回路、
73はセレクタである。また、109は、ヒット判定回
路40から出力されるキャッシュミス信号、116は初
期化信号である。112は、キャッシュ制御回路70の
動作状態を表す信号であり、キャッシュフィルを実行中
であることを示すキャッシュフィル中信号112aと、
キャッシュの無効化を実行中であることを示す無効化中
信号112bから構成されている。命令キャッシュ制御
信号102〜104は、ライトアドレス、リードライト
信号など、命令キャッシュへライトアクセスを行うため
の信号であり、フィル制御回路71からの制御信号24
1と、無効化回路72からの制御信号241をセレクタ
73で切り換えた結果が出力される。セレクタの切り換
えには無効化中信号112bが使用される。105は主
記憶から命令を読み出す時に使用される、アドレスおよ
び制御信号である。
The configuration of the instruction cache control circuit 70 is shown in FIG.
7 shows. In this figure, 71 is a fill control circuit, 72 is an invalidation circuit that invalidates all entries in the instruction cache,
73 is a selector. Further, 109 is a cache miss signal output from the hit determination circuit 40, and 116 is an initialization signal. Reference numeral 112 is a signal indicating the operating state of the cache control circuit 70, and a cache fill in-progress signal 112a indicating that cache fill is being executed,
It is composed of an invalidation signal 112b indicating that the invalidation of the cache is being executed. The instruction cache control signals 102 to 104 are signals for performing write access to the instruction cache, such as a write address and a read / write signal, and the control signal 24 from the fill control circuit 71.
1 and the result of switching the control signal 241 from the invalidation circuit 72 by the selector 73 are output. The invalidating signal 112b is used for switching the selector. Reference numeral 105 is an address and control signal used when reading an instruction from the main memory.

【0059】フィル制御回路71は、次に実行すべき命
令が命令キャッシュに存在しない場合に、主記憶2から
1ブロック分の命令と、その命令に対応した属性を読み
出す回路である。フィル制御回路71は、キャッシュミ
ス信号109がHレベルになるとフィル動作を開始す
る。フィル動作は、主記憶2から1ブロックの命令及び
属性データを読み込み、命令キャッシュの属性格納部2
0および命令フィールド格納部30へ格納する操作であ
る。この時、命令キャッシュのタグ格納部10の値も更
新する。タグ格納部10の更新は、プログラムカウンタ
中のライン選択部111bで選択されたエントリーの、
アドレスタグ部106aにプログラムカウンタ中のタグ
部111aを、有効ビット106bに1を書き込むこと
で行われる。
The fill control circuit 71 is a circuit for reading an instruction for one block and the attribute corresponding to the instruction from the main memory 2 when the instruction to be executed next does not exist in the instruction cache. The fill control circuit 71 starts the fill operation when the cache miss signal 109 becomes H level. In the fill operation, one block of instruction and attribute data is read from the main memory 2, and the attribute storage unit 2 of the instruction cache is read.
0 and the operation of storing in the instruction field storage unit 30. At this time, the value of the tag storage unit 10 of the instruction cache is also updated. The tag storage unit 10 is updated by the entry selected by the line selection unit 111b in the program counter.
This is done by writing the tag section 111a in the program counter to the address tag section 106a and writing 1 to the valid bit 106b.

【0060】無効化回路72は、電源投入時などに命令
キャッシュの全エントリーを無効化するための回路であ
る。無効化回路72は、無効化するエントリーを指定す
るためのカウンタと、制御信号生成回路から構成されて
いる。カウンタは6ビット幅である。初期化信号116
がHレベルにセットされると、カウンタの値が0から6
3まで変化する。このカウンタ値で選択されるエントリ
の、有効ビット106bに0を書き込んでいくことで、
キャッシュの全エントリーの無効化を行う。無効化処理
実行中は、無効化中信号112bは、Hレベルになる。
The invalidation circuit 72 is a circuit for invalidating all entries in the instruction cache when the power is turned on. The invalidation circuit 72 includes a counter for designating an entry to be invalidated and a control signal generation circuit. The counter is 6 bits wide. Initialization signal 116
Is set to H level, the counter value is 0 to 6
Change up to 3. By writing 0 to the valid bit 106b of the entry selected by this counter value,
Invalidates all cache entries. During the invalidation process, the invalidation signal 112b is at the H level.

【0061】処理装置90は、与えられた命令フィール
ドの内容を解釈して、その内容に従った処理を行う回路
である。本実施例では、プロセッサ1内部には、四つの
処理装置が存在する。ただし、処理装置の数は、これに
限定されるものではない。処理装置90の構成を、処理
装置90aを例に説明する。他の処理装置90b〜dも
同様の構成である。処理装置90aの構成を、図18に
示す。処理装置90aは、命令レジスタ91a、処理実
行部92aから構成されている。命令レジスタ91a
は、処理実行部92aが実行する命令フィールドを格納
するためのレジスタである。命令レジスタ90aの幅
は、命令フィールドの幅と等しく32ビットである。処
理装置90aはクロックに同期して動作する。このた
め、クロックがLレベルからHレベルへ変化したとき
に、処理実行信号110の値によって処理実行部92a
の動作が決定される。このときに、処理実行信号110
がHレベルであれば、処理実行部92aは、命令レジス
タ91aに格納されている命令フィールドによって指定
される処理を実行する。Lレベルであれば、処理実行部
92aは何も実行しない。処理実行部92aの動作内容
については、本発明の本質からはずれるため、ここでは
説明しない。四つの処理実行部92a〜dの構成は同一
でなくてもよい。例えば、ある処理実行部は、整数演算
処理用とし、他の処理実行部は浮動小数点演算処理用と
することも可能である。また、各処理装置は分岐命令を
処理する事が可能である。分岐処理が発生した場合に
は、分岐情報113として、分岐実行信号113aをH
レベルにすると共に、分岐先アドレスを分岐先アドレス
信号113bに出力する。
The processing device 90 is a circuit that interprets the contents of a given command field and performs processing according to the contents. In this embodiment, there are four processing devices inside the processor 1. However, the number of processing devices is not limited to this. The configuration of the processing device 90 will be described by taking the processing device 90a as an example. The other processing devices 90b to 90d have the same configuration. The configuration of the processing device 90a is shown in FIG. The processing device 90a includes an instruction register 91a and a processing execution unit 92a. Instruction register 91a
Is a register for storing an instruction field to be executed by the process execution unit 92a. The width of the instruction register 90a is 32 bits, which is equal to the width of the instruction field. The processing device 90a operates in synchronization with the clock. Therefore, when the clock changes from the L level to the H level, the value of the processing execution signal 110 causes the processing execution unit 92a to change.
Is determined. At this time, the process execution signal 110
Is high, the process execution unit 92a executes the process specified by the instruction field stored in the instruction register 91a. If it is at the L level, the process execution unit 92a does nothing. The operation content of the process execution unit 92a departs from the essence of the present invention and will not be described here. The four process execution units 92a to 92d do not have to have the same configuration. For example, one processing execution unit can be used for integer arithmetic processing, and another processing execution unit can be used for floating point arithmetic processing. Further, each processing device can process a branch instruction. When the branch processing occurs, the branch execution signal 113a is set to H as the branch information 113.
At the same time as setting the level, the branch destination address is output to the branch destination address signal 113b.

【0062】次に、プロセッサ1全体の動作について説
明する。
Next, the operation of the entire processor 1 will be described.

【0063】プロセッサ1が動作を開始する前には、初
期化処理が必要である。初期化は、初期化信号116を
Hレベルに設定することによって開始される。初期化信
号116は電源投入時および、リセットスイッチ97を
押した時に、初期化信号発生回路95によって、Hレベ
ルにセットされる。一定時間後、初期化信号116は自
動的にLレベルに復帰する。
Before the processor 1 starts its operation, initialization processing is necessary. The initialization is started by setting the initialization signal 116 to the H level. The initialization signal 116 is set to the H level by the initialization signal generation circuit 95 when the power is turned on and the reset switch 97 is pressed. After a certain period of time, the initialization signal 116 automatically returns to the L level.

【0064】初期化信号発生回路95の構成例を図19
に示す。この図で、96は抵抗、98はコンデンサ、9
7はリセットスイッチ、99はインバータであり、信号
116は初期化信号である。電源投入時およびリセット
スイッチ97を押した直後は、コンデンサ98には電荷
が蓄えられていないため、コンデンサ98の両端の電位
差は0ボルトである。このため、インバータ99の入力
値はLレベルとなり、初期化信号116はHレベルに設
定される。この後、リセットスイッチ97を放しておく
と、コンデンサ98には、抵抗96を通して電荷が充電
され、両端の電位差が増加する。この結果、インバータ
99の入力電圧は、時間と共に上がっていく。インバー
タ99の入力電圧が、しきい値よりも高くなると、イン
バータ99の出力が反転し、初期化信号116はLレベ
ルになる。図が煩雑になるのを避けるために、図示して
いないが、初期化信号116は原則として、全ての回路
に接続されている。
A configuration example of the initialization signal generation circuit 95 is shown in FIG.
Shown in. In this figure, 96 is a resistor, 98 is a capacitor, and 9
7 is a reset switch, 99 is an inverter, and a signal 116 is an initialization signal. Immediately after the power is turned on and immediately after the reset switch 97 is pressed, no electric charge is stored in the capacitor 98, so that the potential difference across the capacitor 98 is 0 volt. Therefore, the input value of the inverter 99 becomes L level and the initialization signal 116 is set to H level. After that, when the reset switch 97 is released, the capacitor 98 is charged with electric charge through the resistor 96, and the potential difference between both ends increases. As a result, the input voltage of the inverter 99 rises with time. When the input voltage of the inverter 99 becomes higher than the threshold value, the output of the inverter 99 is inverted and the initialization signal 116 becomes L level. Although not shown, the initialization signal 116 is connected to all circuits in principle, in order to avoid complication of the drawing.

【0065】初期化信号116がHレベルになると、プ
ロセッサ1内部のフリップフロップは、あらかじめ定義
されている値に初期化される。この後、初期化処理が開
始される。命令制御系では、初期化処理として命令キャ
ッシュの無効化を行う。無効化処理中は、処理装置90
は停止状態となっている。無効化処理が終了すると、無
効化中信号がLレベルになり、処理装置90は動作を開
始し、あらかじめ決められているアドレスから命令の実
行が開始される。
When the initialization signal 116 goes to H level, the flip-flops inside the processor 1 are initialized to predetermined values. After that, the initialization process is started. The instruction control system invalidates the instruction cache as an initialization process. During the invalidation processing, the processing device 90
Is in a stopped state. When the invalidation process ends, the invalidation signal becomes L level, the processing device 90 starts operating, and the execution of the instruction starts from a predetermined address.

【0066】命令実行時には、命令供給制御回路80が
命令キャッシュ10,20,30に対して、アドレス1
11を出力し、タグ格納部10からタグ情報106、属
性格納部20から属性情報107、命令フィールド格納
部から命令フィールド108を読み出す。読み出された
タグ情報106は、ヒット判定回路40へ入力され、ヒ
ット判定回路40により、命令キャッシュのヒット判定
が行われる。命令キャッシュがヒットしていれば、命令
フィールド108はセレクト回路60によって、処理す
べき処理ユニット90へ分配される。このとき、処理実
行信号110は、Hレベルとなり、処理ユニット90は
与えられた命令フィールドの内容に従った処理を行う。
このとき、プログラムカウンタ81の値も更新され、次
のクロックの立ち上がりに同期して、次の命令の実行が
行われる。
At the time of instruction execution, the instruction supply control circuit 80 addresses the instruction caches 10, 20, 30 with the address 1
11 is output, and the tag information 106 is read from the tag storage unit 10, the attribute information 107 is read from the attribute storage unit 20, and the command field 108 is read from the command field storage unit. The read tag information 106 is input to the hit determination circuit 40, and the hit determination circuit 40 determines the hit of the instruction cache. If the instruction cache is hit, the instruction field 108 is distributed by the select circuit 60 to the processing unit 90 to be processed. At this time, the processing execution signal 110 becomes H level, and the processing unit 90 performs processing according to the contents of the given instruction field.
At this time, the value of the program counter 81 is also updated, and the next instruction is executed in synchronization with the rising edge of the next clock.

【0067】命令キャッシュがミスしていた場合には、
キャッシュ制御回路が1ブロック分の命令フィールドと
属性情報を主記憶2から命令キャッシュへ転送する。転
送中はキャッシュフィル中信号112aがHレベルとな
るため、命令の実行は中断される。転送が終了すると、
命令キャッシュはヒット状態となり、以後は、命令キャ
ッシュヒット時と同様に処理を行う。命令の実行が中断
されている時には、プログラムカウンタ81の内容は更
新されず、直前の値を保持する。
If the instruction cache misses,
The cache control circuit transfers one block of instruction field and attribute information from the main memory 2 to the instruction cache. During the transfer, the cache fill signal 112a is at the H level, so the execution of the instruction is interrupted. When the transfer is complete,
The instruction cache is in a hit state, and thereafter, the processing is performed in the same manner as when the instruction cache is hit. When the execution of the instruction is suspended, the content of the program counter 81 is not updated and the previous value is held.

【0068】[0068]

【発明の効果】本発明を使用したプロセッサでは、命令
フィールドに属性情報を付加し、両者の合計長が1バイ
トの整数倍でない場合でも、各命令フィールドの開始ア
ドレスを、バイト境界に整列させることができ、プログ
ラムカウンタの更新を簡略化する事が可能となる。
In the processor using the present invention, attribute information is added to the instruction field, and even if the total length of both is not an integral multiple of 1 byte, the start address of each instruction field is aligned on a byte boundary. Therefore, the update of the program counter can be simplified.

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

【図1】プロセッサが実行する処理の一例を示した説明
図。
FIG. 1 is an explanatory diagram showing an example of processing executed by a processor.

【図2】圧縮前の命令列の一例を示した説明図。FIG. 2 is an explanatory diagram showing an example of an instruction sequence before compression.

【図3】圧縮後の命令列の一例を示した説明図。FIG. 3 is an explanatory diagram showing an example of an instruction sequence after compression.

【図4】命令空間の構成を示した説明図。FIG. 4 is an explanatory diagram showing the structure of an instruction space.

【図5】ブロックの構成例を示した説明図。FIG. 5 is an explanatory diagram showing a configuration example of a block.

【図6】本発明のプロセッサおよび主記憶のブロック
図。
FIG. 6 is a block diagram of a processor and a main memory according to the present invention.

【図7】命令キャッシュのタグ格納部の説明図。FIG. 7 is an explanatory diagram of a tag storage unit of an instruction cache.

【図8】命令キャッシュの属性格納部のブロック図。FIG. 8 is a block diagram of an attribute storage unit of an instruction cache.

【図9】命令キャッシュの命令フィールド格納部のブロ
ック図。
FIG. 9 is a block diagram of an instruction field storage unit of an instruction cache.

【図10】ヒット判定回路のブロック図。FIG. 10 is a block diagram of a hit determination circuit.

【図11】ヒット判定の方法の例を示したブロック図。FIG. 11 is a block diagram showing an example of a hit determination method.

【図12】属性解析回路の構成例を示したブロック図。FIG. 12 is a block diagram showing a configuration example of an attribute analysis circuit.

【図13】命令長算出回路の動作例を示した説明図。FIG. 13 is an explanatory diagram showing an operation example of an instruction length calculation circuit.

【図14】セレクト回路の構成例を示した説明図。FIG. 14 is an explanatory diagram showing a configuration example of a select circuit.

【図15】命令供給制御回路の構成例を示したブロック
図。
FIG. 15 is a block diagram showing a configuration example of an instruction supply control circuit.

【図16】プログラムカウンタの更新方法の例を示した
フローチャート。
FIG. 16 is a flowchart showing an example of a program counter updating method.

【図17】キャッシュ制御回路のブロック図。FIG. 17 is a block diagram of a cache control circuit.

【図18】処理装置の構成例を示したブロック図。FIG. 18 is a block diagram showing a configuration example of a processing device.

【図19】初期化信号生成回路の構成例を示した説明
図。
FIG. 19 is an explanatory diagram showing a configuration example of an initialization signal generation circuit.

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

810…ブロック、820…属性情報を格納する領域、
830…命令フィールドを格納する領域。
810 ... Block, 820 ... Area for storing attribute information,
830 ... An area for storing an instruction field.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 西岡 清和 神奈川県川崎市麻生区王禅寺1099番地株 式会社 日立製作所 システム開発研究 所内 (72)発明者 野尻 徹 神奈川県川崎市麻生区王禅寺1099番地株 式会社 日立製作所 システム開発研究 所内 (72)発明者 藤川 義文 神奈川県川崎市麻生区王禅寺1099番地株 式会社 日立製作所 システム開発研究 所内 (72)発明者 細木 浩二 神奈川県川崎市麻生区王禅寺1099番地株 式会社 日立製作所 システム開発研究 所内 (56)参考文献 特開 平7−182169(JP,A) 特開 平8−161169(JP,A) 特開 平7−105003(JP,A) 特開 平9−16471(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42 G06F 12/08 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Kiyokazu Nishioka 1099, Ozenji, Aso-ku, Kawasaki-shi, Kanagawa Stock Company, Hitachi, Ltd. System Development Research Institute (72) Toru Nojiri, 1099, Ozen-ji, Aso-ku, Kawasaki, Kanagawa Company Hitachi, Ltd. System Development Laboratory (72) Inventor Yoshifumi Fujikawa 1099, Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Company Hitachi, Ltd. System Development Laboratory (72) Inventor, Koji Hosoki, 1099, Ozenji Temple, Aso-ku, Kawasaki City, Kanagawa Prefecture Company Hitachi Ltd. System Development Laboratory (56) Reference JP-A-7-182169 (JP, A) JP-A-8-161169 (JP, A) JP-A-7-105003 (JP, A) JP-A-9- 16471 (JP, A) (58) Fields surveyed (Int.Cl. 7 , DB name) G06F 9/30-9/42 G06F 12/08

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】与えられた命令の内容に従って処理を実行
する命令処理手段と、実行する命令のアドレスを指示す
るためのポインタを格納するポインタ格納手段と、命令
が格納されている外部の記憶装置から処理手段へ命令を
供給するための命令供給手段と、前記記憶装置から供給
された命令を一時的に格納するための命令格納手段とを
含み、前記記憶装置の連続または近接したアドレス空間に格納
された、複数個の命令によって構成される命令の組と、
前記命令の組に対応し、前記複数個の命令のうちの各命
令を実行すべき前記命令処理手段を指示する情報を含む
属性情報の組とを、連続した転送処理により前記命令格
納手段に取り込み、 前記ポインタの更新時に、更新可能範囲を制限する機構
を設けることで、前記命令の組と属性情報の組のうちで
前記命令の組を実行することを可能としたことを特徴と
するプロセッサ。
1. A process is executed according to the contents of a given instruction.
The instruction processing means to execute and the address of the instruction to be executed
Pointer storing means for storing a pointer for storing, and an instruction
External storedStorage deviceCommand to processing means
An instruction supply means for supplying,Storage deviceSourced from
Command storing means for temporarily storing the stored command.
Including,Store in contiguous or adjacent address space of the storage device
A set of instructions composed of a plurality of instructions,
Each instruction of the plurality of instructions corresponds to the set of instructions.
Including information for instructing the instruction processing means to execute the command
The set of attribute information and
Take it into the payment method, A mechanism for limiting the updatable range when updating the pointer
By providingOf the set of commands and the set of attribute information
The aboveorderSet ofIt is possible to perform
The processor to do.
【請求項2】与えられた命令の内容に従って処理を実行
する命令処理手段と、実行する命令のアドレスを指示す
るためのポインタを格納するポインタ格納手段と、命令
が格納されている外部の記憶装置から処理手段へ命令を
供給するための命令供給手段と、前記記憶装置から供給
された命令を一時的に格納するための命令格納手段とを
含み、前記記憶装置の連続または近接したアドレス空間に格納
された、複数個の命令によって構成される命令の組と、
前記命令の組に対応し、前記複数個の命令のうちの各命
令を実行すべき前記命令処理手段を指示する情報を含む
属性情報の組とを、連続した転送処理により前記命令格
納手段に取り込み、 前記属性情報を用いて、前記複数個の命令のうちの各命
令を実行すべき前記命令処理手段へ与えることにより
並列に処理を実行可能としたことを特徴とするプロセッ
サ。
2. An instruction processing means for executing a process according to the contents of a given instruction, a pointer storage means for storing a pointer for pointing the address of the instruction to be executed, and an external storage device in which the instruction is stored. From an instruction supply unit for supplying an instruction from the storage device to the processing unit, and an instruction storage unit for temporarily storing the instruction supplied from the storage device , and stored in a continuous or adjacent address space of the storage device.
A set of instructions composed of a plurality of instructions,
Each instruction of the plurality of instructions corresponds to the set of instructions.
Including information for instructing the instruction processing means to execute the command
The set of attribute information and
Each command of the plurality of commands is loaded into the storage means and the attribute information is used.
By giving the instruction to the instruction processing means to be executed ,
A processor characterized in that processing can be executed in parallel.
【請求項3】前記命令の組と、前記属性情報の組は共に
固定長である請求項1または2に記載のプロセッサ。
3. The processor according to claim 1, wherein both the instruction set and the attribute information set have a fixed length.
【請求項4】前記命令組に、含まれる命令の数は常に
一定である請求項1または2に記載のプロセッサ。
4. A set of instructions, the processor according to claim 1 or 2 number of instructions is always constant included.
【請求項5】前記記憶装置中の命令のアドレスを指定す
るポインタと、前記命令格納手段中のアドレスを指定す
るポインタは同一のものであり、どちらに格納されてい
る命令をアクセスする場合にも、アドレス変換のための
機構が不要である請求項1または2に記載のプロセッ
サ。
5. A pointer for designating an address of an instruction in the storage device and a pointer for designating an address in the instruction storage means are the same, and the instruction stored in either of them is accessed. 3. The processor according to claim 1, wherein a mechanism for address translation is unnecessary.
【請求項6】命令を格納する命令格納手段と、属性情報
を格納する命令格納手段とを、独立に設け、単一の読み
出しポートしか持たない命令格納手段を用いた場合で
も、命令と属性情報を同時にアクセスする請求項1また
は2に記載のプロセッサ。
6. An instruction and attribute information even if the instruction storing means for storing the instruction and the instruction storing means for storing the attribute information are provided independently and the instruction storing means having only a single read port is used. 3. The processor according to claim 1, wherein the processor and the processor are simultaneously accessed.
JP07583996A 1996-03-29 1996-03-29 Processor Expired - Fee Related JP3424430B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07583996A JP3424430B2 (en) 1996-03-29 1996-03-29 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07583996A JP3424430B2 (en) 1996-03-29 1996-03-29 Processor

Publications (2)

Publication Number Publication Date
JPH09265395A JPH09265395A (en) 1997-10-07
JP3424430B2 true JP3424430B2 (en) 2003-07-07

Family

ID=13587779

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07583996A Expired - Fee Related JP3424430B2 (en) 1996-03-29 1996-03-29 Processor

Country Status (1)

Country Link
JP (1) JP3424430B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW525091B (en) * 2000-10-05 2003-03-21 Koninkl Philips Electronics Nv Retargetable compiling system and method

Also Published As

Publication number Publication date
JPH09265395A (en) 1997-10-07

Similar Documents

Publication Publication Date Title
US4524416A (en) Stack mechanism with the ability to dynamically alter the size of a stack in a data processing system
US5442760A (en) Decoded instruction cache architecture with each instruction field in multiple-instruction cache line directly connected to specific functional unit
US5870576A (en) Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures
US5291586A (en) Hardware implementation of complex data transfer instructions
US6061783A (en) Method and apparatus for manipulation of bit fields directly in a memory source
US4811215A (en) Instruction execution accelerator for a pipelined digital machine with virtual memory
JP3542021B2 (en) Method and apparatus for reducing set associative cache delay by set prediction
US5278961A (en) Physical address to logical address translator for memory management units
JP3598589B2 (en) Processor
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
US5724540A (en) Memory system having a column address counter and a page address counter
KR100346515B1 (en) Temporary pipeline register file for a superpipe lined superscalar processor
US4587632A (en) Lookahead stack oriented computer
US5073891A (en) Method and apparatus for testing memory
US20070214319A1 (en) Microprocessor with integrated high speed memory
JPH09506729A (en) Memory system including local and global caches for storing floating point and integer data
JPH0612327A (en) Data processor having cache memory
JP2006509306A (en) Cell engine for cross-referencing data processing systems to related applications
JPH0814801B2 (en) Programmable access memory
EP0796465A1 (en) Scalar data cache for a vector processor
US6560676B1 (en) Cache memory system having a replace way limitation circuit and a processor
GB2073923A (en) Branching in computer control store
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
AU628458B2 (en) Apparatus and method for address translation of non-aligned double word virtual addresses
KR100373576B1 (en) System and method for invalidating an entry in a translation unit

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080502

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080502

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090502

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100502

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110502

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120502

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees