(57)【要約】【課題】  外部入出力装置がアクセスした共有メモリのアドレス情報をマイクロプロセッサが取得することが出来るようにする。【解決手段】  少なくともアドレス生成部６と、共有メモリ制御部５と、共有メモリ９を備え、外部入出力装置２が共有メモリ９にアクセスする際に、マイクロプロセッサ３によりアドレス生成部内部のレジスタ１０にアドレスの初期値を設定することにより外部入出力装置２が共有メモリ９へのアクセスを開始し、アクセスが発生する毎に共有メモリ制御部５からアドレス生成部６に出力される信号に基づいてレジスタ１０の内容が歩進するように構成された共有メモリ制御装置において、アドレス生成部内部６のレジスタ１０に記憶されている共有メモリ９のアドレスデータをマイクロプロセッサ３から読み出すことを可能とする手段を備えるように構成した。【選択図】  図１
2006059229.tif 000002
【特許請求の範囲】
【請求項１】
少なくともアドレス生成部と、共有メモリ制御部と、共有メモリを備え、外部入出力装置が前記共有メモリにアクセスする際に、マイクロプロセッサにより前記アドレス生成部内部のレジスタにアドレスの初期値を設定することにより前記外部入出力装置が共有メモリへのアクセスを開始し、該アクセスが発生する毎に前記共有メモリ制御部から前記アドレス生成部に出力される信号に基づいて前記レジスタの内容が歩進するように構成された共有メモリ制御装置において、
前記アドレス生成部内部の前記レジスタに記憶されている前記共有メモリのアドレスデータを前記マイクロプロセッサから読み出すことを可能とする手段を備えたことを特徴とする共有メモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、共有メモリ制御装置、特に、共有メモリを用いたマイクロプロセッサと外部入出力装置との間のデータ送受信においてメモリアクセスアドレスを管理する共有メモリ制御装置に関する。
【背景技術】
【０００２】
近年、半導体プロセスの微細化に伴い、従来は複数のＬＳＩで構成していたシステムを一つのＬＳＩに集積するシステムＬＳＩが数多く設計されるようになっている。通常、システムＬＳＩには、マイクロプロセッサと外部入出力装置が集積されている。更に、システムＬＳＩに集積されたマイクロプロセッサと外部入出力装置との間のデータ送受信の為に、両者がアクセスする共有メモリもシステムＬＳＩに集積される場合が多い。
【０００３】
マイクロプロセッサと外部入出力装置の両方がアクセス可能な共有メモリ制御装置としては、下記の文献に開示された技術が知られている。
【０００４】
【特許文献１】特開平１０−１４９３１３号公報
【０００５】
この特許文献１に記載された従来技術について図２を用いて説明する。図２の共有メモリ制御装置２１は、外部入出力装置２２と、マイクロプロセッサ２３と、アドレスデコーダ２４と、共有メモリ制御部２５と、アドレス生成部２６と、アドレス生成部２６の内部のアドレスレジスタ３０と、データバッファ２７，２８と、共有メモリ２９とから構成されている。
【０００６】
この共有メモリ制御装置２１の外部入出力装置２２が共有メモリ２９にアクセスする場合、外部入出力装置２２は、共有メモリ制御部２５にＲｅａｄ又はＷｒｉｔｅのアクセスの種類を示す制御信号（ＣＯＮＴ）を出力し、データバッファ２７を介して共有メモリ２９に対してデータ（ＤＡＴＡ）の入出力を行う。
【０００７】
外部入出力装置２１から共有メモリ制御部２５に対して制御信号（ＣＯＮＴ）が出力されると、マイクロプロセッサは２３はアドレスバスを介して共有メモリ２９のメモリアドレスの範囲外となるアドレスデータ（ＡＤＤＲＥＳＳ）をアドレスデコーダ２４及びアドレス生成部２６に出力する。
【０００８】
アドレスデコーダ２４は、アドレスデータ（ＡＤＤＲＥＳＳ）が共有メモリ２９のメモリアドレスの範囲外であることを検知すると、共有メモリ制御部２５に対して外部入出力装置２２からの共有メモリ２９へのアクセスであることを示すセレクト信号（ＳＥＬ）を出力する。共有メモリ制御部２５は、外部入出力装置２２からの共有メモリ２９へのアクセスを示すセレクト信号（ＳＥＬ）を受領すると、アドレス生成部２６にレジスタ３０の初期化を指示する信号（ＩＮＩＴ）を出力する。
【０００９】
アドレス生成部２６は、初期化信号（ＩＮＩＴ）が入力されると、マイクロプロセッサ２３からデータバスを介して入力されるデータ（ＤＡＴＡ）をレジスタ３０の初期値として設定する。このレジスタ３０の値は共有メモリ制御部２５から出力されるクロック信号（ＣＫ）によりインクリメントされ、この値がアドレスデータ（ＡＤＤＲＥＳＳ）として共有メモリ２９に出力される。
【００１０】
一方、マイクロプロセッサ２３が共有メモリ２９にアクセスする場合、アドレスデコーダ２４は、マイクロプロセッサ２３からアドレスバスを介して入力されるアドレス（ＡＤＤＲＥＳＳ）が共有メモリ２９のアドレスの範囲内であることを検知すると、共有メモリ制御部２５にセレクト信号（ＳＥＬ）を出力する。共有メモリ制御部２５は、アドレスデコーダ２４からセレクト信号（ＳＥＬ）が入力されると、このアドレスが有効であることを示すストローブ信号（ＳＴＢ）をアドレス生成部２６に出力する。
【００１１】
アドレス生成部２６は、共有メモリ制御部２５からストローブ信号（ＳＴＢ）が入力されると、このタイミングでマイクロプロセッサ２３からアドレスバスを介して入力されるアドレスデータをレジスタ３０に設定し、その値をアドレスデータ（ＡＤＤＲＥＳＳ）として共有メモリ２９に出力する。
【００１２】
従来の共有メモリ制御装置２１の特徴としては、外部入出力装置２２が共有メモリ２９にアクセスする際にアドレスを生成する必要が無いため、アドレス生成回路やアドレスの配線を削減できること、また、外部入出力装置２２が共有メモリ２９にアクセスする際のアドレスは固定では無く、マイクロプロセッサ２３によりその初期値を自由に設定可能であることをあげることが出来る。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来の共有メモリ制御装置２１においては、マイクロプロセッサ２３は、外部入出力装置２２がアクセスするメモリの初期値データをアドレス生成部２６に出力した後は、外部入出力装置のアクセス状況を把握していないので、現実にアクセスされたアドレス情報を取得することが出来ない。この場合、例えば、外部入出力装置２２が可変長の語数を有する通信パケットを処理するような装置である場合に、外部入出力装置２２が共有メモリ２９に実際に格納した通信パケットの内容をマイクロプロセッサ２３が全て読み取ることが出来ない可能性があるという問題が発生する。
【００１４】
この発明の課題は、外部入出力装置２２がアクセスした共有メモリのアドレス情報をマイクロプロセッサ２３が取得することが出来るようにすることにある。
【課題を解決するための手段】
【００１５】
少なくともアドレス生成部と、共有メモリ制御部と、共有メモリを備え、外部入出力装置が共有メモリにアクセスする際に、マイクロプロセッサによりアドレス生成部内部のレジスタにアドレスの初期値を設定することにより外部入出力装置が共有メモリへのアクセスを開始し、アクセスが発生する毎に共有メモリ制御部からアドレス生成部に出力される信号に基づいてレジスタの内容が歩進するように構成された共有メモリ制御装置において、アドレス生成部内部のレジスタに記憶されている共有メモリのアドレスデータをマイクロプロセッサから読み出すことを可能とする手段を備えている。
【発明の効果】
【００１６】
外部入出力装置がアクセスしたことにより書き込まれたデータ数をマイクロプロセッサが読み取ることが可能となるため、例えば、外部入出力装置が可変長の語調を有する通信パケットを処理するような装置である場合、外部入出力装置が共有メモリに格納した可変語数の通信パケットをマイクロプロセッサにより正しく読み取ることが可能となる。
【００１７】
本発明に係る共有メモリ制御装置によれば、外部入出力装置が、例えば、可変長の語数を有する通信パケットを処理するような装置である場合でも、外部入出力装置が共有メモリに格納したデータ量をマイクロプロセッサが正確に把握することが出来るという効果がある。
【発明を実施するための最良の形態】
【００１８】
以下この発明の実施の形態について、図面を用いて詳細に説明する。
図１は、この発明による共有メモリ制御装置の実施例を示すブロック図であり、この装置１は、共有メモリ９に対してアクセスする外部入出力装置２と、共有メモリ９に対してアクセスするマイクロプロセッサ３と、マイクロプロセッサ３から入力されるアドレスデータを解読するアドレスデコーダ４と、共有メモリ９に対するデータの書き込み・読み出しを制御する共有メモリ制御部５と、共有メモリ９にアクセスする際のアドレスを生成するアドレス生成部６と、データを一時的に格納するデータバッファ7、８と、外部入力装置２とマイクロプロセッサ３により共有される共有メモリ９と、アドレス生成部６の内部に配置され共有メモリ９にアクセスする際のアドレスを保持するレジスタ１０を備えている。
【００１９】
以下、この発明による共有メモリ制御装置１の動作について説明する。
（１）マイクロプロセッサ３が共有メモリ９にアクセスする場合
アドレスデコーダ４は、マイクロプロセッサ３から提供されるアドレス（ＡＤＤＲＥＳＳ）が共有メモリ９のアドレスの範囲内であることを検出すると、共有メモリ制御部５に対してマイクロプロセッサ３からのアクセスが有ることを示すセレクト信号（ＳＥＬ）を出力する。
【００２０】
共有メモリ制御部５は、セレクト信号（ＳＥＬ）を受領すると、マイクロプロセッサ３からのアクセスの種類（ＲＥＡＤ／ＷＲＩＴＥ：Ｒ／Ｗ）を示す制御信号（ＣＯＮＴ）をコントロールバスを介して受領し、データストローブ信号（ＳＴＢ）をアドレス生成部６に出力する。アドレス生成部６は、データストローブ信号（ＳＴＢ）を受領すると、マイクロプロセッサ３が出力したアドレス（ＡＤＤＲＥＳＳ）をレジスタ１０にラッチしてそのデータをアドレスデータ（ＡＤＤＲＥＳＳ）として共有メモリ９に出力する。このとき、共有メモリ制御部５からは、アクセスの種別に応じてＲ／Ｗの信号が共有メモリ９に出力される。
【００２１】
以上のようにして、マイクロプロセッサ３と共有メモリ９は、データバッファ８を介して指定されたアドレス（ＡＤＤＲＥＳＳ）のメモリ領域に対応するデータ（ＤＡＴＡ）のＲＥＡＤ又はＷＲＩＴＥを行う。
【００２２】
（２）外部入力装置２が共有メモリ９にアクセスする場合
外部入力装置２から共有メモリ制御部５に対して、共有メモリ９へのデータＲＥＡＤ／ＷＲＩＴＥを指示する制御信号（ＣＯＮＴ）が出力されると、マイクロプロセッサ３はアドレス生成部６に割り当てられたアドレスに対して書き込み動作を行うが、このとき、データバスには外部入力装置２が共有メモリ9にアクセスするアドレスが出力される。
【００２３】
アドレスデコーダ４は、マイクロプロセッサ３から入力されるアドレス（ＡＤＤＲＥＳＳ）がアドレス生成部６に割り当てられたアドレスであることを検出すると、共有メモリ制御部５に対してセレクト信号（ＳＥＬＡ）を出力する。
【００２４】
共有メモリ制御部５は、セレクト信号（ＳＥＬＡ）が入力されると、マイクロプロセッサ３から出力された制御信号（ＣＯＮＴ）を受領してアドレス生成部６に対してアクセスの種類を示す制御信号（Ｒ／Ｗ）を制御信号（ＣＯＮＴ）の状態に基づいて出力する。この場合は書き込み動作であるから書き込みを表す制御信号が出力される。
【００２５】
アドレス生成部６は、制御信号（Ｒ／Ｗ）が入力され、書き込み動作が指定されると、マイクロプロセッサ３がデータバスに出力した書き込みデータをアドレスレジスタ１０に保持する。このようにして、外部入力装置２が共有メモリ９にアクセスする場合のアクセス開始アドレスの設定が終了する。この後、外部入力装置２の共有メモリ９へのアクセスが可能となる。
【００２６】
外部入力装置２が実際に共有メモリ９にアクセスする場合、外部入出力装置２は、共有メモリ制御部５に対してアクセスの種類（Ｒ／Ｗ）を示す制御信号（ＣＯＮＴ）を出力し、共有メモリ制御部５は制御信号（ＣＯＮＴ）を受領すると、アドレス生成部６に対してアドレスレジスタ１０に保持されたデータを出力する指示信号であるＩＮＩＴを出力する。
【００２７】
アドレス生成部６は指示信号（ＩＮＩＴ）を受領すると、共有メモリ制御部５から出力されるクロック信号（ＣＫ）に基づいてレジスタ１０に保持されたデータをインクリメントし、その値をアドレス（ＡＤＤＲＥＳＳ）として共有メモリ９に出力する。
【００２８】
このようにして、共有メモリ９に対して、アドレス生成部６がアドレス（ＡＤＤＲＥＳＳ）を出力し、かつ共有メモリ制御部５が制御信号（ＣＯＮＴ）の状態に応じたＲＥＡＤ又はＷＲＩＴＥのメモリアクセスの種類を示す制御信号（Ｒ／Ｗ）を出力することにより、外部入力装置２と共有メモリ９はデータバッファ７を介してアドレス（ＡＤＤＲＥＳＳ）が指示するメモリ領域に対するデータ（ＤＡＴＡ）のＲＥＡＤ又はＷＲＩＴＥを行う。
【００２９】
外部入力装置２により共有メモリ９に書き込まれたデータをマイクロプロセッサ３が読み出して処理する場合、外部入力装置が書き込んだデータ数を知る必要がある。このためには、外部入力装置２が共有メモリに最後にアクセスしたアドレスデータを保持しているアドレスレジスタ１０の値をマイクロプロセッサ３が読み出して、この読み出した値から初期値として設定したアドレス値を差し引くようにすればよい。
【００３０】
このときの、マイクロプロセッサ３によるアドレスレジスタ１０の値の読み込みは、次のようにして行われる。すなわち、マイクロプロセッサ３は先ず、アドレス生成部６に割り当てられたアドレス領域に対してＲＥＡＤアクセスを起動する。アドレスデコーダ４は、マイクロプロセッサ３から出力されるアドレス（ＡＤＤＲＥＳＳ）がアドレス生成部６に対して割り当てられたアドレスであることを検出すると、共有メモリ制御部５に対してセレクト信号（ＳＥＬＡ）を出力する。
【００３１】
共有メモリ制御部５は、セレクト信号（ＳＥＬ）が入力されると、マイクロプロセッサ３が出力した制御信号（ＣＯＮＴ）を受領してアドレス生成部６に対するアクセスの種類を示す制御信号（Ｒ／Ｗ）を、制御信号（ＣＯＮＴ）の状態に応じて出力する。この場合は読み出しアクセスに対応する制御信号が出力されるので、アドレス生成部６は、レジスタ１０の値をデータバスに出力し、この値をマイクロプロセッサ３が読み込む。
【図面の簡単な説明】
【００３２】
【図１】本発明の共有メモリ制御装置の実施例を示すブロック図である。
【図２】従来の共有メモリ制御装置の構成を示すブロック図である。
【符号の説明】
【００３３】
１    共有メモリ制御装置
２    外部入出力装置
３    マイクロプロセッサ
４    アドレスデコーダ
５    共有メモリ制御部
６    アドレス生成部
７、８    データバッファ
９    共有メモリ
１０    レジスタ
【図１】
2006059229.tif 000003
【図２】
2006059229.tif 000004