(57)【要約】【課題】  ショートパケットに対する処理性能をより向上させる。【解決手段】  パケット伝送用の送受信データを格納するＳＤＲＡＭ１６と、送受信データの格納先情報を記憶するディスクリプタ１５と、送受信データにアクセスするイーサネット（登録商標）コントローラ１１ａ、１１ｂと、パケットの送受信に際し、ディスクリプタとイーサネット（登録商標）コントローラとを制御するＣＰＵコア１０と、を備える。ディスクリプタとイーサネット（登録商標）コントローラとは、バス２２で直接接続され、ディスクリプタとＳＤＲＡＭとＣＰＵコアとイーサネット（登録商標）コントローラとは、バス２１を介して接続される。イーサネット（登録商標）コントローラ１１ａ、１１ｂは、バス２２を介して読み出した格納先情報に基づいて、バス２１を介して送受信データにアクセスする。【選択図】  図１
2006313427.tif 000002
【特許請求の範囲】
【請求項１】
パケット伝送用の送受信データを格納する記憶部との間でデータ転送を行うＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）機能を有する周辺処理部と、前記ＤＭＡ機能によるＤＭＡにおける格納先情報を記憶する記述子格納部とを接続する第１のバスと、
前記データ転送を行うために前記記憶部と前記周辺処理部とを接続する第２のバスと、
を備えることを特徴とするパケット処理装置。
【請求項２】
パケット伝送用の送受信データを格納する記憶部と、
前記記憶部にアクセスするＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）機能を有する周辺処理部と、
前記ＤＭＡ機能によるＤＭＡにおける格納先情報を記憶する記述子格納部と、
パケットの送受信に際し、前記記述子格納部と前記周辺処理部とを制御する制御部と、
前記記述子格納部と前記周辺処理部とを接続する第１のバスと、
前記記述子格納部と前記記憶部と前記制御部と前記周辺処理部とを接続する第２のバスと、
を備え、
前記周辺処理部は、前記第１のバスを介して読み出した前記格納先情報に基づいて、前記第２のバスを介して前記記憶部にアクセスすることを特徴とするパケット処理装置。
【請求項３】
前記周辺処理部は、複数個存在することを特徴とする請求項１または２記載のパケット処理装置。
【請求項４】
前記複数の周辺処理部の少なくとも一つは、外部とパケット伝送を行う通信インタフェース部を含むことを特徴とする請求項３記載のパケット処理装置。
【請求項５】
前記格納先情報は、前記送受信データの格納状態を示すステータスと、前記送受信データの格納先を示すポインタとを含み、
前記周辺処理部は、前記記憶部にアクセスするに際し、アクセス前に前記ステータスと前記ポインタとを読出し、前記ポインタに基づいて前記記憶部にアクセスし、前記送受信データのアクセス終了後に前記ステータスを書き換えることを特徴とする請求項１または２記載のパケット処理装置。
【請求項６】
前記記述子格納部と前記周辺処理部と前記制御部と前記第１のバスと前記第２のバスとを同一のチップ内に含むように構成されることを特徴とする請求項２記載のパケット処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット処理装置に関し、特にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によって内部のデータ転送を行うパケット処理装置に関する。
【背景技術】
【０００２】
近年、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）を筆頭とするブロードバンド回線が広く家庭まで普及し、２００４年９月末の実績では１７００万回線に達している。今後、より高速で多様な通信を達成するためにはＦＴＴＨ（Ｆｉｂｅｒ−Ｔｏ−Ｔｈｅ−Ｈｏｍｅ）が普及していくと考えられている。光ファイバを利用するためその高速性を利用し、様々なデータを流すことが可能であり、映像配信やＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）によるＩＰ電話そしてインターネット接続を同時に行うトリプルプレイが実現可能となる。これを実現するためには、より高速なルータや回線終端装置が必要となり、このようなパケット処理装置に搭載されるネットワークプロセッサも処理性能が高いものが要求される。処理性能を上げることでパケットのロスを低減してスループットを向上させ、高速で安定した通信が可能となる。
【０００３】
このようなパケット処理装置の構成例を図４に示す。図４において、ＣＰＵ１００は、１チップＣＰＵであって、ＣＰＵコア１１０、イーサネット（登録商標）コントローラ１１１、ＩＰｓｅｃエンジン１１２、ＳＤＲＡＭコントローラ１１３を含む。ＣＰＵコア１１０は、ＬＳＩ全体を制御するであり、データバス１２１を有している。イーサネット（登録商標）コントローラ１１１は、回線制御を行い、内部にＤＭＡコントローラを有し、ＣＰＵに依存せずデータバス１２１に接続されているメモリに対してデータ転送を可能としている。ＩＰｓｅｃエンジン１１２は、ＩＰパケットの暗号化と認証の処理を行い、内部にＤＭＡコントローラ（ＤＭＡＣ）を有し、ＣＰＵに依存せずデータバス１２１に接続されているメモリに対してデータ転送を可能としている。ＳＤＲＡＭコントローラ１１３は、外部に接続されるＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４を制御する。ＳＤＲＡＭ１１４は、ＣＰＵ１００の外部に接続され、ＳＤＲＡＭ１１４の内部には処理すべきデータ領域１１５とＤＭＡ処理において使用されるディスクリプタ１１６とが存在する。ＳＤＲＡＭ１１４内に構成されるディスクリプタ１１６には、イーサネット（登録商標）コントローラ１１１用に送信ディスクリプタと受信ディスクリプタとが含まれる。データ領域１１５が送受信処理の対象となるデータを格納する。
【０００４】
次にデータ送受信における動作について説明する。データ送信を実行する場合、以下の（１）〜（４）のように動作する。
【０００５】
（１）ＣＰＵコア１１０は、ディスクリプタ１１６に送信のデータのポインタとステータスをセットする。この時のデータの流れとしては、ＣＰＵコア１１０→ＣＰＵデータバス１２１→ＳＤＲＡＭコントローラ１１３→ＳＤＲＡＭ１１４内のディスクリプタ１１６となる。
【０００６】
（２）イーサネット（登録商標）コントローラ１１１は、ディスクリプタ１１６中のデータのポインタを読出す。この時のデータの流れとしては、ＳＤＲＡＭ１１４内のディスクリプタ１１６→ＳＤＲＡＭコントローラ１１３→ＣＰＵデータバス１２１→イーサネット（登録商標）コントローラ１１１となる。
【０００７】
（３）イーサネット（登録商標）コントローラ１１１は、ＤＭＡ機能を使用してＳＤＲＡＭ１１４からデータを取り出す。この時のデータの流れとしては、ＳＤＲＡＭ１１４内のデータ領域１１５→ＳＤＲＡＭコントローラ１１３→ＣＰＵデータバス１２１→イーサネット（登録商標）コントローラ１１１となる。
【０００８】
（４）イーサネット（登録商標）コントローラ１１１は、ＤＭＡ機能を使用してステータスをディスクリプタ１１６に格納する。この時のデータの流れとしては、イーサネット（登録商標）コントローラ１１１→ＣＰＵデータバス１２１→ＳＤＲＡＭコントローラ１１３→ＳＤＲＡＭ１１４内のディスクリプタ１１６となる。
【０００９】
ＣＰＵデータバス１２１は、まず、ＳＤＲＡＭ１１４内のディスクリプタ１１６に各種設定を行うため使用される。次に各種設定を読み出すために使われる。そして、送信データをＳＤＲＡＭ１１４内のデータ領域１１５からイーサネット（登録商標）コントローラ１１１へ転送する際に使用される。更に、ステータスを再度ＳＤＲＡＭ１１４内のディスクリプタ１１６に書き込むために使用される。ＣＰＵデータバス１２１は、一連のデータ転送に、ディスクリプタ１１６の設定、ディスクリプタ１１６の読み込み、データの転送、ディスクリプタ１１６へのステータスの書き込みと４回使用され、バスの使用率が高い。
【００１０】
一方、データ受信を実行する場合、以下の（５）〜（８）のように動作する。
【００１１】
（５）ＣＰＵコア１１０は、ディスクリプタ１１６に受信のデータのポインタとステータスをセットする。この時のデータの流れとしては、ＣＰＵコア１１０→ＣＰＵデータバス１２１→ＳＤＲＡＭコントローラ１１３→ＳＤＲＡＭ１１４内のディスクリプタ１１６となる。
【００１２】
（６）イーサネット（登録商標）コントローラ１１１は、ディスクリプタ１１６中の受信のデータのポインタを読出す。この時のデータの流れとしては、ＳＤＲＡＭ１１４内のディスクリプタ１１６→ＳＤＲＡＭコントローラ１１３→ＣＰＵデータバス１２１→イーサネット（登録商標）コントローラ１１１となる。
【００１３】
（７）イーサネット（登録商標）コントローラ１１１は、受信データをＳＤＲＡＭ１１４へ格納する。この時のデータの流れとしては、イーサネット（登録商標）コントローラ１１１→ＣＰＵデータバス１２１→ＳＤＲＡＭコントローラ１１３→ＳＤＲＡＭ１１４内のデータ領域１１５となる。
【００１４】
（８）イーサネット（登録商標）コントローラ１１１は、ステータスを受信用のディスクリプタ１１６へ格納する。この時のデータの流れとしては、イーサネット（登録商標）コントローラ１１１→ＣＰＵデータバス１２１→ＳＤＲＡＭコントローラ１１３→ＳＤＲＡＭ１１４内のディスクリプタ１１６となる。
【００１５】
ＣＰＵデータバス１２１は、まず、ＳＤＲＡＭ１１４内の受信用のディスクリプタ１１６へアクセスし、ＤＭＡ動作に対する各種設定を行うために使用される。次に各種設定を読み出すために使われる。そして、受信データをイーサネット（登録商標）コントローラ１１１からＳＤＲＡＭ１１４内のデータ領域１１５への格納時に使用される。更に、ステータスを書き込むために、再度ＳＤＲＡＭ１１４内のディスクリプタ１１６へアクセスするために使用される。このようにＣＰＵデータバスＢ１は、送信時と同様に一連のデータ受信に際し４回使用され、バスの使用率が高い。
【００１６】
以上のように図４に示すパケット処理装置は、ＣＰＵデータバス１２１の使用率が高く、バスによるデータ転送処理能力が低く制限されてしまう。そこでＤＭＡおよびディスクリプタをそれぞれ分離したバスに配し、パケット処理性能を向上させるパケット処理装置が特許文献１に開示されている。このパケット処理装置は、図５に示すようにＣＰＵ２１０のプログラムを格納してバスＢ１に接続される第一のメモリ２１２と、ＤＭＡ処理を行うためのディスクリプタを格納してバスＢ３に接続される第二のメモリ２１４と、パケットデータを格納してバスＢ２に接続される第三のメモリ２１８を持ち、第一、第二、第三メモリの間をそれぞれ第１のバス制御部２１３、第２のバス制御部２１５で分離するように構成される。また、バスＢ２には、ＤＭＡ制御部２１６、回線制御部２１７１〜２１７ｎが接続され、ＤＭＡ制御部２１６は、回線制御部２１７１〜２１７ｎにおけるＤＭＡのマスター動作およびスレーブ動作を制御する。このような構成のパケット処理装置は、バスを分離してそれぞれのバスを独立に動作させることにより、パケット処理性能を向上させている。
【００１７】
【特許文献１】特開平１０−３４１２５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
ところで、映像配信やＶｏＩＰの伝送では、リアルタイム処理が重要であり、さらに処理遅延の少ないことが求められる。遅延が問題となるようなデータについては、ある一定間隔でサービスを行う必要がある。通常、イーサネット（登録商標）のフレーム中のペイロードは、６４バイトから１５００バイトである。１５００バイトのフレームであれば、データ部分が大多数を占めており、データ転送に対するディスクリプタへのアクセスの割合は少ない。しかしながら、ＶｏＩＰ等の伝送では、音声の欠落を防ぐように、パケット長をできるだけ短くして（ショートパケットにして）、送受信することが求められる。例えば、６４バイトなどの小さなペイロードを持つショートパケットを使っても、スループットが落ちないようにする必要がある。この場合、６４バイトのフレームを連続で送信、受信すると、頻繁にディスクリプタへのアクセスが生じることになる。
【００１９】
ここで、ディスクリプタへのアクセスの割合について具体的な数値例を用いて説明する。６４バイトフレームでは、プリアンブル（８Ｂｙｔｅ）とパケット間ギャップ（９６ｂｉｔ）を加え、
６４Ｂｙｔｅ＋８Ｂｙｔｅ＋９６ｂｉｔ＝（６４＋８）＊８ｂｉｔ＋９６ｂｉｔ＝５７６ｂｉｔ＋９６ｂｉｔ＝６７２ｂｉｔ
のデータとなる。今、イーサネット（登録商標）として１００ＢＡＳＥ−ＴＸを仮定すると、送信に必要な時間は、６．７２μ秒である。この時間内に全ての処理を行うことができれば、１００Ｍｂｐｓのスループットを実現することができる。
【００２０】
この送信処理を実行するために必要なクロック数は、イーサネット（登録商標）コントローラの送信側では、ディスクリプタのリードに１７クロック、データのリードに３８クロック、ディスクリプタのライトに１２クロックで、合計６７クロックである。この時、一般に受信側も同時に動作しているので、イーサネット（登録商標）コントローラの受信側では、ディスクリプタのリードに１７クロック、データのライトに３２クロック、ディスクリプタのライトに１２クロックで、合計６１クロック必要となる。
【００２１】
なおここでは、バスをアクセスするためには所定のプロトコルが必要あって、ＳＤＲＡＭへのアクセスの場合は、リードで１３クロック、ライトで８クロック必要であると仮定している。ディスクリプタを４バイトのデータとすれば、４バイト分のアクセスで合計１７クロックとなる（１バイト分のアクセスで１クロック必要と仮定する）。
【００２２】
また、高速なパケット処理装置では、ＬＡＮ側とＷＡＮ側とでイーサネット（登録商標）を２チャンネル搭載しており、２つのコントローラが動作するように構成される。もう一つのイーサネット（登録商標）コントローラも送受信の実行において、６７クロック（送信）と６１クロック（受信）が必要となる。したがって、イーサネット（登録商標）コントローラ２チャンネル分で、合計すると２５６クロック必要となる。
【００２３】
ＣＰＵデータバスの速度が１３３ＭＨｚであると仮定し、２５６クロックを時間で表すと、１．９２μ秒になり、バス占有率を計算すると、６．７２μ秒中、１．９２μ秒を使用していることになるため、１．６８／６．７２＝０．２８５＝２８．５％となる。一方、ディスクリプタのアクセスを行わないとすれば、トータルクロック数は、２５６クロックからディスクリプタアクセス分の１１６（＝（１７＋１２）×２×２）クロックを除く、１４０クロックに減るため、１．０５μ秒になり、占有率は、１．０５／６．７２＝０．１５６＝１５．６％となる。
【００２４】
さらに、ここでは説明を省いたが、ＩＰｓｅｃエンジン１１２にもＤＭＡＣがあって、これもイーサネット（登録商標）コントローラと同様にディスクリプタへのアクセスとＳＤＲＡＭへのＤＭＡを実行する。この場合には、さらにバス占有率は、上がることになる。
【００２５】
このようにショートパケットでの処理を行う場合には、データアクセスにほぼ近いくらいのディスクリプタアクセス処理が必要となってしまう。さらに、実際のプロセッサのＣＰＵバスでは、イーサネット（登録商標）コントローラのほかにも、ＣＰＵ自身のアクセス、暗号マクロ、ＰＣＩコントローラなど、いくつもの処理が実行され、バス占有率は極めて高く、パケット処理性能が低下する。
【００２６】
ところで、特許文献１のパケット処理装置にあっては、ＤＭＡ制御部２１６がディスクリプタを格納している第二のメモリ２１４にアクセスする際にバスＢ２を占有する。したがって、バスＢ２は、ディスクリプタへのアクセス、および回線制御部２１７１〜２１７ｎと第三のメモリ２１８間のＤＭＡ転送において占有され、バス占有率は極めて高い。
【００２７】
また、パケット処理を行うためには、ＣＰＵ２１０が第三のメモリ部２１８に格納されているデータを読み出してフレーム処理を実行する必要が生じるため、第三のメモリ部２１８からＣＰＵ２１０のワークデータを格納する第一のメモリ部２１２へのデータ転送が発生する。この場合にＣＰＵ２１０がバスＢ２、Ｂ３を占有するため、ＤＭＡ制御部２１６は、次のＤＭＡあるいはＤＭＡ終了時のためのディスクリプタへのアクセスを行うことができない。
【００２８】
さらに、第二のメモリ部２１４に対してＣＰＵ２１０とＤＭＡ制御部２１６が同時にアクセスした場合、どちらかがアクセス待ち状態になってしまう。
【００２９】
以上のように従来のパケット処理装置では、ＤＭＡコントローラがデータ転送と同時にディスクリプタへのアクセスを行うことができないので、特にショートパケット処理時の性能が低下してしまう。
【課題を解決するための手段】
【００３０】
上記課題を解決するために、本発明の一つのアスペクトに係るパケット処理装置は、パケット伝送用の送受信データを格納する記憶部との間でデータ転送を行うＤＭＡ機能を有する周辺処理部と、ＤＭＡ機能によるＤＭＡにおける格納先情報を記憶する記述子格納部とを接続する第１のバスと、データ転送を行うために記憶部と周辺処理部とを接続する第２のバスと、を備える。
【００３１】
本発明の他のアスペクトに係るパケット処理装置は、パケット伝送用の送受信データを格納する記憶部と、記憶部にアクセスするＤＭＡ機能を有する周辺処理部と、ＤＭＡ機能によるＤＭＡにおける格納先情報を記憶する記述子格納部と、パケットの送受信に際し、記述子格納部と周辺処理部とを制御する制御部と、記述子格納部と周辺処理部とを直接接続する第１のバスと、記述子格納部と記憶部と制御部と周辺処理部とを接続する第２のバスと、を備え、周辺処理部は、第１のバスを介して読み出した格納先情報に基づいて、第２のバスを介して記憶部にアクセスする。
【発明の効果】
【００３２】
本発明によれば、ディスクリプタと周辺回路を接続する専用バスを設けることで、メインバスが使用中であっても、同時に周辺回路がディスクリプタへアクセスすることが可能となる。したがって、メインバスのトラフィックが削減され、パケット処理性能をより向上させることができる。
【発明を実施するための最良の形態】
【００３３】
本発明の実施形態に係るパケット処理装置は、パケット伝送用の送受信データを格納するＳＤＲＡＭ（図１の１６）と、送受信データの格納先情報を記憶するディスクリプタ（図１の１５）と、送受信データにアクセスするイーサネット（登録商標）コントローラ（図１の１１ａ、１１ｂ）と、パケットの送受信に際し、ディスクリプタとイーサネット（登録商標）コントローラとを制御するＣＰＵコア（図１の１０）と、を備える。ディスクリプタとイーサネット（登録商標）コントローラとは、第１のバス（図１の２２）で直接接続され、ディスクリプタとＳＤＲＡＭとＣＰＵコアとイーサネット（登録商標）コントローラとは、第２のバス（図１の２１）を介して接続される。イーサネット（登録商標）コントローラは、第１のバスを介して読み出した格納先情報に基づいて、第２のバスを介して送受信データにアクセスする。
【００３４】
以上のように構成されるパケット処理装置は、メインバスである第２のバスが使用中であっても、同時にイーサネット（登録商標）コントローラが第１のバスを介してディスクリプタへアクセスすることが可能となる。したがって、第２のバスのトラフィックが削減され、特にショートパケットの送受における処理性能が向上する。以下、実施例に即し、図面を参照して詳しく説明する。
【実施例１】
【００３５】
図１は、本発明の実施例に係るパケット処理装置の構成を示すブロック図である。図１において、パケット処理装置は、ＣＰＵ５とＳＤＲＡＭ１６を備える。ＣＰＵ５は、１チップのＬＳＩであって、ＣＰＵコア１０、イーサネット（登録商標）コントローラ１１ａ、１１ｂ、ＩＰｓｅｃエンジン１２、ＳＤＲＡＭコントローラ１３、ディスクリプタコントローラ１４、オンチップのディスクリプタ１５、ＳＤＲＡＭ１６、ＣＰＵデータバス２１、バス２２を備える。なお、パケット処理装置は、その他各種処理機能を有するが、本発明に関わらないので、その説明を省略する。
【００３６】
ＣＰＵコア１０は、ＣＰＵ全体を制御する中央演算装置である。イーサネット（登録商標）コントローラ１１ａ、１１ｂは、装置外部のネットワークに接続され、イーサネット（登録商標）のＭＡＣ（メディアアクセスコントロール）処理を行い、内蔵されるＤＭＡＣ（ＤＭＡコントローラ）を介して外部データメモリであるＳＤＲＡＭ１６のデータ転送を制御する。ＩＰｓｅｃエンジン１２は、ＤＭＡＣを内蔵し、暗号処理を行う周辺回路である。ＳＤＲＡＭコントローラ１３は、外部に接続されるＳＤＲＡＭ１６を制御する。ＳＤＲＡＭコントローラ１３の内部にあるディスクリプタコントローラ１４は、ディスクリプタ１５の制御を行い、ＳＤＲＡＭ１６とＬＳＩ内部のオンチップディスクリプタのアドレッシングを行う。ディスクリプタ１５は、ＤＭＡにて使用されるデータのポインタと通信ステータスが格納される。ＳＤＲＡＭ１６は、ＳＤＲＡＭコントローラ１３を介してＣＰＵに接続され、処理すべきデータおよびプログラムを格納する。ＣＰＵデータバス２１は、ＣＰＵコア１０と、イーサネット（登録商標）コントローラ１１ａ、１１ｂ、ＩＰｓｅｃエンジン１２、ＳＤＲＡＭコントローラ１３を接続する。バス２２は、周辺回路とディスクリプタの専用バスであって、ディスクリプタ１５と、イーサネット（登録商標）コントローラ１１ａ、１１ｂ、ＩＰｓｅｃエンジン１２とを直接接続する。
【００３７】
図２は、ディスクリプタ１５におけるデータ構造を示す図である。ディスクリプタ１５には、一連のデータ転送のためのステータス、サイズ、アドレスポインタが複数組存在する。アドレスポインタは、ＳＤＲＡＭ１６中のデータの位置を指し示し、サイズは、このデータの大きさを表す。また、ステータスは、データがセットされたか、転送終了したかなどの状態を表す。また、アドレスポインタがリンクポインタである場合には、ディスクリプタ１５におけるデータ構造が連続していなくて、リンクポインタで指し示される先にデータ構造が続いていることを表す。さらに、アドレスポインタがＮＵＬＬディスクリプタである場合には、データ構造がこれ以上連続していないことを意味する。なお、ここでは、イーサネット（登録商標）コントローラ１１ａの送信あるいは受信の一面分のディスクリプタのみを示すが、ディスクリプタ１５内には他にもイーサネット（登録商標）コントローラ１１ｂ、ＩＰｓｅｃエンジン用のディスクリプタも存在している。
【００３８】
次に、イーサネット（登録商標）コントローラのデータ送受に係る動作について説明する。図３は、パケット処理装置内のデータ伝送に係るシーケンスを表す図である。図３においてイーサネット（登録商標）コントローラ１１ａがデータ送信を行う場合、以下のステップＳ１１〜Ｓ１４が実行される。
【００３９】
ステップＳ１１において、ＣＰＵコア１０は、ディスクリプタ１５の送信用のディスクリプタに、送信すべきデータが格納されているＳＤＲＡＭ１６内のアドレスを示すポインタとデータのサイズとステータスとをセットする。この時のデータの流れとしては、ＣＰＵコア１０→ＣＰＵデータバス２１→ディスクリプタ１５となる。そして、ＣＰＵコア１０は、図示されないが、イーサネット（登録商標）コントローラ１１ａにアクセスすることで送信用のディスクリプタに必要な情報が書き込まれたことを通知する。
【００４０】
ステップＳ１２において、イーサネット（登録商標）コントローラ１１ａは、ディスクリプタ１５の送信用のディスクリプタにアクセスして送信すべきデータのアドレスポインタ、サイズを読出す。この時のデータの流れとしては、ディスクリプタ１５→バス２２→イーサネット（登録商標）コントローラ１１ａとなる。
【００４１】
ステップＳ１３において、イーサネット（登録商標）コントローラ１１ａは、ＤＭＡ機能を用いてＳＤＲＡＭ１６から送信すべきデータを取り出す。この時のデータの流れとしては、ＳＤＲＡＭ１６→ＳＤＲＡＭコントローラ１３→ＣＰＵデータバス２１→イーサネット（登録商標）コントローラ１１ａとなる。なお、バス２２は、この間、開放されているので、イーサネット（登録商標）コントローラ１１ｂあるいはＩＰｓｅｃエンジン１２は、バス２２を経由してディスクリプタ１５にアクセスすることが可能である。
【００４２】
ステップＳ１４において、データの送信終了後、送信結果であるステータスをディスクリプタ１５に格納する。この時のデータの流れとしては、イーサネット（登録商標）コントローラ１１ａ→バス２２→ディスクリプタ１５となる。
【００４３】
その後、送信すべきデータがさらに存在する場合には、ステップＳ１２〜Ｓ１４を繰り返す。
【００４４】
一方、データ受信を行う場合、以下のステップＳ１６〜Ｓ１９が実行される。
【００４５】
ステップＳ１６において、ＣＰＵコア１０は、ディスクリプタ１５の受信用のディスクリプタに、受信したデータを格納するＳＤＲＡＭ１６内のアドレスを示すポインタとデータのサイズと受信ステータスとを格納する領域を予めセットしておく。この時のデータの流れとしては、ＣＰＵコア１０→ＣＰＵデータバス２１→ディスクリプタ１５となる。
【００４６】
ステップＳ１７において、イーサネット（登録商標）コントローラ１１ａは、ディスクリプタ１５の受信用のディスクリプタにアクセスして受信データの格納先を示すアドレスポインタ、サイズを読出す。この時のデータの流れとしては、ディスクリプタ１５→バス２２→イーサネット（登録商標）コントローラ１１ａとなる。
【００４７】
ステップＳ１８において、イーサネット（登録商標）コントローラ１１ａは、ＤＭＡ機能を用いてイーサネット（登録商標）コントローラ１１ａから受信データをＳＤＲＡＭ１６へ格納する。この時のデータの流れとしては、イーサネット（登録商標）コントローラ１１ａ→ＣＰＵデータバス２１→ＳＤＲＡＭコントローラ１３→ＳＤＲＡＭ１６となる。なお、バス２２は、この間、開放されているので、イーサネット（登録商標）コントローラ１１ｂあるいはＩＰｓｅｃエンジン１２は、バス２２を経由してディスクリプタ１５にアクセスすることが可能である。
【００４８】
ステップＳ１９において、イーサネット（登録商標）コントローラ１１ａは、受信ステータスをディスクリプタ１５に格納する。この時のデータの流れとしては、イーサネット（登録商標）コントローラ１１ａ→バス２２→ディスクリプタ１５となる。
【００４９】
その後、受信すべきデータがさらに存在する場合には、ステップＳ１７〜Ｓ１９を繰り返す。
【００５０】
以上のようにイーサネット（登録商標）コントローラ１１ａがディスクリプタ１５にアクセスする場合には、バス２２を使用するように動作する。したがって、イーサネット（登録商標）コントローラ１１ａのディスクリプタ１５へのアクセスにＣＰＵデータバス２１が使われることが無くなり、ＣＰＵデータバス２１のバスの占有率が低減される。
【００５１】
以上の説明では、イーサネット（登録商標）コントローラ１１ａについてのみ説明したが、イーサネット（登録商標）コントローラ１１ｂ、ＩＰｓｅｃエンジン１２についても、ディスクリプタ１５にアクセスする場合にはバス２２を使用するように動作する。これらに関しても、同様にＣＰＵデータバス２１のバスの占有率が低減される。
【００５２】
本発明のパケット処理装置は、以上のような送受信動作において、外部メモリを使用せず、ＬＳＩ内部にディスクリプタ１５を搭載することにより外部アクセスの回数を削減し処理速度を向上させる。ＳＤＲＡＭ１６のような外部メモリにアクセスする場合、メモリ自体のアクセス速度、サイクル速度とも遅い場合が多い。通常家庭向けのブロードバンドルータ装置に搭載されているＳＤＲＡＭでは、１３３ＭＨｚ動作（１クロックあたり７．５ｎｓ）程度である。それを補うためには高速なメモリ（ＳＳＲＡＭ等）を使用すれば改善は可能であるが、装置が高価となってしまう。また、ＳＤＲＡＭとディスクリプタ用にＳＳＲＡＭを接続させる構造とした場合、ＬＳＩの信号ピンの本数が増加し、装置の大型化、コストアップにつながる。そこでＬＳＩ内部にディスクリプタ１５を内蔵することで、低速な外部メモリへのアクセス回数を減らすことが可能となる。そして、ディスクリプタへのアクセス時間が短縮され、バスのディスクリプタへのアクセス占有率を低下させることにより、他の処理が実行できるため、処理性能の向上につながる。
【００５３】
また、内部メモリを使用することにより、高速アクセスが可能となり、処理速度を向上させることが可能となる。ＬＳＩ内部にメモリを搭載し、それを使用した場合、内蔵メモリ自体の速度も高速であり、さらにＣＰＵコアから直接アクセスが可能になる構成をとった場合、動作クロック数を大幅に削減可能であり、処理速度の向上につながる。ある種のＣＰＵを例に試算した結果、ＳＤＲＡＭにディスクリプタを構成し、ディスクリプタに対してデータの読み出しを行った場合、１３クロック必要であるが、内蔵ＲＡＭにディスクリプタを構成すると、１〜２クロックでデータのリードが可能となる。
【００５４】
図４に示したような従来技術で構成した場合、ＣＰＵコア１１０、イーサネット（登録商標）コントローラ１１１、ＳＤＲＡＭコントローラ１１３がデータを送受信する場合に、ＣＰＵデータバス１２１は、このデータの送受信に占有されている。したがって、例えばイーサネット（登録商標）コントローラ１１１が外部ＳＤＲＡＭ１１４に存在するディスクリプタ１１６をＤＭＡコントローラ内に取り込む処理を実行している場合には、ＣＰＵコア１１０がＳＤＲＡＭ１１４に存在するデータ領域１１５にアクセスすることはできない。
【００５５】
これに対し、本実施例のパケット処理装置では、ディスクリプタ１５がＬＳＩ内部にあり、イーサネット（登録商標）コントローラ１１ａ、１１ｂ、ＩＰｓｅｃエンジン１２とディスクリプタ間の専用のバス２２を設けている。このため、バス２２を経由してディスクリプタ１５のデータをイーサネット（登録商標）コントローラ１１ａが取り込んでいる場合であっても、イーサネット（登録商標）コントローラ１１ｂあるいはＩＰｓｅｃエンジン１２とＳＤＲＡＭ１６との間でＣＰＵデータバス２１を介してデータ転送が可能である。また、ＣＰＵコア１０がＣＰＵデータバス２１を使用してＳＤＲＡＭ１６に存在するデータにアクセスすることも可能となる。さらに、逆にイーサネット（登録商標）コントローラ１１ａがＣＰＵデータバス２１を介してデータ転送を行っている間に、イーサネット（登録商標）コントローラ１１ｂあるいはＩＰｓｅｃエンジン１２は、バス２２を経由してディスクリプタ１５のデータにアクセスすることが可能である。以上のように、イーサネット（登録商標）コントローラ１１ａ等の周辺回路とディスクリプタ１５とを直接接続するバス２２を設けることで、周辺回路同士でＣＰＵデータバス２１とバス２２との同時アクセスを可能とし、アクセス待ち時間を削減して処理性能を向上させることができる。
【００５６】
本発明によれば、家庭・企業向けブロードバンドネットワーク（ＦＴＴＨやＡＤＳＬ等）に接続されるブロードバンド機器（ブロードバンドルータ装置や、光回線終端装置）において、従来と比較して、処理性能が向上した装置が実現される。特に映像・音声・データ通信を同時に処理する際の処理性能を向上させることができ、映像や音声の欠落が生じない高性能なホームゲートウェイ装置が実現可能となる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施例に係るパケット処理装置の構成を示すブロック図である。
【図２】ディスクリプタにおけるデータ構造を示す図である。
【図３】パケット処理装置内のデータ伝送に係るシーケンスを表す図である。
【図４】従来のパケット処理装置の構成を示すブロック図である。
【図５】従来の他のパケット処理装置の構成を示すブロック図である。
【符号の説明】
【００５８】
５  ＣＰＵ
１０  ＣＰＵコア
１１ａ、１１ｂ  イーサネット（登録商標）コントローラ
１２  ＩＰｓｅｃエンジン
１３  ＳＤＲＡＭコントローラ
１４  ディスクリプタコントローラ
１５  ディスクリプタ
１６  ＳＤＲＡＭ
２１  ＣＰＵデータバス
２２  バス
【図１】
2006313427.tif 000003
【図２】
2006313427.tif 000004
【図３】
2006313427.tif 000005
【図４】
2006313427.tif 000006
【図５】
2006313427.tif 000007