(57)【要約】【課題】リアルタイムサービスを行うパケット通信機能において、必要な能力が低減してもリアルタイム通信用の受信パケットの損失を極力避けるようにする。【解決手段】本発明のＤＭＡコントローラ３０は、先入れ先出し方式の転送元記憶手段である受信ＦＩＦＯメモリ１１，１２のいずれかに受信パケットが記憶されたことを検出し、受信パケットのデータを読み出して転送先記憶手段であるＲＴバッファ５０、ＮＲＴバッファ５１のいずれかに書き込む転送処理を実行するもので、転送処理のロス時間を計測するロス時間計測部３３と、ロス時間が閾値を超えた場合に転送処理中止を要求する転送時間監視部３５と、転送処理中止が要求された際に、その受信パケットについての他の転送先記憶手段への転送処理が完了または中止していれば、前記受信パケットのデータを受信ＦＩＦＯメモリから読み捨てる転送中止部３２とを備える。【選択図】図１
2007134936.tif 000002
【特許請求の範囲】
【請求項１】
パケット通信機能を支援するＤＭＡコントローラであって、
１つ以上の先入れ先出し方式の転送元記憶手段のいずれかに受信パケットが記憶されたことを検出し、受信パケットのデータを読み出して１つ以上の転送先記憶手段のいずれかに書き込む転送処理を実行するＤＭＡコントローラであって、
転送処理のロス時間を計測するロス時間計測手段と、
前記ロス時間が閾値を超えた場合に転送処理中止を要求する転送時間監視手段と、
前記転送処理中止が要求された際に、その受信パケットについての他の転送先記憶手段への転送処理が完了または中止していれば、前記受信パケットのデータを転送元記憶手段から読み捨てる転送中止手段とを備えたＤＭＡコントローラ。
【請求項２】
さらに、前記転送処理中止が可能か否かを判定する中止可否判定手段を備え、
前記転送中止手段は、前記中止可否判定手段による判定結果が転送処理中止不可であれば、転送処理を継続する請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記中止可否判定手段は、前記受信パケットを解析することを通じて前記転送処理中止が可能か否かを判定する請求項２に記載のＤＭＡコントローラ。
【請求項４】
前記中止可否判定手段は、転送元である前記転送元記憶手段の別に応じて前記転送処理中止が可能か否かを判定する請求項２に記載のＤＭＡコントローラ。
【請求項５】
前記中止可否判定手段は、転送先である前記転送先記憶手段の別に応じて前記転送処理中止が可能か否かを判定する請求項２に記載のＤＭＡコントローラ。
【請求項６】
前記ロス時間計測手段は、前記受信パケットを検出してから実際の転送処理を開始するまでの時間を少なくとも含むロス時間を計測する請求項１から請求項５までのいずれかに記載のＤＭＡコントローラ。
【請求項７】
前記転送先記憶手段への転送処理を要求して許可を得てから転送処理を開始するように構成され、かつ、前記ロス時間計測手段は、転送処理を要求してから許可を得られるまでの時間を少なくとも含むロス時間を計測する請求項１から請求項５までのいずれかに記載のＤＭＡコントローラ。
【請求項８】
前記ロス時間計測手段は、転送処理中におけるデータの実際の転送に使用されていない時間を少なくとも含むロス時間を計測する請求項１から請求項５までのいずれかに記載のＤＭＡコントローラ。
【請求項９】
さらに、前記転送時間監視手段における前記閾値を決定する許容ロス時間決定手段を備え、
前記許容ロス時間決定手段は、少なくとも、前記受信パケットの大きさを参照して前記閾値を決定する請求項１から請求項８までのいずれかに記載のＤＭＡコントローラ。
【請求項１０】
さらに、前記転送時間監視手段における前記閾値を決定する許容ロス時間決定手段を備え、
前記許容ロス時間決定手段は、少なくとも、前記受信パケットの通信速度を参照して閾値を決定する請求項１から請求項９までのいずれかに記載のＤＭＡコントローラ。
【請求項１１】
１つの受信パケットを別途指定されたブロック最大長より小さいブロックに分割して、順次に各ブロックを転送処理し、さらに、各々のブロックの転送処理の度に、前記転送先記憶手段への転送処理を要求して許可を得てから転送処理を開始するように構成され、
前記ロス時間計測手段は、ブロックの転送処理を要求してから許可を得られるまでの時間が各ブロックの転送処理の度に前記ロス時間として計測し、
前記転送時間監視手段は、各々のブロックの転送処理の度に、前記ロス時間の評価を行って転送の中止を要求するかどうかを判定し、
前記転送中止手段は、転送処理を中止する際には、すでに転送処理が終わったブロックを前記転送先記憶手段から消去するように構成されている請求項１から請求項１０までのいずれかに記載のＤＭＡコントローラ。
【請求項１２】
さらに、前記転送時間監視手段における前記閾値を決定する許容ロス時間決定手段を備え、
前記許容ロス時間決定手段は、少なくとも、別途指定されたブロック最大長を参照して前記閾値を決定する請求項１１に記載のＤＭＡコントローラ。
【請求項１３】
前記転送中止手段は、読み捨て専用の転送先を指定した転送処理を行うことによって、前記転送元記憶手段からの読み捨てを実行する請求項１から請求項１２までのいずれかに記載のＤＭＡコントローラ。
【請求項１４】
前記転送中止手段は、転送の中止時に転送先の前記転送先記憶手段に対して、書き込みデータの消去を指示する請求項１から請求項１２までのいずれかに記載のＤＭＡコントローラ。
【請求項１５】
起動されてから１個の受信パケットを転送処理すると停止するように構成され、かつ、
前記転送中止手段は、当該ＤＭＡコントローラが停止中に転送処理中止が要求された際にも、受信パケットのデータを前記転送元記憶手段から読み捨てる請求項１から請求項１４までのいずれかに記載のＤＭＡコントローラ。
【請求項１６】
請求項１から請求項１５までのいずれかに記載のＤＭＡコントローラを備える半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークから受信するパケットデータを処理する装置等におけるＤＭＡコントローラに関する。
【背景技術】
【０００２】
データ通信を主用途とする従来のパケット通信機能を用いて音声などのリアルタイム通信サービスをも行うには、リアルタイム通信が他のデータ通信に妨害されるという課題が付きまとう。例えば、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）８０２．３規格準拠のイーサネット(登録商標）上におけるＶｏＩＰ（Voiceover IP）サービスは、同時に端末がファイル転送サービスのようなデータ通信を行うと妨害されて、音の途切れなどの悪影響が出る。
【０００３】
従来のこの課題の解決方法の大勢は、通信機能の性能を充分に増大させてデータ通信の影響を小さくすることにある。例えば、特許文献１に記載された方法のように、ＤＭＡ（Direct Memory Access）制御を取り入れることによって瞬時的な処理能力を見かけ増大させることができる。
【特許文献１】特許第２７６７０８５号公報（第３−９頁、第１−１１図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来の技術においては、通信用バッファメモリ量、メモリやバスの帯域幅等が不足することによって通信機能に必要な能力が低減する場合にリアルタイム通信サービスに向けた対策はとられていない。特に、リアルタイム通信サービスの通信では、通信遅延を抑えるため再送を行わないのが普通であるため、ＣＡＴＶやＡＤＳＬなどのベストエフォートを基礎とするデータ通信に比べ、通信能力の低減が致命的になり得る。また近年のアプリケーションソフトウェアの高度化により、このような通信機能の性能低下は容易に現出し得るものである。
【０００５】
本発明は、リアルタイムサービスを行うパケット通信機能において、それに必要な能力が低減してもリアルタイム通信用の受信パケットの損失を極力避ける機能を備えたＤＭＡコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によるＤＭＡコントローラは、パケット通信機能を支援し、１つ以上の先入れ先出し方式の転送元記憶手段のいずれかに受信パケットが記憶されたことを検出し、受信パケットのデータを読み出して１つ以上の転送先記憶手段のいずれかに書き込む転送処理を実行するＤＭＡコントローラであって、
転送処理のロス時間を計測するロス時間計測手段と、
前記ロス時間が閾値を超えた場合に転送処理中止を要求する転送時間監視手段と、
前記転送処理中止が要求された際に、その受信パケットについての他の転送先記憶手段への転送処理が完了または中止していれば、前記受信パケットのデータを転送元記憶手段から読み捨てる転送中止手段とを備えたものである。
【０００７】
この構成において、転送元記憶手段に受信パケットが記憶されると、そのことがＤＭＡコントローラに通知される。その通知を受けたＤＭＡコントローラでは、転送元記憶手段の受信パケットのデータを転送先記憶手段に転送処理するための準備を行う。これに伴って、ロス時間計測手段は転送処理のロス時間を計測する。転送時間監視手段は、ロス時間計測手段によるロス時間が所定の閾値を超えるか否かを監視し、超えたときに転送処理中止の要求を転送中止手段に対して行う。転送処理中止の要求を受けた転送中止手段は、当該の受信パケットについて他の転送先記憶手段への転送処理が完了または中止していて、転送先記憶手段への転送処理を必要としない状況であることを確認の上、転送元記憶手段において受信パケットのデータを読み捨てる処理を行う。すなわち、受信パケット転送能力の低下を監視して、低下しすぎる場合には、その受信パケットを転送元記憶手段から積極的に消去する。その結果として、転送元記憶手段の記憶容量を確保して、新たに到来する受信パケットが記憶できない事態を避けることが可能となる。
【０００８】
上記において、さらに、前記転送処理中止が可能か否かを判定する中止可否判定手段を備え、前記転送中止手段は、前記中止可否判定手段による判定結果が転送処理中止不可であれば、転送処理を継続するという態様がある。リアルタイム通信の受信パケットは、その性質上、廃棄してはならない重要な受信パケットである。中止可否判定手段は、転送要求にかかわる当該の受信パケットが、転送処理中止が不可であるか、そうでないかを判定する。そして、転送処理中止が不可であると判定したときは、転送中止手段による受信パケットデータの転送元記憶手段からの読み捨ての処理を禁止し、その受信パケットの転送処理を継続させる。これにより、性能低減時にも例えばリアルタイム通信用等の重要な受信パケットのデータは消去しないですむ。よって、データ通信用などの受信パケットの処理から優先的に削減することになる。
【０００９】
また、上記において、前記中止可否判定手段は、前記受信パケットを解析することを通じて前記転送処理中止が可能か否かを判定するという態様がある。中止可否判定手段は、受信パケットの長さ、パケットヘッダ情報、パケット内の一部のデータパターンなどの特徴から、その受信パケットの転送処理中止が可能か否かを判定する。
【００１０】
また、上記において、前記中止可否判定手段は、転送元である前記転送元記憶手段の別に応じて前記転送処理中止が可能か否かを判定するという態様がある。この場合、複数の転送元記憶手段において、例えば、リアルタイム通信用等の重要な受信パケットを記憶する記憶手段を有する通信機能をあらかじめ定めておく。これにより、例えば複数の通信機能のいずれから受信パケットを読み出したかに応じて、その受信パケットの転送処理中止が可能か否かを判定する。
【００１１】
また、上記において、前記中止可否判定手段は、転送先である前記転送先記憶手段の別に応じて前記転送処理中止が可能か否かを判定するという態様がある。この場合、複数の転送先記憶手段において、例えば、リアルタイム通信用等の重要な受信パケットを記憶する記憶手段をあらかじめ定めておく。これにより、例えば受信パケットの転送先がリアルタイム的なハードウェア機能である場合等に、その受信パケットの転送処理中止を不可と判定する。
【００１２】
また、上記において、前記ロス時間計測手段は、前記受信パケットを検出してから実際の転送処理を開始するまでの時間を少なくとも含むロス時間を計測するという態様がある。これによって、受信パケットを実際に転送するまでの遅延をロス時間に含む状態で、転送処理中止の判定が可能となる。
【００１３】
また、上記において、前記転送先記憶手段への転送処理を要求して許可を得てから転送処理を開始するように構成され、かつ、前記ロス時間計測手段は、転送処理を要求してから許可を得られるまでの時間を少なくとも含むロス時間を計測するという態様がある。まず転送の要求を行い、許可を得てから転送先記憶手段へ転送する場合に、許可を得られるまでの遅延をロス時間に含む状態で、転送処理中止の判定が可能となる。
【００１４】
また、上記において、前記ロス時間計測手段は、転送処理中におけるデータの実際の転送に使用されていない時間を少なくとも含むロス時間を計測するという態様がある。これによって、転送処理中に他の処理に妨害された場合の遅延をロス時間に含む状態で、転送処理中止の判定が可能となる。
【００１５】
また、上記において、さらに、前記転送時間監視手段における前記閾値を決定する許容ロス時間決定手段を備え、前記許容ロス時間決定手段は、少なくとも、前記受信パケットの大きさを参照して前記閾値を決定するという態様がある。これによって、受信パケットの大きさに合わせて閾値を決定することが可能となる。
【００１６】
また、上記において、さらに、前記転送時間監視手段における前記閾値を決定する許容ロス時間決定手段を備え、前記許容ロス時間決定手段は、少なくとも、前記受信パケットの通信速度を参照して閾値を決定するという態様がある。これによって、到来する受信パケットの通信速度に適した閾値を決定することが可能となる。
【００１７】
また、上記において、１つの受信パケットを別途指定されたブロック最大長より小さいブロックに分割して、順次に各ブロックを転送処理し、さらに、各々のブロックの転送処理の度に、前記転送先記憶手段への転送処理を要求して許可を得てから転送処理を開始するように構成され、前記ロス時間計測手段は、ブロックの転送処理を要求してから許可を得られるまでの時間が各ブロックの転送処理の度に前記ロス時間として計測し、前記転送時間監視手段は、各々のブロックの転送処理の度に、前記ロス時間の評価を行って転送の中止を要求するかどうかを判定し、前記転送中止手段は、転送処理を中止する際には、すでに転送処理が終わったブロックを前記転送先記憶手段から消去するように構成されているという態様がある。これによって、ブロック単位で転送処理を行うＤＭＡコントローラにおいては、ブロック単位に閉じて転送の中止を判定することが可能となる。
【００１８】
また、上記において、さらに、前記転送時間監視手段における前記閾値を決定する許容ロス時間決定手段を備え、前記許容ロス時間決定手段は、少なくとも、別途指定されたブロック最大長を参照して前記閾値を決定するという態様がある。これによって、ブロックの指定値に適した閾値を決定することが可能となる。
【００１９】
また、上記において、前記転送中止手段は、読み捨て専用の転送先を指定した転送処理を行うことによって、前記転送元記憶手段からの読み捨てを実行するという態様がある。これによって、読み捨ての処理を通常の転送処理と同様に扱うことが可能となる。
【００２０】
また、上記において、前記転送中止手段は、転送の中止時に転送先の前記転送先記憶手段に対して、書き込みデータの消去を指示するという態様がある。これによって、転送を中止する以前の書き込みデータが残らないように処理することが可能となる。
【００２１】
また、上記において、起動されてから１個の受信パケットを転送処理すると停止するように構成され、かつ、前記転送中止手段は、当該ＤＭＡコントローラが停止中に転送処理中止が要求された際にも、受信パケットのデータを前記転送元記憶手段から読み捨てるという態様がある。これによって、ＤＭＡコントローラを起動できない程の性能不足に陥っても、受信パケットの読み捨て動作を自動で行うことが可能となる。
【００２２】
さらに、上記いずれかのＤＭＡコントローラを備えた半導体集積回路も有効である。
【発明の効果】
【００２３】
本発明によると、通信機能に必要な能力が低減しても、受信する通信パケットの損失を極力避ける機能を備えたＤＭＡコントローラが提供される。そのため、リアルタイム通信サービスの通信品質を改善することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明にかかわるＤＭＡコントローラの実施の形態を図面に基づいて詳細に説明する。
【００２５】
（実施の形態１）
図１は、本発明の実施の形態１における半導体集積回路内部の通信処理部を示す部分的なブロック図である。図１の通信処理部では、第１および第２の２つの通信機能（部）１０，２０と、ＤＭＡコントローラ３０と、バッファ管理／アービタ部４０と、ＲＴ（Real Time）バッファ５０と、ＮＲＴ（Not Real Time）バッファ５１とを備えている。
【００２６】
第１および第２の通信機能１０，２０は外部とのパケット通信を行うものであって、それぞれ通信回線を経由して受け取った受信パケットを記憶する受信ＦＩＦＯ(First-in-First-out）メモリ１１，２１を備えている。ここで第１および第２の通信機能１０，２０については、受信ＦＩＦＯメモリのみ記載し他を省略しているが、送信側の処理ブロックなど他のブロックを備えていてもかまわない。受信ＦＩＦＯメモリ１１，２１が転送元記憶手段に相当し、ＲＴバッファ５０およびＮＲＴバッファ５１が転送先記憶手段に相当する。
【００２７】
ＤＭＡコントローラ３０は、転送処理部３１とロス時間計測部３３と許容ロス時間決定部３４と転送時間監視部３５と中止可否判定部３６とを備え、また、転送処理部３１は転送中止部３２を包含している。
【００２８】
ここで以降の説明を簡略にするために、ＤＭＡコントローラ３０は、第１の通信機能１０からの受信パケットをＲＴバッファ５０へ転送し、第２の通信機能２０からの受信パケットをＮＲＴバッファ５１に転送するものとする。これは説明の便宜上そのようにするものであって、ＤＭＡコントローラ３０または他の機能部が、受信パケット各々の転送先を指定するものであってもよい。
【００２９】
ＲＴバッファ５０とＮＲＴバッファ５１はさらに他の機能部と接続されるが、本発明の趣旨から外れるため、説明および図示を省略する。
【００３０】
次に、上記構成の本実施の形態のＤＭＡコントローラの動作を図２のシーケンスチャートおよび図３のフローチャートを参照しながら説明する。
【００３１】
第１および第２の通信機能１０，２０は、内蔵の受信ＦＩＦＯメモリ１１，２１に受信パケットを記憶させると、これをＤＭＡコントローラ３０に通知する。また、第１および第２の通信機能１０，２０は受信パケットの大きさについてもＤＭＡコントローラ３０に通知する。
【００３２】
以下、第１の通信機能１０から通知を受けた場合と第２の通信機能２０から通知を受けた場合に分けて順次に説明する。
【００３３】
（１）第１の通信機能１０から通知を受けた場合（ＲＴバッファ５０へ転送）
ＤＭＡコントローラ３０は、第１の通信機能１０から通知を受けた場合には、受信ＦＩＦＯメモリ１１からＲＴバッファ５０への転送処理開始をバッファ管理／アービタ部４０へ要求し、許可が得られるまで待ち合わせする。
【００３４】
バッファ管理／アービタ部４０は、要求を受けて転送処理が可能な状況であれば、ＤＭＡコントローラ３０に許可を与える。ここでバッファ管理／アービタ部４０が許可を与える判定方法は特に指定しないが、例えば、転送先のバッファの空き容量や利用可能なデータ転送帯域、あるいはＤＭＡコントローラ３０からバッファに至るデータ転送経路の利用状況等をみて許可を与える判定を行うものである。
【００３５】
バッファ管理／アービタ部４０から許可を得ると、ＤＭＡコントローラ３０の転送処理部３１は、受信ＦＩＦＯメモリ１１から受信パケットのデータを読み出してＲＴバッファ５０に書き込む転送処理を行う。ＤＭＡコントローラ３０は、受信パケットの全てのデータの転送が完了すれば、第１の通信機能１０または第２の通信機能２０からの次の通知を待ち合わせする。
【００３６】
一方、ＤＭＡコントローラ３０では、バッファ管理／アービタ部４０への要求に続いて、次の処理を行う。
【００３７】
ロス時間計測部３３は、バッファ管理／アービタ部４０への要求が発生してから許可が得られるまでの時間Ｔを逐次計測する。この時間Ｔは、クロック数等で計数されるものであってよい。
【００３８】
これと並行して、許容ロス時間決定部３４は、受信パケットの大きさと転送処理の平均転送速度とを用いて、許容できるロス時間の最大値Ｔmaxを算出する。この値も、クロック数等で計数されるものであってよい。最大値の算出方法には、例えば受信パケットの大きさを転送処理の平均転送速度で除算したものと、その受信パケットに期待される最大の転送時間との差分に近い値を採用するものであってもよい。また、その受信パケットに期待される最大の転送時間は、通信回線上でのパケット通信速度から算出されるものであってよく、また、パケット通信速度は、状況によって変化するものであってもよい。
【００３９】
ロス時間計測部３３が計測しているロス時間Ｔが許容ロス時間決定部３４が算出した最大値Ｔmaxを超えない場合、転送処理部３１は第１の通信機能１０の受信ＦＩＦＯメモリ１１から受信パケットデータを読み出して、ＲＴバッファ５０へ転送する。
【００４０】
一方、ロス時間Ｔが許容ロス時間の最大値Ｔmaxを超える場合、転送時間監視部３５は、転送処理中止を転送処理部３１に要求する。そして、中止可否判定部３６は、ＤＭＡコントローラ３０の転送先がＲＴバッファ５０か否かを判断し、ＲＴバッファ５０である場合には転送処理中止を不可と判定し、ＮＲＴバッファ５１である場合には転送処理中止を可能と判定する。なお、本実施の形態の場合には、転送元が第１の通信機能１０である場合は転送処理中止が不可と判定し、転送元が第２の通信機能２０である場合は転送処理中止が可能と判定するものであってもよい。
【００４１】
転送処理部３１は、仮に転送時間監視部３５から転送処理中止を要求されたとしても、中止可否判定部３６が転送処理中止を不可と判定しているので、転送処理中止は行わず、転送処理部３１は第１の通信機能１０の受信ＦＩＦＯメモリ１１から受信パケットデータを読み出して、ＲＴバッファ５０へ転送する。そして、受信パケットデータの転送処理の終了を待って、次の転送処理要求を待ち合わせする。
【００４２】
（２）第２の通信機能２０から通知を受けた場合（ＮＲＴバッファ５１へ転送）
ＤＭＡコントローラ３０は、第２の通信機能２０から通知を受けた場合には、受信ＦＩＦＯメモリ２１からＮＲＴバッファ５１への転送処理開始をバッファ管理／アービタ部４０へ要求し、許可が得られるまで待ち合わせする。以降、上記と同様の動作を行うが、中止可否判定部３６は、ＤＭＡコントローラの転送先がＮＲＴバッファ５１である場合には、転送処理中止を可能と判定する。なお、転送元が第２の通信機能２０である場合は転送処理中止が可能と判定するものであってもよい。
【００４３】
転送処理部３１は、もし転送時間監視部３５から転送処理中止を要求されると、中止可否判定部３６の判定結果をみる。ここでは中止可否判定部３６が転送処理中止が可能と判定しているので、転送処理部３１はＮＲＴバッファ５１への転送処理を中止し、転送中止部３２を起動する。
【００４４】
転送中止部３２は、受信ＦＩＦＯメモリ２１から転送を中止した受信パケットのデータを読み捨てる動作を行う。読み捨て動作は、受信ＦＩＦＯメモリ２１から連続的にデータ読み出して捨ててもよいし、あるいは、読み出したデータを無効な書き込み動作を行うことで結果的に消滅させるものであってよい。ここで無効な書き込み動作とは、例えばＲＴバッファ５０やＮＲＴバッファ５１のいずれでもない読み捨て専用の場所に書き込むこと、あるいは、ＮＲＴバッファ５１において無効な書き込みと認識されることである。
【００４５】
また転送中止部３２は、ＮＲＴバッファ５１に対して書き込みが済んでいるデータを消去する指示を生成する。この指示を受けた場合、ＮＲＴバッファ５１はそれまでに書き込まれたその受信パケットについての書き込み済みデータを自ら消去する。ここで、ＮＲＴバッファ５１は、指示を受けたことを単に書き込み済みのデータと共に記憶するだけで、ＮＲＴバッファ５１を読み取る他の機能部が、書き込み済みのデータを無視または消去するものであってもよい。
【００４６】
以上のように、ＤＭＡコントローラ３０は、バッファ管理／アービタ部４０の許可を得るのに時間がかかりすぎる場合に、ＮＲＴバッファ５１への受信パケットの転送処理は中止し、ＲＴバッファ５０への受信パケットの転送は継続することで、ＲＴバッファ５０への転送処理を、ＮＲＴバッファ５１への転送処理の大きすぎる遅延から保護することが可能である。
【００４７】
また、許容できるロス時間の最大値は動的に最適値に近い値を算出することができる。
【００４８】
なお、本実施の形態では、中止可否判定部３６は、転送先のバッファの別または転送元のバッファの別で転送処理中止を判定していたが、その代わりに、受信パケットの情報を解析して転送処理中止の可否を判定してもよい。この際には、解析のための受信パケットの情報は、通信機能から直接与えられるか、または、ＤＭＡコントローラ３０が読み取ったデータを受け取って解析する。この場合、ＮＲＴバッファ５１に転送される受信パケットの内の一部は転送処理中止を不可と判定するように動作させることが可能である。
【００４９】
また、本実施の形態では、ロス時間計測部３３はバッファ管理／アービタ部４０への要求が発生してからの時間を逐次計測しているが、これはＤＭＡコントローラ３０が第１の通信機能１０または第２の通信機能２０から通知されてからの時間を逐次計測するものであってもよい。この場合は、ＤＭＡコントローラ３０が別の受信パケットについての処理を行っている期間をロス時間に含めることができる。
【００５０】
また、本実施の形態では、ロス時間計測部３３は、バッファ管理／アービタ部４０への要求が発生してから許可が得られるまでの時間を計測しているが、さらに転送処理中のロス時間を続けて計測するものであってもよい。このときには、何らかの要因によりＤＭＡコントローラ３０の転送処理が妨害されて大き過ぎる遅延が発生する場合にも、転送処理を中止することが可能となる。
【００５１】
なお、本実施の形態では、転送処理部３１は１つの受信パケットの転送処理を一度に連続して行うように記載しているが、その代わりに、指定されるブロック最大長より小さいブロック単位で転送され、ブロックの転送処理の度にバッファ管理／アービタ部４０への要求と許可の手順が踏まれ、ロス時間の計測が行われて転送時間監視部３５がロス時間の評価を行うものであってもよい。さらに、許容ロス時間決定部３４は、指定されたブロックの最大値を基に許容できるロス時間の最大値を算出するものであってもよい。さらに、ブロック最大長は適時に変更されるものであってよい。
【００５２】
なお、本実施の形態においては、２つの転送元（受信ＦＩＦＯメモリ１１，２１）と２つの転送先（ＲＴバッファ５０、ＮＲＴバッファ５１）を備えたが、転送元と転送先の数はそれに限るものではない。
【００５３】
（実施の形態２）
図４は、本発明の実施の形態２におけるパケット通信システムのブロック図である。図４のパケット通信システムは、プロセッサ６０と主記憶（部）７０と通信機能１０とＤＭＡコントローラ３０を備え、バス８０で結合されている。実施の形態１の場合のバッファ管理／アービタ部４０、ＲＴバッファ５０およびＮＲＴバッファ５１はない。実施の形態１の場合と同様に、ＤＭＡコントローラ３０は、転送処理部３１とロス時間計測部３３と許容ロス時間決定部３４と転送時間監視部３５と中止可否判定部３６を備え、また、転送処理部３１は転送中止部３２を包含している。本実施の形態においては、主記憶７０が転送先記憶手段に相当している。
【００５４】
プロセッサ６０は、１つの受信パケット毎に主記憶７０上の記憶位置を指示してＤＭＡコントローラ３０を起動するものとする。これは、パケットの受信が完了する以前に行われてもよい。
【００５５】
ＤＭＡコントローラ３０が起動されている場合に、通信機能１０から通知を受けると、転送処理部３１は受信ＦＩＦＯメモリ１１から主記憶７０の指定された記憶位置への転送処理を開始する。ＤＭＡコントローラ３０は受信パケットの全てのデータの転送が完了すれば、ＤＭＡコントローラ３０は停止状態になる。
【００５６】
ロス時間計測部３３は、ＤＭＡコントローラ３０が起動されているか停止しているかに関わらず、第１の通信機能１０から通知を受けてから転送処理を開始するまでの時間を逐次計測する。この時間は、クロック数等で計数されるものであってよい。
【００５７】
転送時間監視部３５は、ＤＭＡコントローラ３０が起動されているか停止しているかに関わらず、ロス時間計測部３３が計測している遅延時間が許容ロス時間決定部３４が算出した最大値を超える場合、転送処理中止を転送処理部３１に要求する。
【００５８】
転送処理部３１は、仮に転送時間監視部３５から転送処理中止を要求され、中止可否判定部３６が転送処理中止が可能と判定している場合には、ＤＭＡコントローラ３０が停止していても、転送中止部３２を起動する。
【００５９】
ＤＭＡコントローラ３０が起動している場合において、転送時間監視部３５から転送処理中止を要求された場合には、転送処理部３１は主記憶７０への転送処理を中止し、転送中止部３２を起動する。
【００６０】
一方、ＤＭＡコントローラ３０が停止している場合において、転送時間監視部３５から転送処理中止を要求された場合には、転送処理部３１は転送中止部３２を起動する。この場合にも転送中止部３２は、受信ＦＩＦＯメモリ１１からの受信パケットのデータを読み捨てる動作を行う。
【００６１】
第１の通信機能１０、受信ＦＩＦＯメモリ１１、許容ロス時間決定部３４、中止可否判定部３６の動作は、実施の形態１で説明したものと同様の動作を行う。
【００６２】
このように動作する本実施の形態では、プロセッサ６０がＤＭＡコントローラ３０を起動できないような遅延の発生に際しても、ＤＭＡコントローラ３０が自律的に一部の受信パケットを読み捨てることによって、受信ＦＩＦＯメモリ１１が一杯になるのを極力避けることを可能とする。
【００６３】
なお、本実施の形態においてＤＭＡコントローラ３０が起動中に転送処理を中止する場合には、プロセッサ６０に通知することなく、指示された主記憶７０上の記憶位置を次の転送処理のために再利用するものであってもよい。
【００６４】
なお、本発明の実施の形態の各々は、それぞれ本発明の一例に過ぎず、本発明のＤＭＡコントローラの構成はこれらには限られない。
【００６５】
また、本発明のＤＭＡコントローラを、半導体集積回路やネットワークプロセッサを構成する要素として用いることも可能である。
【産業上の利用可能性】
【００６６】
以上説明したように、本発明のＤＭＡコントローラは、空きのバッファ量やプロセッサ等の負荷等により発生する遅延を適切に判断して、他の受信パケットを積極的に捨て去ることで、保護したい受信パケットが通信機能の記憶手段にも格納できない事態を極力回避することができる。そのため、リアルタイムサービスを行うパケット通信機能を備えた機器等に有用である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態１における半導体集積回路内部の通信処理部を示す部分的なブロック図
【図２】本発明の実施の形態１におけるＤＭＡコントローラの動作を示すシーケンスチャート
【図３】本発明の実施の形態１におけるＤＭＡコントローラの動作を示すフローチャート
【図４】本発明の実施の形態２におけるパケット通信システムのブロック図
【符号の説明】
【００６８】
１０，２０  通信機能（部）
１１，２１  受信ＦＩＦＯメモリ（転送元記憶手段）
３０  ＤＭＡコントローラ
３１  転送処理部
３２  転送中止部
３３  ロス時間計測部
３４  許容ロス時間決定部
３５  転送時間監視部
３６  中止可否判定部
４０  バッファ管理／アービタ部
５０  ＲＴバッファ（転送先記憶手段）
５１  ＮＲＴバッファ（転送先記憶手段）
６０  プロセッサ
７０  主記憶（部）（転送先記憶手段）
８０  バス
【図１】
2007134936.tif 000003
【図２】
2007134936.tif 000004
【図３】
2007134936.tif 000005
【図４】
2007134936.tif 000006