JP4464245B2 - データキュー制御回路、方法及びプログラム - Google Patents

データキュー制御回路、方法及びプログラム Download PDF

Info

Publication number
JP4464245B2
JP4464245B2 JP2004307978A JP2004307978A JP4464245B2 JP 4464245 B2 JP4464245 B2 JP 4464245B2 JP 2004307978 A JP2004307978 A JP 2004307978A JP 2004307978 A JP2004307978 A JP 2004307978A JP 4464245 B2 JP4464245 B2 JP 4464245B2
Authority
JP
Japan
Prior art keywords
packet
format
buffer
queue
word
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
Application number
JP2004307978A
Other languages
English (en)
Other versions
JP2006119962A (ja
Inventor
正博 三島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004307978A priority Critical patent/JP4464245B2/ja
Priority to US11/042,069 priority patent/US7430214B2/en
Priority to EP20050250472 priority patent/EP1650912B1/en
Priority to DE200560011224 priority patent/DE602005011224D1/de
Publication of JP2006119962A publication Critical patent/JP2006119962A/ja
Application granted granted Critical
Publication of JP4464245B2 publication Critical patent/JP4464245B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9026Single buffer per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、複数のインターフェースからのパケットを複数のRAMで構成される同一データキューに格納するデータキュー制御回路、方法及びプログラムに関し、特に、RAMの前段に緩衝キューを配置して特定のキューへのパケット書込みの集中を回避するデータキュー制御回路、方法及びプログラムに関する。
従来、マルチCPU構成のプロセッサボード等にあっては、複数のCPUとメモリやI/Oバスなどのリソースとの間にシステムコントローラを配置し、リソース側に位置する複数のインターフェースから到着するパケットをキューを構成するRAMに書き込んだ後に読み出してCPUにデータを提供している。
しかしながら、パケットが到着するスループットよりもRAMの書き込みスループットが小さい場合、RAMへの書き込みが間に合わないケースが存在し、インターフェースに対しビジー信号を出してパケット転送を中止させることとなり、RAM書み込みのスループットが低下する。
この問題を解決する方法として、図30のように、複数のRAM200、202、204、206を用意して横に展開し、パケットを格納する領域(1ブロックデータ領域)をRAM200、202、204、206毎のサブブロックに分割し、パケット書き込み先RAMを分散させることによりRAMの書き込みスループットを確保している。
図31は図30のRAMを使用したデータキュー制御回路であり、6つのIFラッチ208−1〜208−6で受信されるパケットに対し4つのサブブロックに分けたパケット格納RAM領域214−1〜214−4を横に配置した場合である。パケットを受信するIFラッチ208−1〜208−6の出力はパケット制御回路210−1〜210−6に接続され、パケット制御回路210−1〜210−6の出力は調停回路212−1〜212−4を経由してパケット格納RAM領域214−1〜214−4に接続される。パケット格納RAM領域214−1〜214−4の出力側にはパケット読出回路216が設けられる。
特開平01−162954 特開2003−303130
しかしながら、このような図31のデータキュー制御方法は、パケット格納時に1ブロック分のパケットデータの全てを格納する場合、即ち横に展開したRAM200、202、204、206に対応したパケット格納RAM領域214−1〜214−4を全てを利用する場合は問題ないが、パケットのデータ書き込み領域が制限されることにより、パケット長がばらばらで1ブロックに満たないパケットが混在し、短いパケットが集中して到着した場合、横に展開したパケット格納RAM領域214−1〜214−4を有効に利用できず、パケット書き込み先が特定のパケット格納RAM領域に集中してしまい、パケットをRAMに書き込むためのスループットが確保できないという問題が生じる。
この問題を解決するために例えば図32に示すデータキュー制御方法が考えられる。図32のデータキュー制御回路は、本来のパケット格納RAM領域214−1〜214−4の他に、IFラッチ208−1〜208−6に対してパケットを一時的に溜め込むための緩衝キューを構成する緩衝RAM218−1〜218−6を配置し、緩衝RAM218−1〜218−6には緩衝制御回路220−1〜220−6とRAM読出ラッチ222−1〜222−6を設けている。
このような図32のデータキュー制御回路にあっては、緩衝RAM218−1〜218−6があふれないように緩衝制御回路220−1〜220−6からのビジー信号等によりパケット転送を制御する資源管理を行い、必要に応じて送信元にパケットの転送を止めてもらいながら緩衝RAM218−1〜218−6からパケットを読み出し、パケット格納RAM領域214−1〜214−4に書き込むような制御を行うことが考えられる。
しかし、図32のデータキュー制御方法は、パケット格納RAM領域214−1〜214−4へのパケット書き込みが間に合わない問題は解決できるが、緩衝RAM218−1〜218−6、緩衝制御回路220−1〜220−6及びRAM読出ラッチ222−1〜222−6をインタフェースの数だけ設けなければならず、回路規模が大幅に増加する問題があり、またIFラッチ208−1〜208−6によるパケット受信からパケット格納RAM領域214−1〜214−4に書き込まれるまでのサイクル数が増えることによる性能低下を招く問題がある。
本発明は、回路規模の増加及び処理サイクル数を必要最小限に抑えるように緩衝キューを設けて制御するデータキュー制御回路、方法及びプログラムを提供することを目的とする。
図1は本発明の原理説明図である。本発明は、データキュー制御回路を提供する。本発明のデータキュー制御回路は、
ワード数が変化するパケットを複数のインターフェースから受信する複数のIFラッチ(受信用ラッチ)28と、
IFラッチ28で受信したパケットをワード単位に分けて格納する最大ワード数に一致する数の緩衝キュー34と、
緩衝キュー34から読み出されたパケットを格納する緩衝キュー34と同数のパケット格納キュー38と、
緩衝キュー34の空き状態に応じた複数種類の書込フォーマットを予め定義し、複数のラッチの何れかでパケットを受信した際に、そのときの緩衝キュー34の空き状態に応じて書込フォーマットを動的に決定するフォーマット決定回路32と、
フォーマット決定回路32で決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キューに格納するパケット制御回路30と、
フォーマット決定回路32で決定されたフォーマットを格納するフォーマット情報格納部40と、
フォーマット情報格納部40に格納されたフォーマットから有効データの格納位置を認識してパケット格納キュー38からパケットを読み出すパケット読出回路42と、
を備えたことを特徴とする。
ここで、受信パケットは所定サイズのブロックデータであり、ブロックデータを所定サイズに分割したサブブロックを1ワードとする。
フォーマット決定回路は、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義する。
フォーマット決定回路は、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義する。
フォーマット決定回路は、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義する。
フォーマット決定回路は、受信パケットがnワードの場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワードをワード順に格納する書込フォーマットを定義し、受信パケットがnワード未満の場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワード未満の各有効ワードをワード順に格納する書込フォーマットを定義する。
フォーマット決定回路は、受信パケットが4ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に4ワードをワード順に格納する書込フォーマットを定義し、受信パケットが3ワード、2ワード又は1ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に3ワード、2ワード又は1ワードの各有効ワードをワード順に格納する書込フォーマットを定義する。
複数の緩衝キューは、1ワードサイズを持つ少なくとも2アドレスのRAMで構成され、フォーマット決定回路は、複数の緩衝キューのRAM構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の複数の緩衝キューのRAM構成の空き状態に応じて書き込みフォーマットを決定する。
受信パケットの各ワードに対応して設けた緩衝キューの各々は、IFラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納されたIFラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出してパケット格納キューに格納する。
IFラッチは、メモリコントローラや入出力コントローラ等のリソースのインタフェースからパケットを受信し、パケット読出回路は、パケット格納キューから読み出したパケットをCPU等の処理モジュールに出力する。
本発明はデータキュー制御方法を提供する。本発明のデータキュー制御方法は、
ワード数が変化するパケットを複数のインターフェースから複数のIFラッチ(受信ラッチ)に受信するパケット受信ステップと、
IFラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
緩衝キューから読み出されたパケットを緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、複数のラッチの何れかでパケットを受信した際に、そのときの緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キューに格納するパケット制御ステップと、
フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識してパケット格納キューからパケットを読み出すパケット読出ステップと、
を備えたことを特徴とする。
本発明は、システムコントローラを構成するコンピュータにより実行されるデータキュー制御プログラムを提供する。本発明のデータキュー制御プログラムは、コンピュータに、
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
緩衝キューから読み出されたパケットを格納する緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、複数のラッチの何れかでパケットを受信した際に、そのときの緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて緩衝キューに格納するパケット制御ステップと、
フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識してパケット格納キューからパケットを読み出すパケット読出ステップと、
を実行させることを特徴とする。
なお、本発明によるデータキュー制御方法及びプログラムの詳細は、本発明のデータキュー制御回路と基本的に同じとなる。
本発明によれば、ワード数の変化により異なる長さのパケットが複数のインターフェースから別々のタイミングで到着するような場合について、緩衝キューの空き状態から書込フォーマットを動的に決定してワード単位に分けて緩衝キューに格納した後に本来のパケット格納キューへ書き込むため、特定のパケット格納キューへの書込み集中を回避するように緩衝キューに対するワード単位に分けた書込みが行われ、その結果、本来のパケット格納キューに対する書き込みの負荷を均等にすることができ、これによってスループット確保に必要な緩衝キューの回路規模を最小限に留め、実装面積とコストの削減を図ることができる。
図2は、本発明が適用されるコンピュータシステムにおけるシステムボードのブロック図である。図2において、システムボード10にはシステムコントローラ12が設けられ、システムコントローラ12に本発明によるデータキュー制御回路が組み込まれている。
システムコントローラ12に対しては、パケットバス16−1〜16−4を介してCPU14−1〜14−4が接続されている。またシステムコントローラ12に対しては、パケットバス26−1〜26−3を介して、メモリコントローラ18−1、18−2及びI/Oコントローラ20が接続されている。
メモリコントローラ18−1、18−2は、デュアルインラインメモリモジュール(DIMM)22−1、22−2を接続している。I/Oコントローラ20にはI/Oバス24が接続され、図示しない磁気ディスクサブシステムを含む各種の入出力デバイスが接続される。
システムコントローラ12は、メモリコントローラ18−1、18−2、I/Oコントローラ20、CPU14−1〜14−4と接続するそれぞれのインターフェースによるパケットの転送を受けて受信し、内蔵しているデータキュー制御回路のキューに受信パケットを格納した後、CPU14−1〜14−4側にパケットを読み出して転送し、CPU14−1〜14−4でパケット内容に応じた必要な処理を行うようにしている。
また、CPU14−1〜14−4で処理されたデータはシステムコントローラ12にインターフェースによりパケットとして送られ、キューに格納した後に、対応するコントローラ又はCPU側にパケットを転送する。
図3は、図2のシステムコントローラ12に設けた本発明のデータキュー制御回路11の実施形態のブロック図である。図3において、データキュー制御回路11は、図2に示したように、メモリコントローラ18−1、18−2やI/Oコントローラ20側から複数のインターフェースによるパケットを受信してキューイングした後に読み出して、CPU14−1〜14−4側に転送している。
この例では6つのインターフェースからパケット25−1〜25−6を、それぞれのインターフェースに応じたタイミングで、受信ラッチとして機能するIFラッチ(以下「IFラッチ」という)28−1〜28−6で受信するようにしている。IFラッチ28−1〜28−6に続いてはパケット制御回路30−1〜30−6が設けられ、パケット制御回路30−1〜30−6には本発明のデータキュー制御に必要なフォーマット決定回路32−1〜32−6を設けている。パケット制御回路30−1〜30−6に続いては、緩衝キューとして機能する緩衝RAM34−1〜34−4が設けられている。
ここで、IFラッチ28−1〜28−6で受信するパケット25−1〜25−6のそれぞれは、図4に示すように最大パケット長で4ワードパケット46−4を受信し、またそれ以外に3ワードパケット46−3、2ワードパケット46−2または1ワードパケット46−1を、インターフェースにおけるデータ長の制約などによりデータ長の異なるパケットを各インターフェースに応じたタイミングで受信している。
ここで図4の4ワードパケット46−4が基本的なパケットフォーマットであり、4ワードに相当するブロックデータを4分割してサブブロックに分けており、このサブブロックを1ワードとしている。
再び図3を参照するに、緩衝RAM34−1〜34−4はIFラッチ28−1〜28−6で受信するパケットの最大ワード数に対応した4個を配置している。また緩衝RAM34−1〜34−4は、例えば緩衝RAM34−1を例にとると、IFラッチ28−1〜28−6に対応して6つの緩衝RAM群から構成されている。この点は他の緩衝RAM34−2〜34−4についても同様である。
緩衝RAM34−1〜34−4に続いては調停回路36−1〜36−4が設けられており、IFラッチ28−1〜28−6におけるパケットの受信順に応じた調停回路36−1〜36−4の制御で、緩衝RAM34−1〜34−4のそれぞれにおける6つのRAM領域の中の対応する1つのRAM領域を選択して、受信パケットを読み出す。
調停回路36−1〜36−4に続いては、パケット格納キューとして機能するパケット格納RAM38−1〜38−4が設けられており、これも緩衝RAM34−1〜34−4と同様、インターフェースラッチ(以下「IFラッチ」という)28−1〜28−6で受信するパケットの最大ワード数に対応した4個を並列的に配置している。
パケット格納RAM38−2〜38−4に続いてはパケット読出回路42が設けられる。またフォーマット情報格納部40が設けられ、ここにはフォーマット決定回路32−1〜32−6のいずれかで決定した対応する受信パケットをパケット格納RAM38−1〜38−4に格納した際に対応するフォーマット情報を格納し、パケット読出回路42でパケット格納RAM38−1〜38−4から受信パケットを読み出す際に、フォーマット情報格納部40に格納されている対応するフォーマット情報から有効格納位置、即ち有効ワード位置を特定して、受信パケットの読出しを行う。
更にデータキュー制御回路11には全体的な制御を行う制御部44が設けられ、制御部44にはフォーマット決定テーブル48、1ワードフォーマットテーブル50−1、2ワードフォーマットテーブル50−2、3ワードフォーマットテーブル50−3及び4ワードフォーマットテーブル50−4が格納されている。
なお制御部44に設けている各テーブルは、共通テーブルとしてフォーマット決定回路32−1〜32−6が参照して利用するが、他の実施形態としてフォーマット決定回路32−1〜32−6のそれぞれに各テーブルを配置するようにしてもよい。
図5は、4ワードパケットを対象にパケット格納RAM38−1〜38−4に対する第1乃至第4フォーマットによる書込状態の説明図である。図5(A)は4ワードパケットによる第1フォーマットによる書込状態であり、第1フォーマットによる書込みは、パケット格納RAM38−1〜38−4に対し、第1サブブロックから第4サブブロックのブロック順即ちワード順に書き込んでいる。
図5(B)は4ワードパケットにおける第2フォーマットであり、第2フォーマットにあっては2番目のパケット格納RAM38−2を先頭に、第1サブブロックから第4サブブロックまで順番に格納している。
図5(C)は4ワードパケットの第3フォーマットであり、第3フォーマットにあっては3番目のパケット格納RAM38−1に先頭の第1サブブロックを格納し、その後ろから前方に巡回する形で残りのサブブロックを順番に格納している。
更に図5(D)は4ワードパケットの第4フォーマットであり、4番目のパケット格納RAM38−4を先頭として第1サブブロックを格納し、そこから1番目のパケット格納RAM38−1に戻って、後続するサブブロックを格納している。
このような4ワードパケットにおける第1フォーマット〜第4フォーマットの決定は、図3に示した緩衝RAM34−1〜34−4における空き状態に応じて決定されており、最も空き度合の高いパケット格納RAMの位置に先頭の第1サブブロックを格納して、以下、これに後続して残りのサブブロックを格納するようにしている。
図6は3ワードパケットにおける第1乃至第4フォーマットによるパケット格納RAMの書込状態の説明図である。図6(A)は3ワードパケットの第1フォーマットであり、第1フォーマットにあっては空き度合の最も高いパケット格納RAM34−1に先頭の第1サブブロックを格納し、以下これに続いて残りのサブブロックを格納しており、第4ブロックはないことから、パケット格納RAM38−4は未使用となる。
図6(B)は3ワードパケットの第2フォーマットであり、空き度合が最も高いパケット格納RAM38−2に先頭の第1サブブロックを格納し、これに続いて残りのサブブロックを格納しており、4ワード目はないことから、1番目のパケット格納RAM38−1については未使用としている。
図6(C)は3ワードパケットの第3フォーマットであり、空き度合の最も高い3番目のパケット格納RAM38−3に先頭の第1サブブロックを格納し、これに続いて後続する残り2つのサブブロックを格納しており、4ワード目となる第4サブブロックは存在しないことから、2番目のパケット格納RAM38−2は未使用としている。
図6(D)は3ワードパケットの第4フォーマットであり、空き度合の最も高い4番目のパケット格納RAM38−4に先頭の第1サブブロックを格納し、後続するサブブロックについては1番目、2番目に戻ってそれぞれ格納しており、4ワード目となる第4サブブロックは存在しないことから、3番目のパケット格納RAM38−3は未使用としている。
図7は、2ワードパケットにおける第1乃至第4フォーマットによるパケット格納RAMの書込状態である。図7(A)が2ワードパケットの第1フォーマット、図7(B)が2ワードパケットの第2フォーマット、図7(C)が2ワードパケットの第3フォーマット、図7(D)が2ワードパケットの第4フォーマットを示している。
第1フォーマット、第2フォーマット、第3フォーマット、第4フォーマットにおけるそれぞれの空き度合の最も高い格納位置は、図6の3ワードパケットと同様、第1フォーマットは図7(A)の1番目のパケット格納RAM38−1、第2フォーマットは図7(B)の2番目のパケット格納RAM38−2、第3フォーマットは図7(C)の3番目のパケット格納RAM38−3、第4フォーマットは図7(D)の4番目のパケット格納RAM38−4の位置であることから、それぞれの空き度合の最も高い格納RAMに先頭の第1サブブロックを格納し、その後に第2サブブロックを格納し、図7(D)のように第1サブブロックが最後のパケット格納RAM38−4となった場合には、第2サブブロックは1番目のパケット格納RAM38−1に戻って格納している。
図8は、1ワードパケットの第1乃至第4フォーマットによるパケット格納RAMの書込状態の説明図である。1ワードパケットにあっては、図8(A)の第1フォーマット、図8(B)の第2フォーマット、図8(C)の第3フォーマット及び図8(D)の第4フォーマットであり、内容的には図7の2ワードパケットにおける各フォーマットの第2サブブロックを未使用として、第1サブブロックの格納状態のみを残した書込フォーマットとなっている。
この図5〜図8に示した1〜4ワードパケットにおける第1〜第4フォーマットは、図9に示すフォーマット決定テーブル48に基づいて動的に決定される。図9のフォーマット決定テーブル48は、図4に示した緩衝RAM34−1〜34−4を2アドレスの格納領域とした場合を対象としており、緩衝RAM34−1〜34−4の格納状態を第1ケースから第8ケースの8つのケースに分けている。
このバッファ格納状態となる第1ケースから第8ケースに対しては、その右側に示すように、緩衝RAM34−1〜34−4における2つのRAMアドレスの格納状態を、格納であれば「1」、空きであれば「0」として表わしている。
緩衝RAM34−1〜34−4につき、2ビットで示す格納状態が得られれば、その右側に示すフォーマット番号となる第1フォーマット乃至第4フォーマットのいずれかが決定される。ここで適用パケットワード数としては、第1ケース〜第4ケースが1ワードパケット乃至4ワードパケットについて適用されるが、第5ケースから第8ケースは1ワードパケットと2ワードパケットについてのみ適用される。
図10は、図9のフォーマット決定テーブル48のフォーマット番号で指定されるフォーマット情報を格納したフォーマットテーブルの説明図であり、図10(A)の4ワード用フォーマットテーブル50−4、図10(B)の3ワード用フォーマットテーブル50−3、図10(C)の2ワード用フォーマットテーブル50−2及び図10(D)の1ワード用フォーマットテーブル50−1で構成されている。
フォーマット情報を格納したフォーマットテーブルは、例えば図10(A)の4ワード用フォーマットテーブル50−4を例にとると、フォーマット番号である第1フォーマットから第4フォーマットのそれぞれに対応して、右側に緩衝RAM34−1〜34−4の書込みの順番を示す数値1〜4が格納されており、0は未使用RAMを表している。
図10(A)の4ワード用フォーマットテーブル50−4については、第1フォーマットから第4フォーマットについて4つの緩衝RAM34−1〜34−4を全て使用しており、フォーマット番号の相違はパケットの先頭サブブロックをどの位置に書き込むかが空き状態によって変わることになる。
図10(B)の3ワード用フォーマットテーブル50−3にあっては、第1フォーマット〜第4フォーマットにつき、4つの格納領域のうちの3つが使用され、残り1つが未使用となっており、フォーマットの順番に、最初の書込位置が緩衝RAMの順番に1つずつ後ろにずれるようになっている。
図10(C)の2ワード用フォーマットテーブル50−2については、第1フォーマット〜第4フォーマットのいずれについても緩衝RAMの4つの領域のうちの2つが使用され、残り2つが0で示す未使用領域であり、同様にフォーマット番号の順番に先頭のサブブロックを書き込む位置が1つずつ後ろにずれている。
図10(D)の1ワード用フォーマットテーブル50−1にあっては、フォーマット番号のいずれについても緩衝RAMの4つの格納領域のうちの1つが使用され、0で示す残り3つが未使用おり、1で示す格納領域となる位置がフォーマット番号の順番に緩衝RAMの先頭位置から後ろに1つずつずれている。
図11は、4ワードパケット受信時に緩衝RAM34−1〜34−4の格納状態が図9のフォーマット決定テーブル48の第1ケースと判別されて、フォーマット番号として第1フォーマットが決定された場合の書込説明図である。
図11(A)は、あるタイミングで受信された4ワードの受信パケットであり、第1ワードから第4ワードまでのワードデータをB1、B2、B3、B4で示している。このとき図11(C)に示す緩衝RAM34−1〜34−4における下側の第1列(先頭アドレス)と、その上の第2列(2番目のアドレス)のいずれについても、全て空き状態になっていたとする。
このような緩衝RAM34−1〜34−4の空き状態を検出してフォーマット決定テーブル48を参照すると、格納状態は第1ケースに該当し、したがって第1フォーマットがフォーマット番号として決定される。この4ワードの第1フォーマットは、図10(A)の4ワード用フォーマットテーブル50−4の第1フォーマットであることから、図11(B)のように第1フォーマットに従った緩衝RAM34−1〜34−4に対する格納位置は図4(A)の4ワード受信パケットの並びと同じになり、そのまま緩衝RAM34−1〜34−4にワードデータB1〜B4が格納される。
図12は、4ワードパケット受信時に緩衝RAMの格納状態が第2ケースとなって第2フォーマットを決定した場合の書込説明図である。この場合、図12(A)の4ワード受信パケットの受信時に、図12(C)のように緩衝RAM34−1〜34−4は図9の第2ケースの格納状態にあり、したがってフォーマット番号として第2フォーマットが決定され、図10(A)の4ワード用フォーマットテーブル50−4から図12(B)の第2フォーマットに示すように、空き度合が最も高い先頭の格納位置となる緩衝RAM34−2を先頭として、順番にワードデータB1、B2、B3、B4を格納している。
図13は、4ワードパケットの受信時に緩衝RAM34−1〜34−4の第3ケースの状態で決定された第3フォーマットによる書込説明図であり、図9のフォーマット決定テーブル48及び図10(A)の4ワードフォーマットテーブル50−4から求められ、第3フォーマットにあっては、図13(C)の緩衝RAMの34−1、34−2の1列目は既にワードデータA1、A2が格納されており、格納順から最も空き度合の高いのは3番目の緩衝RAM34−3であり、この位置から現在受信している4ワードのワードデータB1〜B4を図13(B)に示すように配置して、緩衝RAM34−1〜34−4に格納することになる。
図14は、4ワードパケットの受信時に緩衝RAM34−1〜34−4の格納状態が図9のフォーマット決定テーブル48の第4ケースに該当して、第4フォーマットが決定された場合の書込説明図である。この第4フォーマットにあっては、図14(C)の緩衝RAM34−1〜34−3が既にワードデータA1〜A3で使用済みであり、4番目の緩衝RAM34−4のみが空いていることから、ここを先頭位置として、現在受信したワードデータB1〜B4を図14(B)の第4フォーマットの格納順に並び替えて、緩衝RAM34−1〜34−4に格納する。
図15、図16、図17及び図18は、3ワード受信パケットについて、緩衝RAM34−1〜34−4の格納状態による第1ケース、第2ケース、第3ケース及び第4ケースから第1フォーマット、第2フォーマット、第3フォーマット及び第4フォーマットを決定した場合の緩衝RAM34−1〜34−4に対する書込みの説明図である。
更に図19、図20、図21及び図22は、2ワード受信パケットについて、第1ケース、第2ケース、第3ケース、第4ケースと格納状態が判別されて、第1フォーマット、第2フォーマット、第3フォーマット、第4フォーマットが決定された場合の緩衝RAM34−1〜34−4に対する書込説明図である。
このうち図19〜図22の(A)〜(C)については4ワード受信パケット及び3ワード受信パケットの場合と同じであるが、図19〜図22の(D)は緩衝RAM34−1〜34−4の第1列目(先頭アドレス)に先に受信されたパケットのワードデータA1〜A4が既に格納されている状態にあり、この場合には2番目のアドレスとなる第2列の格納状態から判別された第1フォーマット、第2フォーマット、第3フォーマットまたは第4フォーマットの決定による緩衝RAM34−1〜34−4に対するワードデータの書込みが行われることになる。
図23、図24、図25及び図26は、1ワード受信パケットにおける緩衝RAM34−1〜34−4の第1ケース、第2ケース、第3ケース、第4ケースの第1フォーマット、第2フォーマット、第3フォーマット及び第4フォーマットの決定による書込みを(A)〜(C)に示す。
更に緩衝RAM34−1〜34−4の第1列(先頭アドレス)に先に受信したパケットのワードデータA1〜A4が格納されている状態については、図23、図24、図25及び図26の(D)のように、第2列の格納状態について第5ケース、第6ケース、第7ケースまたは第8ケースを判別し、第1フォーマット、第2フォーマット、第3フォーマットまたは第4フォーマットを決定して書き込むことになる。
図27は、図3のデータキュー制御回路11において、4ワードパケット(A1、A2、A3、A4)に続いて2ワードパケット(B1、B2)を受信した場合の第1ケースの格納状態にある緩衝RAM34−1〜34−4への書込みと、その後のパケットRAM38−1〜38−4への書込動作の説明図である。
図27(A)は図3の制御部44のタイミング制御で与えられる処理サイクルであり、図27(B)のように、例えばIFラッチ28−1で4ワードパケット52が受信された後に2ワードパケット54が受信されたとする。
図27(C)は、図27(A)の8サイクル目の格納状態を示しており、IFラッチ28−1に2ワードパケット54における先頭のワードデータB1がラッチされたとき、緩衝RAM34−1〜34−4の先頭アドレスとなる第1列には、先行して受信された4ワードパケット52のワードデータA1〜A4が既に格納されている。
このような格納状態から、図9のフォーマット決定テーブル48を参照することで第1ケースの格納状態が判別され、その結果、フォーマット番号として第1フォーマットが決定される。第1フォーマットが決定されると、IFラッチ28−1にラッチされたワードデータB1は、第1フォーマットに従って緩衝RAM34−1に格納されることになる。
図27(D)は次の9サイクル目の状態であり、IFラッチ28−1に2番目のワードデータB2がラッチされ、このとき緩衝RAM34−1の2列目には先行するワードデータB1が格納されており、フォーマットとして第1フォーマットが決定されていることから、IFラッチ28−1のワードデータB2は2番目の緩衝RAM34−2に格納される。
図27(E)は、4ワードパケット52及び2ワードパケット54が緩衝RAM34−1〜34−4の格納を経て、パケットRAM38−1〜38−4に格納された状態であり、このとき右側に示すフォーマット情報格納部40には緩衝RAM34−1〜34−4に格納する際に決定されたフォーマット情報56及び58が格納されている。
このフォーマット情報格納部40のフォーマット情報は、パケット格納RAM38−1〜38−4から図3に示したパケット読出回路42が受信パケットを読み出す際に、有効なワードデータがどのパケット格納RAMに存在しており且つその順番がどのようになっているかを示しており、このフォーマット情報を使用してパケットを読み出すことで、ワード単位に分けて格納した受信パケットを再構築してCPU側に送り出すことができる。
図28は、図27と同様、4ワードパケットに続いて2ワードパケットを受信した際に、第2ケースの格納状態にある緩衝RAM34−1〜34−4への書込みとその後のパケット格納RAM38−1〜38−4への書込動作の説明図である。
図28において、パケット受信状況は図27(A)(B)と同じであり、図28(A)は8サイクル目でIFラッチ28−1に2ワードパケット54の先頭ワードデータB1がラッチされた状態である。
このとき緩衝RAM34−1〜34−4は1列目の先頭位置に先行する4ワードパケットのワードデータA1が残っており、この格納状態から図9のフォーマット決定テーブル48を参照すると、格納状態として第2ケースに該当し、その結果、第2フォーマットが決定される。
このようにして第2フォーマットが決定されると、IFラッチ28−1のワードデータB1は第2フォーマットに従って2番目の緩衝RAM34−2の第1列目に格納される。
図28(B)は図27(A)の9サイクル目であり、IFラッチ28−1に2番目のワードデータB2がラッチされており、先にラッチされたワードデータB1は緩衝RAM34−2の第1列目に格納されている。この場合、第2フォーマットが決定されていることから、IFラッチ28−1のワードデータB2は3番目の緩衝RAM34−3の第1列目に格納される。
図28(C)は緩衝RAM34−1〜34−4に格納された後に転送されたパケット格納RAM38−1〜38−4の格納状態であり、これに対応して右側のフォーマット情報収納部40に、2ワードパケットのワードデータA1〜A4についてはフォーマット情報56が格納され、次のワードデータB1、B2についてはフォーマット情報60が格納されており、パケット読出しの際にフォーマット情報56、60を参照することで、パケット格納RAM38−1〜38−4におけるワードデータの有効格納位置と格納の順番を認識し、受信パケットを再構築してCPU側に転送することができる。
なお図27(E)及び図28(C)のパケット格納RAM38−1〜38−4における空きアドレスの部分は、他のIFラッチで受信されたパケットのワードデータが格納される位置として使用されることになるが、この受信データについては言及していないことから、空きスペースとしている。
図29は、図3の実施形態によるデータキュー制御処理のフローチャートであり、特定のIFラッチでのパケット受信からキュー格納、更にキュー読出しまでを示している。このため実際のデータキュー格納処理にあっては、図29のフローチャートに示す処理プログラムが、パケットを受信するIFキューの受信処理ごとにマルチタスク処理として並列的に実行されることになる。
図29において、ステップS1で対象とするIFラッチにパケットが到着したか否かチェックしており、パケットが到着するとステップS2に進み、このときの緩衝RAM34−1〜34−4の使用状態を認識し、図9のフォーマット決定テーブル48からステップS3でフォーマット番号を決定する。
次にステップS4で受信パケットのワード数に対応したフォーマット番号についてフォーマット情報を取得し、ステップS5でフォーマット情報に従って受信パケットの各ワードを緩衝RAMにワード単位に書き込む。
このようにして緩衝RAM34−1〜34−4に対するパケット格納が済むと、ステップS6で緩衝RAMの読出タイミングをチェックしており、読出タイミングを判別すると、ステップS7で緩衝RAMの受信パケットをワード単位に並列的に読み出してパケット格納RAM38−1〜38−4に書き込み、次にステップS8でパケット格納RAM38−1〜38−4に書き込んだ受信パケットのフォーマット情報をフォーマット情報格納部40に別途格納する。
続いてステップS9でパケット格納RAMの読出タイミングをチェックしており、読出タイミングを判別すると、ステップS10で別途格納しているフォーマット情報からパケット格納RAM38−1〜38−4の中の有効ワードの格納位置を認識してパケットを読み出し、またフォーマット情報から得られた格納順番からワード順に配列してパケットを再構築し、CPU側に出力する。このようなステップS1〜S10の処理を、ステップS11で停止指示があるまでパケット到着ごとに繰り返す。
また本発明は、図2に示したように、システムコントローラ12を構成するコンピュータで実行される図29のフローチャートに示すデータキュー制御処理手順に従ったプログラムを提供するものであり、この場合、図3に示した回路はラッチ回路及びRAM以外については、例えば制御部44の機能をプログラム制御により実現するソフトウェアあるいはファームウェアとして提供することができる。
なお、上記の実施形態は、受信パケットとして1ブロックデータを4つのサブブロックに分けた4ワードを最大ワード長として1〜4ワードの範囲でデータ長が変化するパケットを受信してデータキュー制御を行う場合を例にとるものであったが、受信パケットの1ブロックをサブブロックに分割する分割数nは必要に応じて適宜に定めることができ、例えばn=6ブロック、n=8ブロックなど適宜に設定できる。
また上記の実施形態は緩衝RAM34−1〜34−4として2アドレス構成を例にとるものであったが、更に緩衝RAM34−1〜34−4のアドレス数を増やすようにしてもよい。更に上記の実施形態にあっては、6つのインターフェースからパケットを受信する場合を例にとっているが、このインターフェースの数も必要に応じて適宜に定めることができ、基本的にはパケット格納キューの数がインターフェースの数より少なくなるような構成をとることになる。
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
(付記)
(付記1)
ワード数が変化するパケットを複数のインターフェースから受信する複数の受信用ラッチと、
前記受信用ラッチで受信したパケットをワード単位に分けて格納する最大ワード数に一致する数の緩衝キューと、
前記緩衝キューから読み出されたパケットを格納する前記緩衝キューと同数のパケット格納キューと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数の受信用ラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定回路と、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御回路と、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納部と、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出回路と、
を備えたことを特徴とするデータキュー制御回路。(1)
(付記2)
付記1記載のデータキュー制御回路に於いて、前記受信パケットは所定サイズのブロックデータであり、前記ブロックデータを所定サイズに分割したサブブロックを1ワードとしたことを特徴とするデータキュー制御回路。
(付記3)
付記1記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。(2)
(付記4)
付記1記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
(付記5)
付記1記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
(付記6)
付記1記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、
受信パケットがnワードの場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワードをワード順に格納する書込フォーマットを定義し、
受信パケットがnワード未満の場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。(3)
(付記7)
付記1記載のデータキュー制御回路に於いて、
前記フォーマット決定回路は、
受信パケットが4ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に4ワードをワード順に格納する書込フォーマットを定義し、
受信パケットが3ワード、2ワード又は1ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に3ワード、2ワード又は1ワードの各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
(付記8)
付記1記載のデータキュー制御回路に於いて、
前記複数の緩衝キューは、1ワードサイズを持つ少なくとも2アドレスのRAMで構成され、
前記フォーマット決定回路は、前記複数の緩衝キューのRAM構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の前記複数の緩衝キューのRAM構成の空き状態に応じて書き込みフォーマットを決定することを特徴とするデータキュー制御回路。
(付記9)
付記1記載のデータキュー制御回路に於いて、
受信パケットの各ワードに対応して設けた緩衝キューの各々は、前記受信ラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納された受信用ラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出して前記パケット格納キューに格納することを特徴とするデータキュー制御回路。
(付記10)
付記1記載のデータキュー制御回路に於いて、
前記受信用ラッチは、メモリコントローラや入出力コントローラ等のリソースのインタフェースからパケットを受信し、
前記パケット読出回路は、前記パケット格納キューから読み出したパケットをCPU等の処理モジュールに出力することを特徴とするデータキュー制御回路。
(付記11)
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
前記受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
前記緩衝キューから読み出されたパケットを前記緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御ステップと、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
を備えたことを特徴とするデータキュー制御方法。(4)
(付記12)
付記11記載のデータキュー制御方法に於いて、前記受信パケットは所定サイズのブロックデータであり、前記ブロックデータを所定サイズに分割したサブブロックを1ワードとしたことを特徴とするデータキュー制御方法。
(付記13)
付記11記載のデータキュー制御方法於いて、
前記フォーマット決定ステップは、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
(付記14)
付記11記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
(付記15)
付記11記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
(付記16)
付記11記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、
受信パケットがnワードの場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワードをワード順に格納する書込フォーマットを定義し、
受信パケットがnワード未満の場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
(付記17)
付記11記載のデータキュー制御方法に於いて、
前記フォーマット決定ステップは、
受信パケットが4ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に4ワードをワード順に格納する書込フォーマットを定義し、
受信パケットが3ワード、2ワード又は1ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に3ワード、2ワード又は1ワードの各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御方法。
(付記18)
付記11記載のデータキュー制御方法に於いて、
前記複数の緩衝キューは、1ワードサイズを持つ少なくとも2アドレスのRAMで構成され、
前記フォーマット決定ステップは、前記複数の緩衝キューのRAM構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の前記複数の緩衝キューのRAM構成の空き状態に応じて書き込みフォーマットを決定することを特徴とするデータキュー制御方法。
(付記19)
付記11記載のデータキュー制御方法に於いて、
受信パケットの各ワードに対応して設けた緩衝キューの各々は、前記受信ラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納された受信ラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出して前記パケット格納キューに格納することを特徴とするデータキュー制御方法。
(付記20)
付記11記載のデータキュー制御方法に於いて、
前記受信用ラッチは、メモリコントローラや入出力コントローラ等のリソースのインターフェースからパケットを受信し、
前記パケット読出回路は、前記パケット格納キューから読み出したパケットをCPU等の処理モジュールに出力することを特徴とするデータキュー制御方法。
(付記21)(プログラム)
システムコントローラを構成するコンピュータに、
ワード数が変化するパケットを複数のインターフェースから複数の受信用ラッチに受信するパケット受信ステップと、
前記受信用ラッチで受信したパケットをワード単位に分けて最大ワード数に一致する数の緩衝キューに格納する緩衝キュー格納ステップと、
前記緩衝キューから読み出されたパケットを格納する前記緩衝キューと同数のパケット格納キューに格納するパケット格納ステップと、
前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御ステップと、
前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
を実行させることを特徴とするデータキュー制御プログラム。(5)
(付記22)
付記21記載のデータキュー制御プログラムに於いて、前記受信パケットは所定サイズのブロックデータであり、前記ブロックデータを所定サイズに分割したサブブロックを1ワードとしたことを特徴とするデータキュー制御プログラム。
(付記23)
付記21記載のデータキュー制御プログラム於いて、
前記フォーマット決定ステップは、複数の緩衝キューのうち、空き度合いの高いの緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
(付記24)
付記21記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、受信パケットがフルワードの場合、複数の緩衝キューのうち、空き度合いの高いの緩衝キューから順番に各ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
(付記25)
付記21記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、受信パケットが空きワードを含む場合、複数の緩衝キューのうち、空き度合いの高いの緩衝キューから順番に有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
(付記26)
付記21記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、
受信パケットがnワードの場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワードをワード順に格納する書込フォーマットを定義し、
受信パケットがnワード未満の場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワード未満の各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
(付記27)
付記21記載のデータキュー制御プログラムに於いて、
前記フォーマット決定ステップは、
受信パケットが4ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に4ワードをワード順に格納する書込フォーマットを定義し、
受信パケットが3ワード、2ワード又は1ワードの場合、4個の緩衝キューのうち、空き度合いの高い緩衝キューから順番に3ワード、2ワード又は1ワードの各有効ワードをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御プログラム。
(付記28)
付記21記載のデータキュー制御プログラムに於いて、
前記複数の緩衝キューは、1ワードサイズを持つ少なくとも2アドレスのRAMで構成され、
前記フォーマット決定ステップは、前記複数の緩衝キューのRAM構成の空き状態に応じた書込みフォーマットを定義し、パケット受信時の前記複数の緩衝キューのRAM構成の空き状態に応じて書き込みフォーマットを決定することを特徴とするデータキュー制御プログラム。
(付記29)
付記21記載のデータキュー制御プログラムに於いて、
受信パケットの各ワードに対応して設けた緩衝キューの各々は、前記受信用ラッチに対するインターフェースに対応した数の緩衝キューを並列配置した緩衝キュー群で構成され、各緩衝キュー群に格納された受信ラッチ毎の受信パケットの各ワードを、各緩衝キュー群に対応して設けた複数の調停回路により受信パケット単位に読出して前記パケット格納キューに格納することを特徴とするデータキュー制御プログラム。
(付記30)
付記21記載のデータキュー制御プログラムに於いて、
前記受信用ラッチは、メモリコントローラや入出力コントローラ等のリソースのインターフェースからパケットを受信し、
前記パケット読出回路は、前記パケット格納キューから読み出したパケットをCPU等の処理モジュールに出力することを特徴とするデータキュー制御プログラム。
本発明の原理説明図 本発明が適用されるシステムボードのブロック図 図2のシステムコントローラに設けた本発明のデータキュー制御回路の実施形態のブロック図 図3で受信するパケットの説明図 4ワードパケットの第1乃至第4フォーマットによるパケット格納RAMの書込み状態の説明図 3ワードパケットの第1乃至第4フォーマットによるパケット格納RAMの書込み状態の説明図 2ワードパケットの第1乃至第4フォーマットによるパケット格納RAMの書込み状態の説明図 1ワードパケットの第1乃至第4フォーマットによるパケット格納RAMの書込み状態の説明図 図2のフォーマット決定回路で使用するフォーマット決定テーブルの説明図 図2のフォーマット決定回路で使用する4ワード用、3ワード用、2ワード用及び1ワード用フォーマットテーブルの説明図 4ワードパケット受信時に緩衝RAMの第1ケースの状態で決定された第1フォーマットによる書込み説明図 4ワードパケット受信時に緩衝RAMの第2ケースの状態で決定された第2フォーマットによる書込み説明図 4ワードパケット受信時に緩衝RAMの第3ケースの状態で決定された第3フォーマットによる書込み説明図 4ワードパケット受信時に緩衝RAMの第4ケースの状態で決定された第4フォーマットによる書込み説明図 3ワードパケット受信時に緩衝RAMの第1ケースの状態で決定された第1フォーマットによる書込み説明図 3ワードパケット受信時に緩衝RAMの第2ケースの状態で決定された第2フォーマットによる書込み説明図 3ワードパケット受信時に緩衝RAMの第3ケースの状態で決定された第3フォーマットによる書込み説明図 3ワードパケット受信時に緩衝RAMの第4ケースの状態で決定された第4フォーマットによる書込み説明図 2ワードパケット受信時に緩衝RAMの第1ケース又は第5ケースの状態で決定された第1フォーマットによる書込み説明図 2ワードパケット受信時に緩衝RAMの第2ケース又は第6ケースの状態で決定された第2フォーマットによる書込み説明図 2ワードパケット受信時に緩衝RAMの第3ケース又は第7ケースの状態で決定された第3フォーマットによる書込み説明図 2ワードパケット受信時に緩衝RAMの第4ケース又は第8ケースの状態で決定された第4フォーマットによる書込み説明図 1ワードパケット受信時に緩衝RAMの第1ケース又は第5ケースの状態で決定された第1フォーマットによる書込み説明図 1ワードパケット受信時に緩衝RAMの第2ケース又は第6ケースの状態で決定された第2フォーマットによる書込み説明図 1ワードパケット受信時に緩衝RAMの第3ケース又は第7ケースの状態で決定された第3フォーマットによる書込み説明図 1ワードパケット受信時に緩衝RAMの第4ケース又は第8ケースの状態で決定された第4フォーマットによる書込み説明図 4ワードパケットに続いて2ワードパケットを受信した際の第1ケースの状態にある緩衝RAMへの書込みとその後のパケット収納RAMへの書込み動作明図 4ワードパケットに続いて2ワードパケットを受信した際の第2ケースの状態にある緩衝RAMへの書込みとその後のパケット収納RAMへの書込み動作明図 図3の実施形態によるデータキュー制御処理のフローチャート 受信パケットをサブブロックに分けてパケット格納RAMに囲む従来装置の説明図 従来のデータキュー制御回路の説明図 緩衝RAMを配置した従来のデータキュー制御処理説明図
符号の説明
10:システムボート
11:データキュー制御回路
12:システムコントローラ
14−1〜14−4:CPU
16−1〜16−3、26−1〜26−3:パケットバス
18−1、18−2:メモリコントローラ
20:I/Oコントローラ
22−1、22−2:デュアルインラインメモリモジュール
24:I/Oバス
25−1〜25−6:パケット
28、28−1〜28−6:インターフェースラッチ(IFラッチ)
30、30−1〜30−6:パケット制御回路
32、32−1〜32−6:フォーマット決定回路
34:緩衝キュー
34−1〜34−4:緩衝RAM
36、36−1〜36−4:調停回路
38:パケット格納キュー
38−1〜38−4:パケット格納RAM
40:フォーマット情報格納部
42:パケット読出回路
44:制御部
46−1:1ワードパケット
54:2ワードパケット
46−3:3ワードパケット
52:4ワードパケット
48:フォーマット決定テーブル
50−1:1ワード用フォーマットテーブル
50−2:2ワード用フォーマットテーブル
50−3:3ワード用フォーマットテーブル
50−4:4ワード用フォーマットテーブル
56、58、60:フォーマット情報

Claims (5)

  1. ワード数が変化するパケットを複数のインターフェースから受信するための、前記各インターフェースに対応した複数の受信用ラッチと、
    前記受信用ラッチで受信したパケットをワード単位に分けて格納するための、前記各受信用ラッチに対応する複数の記憶手段から構成された、パケットが取り得る最大ワード数に一致する数の緩衝キューと、
    前記緩衝キューを構成する記憶手段から読み出されたデータの一つを選択するための調停回路を介して読み出されたデータを格納するための複数のパケット格納キューと、
    前記緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数の受信用ラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定回路と、
    前記フォーマット決定回路で決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納するパケット制御回路と、
    前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納部と、
    前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出回路と、
    を備えたことを特徴とするデータキュー制御回路。
  2. 請求項1記載のデータキュー制御回路に於いて、
    前記フォーマット決定回路は、複数の緩衝キューのうち、空き度合いの高い緩衝キューから順番に受信パケットをワード順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
  3. 請求項1記載のデータキュー制御回路に於いて、
    前記フォーマット決定回路は、
    受信パケットがnワードの場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワードをワード順に格納する書込フォーマットを定義し、
    受信パケットがnワード未満の場合、n個の緩衝キューのうち、空き度合いの高い緩衝キューから順番にnワード未満の受信パケットを構成する各ワードを順に格納する書込フォーマットを定義することを特徴とするデータキュー制御回路。
  4. ワード数が変化するパケットを複数のインターフェースから前記各インターフェースに対応した複数の受信用ラッチに受信するパケット受信ステップと、
    前記受信用ラッチで受信したパケットをワード単位に分けて格納するための、前記各受信用ラッチに対応する複数の記憶手段から構成された、パケットが取り得る最大ワード数に一致する数の緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
    前記フォーマット決定ステップで決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納する緩衝キュー格納ステップと、
    前記緩衝キューを構成する記憶手段から読み出されたデータの一つを選択するための調停回路を介して読み出されたデータを格納するための複数のパケット格納キューに格納するパケット格納ステップと、
    前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
    前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
    を備えたことを特徴とするデータキュー制御方法。
  5. システムコントローラを構成するコンピュータに、
    複数のインターフェースから前記各インターフェースに対応した複数の受信用ラッチで受信した、ワード数が変化するパケットをワード単位に分けて格納するための、前記各受信用ラッチに対応する複数の記憶手段から構成された、パケットが取り得る最大ワード数に一致する数の緩衝キューの空き状態に応じた複数種類の書込フォーマットを予め定義し、前記複数のラッチの何れかでパケットを受信した際に、そのときの前記緩衝キューの空き状態に応じて書込フォーマットを動的に決定するフォーマット決定ステップと、
    前記フォーマット決定ステップで決定した書込フォーマットに従って受信パケットをワード単位に分けて前記緩衝キューに格納する緩衝キュー格納ステップと、
    前記緩衝キューを構成する記憶手段から読み出されたデータの一つを選択するための調停回路を介して読み出されたデータを格納するための複数のパケット格納キューに格納するパケット格納ステップと、
    前記フォーマット決定回路で決定されたフォーマットを格納するフォーマット情報格納ステップと、
    前記フォーマット情報格納部に格納されたフォーマットから有効データの格納位置を認識して前記パケット格納キューからパケットを読み出すパケット読出ステップと、
    を実行させることを特徴とするデータキュー制御プログラム。
JP2004307978A 2004-10-22 2004-10-22 データキュー制御回路、方法及びプログラム Expired - Fee Related JP4464245B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004307978A JP4464245B2 (ja) 2004-10-22 2004-10-22 データキュー制御回路、方法及びプログラム
US11/042,069 US7430214B2 (en) 2004-10-22 2005-01-26 Circuit, method and program for data queue control
EP20050250472 EP1650912B1 (en) 2004-10-22 2005-01-28 Data queue control circuit for variable length packets
DE200560011224 DE602005011224D1 (de) 2004-10-22 2005-01-28 Schaltungsanordnung zum Steuern einer Datenschlange für Pakete mit variabler Länge

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004307978A JP4464245B2 (ja) 2004-10-22 2004-10-22 データキュー制御回路、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006119962A JP2006119962A (ja) 2006-05-11
JP4464245B2 true JP4464245B2 (ja) 2010-05-19

Family

ID=34982558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004307978A Expired - Fee Related JP4464245B2 (ja) 2004-10-22 2004-10-22 データキュー制御回路、方法及びプログラム

Country Status (4)

Country Link
US (1) US7430214B2 (ja)
EP (1) EP1650912B1 (ja)
JP (1) JP4464245B2 (ja)
DE (1) DE602005011224D1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4873557B2 (ja) * 2007-01-12 2012-02-08 ルネサスエレクトロニクス株式会社 データ処理装置及び半導体集積回路

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2688039B2 (ja) 1987-12-19 1997-12-08 富士通株式会社 メモリ管理装置
US5357622A (en) * 1990-09-27 1994-10-18 Dell U.S.A., L.P. Apparatus for queing and storing data writes into valid word patterns
US7653072B2 (en) 2001-11-13 2010-01-26 Transwitch Corporation Overcoming access latency inefficiency in memories for packet switched networks
US7145904B2 (en) * 2002-01-03 2006-12-05 Integrated Device Technology, Inc. Switch queue predictive protocol (SQPP) based packet switching technique
US7245617B2 (en) * 2003-02-07 2007-07-17 Fujitsu Limited Queuing packets written to memory for switching

Also Published As

Publication number Publication date
US7430214B2 (en) 2008-09-30
US20060088045A1 (en) 2006-04-27
EP1650912B1 (en) 2008-11-26
EP1650912A1 (en) 2006-04-26
DE602005011224D1 (de) 2009-01-08
JP2006119962A (ja) 2006-05-11

Similar Documents

Publication Publication Date Title
CN101300556B (zh) 支持内存系统中不定的读出数据等待时间的方法和系统
US8099567B2 (en) Reactive placement controller for interfacing with banked memory storage
CN101359314A (zh) 通过将所检索的数据直接写入存储器的存储控制器来最佳使用缓冲器空间
US20020184453A1 (en) Data bus system including posted reads and writes
WO1999005604A1 (en) Multi-port internally cached drams
US20050160202A1 (en) Direct memory access device
US7114054B2 (en) Systems and methods for increasing transaction entries in a hardware queue
JP4855864B2 (ja) ダイレクトメモリアクセスコントローラ
JP2011232917A (ja) 半導体集積回路、及びリクエスト制御方法
JP4464245B2 (ja) データキュー制御回路、方法及びプログラム
US8533368B2 (en) Buffering device and buffering method
JP4019757B2 (ja) 記憶装置
JPH08212178A (ja) 並列計算機
JP2004127305A (ja) メモリ制御装置
US6742087B2 (en) Control of access by multiple data processing units to multiple memories
JPH10307787A (ja) バッファメモリ装置
JP4549073B2 (ja) メモリ制御回路
US20050060475A1 (en) Data transfer apparatus and data transfer method
JPH0833869B2 (ja) データ処理装置
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
KR970010367B1 (ko) 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙 장치 및 방법
JP5929600B2 (ja) 情報処理システム、情報処理装置、及び電子装置
CN113110878A (zh) 存储器装置及其操作方法
JPWO2004051492A1 (ja) 同一の入力値を圧縮する記憶装置
JPS6327731B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090817

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: 20100126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

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: 20140226

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees