(57)【特許請求の範囲】
【請求項１】
アドレスポインタを保持して出力するアドレスポインタレジスタと、
上記アドレスポインタレジスタが出力するアドレスポインタに所定値を加算する加算器と、
上記アドレスポインタレジスタの出力又は上記加算器の出力を選択して出力する選択器と、
カウントアップ又はカウントダウンを行なうアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記アドレスポインタレジスタ、上記加算器、上記選択器、上記アドレスカウンタ及び上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
各命令を構成する命令構成バイトが相連続するアドレスから成るアドレス群に、アドレス値に対して昇順又は降順に記憶され、
第１の命令の先頭の命令構成バイトと第２の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第１の命令の命令構成バイトがアドレス値に対し降順に配置され、上記第２の命令の命令構成バイトがアドレス値に対して昇順に配置され、
上記アドレスポインタとして上記第１の命令の先頭の命令構成バイトの先頭のアドレスのアドレス値を指示するものが与えられ、
上記選択器が上記アドレスポインタレジスタの出力を選択して上記アドレスカウンタに初期カウント値として設定し、カウントダウンを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行し、
上記選択器が上記加算器の出力を選択して上記アドレスカウンタに初期カウント値として設定し、カウントアップを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行する
ことを特徴とするプロセッサ。
【請求項２】
アドレスポインタを保持して出力するアドレスポインタレジスタと、
上記アドレスポインタレジスタが出力するアドレスポインタから所定値を減算する減算器と、
上記アドレスポインタレジスタの出力又は上記減算器の出力を選択して出力する選択器と、
カウントアップ又はカウントダウンを行なうアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記アドレスポインタレジスタ、上記減算器、上記選択器、上記アドレスカウンタ及び上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
各命令を構成する命令構成バイトが相連続するアドレスから成るアドレス群に、アドレス値に対して昇順又は降順に記憶され、
第１の命令の先頭の命令構成バイトと第２の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第１の命令の命令構成バイトがアドレス値に対し降順に配置され、上記第２の命令の命令構成バイトがアドレス値に対して昇順に配置され、
上記アドレスポインタとして上記第２の命令の先頭のアドレスのアドレス値を指示するものが与えられ、
上記選択器が上記アドレスポインタレジスタの出力を選択して上記アドレスカウンタに初期カウント値として設定し、カウントアップを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行し、
上記選択器が上記減算器の出力を選択して上記アドレスカウンタに初期カウント値として設定し、カウントダウンを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行する
ことを特徴とするプロセッサ。
【請求項３】
初期カウント値を設定された後カウントダウンを行なう第１のアドレスカウンタと、
初期カウント値を設定された後カウントアップを行なう第２のアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記第１及び第２のアドレスカウンタ、並びに上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
各命令を構成する命令構成バイトが相連続するアドレスから成るアドレス群に、アドレス値に対して昇順又は降順に記憶され、
第１の命令の先頭の命令構成バイトと第２の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第１の命令の命令構成バイトがアドレスに対し降順に配置され、上記第２の命令の命令構成バイトがアドレスに対して昇順に配置され、
上記第１の命令の先頭の命令構成バイト又は上記第２の命令の先頭の命令構成バイトのアドレスのアドレス値を指示するアドレスポインタを与え、
上記第１のアドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行し、
上記第２のアドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行する
ことを特徴とするプロセッサ。
【請求項４】
上記第１の命令のすべての命令構成バイトを格納する第１の命令レジスタと、
上記第２の命令のすべての命令構成バイトを格納する第２の命令レジスタと、
上記第１の命令レジスタに記憶された命令を解読して実行する第１の解読器と、
上記第２の命令レジスタに記憶された命令を解読して実行する第２の解読器と
をさらに備えたことを特徴とする請求項３に記載のプロセッサ。
【請求項５】
上記第１の命令のすべての命令構成バイトを格納する第１の命令レジスタと、
上記第２の命令のすべての命令構成バイトを格納する第２の命令レジスタと、
上記第１の命令レジスタに格納された命令、又は上記第２の命令レジスタに格納された命令のいずれかを選択する選択器と、
上記選択器で選択された命令を解読して実行する解読器と
をさらに備えたことを特徴とする請求項３に記載のプロセッサ。
【請求項６】
上記第１の命令及び第２の命令の読み出し及び実行を並列に行うことを特徴とする請求項３又は４に記載のプロセッサ。
【請求項７】
上記第１の命令及び第２の命令の少なくとも一方が、上記第１の命令及び第２の命令の並列処理が可能かどうかを示す並列処理可否情報を含み、
上記並列処理可否情報が並列処理が可能であることを示すときに、上記制御器が上記並列処理を行なわせることを特徴とする請求項６に記載のプロセッサ。
【請求項８】
初期カウント値を設定された後カウントダウンを行なう第１のアドレスカウンタと、
初期カウント値を設定された後カウントアップを行なう第２のアドレスカウンタと、
初期カウント値を設定された後カウントダウンを行なう第３のアドレスカウンタと、
初期カウント値を設定された後カウントアップを行なう第４のアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記第１及び第２のアドレスカウンタ、並びに上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
第１の命令を構成する命令構成バイトが相連続するアドレスから成る第１のアドレス群に、アドレス値に対して昇順に記憶され、
第２の命令を構成する命令構成バイトが相連続するアドレスから成る第２のアドレス群に、アドレス値に対して降順に記憶され、
第３の命令を構成する命令構成バイトが相連続するアドレスから成る第３のアドレス群に、アドレス値に対して昇順に記憶され、
第４の命令を構成する命令構成バイトが相連続するアドレスから成る第４のアドレス群に、アドレス値に対して降順に記憶され、
第２の命令の先頭の命令構成バイトと第３の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第２の命令の命令構成バイトがアドレス値に対し降順に配置され、上記第３の命令の命令構成バイトがアドレス値に対して昇順に配置され、
上記第１の命令の先頭の命令構成バイトの直前にポイント命令が配置され、
上記ポイント命令が、上記第２の命令の先頭の命令構成バイトのアドレスのアドレス値又は上記第３の命令の先頭の命令構成バイトのアドレスのアドレス値を示す第１の内部アドレスポインタ、並びに上記第４の命令の先頭の命令構成バイトのアドレスのアドレス値を示す第２の内部アドレスポインタを含み、
上記ポイント命令を指示するアドレスポインタを与え、
上記ポイント命令を実行して、上記第１及び第２の内部アドレスポインタを発生し、
上記第１のアドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行し、
上記第２のアドレスカウンタに、上記第１の内部アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行し、
上記第３のアドレスカウンタに、上記第１の内部アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第３の命令の命令構成バイトを順に読み出して実行し、
上記第４のアドレスカウンタに、上記第２の内部アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第４の命令の命令構成バイトを順に読み出して実行する、
ことを特徴とするプロセッサ。
【請求項９】
分岐命令の実行により、
上記アドレスポインタと、
アドレスカウンタにカウントアップを行なわせるべきかカウントダウンを行なわせるべきかを示す方向情報とを発生させ、
上記方向情報に基づいて上記第１及び第２の命令のいずれかを実行させることを特徴とする請求項１又は２に記載のプロセッサを用いた命令実行方法。
【請求項１０】
分岐命令の実行により、
上記ポイント命令のアドレスのアドレス値を示すアドレスポインタと、
上記ポイント命令からの隔たりを示す隔たり情報と、
方向を示す方向情報と発生させ、
これらに基づいて上記第１乃至第４の命令のうちの実行すべき命令を指定することを特徴とする請求項８に記載のプロセッサを用いた命令実行方法。
【請求項１１】
上記隔たり情報が、上記ポイント命令のアドレスから、上記第１の命令の先頭の命令構成バイトのアドレスまでの隔たりに対応するものであるときは、上記第１乃至第４の命令をすべて実行し、
上記隔たり情報が、上記ポイント命令のアドレスから、上記第２の命令の先頭の命令構成バイトのアドレス又は上記第３の命令の先頭の命令構成バイトのアドレスに対応し、上記方向情報が降順を示すものであるときは、上記第２乃至第４の命令を実行し、
上記隔たり情報が、上記ポイント命令のアドレスから、上記第２の命令の先頭の命令構成バイトのアドレス又は上記第３の命令の先頭の命令構成バイトのアドレスに対応し、上記方向情報が昇順を示すものであるときは、上記第３及び第４の命令を実行し、
上記隔たり情報が、上記ポイント命令のアドレスから、上記第４の命令の先頭の命令構成バイトのアドレスに対応するときは、第４の命令のみを実行する
ことを特徴とする請求項１０に記載の命令実行方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、プロセッサに関し、特にそのアーキテクチャに関するものである。本発明は特に、各命令が互いに連続するアドレスに記憶された複数のバイトから成り、各命令がバイト毎に読み出され、一つの命令を構成する複数のバイトを記憶するレジスタで互いに組合わせられた後解読器に供給されて命令が実行される形式のプロセッサに関する。本発明はまた当該プロセッサを用いた命令実行方法に関する。
【０００２】
【従来の技術】
一般にこの種のプロセッサにおいては、図１３のように、各命令を構成する複数のバイトが記憶装置内の複数の相連続するアドレスに昇順にて記憶されている。例えば、命令ｉ１を構成するバイトはアドレスｊ、ｊ＋１、ｊ＋２、ｊ＋３に、命令ｉ２を構成するバイトはアドレスｊ＋４、ｊ＋５、ｊ＋６、ｊ＋７に昇順に記憶され、各命令の読み出しに当たっては、アドレスポインタで、その命令の先頭のバイトのアドレスを指定し、以下、それに続くバイトのアドレスを順にアドレスカウンタで指定することにより、複数のバイトを順に読み出し、読み出されバイトを命令レジスタ（一つの命令を構成する複数のバイトを記憶する容量を持つ）の対応するバイト位置に順に記憶し、すべてのバイトが揃ったら解読器に供給して命令を実行する。
【０００３】
一つの命令の実行が終わると、次の命令の先頭のアドレスのバイトを、アドレスポインタで指定して、以下上記と同様の処理を繰返す。
【０００４】
【発明が解決しようとする課題】
上記の構成では、１つの命令を実行する度にアドレスポインタでその命令の先頭のバイトのアドレスを指定しなければならず、プログラムの実行のために必要な情報量が多いと言う問題があった。
【０００５】
また、複数の命令を並列処理する場合にも、並列に実行すべき命令の数だけアドレスポインタを与えなければならず、プログラムの実行のために必要な情報量が多いと言う問題があった。
【０００６】
本発明は、上記の問題を解決するためになされたものであって、プログラムの実行のために必要な情報の量を減らすことができるプロセッサを提供することにある。
【０００７】
【課題を解決するための手段】
本発明は、
初期カウント値を設定された後カウントアップ又はカウントダウンを行なうアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記アドレスカウンタ及び上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
各命令を構成する命令構成バイトが相連続するアドレスから成るアドレス群に、アドレス値に対して昇順又は降順に記憶され、
第１の命令の先頭の命令構成バイトと第２の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第１の命令の命令構成バイトがアドレス値に対し降順に配置され、上記第２の命令の命令構成バイトがアドレス値に対して昇順に配置され、
上記第１の命令の先頭の命令構成バイト又は上記第２の命令の先頭のアドレスのアドレス値を指示するアドレスポインタを与え、
上記アドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行し、
上記アドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行する
ことを特徴とするプロセッサを提供するものである。
【０００８】
本発明はまた、
初期カウント値を設定された後カウントダウンを行なう第１のアドレスカウンタと、
初期カウント値を設定された後カウントアップを行なう第２のアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記第１及び第２のアドレスカウンタ、並びに上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
各命令を構成する命令構成バイトが相連続するアドレスから成るアドレス群に、アドレス値に対して昇順又は降順に記憶され、
第１の命令の先頭の命令構成バイトと第２の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第１の命令の命令構成バイトがアドレスに対し降順に配置され、上記第２の命令の命令構成バイトがアドレスに対して昇順に配置され、
上記第１の命令の先頭の命令構成バイト又は上記第２の命令の先頭の命令構成バイトのアドレスのアドレス値を指示するアドレスポインタを与え、
上記第１のアドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行し、
上記第２のアドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行する
ことを特徴とするプロセッサを提供するものである。
【０００９】
上記第１の命令のすべての命令構成バイトを格納する第１の命令レジスタと、
上記第２の命令のすべての命令構成バイトを格納する第２の命令レジスタと、
上記第１の命令レジスタに記憶された命令を解読して実行する第１の解読器と、
上記第２の命令レジスタに記憶された命令を解読して実行する第２の解読器と
をさらに備えることとしても良い。
【００１０】
上記第１の命令のすべての命令構成バイトを格納する第１の命令レジスタと、
上記第２の命令のすべての命令構成バイトを格納する第２の命令レジスタと、
上記第１の命令レジスタに格納された命令、又は上記第２の命令レジスタに格納された命令のいずれかを選択する選択器と、
上記選択器で選択された命令を解読して実行する解読器と
をさらに備えることとしても良い。
【００１１】
上記第１の命令及び第２の命令の読み出し及び実行を並列に行うこととしても良い。
【００１２】
上記第１の命令及び第２の命令の少なくとも一方が、上記第１の命令及び第２の命令の並列処理が可能かどうかを示す並列処理可否情報を含み、
上記並列処理可否情報が並列処理が可能であることを示すときに、上記制御器が上記並列処理を行なわせることとしても良い。
【００１３】
本発明はさらに、
初期カウント値を設定された後カウントダウンを行なう第１のアドレスカウンタと、
初期カウント値を設定された後カウントアップを行なう第２のアドレスカウンタと、
初期カウント値を設定された後カウントダウンを行なう第３のアドレスカウンタと、
初期カウント値を設定された後カウントアップを行なう第４のアドレスカウンタと、
各々複数の命令構成バイトで構成される、複数の命令を記憶する記憶装置と、
上記第１及び第２のアドレスカウンタ、並びに上記記憶装置を制御する制御器とを備え、
上記記憶装置内において、
上記命令構成バイトの各々が一つのアドレスに記憶され、
第１の命令を構成する命令構成バイトが相連続するアドレスから成る第１のアドレス群に、アドレス値に対して昇順に記憶され、
第２の命令を構成する命令構成バイトが相連続するアドレスから成る第２のアドレス群に、アドレス値に対して降順に記憶され、
第３の命令を構成する命令構成バイトが相連続するアドレスから成る第３のアドレス群に、アドレス値に対して昇順に記憶され、
第４の命令を構成する命令構成バイトが相連続するアドレスから成る第４のアドレス群に、アドレス値に対して降順に記憶され、
第２の命令の先頭の命令構成バイトと第３の命令の先頭の命令構成バイトとが互いに隣接するアドレスに配置され、
上記第２の命令の命令構成バイトがアドレス値に対し降順に配置され、上記第３の命令の命令構成バイトがアドレス値に対して昇順に配置され、
上記第１の命令の先頭の命令構成バイトの直前にポイント命令が配置され、
上記ポイント命令が、上記第２の命令の先頭の命令構成バイトのアドレスのアドレス値又は上記第３の命令の先頭の命令構成バイトのアドレスのアドレス値を示す第１の内部アドレスポインタ、並びに上記第４の命令の先頭の命令構成バイトのアドレスのアドレス値を示す第２の内部アドレスポインタを含み、
上記ポイント命令を指示するアドレスポインタを与え、
上記ポイント命令を実行して、上記第１及び第２の内部アドレスポインタを発生し、
上記第１のアドレスカウンタに、上記アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第１の命令の命令構成バイトを順に読み出して実行し、
上記第２のアドレスカウンタに、上記第１の内部アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第２の命令の命令構成バイトを順に読み出して実行し、
上記第３のアドレスカウンタに、上記第１の内部アドレスポインタに基づく初期カウント値を設定し、カウントアップを行なわせることにより、上記第３の命令の命令構成バイトを順に読み出して実行し、
上記第４のアドレスカウンタに、上記第２の内部アドレスポインタに基づく初期カウント値を設定し、カウントダウンを行なわせることにより、上記第４の命令の命令構成バイトを順に読み出して実行する、
ことを特徴とするプロセッサを提供するものである。
【００１４】
本発明はさらに、
上記プロセッサを用いる命令実行方法であって、
分岐命令の実行により、
上記第１の命令の先頭の命令構成バイト又は上記第２の命令の先頭の命令構成バイトのアドレスのアドレス値を指示するアドレスポインタと、
アドレスカウンタにカウントアップを行なわせるべきかカウントダウンを行なわせるべきかを示す方向情報とを発生させ、
上記方向情報に基づいて上記第１及び第２の命令のいずれかを実行させることを特徴とする方法を提供するものである。
【００１５】
本発明はさらに、
上記プロセッサを用いる命令実行方法であって、
分岐命令の実行により、
上記ポイント命令のアドレスのアドレス値を示すアドレスポインタと、
上記ポイント命令からの隔たりを示す隔たり情報と、
方向を示す方向情報と発生させ、
これらに基づいて上記第１乃至第４の命令のうちの実行すべき命令を指定することを特徴とする方法を提供するものである。
【００１６】
上記隔たり情報が、上記ポイント命令のアドレスから、上記第１の命令の先頭の命令構成バイトのアドレスまでの隔たりに対応するものであるときは、上記第１乃至第４の命令をすべて実行し、
上記隔たり情報が、上記ポイント命令のアドレスから、上記第２の命令の先頭の命令構成バイトのアドレス又は上記第３の命令の先頭の命令構成バイトのアドレスに対応し、上記方向情報が降順を示すものであるときは、上記第２乃至第４の命令を実行し、
上記隔たり情報が、上記ポイント命令のアドレスから、上記第２の命令の先頭の命令構成バイトのアドレス又は上記第３の命令の先頭の命令構成バイトのアドレスに対応し、上記方向情報が昇順を示すものであるときは、上記第３及び第４の命令を実行し、
上記隔たり情報が、上記ポイント命令のアドレスから、上記第４の命令の先頭の命令構成バイトのアドレスに対応するときは、第４の命令のみを実行する
こととしても良い。
【００１７】
【発明の実施の形態】
実施の形態１．
図１は、本発明の実施の形態１のプロセッサの概略を示すブロック図である。図示のようにこのプロセッサは、制御器１と、アドレスポインタレジスタ（ＡＰレジスタ）２と、加算器３と、選択器４と、アドレスカウンタ５と、記憶装置７と、命令レジスタ８と、解読器９とを有する。
【００１８】
制御器１は以下の説明から分かるように、種々の制御信号を発生して、プロセッサの各部を制御する。ＡＰレジスタ２は、アドレスポインタＰａを受け、制御器１からラッチ信号Ｓｐを受けると、そのとき供給されているアドレスポインタＰａの値をラッチする。ＡＰレジスタ２にラッチされている値、従ってＡＰレジスタ２の出力信号は符号Ｐｂで表わされる。アドレスポインタＰａは、例えば直前に実行された他の命令の一部として与えられるものである。
【００１９】
加算器３は、ＡＰレジスタ２に保持されているアドレスポインタの値Ｐｂに「１」を加算して、加算結果を出力する。加算を行なうタイミングは制御器１からの加算タイミング信号Ｓａにより制御される。選択器４は、制御器１からの昇降選択信号Ｓｕｄに基づき、ＡＰレジスタ２の出力Ｐｂ、又は加算器３の出力Ｐｃのいずれかを選択して出力する。即ち、昇降選択信号Ｓｕｄが「０」のときは、ＡＰレジスタ２の出力Ｐｂを選択し、昇降選択信号Ｓｕｄが「１」のときは、加算器３の出力Ｐｃを選択する。選択器４の出力は符号Ｐｄを表わされている。
【００２０】
アドレスカウンタ５は、制御器１からのカウント値セット信号Ｓｓを受けると、そのとき選択器４から供給されている数値（Ｐｄの値）が初期カウント値Ｐｅとしてセットされ、その後制御器１から出力されるカウント信号Ｓｃが供給される毎にカウント値Ｐｅが１だけ増加（インクリメント）又は減少（デクリメント）される。増加されるか減少されるかは、制御器１からの昇降選択信号Ｓｕｄに応じて決まる。即ち、昇降選択信号Ｓｕｄが「１」のときは、増加され、昇降選択信号Ｓｕｄが「０」のときは減少される。
【００２１】
記憶装置７は、図２に示すように複数の命令を記憶している。図示のように、各命令は、複数の、例えば４バイトから成り、各命令を構成するバイトの各々は一つの記憶場所（アドレス）に記憶され、各命令を構成する複数のバイトは、相連続するアドレスから成るアドレス群に、アドレス値に対して昇順又は降順に記憶されている。以下の説明で、これらのバイトを命令構成バイトと呼ぶこともある。
【００２２】
例えば、第１の命令ｉ１は、アドレスｊ乃至ｊ＋３に先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで昇順に記憶されている。即ちＭＳＢはアドレスｊに、ＬＳＢはアドレスｊ＋３に記憶されている。第２の命令ｉ２は、アドレスｊ＋４乃至ｊ＋７に先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで降順に記憶されている。即ちＭＳＢはアドレスｊ＋７に、ＬＳＢはアドレスｊ＋４に記憶されている。
【００２３】
第３の命令ｉ３は、アドレスｊ＋８乃至ｊ＋１１に先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで昇順に記憶されている。即ちＭＳＢはアドレスｊ＋８に、ＬＳＢはアドレスｊ＋１１に記憶されている。第４の命令ｉ４は、アドレスｊ＋１２乃至ｊ＋１５に先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで降順に記憶されている。即ちＭＳＢはアドレスｊ＋１５に、ＬＳＢはアドレスｊ＋１２に記憶されている。
【００２４】
このように、構成バイトが昇順に記憶された命令と構成バイトが降順に記憶された命令とが交互に配置されており、互いに隣接するアドレス群に記憶された１対の命令は先頭の命令構成バイト（ＭＳＢ）又は最後の命令構成バイト（ＬＳＢ）が互いに隣接するアドレスに配置されている。例えば、命令ｉ２と命令ｉ３とはＭＳＢが互いに隣接しており、命令ｉ１とｉ２とはＬＳＢが互いに隣接しており、命令ｉ３と命令ｉ４とはＬＳＢが互いに隣接している。
【００２５】
命令レジスタ８は複数バイト、例えば４バイト分の容量を持ち、記憶装置７から順次読み出される複数の命令バイトをＭＳＢ側から順に格納する。解読器９は、制御器１から出力される解読タイミング信号Ｓｄを受けると、そのとき命令レジスタ８に格納されている命令を解読する。これにより、命令が実行される。
【００２６】
以下、一例として、一連の命令中の命令ｉ２と命令ｉ３が実行される場合を例に取って説明する。図３は、そのような動作を行なう際に発生される各部の信号を示す。
【００２７】
最初に、アドレスポインタＰａ（上記のように、例えば直前に実行された他の命令の一部として与えられる）によりアドレスｊ＋７が供給されたとする。このアドレスポインタＰａ（＝ｊ＋７）は、制御器１からのラッチ信号Ｓｐにより、ＡＰレジスタ２にセットされ、その結果ＡＰレジスタ２の出力Ｐｂの値がｊ＋７になる。
【００２８】
このとき、昇降選択信号Ｓｕｄは、例えば上記他の命令を実行した結果、制御器１により「０」とされている。そのため、選択器４は、ＡＰレジスタ２の出力Ｐｂを選択してアドレスカウンタ５に供給している。この状態で、制御器１からカウント値セット信号Ｓｓが出力される。このため、ＡＰレジスタ３の出力Ｐｂ＝ｊ＋７がアドレスカウンタ５に初期カウント値Ｐｅとしてセットされる。このためアドレスカウンタ５の出力（カウント値）Ｐｅはｊ＋７となる。アドレスカウンタ５の出力は記憶装置７に読み出しアドレス値として供給される。
【００２９】
アドレスカウンタ５にアドレス値ｊ＋７がセットされた後に、制御器１から読み出しタイミング信号Ｓｒが発生されると、アドレスカウンタ５のカウント値Ｐｅ＝ｊ＋７で指定される記憶装置７中のアドレスに記憶された命令構成バイトが読み出され、命令レジスタ８の第１バイト（ＭＳＢ）格納位置８ａに格納される。以上で、一つの命令を構成する１番目の命令構成バイトを読み出すサイクル、即ち１番目の読み出しサイクルが完了する。
【００３０】
２番目の読み出しサイクルにおいては、制御器１からカウント信号Ｓｃが発生され、これによりアドレスカウンタ５のカウント値Ｐｅは１だけ減少されてｊ＋６となり、このカウント値Ｐｅが記憶装置７に供給され、読み出しタイミング信号Ｓｒが供給されると、アドレスｊ＋６のバイトが読み出され、命令レジスタ８の第２バイト格納位置８ｂに格納される。
【００３１】
３番目の読み出しサイクルにおいては、制御器１からカウント信号Ｓｃが発生されると、アドレスカウンタ５のカウント値Ｐｅはさらに１だけ減少されてｊ＋５となり、このカウント値Ｐｅが記憶装置７に供給され、読み出しタイミング信号Ｓｒが供給されると、アドレスｊ＋５のバイトが読み出され、命令レジスタ８の第３バイト格納位置８ｃに格納される。
【００３２】
４番目の読み出しサイクルにおいては、制御器１からカウント信号Ｓｃが発生されると、アドレスカウンタ５のカウント値Ｐｅはさらに１だけ減少されてｊ＋４となり、このカウント値が記憶装置７に供給され、読み出しタイミング信号Ｓｒが供給されると、アドレスｊ＋４のバイトが読み出され、命令レジスタ８の第４バイト格納位置８ｄに格納される。
【００３３】
このように、アドレスカウンタ５のカウント値Ｐｅは１読み出しサイクルに１ずつ減少され、各命令構成バイトがＭＳＢからＬＳＢまで順に読み出され、命令レジスタ８に格納される。
【００３４】
１つの命令（ｉ２）を構成するすべてのバイト（ｊ＋７乃至ｊ＋４）が命令レジスタ８に格納されたら、制御器１から解読タイミング信号Ｓｄが出力され、これに応じて解読器１０５で命令が解読されて、命令が実行される。
【００３５】
これらの命令が実行される間に、制御器１から加算器１に加算タイミング信号Ｓａが与えられ、加算器３は、ＡＰレジスタ２にセットされた値（ｊ＋７）に「１」を加算する。その結果、加算器３の出力Ｐｃはｊ＋８となる。
【００３６】
上記の命令（命令レジスタ８に保持された命令）の実行の結果、制御器１の動作により、昇降選択信号Ｓｕｄが「１」に切り替えられ、加算器３の出力Ｐｃ（＝ｊ＋８）が選択器４で選択されて、アドレスカウンタ５に供給される。そして、カウント値セット信号Ｓｓが再び「１」となると、そのときの選択器４の出力（即ち、加算器３の出力）ｊ＋８がアドレスカウンタ５にカウント値Ｐｅとしてセットされる。アドレスカウンタ５のカウント値Ｐｅ＝ｊ＋８は記憶装置７に供給される。
【００３７】
アドレスカウンタ５にアドレス値Ｐｅ＝ｊ＋８がセットされた後に、制御器１から読み出しタイミング信号Ｓｒが供給されると、アドレスカウンタ５のカウント値ｊ＋８で指定されるアドレスｊ＋８に記憶された命令構成バイトが読み出され、命令レジスタ８の第１バイト（ＭＳＢ）格納位置８ａに格納される。
【００３８】
次の読み出しサイクルには、制御器１からカウント信号Ｓｃが供給されると、アドレスカウンタ５のカウント値Ｐｅは１だけ増加されてｊ＋９となり、このカウント値Ｐｅが記憶装置７に供給され、読み出しタイミング信号Ｓｒが発生されると、アドレスｊ＋９のバイトが読み出され、命令レジスタ８の第２バイト格納位置８ｂに格納される。
【００３９】
次の読み出しサイクルには、制御器１からカウント信号Ｓｃが供給されると、アドレスカウンタ５のカウント値Ｐｅはさらに１だけ増加されてｊ＋１０となり、このカウント値Ｐｅが記憶装置７に供給され、読み出しタイミング信号Ｓｒが与えられると、アドレスｊ＋１０のバイトが読み出され、命令レジスタ８の第３バイト格納位置８ｃに格納される。
【００４０】
次の読み出しサイクルには、制御器１からカウント信号Ｓｃが供給されると、アドレスカウンタ５のカウント値Ｐｅはさらに１だけ増加されてｊ＋１１となり、このカウント値Ｐｅが記憶装置７に供給され、読み出しタイミング信号Ｓｒが与えられると、アドレスｊ＋１１のバイトが読み出され、命令レジスタ８の第４バイト（ＬＳＢ）格納位置８ｄに格納される。
【００４１】
このように、アドレスカウンタ５のカウント値Ｐｅは１読み出しサイクルに１ずつ増加され、命令（ｉ３）を構成するバイト（ｊ＋８乃至ｊ＋１１）がＭＳＢからＬＳＢまで順に読み出され、命令レジスタ８に格納される。
【００４２】
１つの命令（ｉ３）を構成するすべてのバイト（ｊ＋８乃至ｊ＋１１）が命令レジスタ８に格納されたら、制御器１から解読タイミング信号Ｓｄが出力され、これに応じて解読器１０５で命令が解読されて、命令が実行される。
【００４３】
このように、１つのアドレスポインタ（ｊ＋７）により、２つの命令（ｉ２）及び（ｉ３）が実行される。従来２つの命令の実行には２つのアドレスポインタが必要であったが、上記の例のように１つのアドレスポインタで２つの命令が実行できるようにすることにより、一連の命令全体乃至プログラム中の、アドレスポインタの数、従ってデータの量を減らすことができる。
【００４４】
以上、命令（ｉ２）と命令（ｉ３）の実行について説明したが、これと同様にして、命令（ｉ４）と、それに隣接し、より大きいアドレス値のアドレスに記憶された命令（ｉ５）とが、同じアドレスポインタを利用して実行される。また、命令ｉ１と、それに隣接し、より小さいアドレス値のアドレスに記憶された命令ｉ０とが、同じアドレスポインタを利用して実行される。
【００４５】
上記の実施の形態では、ＡＰレジスタ２にセットされたアドレスポインタを選択器４を介してアドレスカウンタ５に供給するとともに、加算器３及び選択器４を介してアドレスカウンタ５に供給しているが、このようにする代りに以下のように構成することもできる。即ち、加算器３の代りに「１」を減算する減算器を設け、ＡＰレジスタ２にセットされたアドレスポインタを選択器４を介してアドレスカウンタ５に供給するとともに、上記減算器及び選択器４を介してアドレスカウンタ５に供給することとしても良い。この場合、アドレスポインタＰａとしては、互いに隣接して記憶されている命令（例えば命令（ｉ２）及び命令（ｉ３））のうち、より大きなアドレス値のアドレスに記憶されている命令（例えば命令（ｉ３））のＭＳＢを記憶したアドレスの値を示すものを供給する。
【００４６】
実施の形態２．
図４は、本発明の実施の形態２のプロセッサの概略を示すブロック図である。図示のようにこのプロセッサは、制御器１と、ＡＰレジスタ２と、加算器３と、アドレスカウンタ５Ａ及び５Ｂと、記憶装置７と、命令レジスタ８Ａ及び８Ｂと、解読器９Ａ及び９Ｂとを有する。図１と同一の番号は同一又は対応する部材を示す。
【００４７】
アドレスカウンタ５Ａ及び５Ｂは、それぞれ制御器１からのカウント値セット信号Ｓｓを受けると、その時の入力がカウント値Ｐｅａ及びＰｅｂとしてセットされる。アドレスカウンタ５Ａは、その後カウント信号Ｓｃが供給される毎にカウント値Ｐｅａが１だけ減少される。アドレスカウンタ５Ｂは、その後カウント信号Ｓｃが供給される毎にカウント値Ｐｃｂが１だけ増加される。このように、アドレスカウンタ５Ａはダウンカウンタとして動作し、アドレスカウンタ５Ｂはアップカウンタとして動作する。
【００４８】
記憶装置７は、実施の形態１と同様、図２に示すように複数の命令を記憶している。また、この実施の形態２の記憶装置７は、２つのアドレスから２つの命令構成バイトを同時に（並行して）読み出すことができるものである。
【００４９】
命令レジスタ８Ａ及び８Ｂの各々は、実施の形態１の命令レジスタ８と同様であり、記憶装置７から順次読み出される複数の命令バイトをＭＳＢ側から順に格納する。解読器９Ａ及び９Ｂはそれぞれ、制御器１から出力される解読タイミング信号Ｓｄａ及びＳｄｂを受けると、そのとき命令レジスタ８Ａ及び８Ｂに格納されている命令を解読して、実行する。その他の点では、上記の実施の形態１と同様であり、説明を省略する。
【００５０】
以下、一例として、上記と同様、一連の命令中の命令ｉ２と命令ｉ３が実行される場合を例に取って説明する。図５は、上記の動作を行なう場合に各部に現れる信号を示す。
【００５１】
最初に、アドレスポインタＰａ（直前に実行された他の命令の一部として与えられる）によりアドレスｊ＋７がＡＰレジスタ２に供給されるとする。制御器１からのラッチ信号Ａｐが供給されると、アドレスポインタＰａがＡＰレジスタ２にラッチされ、ＡＰレジスタ２の出力Ｐｂがｊ＋７となる。ＡＰレジスタ２にセットされた値Ｐｂは加算器３にも供給される。制御器１から加算タイミング信号Ｓａが発生されると、加算器３で１が加算される。その結果加算器３の出力Ｐｃはｊ＋８となり、この値がアドレスカウンタ５Ｂに供給される。
【００５２】
ＡＰレジスタ２からアドレスカウンタ５Ａに供給されている値Ｐｂ＝ｊ＋７と、加算器３からアドレスカウンタ５Ｂに供給されている値Ｐｃ＝ｊ＋８とは、次にカウント値セット信号Ｓｓが制御器１から供給されると、それぞれアドレスカウンタ５Ａ及び５Ｂに初期カウント値Ｐｅａ及びＰｅｂとしてセットされる。これらのカウント値はアドレス値として記憶装置１に供給される。
【００５３】
この状態で、制御器１から読み出しタイミング信号Ｓｒが発生されると、アドレスカウンタ５Ａのカウント値ｊ＋７で指定されるアドレスに記憶された命令構成バイトが読み出され、命令レジスタ８Ａの第１バイト（ＭＳＢ）格納位置８ａに格納され、これと並行して（同じ読み出しサイクル中に）、アドレスカウンタ５Ｂのカウント値ｊ＋８で指定されるアドレスに記憶された命令構成バイトが読み出され、命令レジスタ８Ｂの第１バイト（ＭＳＢ）格納位置８Ｂａに格納される。
【００５４】
次の読み出しサイクルには、制御器１からカウント信号Ｓｃが発生されると、アドレスカウンタ５Ａのカウント値Ｐｅａは１だけ減少されてｊ＋６となり、このカウント値Ｐｅａが記憶装置７に供給され、これと並行して、アドレスカウンタ５Ｂのカウント値Ｐｅｂは１だけ増加されてｊ＋９となり、このカウント値Ｐｅｂが記憶装置７に供給される。この状態で、制御器１から読み出しタイミング信号Ｓｒが発生されると、記憶装置７のアドレスｊ＋６のバイトが読み出され、命令レジスタ８Ａの第２バイト格納位置８Ａｂに格納されるとともに、アドレスｊ＋９のバイトが読み出され、命令レジスタ８Ｂの第２バイト格納位置８Ｂｂに格納される。
【００５５】
次の読み出しサイクルには、制御器１からカウント信号Ｓｃが発生されると、アドレスカウンタ５Ａのカウント値Ｐｅａはさらに１だけ減少されてｊ＋５となり、このカウント値Ｐｅａが記憶装置７に供給され、これと並行して、アドレスカウンタ５Ｂのカウント値Ｐｅｂはさらに１だけ増加されてｊ＋１０となり、このカウント値Ｐｅｂが記憶装置７に供給される。この状態で、制御器１から読み出しタイミング信号Ｓｒが発生されると、記憶装置７のアドレスｊ＋５のバイトが読み出され、命令レジスタ８Ａの第３バイト格納位置８Ａｃに格納されるとともに、アドレスｊ＋１０のバイトが読み出され、命令レジスタ８Ｂの第３バイト格納位置８Ｂｃに格納される。
【００５６】
次の読み出しサイクルには、制御器１からカウント信号Ｓｃが発生されると、アドレスカウンタ５Ａのカウント値Ｐｅａはさらに１だけ減少されてｊ＋４となり、このカウント値が記憶装置７に供給され、これと並行して、アドレスカウンタ５Ｂのカウント値Ｐｅｂはさらに１だけ増加されてｊ＋１１となり、このカウント値Ｐｅｂが記憶装置７に供給される。この状態で、制御器１から読み出しタイミング信号Ｓｒが発生されると、記憶装置７のアドレスｊ＋４のバイトが読み出され、命令レジスタ８Ａの第４バイト（ＬＳＢ）格納位置８Ａｄに格納されるとともに、アドレスｊ＋１１のバイトが読み出され、命令レジスタ８Ｂの第４バイト格納位置８Ｂｃに格納される。
【００５７】
このように、アドレスカウンタ５Ａのカウント値は１読み出しサイクルに１ずつ減少され、命令（ｉ２）を構成するバイト（ｊ＋７乃至ｊ＋４）がＭＳＢからＬＳＢまで順に読み出され、命令レジスタ８Ａに格納され、命令（ｉ２）を構成するすべてのバイトが命令レジスタ８Ａに格納される。またこれと並行して、アドレスカウンタ５Ｂのカウント値は１読み出しサイクルに１ずつ増加され、命令（ｉ３）を構成するバイト（ｊ＋８乃至ｊ＋１１）がＭＳＢからＬＳＢまで順に読み出され、命令レジスタ８Ｂに格納される。命令レジスタ８Ａ及び８Ｂの各々に１つの命令（ｉ２、ｉ３）を構成するすべてのバイトが格納されたら、制御器１から解読タイミング信号Ｓｄが出力され、これに応じて解読器９Ａ及び９Ｂで命令レジスタ８Ａ及び８Ｂに格納されている命令が解読されて、命令が実行される。
【００５８】
このように、２つの命令が並行して実行される。また、２つの命令の実行のための必要なアドレスポインタでは一つである。従来２つの命令の実行には２つのアドレスポインタが必要であったが、上記の例のように１つのアドレスポインタで２つの命令が実行できるようにすることにより、一連の命令全体における、アドレスポインタの数、従ってデータの量を減らすことができる。
【００５９】
なお、上記と同様、命令ｉ４、それに隣接し、より大きいアドレス値のアドレスに記憶された命令ｉ５と並行して実行される。また、命令ｉ１は、それに隣接し、より小さいアドレス値のアドレスに記憶された命令ｉ０と並行して実行される。
【００６０】
実施の形態３．
上記の実施の形態２では、互いに隣接するアドレスに配置され、共通のアドレスポインタＰａで読み出される２つの命令が互いに並列処理可能であること、即ち相互依存関係がないものであることを条件としている。並列処理可能な命令のみならず並列処理が可能でない１対の命令も、上記のように互いに隣接して、共通のアドレスポインタで読み出されるように配置しておき、並列処理可能であるかどうかを示す情報と、（並列処理が可能でない場合には）いずれの命令を先に実行すべきかを示す情報とを各命令中（又は１対の命令の一方）の所定のビットに含ませて置き、命令レジスタ８Ａ及び８Ｂ中にこの情報が読み込まれた後、そのうちの上記の情報をまず読み出し、並列処理が可能でないときは、先に実行すべき命令のみをまず実行し、その後、他方の命令を実行することとしても良い。
【００６１】
図６はこのような処理を可能にする構成を示している。図示のように、この実施の形態のプロセッサは図４のプロセッサと同様である。しかし、命令レジスタの所定のビットの値を制御器１に伝える信号線Ｘａ及びＸｂを備えている。また、命令レジスタ８Ａ及び８Ｂのうちの上記の信号線Ｘａ及びＸｂに接続されたビット以外が解読器９Ａ及び９Ｂに接続されている。さらに、制御器１から解読器９Ａに供給される解読タイミング信号Ｓｄａと、制御器１から解読器９Ｂに供給される解読タイミング信号Ｓｄｂとが互いに別のものである。
【００６２】
動作の概要は上記の実施の形態２と同様であるが、以下の点で異なる。即ち、制御器１は、信号線Ｘａ及びＸｂを介して伝えられる情報に基づいて、記憶装置７から命令レジスタ８Ａ及び８Ｂに同時に読み出された２つの命令が並列処理可能かどうかの判断を行ない、並列処理可能なときは、解読タイミング信号Ｓｄａ及びＳｄｂを同時に出力する。並列可能でないときは、さらに先に実行すべき命令がどちらであるかを判断し、判断結果に応じて、先に実行すべき命令を記憶した命令レジスタ（８Ａ又は８Ｂ）に接続された解読器（９Ａ又は９Ｂ）にまず解読タイミング信号Ｓｄａ又はＳｄｂを与え、該解読器９Ａ又は９Ｂで命令の実行が終わった後、他方の解読器９Ｂ又は９Ａに解読タイミング信号Ｓｄｂ又はＳｄａを与え、その解読器９Ｂ又は９Ａに命令の解読を行なわせることとする。これにより、並列処理が可能でない命令を順次実行することができる。
【００６３】
実施の形態４．
図７は、実施の形態４のプロセッサを示す。この実施の形態４のプロセッサは、実施の形態２のプロセッサと同様であるが、以下の点で異なる。即ち、２つの解読器９Ａ及び９Ｂの代りに単一の解読器９が設けてあり、命令レジスタ８Ａ及び８Ｂの出力を選択する選択器１０の出力が解読器９に供給される。
【００６４】
選択器１０は、制御器１からの命令選択信号Ｓｙが「０」のときは命令レジスタ８Ａの出力を選択し、制御器１からの命令選択信号Ｓｙが「１」のときは命令レジスタ８Ｂの出力を選択する。解読器９は、制御器１から解読タイミング信号Ｓｄが与えられると、そのとき選択器１０から供給されている命令を解読する。
【００６５】
この実施の形態４における、動作のうち、命令レジスタ８Ａ及び８Ｂに命令を格納するまでの部分は、実施の形態２と同じである。
【００６６】
命令レジスタ８Ａ及び８Ｂに命令が格納されると、制御器１は、解読器９に解読タイミング信号Ｓｄを与えるに先立ち、選択器１０に対し、命令レジスタ８Ａ及び８Ｂの出力の一方を選択する信号Ｓｙ（＝０又は１）を与えておく。例えば選択信号Ｓｙの値が「０」であり、命令レジスタ８Ａの出力を選択すべきことを指示するものであるとする。そうすると、命令レジスタ８Ａの出力が選択されて解読器９に供給される。この状態で、解読タイミング信号Ｓｄが出力されると、選択器１０の出力、即ち、その時の命令レジスタ８Ａの出力が解読器９で解読され、その命令が実行される。
【００６７】
その命令の実行の後、制御器１は、命令選択信号Ｓｙの値を上記とは違う値、例えば「１」に切り替える。その結果、今度は命令レジスタ８Ｂの出力が選択器１０で選択され、解読器９に供給される。この状態で、解読タイミング信号Ｓｄが出力されると、選択器１０の出力、即ち、命令レジスタ８Ｂの出力が解読器９で解読され、その命令が実行される。
【００６８】
なお、実施の形態３について説明したのと同様に、同じアドレスポインタを用いて読み出される２つの命令のうちいずれを先に実行すべきかを示す情報をそれら２つの命令の一方または双方に含ませておき、制御器１がこの情報に基づいて、実行順序を決め、各命令実行サイクルにおける命令選択信号Ｓｙの値を決め、これにより選択器１０を制御し、もって命令の実行順序を制御するようにしても良い。
【００６９】
実施の形態５．
以上の実施の形態では、同じアドレスを用いて読み出し可能な１対の命令（例えばｉ２とｉ３）がともに読み出され、実行されるが、本実施の形態５は、複数の命令を図２に示す配列で記憶した記憶装置７を用いた、分岐命令の実行に関するものである。
【００７０】
従来の分岐命令は、所定の条件が満たされたときは命令中に含まれる所定のアドレスにジャンプし、満たされないときは、実行された命令が記憶されていたアドレスの次のアドレスアドレスに進むと言う構成にするか、或いは所定の条件が満たされたかどうかで、ともに命令中に含まれる２つのアドレスのうちの一方にジャンプすると言う構成が採用されていた。
【００７１】
本実施の形態５では、分岐命令は、唯一つのジャンプ先のアドレスをアドレスポインタとして含み、これとともに、所定の条件が満たされたかどうかに応じてジャンプ先からアドレス値を次第に小さくして行きながら命令バイトを読む（降順に読む）べきか、ジャンプ先からアドレス値を次第に大きくして行きながら命令バイトを読む（昇順に読む）べきかを示す情報（１ビットで良い）を含む。
【００７２】
以下、このような命令を用いて分岐命令を実行する際の動作を説明する。以下の説明では、図１の構成をもつプロセッサが用いられるものとする。まず、ある命令実行サイクルで、分岐命令が実行されたとする。制御器１は、この分岐命令中に含まれるアドレスポインタを読み、これをＡＰレジスタ２にセットし、また当該分岐命令を実行した結果発生される、アドレスの読み出し方向を示す情報を抽出する。そして、このアドレスの読み出し方向を示す情報に基づき、昇降選択信号Ｓｕｄの値を決める。即ち、昇順に読み出すべきときは、信号Ｓｕｄを「１」にし、降順に読み出すべきときは、信号Ｓｕｄを「０」にする。
【００７３】
実施の形態１では、同じアドレスポインタを用いて実行可能な２つの命令を相前後して読み出し、実行するが、本実施の形態５では、２つの命令のうち一方を実行したのち、他方を実行するとき限らない。しかし、この場合も、分岐命令中のデータの量を減らすことができると言う利点がある。
【００７４】
実施の形態６．
図８は、本発明の実施の形態６のプロセッサを示す。このプロセッサは、４つの命令を並列処理することが可能なものであり、制御器１と、アドレスポインタレジスタ（ＡＰレジスタ）２０、２２及び２４と、加算器３１及び３３と、アドレスカウンタ５１、５２、５３及び５４と、記憶装置７と、ポイント命令レジスタ８０と、命令レジスタ８１、８２、８３及び８４と、ポイント命令解読器９０と、解読器９１、９２、９３及び９４とを備えている。
【００７５】
ＡＰレジスタ２０、２２及び２４の各々は、上記の実施の形態のＡＰレジスタ２と同様のものである。但し、それぞれが異なるアドレスポインタを受ける。即ち、ＡＰレジスタ２０はアドレスポインタＰａ０を受け、ＡＰレジスタ２２及びＡＰレジスタ２４はそれぞれアドレスポインタＰａ２及びＰａ４を受ける。アドレスポインタＰａ２及びＰａ４は、アドレスポインタＰａ０で指定されるアドレスの命令（ポイント命令）を実行したときに発生されるものであり、例えば、アドレスポインタＰａ０で指定されるアドレスの命令（ポイント命令）中に含まれている。アドレスポインタＰａ２及びＰａ４は、アドレスポインタＰａ０との区別のため「内部アドレスポインタ」とも呼ばれる。
【００７６】
加算器３１及び３３の各々は、上記の実施の形態の加算器３と同様のものであり、アドレスカウンタ５１、５２、５３及び５４の各々は、上記の実施の形態のアドレスカウンタ５、５Ａ又は５Ｂと同様のものであり、命令レジスタ８１、８２、８３、及び８４の各々は、上記の実施の形態の命令レジスタ８、８Ａ及び８Ｂと同様のものであり、解読器９１、９２、９３及び９４の各々は、上記の実施の形態の解読器９、９Ａ及び９Ｂと同様のものである。
【００７７】
ポイント命令レジスタ８０は記憶装置７から読み出される１バイトの命令（ポイント命令）を保持する。ポイント命令解読器９０は、ポイント命令レジスタ８０に保持されたポイント命令を解読する。これによりポイント命令が実行される。ポイント命令は、ＡＰレジスタ２２及び２４に供給すべきアドレスポインタを発生するものである。
【００７８】
記憶装置７は、読み出しタイミング信号Ｓｒ０を受けると、ＡＰレジスタ２０の出力で指定されているアドレスの命令を読み出し、読み出しタイミング信号Ｓｒを受けると、アドレスカウンタ５１乃至５４の出力で指定されている４つのアドレスの命令構成バイトを同時に読み出すことができるものである。
【００７９】
記憶装置７は、図９及び図１０に示すように複数の命令を記憶している。図９は、命令の配置に概略を示し、図１０は図９の一部を詳細に示す。図９及び図１０に示す命令の配置は、概して図２と同様であるが、４つの命令で一つの命令群が構成され、各命令群が配置された記憶場所（アドレス）の直前のアドレスにポイント命令が配置されている。例えば、命令ｉ１、ｉ２、ｉ３及びｉ４で一つの命令群ｇ１が構成され、命令ｉ５、ｉ６、ｉ７及びｉ８で一つの命令群ｇ２が構成され、命令ｉ９、ｉ１０、ｉ１１及びｉ１２で一つの命令群ｇ３が構成され、命令ｉ１３、ｉ１４、ｉ１５及びｉ１６で一つの命令群ｇ４が構成されている。そしてこれらの命令群が配置されたアドレスの直前のアドレスにポイント命令ｋ１、ｋ２、ｋ３、ｋ４が配置されている。
【００８０】
図１０は、図９のうちの、命令群ｇ１とその直前のポイント命令ｋ１と、命令群ｇ１の次の命令群ｇ２の一部と、命令群ｇ２の直前のポイント命令ｋ２とを詳細に示す。
【００８１】
図１０に示すように、各命令（ｉ１、ｉ２、．．．）は、図２の場合と同様、４バイトから成り、ポイント命令（ｋ１、ｋ２）の各々は１バイトから成る。図２の場合と同様、各命令を構成する４つのバイト（命令構成バイト）は相連続するアドレスに順に記憶されている。
【００８２】
例えば、命令ｉ１は、アドレスｊ＋１乃至ｊ＋４に先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで昇順に記憶されている。即ちＭＳＢはアドレスｊ＋１に、ＬＳＢはアドレスｊ＋４に記憶されている。第２の命令ｉ２は、アドレスｊ＋５乃至ｊ＋８に、先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで降順に記憶されている。即ちＭＳＢはアドレスｊ＋８に、ＬＳＢはアドレスｊ＋５に記憶されている。第３の命令ｉ３は、アドレスｊ＋９乃至ｊ＋１２に、先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで昇順に記憶されている。即ちＭＳＢはアドレスｊ＋９に、ＬＳＢはアドレスｊ＋１２に記憶されている。第４の命令ｉ４は、アドレスｊ＋１３乃至ｊ＋１６に、先頭のバイト（ＭＳＢ）から最後のバイト（ＬＳＢ）まで降順に記憶されている。即ちＭＳＢはアドレスｊ＋１６に、ＬＳＢはアドレスｊ＋１３に記憶されている。
【００８３】
このように、構成バイトが昇順に記憶された命令と構成バイトが降順に記憶された命令とが交互に配置されている。
【００８４】
以下、一例として、命令群ｇ１中の命令ｉ１乃至ｉ４が実行される場合を例に取って説明する。図１１は、そのような動作を行なう際に発生される各部の信号を示す。
【００８５】
これらの命令を実行するために、最初に、アドレスポインタＰａ０（上記のように、例えば直前に実行された他の命令の一部として与えられる）によりアドレスｊがＡＰレジスタ２０に供給され、制御器１からのラッチ信号ＳｐによりＡＰレジスタ２０にセットされる。
【００８６】
この状態で、制御器１から読み出しタイミング信号Ｓｒ０が記憶装置７に与えられると、ＡＰポインタＰａ０で指定されるアドレスｊの命令（１バイトのポイント命令）が読み出され、ポイント命令レジスタ８０に保持される。次に制御器１から解読タイミング信号Ｓｄ０が解読器９０に与えられる。すると、ポイント命令が実行され、ＡＰレジスタ２２及び２４に与えるべきアドレス（ｊ＋８及びｊ＋１６）を示す内部アドレスポインタＰａ２及びＰａ４が発生される。
【００８７】
次に制御器１からアドレスポインタラッチ信号Ｓｑが発生されると、ＡＰレジスタ２２及び２４は、これらの内部アドレスポインタＰａ２（＝ｊ＋８）及びＰａ４（＝ｊ＋１６）をラッチする。アドレスポインタ２２及び２４の出力はそれぞれ符号Ｐｂ２及びＰｂ４で表わされている。
【００８８】
次に制御器１から加算タイミング信号Ｓａが与えられると、加算器３１及び３３は、それぞれＡＰレジスタ２０及び２２に保持されているアドレス値に「１」を加算する。その結果、加算器３１及び３２の出力Ｐｃ１及びＰｃ３の値は、ｊ＋１及びｊ＋９となる。
【００８９】
次にカウント値セット信号Ｓｓが発生されると、アドレスカウンタ５１、５２、５３及び５４はそれぞれ加算器３１の出力Ｐｃ１、ＡＰレジスタ２２の出力Ｐｂ２、加算器３３の出力Ｐｃ３及びＡＰレジスタ２４の出力Ｐｂ４を初期カウント値としてセットされる。その結果、アドレスカウンタ５１、５２、５３及び５４のカウント値Ｐｅ１、Ｐｅ２、Ｐｅ３及びＰｅ４はそれぞれｊ＋１、ｊ＋８、ｊ＋９、及びｊ＋１６となる。
【００９０】
その状態で、読み出しタイミング信号Ｓｒが発生されると、アドレスカウンタ５１、５２、５３及び５４のカウント値で指定されるアドレスｊ＋１、ｊ＋８、ｊ＋９、及びｊ＋１６に記憶されている命令構成バイトが読み出され、それぞれ命令レジスタ８１、８２、８３及び８４のＭＳＢに保持される。
【００９１】
次にカウント信号Ｓｃが発生される。すると、アドレスカウンタ５１及び５３はそのカウント値が１だけ増加し、アドレスカウンタ５２及び５４はそのカウント値が１だけ減少し、アドレスカウンタ５１、５２、５３及び５４のカウント値がそれぞれｊ＋２、ｊ＋７、ｊ＋１０及びｊ＋１５になる。その状態で、読み出しタイミング信号Ｓｒが発生されると、アドレスカウンタ５１、５２、５３及び５４のカウント値で指定されるアドレスｊ＋２、ｊ＋７、ｊ＋１０、及びｊ＋１５に記憶されている命令構成バイトが読み出され、それぞれ命令レジスタ８１、８２、８３及び８４の２番目のバイト位置に保持される。
【００９２】
次に再びカウント信号Ｓｃが発生される。すると、アドレスカウンタ５１及び５３はそのカウント値が１だけ増加し、アドレスカウンタ５２及び５４はそのカウント値が１だけ減少し、アドレスカウンタ５１、５２、５３及び５４のカウント値がそれぞれｊ＋３、ｊ＋６、ｊ＋１１及びｊ＋１４になる。その状態で、読み出しタイミング信号Ｓｒが発生されると、アドレスカウンタ５１、５２、５３及び５４のカウント値で指定されるアドレスｊ＋３、ｊ＋６、ｊ＋１１、及びｊ＋１４に記憶されている命令構成バイトが読み出され、それぞれ命令レジスタ８１、８２、８３及び８４の３番目のバイト位置に保持される。
【００９３】
次に再びカウント信号Ｓｃが発生される。すると、アドレスカウンタ５１及び５３はそのカウント値が１だけ増加し、アドレスカウンタ５２及び５４はそのカウント値が１だけ減少し、アドレスカウンタ５１、５２、５３及び５４のカウント値がそれぞれｊ＋４、ｊ＋５、ｊ＋１２及びｊ＋１３になる。その状態で、読み出しタイミング信号Ｓｒが発生されると、アドレスカウンタ５１、５２、５３及び５４のカウント値で指定されるアドレスｊ＋４、ｊ＋５、ｊ＋１２、及びｊ＋１３に記憶されている命令構成バイトが読み出され、それぞれ命令レジスタ８１、８２、８３及び８４のＬＳＢに保持される。
【００９４】
これにより、命令レジスタ８１、８２、８３及び８４はそれぞれ４バイトの命令の全体が保持されている。次に解読タイミング信号Ｓｄ１、Ｓｄ２、Ｓｄ３及びＳｄ４が発生される。すると解読器９１、９２、９３及び９４は、それぞれ命令レジスタ８１、８２、８３及び８４に記憶されている命令を解読する。これにより、命令が実行される。
【００９５】
このようにして、４つの命令が並列に実行される。命令の実行により、次に実行すべきポイント命令を記憶したアドレスを指定するアドレスポインタが発生されると、以下、同様の動作が行なわれる。
【００９６】
なお、図１１では、解読タイミング信号Ｓｄ１、Ｓｄ２、Ｓｄ３及びＳｄ４が同時に発生するものとして示してある。同時に実行することができない場合には、上記の実施の形態に関して説明したように、解読信号が異なるタイミングで発生される。例えば、図６を参照して説明したのと同様に、４つの命令が並列処理可能かどうかの情報を、４つの命令の各々、又は一つに含ませておくこととしても良い。その場合の動作は、上記とは以下の点で異なる。即ち、ポイント命令中に４つの命令が並列処理可能でない旨の情報が含まれていると、ポイント命令を解読した際、並列処理が可能でないことが分かり、制御器１は、所定の順序で解読タイミング信号Ｓｄ１乃至Ｓｄ４を発生する。
【００９７】
また、４つの命令の各々、又は一つ中に解読の順序を示す情報を含ませておいても良い。その場合には、その情報に基づいて解読タイミング信号Ｓｄ１乃至Ｓｄ４が発生される。さらにまた、アドレスポインタＰａ０で指定されるアドレスのポイント命令の読み出しと、他の命令の一つのバイト例えばＬＳＢの読み出しとを同時に行なうようにしても良い。
【００９８】
実施の形態７．
上記の実施の形態６では、同じポイント命令で指定される２つのアドレス（ｊ＋８及びｊ＋１６）と、ポイント命令の次のアドレス（ｊ＋１）を用いて読み出し可能な４つの命令（例えばｉ１、ｉ２、ｉ３及びｉ４）がともに読み出され、実行されるが、本実施の形態７は、複数の命令を図１０に示す配列で記憶した記憶装置７を用いた、分岐命令の実行に関するものである。
【００９９】
本実施の形態では、分岐命令は、唯一つのジャンプ先のアドレス、即ちポイント命令を記憶したアドレスをアドレスポインタとして含み、また該ポイント命令の記憶アドレスから、複数の（例えば４つの）命令のうちの分岐先となる命令の記憶アドレスとの隔たりを示す情報と、そのアドレスから昇順に読み進むべきか、降順に読み進むべきかを示す情報（１ビットで良い）とが分岐命令の実行の結果発生される。そして、分岐先と読み出し方向とによって、並列処理される命令の数が異なる。例えば、図９及び図１０に示す例で、上記の隔たりが「１」の場合（読み出し方向は「順方向」）、４つの命令ｉ１、ｉ２、ｉ３及びｉ４が並列処理され、上記の隔たりが「８」で読み出し方向が「逆方向」の場合、３つの命令ｉ２、ｉ３及びｉ４が並列処理され、上記の隔たりが「８」で読み出し方向が「順方向」の場合、２つの命令ｉ３及びｉ４が並列処理され、上記の隔たりが「１６」の場合（読み出し方向は「逆方向」）、１つの命令ｉ４のみが処理されるようになっている。
【０１００】
以下、このような命令を用いて分岐命令を実行する際の動作を図１２を参照して説明する。以下の説明では、図８の構成をもつプロセッサが用いられるものとする。
【０１０１】
まず、ある命令実行サイクルで、分岐命令が実行された（１０１）とする。
制御器１は、この分岐命令中に含まれるアドレスポインタＰａを抽出するとともに、分岐命令の実行の結果発生される、アドレスポインタで示されるポイント命令の記憶アドレスから、複数の命令のうちの分岐先となる命令の記憶アドレスとの隔たりＤｂを示す情報（例えば、「１」、「８」或いは「１６」）と、その分岐先アドレスから昇順に読み進むべきか、降順に読み進むべきかを示す情報Ｉｕｄ（１ビット）を抽出する（１０２）。
【０１０２】
そして、アドレスポインタＰａをＡＰレジスタ２０に供給し、ＡＰレジスタ２０にセットする（１０３）。さらに、隔たりＤｂと読み出し方向Ｉｕｄに応じて以下のように異なる動作を行なう（１０４）。
【０１０３】
Ｄｂ＝１、Ｉｕｄ＝１のときは、命令ｉ１、ｉ２、ｉ３、及びｉ４を並列処理する（１０５）。これは実施の形態６に関して説明したのと同様である。
【０１０４】
Ｄｂ＝８、Ｉｕｄ＝０のときは、命令ｉ２、ｉ３、及びｉ４を並列処理する（１０６）。これは実施の形態６に関する説明のうち、加算器３１、アドレスカウンタ５１、命令レジスタ８１、及び解読器９１を動作させず、残りの部材、即ち、ＡＰポインタ２０、２２及び２４、加算器３３、アドレスカウンタ５２、５３及び５４、命令レジスタ８２、８３及び８４、及び解読器９２、９３及び９４を実施の形態６と同様に動作させたのと同様である。なお、加算器３１、アドレスカウンタ５１、及び命令レジスタ８１を動作させても、解読器９１のみを動作させないようにすれば同様の効果が得られる。
【０１０５】
Ｄｂ＝８、Ｉｕｄ＝１のときは、命令ｉ３、及びｉ４を並列処理する（１０７）。これは実施の形態６に関する説明のうち、加算器３１、アドレスカウンタ５１及び５２、命令レジスタ８１及び８２、及び解読器９１及び９２を動作させず、残りの部材即ち、ＡＰポインタ２０、２２及び２４、加算器３３、アドレスカウンタ５３及び５４、命令レジスタ８３及び８４、及び解読器９３及び９４を実施の形態６と同様に動作させたのと同様である。なお、加算器３１、アドレスカウンタ５１及び５２、及び命令レジスタ８１及び８２を動作させても、解読器９１及び９２を動作させないようにすれば同様の効果が得られる。
【０１０６】
Ｄｂ＝１６、Ｉｕｄ＝０のときは、命令ｉ４のみを処理する（１０５）。これは実施の形態６に関する説明のうち、ＡＰレジスタ２２、加算器３１及び３３、アドレスカウンタ５１、５２及び５３、命令レジスタ８１、８２及び８３、及び解読器９１、９２及び９３を動作させず、残りの部材即ち、ＡＰポインタ２０及び２４、アドレスカウンタ５４、命令レジスタ８４、及び解読器９４を実施の形態６と同様に動作させたのと同様である。実際上は、加算器３１及び３３、アドレスカウンタ５１、５２及び５３、及び命令レジスタ８１、８２及び８３を動作させても、解読器９１、９２及び９３を動作させないようにすれば同様の効果が得られる。
【０１０７】
実行された命令の一つが分岐命令である場合には、ステップ１０１に戻り同様の動作が繰返される。
【０１０８】
【発明の効果】
本発明によれば、アドレスポインタの数を減らすことができ、プログラムの実行のために必要な情報の量を減らすことができる。また、複数の命令を並列処理の場合にも、並列処理される命令の数に拘わらずアドレスポインタの数を一つにすることができ、プログラムの実行のために必要な情報の量を少なくすることができる。さらに、本発明のプロセッサを分岐命令の実行に用いれば、分岐先を示す情報（アドレスポインタ）と読み出し方向を示す情報とを発生させることで、分岐後の実行されるべき命令を特定することができ、プログラムの実行に必要な情報の量を少なくすることができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１のプロセッサを示すブロック図である。
【図２】  実施の形態１の記憶装置内の命令及び命令構成バイトの配置を示す図である。
【図３】  実施の形態１の動作を示すタイムチャートである。
【図４】  本発明の実施の形態２のプロセッサを示すブロック図である。
【図５】  実施の形態２の動作を示すタイムチャートである。
【図６】  本発明の実施の形態３のプロセッサを示すブロック図である。
【図７】  本発明の実施の形態４のプロセッサを示すブロック図である。
【図８】  本発明の実施の形態６のプロセッサを示すブロック図である。
【図９】  実施の形態６の記憶装置内の命令の配置を示す図である。
【図１０】  実施の形態６の記憶装置内の命令構成バイトの配置を示す図である。
【図１１】  実施の形態６の動作を示すタイムチャートである。
【図１２】  実施の形態７の動作を示すフローチャートである。
【図１３】  従来のプロセッサの記憶装置内の命令及び命令構成バイトの配置を示す図である。
【符号の説明】
１  制御器、  ２  ＡＰレジスタ、  ３  加算器、  ４  選択器、  ５，５Ａ，５Ｂ  アドレスカウンタ、  ７  記憶装置、  ８，８Ａ，８Ｂ  命令レジスタ、  ９，９Ａ，９Ｂ  解読器、  １０  選択器、  ｇ１，ｇ２，ｇ３，．．．命令群、  ｉ１，ｉ２，ｉ３，．．．命令、  ｊ，ｊ＋１，ｊ＋２，．．．アドレス、  ｋ１，ｋ２，．．．アドレス、  ＰＩ  ポイント命令。
【図１】
0003804778.tif 000002
【図２】
0003804778.tif 000003
【図３】
0003804778.tif 000004
【図４】
0003804778.tif 000005
【図５】
0003804778.tif 000006
【図６】
0003804778.tif 000007
【図７】
0003804778.tif 000008
【図８】
0003804778.tif 000009
【図９】
0003804778.tif 000010
【図１０】
0003804778.tif 000011
【図１１】
0003804778.tif 000012
【図１２】
0003804778.tif 000013
【図１３】
0003804778.tif 000014