JP7460743B1 - メモリコントローラ及びメモリコントローラ制御方法 - Google Patents

メモリコントローラ及びメモリコントローラ制御方法 Download PDF

Info

Publication number
JP7460743B1
JP7460743B1 JP2022209200A JP2022209200A JP7460743B1 JP 7460743 B1 JP7460743 B1 JP 7460743B1 JP 2022209200 A JP2022209200 A JP 2022209200A JP 2022209200 A JP2022209200 A JP 2022209200A JP 7460743 B1 JP7460743 B1 JP 7460743B1
Authority
JP
Japan
Prior art keywords
interface
readjustment
memory controller
unit
memory
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.)
Active
Application number
JP2022209200A
Other languages
English (en)
Other versions
JP2024093066A (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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2022209200A priority Critical patent/JP7460743B1/ja
Application granted granted Critical
Publication of JP7460743B1 publication Critical patent/JP7460743B1/ja
Publication of JP2024093066A publication Critical patent/JP2024093066A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 インタフェースの再調整の時間をさらに短縮できるメモリコントローラ等を提供する。【解決手段】 本開示の一態様に係るメモリコントローラ10は、分散共有メモリを実現するメモリコントローラであって、前記メモリコントローラ10に接続され当該メモリコントローラ10と共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信する通知送信部12と、前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行う再調整部13と、を備え、前記他のメモリコントローラは、前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行う。【選択図】 図1

Description

本開示は、メモリコントローラを制御する技術に関し、特に、分散共有メモリを実現するメモリコントローラを制御する技術に関する。
近年、LSI(Large Scale Integrated circuit)製造技術の進歩により、トランジスタの微細化、高速化が進んでいる。それによって、LSI間のインタフェースの転送速度も高速になってきている。
ソースシンクロナスインタフェースも、低速で転送していた時は、ストローブとデータのずれは有ってもエラーが発生するほどのずれではなかった。そのため、再調整機能が無くても正常に動作できていた。しかし、転送速度が高速化されるにつれて、ストローブとデータのずれが無視できなくなり、運用中にも再調整する必要がでてきた。
再調整中は、装置の運用が停止してしまうために、再調整の性能への悪影響が大きかった。そのため、運用停止時間の短縮する技術の開発が重要になっていた。
特許文献1には、複数のポート入力部の調整と、複数のポート出力部の調整とを、それぞれ同時に行うクロスバLSIが記載されている。
特開2004-110507号公報
通常、ソースシンクロナス方式のインタフェースは、非同期インタフェースである。そのため、ソースシンクロナス方式のインタフェースは、それぞれが独立して動作している。ソースシンクロナス方式のインタフェースの再調整を行う場合、インタフェースの再調整は、1つずつ順次行われる。この場合、再調整対象以外のインタフェースは、継続動作が可能である。
しかし、メモリコントローラ(以下、MC(Memory Controller)とも表記)間のインタフェースがタグスヌープである場合、複数のMCが、論理的に同期して動作しなければならない。そのため、このようなMCを再調整する際は、メモリコントローラが搭載されている装置の運用は一時的に停止され、ファームウェアが1つずつ全てのインタフェースを再調整していた。
再調整は定期的に行う必要があるため、1回の再調整にかかる時間と再調整を行う頻度とによって、装置の運用が停止している時間が決まる。この停止時間は、特に停止時間が長い場合、性能の悪化の要因になっていた。
特許文献1の技術では、ソースシンクロナス方式のインタフェースの再調整の時間を短縮できる。しかし、特許文献1の技術では、複数のMCが論理的に同期して動作する場合の、MCの再調整による装置の停止時間、すなわち、MCの再調整のための時間の短縮は、限定的である。
本開示の目的の1つは、インタフェースの再調整の時間をさらに短縮できるメモリコントローラ等を提供することである。
本開示の一態様に係るメモリコントローラは、分散共有メモリを実現するメモリコントローラであって、前記メモリコントローラに接続され当該メモリコントローラと共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信する通知送信部と、前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行う再調整部と、を備え、前記他のメモリコントローラは、前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行う。
本開示の一態様に係るは、分散共有メモリを実現するメモリコントローラの制御方法であって、前記メモリコントローラに接続され当該メモリコントローラと共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信し、前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行い、前記他のメモリコントローラは、前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行う。
本開示には、メモリコントローラのインタフェースの再調整の時間をさらに短縮できるという効果がある。
図1は、本開示の第1の実施形態に係るメモリコントローラの構成の例を表すブロック図である。 図2は。本開示の第1の実施形態に係るメモリコントローラの動作の例を表すフローチャートである 図3は、本開示の第2の実施形態に係るマルチプロセッサシステムの構成の例を表すブロック図である。 図4は、本開示の第2の実施形態に係るメモリコントローラ(MC)の構成の例を表すブロック図である。 図5は、本開示の第2の実施形態に係るシステムキャッシュコントローラ(SC)の構成の例を表すブロック図である。 図6は、本実施形態のマルチプロセッサシステムの通常時の動作の例を説明するための図である。 図7は、本開示の第2の実施形態に係るマルチプロセッサシステムの、再調整を開始する動作の例を説明するための図である。 図8は、本開示の第2の実施形態に係るマルチプロセッサシステムの、再調整処理と運用開始シーケンスの動作を説明するための図である。 図9は、本開示の第2の実施形態の模式例に係るマスタセルのメモリコントローラの構成を模式的に表す図である。 図10は、本開示の第2の実施形態の模式例に係るスレーブセルのメモリコントローラの構成の例を模式的に表す図である。 図11は、本開示の第2の実施形態の模式例に係るシステムキャッシュコントローラの構成を模式的に表す図である。 図12は、本開示の第2の実施形態の模式例に係るマルチプロセッサシステムの構成を表す図である。 図13は、本開示の第2の実施形態のマルチプロセッサシステムの、再調整を行う動作の全体の例を表すフローチャートである。 図14は、本開示の第2の実施形態のマルチプロセッサシステムの開始処理の動作の例を表すフローチャートである。 図15は、本開示の第2の実施形態のマルチプロセッサシステムの再調整処理の動作の例を表すフローチャートである。 図16は、本開示の第2の実施形態のマルチプロセッサシステムの再開処理の動作の例を表すフローチャートである。 図17は、本開示の第2の実施形態の第1の変形例に係るメモリコントローラの構成の例を表すブロック図である。 図18は、本開示の第2の実施形態の第2の変形例に係るメモリコントローラの構成の例を表すブロック図である。 図19は、本開示の第2の実施形態の第3の変形例に係るメモリコントローラの構成の例を表すブロック図である。 図20は、本開示の実施形態に係るMC及びSCを実現できるコンピュータのハードウェア構成の例を表す図である
以下では、本開示の実施形態について、図面を使用して詳細に説明する。
<第1の実施形態>
まず、本開示の第1の実施形態について、図面を使用して詳細に説明する。
<構成>
図1は、本開示の第1の実施形態に係るメモリコントローラの構成の例を表すブロック図である。図1に示す例では、本開示の第1の実施形態に係るメモリコントローラ10は、分散共有メモリを実現するメモリコントローラであって、通知送信部12と、再調整部13と、を備える。
通知送信部12は、前記メモリコントローラ10に接続され当該メモリコントローラ10と共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信する。再調整部13は、前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行う。前記他のメモリコントローラは、前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行う。再調整開始通知については、後述の第2の実施形態の模式例において説明する。また、これらのインタフェースは、第2の実施形態の模式例におけるインタフェース部14と同じである。
<動作>
図2は、本開示の第1の実施形態に係るメモリコントローラの動作の例を表すフローチャートである。図2に示す例では、まず、通知送信部12が、他のメモリコントローラに、再調整開始通知を送信する(ステップS11)。次に、再調整部13は、インタフェースの初期化を行う(ステップS12)。また、再調整開始通知を受信した他のメモリコントローラは、再調整開始通知を受信した他のメモリコントローラのインタフェースの初期化を行う(ステップS13)。
<効果>
以上で説明した本実施形態には、メモリコントローラのインタフェースの再調整の時間をさらに短縮できるという効果がある。その理由は、再調整開始通知が他のメモリコントローラに送信された後、再調整部13がインタフェースの初期化を行い、再調整開始通知を受信した他のメモリコントローラが、他のメモリコントローラのインタフェースの初期化を行うからである。これにより、複数のメモリコントローラのインタフェースを並列の初期化できる。そのため、複数のメモリコントローラのインタフェースを順番に初期化する場合と比較して、メモリコントローラのインタフェースの再調整の時間をさらに短縮できる。
<第2の実施形態>
次に、本開示の第2の実施形態について、図面を使用して詳細に説明する。
<構成>
図3は、本開示の第2の実施形態に係るマルチプロセッサシステム1の構成の例を表すブロック図である。本実施形態に係るマルチプロセッサシステム1は、複数のセルを含む、分散共有メモリ型マルチプロセッサである。図3に示す例では、本具体例に係るマルチプロセッサは、4つのセル(すなわち、セル#0、セル#1、セル#2、セル#3)を含む。複数のセルの各々は、プロセッサ(Processor:以下Procとも表記)300と、メモリコントローラ(MCとも表記)100と、システムキャッシュコントローラ(System Cache Controller:以下、SCとも表記)200、メモリ(Memory;以下Memとも表記)400などを含む。本説明では、システムキャッシュコントローラ200は、単に、キャッシュコントローラ200とも表記される。
全てのMC100間(すなわち、2つのMC100の全ての組み合わせの、2つのMC100の間)は、クロスバ接続されている。本説明では、2つのMCの間のクロスバ接続、すなわち、MC100とMC100との間のインタフェースは、MC-MC間インタフェースと表記される。全てのMC100間のMC-MC間インタフェースは、同期動作するように制御されている。本説明では、MC-MC間インタフェースは、MMI(MC-MC Interface)とも表記される。各セルに含まれるMC100とSC200は、互いに接続されている。MC100とSC200との間の接続は、SC-MC間インタフェースと表記される。SC-MC間インタフェースは、それぞれ独立した非同期インタフェースである。本説明では、SC-MC間インタフェースは、SMI(SC-MC Interface)とも表記される。
図3に示す例では、セル#0が、マスタセルである。セル#1、セル#2、セル#3は、スレーブセルである。
本実施形態のマルチプロセッサシステムは、分散共有メモリ型マルチプロセッサシステムである。
分散共有メモリ型マルチプロセッサシステムでは、メモリが複数のセルに分散されて搭載される。複数のプロセッサも、それぞれ、複数のセルに搭載される。それぞれのプロセッサは、全てのメモリにアクセスすることができる。
このシステムでは、キャッシュのコヒーレンス制御を行うためのタグメモリを持っている。タグメモリには、キャッシュに格納されているデータのステータス情報が格納される。ステータス情報とは、キャッシュに格納されているデータのステータスを表す情報である。このステータスは、キャッシュに格納されているデータが、最新データでありシステム中唯一のものであること、キャッシュに格納されているデータが、複数のキャッシュにシェアされているものであること、又は、キャッシュに格納されているデータは最新データではなくメモリに格納されているデータが最新データであるのこと、などである。
メモリアクセストランザクションは、期待するデータ、すなわち、最新のデータを得るためのトランザクションである。メモリアクセストランザクションを受け取ると、MCは、メモリにアクセスする際に、このタグメモリの索引を行い、タグメモリに格納されているステータスから最新データの所在を確認する。MCは、各MCのタグ索引結果から最新データの所在を判別し、メモリまたはキャッシュへアクセスするためにトランザクションをルーティングすることによって、期待するデータ(すなわち、最新のデータ)を得ることができる。
MCは、キャッシュのコヒーレンス制御を行う上で、全てのタグメモリを同時に索引し更新しなければならない。言い換えると、MCがタグメモリを索引する際に、各MCの各ポート間で同期ができていなければならない。言い換えると、各MCにおいて、MMI用の後述のSS_TXの全てで同期ができていなければならない。また、MCがタグの索引の結果を各MCから集める際にも、各MCの各ポート間で同期ができていなければならない。言い換えると、各MCにおいて、MMI用の後述のSS_RXの全てで同期ができていなければならない。
各インタフェースで採用するソースシンクロナスインタフェースでは、ストローブとデータとの関係が、温度や電圧の変化でずれることがある。このずれによって、ポート間での同期できなくなってしまう。よって、定期的に再調整を行い、ストローブとデータのずれを解消する必要がある。再調整は、例えば、各ポートの同期をとるために、各ポートの初期化を行うことである。再調整中は、マルチプロセッサシステムが搭載されている装置の運用が一時的に停止するため、再調整の短時間化と回数減とが求められている。
図3に示すMCは、タグメモリ(以下、単に、TAGとも表記する)を含む。また、SCは、システムキャッシュ(以下、単に、Cacheとも表記する)を含む。
<メモリコントローラ(MC)100>
図4は、本開示の第2の実施形態に係るメモリコントローラ(MC)100の構成の例を表すブロック図である。図4に示す例では、本実施形態に係るMC100は、再調整制御部110、MMI制御部120、タグメモリ(TAG)130、MMI受信制御部140、MMI送信制御部150、SMI受信制御部160、SMI送信制御部170、ソースシンクロナスインタフェースIO(Input/Output)マクロを含む。なお、スレーブセルのMC100は、再調整制御部110を含んでいなくてよい。
本説明では、MMI受信制御部140は、M_RX140と表記される。MMI送信制御部150は、M_TX150と表記される。SMI受信制御部160は、S_RX160と表記される。SMI送信制御部170は、S_TX170と表記される。受信側のMMI用のソースシンクロナスインタフェースIOマクロは、SS_RX141と表記されている、ソースシンクロナスインタフェースIOマクロ141である。送信側のMMI用のソースシンクロナスインタフェースIOマクロは、SS_TX151と表記されている、ソースシンクロナスインタフェースIOマクロ151である。受信側のSMI用のソースシンクロナスインタフェースIOマクロは、SS_RX161と表記されている、ソースシンクロナスインタフェースIOマクロ161である。送信側のSMI用のソースシンクロナスインタフェースIOマクロは、SS_TX171と表記されている、ソースシンクロナスインタフェースIOマクロ171である。ソースシンクロナスインタフェースIOマクロは、以下の説明において、単に、IOマクロとも表記する。
以下では、MC100の構成要素の、マルチプロセッサシステム1が通常動作を行っている際の基本的な機能について説明する。MC100の構成要素の再調整時の機能については、動作と共に後で詳細に説明する。
MMI用の受信側のIOマクロ(SS_RX141)は、他のMC100からMMIを介して送信された情報を、MMIから受け付けるインタフェース部である。MC100のSMI用の受信側のIOマクロ(SS_RX161)は、SC200からSMIを介して送信された情報を、SMIから受け付けるインタフェース部である。
MMI用の送信側のIOマクロ(SS_TX151)は、MMIを介して他のMC100に送信される情報を、MMIに出力するインタフェース部である。MC100のSMI用の送信側のIOマクロ(SS_TX171)は、SMIを介してSC200に送信される情報を、SMIに出力するインタフェース部である。
MMI受信制御部140(M_RX140)は、SS_TX141がMMIを介して受け取った情報を、MMI制御部120に送信する。
MMI送信制御部150(M_TX150)は、MMI制御部120から他のMC100に送信される情報を、必要に応じて出力調停を行った上で、SS_TX151とMMIを介して、他のMC100に送信する。
SMI受信制御部160(M_RX160)は、SC200から、SMI及びSS_RX161を介して受け取った情報を、MMI制御部120に送信する。
SMI送信制御部170(M_TX170)は、MMI制御部120からSC200に送信される情報を、MMI制御部120から受け取り、SS_TX171とSMIとを介して、SC200に送信する。
MMI制御部120は、Proc300からSC200を介して受け取った指示、他のセルからMMIを介して受け取った指示等に従って、情報の読み出し及び書き込みなどを行う。情報の読み出しは、例えば、メモリ400(Mem400)からのデータの読み出し、TAG130からのステータス情報の読み出し、SC200のシステムキャッシュ220からのデータの読み出しなどである。情報の書き込みは、例えば、メモリ400(Mem400)への書き込み、TAG130からのステータス情報への書き込み、SC200のシステムキャッシュ220かへの書き込みなどである。
MMI制御部120は、MMI又はSMIを介して、要求の送信元に、読み出された情報及び書き込みの結果を表す情報などを返信する。
TAG130は、システムキャッシュ220に格納されているデータのステータス情報を記憶する。
図3に示す例では、マルチプロセッサシステム1は4つのセルを含む。そして、各セルのMCは、他のセル各々のセルのMCとMMIを介して接続される。従って、図4に示す例では、MMIは3ポート分存在する。ポートは、上述の、ソースシンクロナスインタフェースIOマクロに対応する。具体的には、MMIは、受信側の3ポート分、及び、送信側の3ポート分存在する。
<システムキャッシュコントローラ(SC)200>
図5は、本開示の第2の実施形態に係るシステムキャッシュコントローラ(SC)200の構成の例を表すブロック図である。図5に示す例では、SC200は、キャッシュ制御部210、システムキャッシュ220、SMI受信制御部230、SMI送信制御部240、ソースシンクロナスインタフェースIOマクロを含む。
本説明では、SMI受信制御部230は、SMI_RX230と表記される。SMI送信制御部240は、SMI_TX240と表記される。受信側のソースシンクロナスインタフェースIOマクロは、ソースシンクロナスインタフェースIOマクロ231である。ソースシンクロナスインタフェースIOマクロ231は、SS_RX231と表記される。送信側のソースシンクロナスインタフェースIOマクロは、ソースシンクロナスインタフェースIOマクロ241である。ソースシンクロナスインタフェースIOマクロ241は、SS_RX241と表記される。
以下では、SC200の構成要素の、マルチプロセッサシステム1が通常動作を行っている際の基本的な機能について説明する。SC200の構成要素の再調整時の機能については、動作と共に後で詳細に説明する。
SC200のSMI用の受信側のIOマクロ(SS_RX231)は、MC100からSMIを介して送信された情報を、SMIから受け付けるインタフェース部である。
SC200のSMI用の送信側のIOマクロ(SS_TX241)は、SMIを介してMC100に送信される情報を、SMIに出力するインタフェース部である。
SMI受信制御部230(SMI_RX230)は、MC200から、SMI及びSS_RX231を介して受け取った情報を、キャッシュ制御部210に送信する。
SMI送信制御部240(SMI_TX240)は、キャッシュ制御部210からMC100に送信される情報を、キャッシュ制御部210から受け取り、SS_TX241とSMIとを介して、SC200に送信する。
システムキャッシュ220は、キャッシュされているデータを記憶する。
キャッシュ制御部210は、プロセッサ300(Proc300)からのデータへのアクセスの要求を受け取る。アクセスは、書き込み及び読み出しなどである。キャッシュ制御部210は、システムキャッシュに格納されているデータへのアクセスを行う。また、キャッシュ制御部210は、SMIを介して接続されているMC100を介した、各セルのメモリ400(Mem400)に格納されているデータへのアクセスを行う。キャッシュ制御部210は、データへのアクセスの結果(例えば、読み出されたデータ、及び、データの書き込みの結果を表す情報)を、Proc300に返す。
<通常の動作の例>
図6は、本実施形態のマルチプロセッサシステム1の通常時の動作の例を説明するための図である。図6では、矩形が、動作の主体となる、マルチプロセッサシステム1の構成要素を表す。矢印は、構成要素による処理における、トランザクション、返信される結果等のデータの流れを表す。矢印の起点の矩形が、矢印が示す処理の主体の構成要素である。矢印の終点の矩形が、処理においてトランザクション等のデータを送信する対象である構成要素である。角括弧([])によって囲まれている数字は、異なるセルに含まれる同じ種類の構成要素を区別するために図6において使用される符号である。例えば、MC[403]は、セル#0に含まれるMC100である。
図6に示す例は、本実施形態のマルチプロセッサシステム(分散共有メモリ型マルチプロセッサシステム)のメモリアクセストランザクション(リード)の簡単な処理例を表す。図6では、上から下への時系列で、トランザクションの流れを表す。上述のように、本実施形態に係るマルチプロセッサシステムは、複数のセルを含む。図6に示す例では、マルチプロセッサシステムは、図3に例示するように、4つのセルを含む。
図6に示す例では、セル#0のProc300(すなわち、Proc[401]が、あるアドレスのメモリをアクセスするメモリアクセストランザクションを発行する。メモリアクセストランザクションは、Proc[401]が含まれるセル#0内のSC200(すなわち、SC[402])に対して発行される。Proc[401]は、SC[402]のキャッシュ索引を行う。図6の例では、キャッシュ索引の結果は、キャッシュミスである。
キャッシュミスであった場合、Proc[401]は、メモリアクセストランザクションを、Proc[401]が含まれるセル#0内のMC100(すなわち、MC[403])に発行する。
MC[403]は、発行されたメモリアクセストランザクションを受信する。メモリアクセストランザクションを受信したMC[403]は、MC[403]が含まれるセル#0内のMem400(すなわち、Mem[404])にアクセスする。MC[403]は、Mem[404])にアクセスするとともに、他のセルのMC100に対して、どのセルのキャッシュが最新データを保持しているか確認するために、タグスヌープトランザクションを発行する。タグスヌープトランザクションは、他のセルのタグメモリに格納されている、上述のメモリアクセストランザクションのアクセス先のデータのステータス情報と、メモリアクセストランザクションのアクセス先の最新データとを要求するトランザクションである。タグスヌープトランザクションを受け取った他のセルのMC100の各々は、タグ索引を行う。言い換えると、他のセルのMC100の各々は、TAG130からアクセス先のステータス情報を読み出す。他のセルのMC100は、セル#1のMC100であるMC[405]、セル#2のMC100であるMC[406]、セル#3のMC100であるMC[407]である。
このとき、キャッシュコヒーレンシを保つために、MC[403]は、タグスヌープトランザクションを、他のセルの全MC(すなわち、MC[405]、MC[406]、MC[407])に対して同期して発行する。他のセルの全MCは、これらの全MCで同期してタグを索引する。そして、他のセルの全MCは、同時に、タグスヌープトランザクションの発行元MC(すなわち、MC[403])にスヌープ結果を戻す。このタグスヌープで使用するインタフェースは、ポート間で同期していなければならない。なお、タグスヌープ結果は、TAG130から読み出された、上述のメモリアクセストランザクションのアクセス先のステータス情報である。
タグスヌープ結果を受信した、スヌープトランザクションの発行元のMC[403]は、スヌープ結果を解析する。図6の例では、メモリアクセストランザクションによるアクセス先の最新のデータは、セル#2のキャッシュに存在する。すなわち、タグスヌープ結果は、セル#2におけるキャッシュヒットである。言い換えると、セル#2のMC[406]から受け取ったタグスヌープ結果が、キャッシュに格納されているデータが、最新データでありシステム中唯一のものであることを示す。MC[403]は、タグスヌープ結果の解析の結果、セル#2におけるキャッシュヒットを判別する。MC[403]は、予めMem[404]にアクセスすることによって得ておいたメモリリプライデータを廃棄する処理を行う。
タグスヌープ結果がキャッシュヒットであるセル(この例では、セル#2)のキャッシュが最新データを持っている。セル#2のMC100(すなわち、MC[406])は、セル#2のSC200(すなわち、SC[408])にキャッシュアクセストランザクションを発行する。
キャッシュアクセストランザクションを受信したSC[408]は、キャッシュ(すなわち、セル#2のシステムキャッシュ220)にアクセスし、メモリアクセストランザクションによるアクセス先の最新のデータを読み出す。SC[408]は、読み出したデータを、MC[406]にキャッシュリプライデータとして送信する。MC[406]は、キャッシュリプライデータを受信し、受信したキャッシュリプライデータを、タグスヌープトランザクションを発行したMC[403]にリプライデータとして返信する。
リプライデータを受信したMC[403]は、受信したリプライデータを、リプライトランザクションとして、SC[402]を経由して発行元Proc[401]に戻す。
図7は、本開示の第2の実施形態に係るマルチプロセッサシステム1の、再調整を開始する動作の例を説明するための図である。図7において、矩形は、構成要素を表す。矢印は、トランザクション、指示、通知、返信される結果などのデータの流れを表す。矢印は、構成要素による処理を表す。矢印の起点の矩形が、矢印が示す処理の主体の構成要素である。矢印の終点の矩形が、処理においてトランザクション等のデータを送信する対象である構成要素である。図7の括弧付き数字が付されている矢印は、以下の説明において同じ括弧付き数字が付されている処理を示す。図7に示す処理は、全て、HW(Hardware)シーケンスによる自動制御により実現される。以下、(1)の処理から順に説明する。
(1)マスタセルのMC100(具体的には、再調整制御部110)は、再調整間隔を制御するカウンタ(以下、間隔カウンタとも表記)を持つ。再調整制御部110は、例えば、間隔カウンタを1クロックごとに1ずつ増加させる(具体的には、間隔カウンタが示す数値を1クロックごとに1ずつ増加させる)。
(2)マスタセルのMC100(具体的には、再調整制御部110)は、間隔カウンタがはじけたタイミングで、マスタセルのMC100(具体的には、MMI制御部120)に対して、再調整開始を指示する。すなわち、再調整制御部110は、再調整開始指示をMMI制御部120に送信する。間隔カウンタがはじけたタイミングは、例えば、間隔カウンタが示す値が所定値になったタイミングである。
(3)マスタセルのMC100(具体的には、MMI制御部120)は、再調整開始指示を受け取ると、MMI送信制御部150(M_TX150)、IOマクロ151(SS_TX151)経由で、MMI停止用専用トランザクションをMMIに発行する。言い換えると、MMI制御部120は、MMI停止用専用トランザクションを、M_TX150、SS_TX151経由で、マスタセル以外のセル(すなわち、スレーブセル)のMC100に送信する。なお、MMI停止用専用トランザクションは、MMIを停止する指示として、予め定められているトランザクションである。
また、マスタセルのMMI制御部120は、マスタセルのM_RX140に、MMI停止用専用トランザクションを送信する。
(4)スレーブセルの各々のMC100のMMI受信制御部140(すなわち、M_RX140は、IOマクロ141(すなわち、SS_TX141)経由で、MMI停止用専用トランザクションを受け取る。
また、マスタセルのM_RX140は、マスタセルのMMI制御部120から、MMI停止用専用トランザクションを受け取る。
セルの各々のMMI受信制御部140は、MMI停止用専用トランザクションを受け取るとすぐに、そのMMI受信制御部140が含まれるセルのMMI送信制御部150(すなわち、M_TX150)に、出力調停を停止するように指示する。言い換えると、M_RX140は、MMI停止用専用トランザクションを受け取るのに応じて、そのM_RX140が含まれるセルのM_TX150に、出力調停停止指示を送信する。出力調停停止指示は、出力調停を停止する指示としてあらかじめ定められている指示である。M_RX140は、出力調停停止指示を直接M_TX150にするように構成されていてもよい。M_RX140は、出力調停停止指示をMMI制御部120経由でM_TX150にするように構成されていてもよい。なお、図4では、M_RX140がM_TX150に出力調停停止指示を直接送信する場合の経路を示す線は、図が複雑になるのを防ぐために省略されている。そして、MMI受信制御部140(すなわち、M_RX140)は、出力調停を停止する。
(5)M_TX150は、出力調停停止指示を受け取る。M_TX150は、出力調停停止指示を受け取ると、出力調停を停止する。
(6)セルの各々のMC100のMMI受信制御部140(すなわち、M_RX140は、MMI停止用専用トランザクションを受け取ってから一定時間が経過した後に、全てのIOマクロに対して、再調整開始を通知する(具体的には、再調整開始指示を送信する)。再調整開始指示は、再調整を開始する指示としてあらかじめ定められている指示である。この全てのIOマクロは、図4のMC100の例では、IOマクロ141(SS_RX141)、IOマクロ151(SS_TX151)、IOマクロ161(SS_RX161)、IOマクロ171(SS_TX171)である。上述の一定時間は、あらかじめ定められている時間である。M_RX140は、IOマクロの各々に、直接、再調整開始指示を送信してもよい。図4では、M_RX140がSS_TX151、SS_RX161、SS_TX171の各々に再調整開始指示を直接送信する場合の経路を示す線は、図が複雑になるのを防ぐために省略されている。M_RX140は、MMI制御部120と、M_TX150を介して、SS_TX151に再調整開始指示を送信してもよい。M_RX140は、MMI制御部120と、S_RX160を介して、SS_RX161に再調整開始指示を送信してもよい。M_RX140は、MMI制御部120と、S_TX170を介して、SS_TX171に再調整開始指示を送信してもよい。
(7)MMI用のIOマクロ(すなわち、SS_RX141及びSS_TX151)は、再調整開始指示を受け取る。MMI用のIOマクロ(すなわち、SS_RX141及びSS_TX151)は、再調整開始指示を受け取ると、ポートコンフィグをOFFにすることによって、MC100(具体的には、M_RX140又はM_TX150)から、論理的にポートを切り離す。また、SS_RX141及びSS_TX151は、再調整制御カウンタを起動する。言い換えると、SS_RX141及びSS_TX151は、再調整制御カウンタを備えている。そして、SS_RX141及びSS_TX151は、再調整開始指示を受け取ると、ポートコンフィグをOFFにするのに加えて、再調整制御カウンタによるカウントを開始する。再調整制御カウンタによるカウントは、例えば、再調整制御カウンタが示す値を1クロックごとに1ずつ増加させることである。なお、各IOマクロは、ポートコンフィグをOFFにする(例えば、MC100又はSC100がIOマクロを介して通信を行うための設定を解除する)ことによって、インタフェースを介した通信をできない状態になるように構成されている。さらに、各IOマクロは、ポートコンフィグをONにする(例えば、MC100又はSC100がIOマクロを介して通信を行うための設定を行う)ことによって、インタフェースを介した通信をできる状態になるように構成されている。
(8)セルの各々のM_RX140は、(4)のタイミングで(すなわち、MMI停止用専用トランザクションを受け取るとすぐに)、M_RX140が含まれるセルのSMI送信制御部170(すなわち、S_TX170)に、再調整開始指示を送信する。
(9)S_TX170は、再調整開始指示を受け取る。S_TX170は、再調整開始指示を受け取ると、SMI用のIOマクロ171(すなわち、SS_TX171)に、再調整開始指示を送信する。
(10)SS_TX171は、再調整開始指示を受け取る。SS_TX171は、再調整開始指示を受け取ると、ポートコンフィグをOFFにすることによって、MC100(具体的には、S_TX170)から、論理的にポートを切り離す。加えて、SS_TX171は、再調整制御カウンタを起動する。言い換えると、SS_TX171も、再調整制御カウンタを備えている。そして、SS_TX171は、ポートコンフィグをOFFにするのに加えて、再調整制御カウンタによるカウントを開始する。上述のように、再調整制御カウンタによるカウントは、例えば、再調整制御カウンタが示す値を1クロックごとに1ずつ増加させることである。そして、SS_TX171は、再調整通知トランザクションを、SMIを介して接続されているSC200に対して発行する。すなわち、SS_TX171は、再調整通知トランザクションを、SMIを介して、SC200に送信する。再調整通知トランザクションは、MC100がSC100に対して行う、再調整を開始する指示として、あらかじめ定められている指示である。なお、SS_TX171は、ポートコンフィグをOFFにした状態でも、SMIを介して、SC200に再調整通知トランザクションを送信できるように構成されている。
(11)再調整通知トランザクションは、SMIを経由し、SC200の受信用のIOマクロ231(すなわち、SS_RX231)を介して、SC200のSMI受信制御部230(すなわち、SMI_RX230)に送信される。SC200のSMI受信制御部230(すなわち、SMI_RX230)が、再調整通知トランザクションを受信する。
(12)SMI_RX230は、再調整通知トランザクションを受信すると、受信側のIOマクロ231(すなわち、SS_RX231)に、再調整開始指示を送信する。
(13)SS_RX231は、再調整開始指示を受信する。SS_RX231は、再調整開始指示を受信すると、ポートコンフィグをOFFにすることによって、SMIから、論理的にポートを切り離す。加えて、SS_RX231は、再調整制御カウンタを起動する。言い換えると、SS_RX231は、再調整制御カウンタによるカウントを開始する。なお、SS_RX231も、再調整制御カウンタを備えている。上述のように、再調整制御カウンタによるカウントは、例えば、再調整制御カウンタが示す値を1クロックごとに1ずつ増加させることである。
(14)SC200のSMI_RX230は、再調整通知トランザクションを受信すると、SMI送信制御部240(すなわち、SMI_RX240)に、調停停止指示を送信する。調停停止指示は、SMI_RX230からSMI_RX240への、出力調停を停止する指示としてあらかじめ定められている指示である。
(15)SMI_TX240は、調停停止指示を受信する。SMI_TX240は、調停停止指示を受信すると、SMIへの出力の、出力調停を停止する。
(16)SMI_RX240は、出力調停を停止し出力のリクエストが止まると、SC200の出力側のIOマクロ241(SS_TX241)に対して、再調整開始指示を送信する。
(17)SS_TX241は、再調整開始指示を受信する。SS_TX241は、再調整開始指示を受信すると、ポートコンフィグをOFFにすることによって、SMIから、論理的にポートを切り離す。加えて、SS_TX241は、再調整制御カウンタを起動する。言い換えると、SS_TX241は、再調整制御カウンタによるカウントを開始する。なお、SS_TX241も、再調整制御カウンタを備えている。上述のように、再調整制御カウンタによるカウントは、例えば、再調整制御カウンタが示す値を1クロックごとに1ずつ増加させることである。
(18)SS_TX241は、再調整通知トランザクションを、SMIに接続されているMC100に対して発行する。言い換えると、SS_TX241は、再調整通知トランザクションを、SMIを介して、MC100に送信する。SS_TX241は、ポートコンフィグをOFFにした後も、再調整通知トランザクションを、SMIを介して、MC100に送信できるように構成されている。
(19)再調整通知トランザクションは、SMIを経由して、MC100のSMI用のIOマクロ161(すなわち、SS_RX161)を介して、MC100のSMI受信制御部160(すなわち、S_RX160)に送信される。SMI受信制御部160(すなわち、S_RX160)は、再調整通知トランザクションを受信する。
(20)MC100のS_RX160は、再調整通知トランザクションを受信すると、受信側のIOマクロ161(SS_RX161)に、再調整開始指示を送信する。
(21)SS_RX161は、再調整開始指示を受信する。SS_RX161は、再調整開始指示を受信すると、ポートコンフィグをOFFにすることによって、MC100(具体的には、S_RX160)から、論理的にポートを切り離す。また、SS_RX161は、再調整制御カウンタを起動する。言い換えると、SS_RX161は、再調整制御カウンタによるカウントを開始する。なお、SS_RX161も、再調整制御カウンタを備えている。上述のように、再調整制御カウンタによるカウントは、例えば、再調整制御カウンタが示す値を1クロックごとに1ずつ増加させることである。
次に、本開示の第2の実施形態に係るマルチプロセッサシステム1の、再調整処理と運用開始シーケンスの動作について説明する。
図8は、本開示の第2の実施形態に係るマルチプロセッサシステム1の、再調整処理と運用開始シーケンスの動作を説明するための図である。図8において、矩形は、構成要素を表す。矢印は、トランザクション、指示、通知、返信される結果などのデータの流れを表す。矢印は、構成要素による処理を表す。矢印の起点の矩形が、矢印が示す処理の主体の構成要素である。矢印の終点の矩形が、処理においてトランザクション等のデータを送信する対象である構成要素である。図8の括弧付き数字が付されている矢印は、以下の説明において同じ括弧付き数字が付されている処理を示す。図8に示す処理は、全て、HW(Hardware)シーケンスによる自動制御により実現される。以下、(22)の処理から順に説明する。図8の(22)の処理は、図7の(21)の処理の後に行われる。
(22)全てのセルのMC100及びSC200の受信側のIOマクロは、再調整制御カウンタの値に従って、初期化機能の開始Validをセットし、インタフェースの初期化処理を実行する。
(23)全てのセルのMC100及びSC200の送信側のIOマクロは、再調整制御カウンタの値に従って、初期化機能の開始Validをセットし、インタフェースの初期化処理を実行する。
MC100の受信側のIOマクロは、SS_RX141、SS_RX161である。SC200の受信側のIOマクロは、SS_RX231である。MC100の送信側のIOマクロは、SS_TX151、SS_TX171である。SC200の送信側のIOマクロは、SS_TX241である。
これらのIOマクロは、インタフェースの初期化処理を行う初期化機能を備える。初期化機能の開始Validは、初期化処理を開始する際に、初期化機能開始受付部に設定される、あらかじめ定められている値である。初期化機能開始受付部は、例えば、レジスタ、信号入力線などによって実現され得る。IOマクロは、再調整制御カウンタの値が所定値(以下、開始カウンタ値と表記)になると、初期化機能開始受付部に設定されている値を、開始Validに設定する。各IOマクロは、初期化機能開始受付部に開始Validが設定されると、初期化機能が初期化処理の実行を開始するように構成されている。
IOマクロの初期化機能は、再調整制御カウンタの値が開始カウンタ値であるタイミングで開始した初期化処理を、所定時間後に完了するように構成されている。再調整制御カウンタの値が開始カウンタ値であるタイミングから所定時間後の再調整制御カウンタの値を、完了カウンタ値と表記する。
以下では、MC100及びSC200のIOマクロの開始カウンタ値は、互いに同じ値であり、MC100及びSC200のIOマクロの完了カウンタ値は、互いに同じ値であるとして説明する。ただし、開始カウンタ値は、完了カウンタ値とは異なる。なお、MC100及びSC200のIOマクロの開始カウンタ値は、異なっていてもよい。
(24)全てのセルのMC100及びSC200の受信側のIOマクロ(各SS_RX)は、再調整制御カウンタの値(すなわち、カウンタ値)から、初期化処理の完了を検知する。全てのセルのMC100及びSC200の受信側のIOマクロは、初期化処理の完了を検知すると、ポートコンフィグをONにすることによって、MC100又はSC200から論理的に切り離された状態を解消する(すなわち、論理的に接続された状態にする)。IOマクロは、再調整制御カウンタの値が、上述の完了カウンタ値になると、初期化処理が完了したと判定する。
(25)全てのセルのMC100及びSC200の送信側のIOマクロ(各SS_TX)は、再調整制御カウンタの値(すなわち、カウンタ値)から、初期化処理の完了を検知する。全てのセルのMC100及びSC200の送信側のIOマクロは、初期化処理の完了を検知すると、ポートコンフィグをONにすることによって、MC100又はSC200から論理的に切り離された状態を解消する(すなわち、論理的に接続された状態にする)。IOマクロは、再調整制御カウンタの値が、上述の完了カウンタ値になると、初期化処理が完了したと判定する。
(26)SMI用のIOマクロ(SS_TX)は、初期化処理の完了を検知すると、MC100のS_TX又はSC200のSMI_TXに、初期化処理の完了を通知する、再調整完了通知を送信する。具体的には、MC100のSMI用のIOマクロであるSS_TX171は、S_TX170に、再調整完了通知を送信する。SC200のSMI用のIOマクロであるSS_TX241は、SMI_TX240に、再調整完了通知を送信する。
(27)全てのセルのS_TX170及びSMI_TX240は、再調整完了通知を受信する。全てのセルのS_TX170及びSMI_TX240は、再調整完了通知を受信すると、出力調停を再開する。
(28)マスタセルのMC100のMMI用の送信側のIOマクロであるSS_TX151は、初期化処理の完了を検知すると、マスタセルのMC100のM_TX150に、初期化処理の完了を通知する、再調整完了通知を送信する。
(29)マスタセルのMC100のM_TX150は、再調整完了通知を受信する。マスタセルのMC100のM_TX150は、再調整完了通知を受信すると、MMI開始用専用トランザクションを、SS_TX経由でMMIに発行する。言い換えると、マスタセルのMC100のM_TX150は、MMI開始用専用トランザクションを、SS_TX経由で、MMIを介して、スレーブセルのMC100に送信する。
なお、複数のSS_TX141が同時に初期化を開始していれば、複数のSS_TX141の初期化は同時に終了する。そして、複数のSS_TX141は、再調整完了通知を同時に送信する。M_TX140は、複数のSS_TX141から同時に再調整完了通知を受信する。M_TX140は、全てのSS_TX141から再調整完了通知を受信した場合に、MMI開始用専用トランザクションを発行するように構成されていてよい。
(30)スレーブセルの各々のMC100のM_RX140は、SS_RX141経由で、MMI開始用専用トランザクションを受信する。マスタセルのM_RX140は、M_TX150から、MMI開始用専用トランザクションを受信する。
スレーブセルの各々のM_RX140は、MMI開始用専用トランザクションを受信すると、出力調停を再開する指示(以下、出力調停再開指示と表記)を、M_TX150に送信する。スレーブセルの各々のM_TX140は、出力調停再開指示を受け取ると、出力調停を再開する。
また、マスタセルのM_TX140は、MMI開始用専用トランザクションを発行した後、出力調停を再開する。
以上により、全てのソースシンクロナスインタフェースの再調整が完了し、マルチプロセッサシステム1は、分散共有メモリが実現されている状態である、通常運用状態に切り替わる。
<効果>
本実施形態には、メモリコントローラのインタフェースの再調整の時間をさらに短縮できるという効果がある。その理由は、マスタセルのMC100のMMI制御部120が、MMI停止用専用トランザクションを、MMIに発行するからである。MMIに発行されたMMI停止用専用トランザクションは、スレーブセルの各々のMC100に送信される。そして、マスタセルのMC100と、スレーブセルの各々のMC100は、再調整、すなわち、IOマクロのインタフェースの初期化を実行する。これにより、IOマクロのインタフェースの初期化が並列に行われる。よって、メモリコントローラのインタフェースの再調整の時間をさらに短縮できる。
以下では、効果についてさらに詳しく説明する。
上述のように、ソースシンクロナスインタフェースを再調整する際は、装置の運用を一時的に停止する必要がある。これまでは、FWにより各インタフェースを順番に再調整していた。そのためインタフェースの本数だけ、装置が停止する時間が長くなっていた。
本実施形態によって、再調整が必要な全てのインタフェースの再調整を同時に行うことができる。そのため、再調整により装置が停止する時間が大幅に短縮できる。
図3に示す構成例では、ソースシンクロナスインタフェースは、MC-MC間で12本あり、SC-MC間で8本ある。仮に1本のソースシンクロナスインタフェースの再調整するために必要な時間が1000クロックであるとした場合、各インタフェースを順番に再調整するのに要する時間は、(12+8) × 1000 = 20000クロックである。言い換えると、ソースシンクロナスインタフェースを再調整のために、20000クロック間の、装置が停止していた。本実施形態では、全てのインタフェースを同時に並列に再調整することが可能である。そのため、ソースシンクロナスインタフェースを再調整のために必要な時間は、1000クロック+再調整通知時間(100クロック程度)である。すなわち、本実施形態によると、ソースシンクロナスインタフェースを再調整のために装置が停止する時間は、1100クロック程度の時間で済む。
<第2の実施形態の模式例>
以上で説明した第2の実施形態を模式的に表す、第2の実施形態の模式例について説明する。
<構成>
図9は、本開示の第2の実施形態の模式例に係るマスタセルのメモリコントローラ10Aの構成を模式的に表す図である。図9に示す例では、メモリコントローラ10A(すなわち、MC10A)の構成要素の再調整時における機能、及び、MC10Aの再調整時に初期化が行われる構成要素が、部として描かれている。図9に例示するメモリコントローラ10Aは、第2の実施形態のマスタセル(セル#0)のメモリコントローラ100に対応する。
図9に示す例では、メモリコントローラ10A(すなわち、MC10A)は、再調整制御部11と、通知送信部12と、再調整部13と、インタフェース部14とを含む。
<再調整制御部11>
再調整制御部11は、再調整を開始するタイミングを制御する。言い換えると、再調整制御部11は、再調整を開始するタイミングを決定する。再調整制御部11は、決定した、再調整を開始するタイミングで、再調整開始指示を通知送信部12に送信する。本実施形態では、再調整を開始するタイミングは、所定の時間長の再調整間隔である。再調整制御部11は、第2の実施形態の再調整制御部110と同様である。すなわち、再調整制御部11は、第2の実施形態の再調整制御部110と同様の機能を持つ。そして、再調整制御部11は、第2の実施形態の再調整制御部110と同様の動作を行う。
<通知送信部12>
通知送信部12は、再調整制御部11から再調整開始指示を受け取る。通知送信部12は、再調整制御部11から再調整開始指示を受け取ると、スレーブセルのMC10Aに、再調整開始通知を送信する。本説明において、スレーブセルのMC10Aは、他のメモリコントローラ10Aとも表記される。再調整開始通知は、第2の実施形態のMMI制御部120によって発行される、MMI停止用専用トランザクションに対応する。
通知送信部12は、再調整制御部11から再調整開始指示を受け取ると、さらに、後述のシステムキャッシュコントローラ20に、第2再調整開始通知を送信する。この第2再調整開始通知は、第2の実施形態のSS_TX171によって発行される、再調整通知トランザクションに対応する。
通知送信部12は、MC10Aのインタフェース部14の初期化が終了すると、スレーブセルのMC10Aに、動作開始通知を送信する。この動作開始通知は、第2の実施形態のマスタセルのMC100のM_TX140によって発行される、MMI開始用専用トランザクションに対応する。なお、インタフェース部14は、初期化が終了すると、初期化が終了したことを表す通知である再調整完了通知(第2の実施形態の再調整完了通知に対応)を、通知送信部12に送信するように構成されていてよい。インタフェース部14が通知送信部12に再調整完了通知を送信することは、第2の実施形態のMC10Aの送信側のIOマクロ(SS_TX141)が、M_TX140に再調整完了通知を送信することに対応する。なお、図9では、この場合のインタフェース部14から通知送信部12への通知の送信を表す、インタフェース部14と通知送信部12とを接続する線は、図の複雑化を避けるために省略されている。
<再調整部13>
再調整部13は、通知送信部12から再調整開始指示が送信されるのに応じて、インタフェース部14の初期化を開始する。再調整部13による初期化は、第2の実施形態のMC100の各IOマクロ(SS_RX141、SS_TX151、SS_RX161、SS_TX171)が、インタフェースの初期化を行うことに対応する。
再調整部13は、再調整開始指示が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行ってよい。メモリのデータへのアクセスの制御を停止する処理は、第2の実施形態のM_TX150及びS_TX170が出力調停を停止することに対応する。再調整部13は、インタフェース部14の状態を、インタフェース部14を介した通信が可能でない状態に設定してから、インタフェース部14の初期化を行ってよい。インタフェース部14の状態を、インタフェース部14を介した通信が可能でない状態に設定することは、第2の実施形態のMC100の各IOマクロ(SS_RX141、SS_TX151、SS_RX161、SS_TX171)が、ポートコンフィグをOFFにすることに対応する。
再調整部13は、インタフェース部14の初期化が終了すると、インタフェース部14の状態を、インタフェース部14を介した通信が可能である状態に設定する。インタフェース部14を介した通信が可能である状態に設定することは、第2の実施形態のMC100の各IOマクロ(SS_RX141、SS_TX151、SS_RX161、SS_TX171)が、ポートコンフィグをONにすることに対応する。なお、再調整部13は、インタフェース部14の初期化が終了すると、インタフェース部14を介した通信が可能である状態に設定するのに加えて、S_TX170に出力調停を開始させる。
再調整部13は、通知送信部12によって動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行う。メモリのデータへのアクセスの制御を再開する処理は、第2の実施形態のM_TX150が出力調停を開始することに対応する。
<インタフェース部14>
インタフェース部14は、MC10AがスレーブセルのMC(後述のMC10B)及びマスタセルのSC20と通信を行うためのインタフェースである。インタフェース部14は、第2の実施形態のM_RX140、SS_RX141、M_TX150、SS_TX151、S_RX160、SS_RX161、S_TX170、SS_TX171の、再調整に関わらない機能に対応する。
図10は、本開示の第2の実施形態の模式例に係るスレーブセルのメモリコントローラ10Bの構成の例を模式的に表す図である。図10に示す例では、メモリコントローラ10Bは、通知送信部12と、再調整部13と、インタフェース部14と、通知受信部15とを含む。
<通知受信部15>
通知受信部15は、マスタセルのMC10Aの通知送信部12から、再調整開始通知を受信する。上述のように、再調整開始通知は、第2の実施形態のMMI制御部120によって発行される、MMI停止用専用トランザクションに対応する。通知受信部15が再調整開始通知を受信することは、第2の実施形態のスレーブセルのM_RX140がMMI停止用専用トランザクションを受信することに対応する。
また、通知受信部15は、マスタセルのMC10Aの通知送信部12から、動作開始通知を受信する。上述のように、この動作開始通知は、第2の実施形態のマスタセルのMC100のM_TX150によって発行される、MMI開始用専用トランザクションに対応する。通知受信部15が動作開始通知を受信することは、第2の実施形態のスレーブセルのM_RX140がMMI開始用専用トランザクションを受信することに対応する。
<再調整部13>
再調整部13は、通知受信部15が再調整開始指示を受信するのに応じて、インタフェース部14の初期化を開始する。再調整部13による初期化は、第2の実施形態のMC100の各IOマクロ(SS_RX141、SS_TX151、SS_RX161、SS_TX171)が、インタフェースの初期化を行うことに対応する。
再調整部13は、通知受信部15が再調整開始指示を受信するのに応じて、メモリのデータへのアクセスの制御を停止する処理を行ってよい。メモリのデータへのアクセスの制御を停止する処理は、第2の実施形態のM_TX150及びS_TX170が出力調停を停止することに対応する。再調整部13は、インタフェース部14の状態を、インタフェース部14を介した通信が可能でない状態に設定してから、インタフェース部14の初期化を行ってよい。インタフェース部14の状態を、インタフェース部14を介した通信が可能でない状態に設定することは、第2の実施形態のMC100の各IOマクロ(SS_RX141、SS_TX151、SS_RX161、SS_TX171)が、ポートコンフィグをOFFにすることに対応する。
再調整部13は、インタフェース部14の初期化が終了すると、インタフェース部14の状態を、インタフェース部14を介した通信が可能である状態に設定する。インタフェース部14を介した通信が可能である状態に設定することは、第2の実施形態のMC100の各IOマクロ(SS_RX141、SS_TX151、SS_RX161、SS_TX171)が、ポートコンフィグをONにすることに対応する。なお、再調整部13は、インタフェース部14の初期化が終了すると、インタフェース部14を介した通信が可能である状態に設定するのに加えて、S_TX170に出力調停を開始させる。
再調整部13は、通知受信部15が動作開始指示を受信するのに応じて、メモリのデータへのアクセスの制御を再開する処理を行う。メモリのデータへのアクセスの制御を再開する処理は、第2の実施形態のM_TX150が出力調停を開始することに対応する。
<通知送信部12>
通知送信部12は、通知受信部15が再調整開始指示を受信すると、後述のシステムキャッシュコントローラ20に、第2再調整開始通知を送信する。この第2再調整開始通知は、第2の実施形態のSS_TX171によって発行される、再調整通知トランザクションに対応する。
<インタフェース部14>
インタフェース部14は、MC10BがMC10A、他のスレーブセルのMC10B、及び、インタフェース部14と接続されているSC20と通信を行うためのインタフェースである。インタフェース部14は、第2の実施形態のM_RX140、SS_RX141、M_TX150、SS_TX151、S_RX160、SS_RX161、S_TX170、SS_TX171の、再調整に関わらない機能に対応する。
図11は、本開示の第2の実施形態の模式例に係るシステムキャッシュコントローラ20の構成を模式的に表す図である。図11に示す例では、システムキャッシュコントローラ20の(SC20)の構成要素の再調整時における機能が、部として記載されている。SC20は、第2の実施形態のSC200に対応する。
図11に示す例では、SC20は、再調整部23と、インタフェース部24と、通知受信部25とを含む。インタフェース部24には、SMIを介してメモリコントローラが接続されている。SC20がマスタセルに含まれている場合、インタフェース部24には、SMIを介して、MC10Aが接続されている。SC20がスレーブセルに含まれている場合、インタフェース部24には、SMIを介して、MC10Bが接続されている。
<通知受信部25>
通知受信部25は、インタフェース部24を介して、第2再調整開始通知を受信する。上述のように、第2再調整開始通知は、第2の実施形態のSS_TX171によって発行される、再調整通知トランザクションに対応する。
<再調整部23>
再調整部23は、通知受信部25が第2再調整開始指示を受信するのに応じて、インタフェース部24の初期化を開始する。再調整部23による初期化は、第2の実施形態のSC200の各IOマクロ(SS_RX231、SS_TX241)が、インタフェースの初期化を行うことに対応する。
再調整部23は、通知受信部25が第2再調整開始指示を受信するのに応じて、メモリのデータへのアクセスの制御を停止する処理を行ってよい。メモリのデータへのアクセスの制御を停止する処理は、第2の実施形態のSMI_TX240が出力調停を停止することに対応する。再調整部13は、インタフェース部24の状態を、インタフェース部24を介した通信が可能でない状態に設定してから、インタフェース部24の初期化を行ってよい。インタフェース部24の状態を、インタフェース部24を介した通信が可能でない状態に設定することは、第2の実施形態のSC200の各IOマクロ(SS_RX231、SS_TX241)が、ポートコンフィグをOFFにすることに対応する。
再調整部23は、インタフェース部24の初期化が終了すると、インタフェース部24の状態を、インタフェース部24を介した通信が可能である状態に設定する。インタフェース部24を介した通信が可能である状態に設定することは、第2の実施形態のSC200の各IOマクロ(SS_RX231、SS_TX241)が、ポートコンフィグをONにすることに対応する。なお、再調整部23は、インタフェース部24の初期化が終了すると、インタフェース部24を介した通信が可能である状態に設定するのに加えて、SMI_TX240に出力調停を開始させる。
図12は、本開示の第2の実施形態の模式例に係るマルチプロセッサシステム1Aの構成を表す図である。図12は、図3に示す、第2の実施形態のマルチプロセッサシステム1の構成に対応する図である。図12では、セル#0(すなわち、マスタセル#0)のMC100が、MC10Aと置き換えられている。セル#1、セル#2、セル#3(すなわち、スレーブセル#1、スレーブセル#2、スレーブセル#3)のMC100が、MC10Bと置き換えられている。また、各セルのSC200が、SC20と置き換えられている。図12のProc300は、第2の実施形態のProc300に対応するプロセッサである。図12のMem400は、第2の実施形態のMem400に対応するメモリである。また、図12では、図3の双方向の2本の矢印の組が、1本の実線によって描かれている。
なお、通知送信部12、再調整部13、通知受信部15、再調整部23、通知受信部25として動作する構成要素は、第2の実施形態で説明した例に限られない。第2の実施形態で例示した構成要素と異なる構成要素が、通知送信部12、再調整部13、通知受信部15、再調整部23、通知受信部25として動作してもよい。
<動作>
以下では、本開示の第2の実施形態のマルチプロセッサシステム1Aの、再調整を行う動作について説明する。
図13は、本開示の第2の実施形態のマルチプロセッサシステム1Aの、再調整を行う動作の全体の例を表すフローチャートである。図13に示す動作は、マスタセルのMC10Aの再調整制御部11が、通知送信部12に、再調整開始指示を送信すると開始される。
図13に示す例では、マルチプロセッサシステム1Aは、まず、開始処理を行う(ステップS110)。次に、マルチプロセッサシステム1Aは、再調整処理を行う(ステップS120)。そして、マルチプロセッサシステム1Aは、再開処理を行う(ステップS130)。開始処理、再調整処理、及び、再開処理については、以下で詳細に説明する。
図14は、本開示の第2の実施形態のマルチプロセッサシステム1Aの開始処理の動作の例を表すフローチャートである。
図14に示す例では、まず、マスタセルのMC10Aの通知送信部12が、スレーブセルのメモリコントローラ10Bに、再調整開始通知を送信する(ステップS111)。メモリコントローラ10Bの通知受信部15が、再調整開始通知を受信する。
マスタセルの通知送信部12は、次に、マスタセルのシステムキャッシュコントローラ20に、第2再調整開始通知を送信する(ステップS112)。
再調整開始通知が受信されると、スレーブセルの通知送信部12は、スレーブセルのマスタセルのシステムキャッシュコントローラ20に、第2再調整開始通知を送信する(ステップS112)。
そして、各セルの再調整部13は、メモリのデータへのアクセスを停止する処理を行う(ステップS114)。ステップS114において、再調整部13は、上述の、メモリのデータへのアクセスの制御を停止する処理を行った後に、インタフェース部14の状態を、インタフェース部14を介した通信が可能でない状態に設定する。
図15は、本開示の第2の実施形態のマルチプロセッサシステム1Aの再調整処理の動作の例を表すフローチャートである。
図15に示す例では、マルチプロセッサシステム1Aは、各セルのメモリコントローラ及びシステムキャッシュコントローラ20の、各インタフェース部14の初期化を行う(ステップS121)。ステップS121において、マルチプロセッサシステム1Aは、各インタフェース部14の初期化を、並列に行う。
具体的には、マスタセルのMC10Aの再調整部13は、マスタセルのMC10Aのインタフェース部14の初期化を行う。マスタセルのSC20の再調整部23は、マスタセルのSC20のインタフェース部24の初期化を行う。各スレーブセルのMC10Bの再調整部13は、その再調整部13が含まれるスレーブセルのMC10Bのインタフェース部14の初期化を行う。各スレーブセルのSC20の再調整部23は、その再調整部23が含まれるスレーブセルのSC20のインタフェース部24の初期化を行う。
この初期化において、再調整部13は、インタフェース部14に含まれる複数のIOマクロの初期化を、並列に行う。また、再調整部23は、インタフェース部24に含まれる複数のIOマクロの初期化を、並列に行う。
図16は、本開示の第2の実施形態のマルチプロセッサシステム1Aの再開処理の動作の例を表すフローチャートである。
図16に示す例では、まず、各MCの再調整部13及び各SCの再調整部23が、インタフェース部の初期化が終了すると、インタフェース部の状態を、インタフェース部を介した通信が可能な状態に設定する(ステップS131)。具体的には、MC10Aの再調整部13は、そのMC10Aのインタフェース部14の状態を、そのインタフェース部14を介した通信が可能な状態に設定する。各スレーブセルにおいて、MC10Bの再調整部13は、そのMC10Bのインタフェース部14の状態を、そのインタフェース部14を介した通信が可能な状態に設定する。また、各セルにおいて、SC20の再調整部23は、そのSC20のインタフェース部24の状態を、そのインタフェース部24を介した通信が可能な状態に設定する。インタフェース部の状態の、そのインタフェース部を介した通信が可能な状態への設定は、上述のIOマクロの各々で並列に行われる。
次に、各MCの再調整部13及び各SCの再調整部23は、MC(メモリコントローラ)とSC(キャッシュコントローラ)との間における、データへのアクセスを可能にする(ステップS132)。ステップS132における動作は、第2の実施形態のS_TX170及びSMI_TX240が、出力調停を開始することに対応する。
次に、マスタセルの通知送信部12が、各スレーブセルのメモリコントローラに、動作開始通知を送信する(ステップS133)。各スレーブセルのMC10Bの通知受信部15が、送信された動作開始通知を受信する。
そして、各セルの再調整部13が、メモリコントローラ間における、メモリのデータへのアクセスを可能にする(ステップS134)。ステップS134の動作は、第2の実施形態において、各セルのMC100のM_TX140が、出力調停を開始することに対応する。
<効果>
本模式例には、第1の実施形態と同じ効果がある。その理由は、第1の実施形態の効果が生じる理由と同様である。
<第2の実施形態の第1の変形例>
図17は、本開示の第2の実施形態の第1の変形例に係るメモリコントローラ10Cの構成の例を表すブロック図である。本変形例のメモリコントローラ10Cは、再調整制御部11と、通知送信部12と、再調整部13と、インタフェース部14と、測定情報収集部16とを含む。測定情報収集部16は、センサ500と接続されている。
本変形例の通知送信部12、再調整部13及びインタフェース部14は、それぞれ、通知送信部12、再調整部13及びインタフェース部14と同じ機能を備える。そして、本変形例の通知送信部12、再調整部13及びインタフェース部14は、それぞれ、通知送信部12、再調整部13及びインタフェース部14と同じ動作を行う。
センサ500は、測定を行い、測定によって得られた測定値を表す測定情報を出力するセンサである。
測定情報収集部16は、センサから出力される測定情報を収集する。
本変形例の再調整制御部11は、収集された測定情報において、測定値の変化の大きさ(例えば、測定値の単位時間当たりの変化の大きさ)を監視する。再調整制御部11は、測定値の単位時間当たりの変化の大きさが変化閾値を超えた場合に、通知送信部12に、再調整開始通知を送信する。MC10Cは、この変化閾値を、例えば、マルチプロセッサシステムを含む情報処理装置及びこの情報処理装置に接続されている端末装置の入力装置等を使用した入力によって設定可能であるように、構成されていてもよい。
センサ500は、例えば、マルチプロセッサシステム1Aの温度を測定する温度センサである。この場合の測定値は、温度である。
センサ500は、例えば、MC10Cが含まれる半導体装置に印加される電圧を測定する電圧センサであってもよい。この場合の測定値は、電圧である。
再調整制御部11は、所定の時間ごとに再調整開始通知を送信するのに加えて、測定値の単位時間当たりの変化の大きさが変化閾値を超えた場合に、通知送信部12に、再調整開始通知を送信してもよい。再調整制御部11は、再調整通知を送信してから所定の時間が経過した場合、及び、測定値の単位時間当たりの変化の大きさが変化閾値を超えた場合に、通知送信部12に、再調整開始通知を送信してもよい。
<第2の実施形態の第2の変形例>
図18は、本開示の第2の実施形態の第2の変形例に係るメモリコントローラ10Dの構成の例を表すブロック図である。本変形例のメモリコントローラ10Dは、再調整制御部11と、通知送信部12と、再調整部13と、インタフェース部14と、エラー訂正部17と、エラー情報収集部18とを含む。
本変形例の通知送信部12、再調整部13及びインタフェース部14は、それぞれ、通知送信部12、再調整部13及びインタフェース部14と同じ機能を備える。そして、本変形例の通知送信部12、再調整部13及びインタフェース部14は、それぞれ、通知送信部12、再調整部13及びインタフェース部14と同じ動作を行う。
エラー訂正部17は、インタフェース部14において送受信されるエラーを検出し、検出したエラーを訂正する。エラーの訂正は、例えば、ECC(ErrorCorrecting Code)を利用した1ビットエラーの訂正である。この場合、MC10D及びSC20は、インタフェース部14を介して送受信されるデータをデータにECCを付与するように構成される。
エラー情報収集部18は、エラー訂正部によって訂正されたエラーの情報を収集する。エラーの情報は、例えば、再調整開始通知を送信してから行われた、エラーの訂正の回数である。この場合、言い換えると、エラー情報収集部18は、エラーの訂正の回数をカウントする。エラー情報収集部18は、例えば、再調整制御部11が再調整開始通知を送信した場合、エラーの訂正の回数をゼロに設定し、新たにエラーの訂正の回数のカウントを開始する。
本変形例の再調整制御部11は、収集されたエラー情報において、エラーの訂正の回数(以下、訂正回数と表記)を監視する。再調整制御部11は、訂正回数が回数閾値を超えた場合に、通知送信部12に、再調整開始通知を送信する。MC10Cは、この回数閾値を、例えば、マルチプロセッサシステムを含む情報処理装置及びこの情報処理装置に接続されている端末装置の入力装置等を使用した入力によって設定可能であるように、構成されていてもよい。
再調整制御部11は、所定の時間ごとに再調整開始通知を送信するのに加えて、訂正回数が回数閾値を超えた場合に、通知送信部12に、再調整開始通知を送信してもよい。再調整制御部11は、再調整通知を送信してから所定の時間が経過した場合、及び、訂正回数が回数閾値を超えた場合に、通知送信部12に、再調整開始通知を送信してもよい。
<第2の実施形態の第3の変形例>
図19は、本開示の第2の実施形態の第3の変形例に係るメモリコントローラ10Eの構成の例を表すブロック図である。本変形例のメモリコントローラ10Dは、再調整制御部11と、通知送信部12と、再調整部13と、インタフェース部14と、測定情報収集部16と、エラー訂正部17と、エラー情報収集部18とを含む。測定情報収集部16は、センサ500と接続されている。
本変形例の通知送信部12、再調整部13及びインタフェース部14は、それぞれ、通知送信部12、再調整部13及びインタフェース部14と同じ機能を備える。そして、本変形例の通知送信部12、再調整部13及びインタフェース部14は、それぞれ、通知送信部12、再調整部13及びインタフェース部14と同じ動作を行う。
本変形例の測定情報収集部16は、第2の実施形態の第1の変形例の測定情報収集部16と同じである。本変形例の測定情報収集部16は、第2の実施形態の第1の変形例の測定情報収集部16と同じ機能を備える。本変形例の測定情報収集部16は、第2の実施形態の第1の変形例の測定情報収集部16と同じ動作を行う。
本変形例のエラー訂正部17及びエラー情報収集部18は、第2の実施形態の第2の変形例のエラー訂正部17及びエラー情報収集部18と同じである。本変形例のエラー訂正部17及びエラー情報収集部18は、第2の実施形態の第2の変形例のエラー訂正部17及びエラー情報収集部18と同じ機能を備える。本変形例のエラー訂正部17及びエラー情報収集部18は、第2の実施形態の第2の変形例のエラー訂正部17及びエラー情報収集部18と同じ動作を行う。
本変形利絵の再調整制御部11は、収集された測定情報において、測定値の変化の大きさ(例えば、測定値の単位時間当たりの変化の大きさ)を監視する。再調整制御部11は、測定値の単位時間当たりの変化の大きさが変化閾値を超えた場合に、通知送信部12に、再調整開始通知を送信する。MC10Cは、この変化閾値を、例えば、マルチプロセッサシステムを含む情報処理装置及びこの情報処理装置に接続されている端末装置の入力装置等を使用した入力によって設定可能であるように、構成されていてもよい。
さらに、本変形例の再調整制御部11は、収集されたエラー情報において、エラーの訂正の回数(以下、訂正回数と表記)を監視する。再調整制御部11は、訂正回数が回数閾値を超えた場合に、通知送信部12に、再調整開始通知を送信する。MC10Cは、この回数閾値を、例えば、マルチプロセッサシステムを含む情報処理装置及びこの情報処理装置に接続されている端末装置の入力装置等を使用した入力によって設定可能であるように、構成されていてもよい。
再調整制御部11は、所定の時間ごとに再調整開始通知を送信するのに加えて、測定値の単位時間当たりの変化の大きさが変化閾値を超えた場合、及び、訂正回数が回数閾値を超えた場合に、通知送信部12に、再調整開始通知を送信してもよい。再調整制御部11は、再調整通知を送信してから所定の時間が経過した場合、測定値の単位時間当たりの変化の大きさが変化閾値を超えた場合、及び、訂正回数が回数閾値を超えた場合に、通知送信部12に、再調整開始通知を送信してもよい。
<ハードウェア構成>
第1の実施形態のメモリコントローラ10、第2の実施形態のMC100及びSC200、第2の実施形態の模式例のMC10A、MC10B、SC20、第2の実施形態の第1の変形例のMC10C、第2の実施形態の第2の変形例のMC10Dは、それぞれ、回路などのハードウェアによって実現できる。
再調整制御部11、通知送信部12、再調整部13、インタフェース部14,通知受信部15、再調整部23、インタフェース部24、通知受信部25、測定情報収集部16、エラー訂正部17、エラー情報収集部18の一部または全部は、回路などのハードウェアによって実現できる。
第1の実施形態のメモリコントローラ10、第2の実施形態のMC100及びSC200、第2の実施形態の模式例のMC10A、MC10B、SC20、第2の実施形態の第1の変形例のMC10C、第2の実施形態の第2の変形例のMC10Dは、それぞれ、プロセッサとメモリとを備えるコンピュータによっても実現できる。第1の実施形態のメモリコントローラ10、第2の実施形態のMC100及びSC200、第2の実施形態の模式例のMC10A、MC10B、SC20、第2の実施形態の第1の変形例のMC10C、第2の実施形態の第2の変形例のMC10Dは、それぞれ、回路などのハードウェアと、上述のコンピュータとの組み合わせによっても実現できる。
図20は、本開示の実施形態に係るMC及びSCを実現できるコンピュータのハードウェア構成の例を表す図である。図20に示す例では、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記憶媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記憶媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記憶媒体である。記憶装置1003が記憶媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、例えば、他のMC及びSCにアクセスすることができる。プロセッサ1001は、記憶媒体1005にアクセスすることができる。記憶媒体1005には、コンピュータ1000を、本開示の実施形態に係るMCとして動作させるプログラム、又は、本開示の実施形態に係るSCとして動作させるプログラムが格納されている。
プロセッサ1001は、記憶媒体1005に格納されている、コンピュータ1000を、MCとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、MCとして動作する。
プロセッサ1001は、記憶媒体1005に格納されている、コンピュータ1000を、SCとして動作させるプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、SCとして動作する。
再調整制御部11、通知送信部12、再調整部13、インタフェース部14,通知受信部15、再調整部23、インタフェース部24、通知受信部25、測定情報収集部16、エラー訂正部17、エラー情報収集部18の一部または全部は、メモリ1002にロードされたプログラムを実行するプロセッサ1001によって実現できる。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
分散共有メモリを実現するメモリコントローラであって、
前記メモリコントローラに接続され当該メモリコントローラと共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信する通知送信部と、
前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行う再調整部と、
を備え、
前記他のメモリコントローラは、
前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行う
メモリコントローラ。
(付記2)
前記メモリコントローラは、前記分散共有メモリのキャッシュを制御するキャッシュコントローラと接続され、
前記通知送信部は、さらに、前記キャッシュコントローラに、第2再調整開始通知を送信し、
前記キャッシュコントローラは、第2再調整開始通知を受信すると、当該キャッシュコントローラのインタフェースの初期化を行い、
前記他のメモリコントローラは、前記分散共有メモリのキャッシュを制御する他のキャッシュコントローラに接続され、前記再調整開始通知を受け取ると、前記他のキャッシュコントローラに第2再調整開始通知を送信し、
前記他のキャッシュコントローラは、前記第2再調整開始通知を受信すると、前記他のキャッシュコントローラのインタフェースの初期化を行う
付記1に記載のメモリコントローラ。
(付記3)
前記インタフェースにおいて送受信されるデータのエラーを検出し、検出されたエラーを訂正するエラー訂正部と、
エラーが訂正された回数である訂正回数をカウントするエラー情報収集部と、
を備え、
前記通知送信部は、前記訂正回数が閾値を超えた場合、前記再調整開始通知を送信する
付記1又は2に記載のメモリコントローラ。
(付記4)
前記メモリコントローラが含まれる半導体装置の温度を測定する温度センサから、測定された温度の情報を取得する測定情報取得部
を備え、
前記通知送信部は、前記温度の単位時間当たりの変化の大きさが所定温度変化の大きさを超えた場合、前記再調整開始通知を送信する
付記1又は2に記載のメモリコントローラ。
(付記5)
前記メモリコントローラが含まれる半導体装置に印加される電圧を測定する電圧センサから、測定された電圧の情報を取得する測定情報取得部
を備え、
前記通知送信部は、前記電圧の単位時間当たりの変化の大きさが所定電圧変化の大きさを超えた場合、前記再調整開始通知を送信する
付記1又は2に記載のメモリコントローラ。
(付記6)
前記再調整部は、前記再調整開始通知が送信されるのに応じて、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースの状態を、前記インタフェースを介した通信が可能である状態に設定し、
前記他のメモリコントローラは、前記再調整開始通知を受け取ると、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースの状態を、前記インタフェースを介した通信が可能である状態に設定する
付記1又は2に記載のメモリコントローラ。
(付記7)
前記再調整部は、前記再調整開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行った後に、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、前記インタフェースの前記初期化を行い、
前記他のメモリコントローラは、前記再調整開始通知を受け取るとメモリのデータへのアクセスの制御を停止する処理を行った後に、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、
前記通知送信部は、前記インタフェースの状態が、前記インタフェースを介した通信が可能な状態に設定されるのに応じて、動作開始通知を前記他のメモリコントローラに送信し、
前記再調整部は、前記動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行い、
前記他のメモリコントローラは、前記動作開始通知を受け取ると、メモリのデータへのアクセスの制御を再開する処理を行う
付記6に記載のメモリコントローラ。
(付記8)
前記キャッシュコントローラは、当該キャッシュコントローラの前記インタフェースを通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースを通信が可能である状態に設定し、
前記他のキャッシュコントローラは、当該他のキャッシュコントローラの前記インタフェースを通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースを通信が可能である状態に設定する
付記2に記載のメモリコントローラ。
(付記9)
前記再調整部は、前記再調整開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行った後に、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、前記インタフェースの前記初期化を行い、
前記他のメモリコントローラは、前記再調整開始通知を受け取るとメモリのデータへのアクセスの制御を停止する処理を行った後に、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、
前記通知送信部は、前記インタフェースの状態が、前記インタフェースを介した通信が可能な状態に設定されるのに応じて、動作開始通知を前記他のメモリコントローラに送信し、
前記再調整部は、前記動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行い、
前記他のメモリコントローラは、前記動作開始通知を受け取ると、メモリのデータへのアクセスの制御を再開する処理を行う
付記8に記載のメモリコントローラ。
(付記10)
前記他のメモリコントローラと、
付記1又は2に記載のメモリコントローラと、
を含むマルチプロセッサシステム。
(付記11)
分散共有メモリを実現するメモリコントローラの制御方法であって、
前記メモリコントローラに接続され当該メモリコントローラと共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信し、
前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行い、
前記他のメモリコントローラは、
前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行う
メモリコントローラ制御方法。
(付記12)
前記メモリコントローラは、前記分散共有メモリのキャッシュを制御するキャッシュコントローラと接続され、
さらに、前記キャッシュコントローラに、第2再調整開始通知を送信し、
前記キャッシュコントローラは、第2再調整開始通知を受信すると、当該キャッシュコントローラのインタフェースの初期化を行い、
前記他のメモリコントローラは、前記分散共有メモリのキャッシュを制御する他のキャッシュコントローラに接続され、前記再調整開始通知を受け取ると、前記他のキャッシュコントローラに第2再調整開始通知を送信し、
前記他のキャッシュコントローラは、前記第2再調整開始通知を受信すると、前記他のキャッシュコントローラのインタフェースの初期化を行う
付記11に記載のメモリコントローラ制御方法。
(付記13)
前記インタフェースにおいて送受信されるデータのエラーを検出し、検出されたエラーを訂正し、
エラーが訂正された回数である訂正回数をカウントし、
前記訂正回数が閾値を超えた場合、前記再調整開始通知を送信する
付記11又は12に記載のメモリコントローラ制御方法。
(付記14)
前記メモリコントローラが含まれる半導体装置の温度を測定する温度センサから、測定された温度の情報を取得し、
前記温度の単位時間当たりの変化の大きさが所定温度変化の大きさを超えた場合、前記再調整開始通知を送信する
付記11又は12に記載のメモリコントローラ制御方法。
(付記15)
前記メモリコントローラが含まれる半導体装置に印加される電圧を測定する電圧センサから、測定された電圧の情報を取得し、
前記電圧の単位時間当たりの変化の大きさが所定電圧変化の大きさを超えた場合、前記再調整開始通知を送信する
付記11又は12に記載のメモリコントローラ制御方法。
(付記16)
前記再調整開始通知が送信されるのに応じて、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースの状態を、前記インタフェースを介した通信が可能である状態に設定し、
前記他のメモリコントローラは、前記再調整開始通知を受け取ると、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースの状態を、前記インタフェースを介した通信が可能である状態に設定する
付記11又は12に記載のメモリコントローラ制御方法。
(付記17)
前記再調整開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行った後に、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、前記インタフェースの前記初期化を行い、
前記他のメモリコントローラは、前記再調整開始通知を受け取るとメモリのデータへのアクセスの制御を停止する処理を行った後に、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、
前記インタフェースの状態が、前記インタフェースを介した通信が可能な状態に設定されるのに応じて、動作開始通知を前記他のメモリコントローラに送信し、
前記動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行い、
前記他のメモリコントローラは、前記動作開始通知を受け取ると、メモリのデータへのアクセスの制御を再開する処理を行う
付記16に記載のメモリコントローラ制御方法。
(付記18)
前記キャッシュコントローラは、当該キャッシュコントローラの前記インタフェースを通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースを通信が可能である状態に設定し、
前記他のキャッシュコントローラは、当該他のキャッシュコントローラの前記インタフェースを通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースを通信が可能である状態に設定する
付記12に記載のメモリコントローラ制御方法。
(付記19)
前記再調整開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行った後に、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、前記インタフェースの前記初期化を行い、
前記他のメモリコントローラは、前記再調整開始通知を受け取るとメモリのデータへのアクセスの制御を停止する処理を行った後に、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、
前記インタフェースの状態が、前記インタフェースを介した通信が可能な状態に設定されるのに応じて、動作開始通知を前記他のメモリコントローラに送信し、
前記動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行い、
前記他のメモリコントローラは、前記動作開始通知を受け取ると、メモリのデータへのアクセスの制御を再開する処理を行う
付記18に記載のメモリコントローラ制御方法。
以上、実施形態を参照して本開示を説明したが、本開示は上記実施形態に限定されるものではない。本開示の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 マルチプロセッサシステム
1A マルチプロセッサシステム
10 メモリコントローラ
10A メモリコントローラ
10B メモリコントローラ
10C メモリコントローラ
10D メモリコントローラ
10E メモリコントローラ
11 再調整制御部
12 通知送信部
13 再調整部
14 インタフェース部
15 通知受信部
16 測定情報収集部
17 エラー訂正部
18 エラー情報収集部
20 システムキャッシュコントローラ
23 再調整部
24 インタフェース部
25 通知受信部
100 メモリコントローラ
110 再調整制御部
120 MMI制御部
130 タグメモリ
140 MMI受信制御部
141 ソースシンクロナスインタフェースIOマクロ
150 MMI送信制御部
151 ソースシンクロナスインタフェースIOマクロ
160 SMI受信制御部
161 ソースシンクロナスインタフェースIOマクロ
170 SMI送信制御部
171 ソースシンクロナスインタフェースIOマクロ
200 システムキャッシュコントローラ
210 キャッシュ制御部
220 システムキャッシュ
230 SMI受信制御部
231 ソースシンクロナスインタフェースIOマクロ
240 SMI送信制御部
241 ソースシンクロナスインタフェースIOマクロ
300 プロセッサ
400 メモリ
500 センサ
1000 コンピュータ
1001 プロセッサ
1002 メモリ
1003 記憶装置
1004 I/Oインタフェース
1005 記憶媒体

Claims (9)

  1. 分散共有メモリを実現するメモリコントローラであって、
    前記メモリコントローラに接続され当該メモリコントローラと共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信する通知送信部と、
    前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行う再調整部と、
    を備え、
    前記メモリコントローラは、前記分散共有メモリのキャッシュを制御するキャッシュコントローラと接続され、
    前記通知送信部は、さらに、前記キャッシュコントローラに、第2再調整開始通知を送信し、
    前記キャッシュコントローラは、第2再調整開始通知を受信すると、当該キャッシュコントローラのインタフェースの初期化を行い、
    前記他のメモリコントローラは、
    前記分散共有メモリのキャッシュを制御する他のキャッシュコントローラに接続され、
    前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行い、前記他のキャッシュコントローラに第2再調整開始通知を送信し、
    前記他のキャッシュコントローラは、前記第2再調整開始通知を受信すると、前記他のキャッシュコントローラのインタフェースの初期化を行う
    メモリコントローラ。
  2. 前記インタフェースにおいて送受信されるデータのエラーを検出し、検出されたエラーを訂正するエラー訂正部と、
    エラーが訂正された回数である訂正回数をカウントするエラー情報収集部と、
    を備え、
    前記通知送信部は、前記訂正回数が閾値を超えた場合、前記再調整開始通知を送信する
    請求項1に記載のメモリコントローラ。
  3. 前記メモリコントローラが含まれる半導体装置の温度を測定する温度センサから、測定された温度の情報を取得する測定情報取得部
    を備え、
    前記通知送信部は、前記温度の単位時間当たりの変化の大きさが所定温度変化の大きさを超えた場合、前記再調整開始通知を送信する
    請求項1に記載のメモリコントローラ。
  4. 前記メモリコントローラが含まれる半導体装置に印加される電圧を測定する電圧センサから、測定された電圧の情報を取得する測定情報取得部
    を備え、
    前記通知送信部は、前記電圧の単位時間当たりの変化の大きさが所定電圧変化の大きさを超えた場合、前記再調整開始通知を送信する
    請求項1に記載のメモリコントローラ。
  5. 前記再調整部は、前記再調整開始通知が送信されるのに応じて、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースの状態を、前記インタフェースを介した通信が可能である状態に設定し、
    前記他のメモリコントローラは、前記再調整開始通知を受け取ると、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースの状態を、前記インタフェースを介した通信が可能である状態に設定する
    請求項1に記載のメモリコントローラ。
  6. 前記再調整部は、前記再調整開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行った後に、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、前記インタフェースの前記初期化を行い、
    前記他のメモリコントローラは、前記再調整開始通知を受け取るとメモリのデータへのアクセスの制御を停止する処理を行った後に、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、
    前記通知送信部は、前記インタフェースの状態が、前記インタフェースを介した通信が可能な状態に設定されるのに応じて、動作開始通知を前記他のメモリコントローラに送信し、
    前記再調整部は、前記動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行い、
    前記他のメモリコントローラは、前記動作開始通知を受け取ると、メモリのデータへのアクセスの制御を再開する処理を行う
    請求項に記載のメモリコントローラ。
  7. 前記キャッシュコントローラは、当該キャッシュコントローラの前記インタフェースを通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースを通信が可能である状態に設定し、
    前記他のキャッシュコントローラは、当該他のキャッシュコントローラの前記インタフェースを通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、当該初期化が完了してから、前記インタフェースを通信が可能である状態に設定する
    請求項に記載のメモリコントローラ。
  8. 前記再調整部は、前記再調整開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を停止する処理を行った後に、前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、前記インタフェースの前記初期化を行い、
    前記他のメモリコントローラは、前記再調整開始通知を受け取るとメモリのデータへのアクセスの制御を停止する処理を行った後に、当該他のメモリコントローラの前記インタフェースの状態を、前記インタフェースを介した通信が可能でない状態に設定してから、当該インタフェースの前記初期化を行い、
    前記通知送信部は、前記インタフェースの状態が、前記インタフェースを介した通信が可能な状態に設定されるのに応じて、動作開始通知を前記他のメモリコントローラに送信し、
    前記再調整部は、前記動作開始通知が送信されるのに応じて、メモリのデータへのアクセスの制御を再開する処理を行い、
    前記他のメモリコントローラは、前記動作開始通知を受け取ると、メモリのデータへのアクセスの制御を再開する処理を行う
    請求項に記載のメモリコントローラ。
  9. 分散共有メモリを実現するメモリコントローラの制御方法であって、
    前記メモリコントローラに接続され当該メモリコントローラと共に前記分散共有メモリを実現する他のメモリコントローラに、再調整開始通知を送信し、
    前記再調整開始通知が送信されるのに応じて、インタフェースの初期化を行い、
    前記メモリコントローラに接続されたキャッシュコントローラであって、前記分散共有メモリのキャッシュを制御する前記キャッシュコントローラに、第2再調整開始通知を送信し、
    前記キャッシュコントローラは、第2再調整開始通知を受信すると、当該キャッシュコントローラのインタフェースの初期化を行い、
    前記他のメモリコントローラは、
    前記分散共有メモリのキャッシュを制御する他のキャッシュコントローラに接続され、
    前記再調整開始通知を受け取ると、前記他のメモリコントローラのインタフェースの初期化を行い、前記他のキャッシュコントローラに第2再調整開始通知を送信し、
    前記他のキャッシュコントローラは、前記第2再調整開始通知を受信すると、前記他のキャッシュコントローラのインタフェースの初期化を行う
    メモリコントローラ制御方法。
JP2022209200A 2022-12-27 2022-12-27 メモリコントローラ及びメモリコントローラ制御方法 Active JP7460743B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022209200A JP7460743B1 (ja) 2022-12-27 2022-12-27 メモリコントローラ及びメモリコントローラ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022209200A JP7460743B1 (ja) 2022-12-27 2022-12-27 メモリコントローラ及びメモリコントローラ制御方法

Publications (2)

Publication Number Publication Date
JP7460743B1 true JP7460743B1 (ja) 2024-04-02
JP2024093066A JP2024093066A (ja) 2024-07-09

Family

ID=90474259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022209200A Active JP7460743B1 (ja) 2022-12-27 2022-12-27 メモリコントローラ及びメモリコントローラ制御方法

Country Status (1)

Country Link
JP (1) JP7460743B1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309332A (ja) 2005-04-26 2006-11-09 Nec Corp 計算機システム、メモリ初期化方法、および計算機システムのプログラム
JP2006323845A (ja) 2005-05-17 2006-11-30 Internatl Business Mach Corp <Ibm> メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法
JP2009116398A (ja) 2007-11-01 2009-05-28 Nec Computertechno Ltd ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
JP2013512509A (ja) 2009-11-24 2013-04-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散型多重コアメモリ初期化
CN113867803A (zh) 2020-06-30 2021-12-31 华为技术有限公司 一种内存初始化装置、方法及计算机系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309332A (ja) 2005-04-26 2006-11-09 Nec Corp 計算機システム、メモリ初期化方法、および計算機システムのプログラム
JP2006323845A (ja) 2005-05-17 2006-11-30 Internatl Business Mach Corp <Ibm> メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法
JP2009116398A (ja) 2007-11-01 2009-05-28 Nec Computertechno Ltd ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
JP2013512509A (ja) 2009-11-24 2013-04-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 分散型多重コアメモリ初期化
CN113867803A (zh) 2020-06-30 2021-12-31 华为技术有限公司 一种内存初始化装置、方法及计算机系统

Similar Documents

Publication Publication Date Title
US5265211A (en) Arbitration control logic for computer system having dual bus architecture
US7386768B2 (en) Memory channel with bit lane fail-over
US5255374A (en) Bus interface logic for computer system having dual bus architecture
US5659696A (en) Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required
JP5815349B2 (ja) ライトバック順序付けによるコヒーレンス制御
US5761533A (en) Computer system with varied data transfer speeds between system components and memory
US20040250153A1 (en) Data signal redrive with dynamic sampling adjustment
US7516349B2 (en) Synchronized memory channels with unidirectional links
US20090276559A1 (en) Arrangements for Operating In-Line Memory Module Configurations
US8176261B2 (en) Information processing apparatus and data transfer method
US9697145B2 (en) Memory interface system
JP2018005902A (ja) メモリ装置へのアクセスを制御するための装置及びそのような装置内においてメンテナンス作業を行う方法
US5673414A (en) Snooping of I/O bus and invalidation of processor cache for memory data transfers between one I/O device and cacheable memory in another I/O device
US20060236032A1 (en) Data storage system having memory controller with embedded CPU
US6389554B1 (en) Concurrent write duplex device
JP7460743B1 (ja) メモリコントローラ及びメモリコントローラ制御方法
JP2006512634A (ja) 同期または非同期にクロック制御される処理ユニットを同期化する方法および回路装置
US6023748A (en) Multiple client memory arbitration system capable of operating multiple configuration types
JP2024093066A (ja) メモリコントローラ及びメモリコントローラ制御方法
KR0175742B1 (ko) 이중화 시스템에서 동작 분리 고속 데이타 전송장치
US20060143403A1 (en) Early coherency indication for return data in shared memory architecture
US11942184B2 (en) Programmable logic circuit, information processing apparatus, and non-transitory computer readable medium
US9612931B2 (en) System and method for synchronously controlling LED on multiple control modules based on a register synchronized with synchronous packets
US20020174282A1 (en) Multiprocessor system
US7302508B2 (en) Apparatus and method for high speed data transfer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240321

R150 Certificate of patent or registration of utility model

Ref document number: 7460743

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150