JPH1091439A - プロセッサ - Google Patents
プロセッサInfo
- Publication number
- JPH1091439A JPH1091439A JP9126977A JP12697797A JPH1091439A JP H1091439 A JPH1091439 A JP H1091439A JP 9126977 A JP9126977 A JP 9126977A JP 12697797 A JP12697797 A JP 12697797A JP H1091439 A JPH1091439 A JP H1091439A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- processor
- instruction
- processors
- control unit
- 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
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】 用途に応じて広ビット幅のプロセッサを複数
個の狭ビット幅のプロセッサとして使用することによ
り、高性能化を図る。 【解決手段】 32ビットプロセッサ320用の制御部
323はメモリから命令を受け、この命令が32ビット
プロセッサ用か又は16ビットプロセッサ用かを解析
し、前者の場合には、2個の16ビット命令制御部16
10、1611を用いて32ビットプロセッサ320を
制御する。一方、後者の場合には、制御部323が16
ビットプロセッサモード信号を2個の16ビット命令制
御部1610、1611に出力し、この両16ビット命
令制御部1610、1611が前記32ビットプロセッ
サを2個に分割した2個の16ビットプロセッサ160
0、1601として各々独立に制御する。従って、用途
に合わせた適切なビット幅を選択して、異なる2つの処
理の並列化が図られ、高性能になる。
個の狭ビット幅のプロセッサとして使用することによ
り、高性能化を図る。 【解決手段】 32ビットプロセッサ320用の制御部
323はメモリから命令を受け、この命令が32ビット
プロセッサ用か又は16ビットプロセッサ用かを解析
し、前者の場合には、2個の16ビット命令制御部16
10、1611を用いて32ビットプロセッサ320を
制御する。一方、後者の場合には、制御部323が16
ビットプロセッサモード信号を2個の16ビット命令制
御部1610、1611に出力し、この両16ビット命
令制御部1610、1611が前記32ビットプロセッ
サを2個に分割した2個の16ビットプロセッサ160
0、1601として各々独立に制御する。従って、用途
に合わせた適切なビット幅を選択して、異なる2つの処
理の並列化が図られ、高性能になる。
Description
【0001】
【発明の属する技術分野】本発明はプロセッサの改良に
関し、詳しくは、種々の処理を1台で行うことを要求さ
れる汎用プロセッサにおいて、そのデータのビット幅を
各処理で最適な長さに分割し、変更可能として、冗長を
防ぎ、同時に余ったビット幅を他の処理に使用できるよ
うにしたものに関する。
関し、詳しくは、種々の処理を1台で行うことを要求さ
れる汎用プロセッサにおいて、そのデータのビット幅を
各処理で最適な長さに分割し、変更可能として、冗長を
防ぎ、同時に余ったビット幅を他の処理に使用できるよ
うにしたものに関する。
【0002】
【従来の技術】近年、プロセッサの処理能力の向上によ
り、高性能な1台のプロセッサで数多くの処理を行わせ
ることが期待されるようになってきた。1台のプロセッ
サが行う処理には、各種機器の制御や、映像/音声信号
処理等、多岐に亘っている。
り、高性能な1台のプロセッサで数多くの処理を行わせ
ることが期待されるようになってきた。1台のプロセッ
サが行う処理には、各種機器の制御や、映像/音声信号
処理等、多岐に亘っている。
【0003】ここで、高性能なプロセッサは、従来、ビ
ット幅が広い。即ち、処理できるデータ量を多くできる
ように、ビット幅を広く設定している。
ット幅が広い。即ち、処理できるデータ量を多くできる
ように、ビット幅を広く設定している。
【0004】
【発明が解決しようとする課題】しかしながら、近年の
マルチメディアの時代に、1台のプロセッサが扱う処理
でのデータの種類は、音声信号処理のように広いビット
幅が必要なデータから、画像信号処理や各種制御のよう
にさほど広いビット幅が必要でないデータまで、様々で
ある。
マルチメディアの時代に、1台のプロセッサが扱う処理
でのデータの種類は、音声信号処理のように広いビット
幅が必要なデータから、画像信号処理や各種制御のよう
にさほど広いビット幅が必要でないデータまで、様々で
ある。
【0005】従って、現状では、1台のプロセッサが扱
う処理のデータのうち、最も広いビット幅のデータに合
わせて、使用すべきプロセッサが選択される。その結
果、選択されたプロセッサのビット幅よりも狭いビット
幅で十分なデータの処理まで、冗長なビット幅で処理を
行っている。例えば、音声信号処理を汎用プロセッサで
行う場合、一般的に音質の良い処理を行うときには32
ビットのプロセッサが必要であり、一方、画像信号処理
では16ビットで足りる場合が多く、更には、簡単な制
御では8ビットで済む場合もある。従って、前記音声信
号処理、画像信号処理及び簡単の制御を1台のプロセッ
サで行う場合には、後者の画像信号処理や簡単な制御
は、冗長なビット幅での処理となる欠点がある。
う処理のデータのうち、最も広いビット幅のデータに合
わせて、使用すべきプロセッサが選択される。その結
果、選択されたプロセッサのビット幅よりも狭いビット
幅で十分なデータの処理まで、冗長なビット幅で処理を
行っている。例えば、音声信号処理を汎用プロセッサで
行う場合、一般的に音質の良い処理を行うときには32
ビットのプロセッサが必要であり、一方、画像信号処理
では16ビットで足りる場合が多く、更には、簡単な制
御では8ビットで済む場合もある。従って、前記音声信
号処理、画像信号処理及び簡単の制御を1台のプロセッ
サで行う場合には、後者の画像信号処理や簡単な制御
は、冗長なビット幅での処理となる欠点がある。
【0006】そこで、従来、データの並列化を行うこと
により、狭いビット幅の複数個のデータを広いビット幅
のプロセッサで同時処理して、処理能力の向上を図るこ
とが行われている。しかしながら、例えば条件分岐処理
のような逐次的な処理を行う必要がある場合には、複数
個のデータを並列化できず、処理能力の向上は期待でき
ず、却って、広ビット幅の高価なプロセッサを用いる
分、機器全体のコストアップにつながっている。
により、狭いビット幅の複数個のデータを広いビット幅
のプロセッサで同時処理して、処理能力の向上を図るこ
とが行われている。しかしながら、例えば条件分岐処理
のような逐次的な処理を行う必要がある場合には、複数
個のデータを並列化できず、処理能力の向上は期待でき
ず、却って、広ビット幅の高価なプロセッサを用いる
分、機器全体のコストアップにつながっている。
【0007】このような状況から、高価な1台のプロセ
ッサに代えて、処理の数に等しい個数のプロセッサを用
意し、各プロセッサのビット幅を、対応する処理に適し
たビット幅として、コストダウンを図ろうとすると、例
えば信号処理等を行うための広ビット幅の高性能で廉価
なプロセッサと、逐次的処理を行うための狭ビット幅の
安価なプロセッサとの双方を用いることが必要になり、
その結果、部品点数が増え、機器が大きくなる欠点を招
く。
ッサに代えて、処理の数に等しい個数のプロセッサを用
意し、各プロセッサのビット幅を、対応する処理に適し
たビット幅として、コストダウンを図ろうとすると、例
えば信号処理等を行うための広ビット幅の高性能で廉価
なプロセッサと、逐次的処理を行うための狭ビット幅の
安価なプロセッサとの双方を用いることが必要になり、
その結果、部品点数が増え、機器が大きくなる欠点を招
く。
【0008】本発明の目的は、複数の処理を1台のプロ
セッサで処理する場合に、そのプロセッサのビット幅を
変更可能として、その複数の処理を、その各処理に適し
たビット幅で行って、高性能化を図ることにある。
セッサで処理する場合に、そのプロセッサのビット幅を
変更可能として、その複数の処理を、その各処理に適し
たビット幅で行って、高性能化を図ることにある。
【0009】前記目的を達成するため、本発明では、広
ビット幅(例えば32ビット)の1台のプロセッサを、
必要に応じて、狭ビット幅(例えば16ビット)の複数
個(例えば2個)のプロセッサとして使用できるように
構成する。
ビット幅(例えば32ビット)の1台のプロセッサを、
必要に応じて、狭ビット幅(例えば16ビット)の複数
個(例えば2個)のプロセッサとして使用できるように
構成する。
【0010】
【課題を解決するための手段】前記の目的を達成するた
め、請求項1記載の発明は、Nビット(Nは自然数)の
プロセッサにおいて、前記Nビットプロセッサ用の命令
と、N=M1+…+Mn(M1、Mnは自然数、nは2
以上の自然数)を満たすn個のMnビットプロセッサ用
の命令とを解読する解読部と、前記解読部により解読さ
れた命令が前記Nビットプロセッサ用の命令である場合
には、その命令を解読し実行するよう、前記Nビットプ
ロセッサを制御するNビットプロセッサ用命令制御部
と、前記解読部により解読された命令が前記n個のMn
ビットプロセッサ用の命令である場合には、前記Nビッ
トプロセッサをn個に分割したMnビットプロセッサと
し、前記n個の命令を並列に解読し実行するよう、前記
n個のMnビットプロセッサを制御するn個のMnビッ
トプロセッサ用命令制御部とを備えたことを特徴とす
る。
め、請求項1記載の発明は、Nビット(Nは自然数)の
プロセッサにおいて、前記Nビットプロセッサ用の命令
と、N=M1+…+Mn(M1、Mnは自然数、nは2
以上の自然数)を満たすn個のMnビットプロセッサ用
の命令とを解読する解読部と、前記解読部により解読さ
れた命令が前記Nビットプロセッサ用の命令である場合
には、その命令を解読し実行するよう、前記Nビットプ
ロセッサを制御するNビットプロセッサ用命令制御部
と、前記解読部により解読された命令が前記n個のMn
ビットプロセッサ用の命令である場合には、前記Nビッ
トプロセッサをn個に分割したMnビットプロセッサと
し、前記n個の命令を並列に解読し実行するよう、前記
n個のMnビットプロセッサを制御するn個のMnビッ
トプロセッサ用命令制御部とを備えたことを特徴とす
る。
【0011】請求項2記載の発明は、前記請求項1記載
のプロセッサにおいて、別途、前記Nビットプロセッサ
用の命令と、前記n個のMnビットプロセッサ用の命令
と、ある特定の命令とを記憶するメモリを備え、前記解
読部は、前記3種の命令を受け、前記特定の命令を解読
して、その特定の命令の後に受ける命令が前記Nビット
プロセッサ用の命令か、又は前記n個のMnビットプロ
セッサ用の命令かを判断することを特徴とする。
のプロセッサにおいて、別途、前記Nビットプロセッサ
用の命令と、前記n個のMnビットプロセッサ用の命令
と、ある特定の命令とを記憶するメモリを備え、前記解
読部は、前記3種の命令を受け、前記特定の命令を解読
して、その特定の命令の後に受ける命令が前記Nビット
プロセッサ用の命令か、又は前記n個のMnビットプロ
セッサ用の命令かを判断することを特徴とする。
【0012】請求項3記載の発明は、前記請求項2記載
のプロセッサにおいて、前記特定の命令はプロセッサ分
割命令であり、前記解読部は、前記分割命令を受けて、
その分割命令の後に受ける命令がn個のMnビットプロ
セッサ用の命令であることを判断することを特徴とす
る。
のプロセッサにおいて、前記特定の命令はプロセッサ分
割命令であり、前記解読部は、前記分割命令を受けて、
その分割命令の後に受ける命令がn個のMnビットプロ
セッサ用の命令であることを判断することを特徴とす
る。
【0013】請求項4記載の発明は、前記請求項2記載
のプロセッサにおいて、前記特定の命令はプロセッサ結
合命令であり、前記解読部は、前記結合命令を受けて、
その結合命令の後に受ける命令がNビットプロセッサ用
の命令であることを判断することを特徴とする。
のプロセッサにおいて、前記特定の命令はプロセッサ結
合命令であり、前記解読部は、前記結合命令を受けて、
その結合命令の後に受ける命令がNビットプロセッサ用
の命令であることを判断することを特徴とする。
【0014】請求項5記載の発明は、前記請求項1記載
のプロセッサにおいて、解読された命令が前記Nビット
プロセッサ用の命令である場合には、前記Nビットプロ
セッサ用命令制御部は、前記Nビットプロセッサ用の命
令を、n個のMnビットプロセッサが実行可能なn個の
Mnビットフォーマットの命令に変換し、この変換した
n個の命令を各々対応するMnビットプロセッサ用命令
制御部に送出し、前記n個のMnビットプロセッサ用命
令制御部により、対応するMnビットフォーマットの命
令の実行を制御することを特徴とする。
のプロセッサにおいて、解読された命令が前記Nビット
プロセッサ用の命令である場合には、前記Nビットプロ
セッサ用命令制御部は、前記Nビットプロセッサ用の命
令を、n個のMnビットプロセッサが実行可能なn個の
Mnビットフォーマットの命令に変換し、この変換した
n個の命令を各々対応するMnビットプロセッサ用命令
制御部に送出し、前記n個のMnビットプロセッサ用命
令制御部により、対応するMnビットフォーマットの命
令の実行を制御することを特徴とする。
【0015】請求項6記載の発明は、前記請求項1記載
のプロセッサにおいて、Nビットプロセッサは32ビッ
トプロセッサであり、n個のMnビットプロセッサは2
個の16ビットプロセッサであることを特徴とする。
のプロセッサにおいて、Nビットプロセッサは32ビッ
トプロセッサであり、n個のMnビットプロセッサは2
個の16ビットプロセッサであることを特徴とする。
【0016】請求項7記載の発明は、前記請求項1記載
のプロセッサにおいて、前記n個のMnビットプロセッ
サに対応してn個のMnビット資源を備え、前記n個の
Mnビットプロセッサとして動作する際には、前記各M
nビットプロセッサ用命令制御部が、前記対応するMn
ビット資源を制御し、前記Nビットプロセッサとして動
作する際には、前記Nビットプロセッサ用命令制御部
が、前記n個のMnビット資源を結合してNビット資源
として動作するように制御することを特徴としている。
のプロセッサにおいて、前記n個のMnビットプロセッ
サに対応してn個のMnビット資源を備え、前記n個の
Mnビットプロセッサとして動作する際には、前記各M
nビットプロセッサ用命令制御部が、前記対応するMn
ビット資源を制御し、前記Nビットプロセッサとして動
作する際には、前記Nビットプロセッサ用命令制御部
が、前記n個のMnビット資源を結合してNビット資源
として動作するように制御することを特徴としている。
【0017】請求項8記載の発明は、前記請求項7記載
のプロセッサにおいて、前記n個の資源は、n個のMn
ビット演算器、n個のMnビットメモリ、n個のMnビ
ットデータレジスタ、又はn個のMnビットプログラム
カウンタであることを特徴とする。
のプロセッサにおいて、前記n個の資源は、n個のMn
ビット演算器、n個のMnビットメモリ、n個のMnビ
ットデータレジスタ、又はn個のMnビットプログラム
カウンタであることを特徴とする。
【0018】請求項9記載の発明は、前記請求項7記載
のプロセッサにおいて、前記n個の資源はn段のMnビ
ット演算器であり、前記Nビットプロセッサ用命令制御
部は、前記Nビットプロセッサとして動作する際に前段
のMnビット演算器のキャリー/ボローを次段のMnビ
ット演算器に送出して前記n段のMnビット演算器同志
を結合するデータ結合部を有することを特徴とする。
のプロセッサにおいて、前記n個の資源はn段のMnビ
ット演算器であり、前記Nビットプロセッサ用命令制御
部は、前記Nビットプロセッサとして動作する際に前段
のMnビット演算器のキャリー/ボローを次段のMnビ
ット演算器に送出して前記n段のMnビット演算器同志
を結合するデータ結合部を有することを特徴とする。
【0019】請求項10記載の発明は、前記請求項3記
載のプロセッサにおいて、各Mnビットプロセッサ用の
n個のプログラムカウンタを有し、前記プロセッサ分割
命令は、Nビットフォーマットの命令であり、且つ、こ
のプロセッサ分割命令の後に最初に実行するNビットプ
ロセッサの命令のアドレスを計算し、その値を退避させ
ると共に、前記各Mnビットプロセッサ用のn個のプロ
グラムカウンタに、前記プロセッサ分割命令に含まれる
NビットのアドレスをMnビットづつ書き込む命令であ
ることを特徴とする。
載のプロセッサにおいて、各Mnビットプロセッサ用の
n個のプログラムカウンタを有し、前記プロセッサ分割
命令は、Nビットフォーマットの命令であり、且つ、こ
のプロセッサ分割命令の後に最初に実行するNビットプ
ロセッサの命令のアドレスを計算し、その値を退避させ
ると共に、前記各Mnビットプロセッサ用のn個のプロ
グラムカウンタに、前記プロセッサ分割命令に含まれる
NビットのアドレスをMnビットづつ書き込む命令であ
ることを特徴とする。
【0020】請求項11記載の発明は、前記請求項10
記載のプロセッサにおいて、前記特定の命令はプロセッ
サ結合命令をも含み、前記プロセッサ結合命令は、前記
n個のMnビットプロセッサとしての動作を停止して前
記プロセッサ分割命令の実行の際に退避した前記Nビッ
トプログラムカウンタの値を復帰させるものであること
を特徴とする。
記載のプロセッサにおいて、前記特定の命令はプロセッ
サ結合命令をも含み、前記プロセッサ結合命令は、前記
n個のMnビットプロセッサとしての動作を停止して前
記プロセッサ分割命令の実行の際に退避した前記Nビッ
トプログラムカウンタの値を復帰させるものであること
を特徴とする。
【0021】請求項12記載の発明は、前記請求項1記
載のプロセッサにおいて、前記Nビットプロセッサ用の
命令と、n個のMnビットプロセッサ用の命令とを記憶
するメモリを備え、前記メモリ空間のアドレスの“0”
番地〜(2^Mnmax−1)番地(^は冪乗、Mnm
axはM1、M2、…、Mnのうち最大のものを表わ
す)までをn個のMnビットプロセッサ用の空間として
使用し、前記メモリ空間のアドレスの(2^Mnma
x)番地〜(2^N−1)番地をNビットプロセッサ用
の空間として使用することを特徴とする。
載のプロセッサにおいて、前記Nビットプロセッサ用の
命令と、n個のMnビットプロセッサ用の命令とを記憶
するメモリを備え、前記メモリ空間のアドレスの“0”
番地〜(2^Mnmax−1)番地(^は冪乗、Mnm
axはM1、M2、…、Mnのうち最大のものを表わ
す)までをn個のMnビットプロセッサ用の空間として
使用し、前記メモリ空間のアドレスの(2^Mnma
x)番地〜(2^N−1)番地をNビットプロセッサ用
の空間として使用することを特徴とする。
【0022】請求項13記載の発明は、前記請求項3記
載のプロセッサにおいて、各Mnビットプロセッサ用の
n個のプログラムカウンタと、(N−Mn)ビットのペ
ージレジスタとを有し、前記プロセッサ分割命令は、こ
の分割命令のプログラムカウンタの値の上位から(N−
Mn)ビット目の値に“1”を加え、この加算結果であ
る上位(N−Mn)ビットの値を前記(N−Mn)ビッ
トのページレジスタに書き込むと共に、前記n個のプロ
グラムカウンタに“0”を書き込む命令であることを特
徴とする。
載のプロセッサにおいて、各Mnビットプロセッサ用の
n個のプログラムカウンタと、(N−Mn)ビットのペ
ージレジスタとを有し、前記プロセッサ分割命令は、こ
の分割命令のプログラムカウンタの値の上位から(N−
Mn)ビット目の値に“1”を加え、この加算結果であ
る上位(N−Mn)ビットの値を前記(N−Mn)ビッ
トのページレジスタに書き込むと共に、前記n個のプロ
グラムカウンタに“0”を書き込む命令であることを特
徴とする。
【0023】請求項14記載の発明は、前記請求項13
記載のプロセッサにおいて、n個のMnビットプロセッ
サとして動作する際、前記n個のMnビットプロセッサ
用命令制御部は、各々、前記(N−Mn)ページレジス
タの値を上位ビットとし、対応する前記プログラムカウ
ンタの“0”値のMnビットアドレスを下位ビットと
し、この上位ビット及びこの下位ビットを合わせたNビ
ットのアドレスを、予め命令を記憶するメモリに送出す
ることを特徴とする。
記載のプロセッサにおいて、n個のMnビットプロセッ
サとして動作する際、前記n個のMnビットプロセッサ
用命令制御部は、各々、前記(N−Mn)ページレジス
タの値を上位ビットとし、対応する前記プログラムカウ
ンタの“0”値のMnビットアドレスを下位ビットと
し、この上位ビット及びこの下位ビットを合わせたNビ
ットのアドレスを、予め命令を記憶するメモリに送出す
ることを特徴とする。
【0024】請求項15記載の発明は、前記請求項14
記載のプロセッサにおいて、前記特定の命令には、前記
n個のMnビットプロセッサが各々処理を終了した際に
対応するMnビットプロセッサ用命令制御部から出力さ
れるプロセッサ結合命令が含まれ、何れかの前記Mnビ
ットプロセッサが処理を終了して、対応するMnビット
プロセッサ用命令制御部が前記プロセッサ結合命令を出
力した場合、このMnビット命令制御部は、他のMnビ
ットプロセッサが処理を終了するまで、動作を停止し又
は何も状態変化を起さない命令を実行するよう、対応す
るMnビットプロセッサを制御することを特徴とする。
記載のプロセッサにおいて、前記特定の命令には、前記
n個のMnビットプロセッサが各々処理を終了した際に
対応するMnビットプロセッサ用命令制御部から出力さ
れるプロセッサ結合命令が含まれ、何れかの前記Mnビ
ットプロセッサが処理を終了して、対応するMnビット
プロセッサ用命令制御部が前記プロセッサ結合命令を出
力した場合、このMnビット命令制御部は、他のMnビ
ットプロセッサが処理を終了するまで、動作を停止し又
は何も状態変化を起さない命令を実行するよう、対応す
るMnビットプロセッサを制御することを特徴とする。
【0025】請求項16記載の発明は、前記請求項15
記載のプロセッサにおいて、全てのMnビットプロセッ
サが処理を終えた際、前記(N−Mn)ページレジスタ
の値を上位ビットとし、前記プロセッサ結合命令を最後
に出力したMnビットプロセッサ用命令制御部に対応す
る前記プログラムカウンタの値に“1”を加えた値を下
位ビットとし、この上位ビット及び下位ビットを合わせ
たNビットのアドレスを、予め命令を記憶するメモリに
送出することを特徴とする。
記載のプロセッサにおいて、全てのMnビットプロセッ
サが処理を終えた際、前記(N−Mn)ページレジスタ
の値を上位ビットとし、前記プロセッサ結合命令を最後
に出力したMnビットプロセッサ用命令制御部に対応す
る前記プログラムカウンタの値に“1”を加えた値を下
位ビットとし、この上位ビット及び下位ビットを合わせ
たNビットのアドレスを、予め命令を記憶するメモリに
送出することを特徴とする。
【0026】請求項17記載の発明は、前記請求項1記
載のプロセッサにおいて、複数の前記Nビットプロセッ
サ用の命令、及び複数の前記Mnビットプロセッサ用の
命令は、可変語長の命令であることを特徴とする。
載のプロセッサにおいて、複数の前記Nビットプロセッ
サ用の命令、及び複数の前記Mnビットプロセッサ用の
命令は、可変語長の命令であることを特徴とする。
【0027】以上の構成により、請求項1ないし請求項
17記載の発明では次の作用を奏する。即ち、広ビット
幅が必要な処理では、プロセッサは広ビット幅のデータ
処理を行うプロセッサとして使用され、狭ビット幅でよ
い処理は狭ビット幅のデータ処理を行う複数個のプロセ
ッサとして使用される。従って、逐次的な処理を狭ビッ
ト幅で行う場合には、この逐次的な処理を何れか1個の
狭ビット幅のプロセッサで行いつつ、他の狭ビット幅で
よい処理を残りの狭ビット幅のプロセッサで並列に行う
ことが可能になる。
17記載の発明では次の作用を奏する。即ち、広ビット
幅が必要な処理では、プロセッサは広ビット幅のデータ
処理を行うプロセッサとして使用され、狭ビット幅でよ
い処理は狭ビット幅のデータ処理を行う複数個のプロセ
ッサとして使用される。従って、逐次的な処理を狭ビッ
ト幅で行う場合には、この逐次的な処理を何れか1個の
狭ビット幅のプロセッサで行いつつ、他の狭ビット幅で
よい処理を残りの狭ビット幅のプロセッサで並列に行う
ことが可能になる。
【0028】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を参照しながら説明する。
て図面を参照しながら説明する。
【0029】(第1の実施の形態)図1は本実施の形態
の全体概略構成を示す。同図において、1600、16
01は16ビットのプロセッサ、1610、1611は
前記16ビットのプロセッサの命令制御部(Mnビット
プロセッサ用命令制御部)(以下、16ビット命令制御
部という)である。320は前記2個の16ビットプロ
セッサを含む32ビットのプロセッサ、321は前記3
2ビットプロセッサ320の制御部である。
の全体概略構成を示す。同図において、1600、16
01は16ビットのプロセッサ、1610、1611は
前記16ビットのプロセッサの命令制御部(Mnビット
プロセッサ用命令制御部)(以下、16ビット命令制御
部という)である。320は前記2個の16ビットプロ
セッサを含む32ビットのプロセッサ、321は前記3
2ビットプロセッサ320の制御部である。
【0030】前記32ビットプロセッサ320は、前記
一方の16ビットプロセッサ1600と他方の16ビッ
トプロセッサ1601とをビット直列に結合させて構成
される。前記32ビットプロセッサ320の制御部32
1は、前記2個の16ビット命令制御部1610、16
11を介して、各16ビットプロセッサ1600、16
01の資源を制御する。
一方の16ビットプロセッサ1600と他方の16ビッ
トプロセッサ1601とをビット直列に結合させて構成
される。前記32ビットプロセッサ320の制御部32
1は、前記2個の16ビット命令制御部1610、16
11を介して、各16ビットプロセッサ1600、16
01の資源を制御する。
【0031】図2は、前記図1のプロセッサによるプロ
グラムの実行の流れの概念を示す。同図において、プロ
グラムは上から下へと順次実行される。同図では、プロ
セッサは当初32ビットプロセッサとして動作してい
る。32ビットプロセッサ320で特定の命令である
『proc.div』命令(プロセッサ分割命令)が同
図に記号Aで示す時点で実行されると、以降は16ビッ
トプロセッサとしての命令が2つ並列且つ独立に2個の
16ビットプロセッサ1600、1601で各々実行さ
れる。
グラムの実行の流れの概念を示す。同図において、プロ
グラムは上から下へと順次実行される。同図では、プロ
セッサは当初32ビットプロセッサとして動作してい
る。32ビットプロセッサ320で特定の命令である
『proc.div』命令(プロセッサ分割命令)が同
図に記号Aで示す時点で実行されると、以降は16ビッ
トプロセッサとしての命令が2つ並列且つ独立に2個の
16ビットプロセッサ1600、1601で各々実行さ
れる。
【0032】その後、一方の16ビットプロセッサ(例
えば1600)が処理の実行を終了すると、この16ビ
ットプロセッサ1600が記号Bで示す時点で特定の命
令である「proc.con」命令(プロセッサ結合命
令)を発行し、その後、他方の16ビットプロセッサ1
601の処理が終了するまで動作を停止、又は、何も状
態変化を起こさない命令(例えばNOP命令)を実行す
る。この「proc.con」命令は、他方の16ビッ
トプロセッサ1601が処理を終了してこのプロセッサ
1601が図中記号Cの時点で「proc.con」命
令を発行するまで待ち続ける命令と定義してもよい。以
下では、NOP命令を実行するものとして説明する。
えば1600)が処理の実行を終了すると、この16ビ
ットプロセッサ1600が記号Bで示す時点で特定の命
令である「proc.con」命令(プロセッサ結合命
令)を発行し、その後、他方の16ビットプロセッサ1
601の処理が終了するまで動作を停止、又は、何も状
態変化を起こさない命令(例えばNOP命令)を実行す
る。この「proc.con」命令は、他方の16ビッ
トプロセッサ1601が処理を終了してこのプロセッサ
1601が図中記号Cの時点で「proc.con」命
令を発行するまで待ち続ける命令と定義してもよい。以
下では、NOP命令を実行するものとして説明する。
【0033】図3は本実施の形態のプロセッサの一層具
体的な回路構成図を示す。同図において、110は上位
16ビットの算術論理演算器(Mnビット演算器)、1
11は下位16ビットの算術論理演算器(Mnビット演
算器)、112は前記下位16ビットの算術論理演算器
(以下、ALUという)111から上位16ビットのA
LU110へのキャリー/ボロー、162は前記キャリ
ー/ボローを送るデータ結合部、120ないし125は
16ビットのデータレジスタ(Mnビットデータレジス
タ)、130及び131は16ビット×4ギガワードの
メモリであって、前記図2のプログラムを予め記憶する
記憶媒体として機能する。また、前記32ビットプロセ
ッサ320の制御部321は、解読部322と、32ビ
ット命令制御部323(Nビットプロセッサ用命令制御
部)とを備える。更に、150はメモリ・マネジメント
・ユニット(以下、MMUという)である。
体的な回路構成図を示す。同図において、110は上位
16ビットの算術論理演算器(Mnビット演算器)、1
11は下位16ビットの算術論理演算器(Mnビット演
算器)、112は前記下位16ビットの算術論理演算器
(以下、ALUという)111から上位16ビットのA
LU110へのキャリー/ボロー、162は前記キャリ
ー/ボローを送るデータ結合部、120ないし125は
16ビットのデータレジスタ(Mnビットデータレジス
タ)、130及び131は16ビット×4ギガワードの
メモリであって、前記図2のプログラムを予め記憶する
記憶媒体として機能する。また、前記32ビットプロセ
ッサ320の制御部321は、解読部322と、32ビ
ット命令制御部323(Nビットプロセッサ用命令制御
部)とを備える。更に、150はメモリ・マネジメント
・ユニット(以下、MMUという)である。
【0034】図3において、16ビット命令制御部16
10、1611は各々メモリ130、131に対するア
ドレス及び制御情報をMMU150に出力し、MMU1
50は前記受けたアドレス及び制御情報に応じてメモリ
130、131に対してアドレス及び制御情報を出力す
る。
10、1611は各々メモリ130、131に対するア
ドレス及び制御情報をMMU150に出力し、MMU1
50は前記受けたアドレス及び制御情報に応じてメモリ
130、131に対してアドレス及び制御情報を出力す
る。
【0035】前記32ビットプロセッサ320の解読部
322は、現在実行中の命令が32ビットプロセッサの
ものか、又は16ビットプロセッサのものであるかを解
読して、プロセッサモード信号3220、3221、3
222を出力する。前記プロセッサモード信号322
0、3221は、各々、前記16ビット命令制御部16
10、1611に出力される。また、残るプロセッサモ
ード信号3222は、前記2つのプロセッサモード信号
3220、3221の双方が32ビットプロセッサモー
ドの場合にのみ、32ビットプロセッサモードとなり、
前記データ結合部162に出力される。
322は、現在実行中の命令が32ビットプロセッサの
ものか、又は16ビットプロセッサのものであるかを解
読して、プロセッサモード信号3220、3221、3
222を出力する。前記プロセッサモード信号322
0、3221は、各々、前記16ビット命令制御部16
10、1611に出力される。また、残るプロセッサモ
ード信号3222は、前記2つのプロセッサモード信号
3220、3221の双方が32ビットプロセッサモー
ドの場合にのみ、32ビットプロセッサモードとなり、
前記データ結合部162に出力される。
【0036】また、前記32ビットプロセッサ320の
32ビット命令制御部323は、プロセッサモード信号
3222が32ビットプロセッサモードを示している場
合には、メモリ130、131から読み出された命令
を、16ビット命令制御部1610、1611がデコー
ドできる16ビットプロセッサ命令フォーマットに変換
する。この際、32ビットプロセッサと16ビットプロ
セッサとの命令フォーマットを統一し、引数のデータ幅
のみ異なる仕様に設定すれば、フォーマット変換は容易
になる。32ビットプロセッサ命令を16ビットプロセ
ッサ命令にフォーマット変換する具体例を図13及び図
14に示す。
32ビット命令制御部323は、プロセッサモード信号
3222が32ビットプロセッサモードを示している場
合には、メモリ130、131から読み出された命令
を、16ビット命令制御部1610、1611がデコー
ドできる16ビットプロセッサ命令フォーマットに変換
する。この際、32ビットプロセッサと16ビットプロ
セッサとの命令フォーマットを統一し、引数のデータ幅
のみ異なる仕様に設定すれば、フォーマット変換は容易
になる。32ビットプロセッサ命令を16ビットプロセ
ッサ命令にフォーマット変換する具体例を図13及び図
14に示す。
【0037】図13は、引数にメモリを使用する例とし
て、「load 0h05070799,Ra」の命令
を示す。この32ビットの命令は、メモリの0h050
70799番地のデータをレジスタRaに読み込んでく
る命令である。32ビット命令制御部323は、同図に
示すように、「4050707991(16進数)」を
「405071」と「407991」とに変換して、
「load 0h0507,Ra」及び「load 0
h0799,Ra」の2つの16ビット命令を2つの1
6ビットプロセッサ1600、1601に実行させる。
実際のメモリへのアドレッシングについては後述する。
て、「load 0h05070799,Ra」の命令
を示す。この32ビットの命令は、メモリの0h050
70799番地のデータをレジスタRaに読み込んでく
る命令である。32ビット命令制御部323は、同図に
示すように、「4050707991(16進数)」を
「405071」と「407991」とに変換して、
「load 0h0507,Ra」及び「load 0
h0799,Ra」の2つの16ビット命令を2つの1
6ビットプロセッサ1600、1601に実行させる。
実際のメモリへのアドレッシングについては後述する。
【0038】また、図14は、引数にレジスタのみを使
用する例として、「add Ra,Rb,Rc」の命令
を示す。この32ビット命令はRa+Rbを実行して、
レジスタRcに格納する命令である。32ビット命令制
御部323は、同図に示すように、「1123」を「1
123」と「1123」とに変換し(この例では、32
ビットプロセッサと16ビットプロセッサとで命令フォ
ーマットが統一されているので、変換の必要はない)、
2つの16ビット命令「add Ra,Rb,Rc」及
び「add Ra,Rb,Rc」を2つの16ビットプ
ロセッサ1600、1601に実行させる。
用する例として、「add Ra,Rb,Rc」の命令
を示す。この32ビット命令はRa+Rbを実行して、
レジスタRcに格納する命令である。32ビット命令制
御部323は、同図に示すように、「1123」を「1
123」と「1123」とに変換し(この例では、32
ビットプロセッサと16ビットプロセッサとで命令フォ
ーマットが統一されているので、変換の必要はない)、
2つの16ビット命令「add Ra,Rb,Rc」及
び「add Ra,Rb,Rc」を2つの16ビットプ
ロセッサ1600、1601に実行させる。
【0039】更に、前記32ビット命令制御部323
は、プロセッサモード信号3222が16ビットプロセ
ッサモードを示している場合には、16ビットのNOP
命令を16ビットフォーマット命令3230、3231
として、これを各16ビット命令制御部1610、16
11に出力する。
は、プロセッサモード信号3222が16ビットプロセ
ッサモードを示している場合には、16ビットのNOP
命令を16ビットフォーマット命令3230、3231
として、これを各16ビット命令制御部1610、16
11に出力する。
【0040】加えて、前記32ビット命令制御部323
は、32ビットプロセッサモードの時の命令語長321
3を下位側の16ビット命令制御部1611に出力す
る。
は、32ビットプロセッサモードの時の命令語長321
3を下位側の16ビット命令制御部1611に出力す
る。
【0041】次に、前記各16ビット命令制御部161
0、1611の内部構成を図4に示す。同図において、
各16ビット命令制御部1610、1611は、32ビ
ット命令制御部323から受けたプロセッサモード信号
3220、3221が32ビットプロセッサモードの場
合には、32ビット命令制御部323から出力された命
令、即ち、32ビットフォーマットの命令を16ビット
フォーマットに変換した命令3230、3231を解析
し、一方、受けたプロセッサモード信号3220、32
21が16ビットプロセッサモードの場合には、メモリ
130、131から各々出力される16ビットフォーマ
ットの命令を直接解析し、各々の資源(プロセッサ16
00では、ALU110、メモリ130、及びレジスタ
120、122、124をいい、プロセッサ1601で
は、ALU111、メモリ131及びレジスタ121、
123、125をいう)を制御する。
0、1611の内部構成を図4に示す。同図において、
各16ビット命令制御部1610、1611は、32ビ
ット命令制御部323から受けたプロセッサモード信号
3220、3221が32ビットプロセッサモードの場
合には、32ビット命令制御部323から出力された命
令、即ち、32ビットフォーマットの命令を16ビット
フォーマットに変換した命令3230、3231を解析
し、一方、受けたプロセッサモード信号3220、32
21が16ビットプロセッサモードの場合には、メモリ
130、131から各々出力される16ビットフォーマ
ットの命令を直接解析し、各々の資源(プロセッサ16
00では、ALU110、メモリ130、及びレジスタ
120、122、124をいい、プロセッサ1601で
は、ALU111、メモリ131及びレジスタ121、
123、125をいう)を制御する。
【0042】前記データ結合部162は、32ビット命
令制御部323から受けたプロセッサモード信号322
2が32ビットプロセッサモードの場合には、下位AL
U111から上位ALU110へキャリー/ボロー11
2を送り、一方、16ビットプロセッサモードの場合に
は、“0を選択して上位ALU110に送る。
令制御部323から受けたプロセッサモード信号322
2が32ビットプロセッサモードの場合には、下位AL
U111から上位ALU110へキャリー/ボロー11
2を送り、一方、16ビットプロセッサモードの場合に
は、“0を選択して上位ALU110に送る。
【0043】次に、32ビット命令制御部323が、図
2に示したプロセッサの分割、結合の流れを具体的にど
のように制御するかを、図15に基いて説明する。
2に示したプロセッサの分割、結合の流れを具体的にど
のように制御するかを、図15に基いて説明する。
【0044】図15において、先ず、32ビットプロセ
ッサ320自身がリセットされる。これにより、解読部
322は、全プロセッサモード信号3220、322
1、3222を32ビットプロセッサモードとする。ま
た、32ビット命令制御部323は、各メモリ130、
131から読み出された32ビットフォーマットの命令
を2つの16ビットフォーマットの命令3230、32
31に変換する。各16ビット命令制御部1610、1
611は対応する前記16ビットフォーマットの命令を
受け、対応する16ビットプロセッサ1600、160
1を用いて前記受けた命令を実行する。
ッサ320自身がリセットされる。これにより、解読部
322は、全プロセッサモード信号3220、322
1、3222を32ビットプロセッサモードとする。ま
た、32ビット命令制御部323は、各メモリ130、
131から読み出された32ビットフォーマットの命令
を2つの16ビットフォーマットの命令3230、32
31に変換する。各16ビット命令制御部1610、1
611は対応する前記16ビットフォーマットの命令を
受け、対応する16ビットプロセッサ1600、160
1を用いて前記受けた命令を実行する。
【0045】次に、「proc.div」命令が発行さ
れると、解読部322は、全プロセッサモード信号32
20、3221、3222を16ビットプロセッサモー
ドとする。また、32ビット命令制御部323は、16
ビットフォーマットのNOP命令を2個の16ビット命
令制御部1610、1611に各々出力する。しかし、
各16ビット命令制御部1610、1611は、対応す
るプロセッサモード信号3220、3221が16ビッ
トプロセッサモードであるので、対応するメモリ13
0、131から出力される16ビットフォーマットの命
令を直接解析し、この命令を対応する16ビットプロセ
ッサ1600、1611で実行する。
れると、解読部322は、全プロセッサモード信号32
20、3221、3222を16ビットプロセッサモー
ドとする。また、32ビット命令制御部323は、16
ビットフォーマットのNOP命令を2個の16ビット命
令制御部1610、1611に各々出力する。しかし、
各16ビット命令制御部1610、1611は、対応す
るプロセッサモード信号3220、3221が16ビッ
トプロセッサモードであるので、対応するメモリ13
0、131から出力される16ビットフォーマットの命
令を直接解析し、この命令を対応する16ビットプロセ
ッサ1600、1611で実行する。
【0046】その後、図2の符号Bで示す時点で、16
ビットプロセッサ1600が「proc.con」命令
を発行すると、解読部322は、16ビットプロセッサ
1600に対するプロセッサモード信号3220を32
ビットプロセッサモードにする。16ビットプロセッサ
1601に対するプロセッサモード信号3221は16
ビットプロセッサモードに保持する。従って、プロセッ
サモード信号3222も16ビットプロセッサモードを
保持する。32ビット命令制御部323は、16ビット
フォーマットのNOP命令を両16ビット命令制御部1
610、1611に出力する。「proc.con」命
令が発行された16ビット命令制御部1610では、受
けたプロセッサモード信号3220が32ビットプロセ
ッサモードであるので、前記32ビット命令制御部32
3からの16ビットフォーマットのNOP命令を実行す
る。一方、残る16ビット命令制御部1611では、受
けたプロセッサモード信号3221が16ビットプロセ
ッサモードであるので、対応するメモリ131から出力
される16ビットフォーマットの命令を直接解析し、こ
の命令を対応する16ビットプロセッサ1611で実行
する。
ビットプロセッサ1600が「proc.con」命令
を発行すると、解読部322は、16ビットプロセッサ
1600に対するプロセッサモード信号3220を32
ビットプロセッサモードにする。16ビットプロセッサ
1601に対するプロセッサモード信号3221は16
ビットプロセッサモードに保持する。従って、プロセッ
サモード信号3222も16ビットプロセッサモードを
保持する。32ビット命令制御部323は、16ビット
フォーマットのNOP命令を両16ビット命令制御部1
610、1611に出力する。「proc.con」命
令が発行された16ビット命令制御部1610では、受
けたプロセッサモード信号3220が32ビットプロセ
ッサモードであるので、前記32ビット命令制御部32
3からの16ビットフォーマットのNOP命令を実行す
る。一方、残る16ビット命令制御部1611では、受
けたプロセッサモード信号3221が16ビットプロセ
ッサモードであるので、対応するメモリ131から出力
される16ビットフォーマットの命令を直接解析し、こ
の命令を対応する16ビットプロセッサ1611で実行
する。
【0047】更に、図2の符号Cの時点で、16ビット
プロセッサ1601が「proc.con」命令を発行
すると、解読部322は、16ビット命令制御部161
1に対するプロセッサモード信号3221を32ビット
プロセッサモードにする。従って、プロセッサモード信
号3222も32ビットプロセッサモードになる。32
ビット命令制御部323は、各メモリ130、131か
ら読み出された32ビットフォーマットの命令を2つの
16ビットフォーマットの命令3230、3231に変
換する。各16ビット命令制御部1610、1611
は、受けるプロセッサモード信号3220、3221が
32ビットプロセッサモードであるので、32ビット命
令制御部323からの16ビットフォーマットの命令3
230、3231を各々受け、この命令を解読し、対応
する16ビットプロセッサ1600、1611で実行す
る。この際、データ結合部162は、下位ALU111
から上位ALU110へキャリー/ボロー112を送
る。
プロセッサ1601が「proc.con」命令を発行
すると、解読部322は、16ビット命令制御部161
1に対するプロセッサモード信号3221を32ビット
プロセッサモードにする。従って、プロセッサモード信
号3222も32ビットプロセッサモードになる。32
ビット命令制御部323は、各メモリ130、131か
ら読み出された32ビットフォーマットの命令を2つの
16ビットフォーマットの命令3230、3231に変
換する。各16ビット命令制御部1610、1611
は、受けるプロセッサモード信号3220、3221が
32ビットプロセッサモードであるので、32ビット命
令制御部323からの16ビットフォーマットの命令3
230、3231を各々受け、この命令を解読し、対応
する16ビットプロセッサ1600、1611で実行す
る。この際、データ結合部162は、下位ALU111
から上位ALU110へキャリー/ボロー112を送
る。
【0048】以上のような流れで16ビットプロセッサ
モードと32ビットプロセッサモードとが変化して行
く。
モードと32ビットプロセッサモードとが変化して行
く。
【0049】尚、本実施の形態では、リセットにより3
2ビットプロセッサモードになる例を挙げて説明した
が、16ビットプロセッサモードになるように設定して
も構わない。
2ビットプロセッサモードになる例を挙げて説明した
が、16ビットプロセッサモードになるように設定して
も構わない。
【0050】以上の構成により、1個の32ビットプロ
セッサ320として動作している際に、プロセッサ分割
命令『proc.div』を発行すれば、その後は、こ
の32ビットプロセッサ320が2個の独立した16ビ
ットプロセッサ1600、1601として動作できるプ
ロセッサが実現される。
セッサ320として動作している際に、プロセッサ分割
命令『proc.div』を発行すれば、その後は、こ
の32ビットプロセッサ320が2個の独立した16ビ
ットプロセッサ1600、1601として動作できるプ
ロセッサが実現される。
【0051】次に、2個のメモリ130、131に対す
るアドレスを生成する構成について、以下、図4に示す
16ビット命令制御部の構成を説明する。
るアドレスを生成する構成について、以下、図4に示す
16ビット命令制御部の構成を説明する。
【0052】尚、本実施の形態では、16ビットプロセ
ッサのメモリ領域として、アドレス『0h000000
00』〜『0h0000ffff』(尚、最初の『0
h』はその後に続く数字が16進数表現であることを示
す)を割り当て、32ビットプロセッサのメモリ領域と
して、アドレス『0h00010000』〜『0hff
ffffff』を割り当てている。
ッサのメモリ領域として、アドレス『0h000000
00』〜『0h0000ffff』(尚、最初の『0
h』はその後に続く数字が16進数表現であることを示
す)を割り当て、32ビットプロセッサのメモリ領域と
して、アドレス『0h00010000』〜『0hff
ffffff』を割り当てている。
【0053】図4において、1401及び1411はプ
ログラムカウンタ(Mnビットプログラムカウンタ)、
1402及び1412は加算器、1403及び1413
は16ビットプロセッサ用の命令解析部、1410は加
算器1412から加算器1402へのキャリー、140
4、1414、1405、1415、1406、141
6、1407及び1417はマルチプレクサである。
ログラムカウンタ(Mnビットプログラムカウンタ)、
1402及び1412は加算器、1403及び1413
は16ビットプロセッサ用の命令解析部、1410は加
算器1412から加算器1402へのキャリー、140
4、1414、1405、1415、1406、141
6、1407及び1417はマルチプレクサである。
【0054】また、32ビット命令制御部323は、プ
ロセッサモード信号3211を16ビットプロセッサの
各命令解析部1403、1413及びマルチプレクサ1
404、1414、1407、1417に出力すると共
に、32ビットプロセッサモード時での対応する16ビ
ットフォーマットの命令3230、3231を各々マル
チプレクサ1407、1417に出力し、更に、32ビ
ットプロセッサモード時での命令語長3213を16ビ
ット命令制御部1611のマルチプレクサ1414に出
力する。
ロセッサモード信号3211を16ビットプロセッサの
各命令解析部1403、1413及びマルチプレクサ1
404、1414、1407、1417に出力すると共
に、32ビットプロセッサモード時での対応する16ビ
ットフォーマットの命令3230、3231を各々マル
チプレクサ1407、1417に出力し、更に、32ビ
ットプロセッサモード時での命令語長3213を16ビ
ット命令制御部1611のマルチプレクサ1414に出
力する。
【0055】マルチプレクサ1407、1417は、3
2ビットプロセッサモード時には、32ビット命令制御
部323からの対応する16ビットフォーマットの命令
3230、3231を選択し、16ビットプロセッサモ
ード時には、対応するメモリ130、131からの16
ビットフォーマットの命令を選択して、各々、命令解析
部1403、1413に出力する。
2ビットプロセッサモード時には、32ビット命令制御
部323からの対応する16ビットフォーマットの命令
3230、3231を選択し、16ビットプロセッサモ
ード時には、対応するメモリ130、131からの16
ビットフォーマットの命令を選択して、各々、命令解析
部1403、1413に出力する。
【0056】マルチプレクサ1404は、32ビットプ
ロセッサモード時には“0”を選択し、16ビットプロ
セッサモード時には、命令解析部1403からの命令語
長を選択して、加算器1402に出力する。
ロセッサモード時には“0”を選択し、16ビットプロ
セッサモード時には、命令解析部1403からの命令語
長を選択して、加算器1402に出力する。
【0057】マルチプレクサ1414は、32ビットプ
ロセッサモード時には、32ビット命令制御部323か
らの32ビットフォーマットの命令語長3213を選択
し、16ビットプロセッサモード時には、命令解析部1
413からの命令語長を選択して、加算器1412に出
力する。
ロセッサモード時には、32ビット命令制御部323か
らの32ビットフォーマットの命令語長3213を選択
し、16ビットプロセッサモード時には、命令解析部1
413からの命令語長を選択して、加算器1412に出
力する。
【0058】また、データ結合部162は、32ビット
プロセッサモード時には、加算器1412からのキャリ
ーを選択し、16ビットプロセッサモード時には“0”
を選択して、加算器1402に出力する。
プロセッサモード時には、加算器1412からのキャリ
ーを選択し、16ビットプロセッサモード時には“0”
を選択して、加算器1402に出力する。
【0059】各命令解析部1403、1413は、各
々、対応するマルチプレクサ1407、1417から出
力される命令を解析し、プロセッサ1600、1601
の各資源並びに内蔵する資源(マルチプレクサ140
5、1406、1415、1416及びメモリ130、
131)を制御すると共に、16ビットプロセッサモー
ド時には、このモード時の16ビットフォーマットの命
令語長を対応するマルチプレクサ1404、1414に
出力する。
々、対応するマルチプレクサ1407、1417から出
力される命令を解析し、プロセッサ1600、1601
の各資源並びに内蔵する資源(マルチプレクサ140
5、1406、1415、1416及びメモリ130、
131)を制御すると共に、16ビットプロセッサモー
ド時には、このモード時の16ビットフォーマットの命
令語長を対応するマルチプレクサ1404、1414に
出力する。
【0060】更に、前記各命令解析部1403、141
3は、各々、マルチプレクサ1405、1415、14
06、1416を制御する。前者のマルチプレクサ14
05、1415の制御については、プログラム分岐の必
要がある場合(例えば、分岐命令、条件分岐命令、サブ
ルーチン分岐/復帰命令、ループ命令、プロセッサ分割
命令等の場合)には、自己の命令解析部1403、14
13の出力を選択させ、それ以外は加算器1402、1
412の出力を選択させて、対応するプログラムカウン
タ1401、1411に出力させる。また、マルチプレ
クサ1406、1416の制御については、メモリから
命令を読み出すフェーズでは、対応するプログラムカウ
ンタ1401、1411の値を選択させ、命令実行中で
プログラム中にアドレスが記載されている場合には、命
令解析部1403、1413の値を選択させ、レジスタ
間接(即ち、レジスタに格納されている値をアドレスと
する)の場合には、プロセッサ1600、1601から
の値を選択させて、各々、MMU150へ出力させる。
3は、各々、マルチプレクサ1405、1415、14
06、1416を制御する。前者のマルチプレクサ14
05、1415の制御については、プログラム分岐の必
要がある場合(例えば、分岐命令、条件分岐命令、サブ
ルーチン分岐/復帰命令、ループ命令、プロセッサ分割
命令等の場合)には、自己の命令解析部1403、14
13の出力を選択させ、それ以外は加算器1402、1
412の出力を選択させて、対応するプログラムカウン
タ1401、1411に出力させる。また、マルチプレ
クサ1406、1416の制御については、メモリから
命令を読み出すフェーズでは、対応するプログラムカウ
ンタ1401、1411の値を選択させ、命令実行中で
プログラム中にアドレスが記載されている場合には、命
令解析部1403、1413の値を選択させ、レジスタ
間接(即ち、レジスタに格納されている値をアドレスと
する)の場合には、プロセッサ1600、1601から
の値を選択させて、各々、MMU150へ出力させる。
【0061】加算器1402は、データ結合部162の
出力と、マルチプレクサ1404の出力と、プログラム
カウンタ1401の出力とを加算して、その加算結果を
マルチプレクサ1405に出力する。更に、加算器14
12は、マルチプレクサ1414の出力と、プログラム
カウンタ1411の出力とを加算して、その加算結果を
マルチプレクサ1415に出力する。即ち、16ビット
プロセッサモード時には、現在解析中の命令のアドレス
(即ち、各プログラムカウンタ1401、1411の
値)に現在解析中の命令の語長を加算して、次の命令の
アドレスを生成し、一方、32ビットプロセッサモード
時には、プログラムカウンタ1401の値を上位16ビ
ット、プログラムカウンタ1411の値を下位16ビッ
トとする32ビットのプログラムカウンタの値(すなわ
ち現在解析中の命令のアドレス)に、現在解析中の命令
の語長(即ち、32ビットフォーマットの命令語長32
13)を加えて、次の命令のアドレスを生成する。
出力と、マルチプレクサ1404の出力と、プログラム
カウンタ1401の出力とを加算して、その加算結果を
マルチプレクサ1405に出力する。更に、加算器14
12は、マルチプレクサ1414の出力と、プログラム
カウンタ1411の出力とを加算して、その加算結果を
マルチプレクサ1415に出力する。即ち、16ビット
プロセッサモード時には、現在解析中の命令のアドレス
(即ち、各プログラムカウンタ1401、1411の
値)に現在解析中の命令の語長を加算して、次の命令の
アドレスを生成し、一方、32ビットプロセッサモード
時には、プログラムカウンタ1401の値を上位16ビ
ット、プログラムカウンタ1411の値を下位16ビッ
トとする32ビットのプログラムカウンタの値(すなわ
ち現在解析中の命令のアドレス)に、現在解析中の命令
の語長(即ち、32ビットフォーマットの命令語長32
13)を加えて、次の命令のアドレスを生成する。
【0062】図5は、前記図3に示したMMU150の
内部構成を示す。同図において、MMU150は、2個
のセレクタ1502、1503を有すると共に、2個の
16ビット命令制御部1610、1611からのアドレ
ス、及び解読部322からのプロセッサモード信号32
22が入力される。
内部構成を示す。同図において、MMU150は、2個
のセレクタ1502、1503を有すると共に、2個の
16ビット命令制御部1610、1611からのアドレ
ス、及び解読部322からのプロセッサモード信号32
22が入力される。
【0063】前記MMU150において、前記セレクタ
1502は、32ビットプロセッサモード時には、上位
側の16ビット命令制御部1610からのアドレスを選
択し、16ビットプロセッサモード時には“0”を選択
して、出力する。セレクタ1503は、32ビットプロ
セッサモード時には下位側の16ビット命令制御部16
11からのアドレスを選択し、16ビットプロセッサモ
ード時には上位側の16ビット命令制御部1610から
のアドレスを選択して、出力する。メモリ130へのア
ドレスは、上位16ビットを前記セレクタ1502の出
力とし、下位16ビットを前記セレクタ1503の出力
とすることにより、生成される。また、メモリ131へ
のアドレスは、上位16ビットを前記セレクタ1502
の出力とし、下位16ビットを下位側の16ビット命令
制御部1611からのアドレスとすることにより、生成
される。
1502は、32ビットプロセッサモード時には、上位
側の16ビット命令制御部1610からのアドレスを選
択し、16ビットプロセッサモード時には“0”を選択
して、出力する。セレクタ1503は、32ビットプロ
セッサモード時には下位側の16ビット命令制御部16
11からのアドレスを選択し、16ビットプロセッサモ
ード時には上位側の16ビット命令制御部1610から
のアドレスを選択して、出力する。メモリ130へのア
ドレスは、上位16ビットを前記セレクタ1502の出
力とし、下位16ビットを前記セレクタ1503の出力
とすることにより、生成される。また、メモリ131へ
のアドレスは、上位16ビットを前記セレクタ1502
の出力とし、下位16ビットを下位側の16ビット命令
制御部1611からのアドレスとすることにより、生成
される。
【0064】図6は、プロセッサ分割/結合命令の動作
を示す。同図では、32ビットプロセッサの命令のプロ
グラムが続き、32ビットフォーマットのプロセッサ分
割命令(『proc.div 0h00100101』
命令)が発行されると、この分割命令の次に32ビット
プロセッサで実行されるべき命令『load 0h05
070800,Rb』、即ち、プロセッサ分割後の16
ビットプロセッサモードから次に32ビットプロセッサ
モードに復活した際に最初に実行される命令のアドレス
を計算し、このアドレスをスタックに退避し、その後、
分割命令の引数の上位16ビットをプログラムカウンタ
1401に書き込むと共に、その引数の下位16ビット
をプログラムカウンタ1411に書き込む。
を示す。同図では、32ビットプロセッサの命令のプロ
グラムが続き、32ビットフォーマットのプロセッサ分
割命令(『proc.div 0h00100101』
命令)が発行されると、この分割命令の次に32ビット
プロセッサで実行されるべき命令『load 0h05
070800,Rb』、即ち、プロセッサ分割後の16
ビットプロセッサモードから次に32ビットプロセッサ
モードに復活した際に最初に実行される命令のアドレス
を計算し、このアドレスをスタックに退避し、その後、
分割命令の引数の上位16ビットをプログラムカウンタ
1401に書き込むと共に、その引数の下位16ビット
をプログラムカウンタ1411に書き込む。
【0065】以上のようにして16ビットプロセッサモ
ードに移行すると、各16ビットプロセッサは各々アド
レス『0h00000010』、『0h0000010
1』に分岐して、相互に独立に動作し、処理を行う。双
方の16ビットプロセッサが処理を終了し、プロセッサ
結合命令(『proc.con』命令)を発行すれば、
前記スタックに退避しておいた次に実行されるべき32
ビットプロセッサの命令のアドレスをプログラムカウン
タに格納し、32ビットプロセッサの命令の実行に戻
る。
ードに移行すると、各16ビットプロセッサは各々アド
レス『0h00000010』、『0h0000010
1』に分岐して、相互に独立に動作し、処理を行う。双
方の16ビットプロセッサが処理を終了し、プロセッサ
結合命令(『proc.con』命令)を発行すれば、
前記スタックに退避しておいた次に実行されるべき32
ビットプロセッサの命令のアドレスをプログラムカウン
タに格納し、32ビットプロセッサの命令の実行に戻
る。
【0066】図7は本実施の形態のメモリ130、13
1のアドレスの割り当てを示す。同図にプログラムの流
れを矢印で示す。また、図8に本実施の形態でのプログ
ラムの流れを時系列で示す。
1のアドレスの割り当てを示す。同図にプログラムの流
れを矢印で示す。また、図8に本実施の形態でのプログ
ラムの流れを時系列で示す。
【0067】(第2の実施の形態)次に、本発明の第2
の実施の形態を説明する。本実施の形態は、メモリ13
0、131へのアドレスを生成する構成の他の形態を示
す。
の実施の形態を説明する。本実施の形態は、メモリ13
0、131へのアドレスを生成する構成の他の形態を示
す。
【0068】前記第1の実施の形態では、16ビットプ
ロセッサモード時に、16ビットプロセッサはアドレス
『0h00000000』〜『0h0000ffff』
のメモリ領域しか使用できない。即ち、16ビットプロ
セッサモードで使用したい処理がこれ以上のアドレス領
域を必要とした場合には、処理不可能になる。この問題
を回避するのが本実施の形態である。また、16ビット
プロセッサモードでの処理がアドレス『0h00000
000』〜『0h0000ffff』の領域で十分な場
合には、本実施の形態はプログラム領域の割り当ての自
由度を高める意味で意義は大きい。
ロセッサモード時に、16ビットプロセッサはアドレス
『0h00000000』〜『0h0000ffff』
のメモリ領域しか使用できない。即ち、16ビットプロ
セッサモードで使用したい処理がこれ以上のアドレス領
域を必要とした場合には、処理不可能になる。この問題
を回避するのが本実施の形態である。また、16ビット
プロセッサモードでの処理がアドレス『0h00000
000』〜『0h0000ffff』の領域で十分な場
合には、本実施の形態はプログラム領域の割り当ての自
由度を高める意味で意義は大きい。
【0069】図9は、各16ビット命令制御部161
0、1611の構成を示す。同図において、1401及
び1411はプログラムカウンタ、1402及び141
2は加算器、1409及び1419は16ビットプロセ
ッサ用の命令解析部、1410は加算器1412から加
算器1402へのキャリーである。
0、1611の構成を示す。同図において、1401及
び1411はプログラムカウンタ、1402及び141
2は加算器、1409及び1419は16ビットプロセ
ッサ用の命令解析部、1410は加算器1412から加
算器1402へのキャリーである。
【0070】前記32ビット命令制御部323、マルチ
プレクサ1407、1417、1404、1414及び
データ結合部162の構成及び動作は図4と同一であ
る。
プレクサ1407、1417、1404、1414及び
データ結合部162の構成及び動作は図4と同一であ
る。
【0071】各16ビットプロセッサの命令解析部14
09、1419は、マルチプレクサ1407、1417
から出力される命令を解析し、16ビットプロセッサ1
600、1601の資源並びにマルチプレクサ140
8、1406、1418、1416及びメモリ130、
131を制御すると共に、16ビットプロセッサモード
時には、その命令の語長をマルチプレクサ1404、1
414に出力する。
09、1419は、マルチプレクサ1407、1417
から出力される命令を解析し、16ビットプロセッサ1
600、1601の資源並びにマルチプレクサ140
8、1406、1418、1416及びメモリ130、
131を制御すると共に、16ビットプロセッサモード
時には、その命令の語長をマルチプレクサ1404、1
414に出力する。
【0072】16ビット命令制御部1610の命令解析
部1409は、自己のプロセッサ1600がプロセッサ
結合命令(『proc.connect命令』を発行し
た際に、その発行を他方の16ビット命令制御部161
1の命令解析部1419に知らせる。更に、この命令解
析部1409は、マルチプレクサ1408を制御して、
プログラム分岐の必要がある場合(例えば、分岐命令、
条件分岐命令、サブルーチン分岐/復帰命令、ループ命
令等の場合)には、自己の命令解析部1409の出力を
選択させ、プロセッサ結合命令(proc.con、p
roc.connect)の場合には、ページレジスタ
(後述する)1501の値を選択させ、それ以外は加算
器1402の出力を選択させて、各々、プログラムカウ
ンタ1401に出力させる。また、プロセッサ分割命令
(『proc.div』命令)の場合には、プログラム
カウンタ1401をリセットする。
部1409は、自己のプロセッサ1600がプロセッサ
結合命令(『proc.connect命令』を発行し
た際に、その発行を他方の16ビット命令制御部161
1の命令解析部1419に知らせる。更に、この命令解
析部1409は、マルチプレクサ1408を制御して、
プログラム分岐の必要がある場合(例えば、分岐命令、
条件分岐命令、サブルーチン分岐/復帰命令、ループ命
令等の場合)には、自己の命令解析部1409の出力を
選択させ、プロセッサ結合命令(proc.con、p
roc.connect)の場合には、ページレジスタ
(後述する)1501の値を選択させ、それ以外は加算
器1402の出力を選択させて、各々、プログラムカウ
ンタ1401に出力させる。また、プロセッサ分割命令
(『proc.div』命令)の場合には、プログラム
カウンタ1401をリセットする。
【0073】他方の16ビットプロセッサ1601の命
令解析部1419は、マルチプレクサ1418を制御し
て、プログラム分岐の必要がある場合には命令解析部1
419の出力を選択させ、前記一方の16ビットプロセ
ッサ1600がプロセッサ結合命令(『proc.co
nnect』命令)を発行した場合には、加算器140
2の値を選択させ、それ等以外は加算器1412の出力
を選択させて、各々、プログラムカウンタ1411に出
力させる。加えて、プロセッサ分割命令(『proc.
div』命令)の場合には、プログラムカウンタ141
1をリセットする。
令解析部1419は、マルチプレクサ1418を制御し
て、プログラム分岐の必要がある場合には命令解析部1
419の出力を選択させ、前記一方の16ビットプロセ
ッサ1600がプロセッサ結合命令(『proc.co
nnect』命令)を発行した場合には、加算器140
2の値を選択させ、それ等以外は加算器1412の出力
を選択させて、各々、プログラムカウンタ1411に出
力させる。加えて、プロセッサ分割命令(『proc.
div』命令)の場合には、プログラムカウンタ141
1をリセットする。
【0074】マルチプレクサ1406、1416の制御
については、前記図4と同一である。また、加算器14
02の動作も図4と同一である。
については、前記図4と同一である。また、加算器14
02の動作も図4と同一である。
【0075】図10は、本実施の形態のMMU150´
の構成を示す。同図のMMU150´は、セレクタ15
03、1504、16ビットのページレジスタ150
1、及び+1加算器1505により構成されると共に、
16ビット命令制御部1610、1611からのアドレ
スと、上位側の16ビット命令制御部1610内のプロ
グラムカウンタ1401の出力と、32ビット命令制御
部323からのプロセッサモード信号3222とが入力
される。
の構成を示す。同図のMMU150´は、セレクタ15
03、1504、16ビットのページレジスタ150
1、及び+1加算器1505により構成されると共に、
16ビット命令制御部1610、1611からのアドレ
スと、上位側の16ビット命令制御部1610内のプロ
グラムカウンタ1401の出力と、32ビット命令制御
部323からのプロセッサモード信号3222とが入力
される。
【0076】前記図10のMMU150´において、セ
レクタ1504は、プロセッサモード信号3222から
判断した32ビットプロセッサモード時には、上位側の
16ビット命令制御部1610からのアドレスを選択
し、16ビットプロセッサモード時には、ページレジス
タ1501の値を選択して、出力する。また、他方のセ
レクタ1503は、32ビットプロセッサモード時では
下位側の16ビット命令制御部1611からのアドレス
を選択し、16ビットプロセッサモード時では上位側の
16ビット命令制御部1610からのアドレスを選択し
て、出力する。メモリ130へのアドレスは、上位16
ビットを前記セレクタ1504の出力とし、下位16ビ
ットを前記セレクタ1503の出力とすることにより、
生成される。また、メモリ131へのアドレスは、上位
16ビットを前記セレクタ1504の出力とし、下位1
6ビットを下位側の16ビット命令制御部1611から
のアドレスとすることにより、生成される。
レクタ1504は、プロセッサモード信号3222から
判断した32ビットプロセッサモード時には、上位側の
16ビット命令制御部1610からのアドレスを選択
し、16ビットプロセッサモード時には、ページレジス
タ1501の値を選択して、出力する。また、他方のセ
レクタ1503は、32ビットプロセッサモード時では
下位側の16ビット命令制御部1611からのアドレス
を選択し、16ビットプロセッサモード時では上位側の
16ビット命令制御部1610からのアドレスを選択し
て、出力する。メモリ130へのアドレスは、上位16
ビットを前記セレクタ1504の出力とし、下位16ビ
ットを前記セレクタ1503の出力とすることにより、
生成される。また、メモリ131へのアドレスは、上位
16ビットを前記セレクタ1504の出力とし、下位1
6ビットを下位側の16ビット命令制御部1611から
のアドレスとすることにより、生成される。
【0077】図11は、本実施の形態のプロセッサの分
割/結合命令時の動作を示す。図12は本実施の形態の
メモリ130、131のアドレスの割り当てを示し、プ
ログラムの流れを矢印で示している。
割/結合命令時の動作を示す。図12は本実施の形態の
メモリ130、131のアドレスの割り当てを示し、プ
ログラムの流れを矢印で示している。
【0078】前記図11では、最初は32ビットプロセ
ッサの命令のプログラムが続き、プロセッサ分割命令
(『proc.div』命令であって、図12中のアド
レス『0h01a2c70f』又は『0h134007
77』に格納された命令)が発行されると、その後、+
1加算器1505によりプログラムカウンタ1401の
値に“1”を加え、この加算結果(即ち、『0h01a
3』又は『0h1341』)をページレジスタ1501
に書き込むと共に、プログラムカウンタ1401、14
11に“0”を書き込む。
ッサの命令のプログラムが続き、プロセッサ分割命令
(『proc.div』命令であって、図12中のアド
レス『0h01a2c70f』又は『0h134007
77』に格納された命令)が発行されると、その後、+
1加算器1505によりプログラムカウンタ1401の
値に“1”を加え、この加算結果(即ち、『0h01a
3』又は『0h1341』)をページレジスタ1501
に書き込むと共に、プログラムカウンタ1401、14
11に“0”を書き込む。
【0079】前記のようにして16ビットプロセッサモ
ードに移行すると、その後は、各16ビットプロセッサ
1600、1601は、対応するアドレス『0h01a
30000』、『0h13410000』に分岐して、
各々、独立に動作して16ビットフォーマットの命令を
実行する。
ードに移行すると、その後は、各16ビットプロセッサ
1600、1601は、対応するアドレス『0h01a
30000』、『0h13410000』に分岐して、
各々、独立に動作して16ビットフォーマットの命令を
実行する。
【0080】その後、各16ビットプロセッサ160
0、1601が処理を終了すれば、この各プロセッサは
プロセッサ結合命令を発行する。このとき、メモリ領域
を多く使用した側のプロセッサが発行するプロセッサ結
合命令を『proc.connect』命令とし、使用
領域の少ない側のプロセッサが発行するプロセッサ結合
命令は『proc.con』命令として、区別する。
『proc.connect』命令を発行した側の16
ビットプロセッサのプログラムカウンタ(図12の記号
Aの場合はプログラムカウンタ1411、記号Bの場合
はプログラムカウンタ1401)の値に、『proc.
connect』命令の命令語長(本実施の形態の場合
では“1”)を加えた値をプログラムカウンタ1411
に格納すると共に、ページレジスタ1501の値をプロ
グラムカウンタ1401に格納して、32ビットプロセ
ッサの命令に戻る。
0、1601が処理を終了すれば、この各プロセッサは
プロセッサ結合命令を発行する。このとき、メモリ領域
を多く使用した側のプロセッサが発行するプロセッサ結
合命令を『proc.connect』命令とし、使用
領域の少ない側のプロセッサが発行するプロセッサ結合
命令は『proc.con』命令として、区別する。
『proc.connect』命令を発行した側の16
ビットプロセッサのプログラムカウンタ(図12の記号
Aの場合はプログラムカウンタ1411、記号Bの場合
はプログラムカウンタ1401)の値に、『proc.
connect』命令の命令語長(本実施の形態の場合
では“1”)を加えた値をプログラムカウンタ1411
に格納すると共に、ページレジスタ1501の値をプロ
グラムカウンタ1401に格納して、32ビットプロセ
ッサの命令に戻る。
【0081】この場合、注意しなければならない点は、
16ビットプロセッサモード時には、アドレスの下位1
6ビットが『0hffff』の領域を使用できないこと
がある点である。その理由は、『0hffff』に
“1”を加えると、上位の16ビットにキャリーが発生
し、ページレジスタ1501の値に“1”を加えなけれ
ばならないからである。
16ビットプロセッサモード時には、アドレスの下位1
6ビットが『0hffff』の領域を使用できないこと
がある点である。その理由は、『0hffff』に
“1”を加えると、上位の16ビットにキャリーが発生
し、ページレジスタ1501の値に“1”を加えなけれ
ばならないからである。
【0082】尚、以上の説明では、メモリ130、13
1に記憶した複数の命令をその各命令相互の語長が異な
る可変長としたが、相互に同一の固定命令長としてもよ
いのは勿論である。命令語長を固定長とする場合には、
32ビット命令制御部323から出力される命令語長3
213は省略できる。
1に記憶した複数の命令をその各命令相互の語長が異な
る可変長としたが、相互に同一の固定命令長としてもよ
いのは勿論である。命令語長を固定長とする場合には、
32ビット命令制御部323から出力される命令語長3
213は省略できる。
【0083】
【発明の効果】以上説明したように、請求項1ないし請
求項17記載のプロセッサによれば、プロセッサを適宜
広ビット幅の1個のプロセッサ又は狭ビット幅の複数個
のプロセッサとして使い分け、広ビット幅が必要な処理
では広ビット幅のプロセッサとして使用し、一方、逐次
的な処理を狭ビット幅で行う際には、何れか1個の狭ビ
ット幅のプロセッサでその逐次的な処理を行いつつ、残
りの狭ビット幅のプロセッサでは他の狭ビット幅でよい
処理を並列に行うことが可能になり、プロセッサの性能
向上を図ることができる。
求項17記載のプロセッサによれば、プロセッサを適宜
広ビット幅の1個のプロセッサ又は狭ビット幅の複数個
のプロセッサとして使い分け、広ビット幅が必要な処理
では広ビット幅のプロセッサとして使用し、一方、逐次
的な処理を狭ビット幅で行う際には、何れか1個の狭ビ
ット幅のプロセッサでその逐次的な処理を行いつつ、残
りの狭ビット幅のプロセッサでは他の狭ビット幅でよい
処理を並列に行うことが可能になり、プロセッサの性能
向上を図ることができる。
【図1】本発明の第1の実施の形態のプロセッサの全体
概略構成を示す図である。
概略構成を示す図である。
【図2】同実施の形態のプロセッサの処理の流れの図で
ある。
ある。
【図3】同実施の形態のプロセッサを構成する2個の1
6ビットプロセッサの内部構成を示す図である。
6ビットプロセッサの内部構成を示す図である。
【図4】同実施の形態の2個の16ビット命令制御部の
内部構成を示す図である。
内部構成を示す図である。
【図5】同実施の形態のメモリ・マネジメント・ユニッ
トの構成を示す図である。
トの構成を示す図である。
【図6】同実施の形態のプロセッサの分割命令時及び結
合命令時の処理の流れを示す図である。
合命令時の処理の流れを示す図である。
【図7】同実施の形態のプロセッサが有するメモリでの
アドレスの割り付けを示す図である。
アドレスの割り付けを示す図である。
【図8】同実施の形態のプログラムの流れを示す図であ
る。
る。
【図9】本発明の第2の実施の形態の2個の16ビット
命令制御部の内部構成を示す図である。
命令制御部の内部構成を示す図である。
【図10】同実施の形態のメモリ・マネジメント・ユニ
ットの構成を示す図である。
ットの構成を示す図である。
【図11】同実施の形態のプロセッサの分割命令時及び
結合命令時の処理の流れを示す図である。
結合命令時の処理の流れを示す図である。
【図12】同実施の形態のプロセッサが有するメモリで
のアドレスの割り付けを示す図である。
のアドレスの割り付けを示す図である。
【図13】32ビットフォーマットの命令を16ビット
フォーマットの命令に変換する具体例を示す図である。
フォーマットの命令に変換する具体例を示す図である。
【図14】同他の具体例を示す図である。
【図15】32ビット命令制御部の動作の一例を示すフ
ローチャート図である。
ローチャート図である。
110、111 ALU(Mnビット演算器) 120〜125 データレジスタ(Mnビットデ
ータレジスタ) 130、131 メモリ 150、150´ メモリマネジメントユニット
(MMU) 162 データ結合部 320 32ビットプロセッサ(Nビッ
トプロセッサ) 321 制御部 323 32ビット命令制御部(Nビッ
トプロセッサ用命令制御部) 1401、1411 プログラムカウンタ(Mnビッ
トプログラムカウンタ) 1402、1412 加算器 1403、1413 命令解析部 1409、1419 命令解析部 1501 ページレジスタ 1600、1601 16ビットプロセッサ(Mnビ
ットプロセッサ) 1610、1611 16ビット命令制御部(Mnビ
ットプロセッサ用命令制御部)
ータレジスタ) 130、131 メモリ 150、150´ メモリマネジメントユニット
(MMU) 162 データ結合部 320 32ビットプロセッサ(Nビッ
トプロセッサ) 321 制御部 323 32ビット命令制御部(Nビッ
トプロセッサ用命令制御部) 1401、1411 プログラムカウンタ(Mnビッ
トプログラムカウンタ) 1402、1412 加算器 1403、1413 命令解析部 1409、1419 命令解析部 1501 ページレジスタ 1600、1601 16ビットプロセッサ(Mnビ
ットプロセッサ) 1610、1611 16ビット命令制御部(Mnビ
ットプロセッサ用命令制御部)
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G06F 15/78 510 G06F 15/78 510G
Claims (17)
- 【請求項1】 Nビット(Nは自然数)のプロセッサに
おいて、 前記Nビットプロセッサ用の命令と、N=M1+…+M
n(M1、Mnは自然数、nは2以上の自然数)を満た
すn個のMnビットプロセッサ用の命令とを解読する解
読部と、 前記解読部により解読された命令が前記Nビットプロセ
ッサ用の命令である場合には、その命令を解読し実行す
るよう、前記Nビットプロセッサを制御するNビットプ
ロセッサ用命令制御部と、 前記解読部により解読された命令が前記n個のMnビッ
トプロセッサ用の命令である場合には、前記Nビットプ
ロセッサをn個に分割したMnビットプロセッサとし、
前記n個の命令を並列に解読し実行するよう、前記n個
のMnビットプロセッサを制御するn個のMnビットプ
ロセッサ用命令制御部とを備えたことを特徴とするプロ
セッサ。 - 【請求項2】 別途、前記Nビットプロセッサ用の命令
と、前記n個のMnビットプロセッサ用の命令と、ある
特定の命令とを記憶するメモリを備え、 前記解読部は、前記3種の命令を受け、前記特定の命令
を解読して、その特定の命令の後に受ける命令が前記N
ビットプロセッサ用の命令か、又は前記n個のMnビッ
トプロセッサ用の命令かを判断することを特徴とする請
求項1記載のプロセッサ。 - 【請求項3】 前記特定の命令はプロセッサ分割命令で
あり、 前記解読部は、前記分割命令を受けて、その分割命令の
後に受ける命令がn個のMnビットプロセッサ用の命令
であることを判断することを特徴とする請求項2記載の
プロセッサ。 - 【請求項4】 前記特定の命令はプロセッサ結合命令で
あり、 前記解読部は、前記結合命令を受けて、その結合命令の
後に受ける命令がNビットプロセッサ用の命令であるこ
とを判断することを特徴とする請求項2記載のプロセッ
サ。 - 【請求項5】 解読された命令が前記Nビットプロセッ
サ用の命令である場合には、 前記Nビットプロセッサ用命令制御部は、 前記Nビットプロセッサ用の命令を、n個のMnビット
プロセッサが実行可能なn個のMnビットフォーマット
の命令に変換し、この変換したn個の命令を各々対応す
るMnビットプロセッサ用命令制御部に送出し、 前記n個のMnビットプロセッサ用命令制御部により、
対応するMnビットフォーマットの命令の実行を制御す
ることを特徴とする請求項1記載のプロセッサ。 - 【請求項6】 Nビットプロセッサは32ビットプロセ
ッサであり、 n個のMnビットプロセッサは2個の16ビットプロセ
ッサであることを特徴とする請求項1記載のプロセッ
サ。 - 【請求項7】 前記n個のMnビットプロセッサに対応
してn個のMnビット資源を備え、 前記n個のMnビットプロセッサとして動作する際に
は、前記各Mnビットプロセッサ用命令制御部が、前記
対応するMnビット資源を制御し、 前記Nビットプロセッサとして動作する際には、前記N
ビットプロセッサ用命令制御部が、前記n個のMnビッ
ト資源を結合してNビット資源として動作するように制
御することを特徴とする請求項1記載のプロセッサ。 - 【請求項8】 前記n個の資源は、 n個のMnビット演算器、n個のMnビットメモリ、n
個のMnビットデータレジスタ、又はn個のMnビット
プログラムカウンタであることを特徴とする請求項7記
載のプロセッサ。 - 【請求項9】 前記n個の資源はn段のMnビット演算
器であり、 前記Nビットプロセッサ用命令制御部は、 前記Nビットプロセッサとして動作する際に前段のMn
ビット演算器のキャリー/ボローを次段のMnビット演
算器に送出して前記n段のMnビット演算器同志を結合
するデータ結合部を有することを特徴とする請求項7記
載のプロセッサ。 - 【請求項10】 各Mnビットプロセッサ用のn個のプ
ログラムカウンタを有し、 前記プロセッサ分割命令は、 Nビットフォーマットの命令であり、且つ、このプロセ
ッサ分割命令の後に最初に実行するNビットプロセッサ
の命令のアドレスを計算し、その値を退避させると共
に、前記各Mnビットプロセッサ用のn個のプログラム
カウンタに、前記プロセッサ分割命令に含まれるNビッ
トのアドレスをMnビットづつ書き込む命令であること
を特徴とする請求項3記載のプロセッサ。 - 【請求項11】 前記特定の命令はプロセッサ結合命令
をも含み、 前記プロセッサ結合命令は、 前記n個のMnビットプロセッサとしての動作を停止し
て前記プロセッサ分割命令の実行の際に退避した前記N
ビットプログラムカウンタの値を復帰させるものである
ことを特徴とする請求項10記載のプロセッサ。 - 【請求項12】 前記Nビットプロセッサ用の命令と、
n個のMnビットプロセッサ用の命令とを記憶するメモ
リを備え、 前記メモリ空間のアドレスの“0”番地〜(2^Mnm
ax−1)番地(^は冪乗、MnmaxはM1、M2、
…、Mnのうち最大のものを表わす)までをn個のMn
ビットプロセッサ用の空間として使用し、 前記メモリ空間のアドレスの(2^Mnmax)番地〜
(2^N−1)番地をNビットプロセッサ用の空間とし
て使用することを特徴とする請求項1記載のプロセッ
サ。 - 【請求項13】 各Mnビットプロセッサ用のn個のプ
ログラムカウンタと、 (N−Mn)ビットのページレジスタとを有し、 前記プロセッサ分割命令は、 この分割命令のプログラムカウンタの値の上位から(N
−Mn)ビット目の値に“1”を加え、この加算結果で
ある上位(N−Mn)ビットの値を前記(N−Mn)ビ
ットのページレジスタに書き込むと共に、前記n個のプ
ログラムカウンタに“0”を書き込む命令であることを
特徴とする請求項3記載のプロセッサ。 - 【請求項14】 n個のMnビットプロセッサとして動
作する際、 前記n個のMnビットプロセッサ用命令制御部は、各
々、 前記(N−Mn)ページレジスタの値を上位ビットと
し、対応する前記プログラムカウンタの“0”値のMn
ビットアドレスを下位ビットとし、この上位ビット及び
この下位ビットを合わせたNビットのアドレスを、予め
命令を記憶するメモリに送出することを特徴とする請求
項13記載のプロセッサ。 - 【請求項15】 前記特定の命令には、前記n個のMn
ビットプロセッサが各々処理を終了した際に対応するM
nビットプロセッサ用命令制御部から出力されるプロセ
ッサ結合命令が含まれ、 何れかの前記Mnビットプロセッサが処理を終了して、
対応するMnビットプロセッサ用命令制御部が前記プロ
セッサ結合命令を出力した場合、このMnビット命令制
御部は、他のMnビットプロセッサが処理を終了するま
で、動作を停止し又は何も状態変化を起さない命令を実
行するよう、対応するMnビットプロセッサを制御する
ことを特徴とする請求項14記載のプロセッサ。 - 【請求項16】 全てのMnビットプロセッサが処理を
終えた際、 前記(N−Mn)ページレジスタの値を上位ビットと
し、前記プロセッサ結合命令を最後に出力したMnビッ
トプロセッサ用命令制御部に対応する前記プログラムカ
ウンタの値に“1”を加えた値を下位ビットとし、この
上位ビット及び下位ビットを合わせたNビットのアドレ
スを、予め命令を記憶するメモリに送出することを特徴
とする請求項15記載のプロセッサ。 - 【請求項17】 複数の前記Nビットプロセッサ用の命
令、及び複数の前記Mnビットプロセッサ用の命令は、
可変語長の命令であることを特徴とする請求項1記載の
プロセッサ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9126977A JPH1091439A (ja) | 1996-05-23 | 1997-05-16 | プロセッサ |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12804696 | 1996-05-23 | ||
| JP8-128046 | 1996-05-23 | ||
| JP9126977A JPH1091439A (ja) | 1996-05-23 | 1997-05-16 | プロセッサ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1091439A true JPH1091439A (ja) | 1998-04-10 |
Family
ID=26463040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9126977A Pending JPH1091439A (ja) | 1996-05-23 | 1997-05-16 | プロセッサ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1091439A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7127594B2 (en) | 2001-09-03 | 2006-10-24 | Matsushita Electric Industrial Co., Ltd. | Multiprocessor system and program optimizing method |
| WO2007049610A1 (ja) * | 2005-10-25 | 2007-05-03 | Mitsubishi Electric Corporation | 画像処理装置 |
| WO2008123361A1 (ja) * | 2007-03-29 | 2008-10-16 | Nec Corporation | 再構成可能なsimd型プロセッサ及びその命令実行制御の方法 |
| US8843542B2 (en) | 2009-03-26 | 2014-09-23 | Seiko Epson Corporation | Information processing device, arithmetic processing method, and electronic apparatus |
-
1997
- 1997-05-16 JP JP9126977A patent/JPH1091439A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7127594B2 (en) | 2001-09-03 | 2006-10-24 | Matsushita Electric Industrial Co., Ltd. | Multiprocessor system and program optimizing method |
| WO2007049610A1 (ja) * | 2005-10-25 | 2007-05-03 | Mitsubishi Electric Corporation | 画像処理装置 |
| JPWO2007049610A1 (ja) * | 2005-10-25 | 2009-04-30 | 三菱電機株式会社 | 画像処理装置 |
| WO2008123361A1 (ja) * | 2007-03-29 | 2008-10-16 | Nec Corporation | 再構成可能なsimd型プロセッサ及びその命令実行制御の方法 |
| US8843542B2 (en) | 2009-03-26 | 2014-09-23 | Seiko Epson Corporation | Information processing device, arithmetic processing method, and electronic apparatus |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5794067A (en) | Digital signal processing device | |
| JP3781519B2 (ja) | プロセッサの命令制御機構 | |
| JPH10134036A (ja) | マルチメディア信号プロセッサの単一命令多重データ処理 | |
| US20070283356A1 (en) | Multi-threaded processor with deferred thread output control | |
| US7574583B2 (en) | Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor | |
| JPH09231070A (ja) | 情報処理回路、半導体集積回路装置、マイクロコンピュータ、電子機器 | |
| US20050198471A1 (en) | Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein | |
| US6026486A (en) | General purpose processor having a variable bitwidth | |
| JPH10143494A (ja) | スカラ/ベクトル演算の組み合わせられた単一命令複数データ処理 | |
| JP2003044273A (ja) | データ処理装置及びデータ処理方法 | |
| WO2025124574A1 (zh) | 计算系统、由计算系统执行的方法及存储介质 | |
| JP3479385B2 (ja) | 情報処理装置 | |
| JPH03233630A (ja) | 情報処理装置 | |
| JPH1091439A (ja) | プロセッサ | |
| JPS62165242A (ja) | プロセツサ | |
| US6314505B1 (en) | Processor and method for accessing rectangular areas in memory | |
| JP2006018411A (ja) | プロセッサ | |
| US5875323A (en) | Processor using implicit register addressing | |
| JP2013246816A (ja) | ミニコア基盤の再構成可能プロセッサ及びその再構成可能プロセッサを利用した柔軟な多重データ処理方法 | |
| US8255672B2 (en) | Single instruction decode circuit for decoding instruction from memory and instructions from an instruction generation circuit | |
| JP2826309B2 (ja) | 情報処理装置 | |
| US6363469B1 (en) | Address generation apparatus | |
| JP4896839B2 (ja) | マイクロプロセッサおよびデータ処理方法 | |
| JP7575841B2 (ja) | 迅速かつ広範な結果生成のための隣接simdユニットの再利用 | |
| JP3511691B2 (ja) | 演算処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19990907 |