<実施の形態1>
図1には、本願にかかる情報処理システムの構成例が示される。
図1に示される情報処理システムは、特に制限されないが、中央演算回路CPUを装備するマイクロコンピュータMS0、データ圧縮/伸張回路MACCを装備する画像処理装置MS1、データ入力装置MS2、データ出力装置MS3、アクセス調停装置ARB、内蔵メモリ装置OCRAM、メモリ制御装置SL0、撮像装置CCD、画像表示装置LCD、メモリ装置MEM0を含み、クロックCLKに同期して動作する。
特に制限されないが、マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2、データ出力装置MS3、アクセス調停装置ARB、メモリ制御装置SL0および内蔵メモリ装置OCRAMは、同一基板上に形成される。
特に制限されないが、メモリ装置MEM0および内蔵メモリ装置OCRAMはDRAM、SRAM及び不揮発性メモリで構成することが可能である。
マイクロコンピュータMS0は、例えば中央演算装置CPUと、アクセス要求のためのリクエストバッファrqm0と、アクセス要求に対する応答のためのレスポンスバッファrsm0から構成される。
画像処理装置MS1は、データ圧縮/伸張装置MACCと、アクセス要求のためのリクエストバッファrqm1と、アクセス要求に対する応答のためのレスポンスバッファrsm1から構成される。
データ入力装置MS2は、画像入力回路VIFと、アクセス要求のためのリクエストバッファrqm2と、アクセス要求に対する応答のためのレスポンスバッファrsm2を含んで成り、撮像装置CCDからの動画像データdinを取り込む。
データ出力装置MS3は、画像出力装置LIFと、アクセス要求のためのリクエストバッファrqm3と、アクセス要求に対する応答のためのレスポンスバッファrsm3を含み、画像表示装置LCDに動画像データdoutを出力する。
メモリ制御装置SL0は、メモリ制御回路SDCONと、レジスタ回路sregと、アクセス要求のためのリクエストバッファreq0と、アクセス要求に対する応答のためのレスポンスバッファres0を含み、上記メモリ装置MEM0の動作を制御する。
内蔵メモリ装置OCRAMは、メモリアレイRAMとメモリ制御回路SDCONと、レジスタ回路rregと、アクセス要求のためのリクエストバッファreg1と、アクセス要求に対する応答のためのレスポンスバッファres1を含んで構成される。
上記マイクロコンピュータMS0と、画像処理装置MS1と、データ入力装置MS2と、データ出力装置MS3は、何れもバスマスタとされ、それぞれの固有のマスタ識別番号が設定されており、マイクロコンピュータMS0のマスタ識別番号midは「0」に、画像処理装置MS1のマスタ識別番号midは「1」に、データ入力装置MS2のマスタ識別番号midは「2」に、データ出力装置MS3のマスタ識別番号midは「3」に設定されている。
上記構成の動作を説明する。
先ず、画像を録画する場合の動作を簡単に説明する。
撮像装置CCDで撮像して得られた動画像データdinは、データ入力装置MS2によって取り込まれ、アクセス調停装置ARBと、メモリ制御装置SL0を介して、メモリ装置MEM0へ転送される。
マイクロコンピュータMS0は、アクセス調停装置ARBと、メモリ制御装置SL0とを介してメモリ装置MEM0から動画データを読み出し、それに回転処理を施す。その処理結果はアクセス調停装置ARBと、メモリ制御装置SL0とを介して、再度、メモリ装置MEM0へ書き込まれる。
データ出力装置MS3は、メモリ装置MEM0からアクセス調停装置ARBと、メモリ制御装置SL0とを介して、マイクロコンピュータMS0によって回転処理が施された動画像データを読み出し、それを動画像表示のための画像表示装置LCDへ転送する。
画像処理装置MS1は、メモリ装置MEM0から、アクセス調停装置ARBと、メモリ制御装置SL0とを介して、マイクロコンピュータMS0によって回転処理が施された画像データを読み出し、データ圧縮を施す。その処理結果はアクセス調停装置ARBと、メモリ制御装置SL0とを介して、再度メモリ装置MEM0へ書き込まれる。
アクセス調停装置ARBとメモリ制御装置SL0は互いに連携し、上述した録画に必要な処理を一定の時間内に完了し、録画を滞りなく実行するために、データ転送制御を行う。
次に、データ入力装置MS2からメモリ装置MEM0へのアクセス要求について説明する。
データ入力装置MS2は、装備している画像入力回路VIFによって撮像装置CCDで撮像している動画像のデータを順に取り込み、それをリクエストバッファrqm2へ転送する。
リクエストバッファrqm2からメモリ装置MEM0へのデータを転送する場合、データ入力装置MS2は、アクセス調停装置ARBへ、アクセス要求として、制御信号cnt2より、マスタ識別番号midと、ライト命令と、転送したいデータ量、(以下、転送データサイズ)と、転送先アドレスとを送信する。さらに信号lat2より、何時までにデータ転送を開始したいかという時間情報(以下「要求ライトレイテンシ」)を送信する。
次に、メモリ装置MEM0からデータ出力装置MS3へのデータ転送について説明する。データ出力装置MS3によって、メモリ装置MEM0へ保存されている動画像データは、メモリ制御装置SL0とアクセス調停装置ARBを介し、レスポンスバッファrsm3へ順に転送される。そして、画像表示装置LCDで動画像を表示させるため、画像出力回路LIFは画像表示装置LCDへ、動画像のデータを順に転送する。
メモリ装置MEM0からレスポンスバッファrsm3へデータを転送する場合は、データ出力装置MS3が、アクセス調停装置ARBへ、アクセス要求として、マスタ識別番号midと、制御信号cnt3よりリード命令と、転送データサイズと、転送元アドレスとを送信し、さらに、レイテンシ信号lat3より、データを受け取るまでのデータ到達時間情報(以下「要求リードレイテンシ」)を送信する。
次に、回転処理を行うためのマイクロコンピュータMS0とメモリ装置MEM0間のアクセス要求について説明する。
メモリ装置MEM0からレスポンスバッファrsm0へデータを転送する場合は、マイクロコンピュータMS0はアクセス調停装置ARBへ、アクセス要求として、制御信号cnt0よりマスタ識別番号midと、リード命令と、転送データサイズと、転送元アドレスとを送信し、さらに、レイテンシ信号lat0より、要求リードレイテンシを送信する。
リクエストバッファrqm0から、メモリ装置MEM0へデータを転送する場合は、アクセス調停装置ARBへ、アクセス要求として、制御信号cnt0よりマスタ識別番号midと、ライト命令と、転送データサイズと、転送先アドレスとを送信し、さらにレイテンシ信号lat2より要求ライトレイテンシを送信する。
次に、データ圧縮を行う場合の画像処理装置MS1とメモリ装置MEM0間のアクセス要求について説明する。
メモリ装置MEM0が保存している動画像データをレスポンスバッファrsm1へ転送する場合は、画像処理装置MS1が、アクセス調停装置ARBへ、アクセス要求として、制御信号cnt1よりマスタ識別番号midと、リード命令と、転送データサイズと、転送元アドレス送信し、さらに、レイテンシ信号lat1より要求リードレイテンシを送信する。
リクエストバッファrqm1から、メモリ装置MEM0へデータを転送する場合は、アクセス調停装置ARBへ、アクセス要求として、信号cnt1よりマスタ識別番号midと、ライト命令と、転送データサイズと、転送先アドレスを送信し、さらに、レイテンシ信号lat1より要求ライトレイテンシを送信する。
メモリ制御装置SL0は、マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3の各バスマスタからのアクセス要求が、リクエストバッファreq0に受け付けられた場合、メモリ装置MEM0へのデータ転送をいつまでに開始できるかという時間情報(以下「転送可能ライトレイテンシ」)と、メモリ装置MEM0からのデータ転送をいつまでに開始できるかという時間情報(以下転送可能リードレイテンシ)を、状態信号statを通じて、予めアクセス調停装置ARBへ送信する。これら転送可能ライトレイテンシおよび転送可能リードレイテンシは、状態信号rstatを通じて、常に、マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3に伝達される。
さらに、メモリ制御装置SL0は、アクセス要求のためのリクエストバッファreq0がどの程度、空き状態となっているかどうかを示す情報(以下空きバッファ数)を状態信号statよりアクセス調停回路ARBへ伝え、さらにアクセスアクセス調停回路ARBは状態信号statの情報を状態信号rstatより伝える。
これによりマイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3は、常にデータの到達時間や、リクエストバッファreq0の状態を知ることができるため、データの到達時間までに、次の処理をどこまで前もって行うかを柔軟に調節することができ、マスタ内の処理を効率的に行うことができる。
また、アクセス調停装置ARBでは、マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3からアクセス要求と、それぞれの装置の要求ライトレイテンシあるいは要求リードレイテンシが同時に入力されアクセスが競合した場合、先ず、アクセス調停装置ARBはリクエストバッファreq0が空いているかをチェックする。リクエストバッファreq0が空いていなければ、メモリ制御装置SL0へのアクセス要求を行わない。リクエストバッファreq0が空いていれば、アクセス要求の命令がリード命令の場合、要求リードレイテンシとメモリ制御装置SL0からの転送可能リードレイテンシとを比較する。要求リードレイテンシが転送可能リードレイテンシ以下のアクセス要求のみを選択する。
また、アクセス要求の命令がライト要求の場合、要求ライトレイテンシとメモリ制御装置SL0からの転送可能ライトレイテンシとを比較する。要求ライトレイテンシが転送可能ライトレイテンシ以下のアクセス要求のみを選択する。
次に、上記述で選択されたアクセス要求は、アクセス調停装置ARBが内部に装備している、それぞれのマスタ(マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3)に対する第一アクセス優先レベルを比較し、最も高い優先レベルのアクセス要求をさらに選択する。
最も高い優先レベルのアクセス要求がひとつしか存在しない場合、そのアクセス要求に対してアクセス許可を与える。また、同じ優先レベルのアクセス要求が複数存在する場合、選択されたアクセス要求の中で、要求ライトレイテンシと転送可能ライトレイテンシの差、あるいは要求リードレイテンシと転送可能リードレイテンシの差が最も小さなアクセス要求に対し、アクセス許可を与える。
アクセス調停装置ARBによって、アクセス許可を与えられたアクセス要求が画像処理装置MS1からのリードアクセス要求の場合、制御信号cnt4を通じて、マスタ識別番号midと、リード命令と、転送データサイズと、転送元アドレスとが、メモリ制御装置SL0のリクエストバッファreq0へ転送される。
このように、マスタ側からの要求リードレイテンシに対して、その要求が満たされるかどうかをチェックし、さらに、要求リードレイテンシと可能リードレイテンシの差が最も小さなアクセス要求に対し、アクセス許可を与えることで、要求リードレイテンシを満たしながら、緊急度の高い要求を優先的に処理することができる。
メモリ制御装置SL0は、例えば、画像処理装置MS1のリード命令を含んだアクセス要求をリクエストバッファreq0へ受け取った場合、その直後に、メモリ制御回路SDCONは、現在、受け取ったアクセス要求に対する実際のリードレイテンシ(以下、実リードレイテンシ)及び空バッファ数を計算する。
実リードレイテンシは信号lat04を通じて、空きバッファ数は、信号statを通じて、画像処理装置MS1のマスタ識別番号midは制御信号cnt4を通じて、アクセス調停装置ARBへ転送する。
アクセス調停装置ARBは、メモリ制御回路SDCONからの実リードレイテンシを、レイテンシ信号lat1より、また空バッファ数を信号rstatより、マスタ識別番号midは、制御信号cnt1を通じて、画像処理装置MS1へ転送する。
また、メモリ制御装置SL0は、次のアクセス要求がリクエストバッファreq0へ受け付けられた場合の転送可能ライトレイテンシと、転送可能リードレイテンシを、信号statを通じてアクセス調停装置へ送信する。これらレイテンシはアクセス調停装置ARBを介して、信号rstatを通じて、マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3へ送信される。
最後に、メモリ制御回路SDCONはメモリ装置MEM0に保存している動画データを読み出し、レスポンスバッファres0へ転送する。レスポンスバッファres0によって、読み出されたデータはデータバスtrbusを通じて、アクセス調停装置ARBへ転送される。アクセス調停装置ARBはメモリ制御装置SL0からの読み出したデータを、データバスrbusを通じて要求元の画像処理装置MS1のレスポンスバッファrsm1へ転送する。
上記の例では、画像処理装置MS1のアクセス要求が許可され、メモリ装置MEM0へのアクセスが生じた場合の制御方法について説明したが、内蔵メモリ装置OCRAMへのアクセスについても同様の制御がなされる。また、メモリ装置MEM0や内蔵メモリ装置OCRAMをアクセスする他のマスタについても同様の制御がなされる。
次に、主要部のさらに詳細な構成及び動作について説明する。
図2には上記メモリ装置MEM0からデータを読み出す際の動作が示される。また、図3には上記メモリ装置MEM0へデータを書き込む際の動作が示される。
メモリ装置MEM0には、EDO−DRAM、SDRAM、DDR−SDRAM、SRAM、擬似SRAMなどの揮発性メモリ及びMRAMや相変化メモリなどの不揮発性メモリを用いることができるが、本メモリの読み出し及び書き込み動作には、SDRAMを例に説明する。SDRAMの入出力データバスmbusのバス幅は、特に制限されないが32bitとし、動作クロックの周期を7.5nsとし説明する。
また、SDRAMを動作させるための、それぞれの命令と命令の間の最小時間は、SDRAMの動作仕様で定められており、様々な組み合わせが実現できる。本例では、バンクアクテイブ命令ACと読み出し命令RD間の最小時間Trcdは2クロックサイクル、読み出し命令RDとデータ出力までの時間を示すキャスレイテンシCLを2クロックサイクル、最後の出力データからプリチャージ命令までの最大時間Tpreを1クロックサイクル、プリチャージ命令から次のバンクアクテイブ命令までの最小時間Trpを2クロックサイクル、バンクアクテイブ命令ACとバンクアクテイブ命令ACとの間の最小時間Trcを6クロックサイクル、書き込み動作時の最終データ入力からプリチャージ命令PREまでの最小時間Trwlを2クロックサイクルと、設定した場合について説明する。
さらに、マスタからのアクセス要求に含まれるデータ転送サイズは、様々なサイズが実現できるが、本例では、データ転送サイズが16Byeの場合について説明する。なお、1クロックサイクルは、動作クロックの1周期分の時間を表す。
メモリ制御装置SL0はメモリ装置MEM0からデータを読み出す際は、図2に示されるように、制御信号cnt5より命令としてバンクアクテイブ命令AC、読み出し命令RD、プリチャージ命令PREを、アドレスとして、バンクアドレスBK0、ロウアドレスR0、カラムアドレスC0を出力する。
リード命令が出力されると、クロックCLK換算で2サイクル後に、データD0からD3が、入出力データバスmbusを通じてメモリ制御装置SL0へ転送される。データ転送回数Bstは、SDRAMの入出力データバスmbusのバス幅が32bit、つまり4バイトであり、マスタが要求したデータ転送サイズが16バイトであるため4回となる。
次に、メモリ制御装置SL0はメモリ装置MEM0へデータを書き込む際は、図3に示されるように、制御信号cnt5より命令としてバンクアクテイブ命令AC、書き込み命令WT、プリチャージ命令PREを、アドレスとして、バンクアドレスBK0、ロウアドレスR0、カラムアドレスC0を出力する。
ライト命令を出力すると同時にデータD0からD3を、入出力データバスmbusを通じて、順にメモリ装置MEM0へ転送する。データ転送回数Bstは、SDRAMの入出力データバスmbusのバス幅が32bit、つまり4バイトであり、要求元が要求したデータ転送サイズが16バイトであるため4回となる。
図4には、本例におけるアクセス調停装置ARBの構成例が示される。
この回路は、レイテンシ保持回路(lat0f、lat1f、lat2f、lat3f、lat4f、lat6f)と、状態信号保持回路latstatと、latrmstatと、第一アクセス優先レベル回路(pri0、 pri1、 pri2、pri3)と、第一アクセス優先レベルレジスタpriregと、アクセス許可回路CNT1で構成されている。
制御信号cnt0とレイテンシ信号lat0はマイクロコンピュータMS0へ、制御信号cnt1とレイテンシ信号lat1は画像処理装置MS1へ、制御信号cnt2とレイテンシ信号lat2は、データ入力装置MS2へ、制御信号cnt3とレイテンシ信号lat3はデータ出力装置MS3へ、それぞれ接続されており、制御信号cnt4とレイテンシ信号lat4はメモリ制御装置SL0へ、制御信号cnt6とレイテンシ信号lat6は内蔵メモリ装置OCRAMへ、それぞれ接続されている。
また、データバスrbus、wbus及び状態信号rstatは、マイクロコンピュータMS0と、画像処理装置MS1と、データ入力装置MS2と、データ出力装置MS3へ接続され、データバスtrbus、twbus及び状態信号statはメモリ制御装置SL0へ、データバスrmrrbus、rmwwbus及び状態信号rmstatは内蔵メモリ装置OCRAMへ、それぞれ接続されている。
レイテンシ保持回路lat0fはレイテンシ信号lat0の値を保持し、レイテンシ保持回路lat1fはレイテンシ信号lat1の値を保持し、レイテンシ保持回路lat2fはレイテンシ信号lat2の値を保持し、レイテンシ保持回路lat3fはレイテンシ信号lat3の値を保持し、レイテンシ保持回路lat6fはレイテンシ信号lat6の値を保持する。
第一アクセス優先レベル回路pri0は、マイクロコンピュータMS0の第一アクセス優先レベルを決定し、第一アクセス優先レベル回路pri1は、画像処理装置MS1の第一アクセス優先レベルを決定し、第一アクセス優先レベル回路pri2は、データ入力装置MS2の第一アクセス優先レベルを決定し、第一アクセス優先レベル回路pri3は、データ出力装置MS3の第一アクセス優先レベルを決定する。
第一アクセス優先レベル回路pri0からpri3の優先レベルは、特に制限されないが、マイクロコンピュータMS0が、アクセス優先レベルレジスタpriregに、それぞれの要求元の優先レベルをプログラムすることにより、初期設定される。さらに、マスタのアクセス要求に対する許可及び不許可によって、第一アクセス優先レベル回路pri0からpri3は、その優先レベルを動的に変えることができる。
次に、アクセス調停装置ARBの動作を説明する。
電源投入後、マイクロコンピュータMS0は、全てのバスマスタの第一アクセス優先レベルをアクセス優先レベルレジスタpriregへ書き込む。第一アクセス優先レベル回路(pri0、pri1、pri2、pri3)は、アクセス優先レベルレジスタpriregの値を参照し、第一アクセス優先レベルを設定する。
メモリ制御装置SL0は、アクセス要求がリクエストバッファreq0へ受け付けられた場合の、転送可能ライトレイテンシあるいは転送可能リードレイテンシを、状態信号statを通じてアクセス調停装置へ送信する。さらに、メモリ制御装置SL0は、現在のリクエストバッファreq0の空きバッファ数を、状態信号statを通じて送信する。これら、転送可能ライトレイテンシあるいは転送可能リードレイテンシ及び空きバッファ数は、状態信号保持回路latstatへ保持される。
マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2、データ出力装置MS3は、それぞれのアクセス要求を、制御信号cnt0、cnt1、cnt2、cnt3を通じてアクセス調停装置ARBへ入力し、それと同時に、要求リードレイテンシあるいは要求ライトレイテンシをレイテンシ信号lat0、lat1、lat2、lat3を通じて、アクセス調停装置ARBへ入力する。レイテンシ信号lat0、lat1、lat2、lat3からの値は、それぞれレイテンシ保持回路lat0f、lat1f、lat2f、lat3f、lat4fへ保持される。
これらマスタからアクセス要求が競合した場合、先ず、アクセス許可回路CNT1は、状態信号保持回路latstatに保持されている状態信号によって、リクエストバッファreq0が空いているかを確認する。リクエストバッファreq0が空いていなければ、メモリ制御装置SL0へのアクセス要求を行わない。リクエストバッファreq0が空いていれば、アクセス要求がリード要求の場合、レイテンシ保持回路(lat0f、lat1f、lat2f、lat3f、lat4f)へ保持されている要求リードレイテンシと状態信号保持回路latstatに保持されている転送可能リードレイテンシとを比較する。要求リードレイテンシが転送可能リードレイテンシ以下のアクセス要求のみを選択する。
また、アクセス要求がライト要求の場合、レイテンシ保持回路(lat0f、lat1f、lat2f、lat3f、lat4f)へ保持されている要求ライトレイテンシと状態信号保持回路latstatに保持されている転送可能ライトレイテンシとを比較する。要求ライトレイテンシが転送可能ライトレイテンシ以下のアクセス要求のみを選択する。
次に、上記述で選択されたアクセス要求に対する第一アクセス優先レベル回路(pri0、pri1、pri2、pri3)へ保持されている第一アクセス優先レベルを比較し、最も高い優先レベルのアクセス要求をさらに選択する。
最も高い優先レベルのアクセス要求がひとつしか存在しない場合、そのアクセス要求に対してデータ転送許可を与える。また、同じ優先レベルのアクセス要求が複数存在する場合、選択されたアクセス要求なかで、レイテンシ保持回路へ保持されている要求ライトレイテンシと転送可能ライトレイテンシの差、あるいは要求リードレイテンシと転送可能リードレイテンシの差が最も小さなアクセス要求に対し、アクセス許可を与える。
最終的にアクセス許可回路CNT1によって、アクセス許可を与えられたアクセス要求が画像処理装置MS1からのライト命令を含むアクセス要求の場合、アクセス許可回路CNT1は信号cnt4からライト命令を含んだアクセス要求を、メモリ制御装置SL0へ転送する。これと同時に、データバスwbusを通じてアクセス許可回路CNT1へ入力された書き込みデータを、ライトデータバスtwbusを通じてメモリ制御装置SL0へ転送する。
アクセス許可回路CNT1は、アクセス要求が許可されたマスタに対応する第一アクセス優先レベル回路の優先レベルを最も低い値にする。また、アクセス要求が不許可になったマスタに対応する第一アクセス優先レベル回路の優先レベルを上げる。
図5には、本例におけるアクセス調停装置ARBが行うアクセス調停動作を説明するフローチャートが示される。
STEP1ではリード命令を含んだアクセス要求Aがアクセス調停装置ARBへ入力され、STEP7ではリード命令を含んだアクセス要求Bが入力されて動作が開始する。STEP2およびSTEP8ではリクエストバッファreq0が空いているかを確認する。リクエストバッファreq0が空いていなければSTEP4へ進み、空いていればSTEP3へ進み。STEP3ではアクセス要求Aの要求リードレイテンシRLAと転送可能リードレイテンシLaとの比較を行う。要求リードレイテンシRLAが転送可能レイテンシLaより小さい場合、つまり、要求リードレイテンシ以内にデータを転送できない場合はSTEP4へ進み、要求レイテンシRLAが転送可能レイテンシLa以上場合、つまり、要求レイテンシRLA以内にデータを転送できる場合はSTEP6に進む。
STEP4では、アクセス要求Aを発行したマスタへ再要求を行うことを伝える。STEP4が終了するとSTEP5へ進む。STEP5では、信号MAを0にする。
STEP6では、信号MAを1にする。
STEP9ではアクセス要求Bの要求リードレイテンシRLBと転送可能リードレイテンシLaとの比較を行う。要求リードレイテンシRLBが転送可能リードレイテンシLaより小さい場合、つまり要求リードレイテンシ以内にデータを転送できない場合はSTEP10へ進み、要求リードレイテンシRLAが転送可能リードレイテンシLa以上場合、つまり、要求リードレイテンシRLB以内にデータを転送できる場合はSTEP12へ進む。STEP10では、アクセス要求Bを発行したマスタへ再要求を行うことを通知する。STEP10が終了するとSTEP11へ進む。STEP1では、信号MBを0にする。
STEP12では、信号MBを1にする。
STEP5あるいはSTEP6、STEP11あるいはSTEP12を終了するとSTEP13へ進む。
STEP13では、信号MA及びMBの値をチェックする。信号MAが0で且つMBが0の場合、つまり、要求リードレイテンシRLA及びRLB双方とも満たせない場合、STEP16へ進む。信号MAが1で且つMBが0の場合、つまり要求リードレイテンシRLAを満たし、RLBを満たせない場合、STEP17へ進む。信号MAが1で且つMBが1の場合、つまり、要求リードレイテンシRLA及びRLB双方とも満たせる場合、STEP14へ進む。信号MAが0で且つMBが1の場合、つまり要求リードレイテンシRLAを満たせず、要求リードレイテンシRLBを満たせる場合STEP20へ進む。
STE16では、アクセス調停装置ARBはメモリ制御回路へ、どちらの要求も出力しない。STEP17では、リードアクセス要求Aのみを許可し出力する。STEP20では、アクセス要求Bのみを許可し出力する。
SETP14では、アクセス要求Aの第一アクセス優先レベルPRAとアクセス要求Bの第一アクセス優先レベルPRBを比較する。アクセス要求Aの第一アクセス優先レベルPRAが、アクセス要求Bの第一アクセス優先レベルPRBより高い場合、STEP17へ進む。アクセス要求Aの第一アクセス優先レベルPRAが、アクセス要求Bの第一アクセス優先レベルPRBより低い場合、STEP20へ進む。アクセス要求Aの第一アクセス優先レベルPRAが、アクセス要求Bの第一アクセス優先レベルPRBと等しい場合、STEP15へ進む。
STEP15では、要求リードレイテンシRLAとRLBの値を比較する。要求リードレイテンシRLAがRLBより小さい場合はSTEP18へ進む。要求リードレイテンシRLAがRLB以上の場合はSTEP19へ進む。
STEP18では、アクセス要求Aのみを許可し出力する。STEP19では、アクセス要求Bのみを許可し出力する。
図6には、上記アクセス調停装置ARB内の第一アクセス優先レベル回路pri0、pri1、pri2、pri3が行う第一アクセス優先レベルの動作を説明するためのフローチャートが示される。
特に制限されないが、第一アクセス優先レベルは0から15段階まであり、数値が大きい方が優先レベルの上位である、初期設定が6であるとして説明する。
STEP1では、画像処理装置MS1からアクセス要求Bが、アクセス調停装置ARBへ入力されて動作が開始される。
STEP2では、アクセス要求Bの許可と不許可がチェックされる。アクセス要求Bが許可された場合、STEP3へ進む。不許可の場合、STEP4へ進む。STEP3では第一アクセス優先レベル回路pri1のアクセス優先レベルの値PRBを最も低い0に設定する。STEP4では、アクセス優先レベルの値PRBを1つ上げ7となる。
図7には、上記メモリ制御装置SL0の構成例が示される。
上記メモリ制御装置SL0は、図7に示されるように、リクエストバッファreq0と、レスポンスバッファres0と、レジスタ回路sregと、メモリ制御回路SDCONで構成される。
リクエストバッファreq0は、バッファrq0、rq1、rq2、rq3から構成される。レスポンスバッファres0は、バッファrs0、rs1、rs2、rs3から構成される。レジスタ回路sregはレジスタ回路regとレイテンシレジスタ回路Lregから構成される。メモリ制御回路SDCONはレイテンシ計算回路calcと、コマンド生成回路comで構成されている。
電源投入直後、マイクロコンピュータMS0により、レジスタ回路regには、SDRAMを動作させるための命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl,Tpre)と、キャスレイテンシCLと、SDRAMの入出力データバスmbusのバス幅が、例えば4Byteに設定される(図2及び図3参照)。次に、レイテンシ計算回路calcは、上記命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl)と、キャスレイテンシCLを用い、読み出し時のレイテンシLacRdと、書き込み時のレイテンシLacWtと、読み出しサイクルレイテンシRcycと、書き込みサイクルレイテンシWcycとを計算し、それをレイテンシレジスタ回路Lregへ設定する。
読み出し時のレイテンシLacRdはTrcd+CL−1で計算され、書き込み時のレイテンシLacWtはTrcdで計算され、読み出しサイクルレイテンシRcycは読み出し時のレイテンシLacRd+Bstmax−Tpre+Trpで計算され、書き込みサイクルレイテンシWcycはTrcd−1+Bstmax+Trwl+Trpで計算される。メモリ制御回路SDCONが受け付けることのできる最大データ転送サイズが32ByteでSDRAMのデータバス幅が4Byteの場合、Bstmaxは8(=32Byte/4Byte)となる。
次に、メモリ制御装置SL0のリクエストバッファreq0及びレスポンスバッファres0の各バッファが全て空き状態で、アクセス要求を待っている場合の動作を説明する。
メモリ制御装置SL0が要求を待っている間は、制御信号statを通じて、現時点でアクセス要求を受け付けた場合の転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextと、現在のリクエストバッファの中で、空いているリクエストバッファの数、つまり空きバッファ数を送信する。本例の場合、全てのバッファreq0からreq3の全てが、空いているリクエストバッファなので、空きバッファ数が4となる。
転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextレイテンシは計算回路calcで計算される。計算方法を以下に示す。転送可能リードレイテンシLaRNextは読み出し時のレイテンシLacRdと、読み出しサイクルレイテンシRcycと、実行待ちレイテンシpreLaとの総和となる。また、転送可能ライトレイテンシLaWNextレイテンシは、書き込み時のレイテンシLacWtと、書き込みサイクルレイテンシWcycと、実行待ちレイテンシpreLaとの総和となる。
実行待ちレイテンシpreLaは、現アクセス要求を受け取る前に、すでに受け取ってはいるがバッファrq0からrq3に保持されて、実行待ち状態にある要求に対するレイテンシの総和である。したがって、全てのバッファrq0からrq3にアクセス要求が保持されていないので、実行待ちレイテンシpreLaは0となる。
次に、メモリ制御装置SL0がロード命令で16Byteのアクセス要求を受け取った場合の動作を説明する。
メモリ制御回路SDCONのリクエストバッファreq0へ、リード命令、データ転送サイズ(16Byte)、転送元アドレスが保持され、アクセス要求の受け取りが完了する。受け取った直後に、レイテンシ計算回路calcは、実際にデータが要求を発行したマスタへ到達する実レイテンシLaAc及び空きリクエストバッファ数Vreqを計算する。さらに、次のアクセス要求に備えて、転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextレイテンシを計算する。その後、空きリクエストバッファ数Vreqは、1つ減り、3(=4−1)となり、信号statを通じてアクセス調停装置ARBへ転送され、実レイテンシLaAcは、信号lat4を通じてアクセス調停装置ARBへ転送され、転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextレイテンシは信号statを通じてアクセス調停装置ARBへ転送される。
次に実レイテンシLaAcの計算方法を以下に示す。
リード命令の場合、実レイテンシLaAcは、読み出し時のレイテンシLacRdと、実行待ちレイテンシpreLaの総和となり、ストア命令の場合は、書き込み時のレイテンシLacWtと、実行待ちレイテンシpreLaの総和となる。この時現アクセス要求が受け取られるまでに、バッファreq0からreq3には、実行待ちのアクセス要求が保持されていないため、実行待ちレイテンシpreLaは0である。実レイテンシLaAcを計算した後、実行待ちレイテンシpreLaを更新する。以下に新しく実行待ちレイテンシpreLaを計算し、更新する動作を示す。
レイテンシ計算回路calcは、次のアクセス要求を受け取った際の実レイテンシLaAcを計算する目的と、転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextレイテンシを計算する目的で、新しく実行待ちレイテンシpreLaを計算し、更新する。新しい実行待ちレイテンシpreLaは読み出し時のレイテンシLacRdと、実サイクルレイテンシRcyAcの総和となる。
次に、転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextレイテンシの計算方法を以下に示す。
転送可能リードレイテンシLaRNextは読み出し時のレイテンシLacRdと、読み出しサイクルレイテンシRcycと、更新された実行待ちレイテンシpreLaとの総和となる。
また、転送可能ライトレイテンシLaWNextレイテンシは、書き込み時のレイテンシLacWtと、書き込みサイクルレイテンシWcycと、更新された実行待ちレイテンシpreLaとの総和となる。
コマンド発生回路comは、リクエストバッファreq0へ入力した、リード命令、データ転送サイズ(16Byte)及びアドレスの情報に基づいて、図2に示す様に、制御信号cnt5より命令としてバンクアクテイブ命令AC、読み出し命令RD、プリチャージ命令PREを、アドレスとして、バンクアドレスBK0、ロウアドレスR0、カラムアドレスC0を出力し、メモリM0及びM1から入出力データバスmbusを通じてデータを16バイトのデータを読み出す。
読み出されたデータは、コマンド発生回路comを介し、レスポンスバッファrs0へ転送され、さらにリードデータバスtrbusを通じてアクセス調停装置ARBへ転送される。
以上、リード命令を受け取った場合の動作について説明したが、ライト命令を受け取った場合は、同時に、書き込みデータも受け取る。コマンド発生回路comは、図3に示されるように、制御信号cnt5より命令としてバンクアクテイブ命令AC、書き込み命令WT、プリチャージ命令PREを、アドレスとして、バンクアドレスBK0、ロウアドレスR0、カラムアドレスC0を出力し、メモリ装置M0へ入出力データバスmbusを通じて16バイトのデータを書き込む。また、レイテンシ計算回路calcは、リード命令を受け取った場合の動作と同様の動作となる。
図8には、上記メモリ制御回路SDCONが計算する上述のレイテンシを、アクセス調停装置へ通達する動作説明のためのフローチャートが示される。
STEP1は、メモリ制御装置SL0がアクセス要求を待っている状態である。
STEP7では、バッファreq0からreq3に保持されているアクセス要求の実行が完了した後、バッファreq0からreq3に空き状態が新たに生じたかをチェックする。バッファreq0からreq3の空き状態が新たに生じた場合、STEP8へ進み、その空き状態が生じていない場合は、STEP9へ進む。
STEP8では、実行待ちレイテンシpreLaを計算し、更新する。STEP8が終了するとSTEP9へ進む。
STEP9では、最新の実行待ちレイテンシpreLaを利用し、転送可能リードレイテンシLaRNext及び転送可能ライトレイテンシLaWNextを計算する。STEP9が終了するとSTEP10へ進む。
STEP10では転送可能リードレイテンシLaRNext及び転送可能ライトレイテンシLaWNextを出力する。
STEP2では、メモリ制御装置SL0へアクセス要求が生じた状態である。STEP3では、アクセス要求を受け取ることができるかをチェックする。要求を受け取ることができればSTEP4へ進み、受け取ることができない場合はSTEP7へ進む。STEP4では、実レイテンシLaAcを計算し、STEP5では、実行待ちレイテンシpreLaを計算し、更新する。STEP5が終了するとSTEP6へ進む。STEP6では計算した実レイテンシLaAcを出力する。
図9には、上記メモリ制御装置SL0が行う空きバッファ数を通達する動作のフローチャートが示される。
STEP1はメモリ制御回路SDCONがアクセス要求を待っている状態である。STEP2ではメモリ制御回路SDCONへアクセス要求が生じた状態である。
STEP3では、アクセス要求を受け取ることができるかをチェックする。アクセス要求を受け取ることができればSTEP4へ進み、受け取ることができない場合はSTEP6へ進む。STEP4では、空きトバッファ数を1つ減算し、STEP5では空きバッファ数を出力する。
STEP6では、バッファrq0からrq3に保持されていたアクセス要求が実行され、完了し、バッファrq0からrq3に新たに空き状態が生じたかをチェックする。空き状態が生じていれば、STEP7へ進み、空き状態が生じていなければ、STEP5へ進む。
STEP7では、空きリクエストバッファ数Vreqを1つ加算し、STEP5では空きバッファ数を出力する。
図10には、本例におけるメモリ制御回路SDCONのレジスタ回路reg及びレイテンシレジスタ回路Lregへのプログラム手順を示すフローチャートが示される。
STEP1は、メモリ制御回路SDCONに電源が投入された状態である。電源投入直後、STEP2へ進み、STEP2では、マイクロコンピュータMS0により、レジスタ回路regには、SDRAMを動作させるための、命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl,Tpre)と、キャスレイテンシCLと、SDRAMの入出力バスmbusのバス幅が、例えば4Byteに設定される(図2及び図3参照)。次のSTEP3でレイテンシ計算回路calcは、レジスタ回路regに上記命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl,Tpre)と、キャスレイテンシCLとを用い、読み出し時のレイテンシLacRdを計算する。次のSTEP4で書き込み時のレイテンシLacWtを計算する。
次のSTEP5で読み出しサイクルレイテンシRcycを計算し、次のSTEP6で書き込みサイクルレイテンシWcycを計算する。最後のSTEP7で、読み出し時のレイテンシLacRd、書き込み時のレイテンシLacWt、読み出しサイクルレイテンシRcyc、書き込みサイクルレイテンシWcycを、レイテンシレジスタ回路Lregへ設定する。
図11には、図8に示されるフローチャートにおけるSTEP4とSTEP5の処理の詳細が示される。
STEP4では、STEP41と、STEP42及びSTEP43の処理が行われる。STEP5では、STEP51と、STEP52と、STEP53と、STEP54と、STEP55と、STEP56及びSTEP57の処理が行われる。
STEP3では、アクセス要求を受け取ることができるかをチェックする。要求を受け取ることができればSTEP41へ進む。
STEP41では、受け取ったアクセス要求がリード命令か、ライト命令かをチェックする。リード命令であれば、STEP42に進み、ライト命令であればSTEP43に進む。
STEP42では、読み出し時のレイテンシLacRdと実行待ちレイテンシpreLaを加算し、実レイテンシLaACを求める。その後、STEP51へ進む。STEP51では、リードサイクルレイテンシRcyACを計算する。その後、STEP52へ進む。STEP52では、リードサイクルレイテンシRcyACとサイクル時間Trcの比較を行う。リードサイクルレイテンシRcyACがサイクル時間Trc以上であればSTEP53へ進み、小さければSTEP56へ進む。
STEP53では、リードサイクルレイテンシRcyACに、現在の実行待ちレイテンシpreLaを加算して、新たな実行待ちレイテンシpreLaを求める。STEP56では、サイクル時間Trcに、現在の実行待ちレイテンシpreLaを加算して、新たな実行待ちレイテンシpreLaを求める。
STEP43では読み出し時のレイテンシLacWtと実行待ちレイテンシpreLaを加算し、実レイテンシLaACを求める。その後、STEP54へ進む。STEP54では、ライトサイクルレイテンシWcyACを計算する。その後、STEP55へ進む。STEP55では、ライトサイクルレイテンシWcyACとサイクル時間Trcの比較を行う。ライトサイクルレイテンシWcyACがサイクル時間Trc以上であればSTEP57へ進み、小さければSTEP56へ進む。
STEP57では、ライトサイクルレイテンシWcyACに、現在の実行待ちレイテンシpreLaを加算して、新たな実行待ちレイテンシpreLaを求める。STEP56では、サイクル時間Trcに、現在の実行待ちレイテンシpreLaを加算して、新たな実行待ちレイテンシpreLaを求める。
図12には、図8に示されるフローチャートのSTEP8とSTEP9との処理の詳細が示される。
STEP8では、STEP81と、STEP82と、STEP83と、STEP84と、STEP85と、STEP86と、STEP87及びSTEP88の処理を行う。STEP9では、STEP91及びSTEP92の処理を行う。
STEP7では、バッファreq0からreq3に保持されているアクセス要求が実行され、完了し、バッファreq0からreq3に空き状態が新たに生じたかをチェックする。バッファreq0からreq3の空き状態が新たに生じた場合、STEP81へ進み、その空き状態が生じていない場合は、STEP91へ進む。
STEP81では、受け取ったアクセス要求がリード命令かライト命令かをチェックする。リード命令であれば、STEP82へ進み、ライト命令であればSTEP86へ進む。
次のSTEP82では、リードサイクルレイテンシRcyACを計算する。次のSTEP83では、リードサイクルレイテンシRcyACとサイクル時間Trcの比較を行う。リードサイクルレイテンシRcyACがサイクル時間Trc以上であればSTEP84へ進み、小さければSTEP85へ進む。
STEP84では、現在の実行待ちレイテンシpreLaからリードサイクルレイテンシRcyACを減算して、新たな実行待ちレイテンシpreLaを計算する。STEP85では、現在の実行待ちレイテンシpreLaからサイクルレイテンシTrcを減算して、新たな実行待ちレイテンシpreLaを計算する。
次のSTEP86では、ライトサイクルレイテンシWcyACを計算する。次のSTEP86では、ライトサイクルレイテンシWcyACとサイクル時間Trcの比較を行う。ライトサイクルレイテンシWcyACがサイクル時間Trc以上であればSTEP88へ進み、小さければSTEP89へ進む。
STEP88では現在の実行待ちレイテンシpreLaからライトサイクルレイテンシWcyACを減算して、新たな実行待ちレイテンシpreLaを計算する。STEP89では、現在の実行待ちレイテンシpreLaからサイクルレイテンシTrcを減算して、新たな実行待ちレイテンシpreLaを計算する。
STEP89が完了すると、次はSTEP91へ進む。STEP91では、転送可能リードレイテンシLaRNextを計算する。STEP91が完了するとSTEP92へ進む。STEP92では、転送可能ライトレイテンシLaWNextを計算する。
STEP92が完了するとSTEP10へ進む。STEP10では、計算した転送可能リードレイテンシLaRNextと、転送可能ライトレイテンシLaWNextを出力する。
上記実施の形態1によれば、以下の作用効果を得ることができる。
(1)マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2及びデータ出力装置MS3は、常にデータの到達時間や、リクエストバッファreq0の状態を知ることができるため、データの到達時間までに、次の処理をどこまで前もって行うかを柔軟に調節することができ、マスタ内の処理を効率的に行うことができる。
(2)マスタ側からの要求リードレイテンシに対して、その要求が満たされるかどうかをチェックし、さらに、要求リードレイテンシと可能リードレイテンシの差が最も小さなアクセス要求に対し、データ転送許可を与えることで、要求リードレイテンシを満たしながら、緊急度の高い要求を優先的に処理することができる。このため、必要なデータを必要な時間までに供給できシステム全体を高速にかつ円滑に動作させることが可能となる。
<実施の形態2>
図13には、上記メモリ制御装置SL0の別の構成例であるメモリ制御装置SL1が示される。尚、上記制御装置以外については上記実施の形態1と同一とされる。
図13に示されるメモリ制御装置SL1は、リクエストバッファreq01と、レスポンスバッファreq01と、レジスタ回路sreg1と、メモリ制御回路SDCON1で構成される。
リクエストバッファreq01は、バッファrq01、rq11、rq21、rq31とフラグ回路rf0,rf1,rf2,rf3から構成される。レスポンスバッファres01は、バッファrs01、rs11、rs21、rs31とフラグ回路sf0、sf1、sf2、sf3から構成される。レジスタ回路sreg1はレジスタ回路reg1とレイテンシレジスタ回路Lreg1とレジスタ回路reg2から構成される。メモリ制御回路SDCON1はレイテンシ計算回路calc1と、コマンド生成回路com1で構成されている。
電源投入直後、特に限定しないが、マイクロコンピュータMS0により、レジスタ回路sreg1が初期設定される。この初期設定では、先ず、信号cnt41を通じてライト命令が入力され、データバスtwbus1を通じて、バッファrq01、rq11、rq21、rq31及びバッファrs01、rs11、rs21、rs31のそれぞれが、どのマスタに利用されるかを示すバッファ利用情報が入力され、レジスタ回路reg2へ設定される。
つまり、バッファに対してバスマスタの利用権が設定され、この利用権が設定されたバッファに対しては、他のバスマスタは使用することができない。次に、レジスタ回路reg2のバッファ利用情報は、フラグ回路rf0,rf1,rf2,rf3及びフラグ回路rs0,rfs1,rfs2,rfs3へ設定される。
さらに、信号cnt41を通じてライト命令が入力され、データバスtwbus1を通じて、図2で示したSDRAMを動作させるための、命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl)と、キャスレイテンシCLと、SDRAMの入出力バスmbus1のバス幅に関するデータが入力され、レジスタ回路reg1へ設定される。
次に、レイテンシ計算回路calc1は、上記命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl)と、キャスレイテンシCLとを用い、読み出し時のレイテンシLacRdと、書き込み時のレイテンシLacWtと、読み出しサイクルレイテンシRcycと、書き込みサイクルレイテンシWcycを計算しレイテンシレジスタ回路Lregへ設定する。
特に制限されないが、レジスタ回路reg2のバッファ利用情報によって、フラグ回路rf0及びsf0にはデータ入力回路MS2のみが利用できるような情報が設定され、フラグ回路rf1及びsf1にはデータ出力回路MS3のみが利用できるような情報が設定され、フラグ回路rf2及びsf2には情報処理MS0のみが利用できるような情報が設定され、フラグ回路rf3及びsf3には画像処理装置MS1が利用できるような情報が設定された場合に、アクセス要求が生じた際の動作について説明する。
バッファrq01はデータ入力回路MS2からのアクセス要求のみを受け付け、バッファrs01はデータ入力回路からのアクセス要求に対するレスポンスのみを処理する。バッファrq11はデータ出力回路MS3からのアクセス要求のみを受け付け、バッファrs11はデータ出力回路からのアクセス要求に対するレスポンスのみを処理する。バッファrq21はマイクロコンピュータMS0からのアクセス要求のみを受け付け、バッファrs21はマイクロコンピュータMS0及びデータからのアクセス要求に対するレスポンスのみを処理する。
rq31は画像処理装置MS1からのアクセス要求のみを受け付け、バッファrs31は画像処理装置MS1からのアクセス要求に対するレスポンスのみを処理する。
レイテンシ計算回路calc1及びコマンド生成回路com1の動作は、それぞれ実施の形態1におけるレイテンシ計算回路calc及びコマンド生成回路comと同一とされる。
制御信号cnt41より、各マスタからのアクセス要求が入力される。書き込みデータはデータバスtwbus1から入力され、読み出しデータはデータバスtrbus1から出力される。制御信号stat1からは、空きバッファ数及び転送可能レイテンシ(転送可能リードレイテンシ及び転送可能ライトレイテンシ)が出力され、制御信号lat41からは、実レイテンシ(実リードレイテンシ、実ライトレイテンシ)が出力される。
制御信号cnt41よりメモリ装置MEM0を制御する命令が出力される。データバスmbus1を通じて、読み出しデータはメモリ装置MEM0からメモリ制御装置SL1へ転送され、書き込みデータは、メモリ制御装置SL1からメモリ装置MEM0へ転送される。
次に、メモリ制御装置SL1のリクエストバッファreq01内のバッファrq011とrq11、及びレスポンスバッファres01内のバッファrs01とrs11が空き状態で、アクセス要求を待っている場合の動作を説明する。
メモリ制御装置SL1がアクセス要求を待っている間は、状態信号stat1を通じて、現時点でアクセス要求を受け付けた場合の転送可能レイテンシと、現在のリクエストバッファの中で、空いているバッファの数、つまり空きリバッファ数をアクセス調停装置ARBへ送信する。
本例の場合、バッファreq01が空き状態であり、バッファreq01はデータ入力回路MS2のみに利用されるため、空きバッファ数が1であることを、アクセス調停装置ARBを介してデータ入力回路MS2へ伝える。
また、バッファreq11も空き状態であり、バッファrq1はデータ出力回路MS3のみに利用されるため、空きリクエストバッファ数が1であることを、アクセス調停装置ARBを介してデータ出力回路MS3へ伝える。
バッファreq21及びreq31には要求が保持されている占有状態であり、バッファreq21とreq31は、それぞれマイクロコンピュータMS0及び画像処理装置MS1にのみ利用されるため、空きバッファ数が0であることを、アクセス調停装置ARBを介してマイクロコンピュータMS0及び画像処理装置MS1へ伝える。
マイクロコンピュータMS0、画像処理装置MS1、データ入力回路MS2及びデータ出力回路MS3から、アクセス要求があった場合、アクセス調停装置はマスタが利用できるリクエストバッファに空きがあるかをチェックし、空きがあればアクセス要求をメモリ制御回路へ転送する。
マイクロコンピュータMS0及び画像処理装置MS1からのアクセス要求に対して空いているリクエストバッファが無いため、これらマスタからの要求はアクセス調停装置ARBからメモリ制御装置SL1へは転送されない。
データ入力回路MS2及び出力回路MS3からのアクセス要求に対する空いているリクエストバッファは、それぞれ一つづつ存在するので、アクセス調停装置ARBは、これらマスタからのアクセス要求をメモリ制御装置SL1へ転送する。
受け付けたアクセス要求はレイテンシ計算回路calc1及びメモリ制御回路ctl1によって実施の形態1と同様に処理され、実レイテンシは信号lat41から、空バッファ数及び転送可能レイテンシは状態信号stat1から出力される。
以上説明した実施の形態2によれば、マスタ毎に、リクエストバッファreq01を構成するバッファrq01、rq11、rq21、rq31及び、レスポンスバッファres01を構成するバッファrs01、rs11、rs21、rs31の利用権を設定できるので、他のマスタからの要求によってリクエストバッファreq01及びレスポンスバッファres01が占有されることが無いため、アクセス競合が発生せず、必要なデータを必要な時間までに供給できシステム全体を高速にかつ円滑に動作させることが可能となる。
さらに、メモリをアクセスするマスタは、常に、自らのアクセス要求に対するデータの転送時間を知ることができるため、次の処理を効率良く前もって実行することができ、システム全体の高速処理が可能となる。
<実施の形態3>
図14には、上記メモリ制御回路SL1の別の構成例であるメモリ制御回路SL2が示される。尚、メモリ制御回路以外については上記実施の形態1,2の場合と同一とされる。
図14に示されるメモリ制御装置SL2は、リクエストバッファreq02と、レスポンスバッファreq12と、レジスタ回路sreg2と、計算装置calc2と、メモリ制御回路SDCON2で構成される。
リクエストバッファreq02は、バッファra、rq02、rq12、rq22、rq32と、フラグ回路ro0,ro1,ro2,ro3と、フラグ回路rv0,rv1,rv2,rv3を含む。レスポンスバッファres02は、バッファsa、rs02、rs12、rs22、rs32と、フラグ回路so0,so1,so2,so3と、フラグ回路sv0、sv1、sv2、sv3から構成される。
フラグ回路ro0,ro1,ro2,ro3は、図13におけるフラグ回路rf0〜rf3に対応する。フラグ回路so0〜s03は図13におけるフラグ回路sf0〜sf3に対応する。レイテンシ計算回路calc2及びコマンド生成回路com2は、それぞれ実施の形態1におけるレイテンシ計算回路calc及びコマンド生成回路comと同一機能を有する。
フラグ回路ro0〜ro3、及びフラグ回路so0〜so3へのフラグ設定は、電源投入直後においてマイクロコンピュータMS0が所定のブートプログラムを実行することによって可能とされる。このフラグ回路ro0〜ro3、及びフラグ回路so0〜so3においてフラグが設定されている場合には、換言すれば、バスマスタによる利用権が設定されている場合には、それに対応するバッファはバスマスタによってよって占有される。また、フラグ回路ro0〜ro3、及びフラグ回路so0〜so3においてフラグが設定されていない場合には、それに対応するバッファについて、以下の予約が可能となる。
バッファra及びsaは制御信号cnt42から入力されるバッファ予約命令とバッファ予約解除命令を保持する。
フラグ回路rv0,rv1,rv2,rv3は、それぞれ、バッファrq02、rq12、rq22、rq32が、予約状態か否かを示す信号を保持している。
また、フラグ回路sv0,sv1,sv2,sv3は、それぞれ、バッファrs02、rs12、rs22、rs32が予約状態か否かを示す信号を保持する。
レジスタ回路sreg2はレジスタ回路reg1とレイテンシレジスタ回路Lreg1 回路calc2と、コマンド生成回路ctl2で構成されている。
レジスタ回路reg1と、レイテンシレジスタ回路Lreg1と、メモリ制御回路SDCON2はレイテンシ計算回路calc2と、コマンド生成回路com2は、実施の形態1と同様の動作を行う。
信号cnt52より、各マスタからのアクセス要求が入力される。書き込みデータはデータバスtwbus2から入力され、読み出しデータはデータバスtrbus2から出力される。
状態信号stat2からは、空きバッファ数及び転送可能レイテンシ(転送可能リードレイテンシ及び転送可能ライトレイテンシ)が出力され、レイテンシ信号lat42からは、実レイテンシ(実リードレイテンシ、実ライトレイテンシ)が出力される。
制御信号cnt52よりメモリ装置MEM0を制御する命令が出力される。入出力データバスmbus2を通じて、読み出しデータは、メモリ装置MEM0からメモリ制御装置SL2へ転送され、書き込みデータは、メモリ制御装置SL2からメモリ装置MEM0へ転送される。
電源投入直後、マイクロコンピュータMS0がブートプログラムを実行することによって、制御信号cnt42を通じてライト命令を含んだアクセス要求が入力され、データバスtwbus2を通じて、マスタ番号mnと、マスタ番号mnに対応する最大予約バッファ数が入力されるレジスタ回路reg3へ設定される。
マスタ番号及び最大予約バッファ数によって、どのマスタが、どのぐらいの数のバッファを予約可能かということがわかる。
次に、信号cnt42を通じてストア命令が入力され、データバスtwbus2を通じて、図2及び図3に示されるSDRAMを動作させるための命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl,Tpre)と、キャスレイテンシCLと、SDRAMの入出力バスmbus2のバス幅に関するデータが入力され、レジスタ回路reg1へ設定される。
次に、レイテンシ計算回路calc2は、上記命令と命令の間の最小時間(Trc,Trcd,Trp,Trwl,CL)を用い、読み出し時のレイテンシLacRdと、書き込み時のレイテンシLacWtと、読み出しサイクルレイテンシRcycと、書き込みサイクルレイテンシWcycを計算しレイテンシレジスタ回路Lreg1へ設定する。
次に、特に制限されないがバッファrq02、rq12、rq22が、画像処理装置MS1の要求を保持しており、バッファrq32が空き状態で、バッファrs20、rs12、rs22が、画像処理装置MS1のアクセス要求に対する読み出しデータを保持しており、バッファrs32が空き状態である場合、データ出力装置MS3からアクセス要求が生じた場合の動作を説明する。
データ出力装置MS3は、制御信号cnt3よりバファ予約要求と、マスタ識別番号midの値3をアクセス調停装置ARBへ送信する。アクセス調停装置ARBは、cnt42を通じてバッファ予約要求と及びマスタ識別番号midの値3をメモリ制御装置SL2へ送信する。
入力されたバッファ予約要求と及びマスタ識別番号midの値3は、バッファra及びsaへ保持される。
次に、バッファraは、レジスタ回路reg3に保持されているマスタ番号mnの中に、マスタ識別番号mid値3があるかどうかチェックする。
識別番号mid値3と一致するマスタ番号mnが存在すれば、バッファrv0からrv3内の情報を検索し、バッファrq02からrq32の中で空いているバッファを探す。
空き状態のバッファrq32であれば、バッファrq32に対して予約を行う。その際、バッファrv3には識別番号mid値3が保持され、バッファrq32がデータ出力装置MS3によってのみ利用可能になる。
また、バッファrq02からrq32の中で空き状態のバッファが存在しなければ、最初に空き状態となったバッファ対し予約を行う。バッファrq32が最初に空き状態となった場合、バッファrq32に対して予約を行う。その際、バッファrv3には識別番号mid値3が保持され、バッファrq32がデータ出力装置MS3によってのみ利用可能になる。
次に、バッファsaは、レジスタ回路reg3に保持されているマスタ番号mnの中に、マスタ識別番号mid値3があるかどうかチェックする。もし、識別番号mid値3と一致するマスタ番号mnが存在すれば、バッファsv0からsv3内の情報を検索し、バッファrs02からrs32の中で空いているバッファを探す。
空き状態のバッファrs32であれば、バッファrs32に対して予約を行う。その際、バッファsv3には識別番号mid値3が保持され、バッファrs32がデータ出力装置MS3によってのみ利用可能になる。
また、バッファrs02からrs32の中で空き状態のバッファが存在しなければ、最初に空き状態となったバッファ対し予約を行う。バッファrs32が最初に空き状態となった場合、バッファrs32に対して予約を行う。その際、バッファsv3には識別番号mid値3が保持され、バッファrs32がデータ出力装置MS3によってのみ利用可能になる。
バッファの予約が完了すると、信号stat2より、予約が完了したこと知らせる予約完了信号及び識別番号mid値3をアクセス調停装置ARBへ送信される。その後、データ出力回路MS3から、リード命令を含んだアクセス要求が生じた場合、バッファrq32及びrs32はデータ出力回路MS3にのみ利用可能な状態となっているので、データ出力回路MS3の要求がバッファrq32へエントリーされる。その後、レイテンシ計算回路calc2及びメモリ制御回路ctl2にて処理され、メモリ装置M0よりデータが読み出されバッファrs32に転送される。次にバッファrs32はリードデータバスtrbus2からデータを、アクセス調停装置ARBへ出力する。また、識別番号mid値3は、信号stat2を通じてアクセス調停装置ARBへ送信される。
アクセス調停装置ARBは、データバスrbusを通じてデータを、データ出力装置MS3へ出力する。また、信号rstatを通じて識別番号mid値3をデータ出力装置MS3へ送信する。
次に、バッファの予約解除について説明する。
データ出力装置MS3は、制御信号cnt3よりバッファ予約解除要求と、マスタ識別番号midの値3をアクセス調停装置ARBへ送信する。アクセス調停装置ARBは、cnt42を通じてバッファ予約解除要求と及びマスタ識別番号midの値3をメモリ制御装置SL2へ送信する。
入力されたバッファ予約解除要求と及びマスタ識別番号midの値3は、バッファra及びsaへ保持される。
次に、バッファraは、レジスタ回路reg3に保持されているマスタ番号mnの中に、マスタ識別番号mid値3があるかどうかチェックする。もし、識別番号mid値3と一致するマスタ番号mnが存在すれば、バッファrv0からrv3内の情報を検索し、バッファrq02からrq32の中でデータ出力装置MS3が予約しているバッファを探す。本例では、予約しているバッファrq32及びrs32に対して予約解除を行う。予約解除後は、バッファrq32及びrs32は、どのマスタにも利用可能となる。
バッファの予約解除が完了すると、状態信号stat2より、予約解除が完了したこと知らせる予約解除完了信号及び識別番号mid値3をアクセス調停装置ARBへ送信される。さらに、アクセス調停装置ARBは信号rstatを通じて、データ出力装置MS3へ、予約解除完了信号及び識別番号mid値3を送信する。これによって、データ出力装置MS3は、予約解除が完了したことを知ることができる。また、レジスタreg3へ保持されているマスタ番号mnとマスタ識別番号mid値3とが一致するが存在しなければ、状態信号stat2を通じて、マスタ番号不一致情報と、マスタ識別番号mid値3とが、アクセス調停装置ARBへ送信される。さらに、アクセス調停装置ARBは信号rstatを通じて、データ出力装置MS3へ、マスタ番号不一致情報及び識別番号mid値3を送信する。これによって、データ出力装置MS3は、予約が不可能であることを知ることができる。
以上説明した実施の形態によれば、マスタ毎に、リクエストバッファreq01を構成するバッファrq01、rq11、rq21、rq31及び、レスポンスバッファres01を構成するバッファrs01、rs11、rs21、rs31を必要な時間帯に必要な数を予約し、利用権を設定できるので、他のマスタからの要求によってリクエストバッファreq01及びレスポンスバッファres01が占有されることが無いため、必要な時間帯のみにアクセス競合を発生させず、必要なデータを必要な時間までに供給できシステム全体を高速にかつ円滑に動作させることが可能となる。
また、バッファra、フラグ回路rv0,rv1,rv2,rv3、バッファsa、フラグ回路sv0,sv1,sv2,sv3は、第三者によって書き換え可能とされるのに対してro0,ro1,r02,ro3、so0,so1,so2,so3はブートプログラムが実行された場合にのみ書き換え可能とされる。ブート時の書き込みは第三者にとって不可能とされるため、図14に示される構成によれば、バッファの占有状態を確実に形成することができ、しかも必要に応じて予約対応とすることができる。
<実施の形態4>
図15には、本願を適用した情報処理システムの別の構成例が示される。
図15に示される情報処理システムは、中央演算回路CPUを装備するマイクロコンピュータMS0と、グラフィックス回路を装備するグラフィック処理装置MS6と、データ圧縮/伸張回路MACCを装備する画像処理装置MS1と、データ入力装置MS1と、データ出力装置MS3と、アクセス調停装置ARBと、メモリ制御装置SL2と、撮像装置CCDと、画像表示装置LCDと、メモリ装置MEM0と、内蔵メモリ装置OCRAMとを含んで構成される。そして、この情報処理装置はクロックCLKに同期して動作する。
特に制限されないが、マイクロコンピュータMS0、グラフィック処理装置MS6、画像処理装置MS1、データ入力装置MS2、データ出力装置MS3、アクセス調停装置ARB、メモリ制御装置SL2および内蔵メモリ装置OCRAMは同一基板CHIP4上に形成される。
特に制限されないが、メモリ装置MEM0および内蔵メモリ装置OCRAMはDRAM、SRAM及び不揮発性メモリで構成することが可能である。
マイクロコンピュータMS0と、画像処理装置MS1と、データ入力装置MS1と、データ出力装置MS3と、アクセス調停装置ARBおよび内蔵メモリ装置OCRAMは、実施の形態1で示したそれぞれの装置と同様の動作を行う。
メモリ制御回路SL2には、実施の形態1,2及び3で示したメモリ制御機能を実現できるが、本例では、実施の形態3で示したメモリ制御機能を実現する。
3次元グラフィックス処理では、ジオメトリ処理を行い、その後レンダリング処理を行う。ジオメトリ処理は、特に制限されないが、マイクロコンピュータMS0が行う処理で、3次元図形を表すため、図形の座標計算を行うことである。レンダリング処理は、画像処理装置MS1が行う処理で、画像表示装置LCDへ表示するために、ジオメトリ処理後の3次元図形に、色、明るさ、奥行き、絵柄といった視覚的効果を付け足す処理である。
3次元画像はメモリ装置MEM0へ格納されており、現在の3次元画像を読み出して、マイクロコンピュータMS0がジオメトリ処理を行い、その後、グラフィック処理装置MS6がレンダリング処理を行い、新しい3次元画像を生成し、再度メモリ装置MEM0へ格納する。最後に、生成された3次元画像は、出力装置MS3へ転送され、画像表示装置LCDへ表示される。
このように、3Dグラフィックス処理において、マイクロコンピュータMS0、グラフィック処理装置MS6及び画像出力装置MS3は、メモリ装置MEM0をアクセスする。
このような3次元グラフィックス処理では、ジオメトリ処理、レンダリング処理及び表示同時に処理され、さらに1秒間に30画面分の3Dグラフィックス処理を行う必要がある。
以上説明したように、グラフィックス処理を行う場合においても、本発明を適用することにより、必要なデータを必要な時間までに供給できシステム全体を高速にかつ円滑に動作させることが可能となる。
さらに、メモリをアクセスするバスマスタは、常に、自らのアクセス要求に対するデータの転送時間を知ることができるため、次の処理を効率良く前もって実行することができ、システム全体の高速処理が可能となる。
動画像の録画と、3Dグラフィックス処理を同時に行う場合は、マイクロコンピュータMS0、画像処理装置MS1、グラフィック処理装置MS6、画像入力装置MS2及び画像出力装置MS3の全ての装置がバスマスタとなって、メモリ装置MEM0をアクセスする。
特に制限されないが、マイクロコンピュータMS0は、録画した動画像と3次元グラフィックス画像とが、それぞれで、書き換えられないように、メモリ装置MEM0内での格納領域を決めることができる。
さらに、特に制限されないが、画像出力装置MS3は、マイクロコンピュータMS0の指示によって、表示装置LCDの画面を録画用の画面と3Dグラフィックス用の画面に分割し表示を行う。
以上説明したように、グラフィックス処理と動画像録画を同時に行う場合においても、本発明を適用することにより、必要なデータを必要な時間までに供給できシステム全体を高速にかつ円滑に動作させることが可能となる。さらに、メモリをアクセスするバスマスタは、常に、自らのアクセス要求に対するデータの転送時間を知ることができるため、次の処理を効率良く前もって実行することができ、システム全体の高速処理が可能となる。
<実施の形態5>
図16には、本願にかかる情報処理システムの別の構成例が示され。
図16に示される情報処理システムは、中央演算回路CPU0を装備するマイクロコンピュータMS0と、中央演算回路CPU1を装備する画像処理装置MS1と、データ入力装置MS2と、データ出力装置MS3と、アクセス調停装置ARBと、メモリ制御装置SL0と、撮像装置CCDと、画像表示装置LCDと、メモリ装置MEM0と、で、内蔵メモリ装置OCRAMとを含んで構成される。そして、この情報処理装置はクロックCLKに同期して動作する。
マイクロコンピュータMS0と、画像処理装置MS1と、データ入力装置MS2と、データ出力装置MS3と、アクセス調停装置ARBと、内蔵メモリ装置OCRAMは、実施の形態1で示したそれぞれの装置と同様の動作を行う。
メモリ制御装置SL0には、実施の形態1,2及び3で示したメモリ制御方法を実現できるが、本例では、実施の形態1で示したメモリ制御方法を実現する。
特に制限されないが、マイクロコンピュータMS0、画像処理装置MS1、データ入力装置MS2、データ出力装置MS3、アクセス調停装置ARB、メモリ制御装置SL0および内蔵メモリ装置OCRAMは同一基板上に形成され、情報処理装置CHIP5を形作ることも可能である。
特に制限されないが、メモリ装置MEM0および内蔵メモリ装置OCRAMはDRAM、SRAMなどの揮発性メモリ及び不揮発性メモリで構成することも可能である。
マイクロコンピュータMS0は、ハードウエアで実現していたデータ圧縮/伸張処理をソフトウエアで行うことができ、画像処理装置MS1は、ハードウエアで実現していたグラフィックス処理をソフトウエアで行うことができる。
したがって、中央演算回路CPUを装備する情報処理装置を複数利用した場合においても、本発明を適用することにより、必要なデータを必要な時間までに供給できシステム全体を高速にかつ円滑に動作させることが可能となる。
さらにソフトウエアにて処理を行うことで、さまざまな圧縮/伸張の規格にすばやく対応することができる。さらに、新たな機能を容易に拡張できる。
メモリをアクセスする複数のバスマスタからなる情報処理ユニットと、アクセス調停装置とメモリ制御装置とからなるメモリ制御ユニットとを別の半導体チップ上に形成してもよいが、両者を単一の半導体チップ上に形成してもよい。その場合、単一の半導体チップ上に形成された情報処理装置は、データバスrbus及びwbusを別々の半導体チップで形成するよりも幅の広いバスとすることが可能となる上に、両者の距離が短縮されるために、両者間での高速データ転送が可能となる。
更に、メモリ制御ユニットのみを他者に設計させ、或いは既に設計されている設計資産として情報処理ユニットと同一の半導体チップ上に形成してワンチップの情報処理装置とすることも可能である。
この場合、メモリ制御装置の回路等の構成を記録媒体に記録し、情報処理部の設計者或いは情報処理装置の設計者に提供することの可能である。
また、自らが半導体装置の製造を行う場合、他者が提供する情報処理ユニットに、本発明のメモリ制御ユニット或いはメモリ制御ユニットとメモリ装置とを組み合わせ、半導体装置を提供して他者に供給することも可能である。
他方、メモリ制御ユニットをメモリ内に設けることも可能である。メモリ制御ユニットを情報処理ユニット或いはメモリモジュール内に形成することで、情報処理システムの製造者の負荷を低減することが可能となり、情報処理システムの小型化も可能となる。
また、半導体装置の製造プロセスの進歩にあわせ、メモリの一部或いは全部を情報処理装置と同一の半導体チップ上に形成することも可能である。つまりワンチップの情報処理システムの実現であり、システムの一層の小型化が可能となる。
また、図17にはパッケージ例が示され、図18には、図17における線分A−A’線切断断面が示される。尚、17においては、図18におけるカバーCOVERが省略されている。図17及び図18に示されるように、単一チップにより形成された情報処理装置S−MSと、それぞれ単一チップにより形成されたメモリ装置S−ME1,S−ME2とを含むモジュールとを1つのパッケージで封止することができる。この構成は、マルチチップモジュール或いはマルチチップパッケージなどとして知られている。ここで、上記情報処理装置S−MSは、図1における情報処理装置CHIP1に対応し、メモリ装置S−ME1は、図1におけるメモリMEMOに対応する。
図19には、本発明にかかる情報処理装置の別の構成例が示される。図19に示されるのが、図1に示されるのと大きく相違するのは、メモリ装置MEM0とその動作を制御するメモリ制御装置SL0とが一つのメモリチップCHIP7に含まれている点である。このようにしても上記の例と同様の作用効果を奏する。
以上、複数のバスマスタからのアクセス要求に対して、必要なデータを必要な時間までにバスマスタへ供給できる情報処理システムの実施形態を説明してきたが、本発明は上記実施形態に限定されるわけでは無く、本願発明の思想を逸脱しない範囲で、他にも様々な実施形態を採用することが可能である。
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である画像処理を可能とするシステムに適用した場合について説明したが、本発明はそれに限定されるものではなく、情報処理を可能とするシステム広く適用することができる。
本発明は、複数のバスマスタを含むことを条件に適用することができる。