(57)【特許請求の範囲】
【請求項１】
データの演算・加工をおこなうと共に、周辺回路に設けられた周辺装置の制御をおこなう中央処理回路を、
予め、算術的および論理的な演算処理をおこなうＡＬＵ、前記ＡＬＵの処理状態であるフラグを格納するステータスレジスタおよび命令実行時にバッファとして使用する汎用レジスタを備えた中央処理装置（ＣＰＵ）と、ＲＯＭとで構成し、
前記ＣＰＵとＲＯＭとで構成された中央処理回路を、
ＲＯＭに格納されＣＰＵで解釈される命令に対応したデコード情報を所定の順序で実行するコアシーケンサと、前記ＡＬＵと、前記ステータスレジスタと、前記汎用レジスタとからなる構成に転換してなる、情報処理装置であって、
前記コアシーケンサが、
所定の複数の状態（ステート）を格納するステージレジスタ、シーケンスレジスタおよびカウンタレジスタの３種類のレジスタで構成されるステートマシン部と、
前記ステートマシン部からの信号であって、前記ステージレジスタ、シーケンスレジスタおよびカウンタレジスタをそれぞれ識別するステージ番号、シーケンス番号およびカウント番号からなるステート番号を解釈し、当該ステート番号に対応した前記デコード情報からなる所定の制御信号を出力するデコーダ部とを有してなる、情報処理装置の回路設計方法であって、
前記命令と、前記命令に対応する機械語の命令コードと、前記デコード情報とからなる命令対応リストを準備する命令対応リスト準備ステップと、
プログラミング言語により、前記命令を用いてソースコードを記述するソースコード作成ステップと、
前記ソースコードをコンパイラにより機械語に変換して、オブジェクトコードを作成するオブジェクトコード作成ステップと、
前記オブジェクトコードを前記命令対応リストにより変換して、オブジェクトコードから前記コアシーケンサが実行するステート番号に対応した前記デコード情報からなるステートリストを作成するステートリスト作成ステップと、
前記ステートリストに従って、前記コアシーケンサの回路を生成する回路生成ステップとを有してなり、
前記命令対応リスト準備ステップにおいて、
前記ＣＰＵの互いに異なる命令を一つの命令に統合し、
前記ソースコード作成ステップにおいて、
前記統合された命令を用いてソースコードを記述することを特徴とする情報処理装置の回路設計方法。
【請求項２】
前記ソースコード作成ステップにおいて、
前記ソースコードを部分ソースコードにグループ化して記述し、前記部分ソースコードを識別するために前記シーケンス番号を割り当て、
前記部分ソースコードを階層に振り分けて前記ソースコードを階層化して記述し、前記階層を識別するために前記ステージ番号を割り当て、
前記ステートリスト作成ステップにおいて、
前記ステージ番号と前記シーケンス番号別に、前記カウント番号を前記ステート番号として前記ステートリストを作成し、
前記回路生成ステップにおいて、
前記ステートリストに従って、前記ステートマシン部とデコーダ部の回路を生成することを特徴とする請求項１に記載の情報処理装置の回路設計方法。
【請求項３】
データの演算・加工をおこなうと共に、周辺回路に設けられた周辺装置の制御をおこなう中央処理回路を、
予め、算術的および論理的な演算処理をおこなうＡＬＵ、前記ＡＬＵの処理状態であるフラグを格納するステータスレジスタおよび命令実行時にバッファとして使用する汎用レジスタを備えた中央処理装置（ＣＰＵ）と、ＲＯＭとで構成し、
前記ＣＰＵとＲＯＭとで構成された中央処理回路を、
ＲＯＭに格納されＣＰＵで解釈される命令に対応したデコード情報を所定の順序で実行するコアシーケンサと、前記ＡＬＵと、前記ステータスレジスタと、前記汎用レジスタとからなる構成に転換してなる、情報処理装置であって、
前記コアシーケンサが、
所定の複数の状態（ステート）を格納するステージレジスタ、シーケンスレジスタおよびカウンタレジスタの３種類のレジスタで構成されるステートマシン部と、
前記ステートマシン部からの信号であって、前記ステージレジスタ、シーケンスレジスタおよびカウンタレジスタをそれぞれ識別するステージ番号、シーケンス番号およびカウント番号からなるステート番号を解釈し、当該ステート番号に対応した前記デコード情報からなる所定の制御信号を出力するデコーダ部とを有してなる、情報処理装置の回路設計方法であって、
前記命令と、前記命令に対応する機械語の命令コードと、前記デコード情報とからなる命令対応リストを準備する命令対応リスト準備ステップと、
プログラミング言語により、前記命令を用いてソースコードを記述するソースコード作成ステップと、
前記ソースコードをコンパイラにより機械語に変換して、オブジェクトコードを作成するオブジェクトコード作成ステップと、
前記オブジェクトコードを前記命令対応リストにより変換して、オブジェクトコードから前記コアシーケンサが実行するステート番号に対応した前記デコード情報からなるステートリストを作成するステートリスト作成ステップと、
前記ステートリストに従って、前記コアシーケンサの回路を生成する回路生成ステップとを有してなり、
前記ソースコード作成ステップにおいて、
前記ソースコードを部分ソースコードにグループ化して記述し、前記部分ソースコードを識別するために前記シーケンス番号を割り当て、
前記部分ソースコードを階層に振り分けて前記ソースコードを階層化して記述し、前記階層を識別するために前記ステージ番号を割り当て、
前記ステートリスト作成ステップにおいて、
前記ステージ番号と前記シーケンス番号別に、前記カウント番号を前記ステート番号として前記ステートリストを作成し、
前記回路生成ステップにおいて、
前記ステートリストに従って、前記ステートマシン部とデコーダ部の回路を生成することを特徴とする情報処理装置の回路設計方法。
【請求項４】
前記ソースコード作成ステップにおいて、
同じ階層に属する小さなビット容量の部分ソースコードと大きなビット容量の部分ソースコードがある場合において、
前記回路生成ステップにおいて、前記小さなビット容量の部分ソースコードに割り当てるカウンタレジスタのビット数を、前記大きなビット容量の部分ソースコードに割り当てるカウンタレジスタのビット数に一致させて、２つの前記カウンタレジスタを共通化することを特徴とする請求項３に記載の情報処理装置の回路設計方法。
【請求項５】
前記ソースコード作成ステップにおいて、
異なる階層に属する互いに異なる部分ソースコードがある場合において、
前記互いに異なる部分ソースコードの一方の部分ソースコードをもう一方の部分ソースコード内に取り込んで新たな部分ソースコードとし、
前記新たな部分ソースコードの属する階層を前記もう一方の部分ソースコードの属する階層として、前記異なる階層を一つにすることを特徴とする請求項３または４に記載の情報処理装置の回路設計方法。
【請求項６】
前記ソースコード作成ステップにおいて、
異なる階層に同じ部分ソースコードが属する場合において、
前記同じ部分ソースコードの属する階層を一致させることを特徴とする請求項３乃至５のいずれか一項に記載の情報処理装置の回路設計方法。
【請求項７】
請求項１乃至６のいずれか一項に記載の回路設計方法によって設計される情報処理装置であって、
該情報処理装置が、一つの半導体チップに形成されてなることを特徴とする情報処理装置。
【請求項８】
前記情報処理装置が、コアバスセレクタと周辺バスセレクタとを有してなり、
前記コアバスセレクタが、前記コアシーケンサ、ステータスレジスタおよび汎用レジスタからの信号を入力して、前記周辺バスセレクタ、ＡＬＵ、ステータスレジスタおよび汎用レジスタへ制御信号を出力し、
前記周辺バスセレクタが、前記コアバスセレクタ、コアシーケンサ、ステータスレジスタおよび汎用レジスタからの信号を入力して、前記周辺回路へ制御信号を出力することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記コアシーケンサが、
前記ステートマシン部および前記デコーダ部への入力信号を制御する入力制御部と、
前記デコーダ部からの出力信号を入力して制御する出力制御部とを有してなることを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記出力制御部が、
前記デコーダ部からの信号により前記ＡＬＵへ演算制御信号を出力する演算制御ブロックと、
前記デコーダ部からの信号により前記コアバスセレクタへ出力選択信号を出力するコアバス出力選択ブロックと、
前記デコーダ部からの信号により前記周辺バスセレクタへ出力選択信号を出力する周辺バス出力選択ブロックと、
前記デコーダ部からの信号により前記周辺回路へ書込み信号を出力する周辺回路書込みブロックと、
前記デコーダ部からの信号により前記ステータスレジスタおよび汎用レジスタへ制御信号を出力するレジスタ制御ブロックとを有してなることを特徴とする請求項９に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一つの半導体チップに形成されてなる情報処理装置およびその回路設計方法に関する。
【背景技術】
【０００２】
いわゆるワンチップ・マイコン（one-chip microcomputer）と呼ばれる情報処理装置は、一つの半導体チップの中に、ＣＰＵ（中央処理装置、Central Processing Unit）だけでなく、ＲＯＭ（Read Only Memory）やＲＡＭ（Random AccessMemory）などのメモリ、入出力ポート、通信ポート、タイマ、Ａ−Ｄコンバータ、ＰＷＭ（Pulse Width Modulation）などの周辺機能までが集積されたマイクロコンピュータで、家電製品や車両用電子製品等の多くの製品分野で利用されている。例えば、特開平０９−４４４６８号公報（特許文献１）には、車両用のエンジン制御システムに用いられるマイクロコンピュータが開示されている。
【０００３】
図１５は、代表的なワンチップ・マイコン（情報処理装置）を示す図で、情報処理装置９０の回路構成を示した模式的なブロック図である。
【０００４】
図１５に示す情報処理装置９０は、一つの半導体チップ１に形成されており、中央処理回路１０、バスセレクタ２０および周辺回路３０を有している。
【０００５】
中央処理回路１０は、大別して、ＣＰＵ１１とＲＯＭ１２からなり、データの演算・加工をおこなうと共に、周辺回路３０に設けられた各周辺装置３０ａ〜３０ｃの制御をおこなう。
【０００６】
ＣＰＵ１１は、大別して、図中に破線で囲ったメイン機能部１３、ＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６で構成されている。また、メイン機能部１３は、大別して、ＰＣ（Program Counter）１３ｃ、ＩＲ（Instruction Register）１３ｂ、命令デコーダ１３ａ、制御部１３ｄおよびレジスタ１３ｅで構成されている。
【０００７】
ＣＰＵ１１内にあるメイン機能部１３は、ＣＰＵ１１のメイン機能を担う部分である。ＰＣ１３ｃは、プログラムのアドレスを指すためのカウンタである。ＩＲ１３ｂは、ＰＣ１３ｂが指しているＲＯＭ１２内の命令を格納するためのレジスタである。命令デコーダ１３ａは、ＩＲ１３ｂに格納されている命令を解釈し、ＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６や周辺回路３０の各周辺装置３０ａ〜３０ｃに対して、命令を指示する。制御部１３ｄは、割込等の発生時にＰＣ１３ｃにおいて処理中のプログラムのアドレスをレジスタ１３ｅへ退避し、割込先のプログラムのアドレスとすりかえ、割込処理を実行する。割込処理完了後、退避したレジスタ１３ｅにあるプログラムのアドレスを復帰させ、途中であった処理を再開する。
【０００８】
ＣＰＵ１１内にあるメイン機能部１３以外の部分は、ＣＰＵ１１のサブ機能を担う部分である。ＡＬＵ１４は、算術的および論理的な演算処理をおこなう。ステータスレジスタ１５は、キャリー、オバーフロー、ゼロ、符号、割込マスクフラグ等、主にＡＬＵ１４の処理状態である各フラグを格納する。汎用レジスタ１６は、命令実行時にバッファとして使用する。尚、ＣＰＵによっては、演算能力を備えたレジスタであるアキュムレータ等を搭載しているものもある。
【０００９】
ＲＯＭ１２として、近年、書き換え可能なフラッシュメモリがよく用いられている。これにより収納するプログラム（ソフトウェア）の書き換えが可能となるため、情報処理のためのソフトウェア開発が柔軟となり、情報処理によって得られる機能も多様化することができる。
【００１０】
図１５の情報処理装置９０におけるバスセレクタ２０は、コアバスセレクタ２０ａと周辺バスセレクタ２０ｂに分けて構成されており、周辺回路３０の各周辺装置３０ａ〜３０ｃとのデータ伝送路であるバスを選択する。また、図１５の情報処理装置９０では、周辺回路３０に設けられる周辺装置として、ＲＡＭ３０ａ、タイマ３０ｂ、ＰＷＭ３０ｃが例示されている。
【特許文献１】特開平０９−４４４６８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ワンチップ・マイコンである図１５の情報処理装置９０は、上記したように、家電製品や車両用電子製品等の多くの製品分野で利用されている。図１５の情報処理装置９０の利用にあたっては、一般的に、仕様の固定されている部分をハードとして周辺回路３０に実装し、制御等で仕様が変更される部分をソフトとして中央処理回路１０のＲＯＭ１２に書き込む。これによって、図１５の情報処理装置９０は、例えばシリーズ製品において制御内容が微妙に異なるような各製品に対して、ＲＯＭ１２のソフトを書き換えるだけで、同じ情報処理装置９０を用いることができる。従って、図１５の情報処理装置９０は、適用製品の仕様毎に半導体チップを設計・製造する必要がなく、例えばＣＰＵ１１とＲＯＭ１２に相当する部分を全てシーケンサで構成する情報処理装置に較べて、適用製品の仕様変更に対する柔軟性が高い情報処理装置となっている。
【００１２】
一方、上記のように汎用性が高いマイコン構成の図１５に示す情報処理装置９０では、ＣＰＵ１１とＲＯＭ１２からなる中央処理回路１０の回路規模が大きくなり、情報処理装置９０が適用される製品の処理内容によっては、オーバースペックになってしまう。例えば多種少量のカスタムＩＣ分野への適用を考えると、ＲＯＭ１２を有するマイコン構成の情報処理装置９０は、ＲＯＭ１２のソフトウェア書き換えによる柔軟性が高い反面、一般的に回路規模が大きすぎて、製品コストが増大してしまう。
【００１３】
そこで本発明は、一つの半導体チップに形成されてなる情報処理装置およびその回路設計方法であって、ＣＰＵとＲＯＭからなる従来のマイコン構成の情報処理装置に較べて、回路規模が小さく安価であり、且つ回路設計が容易で、適用製品の仕様変更等への対応が容易な情報処理装置およびその回路設計方法を提供することを目的としている。
【課題を解決するための手段】
【００１４】
請求項１に記載の発明は、データの演算・加工をおこなうと共に、周辺回路に設けられた周辺装置の制御をおこなう中央処理回路を、予め、算術的および論理的な演算処理をおこなうＡＬＵ、前記ＡＬＵの処理状態であるフラグを格納するステータスレジスタおよび命令実行時にバッファとして使用する汎用レジスタを備えた中央処理装置（ＣＰＵ）と、ＲＯＭとで構成し、前記ＣＰＵとＲＯＭとで構成された中央処理回路を、ＲＯＭに格納されＣＰＵで解釈される命令に対応したデコード情報を所定の順序で実行するコアシーケンサと、前記ＡＬＵと、前記ステータスレジスタと、前記汎用レジスタとからなる構成に転換してなる、情報処理装置であって、前記コアシーケンサが、所定の複数の状態（ステート）を格納するステージレジスタ、シーケンスレジスタおよびカウンタレジスタの３種類のレジスタで構成されるステートマシン部と、前記ステートマシン部からの信号であって、前記ステージレジスタ、シーケンスレジスタおよびカウンタレジスタをそれぞれ識別するステージ番号、シーケンス番号およびカウント番号からなるステート番号を解釈し、当該ステート番号に対応した前記デコード情報からなる所定の制御信号を出力するデコーダ部とを有してなる、情報処理装置の回路設計方法であって、前記命令と、前記命令に対応する機械語の命令コードと、前記デコード情報とからなる命令対応リストを準備する命令対応リスト準備ステップと、プログラミング言語により、前記命令を用いてソースコードを記述するソースコード作成ステップと、前記ソースコードをコンパイラにより機械語に変換して、オブジェクトコードを作成するオブジェクトコード作成ステップと、前記オブジェクトコードを前記命令対応リストにより変換して、オブジェクトコードから前記コアシーケンサが実行するステート番号に対応した前記デコード情報からなるステートリストを作成するステートリスト作成ステップと、前記ステートリストに従って、前記コアシーケンサの回路を生成する回路生成ステップとを有してなり、前記命令対応リスト準備ステップにおいて、前記ＣＰＵの互いに異なる命令を一つの命令に統合し、前記ソースコード作成ステップにおいて、前記統合された命令を用いてソースコードを記述することを特徴としている。
【００１５】
上記回路設計方法により設計される情報処理装置では、ソフトウェアがコアシーケンサにハード化されるため、中央処理回路がＣＰＵとＲＯＭからなる従来の情報処理装置に対して、処理能力が向上するため、動作周波数を下げることが可能になり、消費電力を低減することができる。
【００１６】
また、上記回路設計方法により設計される情報処理装置は、中央処理回路がＣＰＵとＲＯＭからなる従来の情報処理装置に対して、ＲＯＭとＣＰＵ内のＰＣ、ＩＲ、命令デコーダ、割り込み等のための制御部およびレジスタで構成されるメイン機能部に相当する部分を、ＲＯＭに格納されＣＰＵで解釈される命令に対応したデコード情報を所定の順序で実行するコアシーケンサで構成している。これによって、上記情報処理装置は、ＣＰＵとＲＯＭからなる従来の情報処理装置に較べて、回路規模を小さくすることができる。例えば、中央処理回路がＣＰＵとＲＯＭからなる従来の情報処理装置の場合、余裕をみたＲＯＭサイズを設定してチップを設計するが、上記情報処理装置は、仕様分の回路設計で済む。
【００１７】
また、回路規模の縮小に伴って、上記情報処理装置では処理スピードも向上する。例えば、中央処理回路がＣＰＵとＲＯＭからなる従来の情報処理装置の場合に複数の命令が必要なところが、上記情報処理装置では１命令で済む。
【００１８】
具体例として、「アドレス１０００ｈ番地の周辺レジスタにＡＡ５５ｈを書く」場合を想定すると、以下のようになる。ＣＰＵとＲＯＭからなる従来の情報処理装置では、「ＬＤＡＩ  ＃ＡＡ５５ｈ」、「ＳＴＡ  ＄１０００ｈ」の２命令となるが、上記情報処理装置では、所定のレジスタに「ＡＡ５５ｈ」を書くだけなので、所定のステートでデータラインに「ＡＡ５５ｈ」をのせ、アドレスセレクタを周辺回路の「１０００ｈ」を指すようにし、Ｗｒｉｔｅ信号を立てることで実現することが可能である。これにより、１命令分短縮したことになり、ＣＰＵとＲＯＭからなる従来の情報処理装置より処理スピードが速くなる。また、命令を削減できることから、後述するステートマシン部のレジスタのビット数を減らすことができ、これによっても回路規模を縮小することが可能である。
【００１９】
一方、上記情報処理装置では、中央処理回路がＣＰＵとＲＯＭからなる従来の情報処理装置に対して、ＣＰＵのサブ機能を担うＡＬＵ、ステータスレジスタおよび汎用レジスタを、そのまま残した情報処理装置としている。これによって、ＣＰＵとＲＯＭに相当する部分を全てシーケンサで構成する情報処理装置に較べて、適用製品の仕様変更への対応が容易な情報処理装置とすることができる。特に、詳細は後述するが、上記回路設計方法により設計される上記情報処理装置では、従来の情報処理装置におけるＣＰＵを利用して、コアシーケンサをソフト設計することが可能であり、これによって、適用製品の仕様変更への対応が非常に容易な情報処理装置とすることができる。
【００２０】
以上のようにして、上記情報処理装置は、ＣＰＵとＲＯＭからなる従来のマイコン構成の情報処理装置に較べて、回路規模が小さく安価であり、且つ適用製品の仕様変更への対応が容易な情報処理装置となっている。
【００２９】
また、上記情報処理装置の回路設計方法は、前記命令と前記命令に対応する機械語の命令コードと、前記デコード情報とからなる命令対応リストを準備する命令対応リスト準備ステップと、プログラミング言語により、前記命令を用いてソースコードを記述するソースコード作成ステップと、前記ソースコードをコンパイラにより機械語に変換して、オブジェクトコードを作成するオブジェクトコード作成ステップと、前記オブジェクトコードを前記命令対応リストにより変換して、オブジェクトコードから前記コアシーケンサが実行するステート番号に対応した前記デコード情報からなるステートリストを作成するステートリスト作成ステップと、前記ステートリストに従って、前記コアシーケンサの回路を生成する回路生成ステップとを有することを特徴としている。
【００３０】
上記情報処理装置の回路設計方法では、ＣＰＵとＲＯＭとで構成した従来のマイコン構成の中央処理回路を、上記情報処理装置の回路設計の出発点とする。これによって、上記命令対応リスト準備ステップにおいては、既知のＣＰＵの命令とそれに対応する機械語の命令コードおよびデコード情報を利用することが可能である。また、これによって、上記ソースコード作成ステップにおいては、通常のプログラミング言語により、上記ＣＰＵの命令を用いてソースコードを記述することができる。このため、上記情報処理装置のソフトウェア開発は、従来のマイコン構成の情報処理装置におけるソフトウェア開発と同様に、容易かつ柔軟である。また、上記情報処理装置のソフトウェア開発によって実現できる機能も、従来のマイコン構成の情報処理装置におけるソフトウェア開発によって実現できる機能と同様である。
【００３１】
尚、上記情報処理装置の回路設計方法において、オブジェクトコード作成ステップは、コンパイラによるソースコードのオブジェクトコードへの変換である。次のステートリスト作成ステップも、命令対応リストによるオブジェクトコードのステートリストへの変換である。また、次の回路生成ステップは、シーケンサ用の一般的なハードウェア記述言語（ＶＨＤＬ、VHSIC Hardware Description Language）により、ステートリストの変換で、コアシーケンサの回路を生成することができる。従って、これらのステップは、全て自動化することが可能である。
【００３２】
以上のようにして、上記情報処理装置の回路設計方法は、回路規模が小さく安価な情報処理装置の回路設計方法であって、回路設計が容易で、適用製品の仕様変更等への対応が容易な情報処理装置の回路設計方法となっている。
【００３３】
また、上記情報処理装置の回路設計方法においては、前記命令対応リスト準備ステップにおいて、前記ＣＰＵの互いに異なる命令を一つの命令に統合し、前記ソースコード作成ステップにおいて、前記統合された命令を用いてソースコードを記述する。
【００３４】
これにより、上記ステートリストにおけるステート数を削減し、小さな回路規模で上記情報処理装置の処理能力を向上させることができる。
【００３５】
上記情報処理装置の回路設計方法においては、請求項２に記載のように、前記ソースコード作成ステップにおいて、前記ソースコードを部分ソースコードにグループ化して記述し、前記部分ソースコードを識別するために前記シーケンス番号を割り当て、前記部分ソースコードを階層に振り分けて前記ソースコードを階層化して記述し、前記階層を識別するために前記ステージ番号を割り当て、前記ステートリスト作成ステップにおいて、前記ステージ番号と前記シーケンス番号別に、前記カウント番号を前記ステート番号として前記ステートリストを作成し、前記回路生成ステップにおいて、前記ステートリストに従って、前記ステートマシン部とデコーダ部の回路を生成することが好ましい。
また、請求項３に記載のように、データの演算・加工をおこなうと共に、周辺回路に設けられた周辺装置の制御をおこなう中央処理回路を、予め、算術的および論理的な演算処理をおこなうＡＬＵ、前記ＡＬＵの処理状態であるフラグを格納するステータスレジスタおよび命令実行時にバッファとして使用する汎用レジスタを備えた中央処理装置（ＣＰＵ）と、ＲＯＭとで構成し、前記ＣＰＵとＲＯＭとで構成された中央処理回路を、ＲＯＭに格納されＣＰＵで解釈される命令に対応したデコード情報を所定の順序で実行するコアシーケンサと、前記ＡＬＵと、前記ステータスレジスタと、前記汎用レジスタとからなる構成に転換してなる、情報処理装置であって、前記コアシーケンサが、所定の複数の状態（ステート）を格納するステージレジスタ、シーケンスレジスタおよびカウンタレジスタの３種類のレジスタで構成されるステートマシン部と、前記ステートマシン部からの信号であって、前記ステージレジスタ、シーケンスレジスタおよびカウンタレジスタをそれぞれ識別するステージ番号、シーケンス番号およびカウント番号からなるステート番号を解釈し、当該ステート番号に対応した前記デコード情報からなる所定の制御信号を出力するデコーダ部とを有してなる、情報処理装置の回路設計方法であって、前記命令と、前記命令に対応する機械語の命令コードと、前記デコード情報とからなる命令対応リストを準備する命令対応リスト準備ステップと、プログラミング言語により、前記命令を用いてソースコードを記述するソースコード作成ステップと、前記ソースコードをコンパイラにより機械語に変換して、オブジェクトコードを作成するオブジェクトコード作成ステップと、前記オブジェクトコードを前記命令対応リストにより変換して、オブジェクトコードから前記コアシーケンサが実行するステート番号に対応した前記デコード情報からなるステートリストを作成するステートリスト作成ステップと、前記ステートリストに従って、前記コアシーケンサの回路を生成する回路生成ステップとを有してなり、前記ソースコード作成ステップにおいて、前記ソースコードを部分ソースコードにグループ化して記述し、前記部分ソースコードを識別するために前記シーケンス番号を割り当て、前記部分ソースコードを階層に振り分けて前記ソースコードを階層化して記述し、前記階層を識別するために前記ステージ番号を割り当て、前記ステートリスト作成ステップにおいて、前記ステージ番号と前記シーケンス番号別に、前記カウント番号を前記ステート番号として前記ステートリストを作成し、前記回路生成ステップにおいて、前記ステートリストに従って、前記ステートマシン部とデコーダ部の回路を生成する回路設計方法としてもよい。
この場合にも、ソースコード作成ステップにおいて、ソースコードを部分ソースコードにグループ化して記述し、部分ソースコードを階層に振り分けることで、ソースコードの記述が容易となる。また、これらを上記のようにステージ番号、シーケンス番号およびカウント番号へ対応させることで、次の回路規模の縮小手段に繋げることができる。
【００３６】
このように、ソースコード作成ステップにおいて、ソースコードを部分ソースコードにグループ化して記述し、部分ソースコードを階層に振り分けることで、ソースコードの記述が容易となる。また、これらを上記のようにステージ番号、シーケンス番号およびカウント番号へ対応させることで、次の回路規模の縮小手段に繋げることができる。
【００３７】
また、この場合には、例えば請求項４に記載のように、前記ソースコード作成ステップにおいて、同じ階層に属する小さなビット容量の部分ソースコードと大きなビット容量の部分ソースコードがある場合においては、前記回路生成ステップにおいて、前記小さなビット容量の部分ソースコードに割り当てるカウンタレジスタのビット数を、前記大きなビット容量の部分ソースコードに割り当てるカウンタレジスタのビット数に一致させて、２つの前記カウンタレジスタを共通化することができる。
【００３８】
これによって、カウンタレジスタを一つにできるため、ステートマシン部におけるレジスタのビット数の合計が低減し、最終的に生成されるコアシーケンサの回路規模を縮小することができる。さらに、汎用レジスタ等のレジスタも共通化できるため、これによっても回路規模が縮小する。
【００３９】
また請求項５に記載のように、前記ソースコード作成ステップにおいて、異なる階層に属する互いに異なる部分ソースコードがある場合においては、前記互いに異なる部分ソースコードの一方の部分ソースコードをもう一方の部分ソースコード内に取り込んで新たな部分ソースコードとし、前記新たな部分ソースコードの属する階層を前記もう一方の部分ソースコードの属する階層として、前記異なる階層を一つにすることができる。
【００４０】
これによって階層数を削減できるため、この場合にもステートマシン部におけるレジスタのビット数の合計が低減し、最終的に生成されるコアシーケンサの回路規模を縮小することができる。さらに、汎用レジスタ等のレジスタも共通化できるため、これによっても回路規模が縮小する。
【００４１】
さらに請求項６に記載のように、前記ソースコード作成ステップにおいて、異なる階層に同じ部分ソースコードが属する場合においては、前記同じ部分ソースコードの属する階層を一致させることができる。
【００４２】
同じ部分ソースコードが異なる階層に属する場合においては、各階層に対応するステートマシン部毎に、同じデコーダ部を形成する必要がある。一方、上記のように同じ部分ソースコードの階層を一致させることで、該階層に対応するステートマシン部に同じ部分ソースコードに対応したデコーダ部を一つ形成するだけでよい。従って、これによっても回路規模を縮小することができる。
請求項７〜１０に記載の発明は、上記した回路設計方法によって設計される情報処理装置に関する発明である。
請求項７に記載のように、上記回路設計方法によって設計される情報処理装置は、一つの半導体チップに形成されてなる情報処理装置とすることができる。
請求項８に記載のように、前記情報処理装置は、コアバスセレクタと周辺バスセレクタとを有してなり、前記コアバスセレクタが、前記コアシーケンサ、ステータスレジスタおよび汎用レジスタからの信号を入力して、前記周辺バスセレクタ、ＡＬＵ、ステータスレジスタおよび汎用レジスタへ情報（制御信号）を出力し、前記周辺バスセレクタが、前記コアバスセレクタ、コアシーケンサ、ステータスレジスタおよび汎用レジスタからの信号を入力して、前記周辺回路へ情報（制御信号）を出力するように構成することができる。
上記情報処理装置におけるコアバスセレクタおよび周辺バスセレクタは、従来の情報処理装置におけるＣＰＵとＲＯＭからなる中央処理回路を上記情報処理装置の中央処理回路に置き換えるだけで、従来の情報処理装置におけるコアバスセレクタおよび周辺バスセレクタをそのまま使用することができる。また、上記構成によって、ＣＰＵとＲＯＭからなる従来の情報処理装置と同様に、コアバスセレクタと周辺バスセレクタを機能させることができる。従って、周辺回路に設けられた周辺装置の制御のためのデコード信号も、従来の情報処理装置と同じものを使用することができる。尚、上記中央処理回路の置き換えによって、前述した従来のマイコン構成の情報処理装置におけるＣＰＵを利用したコアシーケンサのソフト設計が可能となり、これによって、適用製品の仕様変更への対応が非常に容易な情報処理装置となる。
請求項９に記載のように、上記情報処理装置においては、前記コアシーケンサが、前記ステートマシン部およびデコーダ部への入力信号を制御する入力制御部と、前記デコーダ部からの出力信号を入力して制御する出力制御部とを有してなるように構成することができる。
これによれば、ステートマシン部とデコーダ部による一定順序の命令処理だけでなく、ジャンプ、割り込み、退避といった途中で順序の変わる命令処理を実行することができる。
また、上記情報処理装置においては、例えば請求項１０に記載のように、前記出力制御部が、前記デコーダ部からの信号により前記ＡＬＵへ演算制御信号を出力する演算制御ブロックと、前記デコーダ部からの信号により前記コアバスセレクタへ出力選択信号を出力するコアバス出力選択ブロックと、前記デコーダ部からの信号により前記周辺バスセレクタへ出力選択信号を出力する周辺バス出力選択ブロックと、前記デコーダ部からの信号により前記周辺回路へ書込み信号を出力する周辺回路書込みブロックと、前記デコーダ部からの信号により前記ステータスレジスタおよび汎用レジスタへ制御信号を出力するレジスタ制御ブロックとを有してなるように構成することができる。
このように、上記情報処理装置のコアシーケンサに対して、ＣＰＵとＲＯＭからなる従来のマイコン構成の情報処理装置において割り込み等のための制御部およびレジスタが担っている、ジャンプ、割り込み、退避といった機能を持たせることが可能である。
【発明を実施するための最良の形態】
【００４３】
以下、本発明を実施するための最良の形態を、図に基づいて説明する。
【００４４】
図１は、本発明の情報処理装置の一例を示す図で、情報処理装置１００の回路構成を示した模式的なブロック図である。図２は、図１の情報処理装置１００における中央処理回路４０とバスセレクタ２０の電気回路構成をより詳細に示すブロック図である。図３は、図１のコアシーケンサ４１におけるステートマシン部４１ａの電気回路構成をより詳細に示すブロック図である。図４は、図１のコアシーケンサ４１におけるデコーダ部４１ｂの電気回路構成をより詳細に示すブロック図である。図５は、図１のコアシーケンサ４１における入力制御部４１ｃと出力制御部４１ｄの電気回路構成をより詳細に示すブロック図である。尚、図１の情報処理装置１００において、図１５の情報処理装置９０と同じ部分については、同じ符号を付した。
【００４５】
図１に示す情報処理装置１００は、図１５に示した情報処理装置９０と同様に、一つの半導体チップ１に形成された情報処理装置であって、中央処理回路４０、バスセレクタ２０および周辺回路３０を有している。尚、図１の情報処理装置１００におけるバスセレクタ２０と周辺回路３０は、図１５の情報処理装置９０におけるそれらと同じものである。すなわち、図１の情報処理装置１００におけるバスセレクタ２０は、コアバスセレクタ２０ａと周辺バスセレクタ２０ｂに分けて構成されており、周辺回路３０の各周辺装置３０ａ〜３０ｃとのデータ伝送路であるバスを選択する。また、図１の情報処理装置１００では、周辺回路３０に設けられる周辺装置として、ＲＡＭ３０ａ、タイマ３０ｂ、ＰＷＭ３０ｃが例示されている。
【００４６】
図１の情報処理装置１００における中央処理回路４０は、図１５の情報処理装置９０における中央処理回路１０と同様に、データの演算・加工をおこなうと共に、周辺回路３０に設けられた各周辺装置３０ａ〜３０ｃの制御をおこなう。しかしながら、図１５の情報処理装置９０における中央処理回路１０が、ＣＰＵ１１とＲＯＭ１２で構成されていたのに対し、図１の情報処理装置１００における中央処理回路４０は、所定の命令を所定の順序で実行するコアシーケンサ４１と、ＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６で構成されている。尚、図１の情報処理装置１００におけるＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６は、図１５の情報処理装置９０におけるそれらと同じものである。すなわち、ＡＬＵ１４は、算術的および論理的な演算処理をおこなう。ステータスレジスタ１５は、キャリー、オバーフロー、ゼロ、符号、割込マスクフラグ等、主にＡＬＵ１４の処理状態である各フラグを格納する。汎用レジスタ１６は、命令実行時にバッファとして使用する。尚、図１の情報処理装置１００において、演算能力を備えたレジスタであるアキュムレータ等を、中央処理回路４０内に搭載するようにしてもよい。
【００４７】
図１に示す情報処理装置１００は、図１５に示す従来の情報処理装置９０と同様に、一つの半導体チップ１に形成されてなる、いわゆるワンチップ形式の情報処理装置である。図１に示す情報処理装置１００では、ソフトウェアがコアシーケンサ４１にハード化されるため、図１５の中央処理回路１０がＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０に対して、処理能力が向上するため、動作周波数を下げることが可能になり、消費電力を低減することができる。
【００４８】
図１の情報処理装置１００は、図１５に示す中央処理回路１０がＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０に対して、ＲＯＭ１２とＣＰＵ１１内のＰＣ１３ｃ、ＩＲ１３ｂ、命令デコーダ１３ａ、割り込み等のための制御部１３ｄおよびレジスタ１３ｅで構成されるメイン機能部１３に相当する部分を、所定の命令を所定の順序で実行するコアシーケンサ４１で構成している。これによって、図１の情報処理装置１００は、図１５に示すＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装９０に較べて、回路規模を小さくすることができる。例えば、図１５の中央処理回路１０がＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０の場合、余裕をみたＲＯＭ１２のサイズを設定してチップを設計するが、図１の情報処理装置１００は、仕様分の回路設計で済む。
【００４９】
また、回路規模の縮小に伴って、図１の情報処理装置１００では、処理スピードも向上する。例えば、図１５の中央処理回路１０がＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０の場合に複数の命令が必要なところが、図１の情報処理装置１００では１命令で済む。
【００５０】
具体例として、「アドレス１０００ｈ番地の周辺レジスタにＡＡ５５ｈを書く」場合を想定すると、以下のようになる。図１５のＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０では、「ＬＤＡＩ  ＃ＡＡ５５ｈ」、「ＳＴＡ  ＄１０００ｈ」の２命令となるが、図１の情報処理装置１００では、所定のレジスタに「ＡＡ５５ｈ」を書くだけなので、所定のステートでデータラインに「ＡＡ５５ｈ」をのせ、アドレスセレクタを周辺回路の「１０００ｈ」を指すようにし、Ｗｒｉｔｅ信号を立てることで実現することが可能である。これにより、１命令分短縮したことになり、ＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０より処理スピードが速くなる。また、命令を削減できることから、後述するステートマシン部４１ａのレジスタのビット数を減らすことができ、これによっても回路規模を縮小することが可能である。
【００５１】
一方、図１５の情報処理装置９０では、シーケンス処理がプログラムでＲＯＭ１２に書かれ、ＣＰＵ１１がこれを解釈し、ＲＯＭ１２に書かれたシーケンス処理を実行していく。ＲＯＭ１２のような書き換え可能なメモリにソフトウェア（プログラム）でシーケンス処理が書かれている場合、適用製品の仕様に変更があっても、シーケンス処理を容易に変更することが可能である。これに対し、全てをハードウェアのシーケンサで構成する場合には、適用製品の仕様に変更があった場合、新たに半導体チップを設計・製造する必要がある。
【００５２】
図１の情報処理装置１００では、図１５に示す中央処理回路１０がＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０に対して、ＣＰＵ１１のサブ機能を担うＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６を、そのまま残した情報処理装置としている。これによって、ＣＰＵ１１とＲＯＭ１２に相当する部分を全てシーケンサで構成する情報処理装置に較べて、適用製品の仕様変更への対応が容易な情報処理装置とすることができる。特に、後述する回路設計方法において示すように、図１の情報処理装置１００では、図１５の従来の情報処理装置９０におけるＣＰＵ１１を利用して、コアシーケンサ４１をソフト設計することが可能であり、これによって、適用製品の仕様変更への対応が非常に容易な情報処理装置とすることができる。
【００５３】
以上のようにして、図１の情報処理装置１００は、一つの半導体チップ１に形成されてなる情報処理装置であって、図１５に示すＣＰＵ１１とＲＯＭ１２からなる従来のマイコン構成の情報処理装置９０に較べて、回路規模が小さく安価であり、且つ適用製品の仕様変更への対応が容易な情報処理装置となっている。
【００５４】
上述したように、図１の情報処理装置１００において、中央処理回路４０のメイン機能部であるコアシーケンサ４１以外は、図１５に示す従来の情報処理装置９０と同じ構成である。図１の情報処理装置１００において、中央処理回路４０内にあるコアシーケンサ４１、ＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６と、バスセレクタ２０内にあるコアバスセレクタ２０ａおよび周辺バスセレクタ２０ｂは、それぞれ図２のように接続されて、図中に示した情報（制御信号）が伝達される。尚、図１では、図２に示す３つの汎用レジスタ１６ａ〜１６ｃを、汎用レジスタ１６としてまとめて示している。
【００５５】
図２に示すように、情報処理装置１００において、コアバスセレクタ２０ａは、コアシーケンサ４１、ステータスレジスタ１５および汎用レジスタ１６ａ〜１６ｃからの信号を入力して、周辺バスセレクタ２０ｂ、ＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６ａ〜１６ｃへ情報（制御信号）を出力する。また、周辺バスセレクタ２０ｂは、コアバスセレクタ２０ａ、コアシーケンサ４１、ステータスレジスタ１５および汎用レジスタ１６ａからの信号を入力して、周辺回路３０へ情報（制御信号）を出力するように構成されている。
【００５６】
図１の情報処理装置１００におけるコアバスセレクタ２０ａおよび周辺バスセレクタ２０ｂは、図１５に示す従来の情報処理装置９０におけるＣＰＵ１１とＲＯＭ１２からなる中央処理回路１０を図１に示す情報処理装置１００の中央処理回路４０に置き換えるだけで、従来の情報処理装置９０におけるコアバスセレクタ２０ａおよび周辺バスセレクタ２０ｂをそのまま使用することができる。また、図２の構成によって、図１５に示すＣＰＵ１１とＲＯＭ１２からなる従来の情報処理装置９０と同様に、コアバスセレクタ２０ａと周辺バスセレクタ２０ｂを機能させることができる。従って、図１の情報処理装置１００において、周辺回路３０に設けられた各周辺装置３０ａ〜３０ｃの制御のためのデコード信号も、従来の情報処理装置９０と同じものを使用することができる。尚、上記中央処理回路の置き換えによって、前述した図１５の従来のマイコン構成の情報処理装置９０におけるＣＰＵ１１を利用したコアシーケンサ４１のソフト設計が可能となり、これによって、図１の情報処理装置１００は、適用製品の仕様変更への対応が非常に容易な情報処理装置となる。
【００５７】
図１に示すように、情報処理装置１００においては、コアシーケンサ４１が、ステートマシン部４１ａと、デコーダ部４１ｂと、入力制御部４１ｃと、出力制御部４１ｄとで構成されている。
【００５８】
情報処理装置１００のステートマシン部４１ａは、図３に示すように、所定の複数の状態（ステート）を格納するステージレジスタ、シーケンスレジスタおよびカウンタレジスタの３種類のレジスタで構成される。ステージレジスタには複数の階層を識別する番号が格納され、シーケンスレジスタには複数の部分ソースコードを識別する番号が格納される。カウンタレジスタは各部分ソースコードの順番を表現し、１ずつ増分される。デコーダ部４１ｂは、図４に示すように、命令デコードブロック４１ｂ１、制御信号デコードブロック４１ｂ２、パラメータデコードブロック４１ｂ３、キャッシュデータデコードブロック４１ｂ４、キャッシュアドレスデコードブロック４１ｂ５で構成され、ステートマシン部４１ａからのステージ信号、カウント信号およびシーケンス信号からなるステートを解釈し、所定の制御信号を出力する。
【００５９】
情報処理装置１００の入力制御部４１ｃは、図５に示すように、ステートマシン部４１ａおよびデコーダ部４１ｂへの入力信号を制御する。図５に示す情報処理装置１００の入力制御部４１ｃは、割り込み機能ブロック４１ｃ１と、条件分岐ブロック４１ｃ２と、乗算・除算ブロック４１ｃ３と、パラメータブロック４１ｃ４とを有している。割り込み機能ブロック４１ｃ１は、割り込み機能に関する信号をステートマシン部４１ａへ出力する。条件分岐ブロック４１ｃ２は、条件分岐に関する信号をステートマシン部４１ａへ出力する。乗算・除算ブロック４１ｃ３は、乗算・除算に関する信号をデコーダ部４１ｂへ出力する。パラメータブロック４１ｃ４は、パラメータに関する信号をデコーダ部４１ｂへ出力する。
【００６０】
また、情報処理装置１００の出力制御部４１ｄは、図５に示すように、デコーダ部４１ｂからの出力信号を入力して制御する。図５に示す情報処理装置１００の出力制御部４１ｄは、演算制御ブロック４１ｄ１と、コアバス出力選択ブロック４１ｄ２と、周辺バス出力選択ブロック４１ｄ３と、周辺回路書込みブロック４１ｄ４と、レジスタ制御ブロック４１ｄ５とを有している。演算制御ブロック４１ｄ１は、デコーダ部４１ｂからの信号によりＡＬＵ１４へ演算制御信号を出力する。コアバス出力選択ブロック４１ｄ２は、デコーダ部４１ｂからの信号によりコアバスセレクタ２０ａへ出力選択信号を出力する。周辺バス出力選択ブロック４１ｄ３は、デコーダ部４１ｂからの信号により周辺バスセレクタ２０ｂへ出力選択信号を出力する。周辺回路書込みブロック４１ｄ４は、デコーダ部４１ｂからの信号により周辺回路３０へ書込み信号を出力する。レジスタ制御ブロック４１ｄ５は、デコーダ部４１ｂからの信号によりステータスレジスタ１５および汎用レジスタ１６ａ〜１６ｃへ制御信号を出力する。
【００６１】
ステートマシン部４１ａとデコーダ部４１ｂに入力制御部４１ｃと出力制御部４１ｄが付加されたコアシーケンサ４１を持つ図１の情報処理装置１００においては、ステートマシン部４１ａとデコーダ部４１ｂによる一定順序の命令処理だけでなく、ジャンプ、割り込み、退避といった途中で順序の変わる命令処理を実行することができる。このように、図１の情報処理装置１００のコアシーケンサ４１に対して、図１５に示すＣＰＵ１１とＲＯＭ１２からなる従来のマイコン構成の情報処理装置９０において割り込み等のための制御部１３ｄおよびレジスタ１３ｅが担っている、ジャンプ、割り込み、退避といった機能を持たせることが可能である。
【００６２】
以上のようにして、図１に示す情報処理装置１００は、一つの半導体チップ１に形成されてなる情報処理装置であって、図１５に示すＣＰＵ１１とＲＯＭ１２からなる従来のマイコン構成の情報処理装置９０に較べて、回路規模が小さく安価であり、且つ適用製品の仕様変更への対応が容易な情報処理装置となっている。
【００６３】
尚、図１の情報処理装置１００では、コアシーケンサ４１が、割り込み機能ブロック４１ｃ１、条件分岐ブロック４１ｃ２、乗算・除算ブロック４１ｃ３およびパラメータブロック４１ｃ４からなる入力制御部４１ｃと、演算制御ブロック４１ｄ１、コアバス出力選択ブロック４１ｄ２、周辺バス出力選択ブロック４１ｄ３、周辺回路書込みブロック４１ｄ４およびレジスタ制御ブロック４１ｄ５からなる出力制御部４１ｄを有していた。しかしながら、本発明の情報処理装置はこれに限らず、コアシーケンサの入力制御部と出力制御部が別の構成であってもよい。また、コアシーケンサが、入力制御部と出力制御部を有していなくてもよい。
【００６４】
バスセレクタについても同様で、図１の情報処理装置１００では、コアバスセレクタ２０ａと周辺バスセレクタ２０ｂからなるバスセレクタ２０を有していた。しかしながら、本発明の情報処理装置はこれに限らず、任意のバスセレクタであってよいし、バスセレクタの代わりに例えばトライステートバッファであってもよい。
【００６５】
次に、上記した図１の情報処理装置１００の回路設計方法を説明する。
【００６６】
図６は、図１の情報処理装置１００の回路設計方法に関する基本的な設計ステップを示す図である。
【００６７】
図６に示す情報処理装置１００の設計方法は、図１に示す情報処理装置１００の中央処理回路４０を、ＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６を備えた中央処理装置（ＣＰＵ）とＲＯＭとで構成した場合を最初に想定して、設計をスタートする。上記想定構成は、図１５に示した従来の情報処理装置９０と同じ構成である。従って、ＣＰＵ１１とＲＯＭ１２からなる情報処理装置９０が既に存在する場合には、そのＡＬＵ１４、ステータスレジスタ１５および汎用レジスタ１６を引き継ぎ、図６の設計方法を適用することで、図１の情報処理装置１００に転換することができる。以下、図１５も参照しながら、図１５の情報処理装置９０を図１の情報処理装置１００に転換していく場合を例にして、図６の設計方法を説明する。
【００６８】
図６の設計方法では、最初に、命令対応リスト準備ステップＳ１において、図１５の情報処理装置９０におけるＣＰＵ１１の命令と、前記命令に対応する機械語の命令コードおよびデコード情報とからなる命令対応リストを準備しておく。
【００６９】
図７は、上記命令対応リストの一例を示す図である。このような命令対応リストは、ＣＰＵ１１を決めれば、ＣＰＵ１１が持つ命令リストから容易に導き出すことができる。
【００７０】
次に、図６のソースコード作成ステップＳ２において、プログラミング言語により、図１５の情報処理装置９０におけるＣＰＵ１１の命令を用いて、ソースコードを記述する。続いて、オブジェクトコード作成ステップＳ３において、ソースコード作成ステップＳ２で作成したソースコードをコンパイラにより機械語に変換して、オブジェクトコードを作成する。
【００７１】
図８（ａ）と（ｂ）は、それぞれ、上記ソースコードとオブジェクトコードの一例を示す図である。
【００７２】
次に、図６のステートリスト作成ステップＳ４において、前記オブジェクトコードを命令対応リスト準備ステップＳ１で作成した命令対応リストにより変換して、オブジェクトコードからコアシーケンサが実行するステート番号に対応したデコード情報からなるステートリストを作成する。
【００７３】
図９は、上記ステートリストの一例を示す図である。
【００７４】
最後に、図６の回路生成ステップＳ５において、ステートリスト作成ステップＳ４で作成したステートリストに従って、図１の情報処理装置１００におけるコアシーケンサ４１の回路を生成する。
【００７５】
図６に示す情報処理装置１００の回路設計方法では、図１５に示すＣＰＵ１１とＲＯＭ１２とで構成した従来のマイコン構成の中央処理回路１０を、図１に示す情報処理装置１００の回路設計の出発点とする。これによって、上記命令対応リスト準備ステップＳ１においては、既知のＣＰＵ１１の命令とそれに対応する機械語の命令コードおよびデコード情報を利用することが可能である。また、これによって、ソースコード作成ステップＳ２においては、通常のプログラミング言語により、ＣＰＵ１１の命令を用いてソースコードを記述することができる。このため、図６に示す情報処理装置１００のソフトウェア開発は、従来の図１５に示すマイコン構成の情報処理装置９０におけるソフトウェア開発と同様に、容易かつ柔軟である。また、図６に示す情報処理装置１００のソフトウェア開発によって実現できる機能も、従来の図１５に示すマイコン構成の情報処理装置９０におけるソフトウェア開発によって実現できる機能と同様である。
【００７６】
尚、図６に示す情報処理装置１００の回路設計方法において、オブジェクトコード作成ステップＳ３は、コンパイラによるソースコードのオブジェクトコードへの変換である。次のステートリスト作成ステップＳ４も、命令対応リストによるオブジェクトコードのステートリストへの変換である。また、次の回路生成ステップＳ５は、シーケンサ用の一般的なハードウェア記述言語（ＶＨＤＬ、VHSIC Hardware Description Language）により、ステートリストの変換で、図１の情報処理装置１００におけるコアシーケンサ４１の回路を生成することができる。従って、これらのステップＳ３〜Ｓ５は、全て自動化することが可能である。
【００７７】
以上のようにして、図６に示す情報処理装置の回路設計方法は、一つの半導体チップに形成されてなる、回路規模が小さく安価な情報処理装置の回路設計方法であって、回路設計が容易で、適用製品の仕様変更等への対応が容易な情報処理装置の回路設計方法となっている。尚、上記説明は図１５のＣＰＵ１１とＲＯＭ１２からなる情報処理装置９０が既に存在する場合を想定していたが、ＣＰＵとＲＯＭからなる情報処理装置が存在していない場合には、従来の方法で最初にこれをソフト設計した後、図６の設計方法を適用する。
【００７８】
次に、プログラミング言語によるソースコードからコアシーケンサが実行するステートリストに変換する図６の基本設計方法において採用できる、好ましい幾つかの事項を説明する。
【００７９】
図６に示す情報処理装置１００の回路設計方法においては、
命令対応リスト準備ステップＳ１において、図１５の情報処理装置９０におけるＣＰＵ１１の互いに異なる命令を一つの命令（複合コマンド）に統合し、図６のソースコード作成ステップＳ２において、前記統合された命令を用いてソースコードを記述することが好ましい。これにより、ステートリスト作成ステップＳ４で作成するステートリストにおけるステート数を削減し、小さな回路規模で情報処理装置１００の処理能力を向上させることができる。
【００８０】
図１０は、データ“ＡＡ５５ｈ”（固定値）をレジスタの“１０００番地”に書く場合を例にした、上記命令の統合（複合コマンドの作成）を説明する図である。図１０（ａ）は、ある固定値をあるレジスタに書くための複合コマンド“ＬＡＩＰＷ  ＡＤＤＲ，ＤＡＴＡ”の命令内容を示した図であり、図１０（ｂ）は、複合コマンド“ＬＡＩＰＷ  ＡＤＤＲ，ＤＡＴＡ”（ＬＤＡＩ＋ＳＴＡ）の命令伝達経路を示す図である。また、図１１は、種々の複合コマンド例を示す図である。
【００８１】
図１０（ａ）に示すように、複合コマンドは、仮想コマンドでる。従って、複合コマンド“ＬＡＩＰＷ  ＡＤＤＲ，ＤＡＴＡ”は、図１０（ｂ）の太線で示すように、基となるＣＰＵの命令“ＬＤＡＩ＋ＳＴＡ”と同じ、ＡＬＵ１４、ステータスレジスタ１５、汎用レジスタ１６ａ〜１６ｃ、コアバスセレクタ２０ａおよび周辺バスセレクタ２０ｂを介して伝達される。図１０（ｂ）の太線で示した命令伝達では、データラインに“ＡＡ５５ｈ”をのせ、アドレスを“１０００番地”に選択し、ライト信号を立てている。
【００８２】
図１〜図５で説明したように、情報処理装置１００のコアシーケンサ４１は、所定の複数の状態（ステート）を格納するステージレジスタ、シーケンスレジスタおよびカウンタレジスタの３種類のレジスタで構成されるステートマシン部４１ａと、ステートマシン部４１ａからの信号であって、ステージレジスタ、シーケンスレジスタおよびカウンタレジスタをそれぞれ識別するステージ番号、シーケンス番号およびカウント番号からなるステート番号を解釈し、当該ステート番号に対応したデコード情報からなる所定の制御信号を出力するデコーダ部４１ｂとを有している。
【００８３】
上記のようなステートマシン部４１ａとデコーダ部４１ｂを有する情報処理装置１００の場合、図６の回路設計方法では、以下の方法を取ることが好ましい。すなわち、図６のソースコード作成ステップＳ２において、ソースコードを幾つかの部分ソースコードにグループ化して記述し、部分ソースコードを識別するために前記シーケンス番号を割り当てる。次に、前記部分ソースコードを階層に振り分けてソースコードを階層化して記述し、前記階層を識別するために前記ステージ番号を割り当てる。次に、ステートリスト作成ステップＳ４において、前記ステージ番号と前記シーケンス番号別に、前記カウント番号を前記ステート番号としてステートリストを作成する。次に、回路生成ステップＳ５において、前記ステートリストに従って、情報処理装置１００のステートマシン部４１ａとデコーダ部４１ｂの回路を生成する。
【００８４】
上記のように、ソースコード作成ステップＳ２において、ソースコードを部分ソースコードにグループ化して記述し、部分ソースコードを階層に振り分けることで、ソースコードの記述が容易となる。また、これらを上記のようにステージ番号、シーケンス番号およびカウント番号へ対応させることで、以下に示すような回路規模の縮小手段に繋げることができる。
【００８５】
図１２は、上記回路規模の縮小手段の一例で、同じ階層内の異なるビット容量の部分ソースコードに割り当てるカウンタレジスタのビット数を一致させて、カウンタレジスタを共通化する場合の効果を示した図である。図１２において、四角枠で囲った部分Ｍａｉｎ，Ｓｕｂ１，Ｓｕｂ２が、それぞれ異なる部分ソースコードとなっている。図１２（ａ）は、図６のソースコード作成ステップＳ２において、各階層０，１に振り分けられた部分ソースコードＭａｉｎ，Ｓｕｂ１，Ｓｕｂ２を示しており、図１２（ｂ）は、階層１における部分ソースコードＳｕｂ１，Ｓｕｂ２に割り当てるカウンタレジスタのビット数を一致させて、カウンタレジスタを共通化した場合を示している。
【００８６】
図６のソースコード作成ステップＳ２において、図１２（ａ）に示すように、同じ階層１に属し、ビット容量が異なる部分ソースコードＳｕｂ１（５ｂｉｔ），Ｓｕｂ２（８ｂｉｔ）がある場合においては、図６の回路生成ステップＳ５において、図１２（ｂ）に示すように、小さなビット容量（５ｂｉｔ）の部分ソースコードＳｕｂ１に割り当てるカウンタレジスタのビット数を、大きなビット容量（８ｂｉｔ）の部分ソースコードＳｕｂ２に割り当てるカウンタレジスタのビット数［８ｂｉｔ］に一致させて、２つの前記カウンタレジスタを共通化することができる。これによって、カウンタレジスタを一つにできるため、図１の情報処理装置１００におけるステートマシン部４１ａにおけるレジスタのビット数の合計が低減し、最終的に生成されるコアシーケンサ４１の回路規模を縮小することができる。図１２では、図１２（ａ）のカウンタレジスタを共通化する前においてはステートマシン部４１ａにおけるレジスタのビット数の合計が［２３ｂｉｔ］であったものが、図１２（ｂ）のカウンタレジスタを共通化した後では、ステートマシン部４１ａにおけるレジスタのビット数の合計が［１９ｂｉｔ］に低減されている。尚、コアシーケンサ４１の回路規模の縮小と共に、汎用レジスタ１６ａ〜１６ｃ等のレジスタも共通化できるため、これによっても回路規模が縮小する。
【００８７】
図１３は、回路規模の縮小手段に関する別の例で、異なる階層に属する互いに異なる部分ソースコードの一方の部分ソースコードをもう一方の部分ソースコード内に取り込んで新たな部分ソースコードとし、新たな部分ソースコードの属する階層を前記もう一方の部分ソースコードの属する階層として、前記異なる階層を一つにした場合を示した図である。図１３（ａ）は、各階層０〜３に振り分けられた部分ソースコードＭａｉｎ，Ｓｕｂ１〜Ｓｕｂ７を示しており、図１３（ｂ）は、部分ソースコードＳｕｂ１，Ｓｕｂ３，Ｓｕｂ５〜Ｓｕｂ７を部分ソースコードＭａｉｎ内に取り込んで新たな部分ソースコードとした場合を示している。
【００８８】
図６のソースコード作成ステップＳ２において、図１３（ａ）に示すように、異なる階層０〜２に属する互いに異なる部分ソースコードＭａｉｎ，Ｓｕｂ１，Ｓｕｂ３，Ｓｕｂ５，Ｓｕｂ６，Ｓｕｂ７がある場合においては、図１２（ｂ）に示したように、一方の部分ソースコードＳｕｂ１，Ｓｕｂ３，Ｓｕｂ５〜Ｓｕｂ７をもう一方の部分ソースコードＭａｉｎ内に取り込んで新たな部分ソースコードとし、新たな部分ソースコードの属する階層を前記もう一方の部分ソースコードＭａｉｎの属する階層０として、前記異なる階層０〜２を一つにすることができる。
【００８９】
簡略化した具体的な例で説明すると、例えば、階層０に属する部分ソースコードＭａｉｎのビット容量を（１０ｂｉｔ＝１０２４通りのコード）とし、階層１に属する部分ソースコードＳｕｂ１のビット容量を（５ｂｉｔ＝３２通りのコード）とした時、部分ソースコードＳｕｂ１を部分ソースコードＭａｉｎ内に取り込んで新たな部分ソースコードとすると、階層０に属する新たな部分ソースコードは、（１０５６通りのコード）を持ち、ビット容量（１１ｂｉｔ）となる。尚、図１３（ｂ）においては、さらに図１３（ａ）で階層３にあった部分ソースコードＳｕｂ４の属する階層を階層２に移動し、階層２にあった部分ソースコードＳｕｂ２の属する階層を階層１に移動している。以上のようにして、図１３（ａ）においては階層数４であったソースコードが、図１３（ｂ）では階層数３にまとめられている。
【００９０】
上記したように、異なる階層に属する互いに異なる部分ソースコードの一方の部分ソースコードをもう一方の部分ソースコード内に取り込んで新たな部分ソースコードとし、前記新たな部分ソースコードの属する階層を前記もう一方の部分ソースコードの属する階層として、前記異なる階層を一つにすることで、階層数を削減できるため、この場合にもステートマシン部４１ａにおけるレジスタのビット数の合計が低減し、最終的に生成されるコアシーケンサ４１の回路規模を縮小することができる。さらに、汎用レジスタ等のレジスタも共通化できるため、これによっても回路規模が縮小する。
【００９１】
図１４も、回路規模の縮小手段に関する別の例で、同じ部分ソースコードの属する階層を一致させる場合を示した図である。図１４（ａ）は、図１３（ｂ）と同じソースコードで、異なる階層１，２に同じ部分ソースコードＳｕｂ４が属している。図１４（ｂ）は、同じ部分ソースコードＳｕｂ４の属する階層を階層２に一致させた場合を示している。
【００９２】
図６のソースコード作成ステップＳ２において、図１４（ａ）に示すように、同じ部分ソースコードＳｕｂ４が異なる階層１，２に属する場合においては、各階層１，２に対応するステートマシン部４１ａ毎に、同じデコーダ部４１ｂを形成する必要がある。一方、同じ部分ソースコードＳｕｂ４の階層を、図１４（ｂ）に示すように階層２に一致させることで、階層２に対応するステートマシン部４１ａに同じ部分ソースコードＳｕｂ４に対応したデコーダ部４１ｂを一つ形成するだけでよい。従って、これによっても回路規模を縮小することができる。
【００９３】
以上のようにして、上記した情報処理装置１００およびその回路設計方法は、一つの半導体チップに形成されてなる情報処理装置およびその回路設計方法であって、ＣＰＵとＲＯＭからなる従来のマイコン構成の情報処理装置に較べて、回路規模が小さく安価であり、且つ開発環境が流用できるため、回路設計が容易で、適用製品の仕様変更等への対応が容易な情報処理装置およびその回路設計方法となっている。従って、上記した情報処理装置１００およびその回路設計方法は、多種少量のカスタムＩＣ分野への適用に好適である。
【図面の簡単な説明】
【００９４】
【図１】本発明の情報処理装置の一例を示す図で、情報処理装置１００の回路構成を示した模式的なブロック図である。
【図２】図１の情報処理装置１００における中央処理回路４０とバスセレクタ２０の電気回路構成をより詳細に示すブロック図である。
【図３】図１のコアシーケンサ４１におけるステートマシン部４１ａの電気回路構成をより詳細に示すブロック図である。
【図４】図１のコアシーケンサ４１におけるデコーダ部４１ｂの電気回路構成をより詳細に示すブロック図である。
【図５】図１のコアシーケンサ４１における入力制御部４１ｃと出力制御部４１ｄの電気回路構成をより詳細に示すブロック図である。
【図６】情報処理装置１００の回路設計方法に関する基本的な設計ステップを示す図である。
【図７】命令対応リストの一例を示す図である。
【図８】（ａ）と（ｂ）は、それぞれ、ソースコードとオブジェクトコードの一例を示す図である。
【図９】ステートリストの一例を示す図である。
【図１０】命令の統合（複合コマンドの作成）を説明する図で、（ａ）は、ある固定値をある複合コマンドの命令内容を示した図であり、図１０（ｂ）は、（ａ）の複合コマンドの命令伝達経路を示す図である。
【図１１】種々の複合コマンド例を示す図である。
【図１２】回路規模の縮小手段の一例で、（ａ）は、各階層０，１に振り分けられた部分ソースコードＭａｉｎ，Ｓｕｂ１，Ｓｕｂ２を示しており、（ｂ）は、階層１における部分ソースコードＳｕｂ１，Ｓｕｂ２に割り当てるカウンタレジスタのビット数を一致させて、カウンタレジスタを共通化した場合を示している。
【図１３】回路規模の縮小手段に関する別の例で、（ａ）は、各階層０〜３に振り分けられた部分ソースコードＭａｉｎ，Ｓｕｂ１〜Ｓｕｂ７を示しており、（ｂ）は、部分ソースコードＳｕｂ１，Ｓｕｂ３，Ｓｕｂ５〜Ｓｕｂ７を部分ソースコードＭａｉｎ内に取り込んで新たな部分ソースコードとした場合を示している。
【図１４】回路規模の縮小手段に関する別の例で、（ａ）は、図１３（ｂ）と同じソースコードで、異なる階層１，２に同じ部分ソースコードＳｕｂ４が属している。（ｂ）は、同じ部分ソースコードＳｕｂ４の属する階層を階層２に一致させた場合を示している。
【図１５】従来の情報処理装置９０の回路構成を示した模式的なブロック図である。
【符号の説明】
【００９５】
９０，１００  情報処理装置
１  半導体チップ
１０，４０  中央処理回路
１１  ＣＰＵ
１２  ＲＯＭ
４１  コアシーケンサ
４１ａ  ステートマシン部
４１ｂ  デコーダ部
４１ｃ  入力制御部
４１ｄ  出力制御部
１４  ＡＬＵ
１５  ステータスレジスタ
１６  汎用レジスタ
２０  バスセレクタ
２０ａ  コアバスセレクタ
２０ｂ  周辺バスセレクタ
３０  周辺回路
３０ａ〜３０ｃ  周辺装置
【図１】
0005157129.tif 000002
【図２】
0005157129.tif 000003
【図３】
0005157129.tif 000004
【図４】
0005157129.tif 000005
【図５】
0005157129.tif 000006
【図６】
0005157129.tif 000007
【図７】
0005157129.tif 000008
【図８】
0005157129.tif 000009
【図９】
0005157129.tif 000010
【図１０】
0005157129.tif 000011
【図１１】
0005157129.tif 000012
【図１２】
0005157129.tif 000013
【図１３】
0005157129.tif 000014
【図１４】
0005157129.tif 000015
【図１５】
0005157129.tif 000016