JP4349392B2 - Processor and program generation device - Google Patents

Processor and program generation device Download PDF

Info

Publication number
JP4349392B2
JP4349392B2 JP2006216894A JP2006216894A JP4349392B2 JP 4349392 B2 JP4349392 B2 JP 4349392B2 JP 2006216894 A JP2006216894 A JP 2006216894A JP 2006216894 A JP2006216894 A JP 2006216894A JP 4349392 B2 JP4349392 B2 JP 4349392B2
Authority
JP
Japan
Prior art keywords
instruction
unit
fetch
instructions
processor
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 - Lifetime
Application number
JP2006216894A
Other languages
Japanese (ja)
Other versions
JP2007004821A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006216894A priority Critical patent/JP4349392B2/en
Publication of JP2007004821A publication Critical patent/JP2007004821A/en
Application granted granted Critical
Publication of JP4349392B2 publication Critical patent/JP4349392B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、命令の解読処理を軽減するプロセッサ、プログラム生成装置および記録媒体に関するものである。   The present invention relates to a processor, a program generation device, and a recording medium that reduce instruction decoding processing.

近年、電子技術及び情報処理技術の発展によりマイクロプロセッサの性能が向上し、あらゆる機器に組み込まれ広く利用されている。その様なプロセッサでは、パイプライン処理により高い性能を達成している。パイプライン処理とは命令の処理を複数に分割し、それらを時間的にずらして別の命令を並列に処理するものである。特に組み込み用途の場合には、コードサイズの増加を抑制する目的で可変命令語長の命令体系を採用する必要があるが、可変命令語長の命令は命令解読が複雑となるために、命令解読を複数のパイプラインに分割して行う事が多い。   In recent years, the development of electronic technology and information processing technology has improved the performance of microprocessors, and they are widely used by being incorporated into various devices. Such processors achieve high performance by pipeline processing. Pipeline processing is to divide an instruction process into a plurality of parts and shift them in time to process other instructions in parallel. Especially for embedded applications, it is necessary to adopt an instruction system with a variable instruction word length in order to suppress an increase in code size. Is often divided into multiple pipelines.

図16は第1の従来技術における命令のフォーマットである。   FIG. 16 shows an instruction format in the first prior art.

従来技術の命令は、21ビットを単位として(以下ユニットと表現する)同図
(a)に示す1ユニットで構成される命令と同図(b)に示す2ユニットで構成される命令の2種類の命令を持ち、2つの命令はそれぞれの命令の先頭の0ビット目の命令フォーマット情報101の値で区別されており、0ビット目が0の時には1ユニット命令を、0ビット目が1の時には2ユニット命令を示す。またこれらの命令は、メモリ上では(c)に示すように、1回のフェッチ幅である64ビットの中に3ユニット入れた形で格納されている。
There are two types of prior art instructions, 21 bits as a unit (hereinafter referred to as a unit) consisting of one unit shown in FIG. 1A and two instructions shown in FIG. The two instructions are distinguished by the value of the instruction format information 101 of the leading 0th bit of each instruction. When the 0th bit is 0, 1 unit instruction, and when the 0th bit is 1, Indicates two unit instructions. In addition, these instructions are stored in the memory in the form of 3 units in 64 bits, which is the fetch width of one time, as shown in (c).

図17は第1の従来技術におけるプロセッサのブロック図である。   FIG. 17 is a block diagram of a processor in the first prior art.

本プロセッサは、サイクル毎に2命令を同時実行するプロセッサであり、分岐先は必ず命令フェッチ単位の先頭であるとする。   This processor is a processor that simultaneously executes two instructions every cycle, and the branch destination is always the head of the instruction fetch unit.

メモリシステム210から供給される命令列321は、命令供給発行部1620に入力される。   The instruction sequence 321 supplied from the memory system 210 is input to the instruction supply issuing unit 1620.

命令供給発行部1620では、固定長命令変換器1622によって可変命令語長命令から解読の容易な固定長命令へ変換される。変換された固定長命令は命令バッファ223によって一時的に蓄えられ、命令解読部230からの要求に従って2命令ずつ命令レジスタ224に供給される。命令レジスタ224に格納された2つの命令は、命令解読部230へ供給される。命令解読部230では、2つの命令解読器233、234が命令を解読する。命令実行部240では、2つの演算器243、244により演算が行われる。   In the instruction supply / issuance unit 1620, the fixed-length instruction converter 1622 converts the variable instruction word-length instruction into a fixed-length instruction that can be easily decoded. The converted fixed-length instruction is temporarily stored in the instruction buffer 223 and supplied to the instruction register 224 by two instructions according to a request from the instruction decoding unit 230. The two instructions stored in the instruction register 224 are supplied to the instruction decoding unit 230. In the instruction decoding unit 230, the two instruction decoders 233 and 234 decode the instruction. In the instruction execution unit 240, operations are performed by the two calculators 243 and 244.

図18は固定長命令変換器1622の詳細図である。   FIG. 18 is a detailed diagram of the fixed length instruction converter 1622.

命令フェッチ状態保存器1631は、通常は前回の命令フェッチと今回の命令フェッチを命令が跨いでいるかどうかの状態を保存している。命令が跨いでいない場合には今回の命令フェッチの先頭と命令の先頭が一致している事を、跨いでいる場合には今回の命令フェッチの先頭は2ユニットで構成される命令の後半1ユニットであることを示している。また、分岐が発生した場合には、命令実行部21内のPC制御部242から命令フェッチ制御部1621経由で命令フェッチ
に同期して命令フェッチ状態保存器1631へ分岐が発生したことが伝えられる。この場合には、命令フェッチ状態保存器1631の値は、命令が跨いでいない状態に初期化され、命令フェッチの先頭が命令の先頭となることを示す。第2先頭検出器322bは命令フェッチ状態保存器1631、および、先頭のユニット321aの先頭ビットの情報から2つ目のユニット321bが命令の先頭かどうかを判断する。同様に、第3先頭検出器322cは第2先頭検出器322b、および、2つ目のユニット321bの先頭ビットの情報から3つ目のユニット321cが命令の先頭かどうかを判断する。最後に次状態発生器1622dは第3先頭検出器322c、および、3つ目のユニット321cの先頭ビットの情報から321cから始まる命令が今回の命令フェッチで終わるかどうかを判断し、結果を命令フェッチ状態保存器1631に保存すると共に、命令フェッチで終わらない場合には一時保存レジスタ323へ3つ目のユニット321cを保存する。
The instruction fetch state storage 1631 normally stores a state as to whether or not an instruction straddles the previous instruction fetch and the current instruction fetch. If the instruction does not straddle, the head of the current instruction fetch matches the head of the instruction. If straddled, the head of the current instruction fetch is the second half of the instruction consisting of two units. It is shown that. When a branch occurs, the PC control unit 242 in the instruction execution unit 21 is informed via the instruction fetch control unit 1621 that the branch has occurred in synchronization with the instruction fetch. In this case, the value of the instruction fetch state storage 1631 is initialized to a state where no instruction is straddled, and indicates that the head of the instruction fetch becomes the head of the instruction. The second head detector 322b determines whether the second unit 321b is the head of the instruction from the instruction fetch state storage 1631 and the information of the head bit of the head unit 321a. Similarly, the third head detector 322c determines whether the third unit 321c is the head of the instruction from the information of the second head detector 322b and the head bit of the second unit 321b. Finally, the next state generator 1622d determines whether or not the instruction starting from 321c ends with the current instruction fetch from the information of the first bit of the third head detector 322c and the third unit 321c and fetches the result to the instruction fetch The third unit 321c is stored in the temporary storage register 323 when it is stored in the state storage 1631 and does not end with the instruction fetch.

MIXa324aは、今回の命令フェッチが命令の途中から始まっていた場合には、一時保存レジスタ323に格納した命令の前半部分と命令の後半部分である321aの値を連結したものを、321aが命令の先頭で1ユニットで終わる命令であった場合には、図4(a)の様に、321aの値と1ユニット分の意味の無いデータを出力したものを、321aが命令の先頭で2ユニットで終わる命令であった場合には、図4(b)の様に、321aの値と321bの値を連結したものを命令バッファ223に出力し、それ以外の場合には何も出力しない。   When the current instruction fetch starts from the middle of the instruction, the MIXa 324a concatenates the value of the first half of the instruction stored in the temporary storage register 323 and the value of the second half of the instruction 321a. If it is an instruction that ends with one unit at the beginning, as shown in FIG. 4 (a), the value 321a and one unit of meaningless data are output. If the instruction is an end instruction, as shown in FIG. 4B, the concatenation of the value of 321a and the value of 321b is output to the instruction buffer 223, otherwise nothing is output.

同様に、MIXb324bは、321bが命令の先頭で1ユニットで終わる命令であった場合には、321bの値と1ユニット分の意味の無いデータを連結したものを、321bが命令の先頭で2ユニットで終わる命令であった場合には、321bの値と321cの値を連結したものを命令バッファ223に出力し、それ以外の場合には何も出力しない。   Similarly, if 321b is an instruction that ends with one unit at the beginning of the instruction, MIXb 324b is obtained by concatenating the value of 321b and one unit of meaningless data, and 321b is the first two instructions at the beginning of the instruction. If the instruction ends with, the concatenation of the value of 321b and the value of 321c is output to the instruction buffer 223, otherwise nothing is output.

同様に、MIXc324cは、321cが命令の先頭で1ユニットで終わる命令であった場合には、321cの値と1ユニット分の意味の無いデータを連結し
たものを命令バッファ223へ出力し、それ以外の場合には何も出力しない。
Similarly, when 321c is an instruction that ends with one unit at the beginning of the instruction, MIXc 324c outputs the result of concatenating the value of 321c and one unit of meaningless data to the instruction buffer 223, and otherwise. In case of, nothing is output.

また、次状態発生器1622dは、今回の命令フェッチと次回の命令フェッチを命令が跨いでいるかどうかの情報を命令フェッチ状態保存器1631に出力するとともに、跨いでいる場合には一時保存レジスタ323に命令の先頭を保存させる。   The next state generator 1622d outputs information indicating whether or not the instruction is straddling the current instruction fetch and the next instruction fetch to the instruction fetch state storage 1631. Save the beginning of the instruction.

固定長命令変換器1622から命令バッファ223へは、最大6ユニットの命令325が供給される。   Up to six units of instructions 325 are supplied from the fixed-length instruction converter 1622 to the instruction buffer 223.

命令列変換器332は、命令バッファ223に毎回供給される最大6ユニットの命令325を、4ユニットずつ、FIFO部333に入力する。   The instruction sequence converter 332 inputs up to six units of the instruction 325 supplied to the instruction buffer 223 every time into the FIFO unit 333 by four units.

FIFO部333は、命令解読部230の要求に従って4ユニットの命令を命令レジスタ224へ出力する。   The FIFO unit 333 outputs four units of instructions to the instruction register 224 in accordance with a request from the instruction decoding unit 230.

この様に、プロセッサの高性能化を図るためには、命令の解読より前の段階で何らかの先行処理を行う必要があるが、組み込み等でよく使われる可変命令語長の命令体系のプロセッサの場合には、命令の先頭位置を決定する必要があり、その為には前回の命令フェッチの状態を保存する命令フェッチ状態保存器1631が必要となり、かつ、その状態は分岐発生時にリセット制御する必要があるなど、ハードウェアが増加したりクリティカルパスが発生するという問題があるだけでなく、制御的にも複雑でバグ発生の要因にも成り得るという問題がある。   As described above, in order to improve the performance of the processor, it is necessary to perform some advance processing before the instruction is decoded. In the case of a processor with a variable instruction word length instruction system often used for embedding etc. In this case, it is necessary to determine the start position of the instruction. For this purpose, an instruction fetch state storage 1631 for storing the state of the previous instruction fetch is required, and that state needs to be reset when a branch occurs. In addition to the problem that the hardware increases and a critical path occurs, there is a problem that it is complicated in terms of control and may cause a bug.

上記課題を解決するために、本発明は、複数のユニットからなる可変長命令を並列実行するプロセッサであって、固定数のユニットをフェッチ単位として命令をフェッチし、前記プロセッサが並列に実行できる数のユニットを実行単位として命令を出力する命令供給発行部と、前記命令供給発行部から出力される命令を解読する命令解読部と、前記命令解読部の解読結果に応じて命令を実行する命令実行部を備え、前記実行単位の境界は前記フェッチ単位の境界と無関係に設定され、かつ、前記フェッチ単位の境界が前記実行単位の境界に一致するか否か及び前記実行単位に含まれる個々の可変長命令の長さとは、前記フェッチ単位に含まれる複数のビットの値に応じて決定されることを特徴といたします。
In order to solve the above-mentioned problem , the present invention is a processor that executes a variable-length instruction consisting of a plurality of units in parallel, fetching an instruction using a fixed number of units as a fetch unit, and the number that the processor can execute in parallel An instruction supply / issuance unit that outputs an instruction using the unit of the instruction as an execution unit, an instruction decoding unit that decodes an instruction output from the instruction supply / issuance unit, and an instruction execution that executes an instruction according to a decoding result of the instruction decoding unit A boundary of the execution unit is set independently of the boundary of the fetch unit, and whether or not the boundary of the fetch unit matches the boundary of the execution unit and each variable included in the execution unit The length of the long instruction is determined according to the values of multiple bits included in the fetch unit.

以上の説明から明らかなように、本発明は、命令中に付加情報を配置し、この情報に基づいて制御することによりプロセッサの構造を簡単にするものである。   As is apparent from the above description, the present invention simplifies the structure of the processor by arranging additional information in an instruction and performing control based on this information.

以下、本発明に係るプロセッサ、プログラム生成装置、及び記録媒体の実施の形態について、図面を用いて詳細に説明する。   Hereinafter, embodiments of a processor, a program generation device, and a recording medium according to the present invention will be described in detail with reference to the drawings.

(第1の実施の形態)
(命令フォーマット)
図1は、本発明の第1の実施の形態におけるプロセッサの命令フォーマットである。
(First embodiment)
(Instruction format)
FIG. 1 shows an instruction format of the processor according to the first embodiment of the present invention.

本プロセッサは、21ビットを単位として(以下ユニットと表現する)、同図(a)に示す1ユニットで構成される命令と同図(b)に示す2ユニットで構成される2種類の命令を持ち、2つの命令はそれぞれの命令の先頭である0ビット目にある命令フォーマット情報ビット101の値で区別されており、0ビット目が0の時には1ユニット命令を、0ビット目が1の時には2ユニット命令を示す。またこれらの命令は、メモリ上では同図(c)、(d)に示すように、1回のフェッチ幅である64ビットの中に3ユニットの命令と、フェッチ単位内の最初のユニットが命令の先頭かどうかを示す命令の先頭情報102を格納したことになっている。   This processor uses 21 bits as a unit (hereinafter referred to as a unit), and includes two types of instructions consisting of one unit shown in FIG. The two instructions are distinguished by the value of the instruction format information bit 101 in the 0th bit at the beginning of each instruction. When the 0th bit is 0, 1 unit instruction is used, and when the 0th bit is 1, Indicates two unit instructions. In addition, as shown in FIGS. 2C and 2D, these instructions are composed of 3 units of instructions in 64 bits, which is a fetch width, and the first unit in the fetch unit is an instruction. The head information 102 of the instruction indicating whether or not the head is stored is stored.

同図(c)の様に命令の先頭情報102が1の時には命令の先頭が最初のユニットに存在することを、同図(d)に示す様に0の時には命令の後半が最初のユニットに存在することを示している。   When the head information 102 of the instruction is 1, the head of the instruction exists in the first unit as shown in FIG. 10C. When the head information 102 is 0, the latter half of the instruction becomes the first unit as shown in FIG. Indicates that it exists.

(プロセッサのハードウェア構成)
図2は本発明の第1の実施の形態におけるプロセッサのブロック図である。
(Processor hardware configuration)
FIG. 2 is a block diagram of the processor according to the first embodiment of this invention.

本プロセッサは、2命令が同時実行可能なプロセッサであり、分岐先は必ず命令フェッチ単位の先頭であるとする。   This processor is a processor that can execute two instructions at the same time, and the branch destination is always the head of the instruction fetch unit.

210は命令列を格納しているメモリシステム、220は命令フェッチから固定長命令への変換までを担当する命令供給発行部、221は命令フェッチを制御する命令フェッチ制御部、222は命令フェッチした可変長命令を固定長命令に変換する固定長命令変換器、223は固定長命令をバッファリングする命令バッファ、224は解読する命令を格納する命令レジスタ、230は命令解読全般を行う命令解読部、231は命令解読を制御する命令発行制御部、232は命令を解読する命令解読器、233は命令を解読する第1命令解読器、234は命令を解読する第2命令解読器、240は解読結果に従って命令を実行する命令実行部、241は命令実行を制御する命令実行制御部、242は分岐関係を担当するPC制御部、243は第1演算器、244は第2演算器、245はレジスタを格納するレジスタファイルである。   210 is a memory system that stores an instruction sequence, 220 is an instruction supply issuer in charge of instruction fetching to conversion to a fixed-length instruction, 221 is an instruction fetch control unit that controls instruction fetching, and 222 is a variable that fetches an instruction. Fixed-length instruction converter for converting long instructions into fixed-length instructions, 223 is an instruction buffer for buffering fixed-length instructions, 224 is an instruction register for storing instructions to be decoded, 230 is an instruction decoding unit for performing general instruction decoding, 231 Is an instruction issue controller for controlling instruction decoding, 232 is an instruction decoder for decoding instructions, 233 is a first instruction decoder for decoding instructions, 234 is a second instruction decoder for decoding instructions, and 240 is according to the decoding result An instruction execution unit that executes instructions, 241 is an instruction execution control unit that controls instruction execution, 242 is a PC control unit that takes charge of a branching relationship, 243 is a first Calculator, 244 the second operating unit, 245 is a register file that stores the register.

図3は、命令供給発行部220の詳細ブロック図である。   FIG. 3 is a detailed block diagram of the instruction supply issue unit 220.

321はメモリシステムから供給される64ビットの命令フェッチデータ、321aは命令フェッチデータ321中の1つ目のユニットのデータ、321bは命令フェッチデータ321中の2つ目のユニットのデータ、321cは命令フェッチデータ321中の3つ目のユニットのデータ、321dは命令フェッチデータ321中の命令の位置情報ビット、322bは2つ目のユニットのデータ321bが命令の先頭かどうかを判断する第2先頭検出器、322cは3つ目のユニ
ットのデータ321cが命令の先頭かどうかを判断する第3先頭検出器、322dは次の命令フェッチの1つ目のユニットのデータ321aが命令の先頭かどうかを判断する次状態発生器、323は今回の命令フェッチ内にある命令の後半が次回の命令フェッチに存在する場合に命令の前半を格納する一時保存レジスタ、324aは1つ目のユニットが末尾、あるいは、先頭の時に2ユニットの固定長命令325aを出力するMIXa、324bは2つ目のユニットが先頭の時に2ユニットの固定長命令325bを出力するMIXb、324cは3つ目のユニットが1ユニット命令の先頭の時に2ユニットの固定長命令325cを出力するMIXc、331は命令バッファを制御する命令バッファ制御部、332は固定長命令変換器222の出力する6ユニットの命令を2ユニット命令の連続に変換する命令列変換器、333は命令をためるFIFOである。
321 is 64-bit instruction fetch data supplied from the memory system, 321a is data of the first unit in the instruction fetch data 321, 321b is data of the second unit in the instruction fetch data 321, and 321c is an instruction. The data of the third unit in the fetch data 321, 321 d is the position information bit of the instruction in the instruction fetch data 321, and 322 b is the second head detection for determining whether the data 321 b of the second unit is the head of the instruction 322c is a third head detector for determining whether the data 321c of the third unit is the head of the instruction, and 322d is for determining whether the data 321a of the first unit of the next instruction fetch is the head of the instruction. The next state generator 323, the second half of the instruction in the current instruction fetch is the next instruction fetch If there is a temporary storage register that stores the first half of the instruction, 324a outputs the first unit at the end or MIXa that outputs two units of fixed-length instruction 325a at the beginning, 324b starts the second unit MIXb and 324c that output two units of fixed-length instruction 325b at the time of MIXc and 331 that output two units of fixed-length instruction 325c when the third unit is the head of one unit instruction, an instruction buffer that controls the instruction buffer The control unit 332 is an instruction string converter that converts 6 units of instructions output from the fixed-length instruction converter 222 into a sequence of 2 unit instructions, and 333 is a FIFO that accumulates instructions.

以上の様に構成された本発明の第1の実施の形態のプロセッサについて、以下、その動作を説明する。   The operation of the processor according to the first embodiment of the present invention configured as described above will be described below.

メモリシステム210から供給される命令列321は、命令供給発行部220に入力される。命令供給発行部内では、固定長命令変換器222によって可変長命令から解読の容易な固定長命令へ変換される。変換された固定長命令は命令バッファ223によって一時的に蓄えられ、命令解読部230からの要求に従って2命令ずつ命令レジスタ224に供給される。命令レジスタ224に格納された2つの命令列は、命令解読部230へ供給される。命令解読部230では、2つの命令解読器233、234が命令を解読する。命令実行部240では、2つの演算器243、244により演算が行われる。   The instruction sequence 321 supplied from the memory system 210 is input to the instruction supply issuing unit 220. In the instruction supply / issuance unit, the fixed-length instruction converter 222 converts the variable-length instruction into a fixed-length instruction that can be easily decoded. The converted fixed-length instruction is temporarily stored in the instruction buffer 223 and supplied to the instruction register 224 by two instructions according to a request from the instruction decoding unit 230. The two instruction sequences stored in the instruction register 224 are supplied to the instruction decoding unit 230. In the instruction decoding unit 230, the two instruction decoders 233 and 234 decode the instruction. In the instruction execution unit 240, operations are performed by the two calculators 243 and 244.

(固定長命令変換器の詳細な構成)
以下に固定長命令への変換器の詳細を述べる。
(Detailed configuration of fixed-length instruction converter)
Details of the converter to fixed-length instructions are described below.

命令フェッチデータ321中の命令位置情報ビット321dは、前回の命令フェッチと今回の命令フェッチで命令が跨いでいたかどうかの状態を保存している
。命令が跨いでいない場合には今回の命令フェッチの先頭と命令の先頭が一致している事を、跨いでいる場合には今回の命令フェッチの先頭は2ユニットで構成される命令の後半1ユニットであることを示している。
The instruction position information bit 321d in the instruction fetch data 321 stores a state as to whether or not an instruction has straddled between the previous instruction fetch and the current instruction fetch. If the instruction does not straddle, the head of the current instruction fetch matches the head of the instruction. If straddled, the head of the current instruction fetch is the second half of the instruction consisting of two units. It is shown that.

第2先頭検出器322bは命令フェッチデータ321中の命令位置情報ビット321d、および、先頭のユニット321aの先頭ビットの情報から2つ目のユニット321bが命令の先頭かどうかを判断する。   The second head detector 322b determines whether the second unit 321b is the head of the instruction from the instruction position information bit 321d in the instruction fetch data 321 and the information of the head bit of the head unit 321a.

同様に、第3先頭検出器322cは第2先頭検出器322b、および、2つ目のユニット321bの先頭ビットの情報から3つ目のユニット321cが命令の先頭かどうかを判断する。最後に次状態発生器322dは第3先頭検出器322c、および、3つ目のユニット321cの先頭ビットの情報から321cから始まる命令が今回の命令フェッチで終わるかどうかを判断し、命令フェッチで終わらない場合には一時保存レジスタ323へ3つ目のユニット321cを保存する。   Similarly, the third head detector 322c determines whether the third unit 321c is the head of the instruction from the information of the second head detector 322b and the head bit of the second unit 321b. Finally, the next state generator 322d determines whether the instruction starting from 321c ends with the current instruction fetch from the third head detector 322c and the information of the first bit of the third unit 321c, and ends with the instruction fetch. If not, the third unit 321 c is stored in the temporary storage register 323.

MIXa324aは、今回の命令フェッチが命令の途中から始まっていた場合には、一時保存レジスタ323に格納した命令の前半部分と命令の後半部分である321aの値を連結したものを、321aが命令の先頭で1ユニットで終わる命令であった場合には、図4(a)の様に、321aの値と1ユニット分の意味の無いデータを連結したものを、321aが命令の先頭で2ユニットで終わる命令であった場合には、図4(b)の様に、321aの値と321bの値を連結したものを命令バッファ223に出力し、それ以外の場合には何も出力しない。   When the current instruction fetch starts from the middle of the instruction, the MIXa 324a concatenates the value of the first half of the instruction stored in the temporary storage register 323 and the value of the second half of the instruction 321a. If it is an instruction that ends with one unit at the beginning, as shown in FIG. 4 (a), the 321a value is linked with meaningless data for one unit, and 321a is two units at the beginning of the instruction. If the instruction is an end instruction, as shown in FIG. 4B, the concatenation of the value of 321a and the value of 321b is output to the instruction buffer 223, otherwise nothing is output.

同様に、MIXb324bは、321bが命令の先頭で1ユニットで終わる命令であった場合には、321bの値と1ユニット分の意味の無いデータを連結したものを、321bが命令の先頭で2ユニットで終わる命令であった場合には、321bの値と321cの値を連結したものを命令バッファへ223に出力し、それ以外の場合には何も出力しない。   Similarly, if 321b is an instruction that ends with one unit at the beginning of the instruction, MIXb 324b is obtained by concatenating the value of 321b and one unit of meaningless data, and 321b is the first unit of the instruction with two units. If the instruction ends with, the concatenation of the value of 321b and the value of 321c is output to the instruction buffer 223, otherwise nothing is output.

同様に、MIXc324cは、321cが命令の先頭で1ユニットで終わる命令であった場合には、321cの値と1ユニット分の意味の無いデータを連結したものを命令バッファ223へ出力し、それ以外の場合には何も出力しない。   Similarly, when 321c is an instruction that ends with one unit at the beginning of the instruction, MIXc 324c outputs the result of concatenating the value of 321c and one unit of meaningless data to the instruction buffer 223, and otherwise. In case of, nothing is output.

(命令列変換器、FIFOの詳細な構成)
図7は命令列変換器の動作を説明する表である。
(Detailed configuration of instruction sequence converter and FIFO)
FIG. 7 is a table for explaining the operation of the instruction sequence converter.

命令列変換器332内部には常時0ユニット、あるいは、2ユニットの命令列が存在している。   There are always 0 units or 2 units of instruction sequence in the instruction sequence converter 332.

命令列変換器332は、固定長命令変換器から2ユニット、あるいは4ユニット、あるいは6ユニットの命令を受け取る。   The instruction string converter 332 receives 2-unit, 4-unit, or 6-unit instructions from the fixed-length instruction converter.

命令を受け取った結果、4ユニット以上の命令が用意された時には命令列変換器332は、FIFO333へ4ユニットの命令を出力する。4ユニット未満の命令が存在する時には、FIFO333へは出力せずに命令列変換器332に保存する。   As a result of receiving the instruction, when four or more units of instructions are prepared, the instruction sequence converter 332 outputs four units of instructions to the FIFO 333. When there are instructions of less than 4 units, they are not output to the FIFO 333 but are stored in the instruction sequence converter 332.

FIFO333は、内部に用意された命令を、命令解読部230からの要求に従って4ユニットずつ命令レジスタ224へ出力する。   The FIFO 333 outputs instructions prepared therein to the instruction register 224 in units of four according to a request from the instruction decoding unit 230.

(プロセッサの動作)
次に具体的な命令を解読実行した場合の本プロセッサの動作について説明する。
(Processor operation)
Next, the operation of this processor when a specific instruction is decoded and executed will be described.

図5(c)は本発明の第1の実施の形態におけるプログラムの例である。   FIG. 5C shows an example of a program in the first embodiment of the present invention.

本プログラム例では、0x1000番地(”0x”は16進数を表す。以下同様。)から1ユニットで構成されたadd r0,r1命令、2ユニットで構成
されたadd 0x1234,r2命令、add 0x2345,r3命令、sub 0x3456,r4命令、1ユニットで構成されたnop命令、cmp r1,r2命令、sub r3,r4命令、sub r5,r6命令、sub r6,r7命令が続くとする。この命令列中で、0x1004番地の命令フェッチは次の命令フェッチに命令が続いているので、命令の位置情報ビット102は0に、それ以外は1になる(本来、バイナリの機械語命令だが、ここではニモニック表記している)。
In this program example, from the address 0x1000 ("0x" represents a hexadecimal number, the same applies hereinafter), add r0, r1 instructions composed of one unit, add 0x1234, r2 instructions composed of two units, add 0x2345, r3 It is assumed that the instruction, sub 0x3456, r4 instruction, nop instruction composed of one unit, cmp r1, r2 instruction, sub r3, r4 instruction, sub r5, r6 instruction, sub r6, r7 instruction follow. In this instruction sequence, the instruction fetch at address 0x1004 is the instruction following the next instruction fetch, so the instruction position information bit 102 is 0, and the others are 1 (originally a binary machine language instruction, Here, mnemonic notation).

0x1000番地への分岐命令を検出すると、命令実行制御部241はPC制御部242に分岐の指令を出力する。PC制御部242は命令フェッチ制御部221へ分岐命令を出力し、IAバス211へ分岐アドレスを出力する。メモリシステム210はIAバス211に対応した命令列64ビットをIDバス212へ出力し、命令供給発行部220内の固定長命令変換器222が受け取る。   When a branch instruction to address 0x1000 is detected, the instruction execution control unit 241 outputs a branch instruction to the PC control unit 242. The PC control unit 242 outputs a branch instruction to the instruction fetch control unit 221 and outputs a branch address to the IA bus 211. The memory system 210 outputs a 64-bit instruction sequence corresponding to the IA bus 211 to the ID bus 212, which is received by the fixed-length instruction converter 222 in the instruction supply issue unit 220.

固定長命令変換器222では、まず、命令フェッチデータ中の命令の先頭情報ビット102が1であることから、1つ目のユニットのデータ321aが命令の先頭であることがわかる。また、第2先頭検出器322bでは、321aが命令の先頭であることと、1つ目のユニット321aの先頭ビットが0であることから、2つ目のユニットも命令の先頭であることがわかる。同じ様にして、第3先頭検出器322cでは、321bが命令の先頭であることと、2つ目のユニット321bの先頭ビットが1であることから、3つ目のユニットは2つ目のユニットを先頭とする命令の後半である事がわかる。最後に、次状態発生器322dでは、321cが命令の末尾である事から3つ目のユニット321cの先頭ビットを見るまでもなく、3つ目のユニットで命令が終っている事が分かるので、一時保存レジスタ323には3つ目のユニットのデータ321cを保存する必要はない事がわかる。   In the fixed length instruction converter 222, first, since the head information bit 102 of the instruction in the instruction fetch data is 1, it can be seen that the data 321a of the first unit is the head of the instruction. Further, in the second head detector 322b, it can be seen that the second unit is also the head of the instruction because 321a is the head of the instruction and the head bit of the first unit 321a is 0. . Similarly, in the third head detector 322c, the third unit is the second unit because 321b is the head of the instruction and the first bit of the second unit 321b is 1. You can see that it is the second half of the instruction starting with. Finally, in the next state generator 322d, it can be seen that the instruction is finished in the third unit without seeing the first bit of the third unit 321c since 321c is the end of the instruction. It can be seen that the temporary storage register 323 does not need to store the data 321c of the third unit.

また、MIXa324aは、1つ目のユニットのデータ321aが命令の先頭であり、かつ1ユニット命令である事から、命令データ321aと意味の無いデ
ータ21ビットを連結したものを命令バッファ223に出力する。同様に、MIXb324bは、2つ目のデータ321bが命令の先頭であり、2ユニット命令の先頭であることから、命令データ321bと321cを連結したものを命令バッファ223へ出力する。同様にMIXc324cは、3つ目のデータ321cが2ユニット命令の後半である事から、何も出力しない。
Further, since the data 321a of the first unit is the head of the instruction and is a unit instruction, the MIXa 324a outputs the instruction data 321a and the meaningless data 21 bits concatenated to the instruction buffer 223. . Similarly, the MIXb 324b outputs the concatenated instruction data 321b and 321c to the instruction buffer 223 because the second data 321b is the head of the instruction and the head of the two unit instruction. Similarly, the MIXc 324c outputs nothing because the third data 321c is the second half of the 2-unit instruction.

これにより、0x1000番地の命令フェッチにより命令バッファへは、図6(a1)及び図6(b1)及び図6(c1)の様に4ユニットの命令が命令バッファ223に出力される。   As a result, instructions of 4 units are output to the instruction buffer 223 as shown in FIGS. 6 (a1), 6 (b1) and 6 (c1) by instruction fetch at address 0x1000.

次に、0x1004番地の命令フェッチを行う。   Next, instruction fetch at address 0x1004 is performed.

同様の処理を行うことによって、MIXa324aは、2ユニット命令の先頭であるので、1つ目のユニットのデータ321aと2つ目のユニットのデータ321bを連結して命令バッファ223へ出力する。MIXb324bは、2ユニット命令の後半であるので、何も出力しない。MIXc324cは、2ユニット命令の前半であるので、何も出力しない。次状態発生器322dは、321cが次命令の前半であるので、321cのデータを一時保存レジスタ323へ保存する。   By performing the same processing, since MIXa 324a is the head of the two unit instruction, the data 321a of the first unit and the data 321b of the second unit are connected and output to the instruction buffer 223. Since MIXb 324b is the second half of the 2-unit instruction, nothing is output. Since MIXc 324c is the first half of a two-unit instruction, nothing is output. The next state generator 322d stores the data of 321c in the temporary storage register 323 because 321c is the first half of the next instruction.

これによって、0x1004番地の命令フェッチにより命令バッファへは、図6(a2)及び図6(b2)及び図6(c2)の様に2ユニットの命令が命令バッファ223に出力される。   Thus, two units of instructions are output to the instruction buffer 223 as shown in FIGS. 6 (a2), 6 (b2), and 6 (c2) by the instruction fetch at address 0x1004.

次に、0x1008番地の命令フェッチを行う。   Next, instruction fetch at address 0x1008 is performed.

同様の処理を行うことによって、MIXa324aは、2ユニット命令の後半であるので、一時保存レジスタ323に保存した前半の命令と1つ目のユニットのデータ321aを連結して命令バッファ223へ出力する。MIXb324bは、1ユニット命令なので、2ユニット目のデータ321bと21ビットの意味のないデータを連結して命令バッファ223へ出力する。MIXc324cは、
3つ目のユニットが1ユニット命令であるので、3ユニット目のデータ321cと21ビットの意味のないデータを連結して命令バッファ223へ出力する。
By performing the same processing, since MIXa 324a is the second half of the two unit instruction, the first half instruction stored in the temporary storage register 323 and the data 321a of the first unit are connected and output to the instruction buffer 223. Since MIXb 324b is a one-unit instruction, data 321b of the second unit and 21-bit meaningless data are concatenated and output to the instruction buffer 223. MIXc324c
Since the third unit is a one-unit instruction, the data 321c of the third unit and 21-bit meaningless data are concatenated and output to the instruction buffer 223.

これによって、0x1008番地の命令フェッチにより命令バッファへは、図6(a3)及び図6(b3)及び図6(c3)の様に6ユニットの命令が命令バッファ223に出力される。   As a result, 6 units of instructions are output to the instruction buffer 223 as shown in FIGS. 6 (a3), 6 (b3), and 6 (c3) by the instruction fetch at address 0x1008.

同様の処理によって、0x100c番地の命令フェッチにより命令バッファへは、図6(a4)及び図6(b4)及び図6(c4)の様に6ユニットの命令が命令バッファ223に出力される。   By the same processing, six units of instructions are output to the instruction buffer 223 as shown in FIGS. 6 (a4), 6 (b4), and 6 (c4) by instruction fetch at address 0x100c.

命令解読部230では、固定長命令変換器222によって固定長命令に変換された命令を命令バッファ223や命令レジスタ224を経由して2命令ずつ解読を行う。   The instruction decoding unit 230 decodes the instruction converted into the fixed length instruction by the fixed length instruction converter 222 by two instructions via the instruction buffer 223 and the instruction register 224.

(プログラム生成装置の構成)
図14は本発明の第1の実施の形態におけるプログラム生成装置のブロック図である。
(Configuration of program generator)
FIG. 14 is a block diagram of the program generation apparatus according to the first embodiment of the present invention.

1410は命令の位置情報を付加する前のソースプログラム格納手段、1420は3ユニット毎のグループに分ける命令抽出手段、1430は命令がグループを跨いでいるかどうかを判別する先頭位置情報生成手段、1440はグループ化された命令列と先頭位置情報を合成する命令列生成手段、1450は生成した命令列を格納する命令列格納手段である。   1410 is a source program storage means before adding position information of an instruction, 1420 is an instruction extracting means for dividing the unit into groups of 3 units, 1430 is a head position information generating means for determining whether or not the instruction is across groups, and 1440 is An instruction sequence generation unit 1450 for combining the grouped instruction sequence and the head position information, and 1450 is an instruction sequence storage unit for storing the generated instruction sequence.

以上の様に構成された本発明の第1の実施の形態のプログラム生成装置について、以下、その動作を説明する。   The operation of the program generating apparatus according to the first embodiment of the present invention configured as described above will be described below.

ソースプログラム格納手段1410には、1ユニットあるいは、2ユニットで
構成されるソースプログラムが格納されている。命令抽出手段1420は、ソースプログラムをソースプログラム格納手段1410から取得し、それぞれ3ユニットで構成されるグループに分割する。先頭位置情報生成手段1430は、命令抽出手段1420が出力するグループに分割された命令を取得し、グループの先頭が命令の先頭と一致しているかどうかを判断し、一致している場合には1を、一致していないときには0の値を出力する。命令列生成手段1440は命令抽出手段1420の出力と先頭位置情報生成手段1430の出力を合成して位置情報を付加した命令列を出力する。
The source program storage unit 1410 stores a source program composed of one unit or two units. The instruction extraction unit 1420 acquires the source program from the source program storage unit 1410 and divides it into groups each composed of three units. The head position information generation means 1430 acquires the instructions divided into groups output by the instruction extraction means 1420, determines whether the head of the group matches the head of the instruction, and if they match, 1 If the values do not match, 0 is output. The instruction sequence generation unit 1440 combines the output of the instruction extraction unit 1420 and the output of the head position information generation unit 1430 and outputs an instruction sequence to which position information is added.

(プログラム生成装置の動作)
次に具体的な命令を解読実行した場合の本命令列生成装置の動作について説明する。
(Operation of program generator)
Next, the operation of this instruction sequence generation apparatus when a specific instruction is decoded and executed will be described.

図5(a)および(b)は本発明の第1の実施の形態におけるプログラム生成装置の入力プログラムと出力されるプログラムの例である。   FIGS. 5A and 5B are examples of an input program and an output program of the program generation device according to the first embodiment of the present invention.

ソースプログラム格納手段1410には、同図(a)に示す、1ユニットで構成されたadd r0,r1命令、2ユニットで構成されたadd 0x1234,r2命令、add 0x12345,r3命令、sub 0x3456,r4命令、1ユニットで構成されたnop命令、cmp r1,r2命令、sub
r3,r4命令と、sub r5,r6命令、sub r6,r7命令が格納されている。
The source program storage means 1410 includes an add r0, r1 instruction composed of one unit, an add 0x1234, r2 instruction composed of two units, an add 0x12345, r3 instruction, sub 0x3456, r4 shown in FIG. Instruction, nop instruction composed of one unit, cmp r1, r2 instruction, sub
r3 and r4 instructions, sub r5 and r6 instructions, and sub r6 and r7 instructions are stored.

命令抽出手段1420は、ソースプログラム格納手段1410に格納されたソースプログラムから図5(b1)の様に3ユニットの命令add r0,r1命令と2ユニットで構成されたadd 0x1234,r2命令を抽出し、先頭位置情報生成手段1430及び命令列生成手段1440に出力する。   The instruction extracting means 1420 extracts three units of add r0 and r1 instructions and an add 0x1234 and r2 instructions composed of two units from the source program stored in the source program storage means 1410 as shown in FIG. 5 (b1). And output to the head position information generating means 1430 and the instruction sequence generating means 1440.

先頭位置情報生成手段1430では、命令抽出手段1420から3ユニットの
命令を受け取ると、その先頭のユニットが命令の先頭であるかどうかを判断する。add r0,r1命令は命令の先頭であるので1を出力する。
When the head position information generating means 1430 receives three units of instructions from the instruction extracting means 1420, it determines whether or not the head unit is the head of the instruction. Since the add r0, r1 instruction is the head of the instruction, 1 is output.

命令列生成手段1440は、命令抽出手段1420が出力する3ユニットの命令及び先頭位置情報生成手段1430が出力する1ビットの値1を合成して、64ビットの命令列を出力する。   The instruction sequence generation unit 1440 combines the 3 units of instructions output from the instruction extraction unit 1420 and the 1-bit value 1 output from the head position information generation unit 1430, and outputs a 64-bit instruction sequence.

次に、同様にして、命令抽出手段1420は、図5(b2)の様にadd 0x2345,r3命令と、sub 0x3456,r4命令の前半の3ユニットを出力し、先頭のユニットはadd 0x2345,r3命令命令の先頭であるので、先頭位置情報生成手段1430は1を出力する。   Next, similarly, the instruction extraction means 1420 outputs the add 0x2345, r3 instruction and the first three units of the sub 0x3456, r4 instruction as shown in FIG. 5 (b2), and the leading unit is add 0x2345, r3. Since it is the head of the instruction command, the head position information generating means 1430 outputs 1.

次に、同様にして、命令抽出手段1420は、図5(b3)の様にsub 0x3456,r4命令の後半と、1ユニットで構成されたnop命令の3ユニットを出力し、先頭のユニットはsub 0x3456,r4命令の後半であるので、先頭位置情報生成手段1430は0を出力する。   Next, in the same manner, the instruction extraction unit 1420 outputs the second unit of the sub 0x3456, r4 instruction and three units of the nop instruction composed of one unit as shown in FIG. 5B3, and the first unit is the sub unit. Since it is the latter half of the 0x3456, r4 instruction, the head position information generating unit 1430 outputs 0.

以上の処理を繰り返すことによって、命令列生成手段1440は命令位置情報を付加した命令列を出力する。   By repeating the above processing, the instruction sequence generator 1440 outputs an instruction sequence to which instruction position information is added.

図5(c)は、図5(b)の命令列に命令位置情報を付加した命令列である。   FIG. 5C is an instruction sequence in which instruction position information is added to the instruction sequence of FIG.

(第2の実施の形態)
(命令フォーマット)
図8は、本発明の第2の実施の形態におけるプロセッサの命令フォーマットである。
(Second Embodiment)
(Instruction format)
FIG. 8 shows an instruction format of the processor in the second embodiment of the present invention.

本プロセッサは、2つの命令セットを有している。   The processor has two instruction sets.

同図(a)は21ビット固定長命令で構成される第1の命令セットであり、同図(b)は63ビット固定長命令で構成される第2の命令セットである。   FIG. 2A shows a first instruction set composed of 21-bit fixed length instructions, and FIG. 2B shows a second instruction set composed of 63-bit fixed length instructions.

2つの命令セットは、64ビットの命令フェッチ毎単位内に存在する命令セット選択情報で選択される。   The two instruction sets are selected by instruction set selection information existing within a 64-bit instruction fetch unit.

同図(c)は、1ビットの命令セット選択情報FMが0の場合の、3個の第1の命令セットで構成される3命令列であり、同図(d)は、1ビットの命令セット選択ビットFMが1の場合の、1個の第2の命令セットで構成される命令列である。   FIG. 5C shows a 3-instruction sequence composed of three first instruction sets when the 1-bit instruction set selection information FM is 0. FIG. 10D shows a 1-bit instruction. When the set selection bit FM is 1, it is an instruction sequence composed of one second instruction set.

図9は、本発明の第2の実施の形態におけるプロセッサの構成図である。   FIG. 9 is a configuration diagram of the processor according to the second embodiment of the present invention.

910は命令列を格納しているメモリシステム、920は命令フェッチした命令を命令レジスタに格納する命令供給発行部、921は命令フェッチを制御する命令フェッチ制御部、924は解読する命令を格納する命令レジスタ、930は命令解読全般を行う命令解読部、931は命令解読を制御する命令発行制御部、932は命令を解読する命令解読器、933aは21ビットの命令3つで構成される命令列を解読する第1命令解読器、933bは63ビットの命令1つで構成される命令列を解読する第2命令解読器、935はいずれかの命令解読器の解読結果を選択するMUX、936は命令セットを決定する命令セット選択器、940は解読結果に従って命令を実行する命令実行部、941は命令実行を制御する命令実行制御部、942は分岐関係を担当するPC制御部、943は演算器、945はレジスタを格納するレジスタファイルである。   910 is a memory system that stores an instruction sequence, 920 is an instruction supply issue unit that stores an instruction fetched instruction in an instruction register, 921 is an instruction fetch control unit that controls instruction fetch, and 924 is an instruction that stores an instruction to be decoded Register, 930 is an instruction decoding unit for general instruction decoding, 931 is an instruction issue control unit for controlling instruction decoding, 932 is an instruction decoder for decoding instructions, and 933a is an instruction sequence composed of three 21-bit instructions. First instruction decoder for decoding, 933b is a second instruction decoder for decoding an instruction sequence composed of one 63-bit instruction, 935 is a MUX for selecting a decoding result of one of the instruction decoders, and 936 is an instruction An instruction set selector for determining a set; 940, an instruction execution unit for executing an instruction according to the result of decoding; 941, an instruction execution control unit for controlling instruction execution; PC control unit in charge of branch relationship 943 calculator, 945 is a register file that stores the register.

以上の様に構成された本発明の第2の実施の形態のプロセッサについて、以下、その動作を説明する。   The operation of the processor according to the second embodiment of the present invention configured as described above will be described below.

メモリシステム910から供給される命令列は、命令供給発行部920に入力される。命令供給発行部内では、命令解読部930からの要求に従って64ビットずつ命令レジスタ924に供給される。命令レジスタ924に格納された命令列は、命令解読部930へ供給される。命令解読部930では、64ビットの命
令を2種類の命令列として、第1命令解読器933aと第2命令解読器933bによって解読を行う。命令セット選択器936は2つの解読結果のうちどちらかを決定し、その情報によりMUX935は2つの解読結果のうちの1つを選択する。命令実行部940では、演算器943により演算が行われる。
The instruction sequence supplied from the memory system 910 is input to the instruction supply issuing unit 920. In the instruction supply / issuance unit, 64 bits are supplied to the instruction register 924 in accordance with a request from the instruction decoding unit 930. The instruction sequence stored in the instruction register 924 is supplied to the instruction decoding unit 930. In the instruction decoding unit 930, the first instruction decoder 933a and the second instruction decoder 933b decode the 64-bit instruction as two types of instruction sequences. The instruction set selector 936 determines which of the two decoding results, and based on the information, the MUX 935 selects one of the two decoding results. In the instruction execution unit 940, calculation is performed by the calculator 943.

(命令解読器の詳細な構成)
以下に命令解読器の詳細を述べる。
(Detailed configuration of instruction decoder)
Details of the instruction decoder are described below.

命令供給発行部920から供給された64ビットの命令列は、第1命令解読器933a及び第2命令解読器933bによって解読される。   The 64-bit instruction sequence supplied from the instruction supply issue unit 920 is decoded by the first instruction decoder 933a and the second instruction decoder 933b.

第1命令解読器933aでは、64ビットの命令列の内の最初の21ビットを解読しマイクロ命令934aを出力する。   The first instruction decoder 933a decodes the first 21 bits of the 64-bit instruction sequence and outputs a microinstruction 934a.

第2命令解読器933bでは、64ビットの命令列の内の63ビットを解読しマイクロ命令934bを出力する。   The second instruction decoder 933b decodes 63 bits in the 64-bit instruction sequence and outputs a microinstruction 934b.

命令セット選択器936では、64ビットの命令列の内の1ビットの命令セット選択情報を用いて命令セットの選択を行う。命令セット選択情報が0の時には、現在命令レジスタ924に格納されている命令は第1の命令セットの命令3つで構成されていることを、命令セット選択情報が1の時には、現在命令レジスタ924に格納されている命令は第2の命令セットの命令1つで構成されていることを示す。MUX935は、命令セット選択器936が選択した命令セット情報を用いて、第1命令解読器933aの出力するマイクロ命令934aあるいは、第2命令解読器933bの出力するマイクロ命令934bのどちらかを選択する。これによって命令解読器932は、命令レジスタ924に格納された命令列を正しい命令として解読し、命令実行部940へ演算命令を発行する。   The instruction set selector 936 selects an instruction set using 1-bit instruction set selection information in a 64-bit instruction sequence. When the instruction set selection information is 0, the instruction stored in the current instruction register 924 is composed of three instructions of the first instruction set. When the instruction set selection information is 1, the current instruction register 924 Indicates that the instruction stored in is composed of one instruction of the second instruction set. The MUX 935 uses the instruction set information selected by the instruction set selector 936 to select either the microinstruction 934a output from the first instruction decoder 933a or the microinstruction 934b output from the second instruction decoder 933b. . As a result, the instruction decoder 932 decodes the instruction sequence stored in the instruction register 924 as a correct instruction, and issues an operation instruction to the instruction execution unit 940.

また、命令セット選択器936が第1の命令セットを選択した場合、第1命令
解読器933aは続けて命令レジスタ924に格納されている、残りの2つの第1の命令セットの命令の解読を行ない、命令実行部へマイクロ命令934aを出力する。
When the instruction set selector 936 selects the first instruction set, the first instruction decoder 933a continues to decode the instructions of the remaining two first instruction sets stored in the instruction register 924. The microinstruction 934a is output to the instruction execution unit.

(プロセッサの動作)
次に具体的な命令を解読実行した場合の本プロセッサの動作について説明する。
(Processor operation)
Next, the operation of this processor when a specific instruction is decoded and executed will be described.

図10(c1)および(c2)は本発明の第2の実施の形態におけるプログラムの例である。   FIGS. 10 (c1) and (c2) are examples of programs in the second embodiment of the present invention.

0x1000番地から第1の命令セットの命令である、add1 r0,r0命令、sub1 r2,r1命令、cmp1 r4,r1命令が続き、0x1004番地から第2の命令セットの命令である、add2 r5,r6命令、sub2 r7,r6命令、cmp2 r9,r6命令、jmp2 0x2000命令が続き、離れて0x2000番地からは第1の命令セットの命令である、mul1 r0,r1命令、div1 r2,r3命令、sub1 r1,r2命令が続くとする。この命令列中で、0x1000、及び0x2000番地の命令フェッチは第1の命令セットの命令が格納されているので命令セット選択情報は0に、それ以外は第2の命令セットの命令が格納されているので1になる(本来バイナリの機械語命令だが、ここではニモニックで表記している。また、add1命令とsub2命令の機械語が同じであるという様に、命令セットが異なると同一の機械語に異なる命令が割り当てられる事もあるし、add1命令とadd2命令が同じ機械語であるという様に、命令セットが異なっても同一の命令は同一の機械語に割り当てられることもある。)。   From address 0x1000, add1 r0, r0 instruction, sub1 r2, r1 instruction, cmp1 r4, r1 instruction, which are the instructions of the first instruction set, continue, and add2 r5, r6, which is the instruction of the second instruction set from address 0x1004 Instruction, sub2 r7, r6 instruction, cmp2 r9, r6 instruction, jmp2 0x2000 instruction, and apart from address 0x2000, are instructions of the first instruction set, mul1 r0, r1 instruction, div1 r2, r3 instruction, sub1 r1 , R2 instruction continues. In this instruction sequence, instruction fetches at addresses 0x1000 and 0x2000 store the instruction of the first instruction set because the instruction of the first instruction set is stored, and the instruction of the second instruction set is stored otherwise. (It is originally a binary machine language instruction, but here it is written in mnemonic. Also, the machine language of the add1 instruction and the sub2 instruction is the same. May be assigned different instructions, or the same instruction may be assigned to the same machine language even if the instruction set is different, such as the add1 instruction and the add2 instruction are in the same machine language.

0x1000番地への分岐命令を検出すると、命令実行制御部941はPC制御部942に分岐の指令を出力する。PC制御部942は命令フェッチ制御部921へ分岐命令を出力し、IAバス911へ分岐アドレスを出力する。メモリシ
ステム910はIAバス911に対応した0x1000番地から始まる命令列64ビットをIDバス912へ出力し、命令供給発行部920内の命令レジスタ924が受け取る。
When a branch instruction to address 0x1000 is detected, the instruction execution control unit 941 outputs a branch instruction to the PC control unit 942. The PC control unit 942 outputs a branch instruction to the instruction fetch control unit 921 and outputs a branch address to the IA bus 911. The memory system 910 outputs to the ID bus 912 a 64-bit instruction string starting from address 0x1000 corresponding to the IA bus 911, and the instruction register 924 in the instruction supply issue unit 920 receives it.

命令解読器932内の第1命令解読器933aは、命令レジスタ924の先頭21ビット925aを参照してadd1 r0,r0命令を解読、第2命令解読器933bは、命令レジスタ924の先頭63ビット925a、925b、925cを参照して解読を行い、それぞれマイクロ命令934a及びマイクロ命令934bを出力する。同時に、命令セット選択器936は命令レジスタ924を参照し、命令セット選択情報が0である事から命令セットが第1の命令セットであることを決定する。MUX935は、第1命令解読器933aの出力するマイクロ命令934aを選択するので、命令実行部940ではadd1 r0,r0命令が実行される。   The first instruction decoder 933a in the instruction decoder 932 refers to the first 21 bits 925a of the instruction register 924 to decode the add1 r0, r0 instruction, and the second instruction decoder 933b includes the first 63 bits 925a of the instruction register 924. , 925b, and 925c, and the microinstruction 934a and the microinstruction 934b are output. At the same time, the instruction set selector 936 refers to the instruction register 924 and determines that the instruction set is the first instruction set because the instruction set selection information is 0. Since the MUX 935 selects the microinstruction 934a output from the first instruction decoder 933a, the instruction execution unit 940 executes the add1 r0, r0 instruction.

続いて、第1の命令セットを選択しているので、第1命令解読器933aは続けて命令レジスタ924に格納されている、残りの2つの第1の命令セットの命令の解読を行ない、命令実行部940へマイクロ命令934aを出力する。これによって、sub1 r2,r1命令、cmp1 r4,r1命令が実行される。   Subsequently, since the first instruction set is selected, the first instruction decoder 933a continues to decode the instructions of the remaining two first instruction sets stored in the instruction register 924. The microinstruction 934a is output to the execution unit 940. As a result, the sub1 r2, r1 instruction and the cmp1 r4, r1 instruction are executed.

次に、0x1004番地の命令を実行する。命令レジスタ924に格納される0x1004番地の命令フェッチデータの命令セット選択情報は1であるので、第2の命令セットとして、add2 r5,r6命令が解読され、命令実行部940で実行される。   Next, the instruction at address 0x1004 is executed. Since the instruction set selection information of the instruction fetch data at address 0x1004 stored in the instruction register 924 is 1, the add2 r5 and r6 instructions are decoded as the second instruction set and executed by the instruction execution unit 940.

同様にして、0x1008番地は、第2の命令セットであるsub2 r7,r6命令が、0x100c番地は第2の命令セットであるcmp2 r9,r6命令が、0x1010番地は第2の命令セットであるjmp2 0x2000命令が、分岐先の0x2000番地は、第1の命令セットであるmul1 r0,
r1命令、div1 r2,r3命令、sub1 r1,r2命令が実行される。
Similarly, address 0x1008 is the second instruction set, sub2 r7, r6 instruction, address 0x100c is the second instruction set, cmp2 r9, r6 instruction, and address 0x1010 is the second instruction set, jmp2. The 0x2000 instruction is the branch destination address 0x2000, and the first instruction set mul1 r0,
The r1 instruction, the div1 r2, r3 instruction, and the sub1 r1, r2 instruction are executed.

(プログラム生成装置の構成)
図15は本発明の第2の実施の形態におけるプログラム生成装置のブロック図である。
(Configuration of program generator)
FIG. 15 is a block diagram of a program generation apparatus according to the second embodiment of the present invention.

1610は命令の位置情報を付加する前のソースプログラム格納手段、1620は3ユニット毎のグループに分ける命令抽出手段、1630は命令がどちらの命令セットに属しているかの情報を生成する命令セット選択情報生成手段、1640はグループ化された命令列と命令セット選択情報を合成する命令列生成手段、1650は生成した命令列を格納する命令列格納手段である。   1610 is a source program storage means before adding instruction position information, 1620 is an instruction extracting means for dividing into groups of three units, and 1630 is instruction set selection information for generating information on which instruction set the instruction belongs to Generation means 1640 is an instruction string generation means for synthesizing the grouped instruction strings and instruction set selection information, and 1650 is an instruction string storage means for storing the generated instruction strings.

以上の様に構成された本発明の第2の実施の形態のプログラム生成装置について、以下、その動作を説明する。   The operation of the program generating apparatus according to the second embodiment of the present invention configured as described above will be described below.

ソースプログラム格納手段1610には、1ユニットで構成される第1の命令セットに属する命令、及び、3ユニットで構成される第2の命令セットに属する命令のソースプログラムが格納されている。命令抽出手段1620は、ソースプログラムをソースプログラム格納手段1610から取得し、それぞれ3ユニットで構成されるグループに分割する。命令セット選択情報生成手段1630は、命令抽出手段1620が出力するグループに分割された命令を取得し、グループ内の命令がどちらの命令セットに属しているかを判断し、第1の命令セットに属している時には0を、第2の命令セットに属しているときには1の値を出力する。命令列生成手段1640は命令抽出手段1620の出力と命令セット選択情報生成手段1630の出力を合成して命令セット選択情報を付加した命令列を出力する。   The source program storage means 1610 stores a source program of instructions belonging to a first instruction set composed of one unit and instructions belonging to a second instruction set composed of three units. The instruction extraction unit 1620 acquires the source program from the source program storage unit 1610 and divides it into groups each composed of three units. The instruction set selection information generation unit 1630 acquires the instructions divided into groups output by the instruction extraction unit 1620, determines which instruction set the instructions in the group belong to, and belongs to the first instruction set 0 is output when it is, and 1 is output when it belongs to the second instruction set. The instruction sequence generation unit 1640 combines the output of the instruction extraction unit 1620 and the output of the instruction set selection information generation unit 1630 and outputs an instruction sequence to which instruction set selection information is added.

(プログラム生成装置の動作)
次に具体的な命令を解読実行した場合の本命令列生成装置の動作について説明する。
(Operation of program generator)
Next, the operation of this instruction sequence generation apparatus when a specific instruction is decoded and executed will be described.

図10(a)および(b)は本発明の第2の実施の形態におけるプログラム生成装置の入力プログラムと出力されるプログラムの例である。   FIGS. 10A and 10B are examples of the input program and the output program of the program generation apparatus according to the second embodiment of the present invention.

ソースプログラム格納手段1610には、同図(a)に示す、第1の命令セットの命令である、add1 r0,r0命令、sub1 r2,r1命令、cmp1 r4,r1命令が続いて、第2の命令セットの命令である、add2 r5,r6命令、sub2 r7,r6命令、cmp2 r9,r6命令、jmp2 0x2000命令が続くとする。   The source program storage means 1610 is followed by an add1 r0, r0 instruction, sub1 r2, r1 instruction, cmp1 r4, r1 instruction, which are instructions of the first instruction set shown in FIG. Assume that an instruction set instruction, add2 r5, r6 instruction, sub2 r7, r6 instruction, cmp2 r9, r6 instruction, and jmp2 0x2000 instruction follow.

命令抽出手段1620は、ソースプログラム格納手段1610に格納されたソースプログラムから図10(b1)の様に3ユニット分の命令である、第1の命令セットの命令である、add1 r0,r0命令、sub1 r2,r1命令、cmp1 r4,r1命令を抽出し、命令セット選択情報生成手段1630及び命令列生成手段1640に出力する。   The instruction extraction means 1620 is a command of the first instruction set, which is an instruction of the first instruction set, which is an instruction for three units as shown in FIG. 10 (b1) from the source program stored in the source program storage means 1610, The sub1 r2, r1 instruction and the cmp1 r4, r1 instruction are extracted and output to the instruction set selection information generating unit 1630 and the instruction sequence generating unit 1640.

命令セット選択情報生成手段1630では、命令抽出手段1620から3ユニットの命令を受け取ると、命令列がどちらの命令セットに属するかを判断する。これら3ユニットの命令は第1の命令セットであるので0を出力する。   When the instruction set selection information generating means 1630 receives three units of instructions from the instruction extracting means 1620, it determines which instruction set the instruction sequence belongs to. Since these three units of instructions are the first instruction set, 0 is output.

命令列生成手段1640は、命令抽出手段1620が出力する3ユニットの命令及び命令セット選択情報生成手段1630が出力する1ビットの値0を合成して、64ビットの命令列を出力する。   The instruction sequence generation means 1640 combines the 3 units of instructions output from the instruction extraction means 1620 and the 1-bit value 0 output from the instruction set selection information generation means 1630, and outputs a 64-bit instruction sequence.

次に、同様にして、命令抽出手段1620は、図10(b2)の様に第2の命令セットの命令である、add2 r5,r6命令の3ユニットを出力し、該当ユニットは第2の命令セットに属する命令であるので、命令セット選択情報生成
手段1630は1を出力する。
Next, similarly, the instruction extraction means 1620 outputs three units of add2 r5 and r6 instructions, which are instructions of the second instruction set as shown in FIG. 10 (b2), and the corresponding unit outputs the second instruction. Since it is an instruction belonging to a set, the instruction set selection information generating means 1630 outputs 1.

以上の処理を繰り返すことによって、命令列生成手段1640は命令セット選択情報を付加した命令列を出力する。   By repeating the above processing, the instruction sequence generator 1640 outputs an instruction sequence to which instruction set selection information is added.

図10(c1)は、図10(b)の命令列に命令セット選択情報を付加した命令列である。   FIG. 10 (c1) is an instruction sequence in which instruction set selection information is added to the instruction sequence of FIG. 10 (b).

(従来の命令セット選択方式の課題)
この様に従来の命令セット選択方式では、プログラムカウンタ1830に実装されたTビットによって命令セットの選択を行うが、1バイト単位の命令を持つプロセッサではこの方式は使用できないという問題がある。また、命令セットの選択は実行時のプログラムカウンタ1830の値によってのみ決まり、実際に動作させないと命令セットは決定できないため、例えば0x1000番地の命令列を見た時にそれがどちらの命令セットなのかを判断することができず、機械語レベルでのデバッグに困難があったり、例えば0x1001に分岐命令を記述するなど、プログラマの間違いで第1の命令セットで記述されたプログラムに、最下位ビットが1の分岐アドレスで分岐した場合に動作の保証ができないという問題がある。
(Problems with the conventional instruction set selection method)
As described above, in the conventional instruction set selection method, the instruction set is selected by the T bit mounted in the program counter 1830. However, there is a problem that this method cannot be used in a processor having an instruction of 1 byte unit. In addition, the selection of the instruction set is determined only by the value of the program counter 1830 at the time of execution. Since the instruction set cannot be determined unless it is actually operated, for example, when the instruction sequence at address 0x1000 is viewed, which instruction set it is. It is difficult to make a decision, and debugging at the machine language level is difficult. For example, a branch instruction is described in 0x1001, and the least significant bit is set to 1 in a program described in the first instruction set by a programmer error. There is a problem that the operation cannot be guaranteed when branching at a branch address.

また、公開特許公報特開平8−44557号に従来例として記載されているVAX11コンピューターの様に、プロセッサステータスレジスタに実装した命令セット切り替えレジスタへの書込によって命令セットを選択する方式では、プロセッサステータスレジスタに書き込む命令が必要となるので、プログラムが余分に必要とされ、プログラム領域が肥大したり、書込処理によりプロセッサの性能が低下してしまうという問題がある。また通常のレジスタ書込は、例えばライトバックステージの様な、命令の解読よりも後のパイプラインステージで行われるために、プロセッサステータスレジスタへの書き込み命令の解読と、プロセッサステータスレジスタへの実際の書き込みの間に時間差が発生してしまうため、命
令セットの切替えが高速に行えないという問題もある。
Further, in the method of selecting an instruction set by writing to the instruction set switching register mounted in the processor status register, like the VAX11 computer described as a conventional example in Japanese Patent Laid-Open No. 8-44557, the processor status Since an instruction to write to the register is required, there is a problem that an extra program is required, the program area is enlarged, and the performance of the processor is lowered by the writing process. In addition, since normal register writing is performed in a pipeline stage after instruction decoding, such as a write back stage, for example, decoding of a write instruction to the processor status register and actual processing to the processor status register are performed. Since a time difference occurs during writing, there is also a problem that switching of instruction sets cannot be performed at high speed.

(第3の実施の形態)
(命令フォーマット)
図11は、本発明の第3の実施の形態におけるプロセッサの命令フォーマットである。
(Third embodiment)
(Instruction format)
FIG. 11 shows an instruction format of the processor according to the third embodiment of the present invention.

本プロセッサは、同図(a)に示すように、21ビットを単位とした固定長命令形式となっている。64ビットの命令フェッチ単位は、21ビットの3つの命令と1ビットの命令キャッシュ制御情報で構成される。命令キャッシュ制御情報が0の時は、その命令フェッチ単位に含まれる命令をキャッシュに登録しない事を、1の時は、その命令フェッチ単位に含まれる命令をキャッシュに登録する制御を示す。同図(b)は、命令キャッシュ制御情報が0の場合で、命令フェッチ単位に含まれる3つの命令は命令キャッシュに登録しない事を示す。同図(c)は、命令キャッシュ制御情報が1の場合で、命令フェッチ単位に含まれる3つの命令は命令キャッシュに登録する事を示す。   This processor has a fixed-length instruction format with 21 bits as a unit, as shown in FIG. The 64-bit instruction fetch unit includes three 21-bit instructions and 1-bit instruction cache control information. When the instruction cache control information is 0, the instruction included in the instruction fetch unit is not registered in the cache. When the instruction cache control information is 1, the instruction included in the instruction fetch unit is registered in the cache. FIG. 4B shows that when the instruction cache control information is 0, three instructions included in the instruction fetch unit are not registered in the instruction cache. FIG. 4C shows that the instruction cache control information is 1, and three instructions included in the instruction fetch unit are registered in the instruction cache.

(プロセッサのハードウェア構成)
図12は本発明の第3の実施の形態におけるプロセッサのブロック図である。
(Processor hardware configuration)
FIG. 12 is a block diagram of a processor according to the third embodiment of the present invention.

1210は命令列を格納しているメモリシステム、1250は命令列に対するキャッシュを制御する命令キャッシュ装置、1252は命令列を命令キャッシュ装置1250に登録するかどうかを判断する命令キャッシュ制御解読器、1253は命令キャッシュ、1220はメモリシステム1210或いは命令キャッシュ装置1250から命令を得る命令供給発行部、1221は命令フェッチを制御する命令フェッチ制御部、1224は解読する命令を格納する命令レジスタ、1230は命令解読全般を行う命令解読部、1231は命令解読を制御する命令発行制御部、1232は命令を解読する命令解読器、1240は解読結果に従って命令を実行する命令実行部、1241は命令実行を制御する命令実行制御部、12
42は分岐関係を担当するPC制御部、1243は演算器、1245はレジスタを格納するレジスタファイルである。
Reference numeral 1210 denotes a memory system that stores an instruction sequence; 1250, an instruction cache device that controls a cache for the instruction sequence; 1252, an instruction cache control decoder that determines whether to register an instruction sequence in the instruction cache device 1250; Instruction cache, 1220 is an instruction supply issuing unit that obtains an instruction from the memory system 1210 or the instruction cache device 1250, 1221 is an instruction fetch control unit that controls instruction fetch, 1224 is an instruction register that stores an instruction to be decoded, and 1230 is general instruction decoding 1231 is an instruction issuance control unit that controls instruction decoding, 1232 is an instruction decoder that decodes instructions, 1240 is an instruction execution unit that executes instructions according to the decoding results, and 1241 is an instruction execution that controls instruction execution Control unit, 12
Reference numeral 42 denotes a PC control unit in charge of branching relationships, 1243 denotes an arithmetic unit, and 1245 denotes a register file for storing registers.

以上の様に構成された本発明の第3の実施の形態のプロセッサについて、以下、その動作を説明する。   The operation of the processor according to the third embodiment of the present invention configured as described above will be described below.

命令フェッチ制御部1221から命令フェッチアドレスが発行されると、命令キャッシュ装置1250は該当する命令が命令キャッシュ1253に格納されているかを確認し、命令キャッシュ1253に格納されていない場合には、メモリシステム1210へIAバス1211を通じて命令フェッチアドレスを出力する。   When the instruction fetch address is issued from the instruction fetch control unit 1221, the instruction cache device 1250 checks whether the corresponding instruction is stored in the instruction cache 1253. If the instruction cache 1253 is not stored in the instruction cache 1253, the memory system The instruction fetch address is output to 1210 through the IA bus 1211.

メモリシステム1210はIDバス1212を通じて命令列を命令キャッシュ装置1250へ供給する。   The memory system 1210 supplies the instruction sequence to the instruction cache device 1250 through the ID bus 1212.

命令キャッシュ装置1250では、命令キャッシュ制御解読器1252は命令列の内の命令キャッシュ制御情報を解読し、命令キャッシュ制御情報が1の時には命令キャッシュ1253への登録を行い、命令キャッシュ情報が0の時には命令キャッシュ1253への登録を行わない。   In the instruction cache device 1250, the instruction cache control decoder 1252 decodes the instruction cache control information in the instruction sequence. When the instruction cache control information is 1, the instruction cache control information is registered in the instruction cache 1253. When the instruction cache information is 0, Registration in the instruction cache 1253 is not performed.

命令キャッシュ装置1250はメモリシステム1210或いは命令キャッシュ1253のいずれかに格納された命令列をCDバス1255を介して命令供給発行部1220に供給する。   The instruction cache device 1250 supplies the instruction sequence stored in either the memory system 1210 or the instruction cache 1253 to the instruction supply issuing unit 1220 via the CD bus 1255.

命令供給発行部1220では、命令解読部1230からの要求に従って64ビットずつ命令レジスタ1224に命令列を供給する。命令レジスタ1224に格納された命令列は、命令解読部1230へ供給される。命令解読部1230では、64ビットの命令を3つの21ビット命令として、命令解読器1232によって解読を行う。   The instruction supply / issuance unit 1220 supplies an instruction string to the instruction register 1224 64 bits at a time in accordance with a request from the instruction decoding unit 1230. The instruction sequence stored in the instruction register 1224 is supplied to the instruction decoding unit 1230. In the instruction decoding unit 1230, the 64-bit instruction is converted into three 21-bit instructions and is decoded by the instruction decoder 1232.

命令実行部1240では、演算器1243により演算が行われる。   In the instruction execution unit 1240, the arithmetic unit 1243 performs an operation.

(プロセッサの動作)
次に具体的な命令を解読実行した場合の本プロセッサの動作について説明する。
(Processor operation)
Next, the operation of this processor when a specific instruction is decoded and executed will be described.

図13は本発明の第3の実施の形態におけるプログラムの例である。   FIG. 13 shows an example of a program in the third embodiment of the present invention.

このプログラムは、割り込み処理プログラムの様な通常プログラムの流れとは異なり、本プログラムに分岐して来た時、命令キャッシュには本プログラムは格納されていない状況を想定している。   Unlike a normal program flow such as an interrupt processing program, it is assumed that this program is not stored in the instruction cache when branching to this program.

本プログラム例では、0x1000番地からclr r1命令、 mov imm,r4命令、mov r5,r0命令、mov (r0),r3命令、mul r3,r4命令、add r4,r1命令、sub imm,r0命令、cmp r1,r0命令、bne 0x1004命令、rti命令が配置されており、この命令列中、0x1004番地及び0x1008番地に格納されている6つの命令は内部で繰り返して実行されるのに対して、ほかの命令は1度しか実行されない。この為、0x1004番地及び0x1008番地に格納されている命令は命令キャッシュに登録した方が効率が高いので命令キャッシュ制御情報は1に、それ以外の命令キャッシュ情報は0に設定されている。   In this program example, the clr r1 instruction, mov imm, r4 instruction, mov r5, r0 instruction, mov (r0), r3 instruction, mul r3, r4 instruction, add r4, r1 instruction, sub imm, r0 instruction from address 0x1000, The cmp r1, r0 instruction, bne 0x1004 instruction, and rti instruction are arranged, and in this instruction sequence, the six instructions stored at the addresses 0x1004 and 0x1008 are repeatedly executed internally. This instruction is executed only once. For this reason, the instructions stored at the addresses 0x1004 and 0x1008 are more efficient when they are registered in the instruction cache, so the instruction cache control information is set to 1 and the other instruction cache information is set to 0.

割り込み等の要因により、0x1000番地への分岐命令を検出すると、命令実行制御部1241はPC制御部1242に分岐の指令を出力する。PC制御部1242は命令フェッチ制御部1221へ分岐命令を出力し、CAバス1254へ分岐アドレスを出力する。   When a branch instruction to address 0x1000 is detected due to an interrupt or the like, the instruction execution control unit 1241 outputs a branch instruction to the PC control unit 1242. The PC control unit 1242 outputs a branch instruction to the instruction fetch control unit 1221 and outputs a branch address to the CA bus 1254.

命令キャッシュ1253にはこれらのプログラムは格納されていないので、命令キャッシュ装置1250はIAバス1211を通じてメモリシステム1210から命令列を要求する。メモリシステム1210は命令列をIDバス1212を
通じて命令キャッシュ装置1250へ供給する。
Since these programs are not stored in the instruction cache 1253, the instruction cache device 1250 requests an instruction string from the memory system 1210 through the IA bus 1211. The memory system 1210 supplies the instruction sequence to the instruction cache device 1250 through the ID bus 1212.

命令キャッシュ装置1250は、命令列をCDバス1255を介して命令供給発行部1220内の命令レジスタ1224へ供給する。また、キャッシュ制御解読器1252は命令列の内の命令キャッシュ制御情報を解読し、命令キャッシュ制御情報が0であることから、命令キャッシュ1253への登録を行わない。   The instruction cache device 1250 supplies the instruction sequence to the instruction register 1224 in the instruction supply issue unit 1220 via the CD bus 1255. Further, the cache control decoder 1252 decodes the instruction cache control information in the instruction sequence, and does not register the instruction cache 1253 because the instruction cache control information is 0.

命令解読器1232は、命令レジスタ1224の命令を21ビットずつ、clr r1命令、 mov imm,r4命令、mov r5,r0命令として解読し、命令実行部1240は演算を行う。   The instruction decoder 1232 decodes the instruction in the instruction register 1224 21 bits at a time, as a clr r1 instruction, a mov imm, r4 instruction, a mov r5, r0 instruction, and the instruction execution unit 1240 performs an operation.

同様にして、0x1004番地及び0x1008番地の6つの命令の実行を行う。これらの命令列は命令キャッシュ制御情報が1に設定されているので、メモリシステム1210から命令フェッチすると同時に、命令キャッシュ装置1250では命令キャッシュ1253への登録が行われる。これによってmov (r0),r3命令、mul r3,r4命令、add r4,r1命令、sub imm,r0命令、cmp r1,r0命令、bne 0x1004命令が解読、実行されると同時に、命令キャッシュ1253への登録が行われる。   Similarly, six instructions of addresses 0x1004 and 0x1008 are executed. Since the instruction cache control information is set to 1 for these instruction sequences, an instruction is fetched from the memory system 1210, and at the same time, the instruction cache device 1250 registers in the instruction cache 1253. As a result, mov (r0), r3 instruction, mul r3, r4 instruction, add r4, r1 instruction, sub imm, r0 instruction, cmp r1, r0 instruction, bne 0x1004 instruction are decoded and executed, and at the same time, to instruction cache 1253 Is registered.

次に、再度0x1004番地及び0x1008番地の6つの命令を実行する場合、これらの命令列は命令キャッシュ1253に既に格納されているので、メモリシステム1210にアクセスすることなく、高速に実行される。   Next, when six instructions at addresses 0x1004 and 0x1008 are executed again, these instruction sequences are already stored in the instruction cache 1253, and therefore are executed at high speed without accessing the memory system 1210.

最後に、0x100c番地のrti命令を実行する場合には、0x1000番地の命令を実行する場合と同じく、メモリシステム1210から命令列を獲得して実行するが、命令キャッシュ1253への登録は行わない。   Finally, when the rti instruction at address 0x100c is executed, the instruction sequence is acquired from the memory system 1210 and executed as in the case of executing the instruction at address 0x1000, but is not registered in the instruction cache 1253.

(従来のキャッシュ制御方式の課題)
公開特許公報特開平8−44557号に従来例として記載されているVAX1
1コンピューターの様に、プロセッサステータスレジスタに実装したキャッシュ制御レジスタへの書込によってキャッシュの登録や参照などの動作を制御する方式では、プロセッサステータスレジスタに書き込む命令が必要となるので、プログラムが余分に必要とされ、プログラム領域が肥大したり、書込処理によりプロセッサの性能が低下してしまうという問題がある。また通常のレジスタ書込は、例えばライトバックステージの様な、解読ステージよりも後のパイプラインステージで行われるために、プロセッサステータスレジスタへの書き込み命令の解読と、プロセッサステータスレジスタへの実際の書き込みの間に時間差が発生してしまうため、キャッシュの制御が高速に行えないという問題もある。
(Problems with conventional cache control methods)
VAX1 described as a conventional example in JP-A-8-44557
As in the case of one computer, in the method of controlling operations such as cache registration and reference by writing to the cache control register implemented in the processor status register, an instruction to write to the processor status register is required, so there is an extra program There is a problem that the program area is enlarged and the performance of the processor is lowered due to the writing process. In addition, normal register writing is performed in a pipeline stage after the decoding stage, such as a write back stage. Therefore, decoding of a write instruction to the processor status register and actual writing to the processor status register are performed. There is also a problem that the cache cannot be controlled at high speed because a time difference occurs between the two.

以上で添付図面を参照して本発明の図示した実施の形態について説明したが、本発明はこれら実施の形態のみに限定されるものではなく、当業者であれば特許請求の範囲に記載した発明の要旨から逸脱することなく、種々の変形及び変更が可能であると理解すべきである。   Although the illustrated embodiments of the present invention have been described above with reference to the accompanying drawings, the present invention is not limited only to these embodiments, and those skilled in the art will recognize the invention described in the claims. It should be understood that various modifications and changes can be made without departing from the spirit of the invention.

第1の実施の形態に関して、本実施の形態では命令フェッチ幅や命令長を規定したがそれらを特に限定するものではない。   Regarding the first embodiment, the instruction fetch width and the instruction length are defined in the present embodiment, but they are not particularly limited.

また、命令位置情報を、格納する単位を命令フェッチ幅としたが、この単位は、一定間隔、あるいは分岐先の命令毎であれば特に限定しない、例えば、命令フェッチ幅や、命令フェッチ幅の整数倍や、命令フェッチ幅の整数分の1であっても構わない。   The unit for storing the instruction position information is the instruction fetch width, but this unit is not particularly limited as long as it is a fixed interval or for each branch destination instruction. For example, the instruction fetch width or an integer of the instruction fetch width It may be double or an integer fraction of the instruction fetch width.

また、命令位置情報は、前記単位に必ず存在する必要は無く、例えば、分岐先を含む単位のみに存在していたり、分岐先を含む単位の次の単位のみに存在していたり、分岐命令を含む単位や、メモリアクセス命令を含む単位にのみ存在していたりしても構わない。   In addition, the instruction position information does not necessarily exist in the unit. For example, the instruction position information exists only in the unit including the branch destination, exists only in the next unit of the unit including the branch destination, It may exist only in a unit including a memory access instruction.

また、命令の位置情報を、単位の中で最低位の番地に位置する命令の位置情報
としたが、この位置情報は、単位の中で最低位の番地の命令が命令のどの部分であるかという情報でも構わないし、また、単位内に含まれる全ての命令の位置情報であっても構わない。
In addition, the position information of the instruction is the position information of the instruction located at the lowest address in the unit. This position information indicates which part of the instruction the instruction at the lowest address in the unit is. It may also be information on the position of all the instructions included in the unit.

また、命令の位置情報を、可変語長命令から固定長への変換に用いたが、この情報を何に利用するかは特に限定しない。例えば、解読時の処理の負荷分散を目的とした前解読処理であっても構わないし、分岐命令の分岐先を予測する分岐予測や、先行投機実行の為に使用しても構わない。   Moreover, although the position information of the instruction is used for conversion from the variable word length instruction to the fixed length, there is no particular limitation on what the information is used for. For example, it may be pre-decoding processing for the purpose of load distribution of processing at the time of decoding, or may be used for branch prediction for predicting the branch destination of a branch instruction or for pre-speculative execution.

また、ソースプログラム格納手段が扱うデータは、ニモニックであっても機械語であっても構わないし、C言語の様な高級言語であっても構わない。   The data handled by the source program storage means may be mnemonic, machine language, or a high-level language such as C language.

また、命令抽出手段は、3ユニット毎の固定長を抽出したが、固定長の長さは何でも構わないし、また、分岐先の命令語の間隔に対応した長さの命令を抽出する機能であっても構わない。   In addition, the instruction extracting means extracts a fixed length for every three units, but the fixed length may be anything, and it is a function for extracting an instruction having a length corresponding to the interval of branch destination instruction words. It doesn't matter.

また、命令列格納手段は、具体的に何であるかは限定しない。例えば、フロッピー(登録商標)ディスクやハードディスクや、光ディスクなどの媒体であっても構わない。   Further, the instruction sequence storage means is not specifically limited. For example, a medium such as a floppy (registered trademark) disk, a hard disk, or an optical disk may be used.

第2の実施の形態に関して、本実施の形態では命令フェッチ幅や命令長を規定したがそれらを特に限定するものではない。   Regarding the second embodiment, the instruction fetch width and the instruction length are defined in the present embodiment, but they are not particularly limited.

また、命令セット選択情報を、格納する単位を命令フェッチ幅としたが、この単位は、一定間隔あるいは分岐先の命令毎であれば特に限定しない、例えば、命令フェッチ幅や、命令フェッチ幅の整数倍や、命令フェッチ幅の整数分の1であっても構わない。   In addition, although the unit for storing the instruction set selection information is the instruction fetch width, this unit is not particularly limited as long as it is a fixed interval or for each branch destination instruction, for example, an instruction fetch width or an integer of the instruction fetch width. It may be double or an integer fraction of the instruction fetch width.

また、命令セット選択情報は、前記単位に必ず存在する必要は無く、例えば、分岐先を含む単位のみに存在していたり、分岐先を含む単位の次の単位のみに存
在していたり、分岐命令を含む単位や、メモリアクセス命令を含む単位にのみ存在していたりしても構わない。
The instruction set selection information does not necessarily exist in the unit. For example, the instruction set selection information exists only in a unit including a branch destination, exists only in a unit next to a unit including a branch destination, or includes a branch instruction. Or a unit including a memory access instruction.

また、命令セット選択情報を、解読器の出力するマイクロ命令の無効化に用いたが、この情報を何に利用するかは特に限定しない。例えば、解読器に入力する命令列の無効化処理に使っても構わないし、解読器の動作状態の制御に使用しても構わない。   In addition, the instruction set selection information is used to invalidate the microinstruction output from the decoder, but there is no particular limitation on what this information is used for. For example, it may be used for invalidation processing of an instruction sequence input to the decoder, or may be used for controlling the operation state of the decoder.

また、命令セットを固定長命令としたが、それらを限定するものではない。例えば、全て可変長命令であっても構わないし、混在であっても構わない。また、可変長命令の場合には、命令の先頭あるいは末尾が格納されている単位の命令セット選択情報であっても構わない。   In addition, although the instruction set is a fixed-length instruction, it is not limited thereto. For example, all of them may be variable length instructions or may be mixed. In the case of a variable-length instruction, it may be instruction set selection information in units in which the beginning or end of the instruction is stored.

また、ソースプログラム格納手段が扱うデータは、ニモニックであっても機械語であっても構わないし、C言語の様な高級言語であっても構わない。   The data handled by the source program storage means may be mnemonic, machine language, or a high-level language such as C language.

また、命令抽出手段は、3ユニット毎の固定長の命令列を抽出したが、固定長の長さは何でも構わないし、また、分岐先の命令語の間隔に対応した可変の長さの命令列を抽出する機能であっても構わない。   Further, the instruction extracting means has extracted a fixed-length instruction string for every three units. However, the fixed-length instruction string may be any length, and a variable-length instruction string corresponding to the interval between branch destination instruction words. It may be a function to extract.

また、命令列格納手段は、具体的に何であるかは限定しない。例えば、フロッピー(登録商標)ディスクやハードディスクや、光ディスクなどの媒体であっても構わない。   Further, the instruction sequence storage means is not specifically limited. For example, a medium such as a floppy (registered trademark) disk, a hard disk, or an optical disk may be used.

第3の実施の形態に関して、本実施の形態では命令フェッチ幅や命令長を規定したがそれらを特に限定するものではない。   Regarding the third embodiment, the instruction fetch width and the instruction length are defined in the present embodiment, but they are not particularly limited.

また、キャッシュ制御情報を、格納する単位を命令フェッチ幅としたが、この単位は、一定間隔あるいは分岐先の命令毎であれば特に限定しない、例えば、命令フェッチ幅や、命令フェッチ幅の整数倍や、命令フェッチ幅の整数分の1であ
っても構わない。
The unit for storing the cache control information is the instruction fetch width, but this unit is not particularly limited as long as it is a fixed interval or for each branch destination instruction. For example, the instruction fetch width or an integer multiple of the instruction fetch width Or, it may be 1 / integer of the instruction fetch width.

また、キャッシュ制御情報は、前記単位に必ず存在する必要は無く、例えば、分岐先を含む単位のみに存在していたり、分岐先を含む単位の次の単位のみに存在していたり、分岐命令を含む単位や、メモリアクセス命令を含む単位にのみ存在していたりしても構わない。   The cache control information does not necessarily exist in the unit. For example, the cache control information exists only in the unit including the branch destination, exists only in the next unit after the unit including the branch destination, or stores the branch instruction. It may exist only in a unit including a memory access instruction.

また、キャッシュ制御情報を、命令列の命令キャッシュへの登録制御に用いたが、命令キャッシュへのアクセス制御であっても構わないし、データキャッシュへの登録制御やアクセス制御であっても構わない。   Further, the cache control information is used for the registration control of the instruction sequence to the instruction cache, but it may be the access control to the instruction cache, or the registration control to the data cache or the access control.

また、命令セットを固定長命令としたが、それらを限定するものではない。例えば、全て可変長命令であっても構わないし、混在であっても構わない。また、可変長命令の場合には、命令の先頭あるいは末尾が格納されている単位の命令セット選択情報であっても構わない。   In addition, although the instruction set is a fixed-length instruction, it is not limited thereto. For example, all of them may be variable length instructions or may be mixed. In the case of a variable-length instruction, it may be instruction set selection information in units in which the beginning or end of the instruction is stored.

また、制御情報は、キャッシュ制御情報に限定しない。具体的には、先行命令フェッチ制御であったり、割り込み制御であったり、MMUに対する制御情報であったりしても構わない。先行命令フェッチの場合には、先行命令フェッチの一時禁止情報であったり、命令フェッチした命令列を一時的に格納する命令バッファの格納バイト数をソフトウェア的に制御するものであったり、先行命令フェッチのフェッチバス幅であったりしても構わない。割り込み制御情報の場合には、割り込み禁止情報であったり、割り込み禁止レベル情報であったりしても構わない。また、単一の制御情報ではなく、複数の制御情報を混在させても構わない。混在するときには、同一単位内に混在させても構わないし、単位毎に異なる制御情報を組み込む形式にしても構わない。   Further, the control information is not limited to cache control information. Specifically, it may be preceding instruction fetch control, interrupt control, or control information for the MMU. In the case of the preceding instruction fetch, it is temporary prohibition information of the preceding instruction fetch, software control of the number of bytes stored in the instruction buffer for temporarily storing the instruction fetched instruction sequence, or the preceding instruction fetch It may be the fetch bus width. In the case of interrupt control information, it may be interrupt prohibition information or interrupt prohibition level information. Further, a plurality of control information may be mixed instead of a single control information. When they are mixed, they may be mixed in the same unit, or may be in a format incorporating different control information for each unit.

また、制御情報は、現在の単位に対する制御情報であっても構わないし、次の単位に対する制御情報であっても構わない。   Further, the control information may be control information for the current unit, or may be control information for the next unit.

本発明の第1の実施の形態におけるプロセッサの命令フォーマットおよび、命令フェッチ時の命令列の並びを示す図The figure which shows the instruction format of the processor in the 1st Embodiment of this invention, and the arrangement | sequence of the instruction sequence at the time of instruction fetch 本発明の第1の実施の形態におけるプロセッサのブロック構成図The block block diagram of the processor in the 1st Embodiment of this invention 本発明の第1の実施の形態における命令供給発行部のブロック構成図The block block diagram of the instruction supply issue part in the 1st Embodiment of this invention 本発明の第1の実施の形態における固定長命令変換器の出力フォーマットを示す図The figure which shows the output format of the fixed length instruction converter in the 1st Embodiment of this invention 本発明の第1の実施の形態におけるプログラムを示す図The figure which shows the program in the 1st Embodiment of this invention 本発明の第1の実施の形態におけるプログラムを変換した固定長命令を示す図The figure which shows the fixed-length instruction which converted the program in the 1st Embodiment of this invention 本発明の第1の実施の形態における命令列変換器の動作の説明図Explanatory drawing of operation | movement of the instruction sequence converter in the 1st Embodiment of this invention 本発明の第2の実施の形態におけるプロセッサの命令フォーマットおよび、命令フェッチ時の命令列の並びを示す図The figure which shows the instruction format of the processor in the 2nd Embodiment of this invention, and the arrangement | sequence of the instruction sequence at the time of instruction fetch 本発明の第2の実施の形態におけるプロセッサのブロック構成図The block block diagram of the processor in the 2nd Embodiment of this invention 本発明の第2の実施の形態におけるプログラムを示す図The figure which shows the program in the 2nd Embodiment of this invention 本発明の第3の実施の形態におけるプロセッサの命令フォーマットおよび、命令フェッチ時の命令列の並びを示す図The figure which shows the instruction format of the processor in the 3rd Embodiment of this invention, and the arrangement | sequence of the instruction sequence at the time of instruction fetch 本発明の第3の実施の形態におけるプロセッサのブロック構成図The block block diagram of the processor in the 3rd Embodiment of this invention 本発明の第3の実施の形態におけるプログラムを示す図The figure which shows the program in the 3rd Embodiment of this invention 本発明の第1の実施の形態におけるプログラム生成装置のブロック構成図The block block diagram of the program generation apparatus in the 1st Embodiment of this invention 本発明の第2の実施の形態におけるプログラム生成装置のブロック構成図The block block diagram of the program generator in the 2nd Embodiment of this invention 従来のプロセッサの命令フォーマットおよび、命令フェッチ時の命令列の並びを示す図The figure which shows the instruction format of the conventional processor, and the sequence of the instruction sequence at the time of instruction fetch 従来のプロセッサのブロック構成図Block diagram of a conventional processor 従来のプロセッサにおける命令供給発行部のブロック構成図Block diagram of the instruction supply and issue unit in a conventional processor 従来におけるプログラムを示す図Diagram showing a conventional program

符号の説明Explanation of symbols

101 命令フォーマット情報
102 命令の先頭情報
210 メモリシステム
220 命令供給発行部
221 命令フェッチ制御部
222 固定長命令変換器
223 命令バッファ
224 命令レジスタ
230 命令解読部
231 命令発行制御部
232 命令解読器
233 第1命令解読器
234 第2命令解読器
240 命令実行部
241 命令実行制御部
242 PC制御部
243 第1演算器
244 第2演算器
245 レジスタファイル
910 命令列を格納しているメモリシステム
920 命令フェッチした命令を命令レジスタに格納する命令供給発行部
921 命令フェッチを制御する命令フェッチ制御部
924 解読する命令を格納する命令レジスタ
930 命令解読全般を行う命令解読部
931 命令解読を制御する命令発行制御部
932 命令を解読する命令解読器
933a 21ビットの命令3つで構成される命令列を解読する第1命令解読器
933b 63ビットの命令1つで構成される命令列を解読する第2命令解読器
935 いずれかの命令解読器の解読結果を選択するMUX
936 命令セットを決定する命令セット選択器
940 解読結果にしたがって命令を実行する命令実行部
941 命令実行を制御する命令実行制御部
942 分岐関係を担当するPC制御部
943 演算器
945 レジスタを格納するレジスタファイル
1210 命令列を格納しているメモリシステム
1220 メモリシステム1210或いは命令キャッシュ装置1250から命令を得る命令供給発行部
1221 命令フェッチを制御する命令フェッチ制御部
1224 解読する命令を格納する命令レジスタ
1230 命令解読全般を行う命令解読部
1231 命令解読を制御する命令発行制御部
1232 命令を解読する命令解読器
1240 解読結果にしたがって命令を実行する命令実行部
1241 命令実行を制御する命令実行制御部
1242 分岐関係を担当するPC制御部
1243 演算器
1245 レジスタを格納するレジスタファイル
1250 命令列に対するキャッシュを制御する命令キャッシュ装置
1252 命令列を命令キャッシュ装置1250に登録するかどうかを判断するキャッシュ制御解読器
1253 命令キャッシュ
101 Instruction format information 102 Instruction head information 210 Memory system 220 Instruction supply issuing unit 221 Instruction fetch control unit 222 Fixed length instruction converter 223 Instruction buffer 224 Instruction register 230 Instruction decoding unit 231 Instruction issue control unit 232 Instruction decoder 233 1st Instruction Decoder 234 Second Instruction Decoder 240 Instruction Execution Unit 241 Instruction Execution Control Unit 242 PC Control Unit 243 First Operator 244 Second Operator 245 Register File 910 Memory System Storing Instruction Sequence 920 Instruction Fetched Instruction Instruction supply and issue unit 921 for storing instruction in the instruction register Instruction fetch control unit 924 for controlling instruction fetch 924 Instruction register for storing instruction to be decoded 930 Instruction decoding unit for general instruction decoding 931 Instruction issue control unit 93 for controlling instruction decoding Instruction Decoder 933a for Decoding Instruction 933a First Instruction Decoder 933b for Decoding Instruction Sequence Comprising Three 21-bit Instructions 933b Second Instruction Decoder for Decoding Instruction Sequence Consisting of One 63-Bit Instruction 935 MUX that selects the decoding result of any instruction decoder
936 An instruction set selector that determines an instruction set 940 An instruction execution unit that executes an instruction according to a decoding result 941 An instruction execution control unit that controls instruction execution 942 A PC control unit that takes charge of a branching relationship 943 An arithmetic unit 945 A register that stores a register File 1210 Memory system storing instruction sequence 1220 Instruction supply issuing unit for obtaining instruction from memory system 1210 or instruction cache device 1250 1221 Instruction fetch control unit for controlling instruction fetch 1224 Instruction register for storing instruction to be decoded 1230 Instruction decoding General instruction decoding unit 1231 Instruction issuing control unit for controlling instruction decoding 1232 Instruction decoding unit for decoding instructions 1240 Instruction execution unit for executing instructions according to the decoding result 1241 Instruction execution control unit for controlling instruction execution 1242 PC control unit in charge of branching relationship 1243 arithmetic unit 1245 register file for storing register 1250 instruction cache device 1252 for controlling cache for instruction sequence cache control decoder 1253 for determining whether instruction sequence is registered in instruction cache device 1250 Instruction cache

Claims (3)

複数のユニットからなる可変長命令を並列実行するプロセッサであって、
固定数のユニットをフェッチ単位として命令をフェッチし、前記プロセッサが並列に実行できる数のユニットを実行単位として命令を出力する命令供給発行部と、
前記命令供給発行部から出力される命令を解読する命令解読部と、
前記命令解読部の解読結果に応じて命令を実行する命令実行部を備え、
前記実行単位の境界は前記フェッチ単位の境界と無関係に設定され、かつ、
前記フェッチ単位の境界が前記実行単位の境界に一致するか否か及び前記実行単位に含まれる個々の可変長命令の長さとは、前記フェッチ単位に含まれる複数のビットの値に応じて決定されることを特徴とするプロセッサ。
A processor for executing a variable-length instruction composed of a plurality of units in parallel,
An instruction supply issuing unit that fetches an instruction with a fixed number of units as a fetch unit and outputs an instruction with the number of units that can be executed in parallel by the processor;
An instruction decoding unit for decoding an instruction output from the instruction supply issuing unit;
An instruction execution unit that executes an instruction according to a result of decoding by the instruction decoding unit;
The execution unit boundary is set independently of the fetch unit boundary, and
Whether the boundary of the fetch unit matches the boundary of the execution unit and the length of each variable-length instruction included in the execution unit are determined according to the values of a plurality of bits included in the fetch unit. A processor characterized by that.
前記命令供給発行部は、前記フェッチ単位に含まれる一の可変長命令が所定の固定数より少ない数のユニットから構成されているとき、フェッチしたユニットに意味の無いデータを連結することにより、前記所定の固定数のユニットとして前記命令解読部へと出力することを特徴とする請求項1記載のプロセッサ。 The instruction supply issuing unit, when one variable length instructions contained in the fetch unit is composed of a smaller number of units than the predetermined fixed number, by linking the meaningless data unit fetched, the 2. The processor according to claim 1, wherein the processor outputs the unit as a predetermined fixed number of units to the instruction decoding unit. 前記複数のビットは、可変長命令の長さに関する情報を示すビット及び前記可変長命令がフェッチ単位を跨って配置されているか否かを示すビットを含むことを特徴とする請求項1記載のプロセッサ。   2. The processor according to claim 1, wherein the plurality of bits include a bit indicating information on a length of a variable-length instruction and a bit indicating whether or not the variable-length instruction is arranged across fetch units. .
JP2006216894A 2006-08-09 2006-08-09 Processor and program generation device Expired - Lifetime JP4349392B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006216894A JP4349392B2 (en) 2006-08-09 2006-08-09 Processor and program generation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006216894A JP4349392B2 (en) 2006-08-09 2006-08-09 Processor and program generation device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP11835198A Division JP3861452B2 (en) 1998-04-28 1998-04-28 Processor and program generation device

Publications (2)

Publication Number Publication Date
JP2007004821A JP2007004821A (en) 2007-01-11
JP4349392B2 true JP4349392B2 (en) 2009-10-21

Family

ID=37690305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006216894A Expired - Lifetime JP4349392B2 (en) 2006-08-09 2006-08-09 Processor and program generation device

Country Status (1)

Country Link
JP (1) JP4349392B2 (en)

Also Published As

Publication number Publication date
JP2007004821A (en) 2007-01-11

Similar Documents

Publication Publication Date Title
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
KR101019347B1 (en) Pre-decoding variable length instructions
US5504932A (en) System for executing scalar instructions in parallel based on control bits appended by compounding decoder
US8904153B2 (en) Vector loads with multiple vector elements from a same cache line in a scattered load operation
CN108139908B (en) Move prefix instructions
TWI517041B (en) Apparatus and method for propagating conditionally evaluated values in simd/vector execution
US5463746A (en) Data processing system having prediction by using an embedded guess bit of remapped and compressed opcodes
JPH0773036A (en) Method for discrimination of instruction sequence and for addition of tag
JPH04313121A (en) Instruction memory device
JP2003085000A (en) Trace information production device and its method
US5752015A (en) Method and apparatus for repetitive execution of string instructions without branch or loop microinstructions
JP3449186B2 (en) Data processing device having pipeline bypass function
TW201908757A (en) Test the bit value inside a vector element
US8549266B2 (en) System and method of instruction modification
JP5759537B2 (en) System and method for evaluating data values as instructions
JP3861452B2 (en) Processor and program generation device
JP4349392B2 (en) Processor and program generation device
KR900010587A (en) High performance instruction execution method and device in production line
CN108920188B (en) Method and device for expanding register file
KR100322725B1 (en) Millicode flags with specialized update and branch instruction
EP0545927B1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
JP5437878B2 (en) Information processing device
KR920003182B1 (en) Microprocessor
US6922773B2 (en) System and method for encoding constant operands in a wide issue processor
CN109144572A (en) Instruction executing method and processor

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090630

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090713

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

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130731

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term