JP3573630B2 - 送受信バッファを備える集積回路装置 - Google Patents
送受信バッファを備える集積回路装置 Download PDFInfo
- Publication number
- JP3573630B2 JP3573630B2 JP30297298A JP30297298A JP3573630B2 JP 3573630 B2 JP3573630 B2 JP 3573630B2 JP 30297298 A JP30297298 A JP 30297298A JP 30297298 A JP30297298 A JP 30297298A JP 3573630 B2 JP3573630 B2 JP 3573630B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- sub
- address
- address setting
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、通信機能をもつ集積回路装置、特にデータの送受信時において複数のデータフォーマットに柔軟に対応可能なバッファメモリを有する集積回路装置に関する。
【0002】
【従来の技術】
マイクロコンピュータ等の集積回路装置とホストコンピュータや外部周辺装置との間でデータ通信を行う場合、そのデータ通信は、データのフォーマットや通信速度等を定めた通信プロトコルに従って行われる。
【0003】
近年、データ通信において、通信プロトコルは複雑化し通信速度は高速化の傾向にあるが、通信データを受信又は送信する側である集積回路装置の処理速度は、通信速度に追いついていないのが現状である。このため、集積回路装置内にFIFO等のバッファを設け、そのバッファに送受信するデータを一時記憶させ、バッファに記憶させたデータに対して集積回路装置の処理速度に従ったデータ処理を行い、通信速度と処理速度の違いを解決している。
【0004】
図9は、従来のデータ通信における動作説明図(I)である。図9(1)に示すように、CPU180、RAM181、バッファ182等を有する集積回路装置100が、ホストコンピュータ201と通信回線202を介してデータ通信を行う場合について説明する。
【0005】
集積回路装置100がホストコンピュータ201からのデータを受信する場合、そのデータのフォーマットが、図9(2)に示すように、aバイトのデータAとbバイトのデータBとcバイトのデータCのデータ列101であるとする。この場合、集積回路装置100内のバッファ182が、図9(3)に示すように(a+b+c)バイトの記憶容量を有する場合は、データ列101を一括して一時記憶することができる。
【0006】
この場合、バッファ182に一括して一時記憶されたデータ列101は、集積回路装置100内のRAM181に転送され、通信プロトコルで定められたバイト数毎にソフトウェアで解釈され処理される。
【0007】
図10は、複数のバッファを用いた従来のデータ通信における動作説明図(II)である。この場合は、集積回路装置100内に、通信プロトコルで定められた各バイト数毎の記憶容量を有する複数のバッファ185、186、187と、受信データのバイト数をカウントして適切なバッファにデータを分配するデータ分配回路189とが設けられる。そして、データ分配回路189により、通信プロトコルで定められたバイト数毎に受信データの書き込み先のバッファを変更する。このようにすれば、それぞれのバッファ185、186、187に一時記憶した受信データを独立に処理できるので、データの処理効率を向上させることができる。
【0008】
次に、集積回路装置100からホストコンピュータ201にデータを送信する場合について説明する。その際、図9のように1つのバッファ182を使用する場合は、通信プロトコルで定められたフォーマットに従いRAM181に送信データを順に設定し、そのデータをバッファ182に転送してから送信を行う。
【0009】
一方、図10のように複数のバッファを使用する場合は、通信プロトコルで定められたファーマットで決まる数、サイズのバッファ185、186、187に送信データを書き込み、書き込みが終了した時点でバッファ185、186、187をフォーマットで決められた順に読み出して送信を行う。
【0010】
【発明が解決しようとする課題】
図9のように集積回路装置内に1つのバッファを設ける場合、データ受信の場合は、1つのバッファに一時記憶した受信データをRAM等のメモリに転送し、通信プロトコルで定められたバイト数毎にその受信データをソフトウェアで解釈していた。また、データ送信の場合は、RAM等のメモリに送信データを順に設定し、そのデータをバッファに転送して送信を行っていた。
【0011】
しかしながら、これらの従来の方法は通信プロトコルで定められたフォーマットが固定されている場合は有効であるが、送受信するフォーマットが複数種類存在する場合に、フォーマット毎にバッファ内の書き込み先及び読み出し先を変更することが困難になる。また、ハードウェアの変更が困難な場合はソフトウェアによって変更するしかなく、ソフトウェアの負担が大きくなり、システム処理の効率も下がるといった問題が生じていた。
【0012】
一方、図10のように集積回路装置内に複数のバッファを設ける場合は、通信プロトコルで定められたフォーマットが複数の場合に、その複数のファーマットに対して更に複数のバッファが必要になり、バッファの数が増大して集積回路装置の回路規模が大きくなってしまう。
【0013】
そこで、本発明は、通信プロトコルで定められたフォーマットが複数の場合でも、ソフトウェアへの負担を最小限とし、比較的簡単なハードウェアの切り替えで、複数のフォーマットに対応した処理や設定ができる集積回路装置を提供することを目的とする。
【0014】
【課題を解決するための手段】
上記の目的は、送受信データを一時記憶するバッファと、非分割状態の前記バッファへのアドレスを設定する非分割用アドレス設定部と、前記バッファが論理的に分割されたサブバッファ毎に設けられ、それぞれの前記サブバッファへのアドレスを設定する複数のサブバッファ用アドレス設定部と、前記サブバッファのサイズが設定されるサイズ設定部と、前記サイズ設定部に設定された前記サブバッファのサイズに応じて、前記サブバッファ用アドレス設定部に前記サブバッファ内のアドレス領域を設定し、前記バッファが非分割状態のとき前記非分割用アドレス設定部のアドレスを有効化し、前記バッファが分割状態のとき前記サブバッファ用アドレス設定部のアドレスを有効化するアドレス設定制御部とを有し、非分割状態の前記バッファは、前記非分割用アドレス設定部のアドレスに応じて、前記送受信データの書き込み又は読み出しが行われ、前記サブバッファは、対応する前記サブバッファ用アドレス設定部からのアドレスに応じて、前記送受信データの読み出し又は書き込みが行われることを特徴とする集積回路装置を提供することにより達成される。
【0015】
本発明によれば、バッファは、データの送受信時に非分割状態となり、単一のバッファとして送受信が可能である。一方、バッファは、バッファに受信したデータの読み出し時、又は送信データのバッファへの書き込み時は分割状態となり、データフォーマットに対応したサイズのサブバッファとして、独立して読み出し又は書き込みが可能である。また、サブバッファのサイズをサイズ設定部に設定するだけで、任意のサイズに分割することができる。このため、異なるデータフォーマットに対応してバッファをサブバッファに分割して使用することができ、柔軟性のある送受信バッファの構成が可能になる。
【0016】
また、本発明の集積回路装置は、複数のデータフォーマットを有する通信プロトコルプログラムを格納するメモリを有し、前記通信プロトコルプログラムによって、前記サイズ設定部にそれぞれの前記データフォーマットに応じて前記サブバッファのサイズが設定されることを特徴とする。
【0017】
本発明によれば、通信プロトコルに従ったデータフォーマットが複数存在する場合でも、通信プロトコルプログラムによりサブバッファのサイズを設定すれば送受信バッファをデータフォーマットに合わせることができ、異なるデータフォーマットに対して柔軟に対応することができる。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態について図面に従って説明する。しかしながら、かかる実施の形態が本発明の技術的範囲を限定するものではない。
【0019】
図1は、本発明の実施の形態の集積回路装置100のブロック図である。集積回路装置100は、ホストコンピュータ201に対し通信回線202を介してデータを送受信するバッファ102、バッファ102に対するデータの書き込み又は読み出し先のアドレスを設定するアドレス設定部192、アドレス設定部192に対するポインタ値とフラグを設定するアドレス設定制御部191、バッファ102に対するデータの書き込み読み出し部であるレジスタ193、バッファ102を通信フォーマットに従って分割する場合のバイト数を設定するサイズ設定部103、通信プロトコル制御プログラムを格納するROM190、CPU180等を有する。
【0020】
バッファ102は複数の通信フォーマットに対応して分割可能である。そのために、アドレス設定部192には、バッファ102が分割された場合に、分割されたそれぞれのサブバッファに対するリードポインタRP#0〜RP#2、及びライトポインタWP#0〜WP#2が設けられる。なお、バッファ102が非分割の場合は、リードポインタRPM及びライトポインタWPMが使用される。
【0021】
アドレス設定制御部191は、アドレス設定部192のポインタ値を設定すると共に、バッファ102が分割された場合に、分割されたそれぞれのサブバッファに対するエンプティフラグEF#0〜EF#2、及びフルフラグFF#0〜FF#2を有する。バッファ102が非分割の場合は、エンプティフラグEFM及びフルフラグFFMが使用される。また、バッファ分割フラグBDFは、バッファ102の分割又は非分割を示すフラグである。
【0022】
バッファ102に対するデータの書き込み及び読み出しを行うレジスタ193は、00H番地から03H番地に割り当てられる。レジスタ193の00H番地から02H番地は、分割されたそれぞれのサブバッファに対する書き込み読み出しレジスタとして利用され、03H番地はバッファ102が非分割のときに利用される。
【0023】
CPU180とレジスタ193等は、データバス194及びアドレスバス195で接続される。また、CPU180は、レジスタ193及びアドレス設定部192に、書き込みストローブ信号197又は読み出しストローブ信号196を出力し、レジスタ193内の送信データをバッファ102に書き込んだり、バッファ102から受信データをレジスタ193に読み出したり等の処理を実行する。
【0024】
また、バッファ102から受信データを読み出したり、送信データを書き込む場合、アドレス設定制御部191は、アドレス設定部192にリードライトポインタ選択信号130、ポインタ値設定信号131、133を出力し、アドレス設定部192は、アドレス設定制御部191にエンプティフラグ設定信号132、フルフラグ設定信号134を出力する。
【0025】
次に、集積回路装置100がホストコンピュータ201からデータを受信する場合について、各部の動作を順を追って説明する。
【0026】
(1)先ず、CPU180は、ROM190に格納されているフォーマットに従って、バッファ102を分割して得られるサブバッファのサイズを示すバイト数a、b、cをサイズ設定部103に書き込む。そして、集積回路装置100がデータを受信する場合、アドレス設定制御部191は、バッファ分割フラグBDFを「0」に設定して、バッファ102を非分割に設定する。
【0027】
(2)次に、アドレス設定制御部191は、アドレス設定部192の非分割用のリードポインタRPMとライトポインタWPMに初期値「0」を設定し、さらに所定の領域に深さ「a+b+c」を設定する。なお、深さ「a+b+c」は、受信データの全バイト数である。
【0028】
(3)非分割用ライトポインタWPMに初期値「0」が設定されると、そのポインタ値をアドレスにしてバッファ102はデータを受信して書き込み、書き込む毎に非分割用ライトポインタWPMをインクリメントする。
【0029】
(4)非分割用ライトポインタWPMがインクリメントされ、非分割用リードポインタRPMの値との差が深さ「a+b+c」に等しくなった時、即ち、
WPM−RPM=a+b+c
の時に、アドレス設定制御部191内の非分割用フルフラグFFMは「1」に設定される。この非分割用フルフラグFFMの「1」への設定は、アドレス設定部192により上記演算式からフルフラグ設定信号134が生成されることで行われる。
【0030】
(5)非分割用フルフラグFFMが「1」になると、アドレス設定制御部191は、アドレス設定部192内の分割用リードポインタRP#0、RP#1、RP#2に初期値「0」、「a」、「a+b」を設定し、分割用ライトポインタWP#0、WP#1、WP#2にサブバッファのサイズ(深さ)a、b、cに対応して「a」、「a+b」、「a+b+c」を設定し、有効化する。ここに、深さ「a」、「b」、「c」は、フォーマットに従った受信データのバイト数である。これによりバッファ102は論理的に分割される。また、非分割用フルフラグFFM=「1」の非反転論理により、バッファ分割フラグBDFは「1」に設定され、分割用リード、ライトポインタが有効化される。
【0031】
(6)バッファ102が論理的に分割されると、CPU180からレジスタ193への00H番地読み出し命令に応答して、分割用リードポインタRP#0のポインタ値をアドレスにしてバッファ102からデータが読み出され、レジスタ193の00H番地に書き込まれる。そして、分割用リードポインタRP#0がインクリメントされる。
【0032】
(7)レジスタ193の00H番地に対するデータの読み出しが終了し、分割用リードポインタRP#0の値と分割用ライトポインタWP#0の値が等しくなった時、即ち、
RP#0=WP#0=a
の時に、アドレス設定制御部191内の分割用エンプティフラグEF#0が「1」に設定される。この分割用エンプティフラグEF#0の「1」の設定は、アドレス設定部192により上記演算式からエンプティフラグ設定信号132が生成されることで行われる。
【0033】
(8)分割された次のサブバッファのデータを読み出すために、上記の(6)、(7)をレジスタ193の001H番地について行う。
【0034】
(9)分割された更に次のサブバッファのデータを読み出すために、上記の(6)、(7)をレジスタ193の002H番地について行う。
【0035】
(10)アドレス設定制御部191は、分割用エンプティフラグEF#0、EF#1、EF#2が全て1になるのに応答して、それらのNAND論理によりバッファ分割フラグBDFを「0」に設定し、バッファ102を非分割に切り替える。これにより、バッファ102は次のデータの受信が可能になる。
【0036】
次に、集積回路装置100がホストコンピュータ201にデータを送信する場合について説明する。データ送信はデータ受信と逆の動作となり、最初に分割状態のサブバッファに送信データを書き込み、書き込み終了後にサブバッファを非分割状態の単一のバッファに変換してデータを送信する。
【0037】
即ち、サイズ設定部103は、送信データがサブバッファに書き込まれる前に、送信フォーマットに合わせて、あらかじめサブバッファのサイズを示すa、b、cに設定され、バッファ102は、サイズ設定部103の設定に従い、3つのサブバッファに論理的に分割される。
【0038】
論理的に分割された3つのサブバッファに送信データが書き込まれると、アドレス設定制御部191はバッファ分割フラグBDFを「0」にリセットし、3つのサブバッファを単一の非分割バッファ102に戻す。
【0039】
非分割バッファ102から送信データが送信されるが、非分割バッファ102には、分割時にサイズ設定部103のサイズに従った送信データが格納されるので、非分割バッファ102は、通信プロトコルで定められた送信フォーマットのデータ列101を送信することができる。
【0040】
図2〜図4は、本発明の実施の形態の集積回路装置100におけるデータ受信時の説明図(I)〜(III)である。図2〜図4により、データ受信におけるバッファ102等の状態を説明する。
【0041】
図2(1)は、通信プロトコルで定められた受信フォーマットのデータ列101を示し、データ列101は、2バイトのデータA、4バイトのデータB、2バイトのデータCの順に通信回線202を介して受信される。
【0042】
図2(2)は、データ列101の先頭から2バイトのデータAを受信した場合のバッファ102、アドレス設定部192、アドレス設定制御部191の状態を示す。この場合、アドレス設定部192内の非分割用ライトポインタWPMは「2」となり、バッファ102に2バイトのデータAが書き込まれたことを示す。アドレス設定部192内の非分割用リードポインタRPMは、データがまだ読み出されていないため初期値「0」のままである。
【0043】
一方、アドレス設定制御部191内の非分割用エンプティフラグEFMは、バッファ102内にデータが存在してWPM≠RPMであるので「0」であり、非分割用フルフラグFFMは、データがバッファ102に全て書き込まれておらずWPM−RPM=2<8であるので「0」である。また、バッファ分割フラグBDFは「0」でありバッファ102が1つの非分割バッファとして動作していることを示す。
【0044】
図2(3)は、データ列101の受信が完了した場合のバッファ102等の状態を示す。この場合、アドレス設定部192内の非分割用ライトポインタWPMは「8」となり、バッファ102にデータ列101の8バイトのデータA、B、Cが全て書き込まれたことを示す。即ち、WPM−RPM=8になり、フルフラグ設定信号134によってアドレス設定制御部191内の非分割用フルフラグFFMは「1」にセットされ、バッファ102が受信完了であることを示す。次に、非分割用フルフラグFFM=「1」の非反転論理により、バッファ分割フラグBDFが「1」に設定されバッファは分割状態になる。
【0045】
図3(1)は、サイズ設定部103のデータに従って分割されたバッファ102等の状態を示す。この場合、サイズ設定部103は、受信するデータ列101の受信フォーマットに合わせて、あらかじめPt0=「2」、Pt1=「4」、Pt2=「2」に設定される。このサイズ設定部103への設定は、CPU180がROM190内のプログラムに従って行う。
【0046】
このように、バッファ102がデータ列101の受信を完了し、バッファ分割フラグBDFが「1」にセットされると、次の通り、バッファ102は、サイズ設定部103で設定したサイズのサブバッファ120、121、122に論理的に分割される。
【0047】
即ち、アドレス設定部192の分割用リードポインタRP#0、RP#1、RP#2には、各サブバッファの先頭アドレスを示す初期値「0」、「2」、「6」が設定され、分割用ライトポインタWP#0、WP#1、WP#2には、各サブバッファのサイズに対応した最終アドレスを示す「2」、「6」、「8」が設定され、有効化される。
【0048】
また、バッファ102にはデータが全て書き込まれていて、WP≠RPになっているので、アドレス設定制御部191の分割用エンプティフラグEF#0、EF#1、EF#2は全て「0」に設定され、WP−RP=サブバッファサイズになっているので、分割用フルフラグFF#0、FF#1、FF#2は全て「1」に設定される。これらのエンプティフラグ、フルフラグの設定は、リードポインタRPとライトポインタWP及びサブバッファサイズが設定されると、アドレス設定部192が生成するフルフラグ設定信号134、エンプティフラグ設定信号132により自動的に行われる。
【0049】
図3(2)は、バッファ102の読み出し時のタイムチャートを示す。集積回路装置100内のCPU180は、読み出しストローブ信号RDSとアドレス信号ADDを出力し、各サブバッファ122、121、120から受信データの読み出しを行う。この場合、前述のように、サブバッファ122、121、120にはそれぞれレジスタ193の00H番地、01H番地、02H番地が割り当てられる。
【0050】
図3(2)に示すように、時間t1、t2でサブバッファ122に格納された2バイトのデータA1、A2が読み出され、時間t3〜t6でサブバッファ121に格納された4バイトのデータB1、B2、B3、B4が読み出される。また、時間t7、t8でサブバッファ120に格納された2バイトのデータC1、C2が読み出される。なお、図3(2)では、サブバッファ122、121、120へのアクセスは、その順番で連続して行う場合を示したが、アドレス信号ADDを変更することにより、各サブバッファへのアクセスを、1つずつ任意の順番に行うことも可能である。
【0051】
図4(1)は、時間t4におけるバッファ102等の状態を示す。時間t4ではサブバッファ122のデータAは全て読み出されており、アドレス設定部192内の分割用リードポインタRP#0は「2」になり、RP#0=WP#0=2になった結果、アドレス設定制御部191内の分割用エンプティフラグEF#0は「1」にセットされる。尚、データAが読み出されたことで分割用フルフラグFF#0は「0」にリセットされている。
【0052】
時間t4では図3(2)に示すように、サブバッファ121はデータB2まで読み出されており、アドレス設定部192内の分割用リードポインタRP#1は「4」になり、RP#1≠WP#1であるので分割用エンプティフラグEF#1は「0」のままである。また、データBが読み出されたので、アドレス設定制御部191内の分割用フルフラグFF#1は「0」になっている。
【0053】
図4(2)は、時間t8におけるバッファ102等の状態を示す。時間t8では各サブバッファ122、121、120の全てのデータが読み出されており、アドレス設定部192内の分割用リードポインタRP#0、RP#1、RP#2はそれぞれ「2」、「6」、「8」になり、分割用ライトポインタWP#0、WP#1、WP#2の値と等しくなる。従って、アドレス設定制御部191内の分割用エンプティフラグEF#0、EF#1、EF#2は全て「1」にセットされる。また、分割用フルフラグFF#0、FF#1、FF#2は既に全て「0」にリセットされている。
【0054】
図4(3)は、読み出し終了後のバッファ102等の状態を示す。時間t8でアドレス設定制御部191内の分割用エンプティフラグEF#0、EF#1、EF#2が全て「1」にセットされると、それらのNAND論理によって自動的にバッファ分割フラグBDFが「0」にリセットされ、非分割用リード、ライトポインタRPM、WPMが有効化され、バッファ102は8バイトの1つの非分割バッファに戻る。また、非分割用リードポインタRPM及び非分割用ライトポインタWPMは「0」になり、バッファサイズ=8になって次のデータを受信するための待機状態になる。なお、WPM=RPMにより非分割用エンプティフラグEFMは「1」になり、WPM−RPM<8により非分割用フルフラグFFMは「0」になる。
【0055】
このように、本実施の形態の集積回路装置100のバッファ102は、データ受信時には1つの非分割バッファとしてデータ受信が可能であり、受信データの読み出し時は、サイズ設定部103の設定により、受信フォーマットに対応したサイズのサブバッファとして独立して読み出し可能である。このため、異なるデータフォーマットに対応して柔軟性のある送受信バッファの構成が可能になる。
【0056】
図5〜図7は、本発明の実施の形態の集積回路装置100におけるデータ送信時の説明図(I)〜(III)である。図5〜図7により、データ送信におけるバッファ102等の状態を説明する。
【0057】
図5(1)は、送信データの書き込み前のバッファ102、アドレス設定部192、アドレス設定制御部191、サイズ設定部103の状態を示す。サイズ設定部103は、送信フォーマットに合わせて、あらかじめPt0=「2」、Pt1=「4」、Pt2=「2」に設定される。
【0058】
本実施の形態の集積回路装置100は、前回のデータ送信が完了すると、アドレス設定制御部191内のバッファ分割フラグBDFが「1」にセットされ、バッファ102は、サイズ設定部103の設定に従い、3つのサブバッファ120、121、122に論理的に分割される。
【0059】
この場合、アドレス設定部192内の分割用ライトポインタWP#0、WP#1、WP#2には、各サブバッファの先頭アドレスを示す初期値「0」、「2」、「6」が設定され、分割用リードポインタRP#0、RP#1、RP#2にも、初期値「0」、「2」、「6」が設定され、有効化される。さらに、各サブバッファのサイズ「2」、「4」、「2」は図示しない領域に設定される。この場合、まだバッファ102にデータが書き込まれておらず、RP=WPであるので、エンプティフラグ設定信号132により、アドレス設定制御部191内の分割用エンプティフラグEF#0、EF#1、EF#2は全て「1」に設定される。また、WP−RP=0<2、4、2であるので、フルフラグ設定信号134により、分割用フルフラグFF#0、FF#1、FF#2は全て「0」に設定される。
【0060】
図5(2)は、バッファ102のデータ書き込み時のタイムチャートである。集積回路装置100内のCPU180は、書き込みストローブ信号WRSとアドレス信号ADDを出力し、各サブバッファへ送信データの書き込みを行う。この場合、サブバッファ122、121、120には、それぞれレジスタ193の00H番地、01H番地、02H番地が割り当てられる。
【0061】
図5(2)に示すように、時間t1、t2でバッファ122にデータA1、A2が書き込まれ、時間t3〜t6でバッファ121にデータB1、B2、B3、B4が書き込まれ、時間t7、t8でバッファ120にデータC1、C2が書き込まれる。なお、図5(2)では、サブバッファ122、121、120への書き込みを、その順番で連続して行う場合を示したが、アドレス信号ADDを変更することにより、1つずつ任意の順番に書き込むことも可能である。
【0062】
図6(1)は、時間t4におけるバッファ102等の状態を示す。時間t4ではサブバッファ122にデータAが全て書き込まれており、アドレス設定部192内の分割用ライトポインタWP#0は「2」になり、WP#0−RP#0=2になるので、アドレス設定制御部191内の分割用フルフラグFF#0は「1」になっている。さらに、データAが書き込まれたことでWP#0≠RP#0になり、分割用エンプティフラグEF#0は「0」になっている。サブバッファ122にデータAが全て書き込まれ、分割用フルフラグFF#0が「1」に設定されると、アドレス設定制御部191により、分割用ライトポインタWP#1とリードポインタRP#1が有効化される。
【0063】
その後、サブバッファ121には、時間t4までにデータB2までのデータが書き込まれ、アドレス設定部192内の分割用ライトポインタWP#1は「4」になり、WP#1−RP#1=2<4であるので分割用フルフラグFF#1は「0」のままである。但し、データB1、B2が書き込まれたためWP#1≠RP#1になり、アドレス設定制御部191内の分割用エンプティフラグEF#1は「0」になっている。
【0064】
図6(2)は、時間t8におけるバッファ102等の状態を示す。時間t8では各サブバッファ122、121、120に全てのデータが書き込まれ、アドレス設定部192内の分割用ライトポインタWP#0、WP#1、WP#2はそれぞれ「2」、「6」、「8」になり、分割用リードポインタRP#0、RP#1、RP#2の値との差がそれぞれのサブバッファサイズと等しくなる。従って、アドレス設定制御部191内の分割用フルフラグFF#0、FF#1、FF#2は全て「1」にセットされる。また、分割用エンプティフラグEF#0、EF#1、EF#2はRP≠WPになった時点で全て「0」にリセットされている。
【0065】
図7(1)は、送信データの書き込み終了後のバッファ102等の状態を示す。時間t8でアドレス設定制御部191内の分割用フルフラグFF#0、FF#1、FF#2が全て「1」にセットされると、NAND論理により自動的にバッファ分割フラグBDFが「0」にリセットされ、非分割用リード、ライトポインタRPM、WPMが有効化され、バッファ102は8バイトの非分割バッファに戻る。また、アドレス設定制御部191により非分割用ライトポインタWPMは「8」に設定され、非分割用リードポインタRPMは初期値「0」に設定されて、データを送信するための待機状態になる。なお、バッファ102はまだデータを送信しておらず、WPM≠RPMであるので、アドレス設定制御部191の非分割用エンプティフラグEFMは「0」になり、WPM−RPM=8であるので非分割用フルフラグFFMは「1」になる。
【0066】
図7(2)は、通信プロトコルで定められた送信フォーマットのデータ列101を示し、データ列101は、2バイトのデータA、4バイトのデータB、2バイトのデータCの順にバッファ102から送信される。1バイトのデータが送信される毎に、非分割用リードポインタRPMがインクリメントされる。
【0067】
図7(3)は、送信完了時のバッファ102等の状態を示す。この場合、アドレス設定部192内の非分割用リードポインタRPMは「8」になり、バッファ102の8バイトのデータA、B、Cが全て読み出されたことを示す。また、RPM=WPM=8によりエンプティフラグ設定信号132が生成され、アドレス設定制御部191内の非分割用エンプティフラグEFMは「1」になり、バッファ102が送信完了であることを示す。
【0068】
このように、本実施の形態の集積回路装置100のバッファ102は、データ送信時には1つの非分割バッファとしてデータ送信が可能であり、送信データの書き込み時に、サイズ設定部103の設定により、送信フォーマットに対応したサイズに分割可能である。このため、異なるデータフォーマットに対応してバッファをサブバッファに分割して使用することができ、柔軟性のある送受信バッファの構成が可能になる。従って、CPU180は、サイズ設定部103を設定するだけで良く、簡単なハードウェアで、送信データのファーマットに従った任意のサイズのサブバッファに分割することができる。
【0069】
なお、以上の説明では、送信又は受信において8バイトのバッファ102を通信フォーマットの構成に従って3分割する場合を説明したが、バッファ102は3分割以下であれば2分割にすることも可能である。
【0070】
即ち、本実施の形態の集積回路装置100では、バッファ102の分割数は固定的になるが、アドレス設定部192及びアドレス設定制御部191内に通信フォーマットの最大分割数Md分のリードポインタ、ライトポインタ、エンプティフラグ、フルフラグを設け、サイズ設定部103も最大分割数Md分設ければ、バッファ102を最大分割数Md以下の分割数で動作させることが可能である。
【0071】
この場合は、通信フォーマットに対応した最大分割数Md以下のリードポインタ、ライトポインタ、エンプティフラグ、フルフラグを使用し、そのリードポインタ、ライトポインタの初期値と深さ(サブバッファサイズ)を通信フォーマットに従って設定する。そして、そのエンプティフラグ、フルフラグの値により、バッファ102の分割、非分割を制御すれば、最大分割数Md以下の分割数の通信フォーマットに対応可能である。
【0072】
図8は、本発明の他の実施の形態の集積回路装置のブロック図である。この実施の形態では、CPU180がソフトウェアによりバッファ102の分割、非分割の切替えを指示できる。図1の実施の形態と共通する部分の説明は省略し、異なる部分について説明する。
【0073】
図8の集積回路装置100においては、アドレス設定制御部191内にバッファ分割フラグを設けず、アドレス設定制御部191とは別にバッファ分割レジスタ104を設ける。そして、CPU180が、データバス194及びアドレスバス195を介してバッファ分割レジスタ104を制御する。従って、CPU180は、バッファ102の分割、非分割をソフトウェアにより切替えることができ、複数の通信フォーマットに柔軟に対応することができる。
【0074】
なお、アドレス設定制御部191は、分割用フルフラグFF#0〜FF#3のNAND論理又は非分割用フルフラグFFMの非反転論理により、バッファ分割レジスタ104を設定するのは、第1の実施の形態と同じである。
【0075】
【発明の効果】
以上説明した通り、本発明によれば、バッファは、データ送受信時に単一の非分割バッファとして送受信が可能である。一方、バッファから受信データを読み出す時、又はバッファへ送信データを書き込む時は、データフォーマットに対応したサイズのサブバッファに論理的に分割され独立して読み出し又は書き込みが可能である。このため、異なるデータフォーマットに対して、柔軟性のある送受信バッファの構成が可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態の集積回路装置のブロック図である。
【図2】本発明の実施の形態のデータ受信時(書込み)の説明図(I)である。
【図3】本発明の実施の形態のデータ受信時(読出し)の説明図(II)である。
【図4】本発明の実施の形態のデータ受信時(読出し)の説明図(III)である。
【図5】本発明の実施の形態のデータ送信時(書込み)の説明図(I)である。
【図6】本発明の実施の形態のデータ送信時(書込み)の説明図(II)である。
【図7】本発明の実施の形態のデータ送信時(読出し)の説明図(III)である。
【図8】本発明の他の実施の形態の集積回路装置のブロック図である。
【図9】従来のデータ通信における動作説明図(I)である。
【図10】従来のデータ通信における動作説明図(II)である。
【符号の説明】
100 集積回路装置
102 バッファ
103 サイズ設定部
104 バッファ分割レジスタ
180 CPU
190 ROM
191 アドレス設定制御部
192 アドレス設定部
193 レジスタ
201 ホストコンピュータ
Claims (8)
- 送受信データを一時記憶するバッファと、
非分割状態の前記バッファへのアドレスを設定する非分割用アドレス設定部と、
前記バッファが論理的に分割されたサブバッファ毎に設けられ、それぞれの前記サブバッファへのアドレスを設定する複数のサブバッファ用アドレス設定部と、
前記サブバッファのサイズが設定されるサイズ設定部と、
前記サイズ設定部に設定された前記サブバッファのサイズに応じて、前記サブバッファ用アドレス設定部に前記サブバッファ内のアドレス領域を設定し、前記バッファが非分割状態のとき前記非分割用アドレス設定部のアドレスを有効化し、前記バッファが分割状態のとき前記サブバッファ用アドレス設定部のアドレスを有効化するアドレス設定制御部とを有する集積回路装置であって、
前記集積回路装置の外部回路と前記バッファとの間でデータを送受信する場合は前記バッファは非分割状態に設定され、前記バッファと前記集積回路装置の内部回路との間でデータを送受信する場合は前記バッファは分割状態に設定され、
前記非分割状態の前記バッファは、前記非分割用アドレス設定部のアドレスに応じて、前記送受信データの書き込み又は読み出しが行われ、前記サブバッファは、対応する前記サブバッファ用アドレス設定部からのアドレスに応じて、前記送受信データの読み出し又は書き込みが行われることを特徴とする集積回路装置。 - 送受信データを一時記憶するバッファと、
非分割状態の前記バッファへのアドレスを設定する非分割用アドレス設定部と、
前記バッファが論理的に分割されたサブバッファ毎に設けられ、それぞれの前記サブバッファへのアドレスを設定する複数のサブバッファ用アドレス設定部と、
前記サブバッファのサイズが設定されるサイズ設定部と、
前記サイズ設定部に設定された前記サブバッファのサイズに応じて、前記サブバッファ用アドレス設定部に前記サブバッファ内のアドレス領域を設定し、前記バッファが非分割状態のとき前記非分割用アドレス設定部のアドレスを有効化し、前記バッファが分割状態のとき前記サブバッファ用アドレス設定部のアドレスを有効化するアドレス設定制御部とを有し、
前記非分割状態の前記バッファは、前記非分割用アドレス設定部のアドレスに応じて、前記送受信データの書き込み又は読み出しが行われ、前記サブバッファは、対応する前記サブバッファ用アドレス設定部からのアドレスに応じて、前記送受信データの読み出し又は書き込みが行われ、
前記アドレス設定制御部は、前記非分割のバッファ及び前記サブバッファに対するデータの書き込み又は読み出し状態を示すエンプティフラグ及びフルフラグを有し、
前記エンプティフラグ又はフルフラグに応じて前記バッファの非分割状態と分割状態の切替えを行うことを特徴とする集積回路装置。 - 送受信データを一時記憶するバッファと、
非分割状態の前記バッファへのアドレスを設定する非分割用アドレス設定部と、
前記バッファが論理的に分割されたサブバッファ毎に設けられ、それぞれの前記サブバッファへのアドレスを設定する複数のサブバッファ用アドレス設定部と、
前記サブバッファのサイズが設定されるサイズ設定部と、
前記サイズ設定部に設定された前記サブバッファのサイズに応じて、前記サブバッファ用アドレス設定部に前記サブバッファ内のアドレス領域を設定し、前記バッファが非分割状態のとき前記非分割用アドレス設定部のアドレスを有効化し、前記バッファが分割状態のとき前記サブバッファ用アドレス設定部のアドレスを有効化するアドレス設定制御部とを有し、
前記非分割状態の前記バッファは、前記非分割用アドレス設定部のアドレスに応じて、 前記送受信データの書き込み又は読み出しが行われ、前記サブバッファは、対応する前記サブバッファ用アドレス設定部からのアドレスに応じて、前記送受信データの読み出し又は書き込みが行われ、
前記サブバッファ用アドレス設定部は、複数のデータフォーマットのうちの最大分割数に相当する個数備えられ、
第1のデータフォーマットでは、全ての前記サブバッファ用アドレス設定部に前記サブバッファのアドレスが設定され、
第2のデータフォーマットでは、前記最大分割数より少ない前記サブバッファ用アドレス設定部に前記サブバッファのアドレスが設定されることを特徴とする集積回路装置。 - 請求項1又は3において、
前記アドレス設定制御部は、前記バッファの非分割状態と分割状態の切替えを行うことを特徴とする集積回路装置。 - 請求項4において、
前記アドレス設定制御部は、前記非分割のバッファ及び前記サブバッファに対するデータの書き込み又は読み出し状態を示すエンプティフラグ及びフルフラグを有し、
前記エンプティフラグ又はフルフラグに応じて前記バッファの非分割状態と分割状態の切替えを行うことを特徴とする集積回路装置。 - 請求項4において、
前記アドレス設定制御部は、前記バッファの非分割状態又は分割状態が指定されるバッファ分割フラグを有し、
前記アドレス設定制御部は、該バッファ分割フラグに応じて前記バッファの非分割状態と分割状態の切替えを行うことを特徴とする集積回路装置。 - 請求項1乃至3のいずれかにおいて、
複数のデータフォーマットを有する通信プロトコルプログラムを格納するメモリを有し、
前記通信プロトコルプログラムによって、前記サイズ設定部にそれぞれの前記データフォーマットに応じて前記サブバッファのサイズが設定されることを特徴とする集積回路装置。 - 請求項1又は2において、
前記サブバッファ用アドレス設定部は、複数のデータフォーマットのうちの最大分割数に相当する個数備えられ、
第1のデータフォーマットでは、全ての前記サブバッファ用アドレス設定部に前記サブバッファのアドレスが設定され、
第2のデータフォーマットでは、前記最大分割数より少ない前記サブバッファ用アドレス設定部に前記サブバッファのアドレスが設定されることを特徴とする集積回路装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30297298A JP3573630B2 (ja) | 1998-10-23 | 1998-10-23 | 送受信バッファを備える集積回路装置 |
US09/241,082 US6321280B1 (en) | 1998-04-20 | 1999-02-01 | System LSI having communication function |
KR1019990012830A KR100334044B1 (ko) | 1998-04-20 | 1999-04-12 | 통신 기능을 갖는 시스템 lsi |
US09/928,355 US6353864B1 (en) | 1998-04-20 | 2001-08-14 | System LSI having communication function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30297298A JP3573630B2 (ja) | 1998-10-23 | 1998-10-23 | 送受信バッファを備える集積回路装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000134268A JP2000134268A (ja) | 2000-05-12 |
JP3573630B2 true JP3573630B2 (ja) | 2004-10-06 |
Family
ID=17915389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30297298A Expired - Fee Related JP3573630B2 (ja) | 1998-04-20 | 1998-10-23 | 送受信バッファを備える集積回路装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3573630B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116931842B (zh) * | 2023-09-12 | 2023-12-08 | 合肥康芯威存储技术有限公司 | 一种存储器、数据处理方法、电子设备及介质 |
-
1998
- 1998-10-23 JP JP30297298A patent/JP3573630B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000134268A (ja) | 2000-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5961640A (en) | Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion | |
US6260137B1 (en) | Data processing unit with digital signal processing capabilities | |
US6421770B1 (en) | Buffer memory configuration having a memory between a USB and a CPU | |
JPH037300B2 (ja) | ||
JP3513291B2 (ja) | データ転送装置 | |
US7191262B2 (en) | High-throughput UART interfaces | |
US5901291A (en) | Method and apparatus for maintaining message order in multi-user FIFO stacks | |
US20020133645A1 (en) | Direct memory access controller for converting a transfer mode flexibly in accordance with a data transfer counter value | |
US6128733A (en) | Program loading method and apparatus | |
JP3573630B2 (ja) | 送受信バッファを備える集積回路装置 | |
JP3935286B2 (ja) | データ処理装置における書き込みバッファ | |
JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
US6681273B1 (en) | High performance, variable data width FIFO buffer | |
JPS6211736B2 (ja) | ||
KR19990083137A (ko) | 통신 기능을 갖는 시스템 lsi | |
CA1258129A (en) | Variable wordlength computing module for dataflow processors | |
JP3418734B2 (ja) | シリアルデータ転送方法 | |
KR0165518B1 (ko) | 그래픽 콘트롤러의 데이타 패킹 fifo | |
JPH05289961A (ja) | アドレス生成装置 | |
JP2985201B2 (ja) | マイクロコンピュータ | |
EP0866406A1 (en) | Notification of message arrival in a parallel computer system | |
JPH09198340A (ja) | バス変換装置 | |
JPH10312356A (ja) | データ転送装置 | |
JPH04363760A (ja) | ディジタル信号処理プロセッサ | |
JPH1173315A (ja) | 可変長命令プロセサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040317 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040629 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080709 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090709 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100709 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110709 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120709 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120709 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130709 Year of fee payment: 9 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |