(57)【要約】  本実施例にかかる記録制御システムは、ＩＯ装置（５０）がストアリクエストをＳＣ（１００）に出力し、ＳＣ（１００）は、ＣＰＵ（３０），（４０）の登録情報とストアリクエストに含まれるアドレスとを比較して無効化要求を行うか否かを判定し、無効化要求を行うと判定した場合に、ＣＰＵ（３０）あるいは（４０）に無効化要求を行う。そして、ＳＣ（１００）が、ＣＰＵ（３０）あるいは（４０）から無効化完了情報を取得した時点で、無効化要求に対応するリクエストＩＤをＩＯ装置（５０）に出力し、ストア対象データの記録が完了した旨を通知にする。
2007096980.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御装置であって、
前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求手段と、
前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知手段と、
を備えたことを特徴とする記録制御装置。
【請求項２】
前記第１のデータを前記メモリに記録するように要求する識別情報を含んだ記録要求を取得した場合に、取得した記録要求の識別情報と、無効化要求を行ったデータに対応する記録要求の識別情報とが重複しないように、各記録要求に識別番号を付して管理する記録要求管理手段を更に備えたことを特徴とする請求項１に記載の記録制御装置。
【請求項３】
自記録制御装置がバッファに受付可能な前記記録要求の数を管理する管理手段を更に備え、前記管理手段は、前記記録要求を取得した場合に、前記数に基づいて、前記記録要求を受付けるか否かを判定することを特徴とする請求項２に記載の記録制御装置。
【請求項４】
前記管理手段は、前記第１のデータに対する記録が完了した旨の情報を取得した場合に、前記数を増やすことを特徴とする請求項３に記載の記録制御装置。
【請求項５】
プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御方法であって、
前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求工程と、
前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知工程と、
を含んだことを特徴とする記録制御方法。
【請求項６】
前記第１のデータを前記メモリに記録するように要求する識別情報を含んだ記録要求を取得した場合に、取得した記録要求の識別情報と、無効化要求を行ったデータに対応する記録要求の識別情報とが重複しないように、各記録要求に識別番号を付して管理する記録要求管理工程を更に含んだことを特徴とする請求項５に記載の記録制御方法。
【請求項７】
前記メモリに対する記録制御を行う録制御装置がバッファに受付可能な前記記録要求の数を管理する管理工程を更に含み、前記管理工程は、前記記録要求を取得した場合に、前記数に基づいて、前記記録要求を受付けるか否かを判定することを特徴とする請求項６に記載の記録制御方法。
【請求項８】
前記管理工程は、前記第１のデータに対する記録が完了した旨の情報を取得した場合に、前記数を増やすことを特徴とする請求項７に記載の記録制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御装置および記録制御方法に関するものである。
【背景技術】
【０００２】
従来、ＩＯ（Input/Output）装置は、主記憶装置におけるデータの記録制御を行うシステムコントローラに対してデータのストア要求を出力している。また、ＩＯ装置は、ストア要求に対して順序保証が必要な場合に、システムコントローラからのストア要求に対する完了通知（以下、ストア完了通知）を待ってから、次のストア要求をシステムコントローラに出力する必要があった。【０００３】
一方、ストア要求を取得したシステムコントローラは、ストア要求のアドレスに該当するデータがＣＰＵ（Central  Processing  Unit）の保持するキャッシュにヒットしたか否かに応じて、キャッシュに対するデータの無効化要求を行うと共に、ストア対象となるデータ（以下、ストア対象データ）を主記憶装置に記録し、キャッシュに対する無効化処理およびストア対象データの記録が完了した時点で、ＩＯ装置にストア完了通知を出力していた。【０００４】
したがって、ＩＯ装置は、システムコントローラからのストア完了通知を取得するまで、次のストア要求を出力することができず、ストア対象データを迅速に処理することができなかった。【０００５】
そこで、上述した問題を解消するべく、特許文献１では、主記憶装置におけるデータの入出力を制御する記憶制御装置が、ストア要求を取得した場合に、主記憶装置のストア対象データの記録完了を待たず、データの無効化処理が完了した時点で、ストア完了通知をストア要求元に通知するという技術が開示されている。【０００６】
【特許文献１】特開２０００−１８１８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、ＩＯ装置が処理するストア対象データの増加に伴って、このストア対象データを管理する回路構成が複雑となり、効率的にストア対象データを管理することができないという問題があった。【０００８】
本発明は、上記に鑑みてなされたものであって、効率的にストア対象データを管理することができる記録制御装置および記録制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御装置であって、前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求手段と、前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知手段と、を備えたことを特徴とする。【００１０】
また、本発明は、プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御方法であって、前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求工程と、前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知工程と、を含んだことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、プロセッサが備えるキャッシュに第２のデータに対応する第３のデータが記録されている場合に、この第３のデータに対する無効化要求を行い、無効化が完了した場合に、第１のデータに対する記録要求の出力元に記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知するので、迅速に第１のデータを処理することができ、自装置を含んだシステム全体の性能を向上させることができるとともに、記録要求の出力元となる装置が管理すべきデータ量を削減し、回路を単純化させることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例にかかる記録制御システムの構成を示すブロック図である。
【図２】図２は、リクエスト管理テーブルに記録されるデータの一例を示す図である。
【図３】図３は、アドレスロックレジスタに記録されるデータの一例を示す図である。
【図４】図４は、記録制御システムにかかる処理のタイムチャートを示す図である。
【図５】図５は、本実施例にかかるＳＣの処理を示すフローチャートである。
【図６】図６は、ストア処理を示すフローチャートである。
【図７】図７は、スヌープ処理を示すフローチャートである。
【符号の説明】
【００１３】
１０    メモリ
２０    ＭＡＣ
３０，４０    ＣＰＵ
５０    ＩＯ装置
５０ａ  リクエスト管理テーブル
１００    ＳＣ
１１０    受信用キュー
１２０    応答用回路
１３０    ストアデータ保持用キュー
１４０    スヌープ用回路
１４０ａ  アドレスロックレジスタ
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかる記録制御装置および記録制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１５】
まず、本発明の特徴について説明する。本発明にかかる記録制御装置は、メモリに対するデータの記録要求（以下、ストアリクエスト）を取得した場合に、取得したストアリクエストに含まれメモリに記録されるデータ（以下、ストア対象データ）のメモリ格納先となるアドレスを参照する。そして、記録制御装置は、ストア対象データのアドレスが、キャッシュヒットした場合に、キャッシュヒットしたデータ（以下、無効化対象データ）に対する無効化要求をＣＰＵ（Central  Processing  Unit）に出力する。【００１６】
記録制御装置は、ＣＰＵから無効化対象データを無効化した旨の情報（以下、無効化完了情報）を取得した場合に、メモリにストア対象データを記録していない状態であっても、ストア対象データの記録が完了した旨の情報（以下、ストア完了情報）をストアリクエスト出力元に出力し、ストア対象データの記録が完了した旨を通知する。また、ストア完了情報には、ストアリクエストを識別する情報（以下、リクエストＩＤ＜Identification＞）を含んでいる。【００１７】
このように、本発明にかかる記録制御装置は、ＣＰＵの無効化処理が完了した時点で、ストア完了情報をストアリクエストの出力元に出力するので、ストアリクエストの出力元となる装置（以下、ＩＯ＜Input/Output＞装置）は、迅速にストア対象データを処理することができ、記録制御装置を含んだシステム全体の性能を向上させることができる。【００１８】
また、ＩＯ装置は、ストア対象データを管理するために、このストア対象データとリクエストＩＤとを関連付けて管理する必要がある。そのため、ストア対象データの増加に伴い、リクエストＩＤも増加してしまうため、ＩＯ装置の回路構成が複雑になっていた。【００１９】
しかし、本発明にかかる記録制御装置が、ストア完了情報に無効化の完了したストアリクエストのリクエストＩＤを含めてＩＯ装置に出力するので、ＩＯ装置は、リクエストＩＤを効率よく開放することができ（リクエストＩＤを使いまわすことができるので）、リクエストＩＤの数を抑えることができる。更に、ＩＯ装置が管理すべきリクエストＩＤの数が抑えられるので、ＩＯ装置の回路を単純化することができ、コストを下げることができる。【００２０】
次に、本実施例にかかる記録制御システムの構成について説明する。なお、本実施例に示す記録制御システムは一例である。図１は、本実施例にかかる記録制御システムの構成を示すブロック図である。同図に示すように、この記録制御システムは、メモリ１０と、ＭＡＣ（Memory  Access  Controller）２０と、ＣＰＵ３０，４０と、ＩＯ装置５０と、ＳＣ（System  Controller）１００とを備えて構成される。【００２１】
このうち、メモリ１０は、ＣＰＵ３０，４０が用いるデータや命令などを記憶する記憶装置であり、ＭＡＣ２０は、メモリ１０に対するデータの入出力を制御する装置である。【００２２】
ＣＰＵ３０，４０は、キャッシュを有し、メモリ１０に記録された命令およびデータをキャッシュに記録させ、キャッシュに記録された命令を解釈して、データに対して所定の演算を実行する装置である。なお、本実施例では特に、ＣＰＵ３０，４０は、無効化対象データのアドレスを取得した場合に、取得したアドレスに対応するデータを無効化し、無効化完了情報を無効化要求の出力元（ＳＣ１００）に出力する。【００２３】
ＩＯ装置５０は、リクエスト管理テーブル５０ａを有し、ＳＣ１００に対してストアリクエストを行う装置である。図２は、リクエスト管理テーブル５０ａに記録されるデータの一例を示す図である。同図に示すように、リクエスト管理テーブル５０ａに記録されるデータは、リクエストＩＤと、アドレスと、ストア対象データとからなる。このうち、リクエストＩＤは、ストアリクエストを一意に識別するための識別情報であり、アドレスは、ストア対象データを記録するメモリ１０上のアドレスを示し、ストア対象データは、メモリに格納されるデータを示す。ＩＯ装置５０は、リクエスト管理テーブル５０ａに記録されたリクエストＩＤと、アドレスと、ストア対象データとからなるストアリクエストを順次ＳＣ１００に出力する。【００２４】
また、ＩＯ装置５０は、ＳＣ１００からストア完了情報を取得した場合には、このストア完了情報に含まれるリクエストＩＤを参照し、リクエスト管理テーブル５０ａのリクエストＩＤを開放する。例えば、ストア完了情報に、リクエストＩＤ「Ｒ０００１」が含まれている場合には、リクエスト管理テーブル５０ａのリクエストＩＤ「Ｒ０００１」を開放し、新たなアドレスおよびストア対象データと対応付ける。【００２５】
ＳＣ１００は、ＣＰＵ３０，４０が備えるキャッシュおよびメモリ１０に対するデータの記録制御を行う装置であり、受信用キュー１１０と、応答用回路１２０と、ストアデータ保持用キュー１３０と、スヌープ用回路１４０とを備える。【００２６】
このうち、受信用キュー１１０は、ＩＯ装置５０から出力されるストアリクエストを順次記録する記録装置である。また、受信用キュー１１０は、ＩＯ装置５０から取得した順番で、ストアリクエストに含まれるリクエストＩＤおよびアドレスをスヌープ用回路１４０に出力し、ストアリクエストに含まれるストア対象データをストアデータ保持用キュー１３０に出力する。【００２７】
さらに、受信用キュー１１０は、記録可能なストアリクエストの数（以下、記録可能数）の情報を保持しており、ストアリクエストをＩＯ装置５０から取得するごとに、記録可能数から１減算する。なお、受信用キュー１１０は、ストアリクエストを取得した場合に、記録可能数が０以下であるか否かを判定し、記録可能数が０以下である場合には、ストアリクエストを受付けられない旨の情報をＩＯ装置５０に出力する。【００２８】
応答用回路１２０は、受信用キュー１１０が保持する記録可能数を管理するとともに、ストア完了情報をＩＯ装置５０に出力する装置である。具体的に、応答用回路１２０は、ＭＡＣ２０からストア対象データの記録が完了した旨の情報を取得した場合に、受信用キュー１１０を制御して、受信用キュー１１０が保持する記録可能数を１増やす（インクリメントする）。【００２９】
また、応用用回路１２０は、後述するスヌープ用回路１４０から無効化を行ったデータに対するリクエストＩＤを取得した場合には、取得したリクエストＩＤをストア完了情報としてＩＯ装置５０に出力する。（なお、無効化が行われなかった場合、つまり、キャッシュヒットしなかった場合には、キャッシュヒットしなかったストアリクエストに対するリクエストＩＤをスヌープ用回路１４０から取得し、取得したリクエストＩＤをＩＯ装置５０に出力する。）【００３０】
ストアデータ保持用キュー１３０は、受信用キュー１１０から取得するストア対象データを記録する記録装置である。また、ストアデータ保持用キュー１３０は、スヌープ用回路１４０からの制御命令に応答して、保持しているストア対象データをＭＡＣ２０に出力する。【００３１】
スヌープ用回路１４０は、ＣＰＵ３０または４０に対する無効化要求を行うとともに、ＭＡＣ２０に、メモリ１０に対するストア対象データの記録要求を行う装置である。まず、スヌープ用回路１４０がＣＰＵ３０または４０に対して行う無効化要求について説明し、その後に、ストア対象データの記録要求について説明する。【００３２】
スヌープ用回路１４０は、ＣＰＵ３０，４０が保持するキャッシュの登録情報（図示しない）を保持している。この登録情報には、キャッシュに記録されたデータとメモリ１０に記録されたデータとの関係が記録されている。スヌープ用回路１４０は、この登録情報を参照することによって、ストア対象データが記録されるメモリ上のアドレスに、既に、キャッシュに登録されたデータが記録されているか否かを判定することができる（キャッシュヒットしたか否かを判定することができる）。【００３３】
スヌープ用回路１４０は、受信用キュー１１０からリクエストＩＤおよびストア対象データのアドレスを取得した場合に、取得したアドレスと登録情報とを比較してキャッシュヒットしたか否かを判定する（スヌープ処理を行う）。そして、キャッシュヒットした場合には、スヌープ用回路１４０は、キャッシュヒットしたアドレスをＣＰＵ３０あるいは４０に出力することによって、データの無効化要求を行う。【００３４】
その後、スヌープ用回路１４０は、ＣＰＵ３０あるいは４０から無効化完了情報を取得した場合に、無効化されたデータのアドレスと同一のアドレスに対応するリクエストＩＤを応答用回路１２０に出力して、データの無効化が完了した旨を通知する。【００３５】
一方、スヌープ用回路１４０は、受信用キュー１１０から取得したアドレスと、登録情報とを比較し、キャッシュヒットしなかった場合には、キャッシュヒットしなかったアドレスに対応するリクエストＩＤを応答回路１２０に出力して、データの無効化が完了した旨を通知する。【００３６】
続いて、スヌープ用回路１４０がＭＡＣ２０に対して行うストア対象データの記録要求について説明する。まず、スヌープ用回路１４０は、受信用キュー１１０からリクエストＩＤおよびアドレスを取得した場合に、取得したリクエストＩＤおよびアドレスに対してロック番号を割り振り、アドレスロックレジスタ１４０ａに登録する。ここで、ロック番号は、リクエストＩＤをＳＣ１００内で識別するための識別番号である。このロック番号を利用することによって、ＳＣ１００は、同一のリクエストＩＤがアドレスロックレジスタ１４０ａに存在する場合であっても、各リクエストＩＤをロック番号によって識別することができる。【００３７】
図３は、アドレスロックレジスタ１４０ａに記録されるデータの一例を示す図である。同図に示すように、アドレスロックレジスタ１４０ａに記録されるデータは、ロック番号と、ロック有効情報と、リクエストＩＤと、アドレスとを有する。このうち、ロック有効情報は、ロック番号に対応するアドレスがロックされているか否かを示す情報である。【００３８】
スヌープ用回路１４０は、リクエストＩＤおよびアドレスをアドレスロックレジスタ１４０ａに記録する場合に、既に格納先のアドレスが他のリクエストＩＤによってロックされている場合には（ロック有効情報が「有効」である場合）、このロックが解除されるまで待機する。一方、他のリクエストＩＤによってアドレスがまだロックされていない場合（ロック有効情報が「無効」の場合）、およびロックが解除された場合（ロック有効情報が「有効」から「無効」になった場合）には、スヌープ用回路１４０は、リクエストＩＤとアドレスとをロック番号と対応付けてアドレスロックレジスタ１４０ａに登録するとともに、ロック有効情報を「有効」にする。【００３９】
スヌープ用回路１４０は、リクエストＩＤおよびアドレスをアドレスロックレジスタ１４０ａに登録した後に、ストア保持用キュー１３０に記録されたストア対象データをＭＡＣ２０に出力させるとともに、出力させたストア対象データに対応するアドレスと、当該アドレスに対応するロック番号とをアドレスロックレジスタ１４０ａから読み出して、ＭＡＣ２０に出力する。（ここで、ＭＡＣ２０は、ＳＣ１００からストア対象データと、アドレスと、ロック番号を取得した場合には、ストア対象データをメモリ１０の該当アドレスに記録させ、ストア対象データの記録が完了した旨を１２０に出力するとともに、ロック番号をスヌープ用回路１４０に出力して、ロック番号に対応するロックを解除させる（ロック有効情報を「有効」から「無効」に更新させる）。）【００４０】
次に、本実施例にかかる記録制御システムの処理をタイムチャートによって説明する。図４は、記録制御システムにかかる処理のタイムチャートを示す図である。同図に示すように、ＩＯ装置５０は、ストアリクエストを受信用キュー１１０に出力し、受信用キュー１１０は、リクエストＩＤとアドレスとをスヌープ用回路１４０に出力し、ストア対象データをストアデータ保持用キュー１３０に出力する。【００４１】
スヌープ用回路１４０は、スヌープ処理を行うとともに、ストア対象データの出力要求をストアデータ保持用キュー１３０に出力し、無効化要求（キャッシュヒットした場合）をＣＰＵ３０あるいは４０に出力する。そして、ストアデータ保持用キュー１３０が、ストア対象データをＭＡＣ２０に出力する一方で、ＣＰＵ３０あるいは４０が無効化対象となるデータの無効化を完了させて、無効化完了情報をスヌープ用回路１４０に出力する。【００４２】
スヌープ用回路１４０は、無効化完了情報を取得した場合に、応答用回路１２０にリクエストＩＤを出力し、ＩＯ装置５０にストア完了情報を出力させる。ストア完了情報を取得したＩＯ装置５０は、ストア完了情報に含まれるリクエストＩＤに対応するリクエスト管理テーブル５０ａのリクエストＩＤを開放する。【００４３】
一方、ＭＡＣ２０は、ストア対象データをメモリ１０に記録させた後に、記録させたストア対象データに対応するロック番号をスヌープ用回路１４０に出力してアドレスロックを開放させ（ロック有効情報を「有効」から「無効」に更新させ）、スヌープ用回路１４０は、次のリクエストＩＤおよびアドレスを受信用キュー１１０に要求する。【００４４】
このように、スヌープ用回路１４０は、ＣＰＵ３０あるいは４０から無効化完了情報を取得した時点で、ストア完了情報をリクエストＩＤとともにＩＯ装置５０に出力するので、ＩＯ装置５０はストア対象データを迅速に処理することができ、記録処理システム全体の性能を向上させることができる。【００４５】
次に、本実施例にかかるＳＣ１００の処理をフローチャートによって説明する。図５は、本実施例にかかるＳＣ１００の処理を示すフローチャートである。同図に示すように、ＳＣ１００は、ＩＯ装置５０からストアリクエストを取得し（ステップＳ１０１）、取得したストアリクエストを受信用キュー１１０に格納する（ステップＳ１０２）。【００４６】
受信用キュー１１０は、記録可能数が所定値以上（例えば１以上）か否かを判定し（ステップＳ１０３）、所定値よりも記録可能数が小さい場合には（ステップＳ１０４、Ｎｏ）、ストアリクエストを受付けられない旨の情報をＩＯ装置５０に出力し（ステップＳ１０５）、ステップＳ１０１に移行する。【００４７】
一方、記録可能数が所定値以上の場合には（ステップＳ１０４，Ｙｅｓ）、受信用キュー１１０は、リクエストＩＤおよびアドレスをスヌープ用回路１４０に出力し、ストア対象データをストアデータ保持用キュー１３０に出力する（ステップＳ１０６）。【００４８】
続いて、スヌープ用回路１４０は、アドレスロックが成功したか否かを判定する（ステップＳ１０７）。このステップＳ１０７において、スヌープ用回路１４０は、受信用キュー１１０からリクエストＩＤおよびアドレスを取得した場合に、アドレスロックレジスタ１４０ａに基づいて、アドレスが既にロックされているか（ロック有効情報が「有効」か）否かを判定する。【００４９】
そして、アドレスロックが失敗した場合（ロック有効情報が「有効」の場合）には（ステップＳ１０８，Ｎｏ）、ステップ１０７に移行し、アドレスロックが成功した場合（ロック有効情報が「無効」の場合）には（ステップＳ１０８，Ｙｅｓ）、スヌープ用回路１４０は、ロック番号と対応付けてリクエストＩＤとアドレスとをアドレスロックレジスタ１４０ａに記録し、ロック有効情報を「有効」に更新する（ステップＳ１０９）。【００５０】
その後、スヌープ用回路１４０は、ストア処理およびスヌープ処理を実行し（ステップＳ１１０，１１１）ステップＳ１０１に移行する。【００５１】
続いて、図５のステップＳ１１０において示したストア処理について説明する。図６は、ストア処理を示すフローチャートである。同図に示すように、スヌープ用回路１４０は、ＭＡＣ２０にロック番号と、アドレスと、ストア対象データとを渡し（ステップＳ２０１）、（ストア対象データの記録が完了した後に）ＭＡＣ１０からのストア完了情報を取得する（ステップＳ２０２）。【００５２】
スヌープ用回路１４０は、ＭＡＣ２０から取得したストア完了情報を取得した場合に、このストア完了通知に含まれるロック番号を参照し、アドレスロックを解除（ロック番号に対応するロック有効情報を「有効」から「無効」に更新）し（ステップＳ２０３）、応答用回路１２０が、記録可能数を増やす（ステップＳ２０４）。【００５３】
続いて、図５のステップＳ１１１において示したスヌープ処理について説明する。図７は、スヌープ処理を示すフローチャートである。同図に示すように、スヌープ用回路１４０は、登録情報と、受信用キュー１１０から取得したアドレスとを比較して、キャッシュヒットしたか否かを判定する（ステップＳ３０１）。【００５４】
そして、キャッシュヒットした場合には（ステップＳ３０２，Ｙｅｓ）、スヌープ用回路１４０は、ＣＰＵ３０あるいは４０に無効化要求を行い（ステップＳ３０３）、（ＣＰＵ３０あるいは４０が無効化を完了させた後に）ＣＰＵ３０あるいは４０から無効化完了情報を取得する（ステップＳ３０４）。【００５５】
スヌープ用回路１４０は、無効化対象となったデータに対応するリクエストＩＤを、応答用回路１２０に出力し、応答用回路１２０が、リクエストＩＤを含んだストア完了情報をＩＯ装置５０に出力する（ステップＳ３０５）。【００５６】
一方、キャッシュヒットしなかった場合には（ステップＳ３０２，Ｎｏ）、スヌープ用回路１４０は、ステップＳ３０５に移行する。なお、この場合、スヌープ用回路１４０は、キャッシュヒットしなかったアドレスに対応するリクエストＩＤを応答用回路１２０に出力することになる。【００５７】
このように、ＳＣ１００は、ＣＰＵ３０あるいは４０から無効化完了情報を取得した時点で、無効化対象となったデータに対応するストアリクエストのリクエストＩＤをＩＯ装置５０に出力し、無効化が完了した旨を通知するので、ＩＯ装置は、ストア対象データを効率よく処理することができる。【００５８】
上述してきたように、本実施例にかかる記録制御システムは、ＩＯ装置５０がストアリクエストをＳＣ１００に出力し、ＳＣ１００は、登録情報とストアリクエストに含まれるアドレスとを比較して無効化要求を行うか否かを判定し、無効化要求を行うと判定した場合に、ＣＰＵ３０あるいは４０に無効化要求を行う。そして、ＳＣ１００が、無効化完了情報を取得した時点で、無効化要求に対応するリクエストＩＤをＩＯ装置５０に出力し、ストア対象データの記録が完了した旨を通知にするので、ＩＯ装置は、ストア対象データを迅速に処理することができ、記録制御システム全体の性能が向上する。【００５９】
また、本実施例にかかる記録制御システムは、無効化が完了したデータに対応するリクエストＩＤをＩＯ装置５０に出力するので、ＩＯ装置５０は管理すべきリクエストＩＤの数を大幅に減らすことができ、回路を単純化させることができる（リクエストＩＤの管理方式が単純化される）。【００６０】
また、本実施例にかかる記録制御システムは、応答用回路１２０が、受信用キュー１１０の記録可能数を管理し、ＭＡＣ２０からストア対象データの記録が完了した旨の情報を取得した場合に、記録可能数をインクリメントするので、効率よく、ＩＯ装置５０からストアリクエストを受付けることができる。【００６１】
また、本実施例にかかる記録制御システムは、スヌープ用回路１４０が、リクエストＩＤを取得した場合に、リクエストＩＤにロック番号を割り振り管理するので、同一のリクエストＩＤを取得した場合であっても、各リクエストＩＤをロック番号で識別することができるので、正確にリクエストＩＤを処理することができる。
【産業上の利用可能性】
【００６２】
以上のように、本発明にかかる記録制御装置は、メモリにデータを記録させる場合に有用であり、特に、メモリに記録すべきデータを迅速に処理する必要のあるデータの記録制御システムなどに適している。
【図１】
2007096980.tif 000003
【図２】
2007096980.tif 000004
【図３】
2007096980.tif 000005
【図４】
2007096980.tif 000006
【図５】
2007096980.tif 000007
【図６】
2007096980.tif 000008
【図７】
2007096980.tif 000009
【手続補正書】
【提出日】平成20年5月2日(2008.5.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御装置であって、
前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求手段と、
前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知手段と、
を備えたことを特徴とする記録制御装置。
【請求項２】
前記第１のデータを前記メモリに記録するように要求する識別情報を含んだ記録要求を取得した場合に、取得した記録要求の識別情報と、無効化要求を行ったデータに対応する記録要求の識別情報とが重複しないように、各記録要求に識別番号を付して管理する記録要求管理手段を更に備えたことを特徴とする請求項１に記載の記録制御装置。
【請求項３】
自記録制御装置がバッファに受付可能な前記記録要求の数を管理する管理手段を更に備え、前記管理手段は、前記記録要求を取得した場合に、前記数に基づいて、前記記録要求を受付けるか否かを判定することを特徴とする請求項２に記載の記録制御装置。
【請求項４】
前記管理手段は、前記第１のデータに対する記録が完了した旨の情報を取得した場合に、前記数を増やすことを特徴とする請求項３に記載の記録制御装置。
【請求項５】
プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御方法であって、
前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求工程と、
前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知工程と、
を含んだことを特徴とする記録制御方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御装置および記録制御方法に関するものである。
【背景技術】
【０００２】
従来、ＩＯ（Input/Output）装置は、主記憶装置におけるデータの記録制御を行うシステムコントローラに対してデータのストア要求を出力している。また、ＩＯ装置は、ストア要求に対して順序保証が必要な場合に、システムコントローラからのストア要求に対する完了通知（以下、ストア完了通知）を待ってから、次のストア要求をシステムコントローラに出力する必要があった。
【０００３】
一方、ストア要求を取得したシステムコントローラは、ストア要求のアドレスに該当するデータがＣＰＵ（Central  Processing  Unit）の保持するキャッシュにヒットしたか否かに応じて、キャッシュに対するデータの無効化要求を行うと共に、ストア対象となるデータ（以下、ストア対象データ）を主記憶装置に記録し、キャッシュに対する無効化処理およびストア対象データの記録が完了した時点で、ＩＯ装置にストア完了通知を出力していた。
【０００４】
したがって、ＩＯ装置は、システムコントローラからのストア完了通知を取得するまで、次のストア要求を出力することができず、ストア対象データを迅速に処理することができなかった。
【０００５】
そこで、上述した問題を解消するべく、特許文献１では、主記憶装置におけるデータの入出力を制御する記憶制御装置が、ストア要求を取得した場合に、主記憶装置のストア対象データの記録完了を待たず、データの無効化処理が完了した時点で、ストア完了通知をストア要求元に通知するという技術が開示されている。
【０００６】
【特許文献１】特開２０００−１８１８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、ＩＯ装置が処理するストア対象データの増加に伴って、このストア対象データを管理する回路構成が複雑となり、効率的にストア対象データを管理することができないという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、効率的にストア対象データを管理することができる記録制御装置および記録制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御装置であって、前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求手段と、前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知手段と、を備えたことを特徴とする。
【００１０】
また、本発明は、プロセッサが備えるキャッシュおよびメモリに対するデータの記録制御を行う記録制御方法であって、前記メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、前記キャッシュに第２のデータに対応する第３のデータが記録されている場合に、前記第３のデータの無効化要求を行う無効化要求工程と、前記キャッシュに記録されていた第３のデータが無効化された場合に、前記第１のデータに対する記録要求の出力元に当該記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知する通知工程と、を含んだことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、メモリに対して記録される第１のデータの記録場所に既に第２のデータが記録されており、かつ、プロセッサが備えるキャッシュに第２のデータに対応する第３のデータが記録されている場合に、この第３のデータに対する無効化要求を行い、無効化が完了した場合に、第１のデータに対する記録要求の出力元に記録要求を識別する情報を出力して、記録対象となるデータの記録が完了した旨を通知するので、迅速に第１のデータを処理することができ、自装置を含んだシステム全体の性能を向上させることができるとともに、記録要求の出力元となる装置が管理すべきデータ量を削減し、回路を単純化させることができる。
【発明を実施するための最良の形態】
【００１２】
以下に、本発明にかかる記録制御装置および記録制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
まず、本発明の特徴について説明する。本発明にかかる記録制御装置は、メモリに対するデータの記録要求（以下、ストアリクエスト）を取得した場合に、取得したストアリクエストに含まれメモリに記録されるデータ（以下、ストア対象データ）のメモリ格納先となるアドレスを参照する。そして、記録制御装置は、ストア対象データのアドレスが、キャッシュヒットした場合に、キャッシュヒットしたデータ（以下、無効化対象データ）に対する無効化要求をＣＰＵ（Central  Processing  Unit）に出力する。
【００１４】
記録制御装置は、ＣＰＵから無効化対象データを無効化した旨の情報（以下、無効化完了情報）を取得した場合に、メモリにストア対象データを記録していない状態であっても、ストア対象データの記録が完了した旨の情報（以下、ストア完了情報）をストアリクエスト出力元に出力し、ストア対象データの記録が完了した旨を通知する。また、ストア完了情報には、ストアリクエストを識別する情報（以下、リクエストＩＤ＜Identification＞）を含んでいる。
【００１５】
このように、本発明にかかる記録制御装置は、ＣＰＵの無効化処理が完了した時点で、ストア完了情報をストアリクエストの出力元に出力するので、ストアリクエストの出力元となる装置（以下、ＩＯ＜Input/Output＞装置）は、迅速にストア対象データを処理することができ、記録制御装置を含んだシステム全体の性能を向上させることができる。
【００１６】
また、ＩＯ装置は、ストア対象データを管理するために、このストア対象データとリクエストＩＤとを関連付けて管理する必要がある。そのため、ストア対象データの増加に伴い、リクエストＩＤも増加してしまうため、ＩＯ装置の回路構成が複雑になっていた。
【００１７】
しかし、本発明にかかる記録制御装置が、ストア完了情報に無効化の完了したストアリクエストのリクエストＩＤを含めてＩＯ装置に出力するので、ＩＯ装置は、リクエストＩＤを効率よく開放することができ（リクエストＩＤを使いまわすことができるので）、リクエストＩＤの数を抑えることができる。更に、ＩＯ装置が管理すべきリクエストＩＤの数が抑えられるので、ＩＯ装置の回路を単純化することができ、コストを下げることができる。
【００１８】
次に、本実施例にかかる記録制御システムの構成について説明する。なお、本実施例に示す記録制御システムは一例である。図１は、本実施例にかかる記録制御システムの構成を示すブロック図である。同図に示すように、この記録制御システムは、メモリ１０と、ＭＡＣ（Memory  Access  Controller）２０と、ＣＰＵ３０，４０と、ＩＯ装置５０と、ＳＣ（System  Controller）１００とを備えて構成される。
【００１９】
このうち、メモリ１０は、ＣＰＵ３０，４０が用いるデータや命令などを記憶する記憶装置であり、ＭＡＣ２０は、メモリ１０に対するデータの入出力を制御する装置である。
【００２０】
ＣＰＵ３０，４０は、キャッシュを有し、メモリ１０に記録された命令およびデータをキャッシュに記録させ、キャッシュに記録された命令を解釈して、データに対して所定の演算を実行する装置である。なお、本実施例では特に、ＣＰＵ３０，４０は、無効化対象データのアドレスを取得した場合に、取得したアドレスに対応するデータを無効化し、無効化完了情報を無効化要求の出力元（ＳＣ１００）に出力する。
【００２１】
ＩＯ装置５０は、リクエスト管理テーブル５０ａを有し、ＳＣ１００に対してストアリクエストを行う装置である。図２は、リクエスト管理テーブル５０ａに記録されるデータの一例を示す図である。同図に示すように、リクエスト管理テーブル５０ａに記録されるデータは、リクエストＩＤと、アドレスと、ストア対象データとからなる。このうち、リクエストＩＤは、ストアリクエストを一意に識別するための識別情報であり、アドレスは、ストア対象データを記録するメモリ１０上のアドレスを示し、ストア対象データは、メモリに格納されるデータを示す。ＩＯ装置５０は、リクエスト管理テーブル５０ａに記録されたリクエストＩＤと、アドレスと、ストア対象データとからなるストアリクエストを順次ＳＣ１００に出力する。
【００２２】
また、ＩＯ装置５０は、ＳＣ１００からストア完了情報を取得した場合には、このストア完了情報に含まれるリクエストＩＤを参照し、リクエスト管理テーブル５０ａのリクエストＩＤを開放する。例えば、ストア完了情報に、リクエストＩＤ「Ｒ０００１」が含まれている場合には、リクエスト管理テーブル５０ａのリクエストＩＤ「Ｒ０００１」を開放し、新たなアドレスおよびストア対象データと対応付ける。
【００２３】
ＳＣ１００は、ＣＰＵ３０，４０が備えるキャッシュおよびメモリ１０に対するデータの記録制御を行う装置であり、受信用キュー１１０と、応答用回路１２０と、ストアデータ保持用キュー１３０と、スヌープ用回路１４０とを備える。
【００２４】
このうち、受信用キュー１１０は、ＩＯ装置５０から出力されるストアリクエストを順次記録する記録装置である。また、受信用キュー１１０は、ＩＯ装置５０から取得した順番で、ストアリクエストに含まれるリクエストＩＤおよびアドレスをスヌープ用回路１４０に出力し、ストアリクエストに含まれるストア対象データをストアデータ保持用キュー１３０に出力する。
【００２５】
さらに、受信用キュー１１０は、記録可能なストアリクエストの数（以下、記録可能数）の情報を保持しており、ストアリクエストをＩＯ装置５０から取得するごとに、記録可能数から１減算する。なお、受信用キュー１１０は、ストアリクエストを取得した場合に、記録可能数が０以下であるか否かを判定し、記録可能数が０以下である場合には、ストアリクエストを受付けられない旨の情報をＩＯ装置５０に出力する。
【００２６】
応答用回路１２０は、受信用キュー１１０が保持する記録可能数を管理するとともに、ストア完了情報をＩＯ装置５０に出力する装置である。具体的に、応答用回路１２０は、ＭＡＣ２０からストア対象データの記録が完了した旨の情報を取得した場合に、受信用キュー１１０を制御して、受信用キュー１１０が保持する記録可能数を１増やす（インクリメントする）。
【００２７】
また、応用用回路１２０は、後述するスヌープ用回路１４０から無効化を行ったデータに対するリクエストＩＤを取得した場合には、取得したリクエストＩＤをストア完了情報としてＩＯ装置５０に出力する。（なお、無効化が行われなかった場合、つまり、キャッシュヒットしなかった場合には、キャッシュヒットしなかったストアリクエストに対するリクエストＩＤをスヌープ用回路１４０から取得し、取得したリクエストＩＤをＩＯ装置５０に出力する。）
【００２８】
ストアデータ保持用キュー１３０は、受信用キュー１１０から取得するストア対象データを記録する記録装置である。また、ストアデータ保持用キュー１３０は、スヌープ用回路１４０からの制御命令に応答して、保持しているストア対象データをＭＡＣ２０に出力する。
【００２９】
スヌープ用回路１４０は、ＣＰＵ３０または４０に対する無効化要求を行うとともに、ＭＡＣ２０に、メモリ１０に対するストア対象データの記録要求を行う装置である。まず、スヌープ用回路１４０がＣＰＵ３０または４０に対して行う無効化要求について説明し、その後に、ストア対象データの記録要求について説明する。
【００３０】
スヌープ用回路１４０は、ＣＰＵ３０，４０が保持するキャッシュの登録情報（図示しない）を保持している。この登録情報には、キャッシュに記録されたデータとメモリ１０に記録されたデータとの関係が記録されている。スヌープ用回路１４０は、この登録情報を参照することによって、ストア対象データが記録されるメモリ上のアドレスに、既に、キャッシュに登録されたデータが記録されているか否かを判定することができる（キャッシュヒットしたか否かを判定することができる）。
【００３１】
スヌープ用回路１４０は、受信用キュー１１０からリクエストＩＤおよびストア対象データのアドレスを取得した場合に、取得したアドレスと登録情報とを比較してキャッシュヒットしたか否かを判定する（スヌープ処理を行う）。そして、キャッシュヒットした場合には、スヌープ用回路１４０は、キャッシュヒットしたアドレスをＣＰＵ３０あるいは４０に出力することによって、データの無効化要求を行う。
【００３２】
その後、スヌープ用回路１４０は、ＣＰＵ３０あるいは４０から無効化完了情報を取得した場合に、無効化されたデータのアドレスと同一のアドレスに対応するリクエストＩＤを応答用回路１２０に出力して、データの無効化が完了した旨を通知する。
【００３３】
一方、スヌープ用回路１４０は、受信用キュー１１０から取得したアドレスと、登録情報とを比較し、キャッシュヒットしなかった場合には、キャッシュヒットしなかったアドレスに対応するリクエストＩＤを応答回路１２０に出力して、データの無効化が完了した旨を通知する。
【００３４】
続いて、スヌープ用回路１４０がＭＡＣ２０に対して行うストア対象データの記録要求について説明する。まず、スヌープ用回路１４０は、受信用キュー１１０からリクエストＩＤおよびアドレスを取得した場合に、取得したリクエストＩＤおよびアドレスに対してロック番号を割り振り、アドレスロックレジスタ１４０ａに登録する。ここで、ロック番号は、リクエストＩＤをＳＣ１００内で識別するための識別番号である。このロック番号を利用することによって、ＳＣ１００は、同一のリクエストＩＤがアドレスロックレジスタ１４０ａに存在する場合であっても、各リクエストＩＤをロック番号によって識別することができる。
【００３５】
図３は、アドレスロックレジスタ１４０ａに記録されるデータの一例を示す図である。同図に示すように、アドレスロックレジスタ１４０ａに記録されるデータは、ロック番号と、ロック有効情報と、リクエストＩＤと、アドレスとを有する。このうち、ロック有効情報は、ロック番号に対応するアドレスがロックされているか否かを示す情報である。
【００３６】
スヌープ用回路１４０は、リクエストＩＤおよびアドレスをアドレスロックレジスタ１４０ａに記録する場合に、既に格納先のアドレスが他のリクエストＩＤによってロックされている場合には（ロック有効情報が「有効」である場合）、このロックが解除されるまで待機する。一方、他のリクエストＩＤによってアドレスがまだロックされていない場合（ロック有効情報が「無効」の場合）、およびロックが解除された場合（ロック有効情報が「有効」から「無効」になった場合）には、スヌープ用回路１４０は、リクエストＩＤとアドレスとをロック番号と対応付けてアドレスロックレジスタ１４０ａに登録するとともに、ロック有効情報を「有効」にする。
【００３７】
スヌープ用回路１４０は、リクエストＩＤおよびアドレスをアドレスロックレジスタ１４０ａに登録した後に、ストア保持用キュー１３０に記録されたストア対象データをＭＡＣ２０に出力させるとともに、出力させたストア対象データに対応するアドレスと、当該アドレスに対応するロック番号とをアドレスロックレジスタ１４０ａから読み出して、ＭＡＣ２０に出力する。（ここで、ＭＡＣ２０は、ＳＣ１００からストア対象データと、アドレスと、ロック番号を取得した場合には、ストア対象データをメモリ１０の該当アドレスに記録させ、ストア対象データの記録が完了した旨を１２０に出力するとともに、ロック番号をスヌープ用回路１４０に出力して、ロック番号に対応するロックを解除させる（ロック有効情報を「有効」から「無効」に更新させる）。）
【００３８】
次に、本実施例にかかる記録制御システムの処理をタイムチャートによって説明する。図４は、記録制御システムにかかる処理のタイムチャートを示す図である。同図に示すように、ＩＯ装置５０は、ストアリクエストを受信用キュー１１０に出力し、受信用キュー１１０は、リクエストＩＤとアドレスとをスヌープ用回路１４０に出力し、ストア対象データをストアデータ保持用キュー１３０に出力する。
【００３９】
スヌープ用回路１４０は、スヌープ処理を行うとともに、ストア対象データの出力要求をストアデータ保持用キュー１３０に出力し、無効化要求（キャッシュヒットした場合）をＣＰＵ３０あるいは４０に出力する。そして、ストアデータ保持用キュー１３０が、ストア対象データをＭＡＣ２０に出力する一方で、ＣＰＵ３０あるいは４０が無効化対象となるデータの無効化を完了させて、無効化完了情報をスヌープ用回路１４０に出力する。
【００４０】
スヌープ用回路１４０は、無効化完了情報を取得した場合に、応答用回路１２０にリクエストＩＤを出力し、ＩＯ装置５０にストア完了情報を出力させる。ストア完了情報を取得したＩＯ装置５０は、ストア完了情報に含まれるリクエストＩＤに対応するリクエスト管理テーブル５０ａのリクエストＩＤを開放する。
【００４１】
一方、ＭＡＣ２０は、ストア対象データをメモリ１０に記録させた後に、記録させたストア対象データに対応するロック番号をスヌープ用回路１４０に出力してアドレスロックを開放させ（ロック有効情報を「有効」から「無効」に更新させ）、スヌープ用回路１４０は、次のリクエストＩＤおよびアドレスを受信用キュー１１０に要求する。
【００４２】
このように、スヌープ用回路１４０は、ＣＰＵ３０あるいは４０から無効化完了情報を取得した時点で、ストア完了情報をリクエストＩＤとともにＩＯ装置５０に出力するので、ＩＯ装置５０はストア対象データを迅速に処理することができ、記録処理システム全体の性能を向上させることができる。
【００４３】
次に、本実施例にかかるＳＣ１００の処理をフローチャートによって説明する。図５は、本実施例にかかるＳＣ１００の処理を示すフローチャートである。同図に示すように、ＳＣ１００は、ＩＯ装置５０からストアリクエストを取得し（ステップＳ１０１）、取得したストアリクエストを受信用キュー１１０に格納する（ステップＳ１０２）。
【００４４】
受信用キュー１１０は、記録可能数が所定値以上（例えば１以上）か否かを判定し（ステップＳ１０３）、所定値よりも記録可能数が小さい場合には（ステップＳ１０４、Ｎｏ）、ストアリクエストを受付けられない旨の情報をＩＯ装置５０に出力し（ステップＳ１０５）、ステップＳ１０１に移行する。
【００４５】
一方、記録可能数が所定値以上の場合には（ステップＳ１０４，Ｙｅｓ）、受信用キュー１１０は、リクエストＩＤおよびアドレスをスヌープ用回路１４０に出力し、ストア対象データをストアデータ保持用キュー１３０に出力する（ステップＳ１０６）。
【００４６】
続いて、スヌープ用回路１４０は、アドレスロックが成功したか否かを判定する（ステップＳ１０７）。このステップＳ１０７において、スヌープ用回路１４０は、受信用キュー１１０からリクエストＩＤおよびアドレスを取得した場合に、アドレスロックレジスタ１４０ａに基づいて、アドレスが既にロックされているか（ロック有効情報が「有効」か）否かを判定する。
【００４７】
そして、アドレスロックが失敗した場合（ロック有効情報が「有効」の場合）には（ステップＳ１０８，Ｎｏ）、ステップ１０７に移行し、アドレスロックが成功した場合（ロック有効情報が「無効」の場合）には（ステップＳ１０８，Ｙｅｓ）、スヌープ用回路１４０は、ロック番号と対応付けてリクエストＩＤとアドレスとをアドレスロックレジスタ１４０ａに記録し、ロック有効情報を「有効」に更新する（ステップＳ１０９）。
【００４８】
その後、スヌープ用回路１４０は、ストア処理およびスヌープ処理を実行し（ステップＳ１１０，１１１）ステップＳ１０１に移行する。
【００４９】
続いて、図５のステップＳ１１０において示したストア処理について説明する。図６は、ストア処理を示すフローチャートである。同図に示すように、スヌープ用回路１４０は、ＭＡＣ２０にロック番号と、アドレスと、ストア対象データとを渡し（ステップＳ２０１）、（ストア対象データの記録が完了した後に）ＭＡＣ１０からのストア完了情報を取得する（ステップＳ２０２）。
【００５０】
スヌープ用回路１４０は、ＭＡＣ２０から取得したストア完了情報を取得した場合に、このストア完了通知に含まれるロック番号を参照し、アドレスロックを解除（ロック番号に対応するロック有効情報を「有効」から「無効」に更新）し（ステップＳ２０３）、応答用回路１２０が、記録可能数を増やす（ステップＳ２０４）。
【００５１】
続いて、図５のステップＳ１１１において示したスヌープ処理について説明する。図７は、スヌープ処理を示すフローチャートである。同図に示すように、スヌープ用回路１４０は、登録情報と、受信用キュー１１０から取得したアドレスとを比較して、キャッシュヒットしたか否かを判定する（ステップＳ３０１）。
【００５２】
そして、キャッシュヒットした場合には（ステップＳ３０２，Ｙｅｓ）、スヌープ用回路１４０は、ＣＰＵ３０あるいは４０に無効化要求を行い（ステップＳ３０３）、（ＣＰＵ３０あるいは４０が無効化を完了させた後に）ＣＰＵ３０あるいは４０から無効化完了情報を取得する（ステップＳ３０４）。
【００５３】
スヌープ用回路１４０は、無効化対象となったデータに対応するリクエストＩＤを、応答用回路１２０に出力し、応答用回路１２０が、リクエストＩＤを含んだストア完了情報をＩＯ装置５０に出力する（ステップＳ３０５）。
【００５４】
一方、キャッシュヒットしなかった場合には（ステップＳ３０２，Ｎｏ）、スヌープ用回路１４０は、ステップＳ３０５に移行する。なお、この場合、スヌープ用回路１４０は、キャッシュヒットしなかったアドレスに対応するリクエストＩＤを応答用回路１２０に出力することになる。
【００５５】
このように、ＳＣ１００は、ＣＰＵ３０あるいは４０から無効化完了情報を取得した時点で、無効化対象となったデータに対応するストアリクエストのリクエストＩＤをＩＯ装置５０に出力し、無効化が完了した旨を通知するので、ＩＯ装置は、ストア対象データを効率よく処理することができる。
【００５６】
上述してきたように、本実施例にかかる記録制御システムは、ＩＯ装置５０がストアリクエストをＳＣ１００に出力し、ＳＣ１００は、登録情報とストアリクエストに含まれるアドレスとを比較して無効化要求を行うか否かを判定し、無効化要求を行うと判定した場合に、ＣＰＵ３０あるいは４０に無効化要求を行う。そして、ＳＣ１００が、無効化完了情報を取得した時点で、無効化要求に対応するリクエストＩＤをＩＯ装置５０に出力し、ストア対象データの記録が完了した旨を通知にするので、ＩＯ装置は、ストア対象データを迅速に処理することができ、記録制御システム全体の性能が向上する。
【００５７】
また、本実施例にかかる記録制御システムは、無効化が完了したデータに対応するリクエストＩＤをＩＯ装置５０に出力するので、ＩＯ装置５０は管理すべきリクエストＩＤの数を大幅に減らすことができ、回路を単純化させることができる（リクエストＩＤの管理方式が単純化される）。
【００５８】
また、本実施例にかかる記録制御システムは、応答用回路１２０が、受信用キュー１１０の記録可能数を管理し、ＭＡＣ２０からストア対象データの記録が完了した旨の情報を取得した場合に、記録可能数をインクリメントするので、効率よく、ＩＯ装置５０からストアリクエストを受付けることができる。
【００５９】
また、本実施例にかかる記録制御システムは、スヌープ用回路１４０が、リクエストＩＤを取得した場合に、リクエストＩＤにロック番号を割り振り管理するので、同一のリクエストＩＤを取得した場合であっても、各リクエストＩＤをロック番号で識別することができるので、正確にリクエストＩＤを処理することができる。
【産業上の利用可能性】
【００６０】
以上のように、本発明にかかる記録制御装置は、メモリにデータを記録させる場合に有用であり、特に、メモリに記録すべきデータを迅速に処理する必要のあるデータの記録制御システムなどに適している。
【図面の簡単な説明】
【００６１】
【図１】図１は、本実施例にかかる記録制御システムの構成を示すブロック図である。
【図２】図２は、リクエスト管理テーブルに記録されるデータの一例を示す図である。
【図３】図３は、アドレスロックレジスタに記録されるデータの一例を示す図である。
【図４】図４は、記録制御システムにかかる処理のタイムチャートを示す図である。
【図５】図５は、本実施例にかかるＳＣの処理を示すフローチャートである。
【図６】図６は、ストア処理を示すフローチャートである。
【図７】図７は、スヌープ処理を示すフローチャートである。
【符号の説明】
【００６２】
１０  メモリ
２０  ＭＡＣ
３０，４０  ＣＰＵ
５０  ＩＯ装置
５０ａ  リクエスト管理テーブル
１００  ＳＣ
１１０  受信用キュー
１２０  応答用回路
１３０  ストアデータ保持用キュー
１４０  スヌープ用回路
１４０ａ  アドレスロックレジスタ
【国際調査報告】
2007096980.tif 000010
2007096980.tif 000011
2007096980.tif 000012
2007096980.tif 000013