(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024145662
(43)【公開日】2024-10-15
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G06F 12/00 20060101AFI20241004BHJP
G06F 5/06 20060101ALI20241004BHJP
【FI】
G06F12/00 594
G06F5/06 650
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023058112
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】320012037
【氏名又は名称】ラピステクノロジー株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】藪下 敦士
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA07
5B160AA20
5B160AC07
5B160CA17
5B160MB03
(57)【要約】
【課題】FIFOメモリ回路からバスを介してデータを転送するとき、バス占有率が高くなることを回避できる半導体装置を提供する。
【解決手段】半導体装置11は、バス幅Wbに等しい数の第1格納回路17を有するバッファ回路13と、ビットデータ幅Wdを有するFIFOメモリ回路15と、FIFOメモリ回路15のリードポインタ値及びライトポインタ値をそれぞれ保持するリードポインタ23及びライトポインタ25を制御するポインタ制御回路17を備え、バス幅Wbは、ビットデータ幅Wdのn倍(nは2以上の自然数である)以上の値であり、ポインタ制御回路17は、アクセス要求に応答して、ライトポインタ値とリードポインタ値とが互いに異なるときバッファ回路13に読出指示信号SRDを提供し、バッファ回路13は、読出指示信号SRDの受信に応答して、リードポインタ値のアドレスのFIFOメモリ回路のデータを第1格納回路に格納する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
バス幅Wbのバスに送信又は受信の少なくとも一方を行うように接続されると共に前記バス幅Wbに等しい又はより大きい数の第1格納回路を有するバッファ回路と、
前記バッファ回路に接続されると共にビットデータ幅Wd及び複数の段数Sfを有するFIFOメモリ回路と、
前記FIFOメモリ回路のリードポインタ値及びライトポインタ値をそれぞれリードポインタ及びライトポインタに保持すると共に前記リードポインタ及び前記ライトポインタを制御するように構成されるポインタ制御回路と、
を備え、
前記バス幅Wbは、前記ビットデータ幅Wdのn倍(nは2以上の自然数である)以上の値であり、
前記ポインタ制御回路は、アクセス要求に応答して、前記ライトポインタ値と前記リードポインタ値とが互いに異なるとき前記バッファ回路に読出指示信号を提供するように構成され、
前記読出指示信号は、前記リードポインタ値を含み、
前記ポインタ制御回路は、前記読出指示信号を提供した後に前記リードポインタ値の更新を行い、
前記バッファ回路は、前記リードポインタ値の受信に応答して、受信した前記リードポインタ値のアドレスの前記FIFOメモリ回路のデータを前記第1格納回路に格納し、
前記ポインタ制御回路は、
更新された前記リードポインタ値が前記ライトポインタ値に一致すること、及び
前記バッファ回路の前記第1格納回路が満杯になること、
の少なくともいずれか一方が満たされるとき、前記読出指示信号を前記バッファ回路に与えない、
半導体装置。
【請求項2】
前記バッファ回路は、前記第1格納回路のデータを前記バスに提供した後に、「出力完了」を示す完了信号を前記ポインタ制御回路に送り、
前記ポインタ制御回路は、前記完了信号の受信に応答して、前記ライトポインタ値と前記リードポインタ値とが互いに異なるとき、前記読出指示信号を前記バッファ回路に送る、
請求項1に記載された半導体装置。
【請求項3】
前記バッファ回路は、前記アクセス要求を受けると共に、受けた前記アクセス要求を前記ポインタ制御回路に送り、
前記ポインタ制御回路は、前記アクセス要求に応答して、前記ライトポインタ値と前記リードポインタ値とが一致するとき、「データ無し」を示す第1信号を前記バッファ回路に返し、
前記バッファ回路は、前記アクセス要求の送信元に、「データ無し」を示す応答を送信する、
請求項1に記載された半導体装置。
【請求項4】
前記ポインタ制御回路は、更新された前記リードポインタ値が前記ライトポインタ値に一致したとき、「追加データ無し」を示す第2信号を前記バッファ回路に返し、
前記バッファ回路は、前記第1格納回路のデータを前記バスに提供する、
請求項1から請求項3のいずれか一項に記載された半導体装置。
【請求項5】
前記バッファ回路は、前記第2信号の受信に応答して、前記FIFOメモリ回路からのデータが格納されていない前記第1格納回路にブランクコードを格納する、
請求項4に記載された半導体装置。
【請求項6】
前記バッファ回路は、前記バッファ回路が前記第1格納回路のデータを前記バスに提供した後に、前記第1格納回路にブランクコードを格納する、
請求項1から請求項3のいずれか一項に記載された半導体装置。
【請求項7】
前記FIFOメモリ回路に接続されるデータ入力回路を更に備え、
前記ポインタ制御回路は、前記データ入力回路からデータ受信を示す受信信号を受けたことに応答して、前記データ入力回路に前記ライトポインタ値を送る共に前記ライトポインタ値を更新し、
前記データ入力回路は、前記ライトポインタ値が示すアドレスに従って、受けたデータを前記FIFOメモリ回路に送る、
請求項1から請求項3のいずれか一項に記載された半導体装置。
【請求項8】
前記データ入力回路は、シリアルバスに接続される、
請求項7に記載された半導体装置。
【請求項9】
前記バッファ回路は、前記バスを介して中央処理装置に結合されている、
請求項1から請求項3のいずれか一項に記載された半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体装置に関する。
【背景技術】
【0002】
特許文献1は、異なるデータバス幅を有するデータ処理装置間のデータ転送に用いられるFIFOメモリ装置を開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
バス幅(例えば、32ビット)と異なるビット幅(例えば、8ビット)を有するFIFOメモリでは、FIFOメモリは、バスに結合された中央処理装置(CPU)からリードアクセス要求に応答して、リードポインタが示すアドレスのFIFOメモリ回路の8ビットデータを32ビットリードデータとしてバスに出力する。また、このようなアクセスは、FIFOメモリ回路の8ビットデータの読み出しが完了するまで繰り返される。このようなアクセスは、バスの占有率を高める。
【0005】
本発明は、FIFOメモリ回路からバスを介してデータを転送するとき、バス占有率が高くなることを避けることができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1態様に係る半導体装置は、バス幅Wbのバスに送信又は受信の少なくとも一方を行うように接続されると共に前記バス幅Wbに等しい又はより大きい数の第1格納回路を有するバッファ回路と、前記バッファ回路に接続されると共にビットデータ幅Wd及び複数の段数Sfを有するFIFOメモリ回路と、前記FIFOメモリ回路のリードポインタ値及びライトポインタ値をそれぞれリードポインタ及びライトポインタに保持すると共に前記リードポインタ及び前記ライトポインタを制御するように構成されるポインタ制御回路と、を備え、前記バス幅Wbは、前記ビットデータ幅Wdのn倍(nは2以上の自然数である)以上の値であり、前記ポインタ制御回路は、アクセス要求に応答して、前記ライトポインタ値と前記リードポインタ値とが互いに異なるとき前記バッファ回路に読出指示信号を提供するように構成され、前記読出指示信号は、前記リードポインタ値を含み、前記ポインタ制御回路は、前記読出指示信号を提供した後に前記リードポインタ値の更新を行い、前記バッファ回路は、前記リードポインタ値の受信に応答して、受信した前記リードポインタ値のアドレスの前記FIFOメモリ回路のデータを前記第1格納回路に格納し、前記ポインタ制御回路は、更新された前記リードポインタ値が前記ライトポインタ値に一致すること、及び前記バッファ回路の前記第1格納回路が満杯になること、の少なくともいずれか一方が満たされるとき、前記読出指示信号を前記バッファ回路に与えない。
【発明の効果】
【0007】
上記の態様によれば、FIFOメモリ回路からバスを介してデータを転送するとき、バス占有率が高くなることを避けることができる半導体装置が提供される。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本実施形態に係る半導体装置を概略的に示す図面である。
【
図2】
図2は、本実施形態に係る例示的な半導体装置を概略的に示す図面である。
【
図3】
図3は、本実施形態に係る例示的な半導体装置を概略的に示す図面である。
【
図4】
図4は、例示的なFIFOメモリ回路を用いてデータを書き込み又は読み出す具体例を示す図面である。
【
図5】
図5は、例示的なFIFOメモリ回路を用いてデータを書き込み又は読み出す具体例を示す図面である。
【
図6】
図6は、例示的なFIFOメモリ回路を用いてデータを書き込み又は読み出す具体例を示す図面である。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明を実施するための各実施の形態について説明する。引き続く説明において、同一又は類似の部分には同一又は類似の符号を付して複写的な説明を省略する。
【0010】
図1は、本実施形態に係る半導体装置を概略的に示す図面である。
【0011】
半導体装置11は、バッファ回路13、FIFOメモリ回路15(ファーストイン・ファーストアウト・メモリ回路)、及びポインタ制御回路17を備える。
【0012】
バッファ回路13は、バス幅Wbのバス10に送信又は受信の少なくとも一方を行うように接続され、また第1格納回路19を有する。第1格納回路19は、バス幅Wbに等しい又はより大きいビットデータ幅Wdを有する。
【0013】
FIFOメモリ回路15は、複数のメモリ21を含み、またバッファ回路13に接続される。メモリ21の各々は、ビットデータ幅Wdを有すると共に、メモリ21は、ファーストイン・ファーストアウトの動作を可能にするように配列された複数の段数Sfを有する。
【0014】
バス幅Wbは、ビットデータ幅Wdのn倍(nは2以上の自然数である)に等しい値、又はより大きい値である。
【0015】
ポインタ制御回路17は、FIFOメモリ回路15のリードポインタ23及びライトポインタ25を有すると共に、リードポインタ23及びライトポインタ25を制御するように構成される。リードポインタ23及びライトポインタ25は、メモリ21に関連付けられたアドレスを格納できる。リードポインタ23及びライトポインタ25は、それぞれ、リードポインタ値VRP及びライトポインタ値VWPを保持する。リードポインタ値VRPは、FIFOメモリ回路15のメモリ21の配列において、次に読み出されるアドレスである。これ故に、リードポインタ値VRPによって指し示されるメモリ21は、使用中である。ライトポインタ値VWPは、FIFOメモリ回路15のメモリ21の配列において、次に書き込まれるアドレスである。これ故に、ライトポインタ値VWPによって指し示されるメモリ21は、使用可能である。
【0016】
ポインタ制御回路17は、ライトポインタ値VWPとリードポインタ値VRPとが互いに異なる(ライトポインタ値VWPとリードポインタ値VRPとの差がゼロではない)とき、FIFOメモリ回路15へのアクセス要求SACSに応答して、バッファ回路13に読出指示信号SRDを送信するように構成される。読出指示信号SRDは、リードポインタ値VRPを含む。ライトポインタ値VWPとリードポインタ値VRPとの異同は、以下のように特定されることができる。具体的には、ライトポインタ値VWP及びリードポインタ値VRPの一方から他方を引き算する。得られた演算値のビット値の論路和を計算すると、ライトポインタ値VWPとリードポインタ値VRPとの一致/不一致を特定できる。
【0017】
半導体装置11によれば、ポインタ制御回路17は、ポインタ管理回路20を含むことができる。ポインタ管理回路20は、ライトポインタ値VWP及びリードポインタ値VRPに関連付けられる演算、及びライトポインタ値VWPとリードポインタ値VRPとが異なることの判定を行うように構成される。
【0018】
バッファ回路13は、リードポインタ値VRPの受信に応答して、受信したリードポインタ値VRPのアドレスのFIFOメモリ回路15のデータを第1格納回路19に格納するように構成される。これによって、現在のリードポインタ値VRPによって指し示されたメモリ21内のデータは、バッファ回路13によって読み出されて、第1格納回路19に格納される。この一連の処理は、読出指示信号SRDをバッファ回路13に提供することによって行われる。
【0019】
ポインタ制御回路17は、読出指示信号SRDを提供した後に、リードポインタ値VRPの更新を行う。この更新は、更新前のリードポインタ値VRPへの「1」の加算又は更新前のリードポインタ値VRPからの「1」の減算を含む。
【0020】
ポインタ制御回路17は、以下の少なくともいずれか一方が満たされるとき、読出指示信号SRDをバッファ回路13に与えない。更新されたリードポインタ値VRPがライトポインタ値VWPに一致すること;及び、バッファ回路13の第1格納回路19が満杯になること。
【0021】
また、ポインタ制御回路17は、以下の少なくともいずれか一方が満たされるまで、読出指示信号SRDを与えることを繰り返す。更新されたリードポインタ値VRPがライトポインタ値VWPに一致すること;及び、バッファ回路13の第1格納回路19が満杯になること。
【0022】
具体的には、1回目の読出指示信号SRDをバッファ回路13に提供した結果、更新されたリードポインタ値VRPがライトポインタ値VWPに一致するとき、ポインタ制御回路17は、次の読出指示信号SRDをバッファ回路13に与えない。このとき、読出指示信号SRDの提供は1回である。
【0023】
また、ライトポインタ値VWPとリードポインタ値VRPとの差が大きい場合には、バッファ回路13の第1格納回路19が満杯になるまで、読出指示信号SRDの送信及びリードポインタ値VRPの更新を繰り返す。
【0024】
バス幅WbがFIFOメモリ回路15のビットデータ幅Wdより大きい半導体装置11によれば、ライトポインタ値VWPとリードポインタ値VRPとの差に基づき、FIFOメモリ回路15内における転送されるべき格納データの数を特定できる。バッファ回路13は、FIFOメモリ回路15内のメモリ21からのデータを第1格納回路19内に配列させる。バッファ回路13は、配列の完了の後に、受けたデータをバス10に提供できる。
【0025】
具体的には、半導体装置11では、バッファ回路13は、第1格納回路19のデータをバス10に提供した後に、「出力完了」を示す完了信号SCMPをポインタ制御回路17に送ることができる。ポインタ制御回路17は、完了信号SCMPの受信に応答して、ライトポインタ値VWPとリードポインタ値VRPとが互いに異なるとき、次の読出指示信号SRDをバッファ回路13に送る。
【0026】
バッファ回路13は、第1格納回路19のデータをバス10に出力するに先立って、バス10が未使用であることを確認する。
【0027】
半導体装置11によれば、ポインタ制御回路17は、バッファ回路13からの完了信号SCMPの受信に応答して。ポインタ制御回路17は、ライトポインタ値VWPとリードポインタ値VRPとの一致/不一致を特定する。ポインタ制御回路17は、ライトポインタ値VWPとリードポインタ値VRPとが互いに異なるとき、ポインタ制御回路17は、現在のリードポインタ値VRPを含む次の読出指示信号SRDをバッファ回路13に与える。このような手順に従って、FIFOメモリ回路15のメモリ21のビットデータ幅Wdに関係なく、バッファ回路13の第1格納回路19の配列数に従って、FIFOメモリ回路15のデータを順にバス10に出力できる。
【0028】
具体的には、バッファ回路13はアクセス要求SACSを受けると共に、受けたアクセス要求SACSをポインタ制御回路17に送ることができる。ポインタ制御回路17は、アクセス要求SACSに応答して、ライトポインタ値VWP及びリードポインタ値VRPの状態を特定する。
【0029】
ライトポインタ値VWPとリードポインタ値VRPとが一致するとき、「データ無し」を示す第1信号S1を読出指示信号SRDの代わりにバッファ回路13に返す。バッファ回路13は、依頼元に、「データ無し」を示す信号、例えば第1信号S1を返す。
【0030】
ライトポインタ値VWPとリードポインタ値VRPとが互いに異なるとき、ポインタ制御回路17は、アクセス要求SACSに応答して、読出指示信号SRDを生成する。
【0031】
半導体装置11によれば、ライトポインタ値VWPとリードポインタ値VRPとが異なることは、FIFOメモリ回路15のリードデータの有無を特定するために利用されることができる。
【0032】
具体的には、半導体装置11では、ポインタ制御回路17が、第1格納回路19のデータをバス10に提供したバッファ回路13から「出力完了」を示す完了信号SCMPを受ける。ポインタ制御回路17は、更新されたリードポインタ値VRPとライトポインタ値VWPとが異なるとき、読出指示信号SRDのバッファ回路13への送信を再開する。この再開の後に、ポインタ制御回路17が、更新されたリードポインタ値VRPとライトポインタ値VWPとが一致することを特定したとき、読出指示信号SRDの代わりに、「追加データ無し」を示す第2信号S2をバッファ回路13に返す。バッファ回路13は、第2信号S2の受信に応答して、第1格納回路19内のデータをバス10に提供する。
【0033】
バッファ回路13は、第2信号S2の受信に応答して、FIFOメモリ回路15からのデータが格納されていない第1格納回路19にブランクコードを格納することができる。
【0034】
半導体装置11によれば、バス幅Wbに満たないデータ幅のデータをバッファ回路13がバス10に送信するに先立って、バッファ回路13は、未格納の第1格納回路19にブランクコードを送る。
【0035】
或いは、バッファ回路13は、バッファ回路13が第1格納回路19のデータをバス10に提供した後に、第1格納回路19にブランクコードを格納することができる。
【0036】
半導体装置11によれば、バッファ回路13がバス10に送信するに先立って、バッファ回路13は、第1格納回路19にブランクコードを格納すると共に、FIFOメモリ回路15からのデータを第1格納回路19に上書きすることができる。
【0037】
半導体装置11は、さらに、FIFOメモリ回路15に接続されるデータ入力回路31を更に備えることができる。データ入力回路31は、バス10と異なる通信路12に接続されることができる。データ入力回路31は、通信路12からのデータを受ける。通信路12は、半導体装置11の外部又は内部に位置する別回路35に接続されることができる。通信路12は、有線又は無線のいずれの通信路を含むことができる。
【0038】
ポインタ制御回路17は、データ入力回路31からデータ受信を示す受信信号SRCVを受けたことに応答して、データ入力回路31に、ライトポインタ値VWPを含む書込指示信号SWRを送る共にライトポインタ値VWPを更新する。ライトポインタ値VWPの更新はリードポインタ値VRPと同様に行われることができる。データ入力回路31は、ライトポインタ値VWPが示すアドレスに従って、受けたデータをFIFOメモリ回路15のメモリ21に格納する。
【0039】
データ入力回路31は、通信路12としてシリアルバスに接続されることができる。データ入力回路31は、データ形式の変換、具体的には、シリアルデータ形式からパラレルデータ形式への変換を行う。
【0040】
データ入力回路31によるデータ格納及びバッファ回路13のデータ読出は、独立して生じる。FIFOメモリ回路15は、バッファ回路13及びデータ入力回路31からのアクセスに従って動作する。
【0041】
例示的なデータ入力回路31は、複数の第2格納回路33を含むことができる。第2格納回路33の数は、例えばビットデータ幅Wdに等しい、又はより大きくてもよい。データ入力回路31は、通信路12からのデータを順に、第2格納回路33に格納する。データ入力回路31は、ビットデータ幅Wdに等しい数のデータを第2格納回路33に格納した後に、データ入力回路31は、「格納完了」を示す信号をポインタ制御回路17に送信する。データ入力回路31は、更なるデータを受信するときは、受信信号SRCVをポインタ制御回路17に送信して、更新されたライトポインタ値VWPを含む書込指示信号SWRを受ける。
【0042】
バッファ回路13は、バス10を介して中央処理装置41に結合されている。半導体装置11によれば、バッファ回路13からのデータ送信が、中央処理装置41に結合されるバス10を占有する時間を低減できる。
【0043】
バッファ回路13では、FIFOメモリ回路15からの読出データがバス10のMSBからLSBの向きに配列されることができる。或いは、FIFOメモリ回路15からの読出データは、バス10のLSBからMSBの向きに配列されることができる。
【0044】
例示的なバッファ回路13は、バス10から入力データを受けるように構成されることができる。入力データはバス幅Wbに等しい又はより大きい数の第1格納回路19とは別個の格納回路に格納されることができる。
【0045】
図2は、本実施形態に係る例示的な半導体装置を概略的に示す図面である。
【0046】
バッファ回路13は、FIFOメモリ回路15のメモリ21のビットデータ幅Wdに等しい幅の読出バッファ43、第1切替回路45、及び切替制御回路47を含むことができる。バッファ回路13は、リードポインタ値VRPによって指定されたFIFOメモリ回路15のメモリ21からのデータを読出バッファ43に受け取る。読出バッファ43は、第1切替回路45に接続されている。第1切替回路45は、第1格納回路19の配列に複数のデータ線(D1、D2、D3、D4)によって接続される。切替制御回路47は、読出バッファ43のデータをデータ線(例えば、データ線D1、D2、D3、D4)のいずれか一つに振り分ける。具体的には、切替制御回路47は、読出指示信号SRDの受信の回数に従って、データ線を(例えば、データ線D1、D2、D3、D4)を順に、又はデータ線D4、D3、D2、D1を順に)選択する。なお、この振り分けは、MSB順又はLSB順を規定する。第1切替回路45は、読出バッファ43内のデータを第1格納回路19の配列の一部分に順に転送する。
【0047】
バッファ回路13は、第2切替回路49を含むことができる。切替制御回路47は、第2切替回路49を制御して、読出バッファ43のデータ及びブランクコードのいずれかを第1切替回路45に送ることができる。ブランクコードは、例えば切替制御回路47に格納されている。
【0048】
図2を参照すると、ポインタ制御回路17は、ポインタ管理回路20、リードポインタ23及びライトポインタ25に加えて、第1カウンタ回路51、及び第1比較回路53を含むことができる。
【0049】
第1カウンタ回路51は、読出指示信号SRDの送信の回数をカウントするように構成される。第1比較回路53は、第1カウンタ回路51の回数が、値n(=バス幅Wb/ビットデータ幅Wd)に一致したとき、信号SINTを第1カウンタ回路51及びポインタ管理回路20に送信する。
【0050】
第1カウンタ回路51は、信号SINTに応答して初期化される。
【0051】
ポインタ管理回路20は、信号SINTに応答して、更なる読出指示信号SRDの送信を中断する。
【0052】
半導体装置11によれば、ポインタ制御回路17の先導によりFIFOメモリ回路15からバッファ回路13にデータを与えるとき、ポインタ制御回路17は、第1カウンタ回路51によってバッファ回路13へのデータ送信回数を管理する。この管理によって、バッファ回路13への過剰なデータ送信を回避する。
【0053】
図3は、本実施形態に係る例示的な半導体装置を概略的に示す図面である。
【0054】
バッファ回路13は、読出バッファ43、第1切替回路45、及び切替制御回路47に加えて、第2カウンタ回路57及び第2比較回路55を更に含むことができる。
【0055】
第2カウンタ回路57は、読出指示信号SRDの受信の回数をカウントする。バッファ回路13は、第2カウンタ回路57の値に応じて、FIFOメモリ回路15のデータを順に第1格納回路19の配列に格納する。
【0056】
第2比較回路55は、第1格納回路19の配列が満杯になったことを第2カウンタ回路57のカウント値が示すとき、換言すれば、第2カウンタ回路57の回数が値n(=バス幅Wb/ビットデータ幅Wd)に一致したとき、第1格納回路19の配列が満杯になったことを示す第3信号S3を生成する。バッファ回路13は、第3信号S3をポインタ制御回路17に送る。ポインタ制御回路17は、第3信号S3に受信に応答して、更なる読出指示信号SRDをバッファ回路13に送ることを中断する。
【0057】
第2カウンタ回路57の値は、切替制御回路47に与えられて、第1切替回路45の制御に使用されることができる。
【0058】
半導体装置11によれば、バッファ回路13の先導によりFIFOメモリ回路15からバッファ回路13にデータを与えるとき、第3信号S3は、第1格納回路19の配列が満杯になったことをポインタ制御回路17に知らせることができる。
【0059】
バッファ回路13は、バス10が未使用であることを確認した後に、第1格納回路19のデータをバス10に出力する。バッファ回路13は、第1格納回路19のデータをバス10に提供した後に、「出力完了」を示す完了信号SCMPをポインタ制御回路17に送る。ポインタ制御回路17は、完了信号SCMPの受信に応答して、ライトポインタ値VWPとリードポインタ値VRPとが互いに異なるとき、次の読出指示信号SRDをバッファ回路13に送る。
【0060】
半導体装置11によれば、更新されたリードポインタ値VRPとライトポインタ値VWPとが異なるときは、FIFOメモリ回路15に送信されるべき残余のデータがあることを示す。これに従って、ポインタ制御回路17は、読出指示信号SRDの送信を再開する。
【0061】
図4は、従来におけるFIFOメモリ回路を用いてデータを書き込み又は読み出す具体例を示す図面である。この従来におけるFIFOメモリ回路は、16段のメモリを含み、各メモリは、8ビット幅を有する。バスのバス幅Wbは32ビットである。
【0062】
ST101では、16段のメモリの全てが、空(empty)である。リードポインタrp及びライトポインタwpは、メモリの第1段目を指し示す。
【0063】
ST102では、FIFOメモリ回路は、通信路から1つのデータを受信して、第1データは、第1段目のメモリに書き込まれて、第1段目のメモリは「data1」を格納する。ライトポインタwpは更新されて、メモリの第2段目を指し示す。リードポインタrpの位置は変わらない。
【0064】
ST103では、FIFOメモリ回路は、通信路から1つのデータを受信して、第2データは、第2段目のメモリに書き込まれて、第2段目のメモリは「data2」を格納する。ライトポインタwpは、更新されて、メモリの第3段目を指し示す。リードポインタrpの位置は変わらない。
【0065】
ST104では、このような順次のデータの受信、及びデータの格納を繰り返して、FIFOメモリ回路は、通信路から1つのデータを受信して、第16データは、第16段目のメモリに書き込まれて、第16段目のメモリは「data16」を格納する。リードポインタrpの位置は変わらない。ライトポインタwpは更新されて、メモリの第1段目を指し示す。
【0066】
ST105では、中央処理装置からアクセス要求に応答して、
図4(b)に示されるような32ビットデータをバスに送信し、この32ビットデータは第1段目のメモリの「data1」と3つのブランクコードを含む。リードポインタrpは更新されて、メモリの第2段目を指し示す。ライトポインタwpの位置は変わらない。
【0067】
ST106では、中央処理装置からアクセス要求に応答して、
図4(c)に示されるような32ビットデータをバスに送信し、この32ビットデータは、第2段目のメモリの「data2」と3つのブランクコードを含む。リードポインタrpは更新されて、メモリの第3段目を指し示す。ライトポインタwpの位置は変わらない。
【0068】
ST107では、このような順次のデータの送信を繰り返して、FIFOメモリ回路は、
図4(d)に示されるような32ビットデータをバスに送信し、この32ビットデータは、第16段目のメモリの「data16」と3つのブランクコードを含む。リードポインタrpは更新されて、メモリの第1段目を指し示す。ライトポインタwpの位置は変わらない。
【0069】
このFIFOメモリ回路は、32ビット幅のバスを用いて8ビットデータの転送を繰り返す。
【0070】
図5は、例示的なFIFOメモリ回路を用いてデータを書き込み又は読み出す具体例を示す図面である。この例示的なFIFOメモリ回路は、16段のメモリを含み、各メモリは、8ビット幅を有する。バスのバス幅Wbは32ビットである。
【0071】
ST201では、16段のメモリの全てに、「data1」から「data16」が格納されており、リードポインタrp及びライトポインタwpは、メモリの第1段目を指し示す。
【0072】
ST202では、32ビット幅のバスに合わせて、最初の4段のメモリのデータ「data1」から「data4」が読み出されて、リードポインタrpは更新されて、メモリの第5段目を指し示す。ライトポインタwpの位置は変わらない。この4段のメモリのデータ「data1」から「data4」は、
図5(b)に示されるようにバッファ回路13の第1格納回路19に順に格納されている。バッファ回路13は、第1格納回路19のデータをバス10に出力する。
【0073】
ST203では、32ビット幅のバスに合わせて、次の4段のメモリのデータ「data5」から「data8」が読み出されて、リードポインタrpは更新されて、メモリの第9段目を指し示す。ライトポインタwpの位置は変わらない。この4段のメモリのデータ「data5」から「data8」は、
図5(c)に示されるようにバッファ回路13の第1格納回路19に順に格納されている。バッファ回路13は、第1格納回路19のデータをバス10に出力する。
【0074】
ST204では、32ビット幅のバスに合わせて、更なる次の4段のメモリのデータ「data9」から「data12」が読み出されて、リードポインタrpは更新されて、メモリの第13段目を指し示す。ライトポインタwpの位置は変わらない。この4段のメモリのデータ「data9」から「data12」は、
図5(d)に示されるようにバッファ回路13の第1格納回路19に順に格納されている。バッファ回路13は、第1格納回路19のデータをバス10に出力する。
【0075】
ST205では、32ビット幅のバスに合わせて、また更なる次の4段のメモリのデータ「data13」から「data16」が読み出されて、リードポインタrpは更新されて、メモリの第1段目を指し示す。ライトポインタwpの位置は変わらない。この4段のメモリのデータ「data13」から「data16」は、
図5(e)に示されるようにバッファ回路13の第1格納回路19に順に格納されている。バッファ回路13は、第1格納回路19のデータをバス10に出力する。
【0076】
このFIFOメモリ回路は、32ビット幅のバスを用いて4つの8ビットデータの転送を繰り返す。
【0077】
図6は、例示的なFIFOメモリ回路を用いてデータを書き込み又は読み出す具体例を示す図面である。この例示的なFIFOメモリ回路は、16段のメモリを含み、各メモリは、8ビット幅を有する。バスのバス幅Wbは32ビットである。
【0078】
ST301では、16段のメモリのうち10段目まで、「data1」から「data10」が格納されており、ライトポインタwpは、メモリの第11段目を指し示す。リードポインタrpは、メモリの第1段目を指し示す。
【0079】
ST302では、32ビット幅のバスに合わせて、最初の4段のメモリのデータ「data1」から「data4」が読み出されて、リードポインタrpは更新されて、メモリの第5段目を指し示す。ライトポインタwpの位置は変わらない。この4段のメモリのデータ「data1」から「data4」は、
図6(b)に示されるようにバッファ回路13の第1格納回路19に順に格納されている。バッファ回路13は、第1格納回路19のデータをバス10に出力する。
【0080】
ST303では、32ビット幅のバスに合わせて、次の4段のメモリのデータ「data5」から「data8」が読み出されて、リードポインタrpは更新されて、メモリの第9段目を指し示す。ライトポインタwpの位置は変わらない。この4段のメモリのデータ「data5」から「data8」は、
図6(c)に示されるようにバッファ回路13の第1格納回路19に順に格納されている。バッファ回路13は、第1格納回路19のデータをバス10に出力する。
【0081】
ST304では、32ビット幅のバスに合わせて、更なる次の2段のメモリのデータ「data9」及び「data10」が読み出されて、リードポインタrpは更新されて、メモリの第11段目を指し示す。ライトポインタwpの位置は変わらない。次の2段のメモリのデータ「data9」から「data10」は、
図5(d)に示されるようにバッファ回路13の第1格納回路19に順に格納され、また未使用の第1格納回路19にはブランクコードが格納される。バッファ回路13は、第1格納回路19のデータ及びブランクコードをバス10に出力する。
【0082】
このFIFOメモリ回路は、32ビット幅のバスを用いて4つの8ビットデータ及びブランクコードの転送を繰り返す。
【0083】
以上説明した実施形態によれば、FIFOメモリ回路からバスを介してデータを転送するとき、バス占有率が高くなることを避けることができる半導体装置が提供される。
【0084】
本実施形態は、以下の示されるようにいくつかの側面を有する。
【0085】
本実施形態に係る第1側面は半導体装置を含む。この半導体装置は、バス幅Wbのバスに送信又は受信の少なくとも一方を行うように接続されると共に前記バス幅Wbに等しい又はより大きい数の第1格納回路を有するバッファ回路と、前記バッファ回路に接続されると共にビットデータ幅Wd及び複数の段数Sfを有するFIFOメモリ回路と、前記FIFOメモリ回路のリードポインタ値及びライトポインタ値をそれぞれリードポインタ及びライトポインタに保持すると共に前記リードポインタ及び前記ライトポインタを制御するように構成されるポインタ制御回路と、を備え、前記バス幅Wbは、前記ビットデータ幅Wdのn倍(nは2以上の自然数である)以上の値であり、前記ポインタ制御回路は、アクセス要求に応答して、前記ライトポインタ値と前記リードポインタ値とが互いに異なるとき前記バッファ回路に読出指示信号を提供するように構成され、前記読出指示信号は、前記リードポインタ値を含み、前記ポインタ制御回路は、前記読出指示信号を提供した後に前記リードポインタ値の更新を行い、前記バッファ回路は、前記リードポインタ値の受信に応答して、受信した前記リードポインタ値のアドレスの前記FIFOメモリ回路のデータを前記第1格納回路に格納し、前記ポインタ制御回路は、更新された前記リードポインタ値が前記ライトポインタ値に一致すること、及び前記バッファ回路の前記第1格納回路が満杯になること、の少なくともいずれか一方が満たされるとき、前記読出指示信号を前記バッファ回路に与えない。
【0086】
第1側面に従う第2側面の半導体装置では、前記バッファ回路は、前記第1格納回路のデータを前記バスに提供した後に、「出力完了」を示す完了信号を前記ポインタ制御回路に送り、前記ポインタ制御回路は、前記完了信号の受信に応答して、前記ライトポインタ値と前記リードポインタ値とが互いに異なるとき、前記読出指示信号を前記バッファ回路に送る。
【0087】
第1側面又は第2側面に従う第3側面の半導体装置では、前記バッファ回路は、前記アクセス要求を受けると共に、受けた前記アクセス要求を前記ポインタ制御回路に送り、前記ポインタ制御回路は、前記アクセス要求に応答して、前記ライトポインタ値と前記リードポインタ値とが一致するとき、「データ無し」を示す第1信号を前記バッファ回路に返し、前記バッファ回路は、前記アクセス要求の送信元に、「データ無し」を示す応答を送信することができる。
【0088】
第1側面から第3側面のいずれか一側面に従う第4側面の半導体装置では、前記ポインタ制御回路は、更新された前記リードポインタ値が前記ライトポインタ値に一致したとき、「追加データ無し」を示す第2信号を前記バッファ回路に返し、前記バッファ回路は、前記第1格納回路のデータを前記バスに提供することができる。
【0089】
第4側面に従う第5側面の半導体装置では、前記バッファ回路は、前記第2信号の受信に応答して、前記FIFOメモリ回路からのデータが格納されていない前記第1格納回路にブランクコードを格納することができる。
【0090】
第1側面から第3側面のいずれか一側面に従う第6側面の半導体装置では、前記バッファ回路は、前記バッファ回路が前記第1格納回路のデータを前記バスに提供した後に、前記第1格納回路にブランクコードを格納することができる。
【0091】
第1側面から第6側面のいずれか一側面に従う第7側面の半導体装置は、前記FIFOメモリ回路に接続されるデータ入力回路を更に備え、前記ポインタ制御回路は、前記データ入力回路からデータ受信を示す受信信号を受けたことに応答して、前記データ入力回路に前記ライトポインタ値を送る共に前記ライトポインタ値を更新し、前記データ入力回路は、前記ライトポインタ値が示すアドレスに従って、受けたデータを前記FIFOメモリ回路に送ることができる。
【0092】
第7側面に従う第8側面の半導体装置では、前記データ入力回路は、シリアルバスに接続されることができる。
【0093】
第1側面から第8側面のいずれか一側面に従う第9側面の半導体装置では、前記バッファ回路は、前記バスを介して中央処理装置に結合されていることができる。
【0094】
本発明は上述した実施の形態に限定されるものではなく、本発明の主旨を逸脱しない範囲内で種々変更して実施することが可能である。そして、それらはすべて、本発明の技術思想に含まれるものである。
【符号の説明】
【0095】
10・・・バス、11・・・半導体装置、12・・・通信路、13・・・バッファ回路、15・・・FIFOメモリ回路、17・・・ポインタ制御回路、19・・・第1格納回路、20・・・ポインタ管理回路、21・・・メモリ、23・・・リードポインタ、25・・・ライトポインタ、31・・・データ入力回路、33・・・第2格納回路、41・・・中央処理装置、43・・・読出バッファ、45・・・第1切替回路、47・・・切替制御回路、49・・・第2切替回路、51・・・第1カウンタ回路、53・・・第1比較回路、55・・・第2比較回路、57・・・第2カウンタ回路、D1、D2、D3、D4・・・データ線、S1・・・第1信号、S2・・・第2信号、S3・・・第3信号、SACS・・・アクセス要求、SCMP・・・完了信号、SRCV・・・受信信号、SRD・・・読出指示信号、SWR・・・書込指示信号、Sf・・・段数、VRP・・・リードポインタ値、VWP・・・ライトポインタ値、Wb・・・バス幅、Wd・・・ビットデータ幅、rp・・・リードポインタ、wp・・・ライトポインタ。