(57)【特許請求の範囲】
【請求項１】
半導体集積回路で一体形成されるプロセッサであって、第１のアドレスを出力するとともにデータの書き込みまたは読み出しを指示する第１の書き込み／読み出し制御信号を出力するプロセッサコアと、外部よりデータを入出力するための第１の端子と、外部よりデータの書き込みまたは読み出しを指示する第２の書き込み／読み出し制御信号を入力するための第２の端子と、外部よりアドレス更新を指示するアドレス更新指示信号を入力するための第３の端子と、第２のアドレスを出力し、前記第２の書き込み／読み出し制御信号および前記アドレス更新指示信号の何れか一方がアクティブとなったときに前記第２のアドレスを更新するアドレス生成手段と、調停回路を有し前記第１の書き込み／読み出し制御信号がアクティブとなったときに前記プロセッサコアから与えられる前記第１のアドレスを入力として前記プロセッサコアとの間でデータの受け渡しを行い、前記第２の書き込み／読み出し制御信号がアクティブとなったときに前記アドレス生成手段から与えられる前記第２のアドレスを入力として前記第１の端子との間でデータの受け渡しを行うデータメモリとを備えたプロセッサ。
【請求項２】
アドレス生成手段を、第２のアドレスを保持するレジスタと、このレジスタの値を所定値だけ増加させるアドレス更新用の加算器とで構成している請求項１記載のプロセッサ。
【請求項３】
半導体集積回路で一体形成されるプロセッサであって、第１のアドレスを出力するとともにデータの書き込みまたは読み出しを指示する第１の書き込み／読み出し制御信号を出力するプロセッサコアと、外部よりデータを入出力するための第１の端子と、外部よりデータの書き込みまたは読み出しを指示する第２の書き込み／読み出し制御信号を入力するための第２の端子と、外部よりアドレス更新を指示するアドレス更新指示信号を入力するための第３の端子と、第２のアドレスを出力し、前記第２の書き込み／読み出し制御信号および前記アドレス更新指示信号の何れか一方がアクティブとなったときに前記第２のアドレスを更新するアドレス生成手段と、前記第１の書き込み／読み出し制御信号がアクティブとなったときに前記プロセッサコアから与えられる前記第１のアドレスを入力として前記プロセッサコアとの間でデータの受け渡しを行い、前記第２の書き込み／読み出し制御信号がアクティブとなったときに前記アドレス生成手段から与えられる前記第２のアドレスを入力として前記第１の端子との間でデータの受け渡しを行う第１のデータメモリと、前記第１のデータメモリと同一アドレス空間にマッピングされ、前記第１の書き込み／読み出し制御信号がアクティブとなったときに前記プロセッサコアから与えられる前記第１のアドレスを入力として前記プロセッサコアとの間でデータの受け渡しを行い、前記第２の書き込み／読み出し制御信号がアクティブとなったときに前記アドレス生成手段から与えられる前記第２のアドレスを入力として前記第１の端子との間でデータの受け渡しを行う第２のデータメモリと、前記プロセッサコアから与えられるアクセス対象選択制御信号の一方の状態に対応して、前記第１の書き込み／読み出し制御信号がアクティブとなったときに前記プロセッサコアから与えられる前記第１のアドレスを入力とする前記プロセッサコアとの間のデータの受け渡しを前記第１のデータメモリに行わせ、前記プロセッサコアから与えられるアクセス対象選択制御信号の他方の状態に対応して、前記第２の書き込み／読み出し制御信号がアクティブとなったときに前記アドレス生成手段から与えられる前記第２のアドレスを入力とする前記第１の端子との間のデータの受け渡しを前記第１のデータメモリに行わせる第１の選択回路と、前記プロセッサコアから与えられるアクセス対象選択制御信号の前記一方の状態に対応して、前記第２の書き込み／読み出し制御信号がアクティブとなったときに前記アドレス生成手段から与えられる前記第２のアドレスを入力とする前記第１の端子との間のデータの受け渡しを前記第２のデータメモリに行わせ、前記プロセッサコアから与えられるアクセス対象選択制御信号の前記他方の状態に対応して、前記第１の書き込み／読み出し制御信号がアクティブとなったときに前記プロセッサコアから与えられる前記第１のアドレスを入力とする前記プロセッサコアとの間のデータの受け渡しを前記第２のデータメモリに行わせる第２の選択回路とを備えたプロセッサ。
【請求項４】
アドレス生成手段を、第２のアドレスを保持するレジスタと、このレジスタの値を所定値だけ増加させるアドレス更新用の加算器とで構成している請求項３記載のプロセッサ。
【請求項５】
請求項１または３記載のプロセッサにおけるデータメモリをアクセスするメモリアクセス方法であって、第２の端子から第２の書き込み／読み出し制御信号を入力する第１のステップと、前記第１のステップにより入力された前記第２の書き込み／読み出し制御信号に従って、予め保持した第２のアドレスをデータメモリに供給すると同時に、前記第２のアドレスの値を更新する第２のステップと、前記第２のステップにより与えられる前記第２のアドレスで前記データメモリをアクセスし、前記データメモリと前記第１の端子との間でデータの受け渡しを行う第３のステップとを含むメモリアクセス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩ半導体集積回路からなりプロセッサコアとデータメモリを主構成要素とするプロセッサに関するもので、特に内部のデータメモリとプロセッサ外部の入出力装置との間でデータ入出力を行うプロセッサに関するものである。
【０００２】
【従来の技術】
データ処理を行う従来のプロセッサにおいては、内蔵されるデータメモリとプロセッサ外部にあるデータ入出力装置との間でデータ転送を行うことが必要である。その方法としては、主にダイレクトメモリアクセス方式（以下、ＤＭＡ方式と略称する）が使用される。
【０００３】
図６の従来のプロセッサの一例を示す。図６において、１００はデータメモリ、２００はプロセッサコア、４００はダイレクトメモリアクセスコントローラ（以下、ＤＭＡコントローラと記載する）である。４０１はＤＭＡ送信バッファ、４０２はＤＭＡ受信バッファ、４０３はＤＭＡアドレスポインタ、４０４はＤＭＡアドレス加算レジスタである。２０はアドレスバス、２１はデータバス、２２はリードイネーブル信号、２３はライトイネーブル信号、６０はＤＭＡ要求信号である。
【０００４】
上記のプロセッサにおけるＤＭＡ方式では以下のようにデータの転送を続行する。プロセッサの演算処理を行うプロセッサコア２００が命令メモリ（図示せず）からのプログラムを読み出して演算を実行している。この演算実行中に入出力装置（図示せず）とデータメモリ１００との間でのデータ転送を行う必要が生じた場合、ＤＭＡコントローラ４００がデータ転送に応じて先頭アドレスおよびＤＭＡ転送サイズを設定し、ＤＭＡ開始状態にする。
【０００５】
この状態に入ってから、送信レジスタもしくは受信レジスタに対しＤＭＡ開始要求を行う。この開始要求によってプロセッサが使用していたデータバス、アドレスバスを開放し、ＤＭＡコントローラを使用可能状態とする。
ＤＭＡ開始要求が受け付けられてバスが開放になると、データの転送が開始される。ＤＭＡ受信の場合は入力レジスタが外部端子からのデータを保持し、ＤＭＡコントローラ４００に内蔵されているＤＭＡアドレスポインタ４０３が示すアドレスへの転送を行う。ＤＭＡアドレスポインタ４０３の値は転送のたびにＤＭＡコントローラ４００内に内蔵されているアドレス加算レジスタ４０４の値と加算される。この加算されたアドレスは次のデータ転送のアドレスとして使用され、これを指定回数繰り返すことによってＤＭＡ転送が完了する。
【０００６】
このようにして転送されたデータのメモリイメージを図７および図８に示す。ＤＭＡを行う時のアドレスポインタはレジスタに格納されている固有のビットによって加算されていく。例えばアドレスポインタとの加算を行うレジスタの値が１であった場合には図７のようなメモリ格納になり、加算レジスタの値が３であった場合には図８のようなメモリ格納となる。なお、図７および図８において、５００はデータが格納されたメモリセル、５０１はデータが格納されていないメモリセルである。
【０００７】
またＤＭＡとは異なった方式で外部のデータ入出力装置とデータメモリとの間でデータ転送が行われる場合もある。一つの例としては、図９に示すように、データメモリと同一のメモリマップ空間にマッピングされていてプロセッサの外部に接続されている他のデータメモリを使用する場合である。図９において、１００はデータメモリ、２００はプロセッサコア、４５０は外部メモリインターフェース回路、２０１は外部端子である。５６は外部メモリリードアクセス信号、５７は外部メモリライトアクセス信号である。
【０００８】
このときのデータの転送手順は次のようになる。まず、プロセッサが外部端子を全て開放（ハイインピーダンス状態）にするように、データ入出力装置がプロセッサに対して要求を出す。この後に、開放されたデータバス、アドレスバスを使用して、データ入出力装置がプロセッサの外部に接続されている他のデータメモリに対してアクセスを行う。データ入出力装置からのデータ転送が終了したところで、データ入出力装置がプロセッサ側からのアクセスを許可する。プロセッサは、アクセスが許可された後で、外部の他のデータメモリのデータを内蔵のデータメモリにコピーして使用するか、もしくは外部データメモリをプロセッサコアが直接アクセスすることによってデータを使用する。
【０００９】
【発明が解決しようとする課題】
上記のような従来例を使用した場合には、次のような問題点がある。
まず、ＤＭＡによってデータ転送を実行した場合には、外部からのデータメモリのアクセスのアドレスとプロセッサコアからのデータメモリのアクセスとが重なった場合にプロセッサコアによるデータメモリのアクセス動作に影響を与えることになるだけで、基本的にはプロセッサコアの動作に影響を与えることが少ないが、データメモリへのアクセス信号をすべてプロセッサに入力することが必要であるため、プロセッサの端子数が多くなるという問題がある。
【００１０】
また、ＤＭＡによってデータ転送を実行した場合には、データが規則的に格納されることになる。この際、ＤＭＡで使用されるアドレス発生器には、２つ以上のアドレス修飾機能を持つ場合もあるが、ＤＭＡの転送中にはそのうちの１つのみが選択されることになり、転送の途中でその値を変更することはできず、外部から入力データを格納する自由度が低い。プロセッサコアが処理する命令によっては、規則的に並んだデータよりも、そうではないデータの場合が処理の面で有利になる場合がある。このような場合に、データ配列を変更しないで処理を実行するにしても、プロセッサコアがデータ配列が最適となるように配列を並べ替える場合でもステップ数の増加を招くことになり、データ処理の効率が低下する。
【００１１】
一方、外部のデータメモリを使用した場合には、ＤＭＡの場合と異なり、データの格納の配列には自由度が高い。しかしながら、データメモリを外部につけることによってアクセスを行う信号を全てプロセッサ外部に出力する必要があり、端子数が増加するという問題がある。
また、内部のデータメモリとは別に外部のデータメモリを設けてデータ転送を行っているので、プロセッサコアの処理と外部からのデータ入出力のためのデータ転送とを並列的に実行することができ、プロセッサコアの動作に影響を与えることはないが、プロセッサの処理速度に比べて外部で使用されるデータメモリのアクセススピードは遅く、プロセッサが使用するためにはメモリアクセスウエイトを使用する必要がある。このことによってプロセッサのデータ処理の効率は大きく損なわれる。
【００１２】
したがって、本発明の第１の目的は、プロセッサコアの処理に影響を与えることが少なく、しかもデータメモリへのアクセスのために外部に設ける端子数を削減することができるプロセッサを提供することである。
また、本発明の第２の目的は、外部からの入力データを格納する自由度が高いプロセッサを提供することである。
【００１３】
また、本発明の第３の目的は、プロセッサ外部とプロセッサとのデータ入出力をプロセッサコアの処理に全く影響を与えるがことなく、しかもデータメモリへのアクセスのために外部に設ける端子数を削減することができるプロセッサを提供することである。
また、本発明の第４の目的は、処理効率を高めることができるプロセッサを提供することである。
【００１６】
【課題を解決するための手段】
本発明の請求項１記載のプロセッサは、半導体集積回路で一体形成されるプロセッサであって、第１のアドレスを出力するとともにデータの書き込みまたは読み出しを指示する第１の書き込み／読み出し制御信号を出力するプロセッサコアと、外部よりデータを入出力するための第１の端子と、外部よりデータの書き込みまたは読み出しを指示する第２の書き込み／読み出し制御信号を入力するための第２の端子と、外部よりアドレス更新を指示するアドレス更新指示信号を入力するための第３の端子と、第２のアドレスを出力し、第２の書き込み／読み出し制御信号およびアドレス更新指示信号の何れか一方がアクティブとなったときに第２のアドレスを更新するアドレス生成手段と、調停回路を有し第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力としてプロセッサコアとの間でデータの受け渡しを行い、第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力として第１の端子との間でデータの受け渡しを行うデータメモリとを備えている。
【００１７】
この構成によると、プロセッサコアから出力される第１の書き込み／読み出し制御信号がアクティブとなったときには、プロセッサコアから与えられる第１のアドレスを入力としてデータメモリとプロセッサコアとの間でデータの受け渡しが行われる。また、第２の端子より入力される第２の書き込み／読み出し制御信号がアクティブとなったときには、アドレス生成手段から与えられる第２のアドレスを入力としてデータメモリと第１の端子との間でデータの受け渡しが行われるとともに、アドレス生成手段における第２のアドレスが更新される。また、第３の端子より入力されるアドレス更新指示信号がアクティブとなったときには、アドレス生成手段における第２のアドレスが更新される。
【００１８】
このように外部とのデータ入出力を行うためのアドレス生成手段を設けたことにより、プロセッサコアの処理に影響を与えることが少なく、しかもアドレス生成手段を半導体集積回路に内蔵したことにより、データメモリへのアクセスのために外部に設ける端子数を削減することができる。
また、アドレス更新指示信号によって、データメモリのアクセスを行わずに第２のアドレスを更新することを可能としたので、不規則に並んだアドレスにデータを書き込むこと、ならびに不規則にデータが格納されている場合において各データを読み出すことが可能となり、外部からのデータを格納する自由度を高くすることができる。そのため、プロセッサコアの処理効率を高くすることができる。
【００１９】
本発明の請求項２記載のプロセッサは、請求項１記載のプロセッサにおいて、アドレス生成手段を、第２のアドレスを保持するレジスタと、このレジスタの値を所定値だけ増加させるアドレス更新用の加算器とで構成している。この構成によると、第２のアドレスが所定値ずつ更新されることになる。
【００２４】
本発明の請求項３記載のプロセッサは、半導体集積回路で一体形成されるプロセッサであって、第１のアドレスを出力するとともにデータの書き込みまたは読み出しを指示する第１の書き込み／読み出し制御信号を出力するプロセッサコアと、外部よりデータを入出力するための第１の端子と、外部よりデータの書き込みまたは読み出しを指示する第２の書き込み／読み出し制御信号を入力するための第２の端子と、外部よりアドレス更新を指示するアドレス更新指示信号を入力するための第３の端子と、第２のアドレスを出力し、第２の書き込み／読み出し制御信号およびアドレス更新指示信号の何れか一方がアクティブとなったときに第２のアドレスを更新するアドレス生成手段と、第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力としてプロセッサコアとの間でデータの受け渡しを行い、第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力として第１の端子との間でデータの受け渡しを行う第１のデータメモリと、第１のデータメモリと同一アドレス空間にマッピングされ、第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力としてプロセッサコアとの間でデータの受け渡しを行い、第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力として第１の端子との間でデータの受け渡しを行う第２のデータメモリと、プロセッサコアから与えられるアクセス対象選択制御信号の一方の状態に対応して、第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力とするプロセッサコアとの間のデータの受け渡しを第１のデータメモリに行わせ、プロセッサコアから与えられるアクセス対象選択制御信号の他方の状態に対応して、第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力とする第１の端子との間のデータの受け渡しを第１のデータメモリに行わせる第１の選択回路と、プロセッサコアから与えられるアクセス対象選択制御信号の一方の状態に対応して、第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力とする第１の端子との間のデータの受け渡しを第２のデータメモリに行わせ、プロセッサコアから与えられるアクセス対象選択制御信号の他方の状態に対応して、第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力とするプロセッサコアとの間のデータの受け渡しを第２のデータメモリに行わせる第２の選択回路とを備えている。
【００２５】
この構成によると、アクセス対象選択制御信号が一方の状態になっている場合は、第１の選択回路がプロセッサコアを選択し、プロセッサコアから出力される第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力として第１のデータメモリとプロセッサコアとの間でデータの受け渡しが行われる。またこのときに、第２の選択回路が第１，第２および第３の端子とアドレス生成手段とを選択し、第２の端子より入力される第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力として第２のデータメモリと第１の端子との間でデータの受け渡しが行われるとともに、アドレス生成手段における第２のアドレスが更新され、第３の端子より入力されるアドレス更新指示信号がアクティブとなったときにアドレス生成手段における第２のアドレスが更新される。
【００２６】
また、アクセス対象選択制御信号が他方の状態になっている場合は、第１の選択回路が第１，第２および第３の端子とアドレス生成手段とを選択し、第２の端子より入力される第２の書き込み／読み出し制御信号がアクティブとなったときにアドレス生成手段から与えられる第２のアドレスを入力として第１のデータメモリと第１の端子との間でデータの受け渡しが行われるとともに、アドレス生成手段における第２のアドレスが更新され、第３の端子より入力されるアドレス更新指示信号がアクティブとなったときにアドレス生成手段における第２のアドレスが更新される。またこのときに、第２の選択回路がプロセッサコアを選択し、プロセッサコアから出力される第１の書き込み／読み出し制御信号がアクティブとなったときにプロセッサコアから与えられる第１のアドレスを入力として第２のデータメモリとプロセッサコアとの間でデータの受け渡しが行われる。
【００２７】
このように、同一アドレス空間を有する第１および第２のデータメモリと、アドレス生成手段と、第１および第２の選択回路を設けたので、外部からのデータ入出力とプロセッサコアの処理とを並列に実行することが可能となり、プロセッサコアの処理に全く影響を与えることがなく、しかも、第１および第２のデータメモリと、アドレス生成手段と、第１および第２の選択回路を半導体集積回路に内蔵したことにより、データメモリへのアクセスのために外部に設ける端子数を削減することができる。さらに、第１および第２のデータメモリともに、半導体集積回路に内蔵しているため、第１および第２のデータメモリのアクセスを高速に実行することが可能となり、プロセッサコアにメモリアクセスウエイトを設定することが必要なくなり、処理効率を高めることができる。
【００２８】
また、アドレス更新指示信号によって、データメモリのアクセスを行わずに第２のアドレスを更新することが可能となることで、不規則に並んだアドレスにデータを書き込むこと、ならびに不規則にデータが格納されている場合において各データを読み出すことが可能となり、外部からのデータを格納する自由度を高くすることができる。そのため、プロセッサコアの処理効率を高くすることができる。
【００２９】
本発明の請求項４記載のプロセッサは、請求項３記載のプロセッサにおいて、アドレス生成手段を、第２のアドレスを保持するレジスタと、このレジスタの値を所定値だけ増加させるアドレス更新用の加算器とで構成している。この構成によると、第２のアドレスが所定値ずつ更新されることになる。
【００３０】
本発明の請求項５記載のメモリアクセス方法は、請求項１または３記載のプロセッサにおけるデータメモリをアクセスする方法であり、第２の端子から第２の書き込み／読み出し制御信号を入力する第１のステップと、第１のステップにより入力された第２の書き込み／読み出し制御信号に従って、予め保持した第２のアドレスをデータメモリに供給すると同時に、第２のアドレスの値を更新する第２のステップと、第２のステップにより与えられる第２のアドレスでデータメモリをアクセスし、データメモリと第１の端子との間でデータの受け渡しを行う第３のステップとを含む。
【００３１】
以下、本発明の実施の形態を図面を参照しながら説明する。
〔第１の実施の形態〕
図１に本発明の第１の実施の形態におけるプロセッサのブロック図を示す。図１において、データメモリ１００は、アドレスバス２０を通して第１のアドレスを出力するとともにデータの書き込みまたは読み出しを指示するリードイネーブル信号２２またはライトイネーブル信号２３を出力するプロセッサコア２００とデータバス２１で接続され、外部端子２０１とデータバス１１で接続されている。
【００３２】
アクセスするアドレスはプロセッサコア２００でアクセスする場合はアドレスバス２０を利用し、外部端子２０１からのアクセスを行う場合はアドレス発生器２０２のアドレスバス１０からの出力を利用する。プロセッサ外部からのアクセスとプロセッサコア２００からのアクセスが重なった場合のためにデータメモリ１００の入出力部には調停回路２０４を設置しておく。
【００３３】
アドレス発生器２０２は、外部からのライトイネーブル信号（特許請求の範囲における書き込み制御信号に対応し、以下、ＷＥと略す）１２やリードイネーブル信号（特許請求の範囲における読み出し制御信号に対応し、以下、ＲＥと略す）１３の立ち上がりエッジを検出するエッジ検出回路２０３からのエッジ検出信号５１を受けてアドレスの値を＋１増加させる機構を持つ。
【００３４】
上記のアドレス発生器２０２とエッジ検出回路２０３とで特許請求の範囲における、第２のアドレスを出力し、第２の読み出し／書き込み制御信号がアクティブとなったときに第２のアドレスを更新するアドレス生成手段、つまりアドレスポインタを構成している。
また、外部端子２０１の中のＩＮＣ信号１４の立ち上がりエッジを検出することによって、データメモリ１００にアクセスすることなく、アドレス発生器２０２の出力値２１を１増加させることができる。
【００３５】
ここで、外部端子２０１において、データバス１１に対応したＤＩＯ端子が特許請求の範囲における、外部よりデータを入出力するための第１の端子に相当する。また、ＷＥ信号またはＲＥ信号に対応したＷＥ端子またはＲＥ端子が特許請求の範囲における、外部よりデータの書き込みまたは読み出しを指示する第２の読み出し／書き込み制御信号を入力するための第２の端子に相当する。また、アドレス制御（以下、ＩＮＣと略す）信号に対応したＩＮＣ端子が特許請求の範囲における、外部よりアドレス更新を指示するアドレス更新指示信号を入力するための第３の端子に相当する。
【００３６】
上記のデータメモリ１００は、リードイネーブル信号２２またはライトイネーブル信号２３がアクティブとなったときにプロセッサコア２００からアドレスバス２０を通して与えられる第１のアドレスを入力としてプロセッサコア２００との間でデータの受け渡しを行い、第２のライトイネーブル信号１２またはリードイネーブル信号１３がアクティブとなったときにアドレス発生器２０２からアドレスバス１０を通して与えられる第２のアドレスを入力としてＤＩＯ端子との間でデータの受け渡しを行う。
【００３７】
つぎに、アドレス発生器２０２の構成を図２に示す。アドレス発生器２０２は、レジスタ３００と加算器３０１と選択回路３０２とからなる。外部端子２０１のＩＮＣ端子からのＩＮＣ信号１４のエッジを検出した時、あるいはＷＥ端子またはＲＥ端子のエッジを検出した時に、エッジ検出回路２０３から出力されるエッジ検出信号５１がイネーブルになるが、このエッジ検出信号５１がイネーブルになった場合に、選択回路３０２は加算器３０１の出力ラインであるデータバス５２を選択し、レジスタ３００が加算器３０１のデータバス５２のデータ、つまり加算結果を格納する。プロセッサコア２００からのアクセスによって、このレジスタ３００の値を設定する場合には、ライト信号５４をイネーブルにすることによって、選択回路３０２はデータバス５３の値を選択し、レジスタ３００がデータバス５３の値を格納する。
【００３８】
上記のアドレスの修飾は次のような動作で行われる。エッジ検出回路２０３によってエッジを検出した次のマシンサイクルにエッジ検出信号５１をイネーブルにする。アドレス発生器２０２に内蔵されている選択回路３０２はエッジ検出信号５１がイネーブルとなることによって加算器３０１の出力ラインであるデータバス５２を選択し、アドレスレジスタ３００は、制御信号５１によってデータバス２１の出力に１を加算した値が出力されているデータバス５２上のデータを格納する。
【００３９】
また、プロセッサコア２００によってアドレスレジスタ３００を設定する場合はプロセッサコア２００がライト信号５４をイネーブルにし、プロセッサコア２００が設定する値をデータバス５２に出力する。これを受けて、アドレス発生器２０２に内蔵されている選択回路３０２はデータバス５３を選択し、アドレスレジスタ３００は、データバス５３のデータを格納する。
データメモリアクセスを行わずにアドレスだけを１増加させる場合は次のような動作で行われる。ＩＮＣ端子の立ち上がりエッジをエッジ検出回路２０３によって検出する。エッジが検出された場合、次のマシンサイクルでエッジ検出信号５１をイネーブル状態にする。これを受けてアドレス発生器２０２に内蔵される選択回路３０２がデータバス５２を選択し、アドレスレジスタ３００が出力されているアドレスバス２１の値を１加算した値が出力されているデータバス５２の値を格納する。
【００４０】
上記のような方法をとった場合、プロセッサ外部からのアクセスがあった時のタイミングチャートの例を図３に示す。動作の例として、外部入出力回路から外部端子２０１を経由してデータメモリ１００へとデータを書き込んでいる。データメモリ１００は、プロセッサコア２００のシステムクロックに同期させて動かす必要があるので、外部からのＷＥ信号は、その立ち上がりエッジを検出して、一度プロセッサコア２００のシステムクロックとの同期を取ってデータメモリ１００へ出力している。また、これと同様の信号を利用することでアドレスの更新を行っている。アドレスの更新はデータメモリ１００へのアクセスが終了して後実施する。
【００４１】
図３のタイミングによってデータメモリ１００に格納されるデータの配列を図４に示す。例として外部入出力装置のデータはデータメモリ１００の先頭から書き込まれるとしている。このとき、外部入出力装置からデータメモリ１００へ格納されているデータは先頭アドレスから順番に並んでいく。転送の途中でＩＮＣ信号の立ち上がりエッジが検出された場合はデータは書き込まれずにアドレスが１増加するので、データの格納されていないアドレスが存在することになる。図４のアドレス２，５がこれに対応する。
【００４２】
この実施の形態のプロセッサによると、外部とのデータ入出力を行うためのアドレス生成手段としてアドレス発生器２０２およびエッジ検出回路２０３を設けたことにより、プロセッサコア２００の処理に影響を与えることが少なく、しかもアドレス発生器２０２およびエッジ検出回路２０３を半導体集積回路に内蔵したことにより、データメモリ１００へのアクセスのために外部に設ける端子数を削減することができる。
【００４３】
また、ＩＮＣ信号によって、データメモリ１００のアクセスを行わずに第２のアドレスを更新することを可能としたので、不規則に並んだアドレスにデータを書き込むこと、ならびに不規則にデータが格納されている場合において各データを読み出すことが可能となり、外部からの入力データを格納する自由度を高くすることができる。そのため、プロセッサコアの処理効率を高くすることができる。
【００４４】
〔第２の実施の形態〕
図５に本発明の第１の実施の形態におけるプロセッサのブロック図を示す。この実施の形態のプロセッサには、半導体集積回路で一体化されていて、同一のアドレス空間にマッピングされた２個以上のデータメモリ（本例では２個のデータメモリとする）１００，１０１が存在し、データメモリ１００とデータメモリ１０１に対するアクセス信号（データバス２１のデータ入出力、アドレスバス２０のアドレス入力、ＲＥ信号２２、ＷＥ信号２３など）を、プロセッサコア２００からの出力と外部端子２０１からの出力とから選択する選択回路２０５、２０６を設ける。
【００４５】
この選択回路２０５，２０６は、アクセス対象制御信号５５によって、一方がプロセッサコア２００のアクセス専用として動作する場合には、他方のデータメモリが外部とのデータ入出力専用として動作するように設定されている。
上記の第１の選択回路２０５は、プロセッサコア２００から与えられるアクセス対象選択制御信号５５の一方の状態（例えば、ハイレベル）に対応して、リードイネーブル信号２２またはライトイネーブル信号２３がアクティブとなったときにプロセッサコア２００のアドレスバス２０から与えられる第１のアドレスを入力とするプロセッサコア２００との間のデータの受け渡しを第１のデータメモリ１００に行わせ、プロセッサコア２００から与えられるアクセス対象選択制御信号５５の他方の状態（例えば、ローレベル）に対応して、ライトイネーブル信号１２またはリードイネーブル信号１３がアクティブとなったときにアドレス発生器２０２のアドレスバス１０から与えられる第２のアドレスを入力とするＤＩＯ端子との間のデータの受け渡しを第１のデータメモリ１００に行わせる。
【００４６】
また、第２の選択回路２０６は、プロセッサコア２００から与えられるアクセス対象選択制御信号５５の一方の状態に対応して、ライトイネーブル信号１２またはリードイネーブル信号１３がアクティブとなったときにアドレス発生器２０２のアドレスバス１０から与えられる第２のアドレスを入力とするＤＩＯ端子との間のデータの受け渡しを第２のデータメモリ１０１に行わせ、プロセッサコア２００から与えられるアクセス対象選択制御信号５５の他方の状態に対応して、リードイネーブル信号２２またはライトイネーブル信号２３がアクティブとなったときにプロセッサコア２００のアドレスバス２０から与えられる第１のアドレスを入力とするプロセッサコア２００との間のデータの受け渡しを第２のデータメモリ１０１に行わせる。
【００４７】
ここで、始めにデータメモリ１００がプロセッサ外部とのデータ入出力専用として設定されているとする。
外部入出力回路とのアクセスを行うデータメモリ１００は、第１の実施の形態と同じようにアドレス、データ、制御信号（ＷＥ，ＲＥ）の供給を受け、アクセスを実行する。また、プロセッサコア２００はプロセッサコア２００の専用として設けられているデータメモリ１０１へのアクセスを行って処理を実行していく。この２つの動作は互いに影響をすることなく並列に実行される。
【００４８】
プロセッサの外部にあるデータ入出力装置からの転送が終了し、プロセッサが内蔵している他のデータメモリ１０１の処理を終了したところで、プロセッサコア２００とのアクセス専用としていたデータメモリ１０１と外部との入出力専用としていたデータメモリ１００を入れ替えるために、アクセス対象選択制御信号５５のレベルを反転する。
【００４９】
アクセス対象選択制御信号５５を受けてデータメモリ１００とデータメモリ１０１はアクセスを行う対象を入れ替える。データメモリ１０１はこれまでデータメモリ１００が行っていた動作と同様にアドレスの供給をアドレス発生器２０２から、データ入出力を外部端子２０１とのデータバス１１で、アクセス信号を外部端子２０１からの入力によってアクセスを実行する。一方、データメモリ１００はプロセッサコア２００からの要求によってアクセスを実行する。
【００５０】
この実施の形態によると、同一アドレス空間を有する第１および第２のデータメモリ１００，１０１と、アドレス生成手段としてのアドレス発生器２０２およびエッジ検出回路２０３と、第１および第２の選択回路２０５，２０６を設けたので、外部からのデータ入出力とプロセッサコア２００の処理とを並列に実行することが可能となり、プロセッサコア２００の処理に全く影響を与えることがない。しかも、第１および第２のデータメモリ１００，１０１と、アドレス発生器２０２およびエッジ検出回路２０３と、第１および第２の選択回路２０５，２０６を半導体集積回路に内蔵したことにより、第１および第２のデータメモリ１００，１０１へのアクセスのために外部に設ける端子数を削減することができる。さらに、第１および第２のデータメモリ１００，１０１ともに、半導体集積回路に内蔵しているため、第１および第２のデータメモリ１００，１０１のアクセスを高速に実行することが可能となり、プロセッサコア２００にメモリアクセスウエイトを設定することが必要なくなり、処理効率を高めることができる。
【００５１】
また、ＩＮＣ信号によって、データメモリ１００，１０１のアクセスを行わずに第２のアドレスを更新することが可能となることで、不規則に並んだアドレスにデータを書き込むこと、ならびに不規則にデータが格納されている場合において各データを読み出すことが可能となり、外部からのデータを格納する自由度を高くすることができる。そのため、プロセッサコア２００の処理効率を高くすることができる。
【００５２】
さらに、第２の実施の形態のような構成を取ることで、アドレス発生器２０２に加えてデータメモリ１００または１０１もプロセッサコア２００からのアクセスから分離してプロセッサ外部とのデータ入出力を行い、必要になった時点でプロセッサコア２００のメモリマップに組み入れることで、バス調停回路を使用する必要がなくなり、プロセッサ処理に影響を与えることが無い。
【００５３】
なお、本発明の実施の形態ではアドレス発生器２０２から出力されるアドレスバス２１を制御するためのイベントをＷＥ信号、ＲＥ信号、ＩＮＣ信号の立ち上がりエッジとしたが、その他のイベントによって制御することも可能である。また、この実施の形態ではアドレスの制御信号を１本として、その制御はアドレスの１増加としたが、アドレスの制御信号を複数用意して複数のレジスタとの加算を行うことで、増加させる値を複数の値の中から選択できるようにしてもよい。また、アドレスレジスタ３００の設定範囲を定めるレジスタを設け、その範囲を超えることになった時には、初期値を設定しているレジスタから自動的にロードさせることができるようにしてもよい。
【００５５】
【発明の効果】
本発明の請求項１記載のプロセッサによれば、外部とのデータ入出力を行うためのアドレス生成手段を設けたことにより、プロセッサコアの処理に影響を与えることが少なく、しかもアドレス生成手段を半導体集積回路に内蔵したことにより、データメモリへのアクセスのために外部に設ける端子数を削減することができる。
【００５６】
また、アドレス更新指示信号によって、データメモリのアクセスを行わずに第２のアドレスを更新することを可能としたので、不規則に並んだアドレスにデータを書き込むこと、ならびに不規則にデータが格納されている場合において各データを読み出すことが可能となり、外部からのデータを格納する自由度を高くすることができる。そのため、プロセッサコアの処理効率を高くすることができる。
【００５７】
本発明の請求項２記載のプロセッサによれば、レジスタと加算器とからなる簡単な構成で、第２のアドレスの所定値ずつ更新を行うことができる。
【００５８】
本発明の請求項３記載のプロセッサによれば、同一アドレス空間を有する第１および第２のデータメモリと、アドレス生成手段と、第１および第２の選択回路を設けたので、外部からのデータ入出力とプロセッサコアの処理とを並列に実行することが可能となり、プロセッサコアの処理に全く影響を与えることがなく、しかも、第１および第２のデータメモリと、アドレス生成手段と、第１および第２の選択回路を半導体集積回路に内蔵したことにより、データメモリへのアクセスのために外部に設ける端子数を削減することができる。さらに、第１および第２のデータメモリともに、半導体集積回路に内蔵しているため、第１および第２のデータメモリのアクセスを高速に実行することが可能となり、プロセッサコアにメモリアクセスウエイトを設定することが必要なくなり、処理効率を高めることができる。
【００５９】
また、アドレス更新指示信号によって、データメモリのアクセスを行わずに第２のアドレスを更新することが可能となることで、不規則に並んだアドレスにデータを書き込むこと、ならびに不規則にデータが格納されている場合において各データを読み出すことが可能となり、外部からのデータを格納する自由度を高くすることができる。そのため、プロセッサコアの処理効率を高くすることができる。
【００６０】
本発明の請求項４記載のプロセッサによれば、レジスタと加算器とからなる簡単な構成で、第２のアドレスの所定値ずつ更新を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のプロセッサの構成を示すブロック図である。
【図２】第１の実施の形態におけるプロセッサの中のアドレス発生器２０２の構成を示すブロック図である。
【図３】本発明の第１の実施の形態のプロセッサの動作を示すタイムチャートである。
【図４】本発明の第１の実施の形態におけるメモリ格納の配列のイメージを示す概略図である。
【図５】本発明の第２の実施の形態のプロセッサの構成を示すブロック図である。
【図６】従来のプロセッサの一例の構成を示すブロック図である。
【図７】従来のプロセッサにおけるデータ入出力方法を示すメモリ格納の配列のイメージを示す概略図である。
【図８】従来のプロセッサにおけるデータ入出力方法を示すメモリ格納の配列のイメージを示す概略図である。
【図９】従来のプロセッサの他の例の構成を示すブロック図である。
【符号の説明】
１０  アドレスバス
１１  データバス
１２  ライトイネーブル信号
１３  リードイネーブル信号
１４  制御信号
２０  アドレスバス
２１  データバス
２２  ライトイネーブル信号
２３  ライトイネーブル信号
５１  エッジ検出信号
５２  データバス
５３  データバス
５４  ライト信号
５５  アクセス対象選択制御信号
１００，１０１  データメモリ
２００  プロセッサコア
２０１  外部端子
２０２  アドレス発生装置
２０３  エッジ検出回路
２０４  調停回路
２０５，２０６  選択回路
３００  アドレスレジスタ
３０１  加算器
３０２  選択回路
５００  メモリセル
５０１  メモリセル
【図１】
0003691213.tif 000002
【図２】
0003691213.tif 000003
【図３】
0003691213.tif 000004
【図４】
0003691213.tif 000005
【図５】
0003691213.tif 000006
【図６】
0003691213.tif 000007
【図７】
0003691213.tif 000008
【図８】
0003691213.tif 000009
【図９】
0003691213.tif 000010