JP2007102596A - Central processing unit - Google Patents

Central processing unit Download PDF

Info

Publication number
JP2007102596A
JP2007102596A JP2005293242A JP2005293242A JP2007102596A JP 2007102596 A JP2007102596 A JP 2007102596A JP 2005293242 A JP2005293242 A JP 2005293242A JP 2005293242 A JP2005293242 A JP 2005293242A JP 2007102596 A JP2007102596 A JP 2007102596A
Authority
JP
Japan
Prior art keywords
processing unit
branch
data
program
transfer
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.)
Pending
Application number
JP2005293242A
Other languages
Japanese (ja)
Inventor
Takashi Nishi
岳志 西
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.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan 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 Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP2005293242A priority Critical patent/JP2007102596A/en
Publication of JP2007102596A publication Critical patent/JP2007102596A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a central processing unit including a branch prediction means capable of removing a loss related to branch processing with a smaller circuit scale and without using a delay slot. <P>SOLUTION: A program load processing part 22 predicts, based on a branch result signal 35 showing occurrence of branch in an execution processing part 25, whether program data to be decoded includes branch or not, preliminarily acquires, when predicted to include the branch, program data of the branch destination address from a program storage area 21, transfers it with the program data to be decoded to a transfer processing part 23, and transfers first transfer data without branch and second transfer data with branch to a decoding processing part 24. The decoding processing part 24 selects and outputs one of decode data of the first and second transfer data according to the occurrence of branch. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は中央処理装置に係り、特にプログラムの分岐予測手段を備えた中央処理装置に関する。   The present invention relates to a central processing unit, and more particularly, to a central processing unit including a program branch prediction unit.

年々パーソナルコンピュータ(以下、パソコン)や電子機器に用いられている中央処理装置(以下、CPU)への処理の負荷が増大し、処理能力の向上が望まれている。そのため、従来からCPUでは複数ステージのパイプライン処理を実行している(例えば、非特許文献1参照)。パイプライン処理ではCPUはプログラム分岐に係る処理時間を効率良く短縮することが処理能力向上に直結する。   The processing load on a central processing unit (hereinafter referred to as CPU) used in personal computers (hereinafter referred to as personal computers) and electronic devices is increasing year by year, and improvement in processing capacity is desired. Therefore, conventionally, a CPU executes a multi-stage pipeline process (see, for example, Non-Patent Document 1). In pipeline processing, the CPU can directly reduce the processing time related to program branching, which directly leads to improvement in processing capability.

図15はこの従来のパイプライン処理を実行するCPUの一例のブロック図を示す。同図において、CPUはプログラムを保存するプログラム保存領域(memory)1と、プログラム保存領域1からプログラムのロードを行うプログラムロード処理部(pre-fetch)2と、プログラムロード処理部2にロードされたプログラムを転送する転送処理部(Fetch stage)3と、転送処理部3から転送されたプログラムを復号する復号処理部(Decode stage)4と、復号処理部4から送られてきた復号データを実行する実行処理部(Execute stage)5と、実行処理部5から送られてきた実行結果を書き込む実行結果保存処理部(Writeback stage)とからなり、複数ステージのパイプライン処理を実行する。   FIG. 15 is a block diagram showing an example of a CPU that executes the conventional pipeline processing. In the figure, the CPU is loaded into a program storage area (memory) 1 for storing a program, a program load processing section (pre-fetch) 2 for loading a program from the program storage area 1, and a program load processing section 2. The transfer processing unit (Fetch stage) 3 for transferring the program, the decoding processing unit (Decode stage) 4 for decoding the program transferred from the transfer processing unit 3, and the decoded data sent from the decoding processing unit 4 are executed. An execution processing unit (Execute stage) 5 and an execution result storage processing unit (Writeback stage) for writing an execution result sent from the execution processing unit 5 execute pipeline processing of a plurality of stages.

この従来のCPUでは、図16のタイミングチャートに示すように、最初の実行単位(サイクル)1Tでは、プログラムロード処理部2がプログラム保存領域1から読み出したプログラム(命令)を、転送処理部3が復号処理部4へ転送する処理F[0]を行い、次の実行単位2Tでは、転送処理部3が2番目のプログラムを復号処理部4へ転送する処理F[1}を行うと同時に、復号処理部4が転送された最初のプログラムを復号して復号データを出力する処理D[0]を行う。   In the conventional CPU, as shown in the timing chart of FIG. 16, in the first execution unit (cycle) 1T, the transfer processing unit 3 reads the program (instruction) read from the program storage area 1 by the program load processing unit 2. The process F [0] to be transferred to the decoding processor 4 is performed, and in the next execution unit 2T, the transfer processor 3 performs the process F [1} to transfer the second program to the decoder 4 at the same time. The processing unit 4 performs processing D [0] for decoding the first transferred program and outputting the decoded data.

次の実行単位3Tでは、復号データが入力された実行処理部5がその復号データを実行する処理E[0]を行うと同時に、転送処理部3が3番目のプログラムを復号処理部4へ転送する処理F[2}を行うと共に、復号処理部4が転送されてきた2番目のプログラムを復号して復号データを出力する処理D[1]を行う。次の実行単位4Tでは、実行処理部5で実行された実行結果を実行結果保存処理部6が書き込む処理W[0]を行うと共に、2番目の復号データが入力された実行処理部5がその復号データを実行する処理E[1]を行い、かつ、復号処理部4が転送されてきた3番目のプログラムを復号して復号データを出力する処理D[2]を行う。   In the next execution unit 3T, the execution processing unit 5 to which the decoded data is input performs the process E [0] for executing the decoded data, and at the same time, the transfer processing unit 3 transfers the third program to the decoding processing unit 4. The process F [2} is performed, and the process D [1] is performed in which the decryption processing unit 4 decrypts the transferred second program and outputs decrypted data. In the next execution unit 4T, the execution result storage processing unit 6 writes the execution result executed by the execution processing unit 5, and the execution processing unit 5 to which the second decoded data is input Processing E [1] for executing the decoded data is performed, and processing D [2] for decoding the third program transferred by the decoding processing unit 4 and outputting the decoded data is performed.

このとき、実行結果保存処理部6は、実行処理部5が次に実行すべきプログラムの実行順序を変更させる処理である分岐の発生があるかどうか判断するため、プログラムロード処理部2から転送処理部3へのプログラム転送、及び転送処理部3から復号処理部4へのプログラム転送は行わない。その後、実行結果保存処理部6は、実行処理部5で実行された2番目のプログラムの実行結果を実行単位5Tで書き込む処理W[1]を行った後、次の実行単位6Tの段階で、実行処理部5で実行された3番目のプログラムの実行結果を書き込む処理W[2]を行うと共に、分岐発生があるかどうかを決定し、その決定結果を示す分岐結果信号7をプログラムロード処理部2へ送出する。   At this time, the execution result storage processing unit 6 determines whether or not there is a branch that is a process for changing the execution order of the program to be executed next by the execution processing unit 5. The program transfer to the unit 3 and the program transfer from the transfer processing unit 3 to the decoding processing unit 4 are not performed. Thereafter, the execution result storage processing unit 6 performs the process W [1] for writing the execution result of the second program executed by the execution processing unit 5 in the execution unit 5T, and then at the next execution unit 6T stage. The process W [2] for writing the execution result of the third program executed by the execution processing unit 5 is performed, it is determined whether or not a branch has occurred, and a branch result signal 7 indicating the determination result is sent to the program load processing unit Send to 2.

プログラムロード処理部2は、入力された分岐結果信号7が分岐発生無しを示すときは、次の実行単位7Tでプログラム保存領域1から4番目のプログラムを読み出してそれを転送処理部3が復号処理部4へ転送させる処理F[3]を行い、入力された分岐結果信号7が分岐発生有りを示すときは、次の実行単位7Tでプログラム保存領域1から分岐先の例えば7番目のプログラムを読み出してそれを転送処理部3が復号処理部4へ転送させる処理F[6]を行う。以下、同様の動作が繰り返される。   When the input branch result signal 7 indicates that no branch has occurred, the program load processing unit 2 reads the fourth program from the program storage area 1 in the next execution unit 7T, and the transfer processing unit 3 decodes it. When processing F [3] to be transferred to the unit 4 is performed and the input branch result signal 7 indicates that a branch has occurred, the seventh execution program at the branch destination is read from the program storage area 1 in the next execution unit 7T. Then, the transfer processing unit 3 performs processing F [6] in which the transfer processing unit 3 transfers it to the decoding processing unit 4. Thereafter, the same operation is repeated.

従って、従来のCPUにおけるプログラムの分岐は、図15の実行結果保存処理部6にて分岐があることを判断し、プログラムロード処理部2がその結果を用いて分岐先のプログラムをプログラム格納領域1より読み出しを行うことで、分岐処理を行っており、プログラムの分岐は、図16に示すように分岐判断が行えるまで、遅延スロットを挿入している。このため、図16の場合、従来のCPUでは、分岐処理が発生する度に、4T〜6Tに示したような3CPUサイクルの遅延が生じ、プログラムの量が多くなるほど分岐が増え、CPU動作に膨大な実行時間のロスが発生することが課題であった。   Therefore, the branch of the program in the conventional CPU is determined by the execution result storage processing unit 6 of FIG. 15 to determine that there is a branch, and the program load processing unit 2 uses the result to determine the branch destination program in the program storage area 1. The branch processing is performed by further reading, and a delay slot is inserted into the branch of the program until the branch can be determined as shown in FIG. Therefore, in the case of FIG. 16, in the conventional CPU, every time a branch process occurs, a delay of 3 CPU cycles as shown in 4T to 6T occurs. As the amount of programs increases, the number of branches increases, and the CPU operation becomes enormous. The problem was that a long run time loss occurred.

そこで、従来は上記の分岐処理にかかるオーバーヘッドを軽減するために、分岐発生頻度から分岐先を予測する機能を有することを特徴とするCPU(例えば、特許文献1参照)や、分岐予測のためにパイプライン処理を複数持つCPU(例えば、特許文献2参照)などが提案されている。   Therefore, conventionally, in order to reduce the overhead of the above branch processing, a CPU (for example, see Patent Document 1) having a function of predicting a branch destination from the branch occurrence frequency, for branch prediction A CPU having a plurality of pipeline processes (see, for example, Patent Document 2) has been proposed.

図17は上記の特許文献1記載の従来のCPUの一例のブロック図を示す。同図中、図15と同一構成部分には同一符号を付し、その説明を省略する。図17に示す従来のCPUでは、プログラムロード処理部8が、分岐命令のアドレスに対応した分岐先のアドレスと、アクセスした回数及び分岐予測結果をテーブルとしてバッファ9へ登録することで、分岐発生パターンから分岐予測の精度を上げるものである。   FIG. 17 is a block diagram showing an example of a conventional CPU described in Patent Document 1 described above. In the figure, the same components as those in FIG. 15 are denoted by the same reference numerals, and the description thereof is omitted. In the conventional CPU shown in FIG. 17, the program load processing unit 8 registers the branch destination address corresponding to the address of the branch instruction, the number of accesses, and the branch prediction result in the buffer 9 as a table, so that a branch occurrence pattern is obtained. This improves the accuracy of branch prediction.

図18は上記の特許文献2記載の従来のCPUの一例のブロック図を示す。同図中、図15と同一構成部分には同一符号を付し、その説明を省略する。図18に示す従来のCPUは、分岐予測を行わずに遅延スロットを利用するタイプであるが、プログラム保存領域1から取得したデータをパイプラインへ導入する前に、予め分岐判断命令であるか否かをプログラムロード処理部10で判定し、分岐判断命令無しの非分岐命令はバッファ11aに格納し、分岐判断命令有りの分岐命令はバッファ11bに格納し、バッファ11aからの非分岐命令は転送処理部3a、復号処理部4a、実行処理部5aによりパイプライン処理すると共に、バッファ11bからの分岐命令は転送処理部3b、復号処理部4b、実行処理部5bによりパイプライン処理し、最終段の処理を実行結果保存処理部12で処理するものである。   FIG. 18 shows a block diagram of an example of a conventional CPU described in Patent Document 2 above. In the figure, the same components as those in FIG. 15 are denoted by the same reference numerals, and the description thereof is omitted. The conventional CPU shown in FIG. 18 is a type that uses a delay slot without performing branch prediction, but before introducing the data acquired from the program storage area 1 into the pipeline, whether or not it is a branch determination instruction in advance. Is determined by the program load processing unit 10, a non-branch instruction without a branch determination instruction is stored in the buffer 11a, a branch instruction with a branch determination instruction is stored in the buffer 11b, and a non-branch instruction from the buffer 11a is transferred. The pipeline processing is performed by the unit 3a, the decoding processing unit 4a, and the execution processing unit 5a, and the branch instruction from the buffer 11b is pipelined by the transfer processing unit 3b, the decoding processing unit 4b, and the execution processing unit 5b. Is processed by the execution result storage processing unit 12.

藤広哲也,「CPUは何をしているのか シリコンチップに秘められた驚異の世界」,株式会社すばる舎,2002年9月発行Tetsuya Fujihiro, “What the CPU is doing, the world of wonder hidden in silicon chips”, Subaru Corporation, published September 2002 特許第2567978号公報Japanese Patent No. 2567978 特開2004−192021号公報JP 2004-192021 A

しかしながら、図17に示した従来のCPUでは、分岐を発生させるアドレスへのアクセス回数が多くなければ、そのアドレスからの分岐先の予測精度が上げられないという問題があり、また、全ての分岐パターンを登録しておくことが必要であるため、回路規模が予測できず、プログラムの内容に左右され回路が大規模化する可能性があることが課題である。   However, the conventional CPU shown in FIG. 17 has a problem that the prediction accuracy of the branch destination from the address cannot be increased unless the number of accesses to the address causing the branch is large, and all the branch patterns. Therefore, the circuit size cannot be predicted, and there is a possibility that the circuit may be enlarged depending on the contents of the program.

また、図18に示した従来のCPUは、最終段の処理ステージ以外の処理ステージが、2系統のパイプライン処理ステージを形成する構成であるため、通常のパイプライン回路規模が単純に2倍近く増大することが課題である。   Further, the conventional CPU shown in FIG. 18 has a configuration in which the processing stages other than the final processing stage form two pipeline processing stages, so that the normal pipeline circuit scale is simply nearly double. Increasing is a challenge.

本発明は以上の点に鑑みなされたもので、より少ない回路規模で、かつ、遅延スロットを利用せずに分岐処理にかかるロスを取り除き得る分岐予測手段を備えた中央処理装置を提供することを目的とする。   The present invention has been made in view of the above points, and provides a central processing unit having a branch prediction unit capable of removing a loss associated with branch processing without using a delay slot with a smaller circuit scale. Objective.

上記目的を達成するため、本発明は、プログラムデータを格納しているプログラム保存領域と、プログラム保存領域からプログラムデータをロードするプログラムロード処理部と、プログラムロード処理部より転送されたプログラムデータを転送する転送処理部と、転送処理部から転送されたプログラムデータを復号する復号処理部と、復号処理部から送られてきた復号データを実行すると共に、プログラムデータの実行順序を変更するための処理である分岐が行われたか否かを示す分岐結果信号を生成してプログラムロード処理部へ出力する実行処理部と、実行処理部より送られてきた実行結果を書き込む実行結果保存処理部とからなり、複数ステージのパイプライン処理を実行する中央処理装置であって、
上記のプログラムロード処理部は、プログラム保存領域から読み出した、これから復号するプログラムデータを保存する保存手段と、分岐結果信号に基づき、これから復号するプログラムデータに分岐があるか否かを判断し、分岐があると判断したときは、その分岐先アドレスのプログラムデータを予めプログラム保存領域から取得して保存手段に保存し、保存手段から保存されているプログラムデータを転送処理部へ出力すると共に、分岐結果信号に基づき、少なくともその出力プログラムデータの転送処理部での格納場所を指示する制御信号及び復号処理部から出力される復号データの選択指示を行う制御信号を出力する手段とを備え、
上記の転送処理部は、プログラムロード処理部から転送されたプログラムデータを、格納場所を指示する制御信号に基づき、そのプログラムデータが分岐先アドレスのデータであるか否かに応じて異なる場所に格納する転送データ保存手段と、転送データ保存手段に保存されているプログラムデータのうち、分岐がなかったときに復号されるべき第1のプログラムデータと分岐があったときに復号されるべき第2のプログラムデータとを選択してそれぞれ第1及び第2の転送データとして出力する転送データ選択手段とを備え、
上記の復号処理部は、転送処理部から入力された第1及び第2の転送データを別々に復号して第1及び第2の復号データを生成して保存する復号・保存手段と、プログラムロード処理部からの復号データの選択指示を行う制御信号に従って、復号・保存手段からの第1及び第2の復号データの一方を選択して実行処理部へ出力する復号データ選択手段とを備えることを特徴とする。
To achieve the above object, the present invention transfers a program storage area for storing program data, a program load processing section for loading program data from the program storage area, and program data transferred from the program load processing section A transfer processing unit, a decoding processing unit that decodes the program data transferred from the transfer processing unit, and a process for executing the decoded data sent from the decoding processing unit and changing the execution order of the program data. An execution processing unit that generates a branch result signal indicating whether or not a certain branch has been performed and outputs the branch result signal to the program load processing unit, and an execution result storage processing unit that writes the execution result sent from the execution processing unit, A central processing unit that executes multi-stage pipeline processing,
The program load processing unit determines whether or not there is a branch in the program data to be decoded based on the branch result signal based on the branch result signal and the storage unit that stores the program data to be decoded from the program storage area. When it is determined that the program data of the branch destination address is acquired from the program storage area in advance and stored in the storage unit, the program data stored from the storage unit is output to the transfer processing unit, and the branch result A control signal for instructing a storage location in the transfer processing unit of the output program data based on the signal and a control signal for instructing selection of the decoded data output from the decoding processing unit, and
The transfer processing unit stores the program data transferred from the program load processing unit in different locations depending on whether the program data is the data of the branch destination address based on the control signal indicating the storage location. Transfer data storage means to perform, and among the program data stored in the transfer data storage means, the first program data to be decoded when there is no branch and the second program data to be decoded when there is a branch Transfer data selecting means for selecting program data and outputting the first and second transfer data, respectively,
The decoding processing unit includes decoding / storing means for separately decoding the first and second transfer data input from the transfer processing unit to generate and store the first and second decoded data, and program load Decoding data selection means for selecting one of the first and second decoding data from the decoding / storing means and outputting to the execution processing section in accordance with a control signal for instructing selection of decoding data from the processing section. Features.

この発明では、実行処理部で分岐が発生したか否かを示す分岐結果信号に基づいて、プログラムロード処理部が、これから復号するプログラムデータに分岐があるか否かを判断し、分岐があると判断したときは、その分岐先アドレスのプログラムデータを予めプログラム保存領域から取得して、これから復号するプログラムデータと共に転送処理部へセットして一旦保存した後、分岐が発生しないときの第1の転送データと分岐が発生したときの第2の転送データを復号処理部にセットしてそれぞれ復号させ、分岐が発生したか否かに応じてそれらの復号データの一方を選択するようにしたため、2系統のパイプライン処理系を設けなくても、分岐発生判断から分岐先の処理に遷移するまでに要するサイクル数を0に短縮することができる。   In this invention, based on a branch result signal indicating whether or not a branch has occurred in the execution processing unit, the program load processing unit determines whether or not there is a branch in the program data to be decoded. When it is determined, the program data of the branch destination address is obtained in advance from the program storage area, set together with the program data to be decoded to the transfer processing unit and temporarily stored, and then the first transfer when no branch occurs Since the data and the second transfer data when the branch occurs are set in the decoding processing unit and are decoded respectively, one of the decoded data is selected depending on whether the branch has occurred or not. Even if the pipeline processing system is not provided, the number of cycles required from the branch occurrence determination to the branch destination process can be reduced to zero.

本発明によれば、2系統のパイプライン処理系を設けなくても、分岐発生判断から分岐先の処理に遷移するまでに要するサイクル数を0に短縮することができるため、より少ない回路規模で、かつ、遅延スロットを利用せずに分岐処理時間にかかるオーバーヘッドを無くすことができる。   According to the present invention, the number of cycles required from the branch occurrence determination to the transition to the branch destination process can be shortened to zero without providing two pipeline processing systems. In addition, the overhead for the branch processing time can be eliminated without using the delay slot.

次に、本発明を実施するための最良の形態について図面と共に説明する。先ず、本明細書中に用いられる変数h,i,j,k,m,n,p,qの関連について説明する。変数h,m,p,qは、それぞれフェッチ(Fetch),デコード1(Decode1),エグゼキュート(Execute),ライトバック(Writeback)ステージにおける、プログラムのアドレスを示す。デコード(Decode)ステージは二つ存在するので、それらを区別してデコード1(Decode1),デコード2(Decode2)とする。nは、Decode2ステージにおけるプログラムのアドレスを示す。iは、分岐予測先アドレスを示す。jは、1T実行時間前の分岐予測先アドレスiの次のアドレスを示す。kは、1T実行時間前の分岐予測先アドレスiが分岐すると予測し、そのiの予測先アドレスを示す。   Next, the best mode for carrying out the present invention will be described with reference to the drawings. First, the relationship between the variables h, i, j, k, m, n, p, and q used in this specification will be described. Variables h, m, p, and q indicate program addresses in the fetch, decode 1 (decode1), execute (execute), and writeback (writeback) stages, respectively. Since there are two decoding (Decode) stages, they are distinguished as decoding 1 (Decode 1) and decoding 2 (Decode 2). n indicates the address of the program in the Decode2 stage. i indicates a branch prediction destination address. j indicates the address next to the branch prediction destination address i before 1T execution time. k predicts that the branch prediction destination address i before 1T execution time branches, and indicates the prediction destination address of i.

図1は本発明になる中央処理装置の一実施の形態のパイプライン処理時のブロック図を示す。同図に示すように、本実施の形態の中央処理装置(CPU)は、プログラムを保存するプログラム保存領域(memory)21と、プログラム保存領域21からプログラムのロードを行うプログラムロード処理部(pre-fetch)22と、プログラムロード処理部22にロードされたプログラムを転送する転送処理部(Fetch stage)23と、転送処理部23から転送されたプログラムを復号する復号処理部(Decode stage)24と、復号処理部24から送られてきた復号データを実行する実行処理部(Execute stage)25と、実行処理部25から送られてきた実行結果を書き込む実行結果保存処理部(Writeback stage)26とからなり、複数ステージのパイプライン処理を実行する。   FIG. 1 is a block diagram at the time of pipeline processing of an embodiment of a central processing unit according to the present invention. As shown in the figure, the central processing unit (CPU) of the present embodiment includes a program storage area (memory) 21 for storing programs and a program load processing unit (pre-) for loading programs from the program storage area 21. fetch) 22, a transfer processing unit (Fetch stage) 23 for transferring the program loaded in the program load processing unit 22, a decoding processing unit (Decode stage) 24 for decoding the program transferred from the transfer processing unit 23, An execution processing unit (Execute stage) 25 for executing the decoded data sent from the decoding processing unit 24, and an execution result storage processing unit (Writeback stage) 26 for writing the execution result sent from the execution processing unit 25. Execute multi-stage pipeline processing.

この実施の形態では、プログラムロード処理部22、転送処理部23、復号処理部24を、プログラムロード処理部22からの出力である信号転送データ更新指示信号31を送信する信号線、転送データ選択信号32を送信する信号線、復号指示信号33を送信する信号線、復号データ選択信号34を送信する信号線を用いて接続し、実行処理部25からの出力である分岐結果信号35を送信する信号線をプログラムロード処理部22へ接続している。   In this embodiment, the program load processing unit 22, the transfer processing unit 23, and the decoding processing unit 24 are connected to a signal line for transmitting a signal transfer data update instruction signal 31 that is an output from the program load processing unit 22, and a transfer data selection signal. 32, a signal line for transmitting a decoding instruction signal 33, a signal line for transmitting a decoded data selection signal 34, and a signal for transmitting a branch result signal 35 that is an output from the execution processing unit 25. The line is connected to the program load processing unit 22.

プログラム保存領域21には、図2(A)に示すように、アドレスに対応した本実施の形態の中央処理装置で用いるプログラムデータが格納されている。プログラムデータの各々は、図2(B)に示すように、固定ビット幅xを持つオペコードと、可変ビット幅を持つオペランドA(ビット幅y)及びオペランドB(ビット幅z)とからなる。仮に、使用する中央処理装置のプログラムデータビット幅が32ビットである場合、上記のオペコード、オペランドA、オペランドBのそれぞれのビット幅加算値(x+y+z)は最大「32」である。   As shown in FIG. 2A, the program storage area 21 stores program data used in the central processing unit of the present embodiment corresponding to the address. As shown in FIG. 2B, each piece of program data includes an operation code having a fixed bit width x, an operand A (bit width y) and an operand B (bit width z) having a variable bit width. If the program data bit width of the central processing unit to be used is 32 bits, the bit width addition value (x + y + z) of each of the above operation code, operand A, and operand B is “32” at the maximum.

中央処理装置のプログラムデータビット幅が32ビットで、上記オペコードに分岐命令を持った場合のプログラムデータの内部を図2(C)に示す。同図(C)に示すように、分岐命令はオペコードと同等の固定のビット幅xを持つ。分岐先アドレスを表すビット幅は、オペコードのビット幅との加算値が「32」を越えない固定幅uを持つ。また、図2(C)では、残りのビット幅v(=32−(x+u))は、N/A(not available)領域としている。   FIG. 2C shows the inside of the program data when the program data bit width of the central processing unit is 32 bits and the operation code has a branch instruction. As shown in FIG. 5C, the branch instruction has a fixed bit width x equivalent to the operation code. The bit width representing the branch destination address has a fixed width u in which the added value with the bit width of the operation code does not exceed “32”. In FIG. 2C, the remaining bit width v (= 32− (x + u)) is an N / A (not available) area.

次に、プログラムロード処理部22の構成について説明する。図3は図1のプログラムロード処理部22の一実施の形態のブロック図を示す。プログラムロード処理部22は、図3に示すように、プログラムデータ保存部221及びシーケンス処理部222から構成されている。プログラムデータ保存部221は、図1のプログラム保存領域21からプログラムデータ36を保存した後、図1の転送処理部23へ転送データ38として出力する。また、シーケンス処理部222は、図1の実行処理部25から分岐結果信号35を入力として受け、図1の転送処理部23へ転送データ更新指示信号31、転送データ選択信号32を出力し、復号処理部24へ復号データ選択信号34、復号指示信号33を出力し、プログラム保存領域21へ読み出し信号37を出力する。   Next, the configuration of the program load processing unit 22 will be described. FIG. 3 shows a block diagram of an embodiment of the program load processing unit 22 of FIG. The program load processing unit 22 includes a program data storage unit 221 and a sequence processing unit 222 as shown in FIG. The program data storage unit 221 stores the program data 36 from the program storage area 21 of FIG. 1 and then outputs the program data 36 to the transfer processing unit 23 of FIG. Further, the sequence processing unit 222 receives the branch result signal 35 from the execution processing unit 25 of FIG. 1 as an input, outputs a transfer data update instruction signal 31 and a transfer data selection signal 32 to the transfer processing unit 23 of FIG. A decoded data selection signal 34 and a decoding instruction signal 33 are output to the processing unit 24, and a read signal 37 is output to the program storage area 21.

次に、プログラムロード処理部22の動作について説明する。図4はプログラムロード処理部22の概略動作説明用フローチャートを示す。プログラムロード処理部22は、プログラム保存領域21からのプログラムデータをプログラムデータ保存部221で保存し、そのプログラムデータに基づいてシーケンス処理部222が動作を開始すると(ステップS1)、その開始時(CPU実行単位で1T:Tは単位時間(動作クロック周波数))に、後述する初期処理1を行った後(ステップS2)、次のCPUステップに移行したかを判断し(ステップS3)、移行していれば初期処理2は終了したかを判定する(ステップS4)。   Next, the operation of the program load processing unit 22 will be described. FIG. 4 is a flowchart for explaining the schematic operation of the program load processing unit 22. The program load processing unit 22 stores the program data from the program storage area 21 in the program data storage unit 221, and when the sequence processing unit 222 starts to operate based on the program data (step S1), at the start (CPU 1T in execution unit: T is the unit time (operation clock frequency)) After performing the initial processing 1 described later (step S2), it is determined whether or not the next CPU step has been shifted (step S3) If so, it is determined whether the initial process 2 has been completed (step S4).

初期処理2がまだ終了していないときには、次のサイクル(2T)で後述する初期処理2を行い(ステップS5)、初期処理2が終了していれば、初期処理3が終了したかを判定する(ステップS6)。初期処理3がまだ行われていない時には、その次のサイクル(3T)で後述する初期処理3を行い(ステップS7)、初期処理3も終了していれば、その次のサイクル(3T)以降、毎サイクル後述する分岐予測を行う(ステップS8)。   If the initial process 2 has not yet been completed, the initial process 2 described later is performed in the next cycle (2T) (step S5). If the initial process 2 has been completed, it is determined whether the initial process 3 has been completed. (Step S6). When the initial process 3 has not been performed yet, the initial process 3 to be described later is performed in the next cycle (3T) (step S7). If the initial process 3 is also completed, the subsequent cycle (3T) and thereafter Branch prediction, which will be described later, is performed in each cycle (step S8).

図5は図4のステップS2による初期処理1の詳細動作説明用フローチャー卜を示す。初期処理1では、1T前に処理される予定の内容が分岐無しの場合に必要なアドレスhにおけるフェッチステージF_N[h]に、プログラムの開始アドレス(ここでは仮に0x0とする)(図13、図14参照)のデータをセットし(ステップS11)、アドレスmにおけるデコードステージD_1[m]にm=0をセットし(ステップS12)、アドレスpにおけるエグゼキュートステージE[p]にp=0をセットした後(ステップS13)、転送処理部23へ転送データ更新指示信号32と、転送データ選択信号33を出力し(ステップS14)、処理を終了する(ステップS15)。   FIG. 5 shows a flowchart for explaining the detailed operation of the initial process 1 in step S2 of FIG. In the initial process 1, the program start address (here, assumed to be 0x0) is added to the fetch stage F_N [h] at the address h required when the content to be processed 1T before is not branched (FIG. 13, FIG. 14) (step S11), m = 0 is set in the decode stage D_1 [m] at the address m (step S12), and p = 0 is set in the execute stage E [p] at the address p. After that (step S13), the transfer data update instruction signal 32 and the transfer data selection signal 33 are output to the transfer processing unit 23 (step S14), and the process is terminated (step S15).

図6は図4のステップS5による初期処理2についての詳細動作説明用フローチャートを示す。初期処理2では、処理を開始するとF_N[h]に、開始アドレスの次のアドレス(ここでは仮に0x1とする)をセットし(ステップS21)、D_1[m]に、m=1をセットし(ステップS22)、1T前に処理される予定の内容が分岐無しの場合に必要なアドレスiにおけるフェッチステージF_B[i]に、F_N[0]からの分岐予測値(アドレス)yをセット(i=y)し(ステップS23)、分岐予測値が存在するかどうか判定する(ステップS24)。なお、上記のF_N[]には、1T前に処理される予定のアドレスに+1したアドレスデータが入り、F_B[]には、1T前に処理される予定のアドレスが分岐した場合の分岐先アドレスデータが入る。   FIG. 6 shows a flowchart for explaining the detailed operation of the initial process 2 in step S5 of FIG. In the initial process 2, when the process is started, the address next to the start address (here, 0x1 is assumed) is set in F_N [h] (step S21), and m = 1 is set in D_1 [m] ( Step S22) The branch predicted value (address) y from F_N [0] is set to the fetch stage F_B [i] at the address i required when the content scheduled to be processed 1T before is no branch (i = y) (step S23), and it is determined whether a branch prediction value exists (step S24). Note that F_N [] contains address data added to the address scheduled to be processed 1T before, and F_B [] has a branch destination address when the address scheduled to be processed 1T branches. Contains data.

分岐予測値が存在する場合、F_B[j]に、アドレスiのデータを転送処理部23へセットした後(ステップS25)、アドレスnにおけるデコードステージD_2[n]に、アドレスiをセット(n=i)する(ステップS26)。分岐予測値が存在しない場合は、ステップS25、S26の処理をジャンプし、何もセットしない。続いて、転送処理部23へ転送データ更新指示信号32と転送データ選択信号33を出力すると共に、復号処理部24へ復号指示信号33と復号データ選択信号34を出力して(ステップS27)、初期処理2を終了する(ステップS28)。   If there is a branch prediction value, the data at address i is set in F_B [j] in transfer processing unit 23 (step S25), and then address i is set in decode stage D_2 [n] at address n (n = i) (step S26). When there is no branch prediction value, the processing of steps S25 and S26 is jumped and nothing is set. Subsequently, the transfer data update instruction signal 32 and the transfer data selection signal 33 are output to the transfer processing unit 23, and the decoding instruction signal 33 and the decoded data selection signal 34 are output to the decoding processing unit 24 (step S27). Processing 2 ends (step S28).

図7は図4のステップS7による初期処理3についての詳細動作説明用フローチャートを示す。初期処理3は、処理を開始すると1T前に処理される予定の内容が分岐有りの場合に必要なアドレスjにおけるフェッチステージF_BN[j]にアドレスiをセット(j=i+1)し、1T前に処理される予定の内容が分岐有りの場合に必要なアドレスkにおけるフェッチステージF_BB[k]にF_B[i]からの分岐予測値vをセット(k=v)し、F_B[i]にF_N[h]からの分岐予測値uをセット(i=u)し(以上ステップS31)、分岐予測のアドレスjが存在するか判定し(ステップS32)、存在する場合はF_BN[j]にjのアドレスデータをセットし(ステップS33)、存在しない場合は分岐予測のアドレスkが存在するか判定する(ステップS34)。   FIG. 7 shows a flowchart for explaining the detailed operation of the initial process 3 in step S7 of FIG. Initial processing 3 sets the address i (j = i + 1) to the fetch stage F_BN [j] at the address j required when the content scheduled to be processed 1T before the start of processing is branched, and 1T before The branch predicted value v from F_B [i] is set (k = v) to the fetch stage F_BB [k] at the address k required when the content to be processed has a branch, and F_B [i] is set to F_N [ h] branch prediction value u is set (i = u) (step S31), and it is determined whether branch prediction address j exists (step S32). If it exists, j_address is assigned to F_BN [j]. Data is set (step S33), and if it does not exist, it is determined whether the branch prediction address k exists (step S34).

なお、上記のF_BN[]には、1T前に処理される予定のアドレスに+1したアドレスデータが入り、F_BB[]には、1T前に処理される予定のアドレスが分岐した場合の分岐先アドレスデータが入る。   Note that F_BN [] contains address data added to the address scheduled to be processed 1T before, and F_BB [] has a branch destination address when the address scheduled to be processed 1T branches. Contains data.

分岐予測のアドレスkが存在する場合はF_BB[k]にkのアドレスデータをセットし(ステップS35)、存在しない場合は分岐予測のアドレスiが存在するか判定し(ステップS36)、分岐予測のアドレスiが存在する場合はF_B[i]にiのアドレスデータをセットし(ステップS37)、分岐予測のアドレスiが存在しない場合はステップS38に進む。   If the branch prediction address k exists, the address data of k is set in F_BB [k] (step S35). If not, it is determined whether the branch prediction address i exists (step S36). If the address i exists, the address data of i is set in F_B [i] (step S37), and if the branch prediction address i does not exist, the process proceeds to step S38.

従って、上記のステップS32〜S37では、それぞれ分岐予測のアドレスj,k,iが存在するかどうか判定し、存在する場合は、そのアドレスデータを転送処理部23へセットし、存在しない場合は何もセットしない。続いて、F_N[h]にアドレスh+1のデータをセットし、転送処理部23へ転送データ更新指示信号32と転送データ選択信号33を出力すると共に、復号処理部24へ復号指示信号33と復号データ選択信号34を出力する。ステップS38の処理後、初期処理3を終了する(ステップS39)。   Accordingly, in the above steps S32 to S37, it is determined whether or not the branch prediction addresses j, k, i exist. If they exist, the address data is set in the transfer processing unit 23. Also do not set. Subsequently, the data at address h + 1 is set in F_N [h], the transfer data update instruction signal 32 and the transfer data selection signal 33 are output to the transfer processing unit 23, and the decoding instruction signal 33 and the decoded data are output to the decoding processing unit 24. The selection signal 34 is output. After the process of step S38, the initial process 3 is terminated (step S39).

図8は図4のステップS8における分岐予測処理についての詳細動作説明用フローチャートを示す。プログラムロード処理部22が、分岐予測の処理を開始すると、図1の実行処理部25からの分岐結果信号35を受けて、分岐が発生したかどうかを判断し(ステップS41)、分岐が発生した場合も発生しなかった場合も、次の分岐予測に備えて各ステージに所定のデータを格納する(ステップS42、S43)。ここで、所定のデータとは、F_N[]へ直前に処理したアドレス”h”を一つインクリメントしたアドレスに対応したF_N[h+1]に格納されるデータと、F_B[]へ上記F_N[h]で用いたアドレス”h”が分岐処理を持っている場合、分岐先のアドレス”y”に対応したF_B[y]に格納されるデータと、F_BN[]へ、直前に処理したF_B[i]のアドレス”i”を一つインクリメントしたアドレスに対応したF_BN[i+1]に格納されるデータと、F_BB[]へ、直前に処理したアドレス”i”が分岐処理を持っている場合、分岐先のアドレス”k”に対応したF_BB[k]に格納されるデータである。   FIG. 8 is a flowchart for explaining the detailed operation of the branch prediction process in step S8 of FIG. When the program load processing unit 22 starts the branch prediction process, it receives the branch result signal 35 from the execution processing unit 25 in FIG. 1 to determine whether or not a branch has occurred (step S41), and the branch has occurred. Regardless of the case, the predetermined data is stored in each stage in preparation for the next branch prediction (steps S42 and S43). Here, the predetermined data includes data stored in F_N [h + 1] corresponding to an address obtained by incrementing the address “h” processed immediately before F_N [], and F_N [] to F_B []. When the address “h” used in h] has a branch process, the data stored in F_B [y] corresponding to the branch destination address “y” and the F_B [ i] The address stored in F_BN [i + 1] corresponding to the address obtained by incrementing the address “i” by one and the address “i” processed immediately before F_BB [] have branch processing. , Data stored in F_BB [k] corresponding to the branch destination address “k”.

分岐が発生していた場合、実行処理部25のE[p]へ出力される復号データとして復号ステージD_2[m]のデータをセットし、復号ステージD_1[m]にアドレスjをセット(m=j)し、D_2[n]にアドレスkをセット(n=k)し、F_N[h]にアドレスj+1のデータをセットし、F_B[i]にF_BN[j]からの分岐先アドレスとして予め定めた予測値aをセット(i=a)し、F_BN[j]にアドレスk+1をセット(j=k+1)し、F_BB[k]にF_BB[k]からの分岐先アドレスとして予め定めた予測値bをセット(k=b)する(以上ステップS42)。   If a branch has occurred, the data of the decoding stage D_2 [m] is set as the decoded data output to E [p] of the execution processing unit 25, and the address j is set to the decoding stage D_1 [m] (m = j), the address k is set to D_2 [n] (n = k), the data of the address j + 1 is set to F_N [h], and the branch destination address from F_BN [j] is previously set to F_B [i]. The predicted value a is set (i = a), the address k + 1 is set to F_BN [j] (j = k + 1), and the predicted value b predetermined as the branch destination address from F_BB [k] is set to F_BB [k]. Is set (k = b) (step S42).

分岐が発生してなかった場合は、実行処理部25のE[p]へ出力される復号データとして復号ステージD_1[m]のデータをセットし、復号ステージD_1[m]にアドレスhをセット(m=h)し、D_2[n]にアドレスiをセット(n=i)し、F_BB[k]にF_B[i]からの分岐先アドレスとして予め定めた予測値bをセット(k=b)し、F_BN[j]にアドレスi+1をセット(j=i+1)し、F_B[i]にF_N[h]からの分岐先アドレスとして予め定めた予測値aをセット(i=a)し、F_N[h]にアドレスh+1のデータを転送する(以上ステップS43)。   When the branch has not occurred, the data of the decoding stage D_1 [m] is set as the decoded data output to E [p] of the execution processing unit 25, and the address h is set to the decoding stage D_1 [m] ( m = h), an address i is set in D_2 [n] (n = i), and a predicted value b set in advance as a branch destination address from F_B [i] is set in F_BB [k] (k = b) F_BN [j] is set to address i + 1 (j = i + 1), F_B [i] is set to a predetermined predicted value a as a branch destination address from F_N [h] (i = a), and F_N [j] The data at address h + 1 is transferred to h] (step S43).

分岐があった場合はステップS42が、また分岐がなかった場合はステップS43の処理が終わると、それぞれセットした分岐予測のアドレスj,i,kについて存在するかどうか確認する。プログラムロード処理部22は、図3のシーケンス処理部222において、分岐予測のアドレスが存在すると判断した場合、図2(C)に示したプログラムデータ中の分岐先アドレスのプログラムデータを取得し、一旦、図3のプログラムデータ保存部221へ格納した後、転送処理部23へ転送する際に、図8のフローチャートに従って、後述する転送処理部23内の4つある転送データ保存部231〜234のいずれかにセットして格納する。   If there is a branch, the process proceeds to step S42. If there is no branch, and the process of step S43 is completed, it is confirmed whether or not there is a branch prediction address j, i, k set. When the sequence processing unit 222 in FIG. 3 determines that the branch prediction address exists, the program load processing unit 22 acquires the program data at the branch destination address in the program data shown in FIG. 3, when data is stored in the program data storage unit 221 and then transferred to the transfer processing unit 23, any one of the four transfer data storage units 231 to 234 in the transfer processing unit 23, which will be described later, according to the flowchart of FIG. 8. Set crab and store.

一方、分岐予測アドレスが存在しなければ、プログラムデータ取得動作は行わない。このため、分岐予測アドレスが存在した場合に格納する予定であった転送データ保存部231〜234のいずれかにはプログラムデータは格納されない。   On the other hand, if there is no branch prediction address, the program data acquisition operation is not performed. For this reason, program data is not stored in any of the transfer data storage units 231 to 234 that are scheduled to be stored when a branch prediction address exists.

すなわち、シーケンス処理部222は、まず分岐予測のアドレスjが存在するかどうか判定し(ステップS44)、存在する場合はF_BN[j]にjのアドレスデータを転送処理部23へ転送するが(ステップS45)、存在しない場合は分岐予測のアドレスiが存在するかどうか判定する(ステップS46)。   That is, the sequence processing unit 222 first determines whether or not the branch prediction address j exists (step S44), and if it exists, transfers the j address data to the transfer processing unit 23 in F_BN [j] (step S44). S45) If not, it is determined whether the branch prediction address i exists (step S46).

分岐予測のアドレスiが存在する場合は、F_B[i]にiのアドレスデータを転送処理部23へ転送するが(ステップS47)、存在しない場合は分岐予測のアドレスkが存在するかどうか判定する(ステップS48)。分岐予測のアドレスkが存在する場合はF_BB[k]にkのアドレスデータを転送処理部23へ転送するが(ステップS49)、存在しない場合は転送処理部23へ転送データ更新指示信号32と転送データ選択信号33を出力すると共に、復号処理部24へ復号指示信号33と復号データ選択信号34を出力した後(ステップS50)、分岐予測処理を終了する(ステップS51)。   If the branch prediction address i exists, the address data of i is transferred to F_B [i] to the transfer processing unit 23 (step S47). If not, it is determined whether the branch prediction address k exists. (Step S48). If the branch prediction address k exists, the address data of k is transferred to F_BB [k] to the transfer processing unit 23 (step S49), but if it does not exist, the transfer data update instruction signal 32 and the transfer are transferred to the transfer processing unit 23. After outputting the data selection signal 33 and outputting the decoding instruction signal 33 and the decoded data selection signal 34 to the decoding processor 24 (step S50), the branch prediction process is terminated (step S51).

次に、図1の転送処理部23の構成及び動作について説明する。図9は図1の転送処理部23の一実施の形態のブロック図を示す。図9において、転送処理部23はそれぞれプログラムロード処理部22から転送データ38と転送データ更新指示信号31とが入力される4つの転送データ保存部231〜234と、転送データ保存部231〜234からの出力転送データを、プログラムロード処理部22からの転送データ選択信号32に基づいて選択して2種類の転送データ1、2を並列に出力する転送データ選択部235とからなる。転送データ保存部231〜234は、転送データ更新指示信号31がアクティブであるときにのみ、入力された転送データを保存する。   Next, the configuration and operation of the transfer processing unit 23 in FIG. 1 will be described. FIG. 9 shows a block diagram of an embodiment of the transfer processing unit 23 of FIG. In FIG. 9, the transfer processing unit 23 includes four transfer data storage units 231 to 234 to which transfer data 38 and a transfer data update instruction signal 31 are input from the program load processing unit 22, and transfer data storage units 231 to 234, respectively. Output transfer data is selected based on a transfer data selection signal 32 from the program load processing unit 22 and a transfer data selection unit 235 that outputs two types of transfer data 1 and 2 in parallel. The transfer data storage units 231 to 234 store the input transfer data only when the transfer data update instruction signal 31 is active.

次に、この転送処理部23の動作について、図10に示す詳細動作説明用フローチャートと共に説明する。転送処理部23は、処理を開始すると、先ずステップS41にて転送データ更新指示信号31が発生しているかを判断し(ステップS53)、発生していた場合、その転送データ更新指示信号31に従って、プログラムロード処理部22からの転送データ38を転送データ保存部231〜234に格納し(ステップS54)、発生していない場合は転送データ保存部231〜234への転送データ38の格納は行わない。   Next, the operation of the transfer processing unit 23 will be described together with a detailed operation explanation flowchart shown in FIG. When starting the processing, the transfer processing unit 23 first determines whether or not the transfer data update instruction signal 31 is generated in step S41 (step S53), and if so, according to the transfer data update instruction signal 31. The transfer data 38 from the program load processing unit 22 is stored in the transfer data storage units 231 to 234 (step S54). If no transfer data 38 is generated, the transfer data 38 is not stored in the transfer data storage units 231 to 234.

続いて、転送データ選択部235は転送データ選択信号32が発生しているかを判断し(ステップS55)、発生していた場合、その転送データ選択信号32に従って、転送データ保存部231〜234に保存されている転送データの中から2種類の転送データ39、40を選択して並列に出力する。   Subsequently, the transfer data selection unit 235 determines whether or not the transfer data selection signal 32 is generated (step S55). If it is generated, the transfer data selection unit 235 stores the transfer data selection signal 32 in the transfer data storage units 231 to 234 according to the transfer data selection signal 32. Two types of transfer data 39 and 40 are selected from the transferred data and output in parallel.

なお、転送データ保存部231、232、233、234は、ステージF_N[]、F_B[]、F_BN[]、F_BB[]で処理される転送データ38をそれぞれ保存する。すなわち、転送データ保存部231はステージF_N[h]における1T前に実行されるアドレスから分岐がない場合の転送データ38を保存し、転送データ保存部232はステージF_B[i]における1T前に実行されるアドレスからの分岐予測先の転送データ38を保存する。また、転送データ保存部233は、ステージF_BN[j]における1T前の分岐予測アドレス+1の転送データを保存し、転送データ保存部234は、ステージF_BB[k]における1T前の分岐予測アドレスからの分岐予測先の転送データ38を保存する。   The transfer data storage units 231, 232, 233, and 234 store the transfer data 38 processed in the stages F_N [], F_B [], F_BN [], and F_BB [], respectively. That is, the transfer data storage unit 231 stores the transfer data 38 when there is no branch from the address executed 1T before stage F_N [h], and the transfer data storage unit 232 executes 1T before stage F_B [i]. The branch predicted transfer data 38 from the address to be stored is stored. The transfer data storage unit 233 stores the transfer data at the branch prediction address +1 before 1T in the stage F_BN [j], and the transfer data storage unit 234 stores the transfer data from the branch prediction address 1T before in the stage F_BB [k]. The branch predicted transfer data 38 is stored.

分岐が発生していない場合は、転送データ選択部235は転送データ選択信号32に従って、転送データ保存部231、232に保存されているステージF_N[]、F_B[]で処理される転送データを選択して並列に出力し、分岐が発生している場合は、転送データ保存部233、234に保存されているステージF_BN[]、F_BB[]で処理される転送データを選択して並列に出力する。   If no branch has occurred, the transfer data selection unit 235 selects the transfer data to be processed at the stages F_N [] and F_B [] stored in the transfer data storage units 231 and 232 according to the transfer data selection signal 32. If the branch is generated, the transfer data processed in the stages F_BN [] and F_BB [] stored in the transfer data storage units 233 and 234 are selected and output in parallel. .

次に、図1の復号処理部24の構成及び動作について説明する。図11は図1の復号処理部24の一実施の形態のブロック図を示す。図11に示すように、復号処理部24は、復号部241及び242と、復号データ保存部243及び244と、復号データ選択部245とよりなる。復号部241には転送処理部23から第1の転送データ39が入力されると共に、プログラムロード処理部22から復号指示信号33が供給され、復号部242には転送処理部23から第2の転送データ40が入力されると共に、プログラムロード処理部22から復号指示信号33が供給され、それぞれ復号指示信号33に従って転送データ39、40を復号する。   Next, the configuration and operation of the decoding processing unit 24 in FIG. 1 will be described. FIG. 11 shows a block diagram of an embodiment of the decoding processor 24 of FIG. As shown in FIG. 11, the decoding processing unit 24 includes decoding units 241 and 242, decoded data storage units 243 and 244, and a decoded data selection unit 245. The decryption unit 241 receives the first transfer data 39 from the transfer processing unit 23 and is supplied with the decryption instruction signal 33 from the program load processing unit 22. The decryption unit 242 receives the second transfer from the transfer processing unit 23. Data 40 is input, and a decoding instruction signal 33 is supplied from the program load processing unit 22, and the transfer data 39 and 40 are decoded according to the decoding instruction signal 33, respectively.

復号データ保存部243、244は復号部241、242から出力された復号データを互いに独立して保存する。復号データ選択部245は、プログラムロード処理部22から供給された復号データ選択信号34に従って、復号データ保存部243及び244のうち一方に保存されている復号データを選択して読み出し、実行処理部25へ復号データ41として出力する。   The decoded data storage units 243 and 244 store the decoded data output from the decoding units 241 and 242 independently of each other. The decoded data selection unit 245 selects and reads the decoded data stored in one of the decoded data storage units 243 and 244 in accordance with the decoded data selection signal 34 supplied from the program load processing unit 22, and executes the execution processing unit 25. Is output as decoded data 41.

次に、復号処理部24の動作について、図12に示す詳細動作説明用フローチャートと共に説明する。復号処理部24は、処理を開始すると、先ず復号指示信号33が発生しているか(入力されているか)を判断し(ステップS61)、発生している場合、その復号指示信号33に従って転送処理部23からの転送データ39、40をそれぞれ復号部241、242にて復号し、得られた復号データを復号データ保存部243、244へ供給して格納する(ステップS62)。   Next, the operation of the decoding processing unit 24 will be described together with the detailed operation explanation flowchart shown in FIG. When starting the process, the decoding processing unit 24 first determines whether the decoding instruction signal 33 is generated (input) or not (step S61). If it is generated, the transfer processing unit 24 according to the decoding instruction signal 33 The transfer data 39 and 40 from 23 are decoded by the decoding units 241 and 242, respectively, and the obtained decoded data are supplied to the decoded data storage units 243 and 244 for storage (step S62).

復号指示信号33が発生していなかった場合は、復号処理は行わない。続いて、復号データ選択部245は、復号データ選択信号45が発生しているか(入力されているか)を判断し(ステップS63)、発生していた場合、その復号データ選択信号45に従って復号データ保存部243、244に保存されている一方の復号データを選択して実行処理部25へ復号データ41として出力して(ステップS64)、復号処理を終了する(ステップS65)。復号データ選択部245は、復号データ選択信号45が発生していない(入力されていない)と判定した場合は、復号データの選択動作を行わず復号処理を終了する(ステップS65)。   When the decoding instruction signal 33 has not been generated, the decoding process is not performed. Subsequently, the decoded data selection unit 245 determines whether or not the decoded data selection signal 45 is generated (input) (step S63). If it is generated, the decoded data is stored according to the decoded data selection signal 45. One of the decoded data stored in the units 243 and 244 is selected and output as the decoded data 41 to the execution processing unit 25 (step S64), and the decoding process is terminated (step S65). When it is determined that the decoded data selection signal 45 is not generated (not input), the decoded data selection unit 245 ends the decoding process without performing the selection operation of the decoded data (step S65).

復号部241、復号データ保存部243及び復号データ選択部245を使用して行われる復号処理が、ステージD_1[]であり、復号部242、復号データ保存部244及び復号データ選択部245を使用して行われる復号処理が、ステージD_2[]である。復号データ選択部245は、分岐が発生していない場合は、復号データ保存部243に保存されている復号データを選択し(ステージD_1[]による復号データを選択し)、分岐が発生している場合は、復号データ保存部244に保存されている復号データを選択し(ステージD_2[]による復号データを選択する。   The decoding process performed using the decoding unit 241, the decoded data storage unit 243, and the decoded data selection unit 245 is stage D_1 [], and the decoding unit 242, the decoded data storage unit 244, and the decoded data selection unit 245 are used. The decoding process performed in this way is stage D_2 []. When the branch has not occurred, the decoded data selection unit 245 selects the decoded data stored in the decoded data storage unit 243 (selects the decoded data by the stage D_1 []), and the branch has occurred. In this case, the decoded data stored in the decoded data storage unit 244 is selected (decoded data by stage D_2 [] is selected.

次に、以上説明した図1の実施の形態の中央処理装置の分岐処理が無い場合の動作について、図13と共に説明する。図13において、太枠は転送処理部23において実際に動作しているステージを示す(後述の図14も同様)。   Next, the operation when there is no branch processing of the central processing unit of the embodiment of FIG. 1 described above will be described with reference to FIG. In FIG. 13, the thick frame indicates the stage actually operating in the transfer processing unit 23 (the same applies to FIG. 14 described later).

まず、最初のサイクル1T(以下、1T)では、プログラムロード処理部22において図4のステップS2の初期処理1を実行し、各転送データの保存内容は、F_N[h]では、h=0(プログラム開始アドレスが0x0とする)となるため、F_N[0]となる。F_B[i],F_BN[j],F_BB[k]については、定義されない。すなわち、図9の転送処理部23内の転送データ保存部231にプログラム開始アドレスのプログラムデータが保存されるステージF_N[0]が実行されるが、転送データ保存部232〜234にはデータは保存されない。   First, in the first cycle 1T (hereinafter, 1T), the program load processing unit 22 executes the initial process 1 of step S2 in FIG. 4, and the saved content of each transfer data is h = 0 (F_N [h]). Since the program start address is 0x0), F_N [0]. F_B [i], F_BN [j], and F_BB [k] are not defined. That is, stage F_N [0] in which the program data of the program start address is stored in the transfer data storage unit 231 in the transfer processing unit 23 of FIG. 9 is executed, but the data is stored in the transfer data storage units 232 to 234. Not.

また、1Tにおけるパイプライン処理は、各ステージともに、開始アドレスの処理を行うため、D_1[m],E[p],W[q]それぞれD_1[0],E[0]W[0]と設定される。D_2[n]は定義しない。   In addition, since pipeline processing in 1T performs start address processing in each stage, D_1 [m], E [p], and W [q] are D_1 [0], E [0], and W [0], respectively. Is set. D_2 [n] is not defined.

次のサイクルの2Tでは、プログラムロード処理部22は図4のステップS5の初期処理2を実施し、各転送データの保存内容は、F_N[h]では、1T(前サイクル)での実行アドレスは、開始アドレスだったので、h++とし、分岐がなかったときの実行アドレスとして設定する。F_B[i]では、1TでのF_N[0]の復号処理が行われている最中で、分岐処理に入るかどうかの判断ができないため、アドレス0において分岐処理があると予想して、CPUで設定しているレジスタから分岐先を抜き出す。その予想した分岐先アドレスをyとすると、分岐先アドレスyが存在するかどうか判断し、存在する場合はその分岐先アドレス先のデータをF_B[i]へセットし、保存する。   In 2T of the next cycle, the program load processing unit 22 performs the initial process 2 of step S5 in FIG. 4, and the storage content of each transfer data is F_N [h], the execution address in 1T (previous cycle) is Since it is a start address, it is set as h ++ and set as an execution address when there is no branch. In F_B [i], it is not possible to determine whether or not to enter branch processing while F_N [0] is being decoded in 1T. Extract the branch destination from the register set in. If the predicted branch destination address is y, it is determined whether or not the branch destination address y exists. If it exists, the data at the branch destination address destination is set in F_B [i] and stored.

すなわち、復号処理部24は転送処理部23によるステージF_N[0]で処理されたデータを復号する(ステージD_1(m=h))。一方、これと同時に、転送処理部23は図9の転送処理部23内の転送データ保存部231にプログラム開始アドレスを1つインクリメントしたアドレスのプログラムデータを保存するステージF_N[h=h+1]を実行すると共に、予想した分岐先アドレスyのプログラムデータを転送データ保存部232に保存するステージF_B[i=y]を実行する。   That is, the decoding processing unit 24 decodes the data processed at the stage F_N [0] by the transfer processing unit 23 (stage D_1 (m = h)). Meanwhile, at the same time, the transfer processing unit 23 executes stage F_N [h = h + 1] for storing program data at an address obtained by incrementing the program start address by one in the transfer data storage unit 231 in the transfer processing unit 23 of FIG. At the same time, the stage F_B [i = y] for storing the program data of the predicted branch destination address y in the transfer data storage unit 232 is executed.

次のサイクル3Tでは、復号処理部24では、アドレスh,iのデータ、すなわち、転送データ保存部231、232から転送されたデータをそれぞれ同時に復号し、分岐がある場合とない場合のどちらの選択が行われても良い状態にする(ステージD_1[m=h]、D_2[n=i])。また、実行処理部25では、復号処理部24から入力された1Tで転送処理部23へ転送された開始アドレスの復号データが実行されている(ステージE[p=h])。   In the next cycle 3T, the decoding processing unit 24 simultaneously decodes the data of the addresses h and i, that is, the data transferred from the transfer data storage units 231 and 232, and selects whether there is a branch or not. (Stage D_1 [m = h], D_2 [n = i]). In the execution processing unit 25, the decoded data of the start address transferred to the transfer processing unit 23 in 1T input from the decoding processing unit 24 is executed (stage E [p = h]).

また、F_N[h]には、2TでのF_N[h]のアドレスを一つ進めた値h++を用いる。F_BN[j]には、2TでのF_B[i=y]で分岐がなかった場合のアドレスi++値を用いる。F_BB[k]には、2TにおけるF_B[i=y]に分岐があると予想し分岐先vを取得しアドレスk=vとする。F_B[i]には、2TでのF_N[h]が分岐処理があると予想して、分岐先uを抜き出しi=uとする。   For F_N [h], a value h ++ obtained by advancing the address of F_N [h] by 2T is used. For F_BN [j], the address i ++ value when there is no branch at F_B [i = y] at 2T is used. F_BB [k] is predicted to have a branch at F_B [i = y] in 2T, the branch destination v is obtained, and the address k = v. For F_B [i], F_N [h] at 2T is expected to have branch processing, and the branch destination u is extracted and i = u.

すなわち、転送処理部23は図9の転送処理部23内の転送データ保存部231に2TでのF_N[h]のアドレスを一つ進めた値h++のプログラムデータを保存するステージF_N[h=h+1]を実行すると共に、予想した分岐先アドレスuのプログラムデータを転送データ保存部232に保存するステージF_B[i=u]を実行し、更に、2TでのF_B[i=y]で分岐がなかった場合のアドレスi++のプログラムデータを転送データ保存部233に保存するステージF_BN[j=i+1]を実行すると共に、予想した分岐先アドレスvのプログラムデータを転送データ保存部234に保存するステージF_BB[k=v]を実行する。   That is, the transfer processing unit 23 stores the program data of the value h ++ obtained by advancing the address of F_N [h] in 2T by one in the transfer data storage unit 231 in the transfer processing unit 23 of FIG. 9. F_N [h = h + 1 ], And the stage F_B [i = u] for storing the program data of the predicted branch destination address u in the transfer data storage unit 232 is executed, and there is no branch at F_B [i = y] in 2T. Stage F_BN [j = i + 1] for storing the program data of the address i ++ in the transfer data storage unit 233 and the stage F_BB [for storing the program data of the predicted branch destination address v in the transfer data storage unit 234 k = v].

次のサイクル4Tでは、実行結果保存処理部26が実行処理部25から送られてきた最初のプログラムデータの復号データの実行結果を書き込む処理を行い(ステージW[q=h])、実行処理部25が復号処理部24から入力された3Tでの復号データを実行し(ステージE[p=h])、復号処理部24では、アドレスh,iのデータ、すなわち、転送データ保存部231、232から転送されたデータをそれぞれ同時に復号し、分岐がある場合とない場合のどちらの選択が行われても良い状態にする(ステージD_1[m=h]、D_2[n=i])。更に、転送データ保存部231〜234にはアドレスh=h+1,i=a,j=i+1,k=bのデータを保存する処理が実行される(ステージF_N[h=h+1]、F_B[i=a]、F_BN[j=i+1]、F_BB[k=b])。以下、同様の動作が行われる。   In the next cycle 4T, the execution result storage processing unit 26 performs a process of writing the execution result of the decoded data of the first program data sent from the execution processing unit 25 (stage W [q = h]), and the execution processing unit 25 executes the 3T decrypted data input from the decryption processing unit 24 (stage E [p = h]). In the decryption processing unit 24, data at addresses h and i, that is, transfer data storage units 231 and 232 are stored. The data transferred from is simultaneously decoded, so that it is possible to select whether there is a branch or not (stage D_1 [m = h], D_2 [n = i]). Further, processing for storing data at addresses h = h + 1, i = a, j = i + 1, k = b is executed in the transfer data storage units 231 to 234 (stages F_N [h = h + 1], F_B [ i = a], F_BN [j = i + 1], F_BB [k = b]). Thereafter, the same operation is performed.

次に、図1の実施の形態の中央処理装置の分岐処理がある場合の動作について、図14と共に説明する。図14では、1T〜3Tまでは図13と同様であるが、4T以降が異なる。すなわち、4Tでは、1Tで取得した開始アドレスデータが3Tにて実行処理部25にて実行された結果、分岐が発生したことになっている。   Next, the operation when there is a branch process of the central processing unit of the embodiment of FIG. 1 will be described with reference to FIG. In FIG. 14, 1T to 3T are the same as those in FIG. That is, in 4T, the start address data acquired in 1T is executed by the execution processing unit 25 in 3T, so that a branch has occurred.

すると、次に実行処理部25で実行するのは、3Tで分岐を予想して復号したD_2[n]のデータが必要になるため、E[p]にアドレスnで取得したデータを復号した結果D_2[n]を転送する。実行処理部25では、分岐が発生したことを知らせる、分岐結果信号35がプログラムロード処理部22へ出力される。分岐が発生したことを判断したプログラムロード処理部25の分岐処理では、F_N[h]には、3TでのF_BN[j]のアドレスj+1を用いる。これは分岐先がアドレスjに決定したからである。F_B[i]では、3TにおけるF_B[j]の実行時に分岐処理があることを予想した分岐先アドレスaを取得しi=aとする。F_BN[j]では、3TにおけるF_BB[k]に分岐処理がない場合を想定してk+1とする。F_BB[k]では、3TにおけるF_BB[k]に分岐処理があると予想した分岐先アドレスbを取得し、k=bとする。   Then, since the data of D_2 [n] decoded in anticipation of branching at 3T is required to be executed by the execution processing unit 25 next, the result obtained by decoding the data acquired at the address n in E [p] Transfer D_2 [n]. The execution processing unit 25 outputs a branch result signal 35 that informs that a branch has occurred to the program load processing unit 22. In the branch process of the program load processing unit 25 that has determined that a branch has occurred, the address j + 1 of F_BN [j] in 3T is used as F_N [h]. This is because the branch destination is determined to be address j. In F_B [i], a branch destination address a that is predicted to have branch processing when F_B [j] is executed in 3T is acquired and i = a is set. In F_BN [j], k + 1 is assumed assuming that there is no branch process in F_BB [k] in 3T. In F_BB [k], a branch destination address b that is predicted to have branch processing in F_BB [k] in 3T is acquired, and k = b is set.

分岐が発生した場合は上記の3T、4Tと同様の手順を繰り返す。このように、本実施の形態によれば、常に処理するプログラムの分岐を予想していることから、図16に示した従来の中央処理装置ではプログラムロード処理部22での分岐発生判断から分岐先の処理に遷移するまでに要する3サイクルが、図14から分かるように0サイクルに短縮し、分岐処理を時間的なオーバーヘッドなく行うことができる。   When a branch occurs, the same procedure as the above 3T and 4T is repeated. As described above, according to the present embodiment, since the branch of the program to be processed is always predicted, the branch destination is determined based on the branch occurrence determination in the program load processing unit 22 in the conventional central processing unit shown in FIG. As can be seen from FIG. 14, the three cycles required until the transition to the process is shortened to 0 cycle, and branch processing can be performed without time overhead.

複数のステージとパイプライン構成を用いた全てのCPUに適用できる。   It can be applied to all CPUs using a plurality of stages and pipeline configurations.

本発明の中央処理装置の一実施の形態のパイプライン処理時のブロック図である。It is a block diagram at the time of pipeline processing of one embodiment of the central processing unit of the present invention. 図1中のプログラム保存領域内のプログラムデータの一例の説明図である。It is explanatory drawing of an example of the program data in the program storage area | region in FIG. 図1中のプログラムロード処理部の一実施の形態のブロック図である。FIG. 2 is a block diagram of an embodiment of a program load processing unit in FIG. 1. 図3のプログラムロード処理部の動作説明用フローチャートである。It is a flowchart for operation | movement description of the program load process part of FIG. 図4の初期処理1の詳細説明用フローチャートである。5 is a flowchart for explaining in detail the initial process 1 of FIG. 4. 図4の初期処理2の詳細説明用フローチャートである。5 is a flowchart for explaining in detail the initial process 2 of FIG. 4. 図4の初期処理3の詳細説明用フローチャートである。5 is a flowchart for explaining in detail the initial process 3 of FIG. 4. 図4の分岐予測の詳細説明用フローチャートである。5 is a flowchart for explaining details of branch prediction in FIG. 4. 図1中の転送処理部の一実施の形態のブロック図である。FIG. 2 is a block diagram of an embodiment of a transfer processing unit in FIG. 1. 図9の転送処理部の動作説明用フローチャートである。10 is a flowchart for explaining the operation of the transfer processing unit in FIG. 9. 図1中の復号処理部の一実施の形態のブロック図である。It is a block diagram of one Embodiment of the decoding process part in FIG. 図11の復号処理部の動作説明用フローチャートである。It is a flowchart for operation | movement description of the decoding process part of FIG. 本発明の中央処理装置の一実施の形態における分岐処理が無い場合のタイミングチャートである。It is a timing chart when there is no branch processing in one embodiment of the central processing unit of the present invention. 本発明の中央処理装置の一実施の形態における分岐処理がある場合のタイミングチャートである。It is a timing chart in case there exists a branch process in one embodiment of the central processing unit of the present invention. 従来のパイプライン処理を実行する中央処理装置の一例のブロック図である。It is a block diagram of an example of the central processing unit which performs the conventional pipeline processing. 従来の中央処理装置の分岐処理がある場合のタイミングチャートである。It is a timing chart in case there exists a branch process of the conventional central processing unit. 特許文献1の中央処理装置のパイプライン処理時のブロック図である。FIG. 11 is a block diagram of a central processing device disclosed in Patent Document 1 during pipeline processing. 特許文献2の中央処理装置のパイプライン処理時のブロック図である。10 is a block diagram of a central processing device of Patent Document 2 during pipeline processing. FIG.

符号の説明Explanation of symbols

21 プログラム保存領域
22 プログラムロード処理部
23 転送処理部
24 復号処理部
25 実行処理部
26 実行結果保存処理部
31 転送データ更新指示信号
32 転送データ選択信号
33 復号指示信号
34 復号データ選択信号
35 分岐結果信号
36 プログラムデータ
37 読み出し信号
38〜40 転送データ
41 復号データ
221 プログラムデータ保存部
222 シーケンス処理部
231〜234 転送データ保存部
235 転送データ選択部
241、242 復号部
243、244 復号データ保存部
245 復号データ選択部


DESCRIPTION OF SYMBOLS 21 Program storage area 22 Program load process part 23 Transfer process part 24 Decoding process part 25 Execution process part 26 Execution result preservation | save process part 31 Transfer data update instruction signal 32 Transfer data selection signal 33 Decoding instruction signal 34 Decoding data selection signal 35 Branch result Signal 36 Program data 37 Read signal 38-40 Transfer data 41 Decoded data 221 Program data storage unit 222 Sequence processing unit 231-234 Transfer data storage unit 235 Transfer data selection unit 241, 242 Decoding unit 243, 244 Decoded data storage unit 245 Decoding Data selection part


Claims (1)

プログラムデータを格納しているプログラム保存領域と、前記プログラム保存領域からプログラムデータをロードするプログラムロード処理部と、前記プログラムロード処理部より転送されたプログラムデータを転送する転送処理部と、前記転送処理部から転送された前記プログラムデータを復号する復号処理部と、前記復号処理部から送られてきた復号データを実行すると共に、前記プログラムデータの実行順序を変更するための処理である分岐が行われたか否かを示す分岐結果信号を生成して前記プログラムロード処理部へ出力する実行処理部と、前記実行処理部より送られてきた実行結果を書き込む実行結果保存処理部とからなり、複数ステージのパイプライン処理を実行する中央処理装置であって、
前記プログラムロード処理部は、
前記プログラム保存領域から読み出した、これから復号する前記プログラムデータを保存する保存手段と、
前記分岐結果信号に基づき、これから復号する前記プログラムデータに前記分岐があるか否かを判断し、前記分岐があると判断したときは、その分岐先アドレスのプログラムデータを予め前記プログラム保存領域から取得して前記保存手段に保存し、その保存した前記プログラムデータを前記転送処理部へ出力すると共に、前記分岐結果信号に基づき、少なくともその出力プログラムデータの前記転送処理部での格納場所を指示する制御信号及び前記復号処理部から出力される復号データの選択指示を行う制御信号を出力する手段とを備え、
前記転送処理部は、
前記プログラムロード処理部から転送されたプログラムデータを、前記格納場所を指示する制御信号に基づき、そのプログラムデータが分岐先アドレスのデータであるか否かに応じて異なる場所に格納する転送データ保存手段と、
前記転送データ保存手段に保存されているプログラムデータのうち、分岐がなかったときに復号されるべき第1のプログラムデータと分岐があったときに復号されるべき第2のプログラムデータとを選択してそれぞれ第1及び第2の転送データとして出力する転送データ選択手段とを備え、
前記復号処理部は、
前記転送処理部から入力された前記第1及び第2の転送データを別々に復号して第1及び第2の復号データを生成して保存する復号・保存手段と、
前記プログラムロード処理部からの前記復号データの選択指示を行う制御信号に従って、前記復号・保存手段からの第1及び第2の復号データの一方を選択して前記実行処理部へ出力する復号データ選択手段と
を備えることを特徴とする中央処理装置。
A program storage area for storing program data, a program load processing section for loading program data from the program storage area, a transfer processing section for transferring program data transferred from the program load processing section, and the transfer processing A decoding processing unit that decodes the program data transferred from the decoding unit, and a branch that is a process for changing the execution order of the program data while executing the decoding data sent from the decoding processing unit An execution processing unit that generates a branch result signal indicating whether or not the program has been executed and outputs the branch result signal to the program load processing unit, and an execution result storage processing unit that writes the execution result sent from the execution processing unit. A central processing unit for performing pipeline processing,
The program load processing unit
Storage means for storing the program data read from the program storage area and decrypted from now on;
Based on the branch result signal, it is determined whether or not the program data to be decoded has the branch, and when it is determined that the branch is present, the program data of the branch destination address is acquired from the program storage area in advance. And storing the stored program data to the transfer processing unit and instructing at least a storage location of the output program data in the transfer processing unit based on the branch result signal A signal and a means for outputting a control signal for instructing selection of decoded data output from the decoding processing unit,
The transfer processing unit
Transfer data storage means for storing the program data transferred from the program load processing unit in different locations depending on whether or not the program data is data of a branch destination address based on a control signal indicating the storage location When,
Of the program data stored in the transfer data storage means, the first program data to be decoded when there is no branch and the second program data to be decoded when there is a branch are selected. Transfer data selection means for outputting as first and second transfer data respectively,
The decryption processing unit
Decoding / storing means for separately generating the first and second decoded data by separately decoding the first and second transfer data input from the transfer processing unit;
In accordance with a control signal for instructing selection of the decoded data from the program load processing unit, one of the first and second decoded data from the decoding / storing unit is selected and output to the execution processing unit And a central processing unit.
JP2005293242A 2005-10-06 2005-10-06 Central processing unit Pending JP2007102596A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005293242A JP2007102596A (en) 2005-10-06 2005-10-06 Central processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005293242A JP2007102596A (en) 2005-10-06 2005-10-06 Central processing unit

Publications (1)

Publication Number Publication Date
JP2007102596A true JP2007102596A (en) 2007-04-19

Family

ID=38029461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005293242A Pending JP2007102596A (en) 2005-10-06 2005-10-06 Central processing unit

Country Status (1)

Country Link
JP (1) JP2007102596A (en)

Similar Documents

Publication Publication Date Title
US5949996A (en) Processor having a variable number of stages in a pipeline
JPH1124929A (en) Arithmetic processing unit and its method
US6832305B2 (en) Method and apparatus for executing coprocessor instructions
US20060095746A1 (en) Branch predictor, processor and branch prediction method
JPH03286332A (en) Digital data processor
KR19990007479A (en) Pipeline processor that reduces branch hazard in circuit
JP5233078B2 (en) Processor and processing method thereof
US6981130B2 (en) Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel
JP2009507292A (en) Processor array with separate serial module
JP2007102596A (en) Central processing unit
JPH1091430A (en) Instruction decoding device
KR19980058221A (en) Processor with pipeline stop circuit
US7197653B2 (en) Microcontroller for fetching and decoding a frequency control signal together with an operation code
JP2005038203A (en) Memory control method and device
US20050114626A1 (en) Very long instruction word architecture
JP2004302647A (en) Vector processor and address designation method for register
JP5013966B2 (en) Arithmetic processing unit
JP2006268152A (en) Integrated circuit device
JP4151497B2 (en) Pipeline processing equipment
US20100153688A1 (en) Apparatus and method for data process
US20060015704A1 (en) Operation apparatus and instruction code executing method
JP2007041999A (en) Data processor
US20050228970A1 (en) Processing unit with cross-coupled alus/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
JP2004326710A (en) Arithmetic processing unit and method
JP2000250869A (en) Method and device for controlling multiprocessor