JP2019521448A - ストリーク及び読出し/書込みトランザクション管理を有するメモリコントローラアービタ - Google Patents

ストリーク及び読出し/書込みトランザクション管理を有するメモリコントローラアービタ Download PDF

Info

Publication number
JP2019521448A
JP2019521448A JP2019501952A JP2019501952A JP2019521448A JP 2019521448 A JP2019521448 A JP 2019521448A JP 2019501952 A JP2019501952 A JP 2019501952A JP 2019501952 A JP2019501952 A JP 2019501952A JP 2019521448 A JP2019521448 A JP 2019521448A
Authority
JP
Japan
Prior art keywords
memory access
memory
type
access request
request
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.)
Pending
Application number
JP2019501952A
Other languages
English (en)
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2019521448A publication Critical patent/JP2019521448A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

一形態において、装置はメモリコントローラを含む。メモリコントローラは、コマンドキューと、アービタと、を含む。コマンドキューは、メモリアクセス要求を受信して記憶する。アービタは、複数の基準に基づいてメモリアクセス要求をコマンドキューから選択し、選択したメモリアクセス要求をメモリチャネルに提供する。アービタは、アービタがコマンドキューから選択する第1タイプの連続するメモリアクセス要求の数をカウントするためのストリークカウンタを含む。ストリークカウンタが閾値に達すると、アービタは、第1タイプの要求の選択を停止し、少なくとも1つの第2タイプのメモリアクセス要求を選択する。アービタは、少なくとも1つの第2タイプのメモリアクセス要求をメモリチャネルに提供する。【選択図】図5

Description

コンピュータシステムは、通常、安価で高密度のダイナミックランダムアクセスメモリ(DRAM)チップをメインメモリとして使用する。今日販売されている多くのDRAMチップは、半導体技術協会(JEDEC:Joint Electron Devices Engineering Council)によって公表された様々なダブルデータレート(DDR)DRAM規格と互換性がある。DDR DRAMは、様々な低電力モードを設けることによって、高性能及び低電力動作の両方を提供する。
最新のDDRメモリコントローラは、保留中のメモリアクセス要求を記憶するためのキューを維持して、保留中のメモリアクセス要求を、生成又は記憶された順序から外れた順序で選択するのを可能にし、これによって効率を高める。例えば、メモリコントローラは、所定のメモリランクの同じ行への複数のメモリアクセス要求をキューから取り出し、これらをメモリシステムに連続的に発行することによって、現在の行をプリチャージして他の行をアクティブにするオーバーヘッドを回避することができる。しかしながら、特定のプログラムスレッドは、同じランク、バンク及びページに繰り返しアクセスする。効率を高めるために類似のアクセスをグループ化して選択する既知のメモリコントローラは、他のプログラムスレッドを「枯渇」させ、システム全体の性能を低下させる可能性がある。
いくつかの実施形態による、データ処理システムのブロック図である。 図1のデータ処理システムでの使用に適したアクセラレーテッドプロセッシングユニット(APU:accelerated processing unit)のブロック図である。 いくつかの実施形態による、図2のAPUでの使用に適したメモリコントローラ及び関連する物理インタフェース(PHY)のブロック図である。 いくつかの実施形態による、図2のAPUでの使用に適した他のメモリコントローラ及び関連するPHYのブロック図である。 いくつかの実施形態による、メモリコントローラのブロック図である。 いくつかの実施形態による、読出し/書込みトランザクション管理を実行するために使用することができるコマンドキューの機能ブロック図である。 いくつかの実施形態による、ストリーク管理を実行するために使用することができるアービタのブロック図である。
以下の説明では、異なる図面において同じ参照番号を使用して、類似又は同一の項目を示している。特に断りのない限り、「接続された」という単語及びこれに関連する動詞形は、当技術分野において既知の手段による直接接続及び間接的な電気接続の両方を含む。特に断りのない限り、直接接続の説明は、適切な形態の間接的な電気接続を使用する代替の実施形態をも意味している。
一形態では、データ処理システム等の装置はメモリコントローラを含む。メモリコントローラは、コマンドキューと、アービタと、を含む。コマンドキューは、メモリアクセス要求を受信して記憶する。アービタは、複数の基準に基づいてメモリアクセス要求をコマンドキューから選択し、選択したメモリアクセス要求をメモリチャネルに提供する。アービタは、アービタがコマンドキューから選択する第1タイプの連続するメモリアクセス要求の数をカウントするための第1ストリークカウンタを含む。第1ストリークカウンタが第1閾値に達すると、アービタは、第1タイプの要求の選択を停止し、少なくとも1つの第2タイプのメモリアクセス要求を選択する。アービタは、少なくとも1つの第2タイプのメモリアクセス要求をメモリチャネルに提供する。例えば、ストリークカウンタの一実施形態では、第1タイプの連続するメモリアクセス要求はページヒット要求を含み、第2タイプのメモリアクセス要求はページミス要求を含む。ストリークカウンタの他の実施形態では、第1タイプの連続するメモリアクセス要求は第1ランクへのページヒット要求を含み、第2タイプのメモリアクセス要求は第2ランクへのページヒット要求を含む。
他の形態では、データ処理システム等の装置は、メモリコントローラを含む。メモリコントローラは、デコーダと、コマンドキューと、アービタと、を含む。デコーダは、メモリアクセス要求を受信し、メモリアクセス要求を或るタイプにデコードする。コマンドキューは、デコーダに接続されており、デコードされたメモリアクセス要求を受信して記憶する。アービタは、複数の基準に基づいてメモリアクセス要求をコマンドキューから選択し、選択したメモリアクセス要求をメモリチャネルに提供する。タイプは、対応するメモリアクセス要求が読出し要求か書込み要求かを示す。アービタは、コマンドキューをスキャンし、第1タイプのメモリアクセス要求の数をカウントする。第1タイプは、読出し要求及び書込み要求のうち選択された1つである。第1タイプのメモリアクセス要求の数が第1閾値以上である場合、アービタは、第2タイプのメモリアクセス要求の選択を停止し、少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供する。第2タイプは、読出し要求及び書込み要求のうち第1タイプとは異なる1つである。
さらに他の形態では、ダイナミックランダムアクセスメモリシステムへのメモリアクセス要求を順序付けるための方法は、メモリアクセス要求を受信することを含む。メモリアクセス要求はコマンドキューに記憶される。メモリアクセス要求は、第1タイプのメモリアクセス要求と、少なくとも1つの第2タイプのメモリアクセス要求と、を含む。第1タイプの連続するメモリアクセス要求のストリークは、第1閾値に達するまで実行される。コマンドキューは、少なくとも1つの第1タイプの追加のメモリアクセス要求と、少なくとも1つの第2タイプのメモリアクセス要求と、を記憶する。少なくとも1つの第2タイプのメモリアクセス要求は、第1タイプのメモリアクセス要求を実行した後に実行される。
さらに他の形態では、ダイナミックランダムアクセスメモリシステムへのメモリアクセス要求を順序付けるための方法は、メモリアクセス要求を受信することを含む。メモリアクセス要求は、対応するメモリアクセス要求が読出し要求か書込み要求かを示すタイプにデコードされる。タイプを含むデコードされたメモリアクセス要求は、コマンドキューに記憶される。メモリアクセス要求は、複数の基準に基づいてコマンドキューから選択される。選択することは、コマンドキューをスキャンし、第1タイプのメモリアクセス要求の数をカウントすることを含む。第1タイプは、読出し要求及び書込み要求のうち選択された1つである。第1タイプのメモリアクセス要求の数が第1閾値以上である場合、第2タイプのメモリアクセス要求の選択を停止し、少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供する。第2タイプは、読出し要求及び書込み要求のうち第1タイプとは異なる1つである。
図1は、いくつかの実施形態による、データ処理システム100のブロック図である。データ処理システム100は、概して、アクセラレーテッドプロセッシングユニット(APU)の形態のデータプロセッサ110と、メモリシステム120と、周辺機器相互接続エクスプレス(PCIe)システム150と、ユニバーサルシリアルバス(USB)システム160と、ディスクドライブ170と、を含む。データプロセッサ110は、データ処理システム100の中央処理装置(CPU)として動作し、現代のコンピュータシステムにおいて有用な様々なバス及びインタフェースを提供する。これらのインタフェースには、2つのダブルデータレート(DDRx)メモリチャネルと、PCIeリンクへの接続用のPCIeルートコンプレックスと、USBネットワークへの接続用のUSBコントローラと、SATA(Serial Advanced Technology Attachment)大容量記憶デバイスへのインタフェースと、が含まれる。
メモリシステム120は、メモリチャネル130と、メモリチャネル140と、を含む。メモリチャネル130は、本例において別々のランクに対応する代表的なDIMM134,136,138を含む、DDRxバス132に接続されたデュアルインラインメモリモジュール(DIMM)のセットを含む。同様に、メモリチャネル140は、代表的なDIMM144,146,148を含む、DDRxバス142に接続されたDIMMのセットを含む。
PCIeシステム150は、データプロセッサ110内のPCIeルートコンプレックスに接続されたPCIeスイッチ152と、PCIeデバイス154と、PCIeデバイス156と、PCIeデバイス158と、を含む。PCIeデバイス156は、システム基本入出力システム(BIOS)メモリ157に接続されている。システムBIOSメモリ157は、例えば読出し専用メモリ(ROM)、フラッシュEEPROM(electrically erasable programmable ROM)等の様々な不揮発性メモリタイプの何れかであってもよい。
USBシステム160は、データプロセッサ110内のUSBマスタに接続されたUSBハブ162と、USBハブ162にそれぞれ接続された代表的なUSBデバイス164,166,168と、を含む。USBデバイス164,166,168は、例えばキーボード、マウス、フラッシュEEPROMポート等のデバイスであってもよい。
ディスクドライブ170は、SATAバスを介してデータプロセッサ110に接続されており、オペレーティングシステム、アプリケーションプログラム、アプリケーションファイル等のための大容量ストレージを提供する。
データ処理システム100は、メモリチャネル130及びメモリチャネル140を設けることによって、最新のコンピューティングアプリケーションでの使用に適している。各メモリチャネル130,140は、例えばDDRバージョン4(DDR4)、低電力DDR4(LPDDR4)、グラフィックスDDRバージョン5(GDDR5)及び高帯域幅メモリ(HBM)等の最新のDDRメモリに接続されてもよいし、将来のメモリ技術に適応されてもよい。これらのメモリは、高いバス帯域幅及び高速動作を提供する。同時に、これらは、ラップトップコンピュータ等のバッテリ駆動アプリケーションの電力を節約する低電力モードも設けており、組み込み型サーマルモニタリングも提供する。
図2は、図1のデータ処理システム100での使用に適したAPU200のブロック図である。APU200は、概して、中央処理装置(CPU)コアコンプレックス210と、グラフィックスコア220と、ディスプレイエンジン230のセットと、メモリ管理ハブ240と、データファブリック250と、周辺コントローラ260のセットと、周辺バスコントローラ270のセットと、システム管理ユニット(SMU)280と、メモリコントローラ290のセットと、を含む。
CPUコアコンプレックス210は、CPUコア212と、CPUコア214と、を含む。本例において、CPUコアコンプレックス210は2つのCPUコアを含むが、他の実施形態では、CPUコアコンプレックス210は任意の数のCPUコアを含んでもよい。各CPUコア212,214は、制御ファブリックを形成するシステム管理ネットワーク(SMN)及びデータファブリック250に対して双方向に接続されており、メモリアクセス要求をデータファブリック250に提供することができる。各CPUコア212,214は、単一コアであってもよいし、例えばキャッシュ等の特定のリソースを共有する2つ以上の単一コアを有するコアコンプレックスであってもよい。
グラフィックスコア220は、例えば、頂点処理、フラグメント処理、シェーディング、テクスチャブレンド等のグラフィックス操作を、高度に統合された並列形式で実行することの可能な高性能グラフィックス処理ユニット(GPU)である。グラフィックスコア220は、SMN及びデータファブリック250に対して双方向に接続されており、メモリアクセス要求をデータファブリック250に提供することができる。これに関して、APU200は、CPUコアコンプレックス210及びグラフィックスコア220が同じメモリ空間を共有するユニファイドメモリアーキテクチャ、又は、CPUコアコンプレックス210及びグラフィックスコア220がメモリ空間の一部を共有するメモリアーキテクチャをサポートしてもよいが、グラフィックスコア220は、CPUコアコンプレックス210がアクセスできない専用のグラフィックスメモリを使用してもよい。
ディスプレイエンジン230は、グラフィックスコア220によって生成されたオブジェクトをレンダリング及びラスタライズして、モニタに表示する。グラフィックスコア220及びディスプレイエンジン230は、メモリシステム120の適切なアドレスに一様に変換されるために共通のメモリ管理ハブ240に対して双方向に接続されており、メモリ管理ハブ240は、かかるメモリアクセスを生成し、メモリシステムから返された読出しデータを受信するために、データファブリック250に対して双方向に接続されている。
データファブリック250は、任意のメモリアクセスエージェントとメモリコントローラ290との間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。また、データファブリック250は、システム構成に基づくメモリアクセスの宛先と、仮想接続毎のバッファとを判断するためのシステムメモリマップであって、BIOSによって定義されたシステムメモリマップを含む。
周辺コントローラ260は、USBコントローラ262と、SATAインタフェースコントローラ264と、を含み、これらの各々が、システムハブ266及びSMNバスに対して双方向に接続されている。これらの2つのコントローラは、APU200で使用可能な周辺コントローラの単なる例示である。
周辺バスコントローラ270は、システムコントローラ(即ち「サウスブリッジ」(SB))272と、PCIeコントローラ274と、を含み、これらの各々が、入出力(I/O)ハブ276及びSMNバスに対して双方向に接続されている。また、I/Oハブ276は、システムハブ266及びデータファブリック250に対して双方向に接続されている。したがって、例えば、CPUコアは、データファブリック250がI/Oハブ276を介してルーティングするアクセスを通じて、USBコントローラ262、SATAインタフェースコントローラ264、SB272、又は、PCIeコントローラ274内のレジスタをプログラムすることができる。
SMU280は、APU200上のリソースの動作を制御し、それらの間の通信を同期させるローカルコントローラである。SMU280は、APU200上の様々なプロセッサのパワーアップシーケンシングを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップデバイスを制御する。SMU280は、APU200の各コンポーネントにクロック信号を提供するために、図2に示されていない1つ以上のクロック源(例えば位相同期ループ(PLL)等)を含む。また、SMU280は、様々なプロセッサ及び他の機能ブロックの電力を管理し、CPUコア212,214及びグラフィックスコア220から測定された電力消費値を受信して、適切な電力状態を判断してもよい。
また、APU200は、様々なシステムモニタリング及び省電力機能を実装する。特に、1つのシステムモニタリング機能は、サーマルモニタリングである。例えば、SMU280は、APU200が高温になると、CPUコア212,214及び/又はグラフィックスコア220の周波数及び電圧を低減させてもよい。APU200が非常に高温になった場合には、APU200が完全にシャットダウンされてもよい。サーマルイベントは、SMU280によって、外部センサからSMNバスを介して受信されてもよく、SMU280は、これに応じてクロック周波数及び/又は電源電圧を低下させてもよい。
図3は、いくつかの実施形態による、図2のAPU200での使用に適したメモリコントローラ300及び関連する物理インタフェース(PHY)330のブロック図である。メモリコントローラ300は、メモリチャネル310と、パワーエンジン320と、を含む。メモリチャネル310は、ホストインタフェース312と、メモリチャネルコントローラ314と、物理インタフェース316と、を含む。ホストインタフェース312は、メモリチャネルコントローラ314を、スケーラブルデータポート(SDP)を介してデータファブリック250に双方向に接続する。物理インタフェース316は、メモリチャネルコントローラ314を、DDR−PHYインタフェース仕様(DFI)に準拠するバスを介してPHY330に双方向に接続する。パワーエンジン320は、SMNバスを介してSMU280に双方向に接続されており、APB(Advanced Peripheral Bus)を介してPHY330に双方向に接続されており、メモリチャネルコントローラ314にも双方向に接続されている。PHY330は、例えば図1のメモリチャネル130又はメモリチャネル140等のメモリチャネルに対する双方向接続を有する。メモリコントローラ300は、単一のメモリチャネルコントローラ314を使用した単一のメモリチャネル用のメモリコントローラの例示であり、以下にさらに説明するメモリチャネルコントローラ314の動作を制御するためのパワーエンジン320を有する。
図4は、いくつかの実施形態による、図2のAPU200での使用に適した別のメモリコントローラ400及び関連するPHY440,450のブロック図である。メモリコントローラ400は、メモリチャネル410,420と、パワーエンジン430と、を含む。メモリチャネル410は、ホストインタフェース412と、メモリチャネルコントローラ414と、物理インタフェース416と、を含む。ホストインタフェース412は、メモリチャネルコントローラ414を、SDPを介してデータファブリック250に双方向に接続する。物理インタフェース416は、DFI仕様に準拠しており、メモリチャネルコントローラ414をPHY440に双方向に接続する。メモリチャネル420は、ホストインタフェース422と、メモリチャネルコントローラ424と、物理インタフェース426と、を含む。ホストインタフェース422は、メモリチャネルコントローラ424を、別のSDPを介してデータファブリック250に双方向に接続する。物理インタフェース426は、DFI仕様に準拠しており、メモリチャネルコントローラ424をPHY450に双方向に接続する。パワーエンジン430は、SMNバスを介してSMU280に双方向に接続されており、APBを介してPHY440,450に双方向に接続されており、メモリチャネルコントローラ414,424にも双方向に接続されている。PHY440は、例えば図1のメモリチャネル130等のメモリチャネルに対する双方向接続を有する。PHY450は、例えば図1のメモリチャネル140等のメモリチャネルに対する双方向接続を有する。メモリコントローラ400は、2つのメモリチャネルコントローラを有するメモリコントローラの例示であり、共有のパワーエンジン430を使用して、以下にさらに説明するように、メモリチャネルコントローラ414及びメモリチャネルコントローラ424の各々の動作を制御する。
図5は、いくつかの実施形態による、メモリコントローラ500のブロック図である。メモリコントローラ500は、メモリチャネルコントローラ510と、電力コントローラ550と、を含む。メモリチャネルコントローラ510は、インタフェース512と、キュー514と、コマンドキュー520と、アドレス生成器522と、コンテンツアドレス可能メモリ(CAM)524と、リプレイキュー530と、リフレッシュロジックブロック532と、タイミングブロック534と、ページテーブル536と、アービタ538と、エラー訂正コード(ECC)チェックブロック542と、ECC生成ブロック544と、データバッファ(DB)546と、を含む。
インタフェース512は、外部バスを介したデータファブリック250との第1双方向接続と、出力と、を有する。メモリコントローラ500において、この外部バスは、「AXI4」として知られている、英国ケンブリッジのARM Holdings,PLCによって仕様化されたアドバンストエクステンシブルインタフェースバージョン4と互換性があるが、他の実施形態では、他のタイプのインタフェースであってもよい。インタフェース512は、FCLK(又はMEMCLK)ドメインとして知られる第1クロックドメインから、UCLKドメインとして知られるメモリコントローラ500の内部の第2クロックドメインへのメモリアクセス要求を変換する。同様に、キュー514は、UCLKドメインから、DFIインタフェースに関連するDFICLKドメインへのメモリアクセスを提供する。
アドレス生成器522は、データファブリック250からAXI4バスを介して受信したメモリアクセス要求のアドレスを復号化する。メモリアクセス要求は、正規化されたアドレスとして表わされる物理アドレス空間内のアクセスアドレスを含む。アドレス生成器522は、正規化されたアドレスを、メモリシステム120内の実際のメモリデバイスをアドレス指定し、関連するアクセスを効率的にスケジュールするのに使用可能なフォーマットに変換する。このフォーマットは、メモリアクセス要求を特定のランク、行アドレス、列アドレス、バンクアドレス及びバンクグループに関連付ける領域識別子を含む。システムBIOSは、起動時に、メモリシステム120内のメモリデバイスにクエリしてそのサイズ及び構成を判断し、アドレス生成器522に関連する構成レジスタのセットをプログラムする。アドレス生成器522は、構成レジスタに記憶された構成を使用して、正規化されたアドレスを適切なフォーマットに変換する。コマンドキュー520は、データ処理システム100内のメモリアクセスエージェント(例えば、CPUコア212,214及びグラフィックスコア220等)から受信したメモリアクセス要求のキューである。コマンドキュー520は、アドレス生成器522によって復号化されたアドレスフィールドと、アクセスタイプ及びサービス品質(QoS)識別子を含むメモリアクセスをアービタ538が効率的に選択するのを可能にする他のアドレス情報と、を記憶する。CAM524は、例えばライトアフターライト(WAW)及びリードアフターライト(RAW)順序付けルール等の順序付けルールを実施するための情報を含む。
リプレイキュー530は、例えば、アドレス及びコマンドパリティ応答、DDR4 DRAMの書込み巡回冗長検査(CRC)応答、又は、GDDR5 DRAMの書込み及び読出しCRC応答等の応答を待つアービタ538によって取り出されたメモリアクセスを記憶するための一時的なキューである。リプレイキュー530は、ECCチェックブロック542にアクセスして、返されたECCが正しいか否か又はエラーを示しているか否かを判別する。リプレイキュー530は、何れかのサイクルでパリティ又はCRCエラーの場合にアクセスがリプレイされるのを可能にする。
リフレッシュロジック532は、メモリアクセスエージェントから受信した通常の読出し及び書込みメモリアクセス要求とは別に生成される様々なパワーダウン、リフレッシュ、及び、終端抵抗(ZQ)較正サイクルのためのステートマシンを含む。例えば、メモリランクがプリチャージパワーダウンにある場合には、リフレッシュサイクルを実行するために定期的に起動されなければならない。リフレッシュロジック532は、オートリフレッシュコマンドを定期的に生成して、DRAMチップ内のメモリセルのチャージオフストレージキャパシタのリークによって生じるデータエラーを防止する。さらに、リフレッシュロジック532は、ZQを定期的に較正して、システム内の熱変化によるオンダイ終端抵抗のミスマッチを防止する。また、リフレッシュロジック532は、どの場合にDRAMデバイスを別のパワーダウンモードにするのかを決定する。
アービタ538は、コマンドキュー520に双方向に接続されており、メモリチャネルコントローラ510の中心部分である。アービタ538は、メモリバスの利用を改善するために、インテリジェントなアクセススケジューリングによって効率を改善する。アービタ538は、タイミングブロック534を使用して、コマンドキュー520内の特定のアクセスの発行に適しているか否かをDRAMタイミングパラメータに基づいて判断することによって、適切なタイミング関係を実施する。例えば、各DRAMは、同じバンクへの起動コマンド間の最小指定時間(「tRC」として知られる)を有する。タイミングブロック534は、リプレイキュー530に双方向に接続されており、このタイミングパラメータ及びJEDEC仕様で指定された他のタイミングパラメータに基づいて適格性を判断するカウンタのセットを維持する。ページテーブル536は、リプレイキュー530に双方向に接続されており、アービタ538のメモリチャネルの各バンク及びランクのアクティブページに関する状態情報を維持する。
ECC生成ブロック544は、インタフェース512から受信した書込みメモリアクセス要求に応じて、書込みデータに従ってECCを計算する。DB546は、受信したメモリアクセス要求の書込みデータ及びECCを記憶する。アービタ538が、メモリチャネルにディスパッチするための対応する書込みアクセスを選ぶと、DB546は、結合した書込みデータ/ECCをキュー514に出力する。
電力コントローラ550は、アドバンストエクテンシブルインタフェースバージョン1(AXI)へのインタフェース552と、APBインタフェース554と、パワーエンジン560と、を含む。インタフェース552は、SMNへの第1双方向接続であって、図5に別に示された「EVENT_n」と付されたイベント信号を受信するための入力を含む第1双方向接続と、出力と、を含む。APBインタフェース554は、インタフェース552の出力に接続された入力と、APBを介してPHYに接続するための出力と、を有する。パワーエンジン560は、インタフェース552の出力に接続された入力と、キュー514の入力に接続された出力と、を有する。パワーエンジン560は、構成レジスタ562のセットと、マイクロコントローラ(μC)564と、セルフリフレッシュコントローラ(SLFREF/PE)566と、信頼性のある読出し/書込みトレーニングエンジン(RRW/TE)568と、を含む。構成レジスタ562は、AXIバスを介してプログラムされており、メモリコントローラ500内の様々なブロックの動作を制御するための構成情報を記憶する。したがって、構成レジスタ562は、図5に詳細に示されていないこれらのブロックに接続された出力を有する。セルフリフレッシュコントローラ566は、リフレッシュロジック532によるリフレッシュの自動生成に加えて、リフレッシュの手動生成を可能にするエンジンである。信頼性のある読出し/書込みトレーニングエンジン568は、DDRインタフェース読出しレイテンシトレーニング及びループバックテスト等の目的のために、連続的なメモリアクセスストリームをメモリ又はI/Oデバイスに提供する。
メモリチャネルコントローラ510は、関連するメモリチャネルへのディスパッチのためにメモリアクセスを選択することを可能にする回路を含む。アドレス生成器522は、所望のアービトレーションの決定を行うために、アドレス情報を、メモリシステム内のランク、行アドレス、列アドレス、バンクアドレス及びバンクグループを含むプリデコードされた情報に復号化し、コマンドキュー520は、プリデコードされた情報を記憶する。構成レジスタ562は、受信したアドレス情報をアドレス生成器522がどのように復号するのかを決定するために、構成情報を記憶する。アービタ538は、復号化されたアドレス情報と、タイミングブロック534によって示されたタイミング適格性情報と、ページテーブル536によって示されたアクティブページ情報と、を使用して、例えばQoS要件等の他の基準を遵守しながらメモリアクセスを効率的にスケジューリングする。例えば、アービタ538は、メモリページを変更するのに必要なプリチャージ及びアクティブ化コマンドのオーバーヘッドを避けるために、オープンページへのアクセスを優先し、或るバンクへのオーバーヘッドアクセスを、他のバンクへの読出し及び書込みアクセスをインタリーブすることによって隠す。特に、アービタ538は、通常動作中に、異なるページを選択する前にプリチャージされる必要があるまで、異なるバンク内のページオープンを維持することを決定してもよい。
アービタ538は、タイミングブロック534を使用して、保留中のアクセスのタイミング適格性を判別し、次に、効率性及び公平性の両方を保証する基準のセットに基づいて、コマンドキュー520から適格なアクセスを選択する。アービタ538は、効率性及び公平性の両方を保証する2つのメカニズムをサポートする。第1に、アービタ538は、コマンドキュー520に記憶されたメモリアクセス要求の属性と、書き込みが許可されているのと同時に読み出しが許可される条件を制御するためのプログラム可能な閾値と、を調べることによって読み出し/書き込みトランザクション管理を実行して効率性及び公平性の両方を保証する。第2に、アービタ538は、特定のタイプのアクセスのストリークがメモリバスを無期限に保持するのを許可しないように保証するストリークカウンタを含む。これらの2つのメカニズムについて説明する。
図6は、いくつかの実施形態による、読出し/書込みトランザクション管理を実行するために使用することができる図5のコマンドキュー520の機能ブロック図600である。コマンドキュー520は、アドレス生成器522から受信した複数のランダムに配置された読出し及び書込みコマンドを含む。アドレス生成器522は、各メモリアクセス要求を、コマンドタイプ(読出し又は書込み)、ランク、バンク、行、及び、優先順位にデコードすることによって、コマンドキュー520は、コマンドフィールド602と、ランクフィールド604と、バンクフィールド606と、行フィールド608と、優先順位フィールド610と、をまとめて有するエントリを含む。優先順位フィールド610は、コマンド毎に、読出し又は書込みコマンド毎の重要度又は優先順位の表示を記憶する。したがって、一態様によれば、アービタ538は、コマンドのタイプと、優先順位によって表されるコマンドの対応する重要度と、に基づいて、実行するためのコマンドを選択する。さらなる態様として、本明細書でさらに説明するように、実行するためのコマンドを選択する際に他の考慮事項も利用することができる。
1つの特定の例では、アービタ538は、コマンドタイプ(例えば、読出し又は書込み)と優先順位レベル(低、中間、高)とを考慮する閾値カウンタのセットを使用する。この例では、アービタ538は、低、中間及び高優先順位の各々の保留中の書込みの数をカウントする低、中間及び高優先順位の書込み閾値カウンタを含む。また、アービタ538は、アービトレーションにおいて書込みが勝つことを可能にする日和見的な書込み閾値カウンタと、アービタ538に読出しを確実に中断させて書込みをサービスさせるための総書込み閾値と、保留中の読出しに戻る前に送信される書込みの最小数をカウントする最小書込み閾値カウンタと、保留中の書込みに戻る前に送信される読出しの最小数をカウントする最小読出し閾値カウンタと、を含む。閾値カウンタは、表1に要約されている。
アービタ538は、任意の所定の時間にコマンドキュー520に存在する読出し/書込みの数をカウントして、何れの閾値が満たされるかどうかを判別する。この目的のために、順序付けベース又はアドレスベースの依存性がないエントリのみがカウントされる。例示的な実施形態では、TotalWrThreshが満たされているかどうかを判別するために、アービタ538は、対応する重要度によって低、中間及び高優先順位の要求を重み付けすることによって、重み付けされた書込み要求の総数を決定する。
アービタ538は、3つの条件のうち何れかが発生したときに、読出しのサービスから書込みのサービスに変更するか、変更することが可能になる。第1に、コマンドキュー520の保留中の書込みの総数がTotalWrThresh又は優先順位毎のカウンタ(LoPriWrThresh、MedPriWrThresh若しくはHiPriWrThresh)の何れかを超える場合には、アービタ538が、最後の読出しから書込みへの切り替え以降にMinRdThreshの数の読出しを送信したか、コマンドキュー520にこれ以上の読出しが存在せず、その後、アービタ538は書込みに切り替える。第2に、書込みの総数がOppWrThreshを超えている場合、書込みは、読出しと共にアービトレーションの対象となる。この優先順位メカニズムによって、総閾値が満たされるか読出しが完了するまでの何れかの間に、書込みのためのページを開くACTコマンドを送信することができるようになる。第3に、アービタ538は、保留中の読出しがコマンドキュー520に無い場合に、読出しから書込みに変更する。これらの条件のうち何れかが満たされるが、メモリコントローラ500がマルチサイクル読出しバーストを実行しており、この状況でバーストを継続するオプションが設定されている場合には、アービタ538は、この動作をアトミック動作であるとみなして、この動作を読出しから書込みに変更する前に完了する。アービタ538が読出しから書込みに変わる時点での保留中の書込みの数は、現在の書込みのセットに対する最大閾値になる。
アービタ538は、MinWrThreshの数の書込みが送信され、且つ、選択的に他の条件が満たされた後のみに、読出しのサービスに明示的に戻る。一実施形態では、他の条件は、読出し用のプログラム可能な閾値のセットのうち1つの閾値を満たすことを含む。このプログラム可能な閾値は、表1に示されている閾値を反映している。本実施形態において、ユーザは、読出しが全般的に書込みよりも優先されるように、対応する読出し閾値レジスタを、異なる値及び潜在的に低い値で構成することができる。この例であっても、適格な書込み要求がコマンドキュー520に無い場合、アービタ538は、読出し要求のサービスを直ちに再開し、そして、MinWrThreshが満たされた後に、1つ以上の読出し要求がコマンドキュー520に記憶され及び/又は適格になる。
この例では、これらの優先順位ルールに対する1つの例外は、「Force Entry」状態として知られる状態がコマンドキュー520内の何れかのエントリに設定されている場合に発生する。Force Entry状態は、コマンドキュー520内のエントリが数回バイパスされた後に設定される。アービタ538が読出しモードである間にForce Entryが書込み要求に対して設定されると、アービタ538は、読出しから書込みに切り替わる。しかしながら、Force Entry要求が実行されると、アービタ538は、最小閾値分の書込みを送信するまで、読出しに戻る前に書込みを選択し続ける。したがって、MinRdThresh及びMinWrThreshの値は、ヒステリシスロジックを確立して、アービタ538が、読出しと書込みとの間でバスを頻繁に行き来させることによって効率を犠牲にしないことを確実にする。
図7は、いくつかの実施形態による、ストリーク管理を実行するために使用することができるアービタ700のブロック図である。アービタ700は、コマンドキュー520内の保留コマンドについての情報を受信し、選択情報をキュー514に提供する。図7の例において、アービタ700は、1つのストリームが単一のバンク又はランクにアクセスし、これにより他のページヒット要求が無期限に待たされる間に全てのメモリ帯域幅を占有するのを防ぐための2つのストリークカウンタ702,704を含む。アービタ538は、ストリークカウンタ702,704のうち一方のストリークカウンタを使用して、他のページの競合がある場合に単一のバンクに対するページヒットアクセス数を追跡し続ける。ページヒットアクセス数が設定可能なカウントに達すると、アービタ538は、最後の読込み又は書込みアクセスのためのオートプリチャージを有効にし、最も早いページ競合要求が進行することが可能になる。
アービタ700は、他のランクへのページヒットがある場合に、ストリークカウンタ702,704のうち他方のストリークカウンタを使用して、同じランクへのページヒットアクセス数を追跡する。同じランクへのページヒットアクセス数が設定可能なカウントに達すると、アービタ700は、他のランクにコマンドを送信するまで当該同じランクへのアクセスをブロックする。アービタ700が他のランクに切り替わると、他のランクに行く全ての要求がアービトレーションの対象となり、それらが進行することを可能にする。
より多くの又は異なるストリークカウンタを使用して、中断されないアクセスのストリームを引き起こし得る他のタイプのアクセスに対する公平性を確実にすることが可能であることが明らかである。また、図示した実施形態では、構成レジスタ562は、ストリークの最大許容長を定める1つ以上のレジスタを含む。
図5のメモリコントローラは、ハードウェア及びソフトウェアの様々な組み合わせによって実装されてもよい。例えば、ハードウェア回路は、プライオリティエンコーダ、有限ステートマシン、プログラマブルロジックアレイ(PLA)等を含んでもよい。例えば、アービタ538は、保留中のコマンドの相対的なタイミング適格性を評価するために、記憶されたプログラム命令を実行するマイクロコントローラを用いて実装することができる。この場合、いくつかの命令は、マイクロコントローラによって実行されるために、非一時的なコンピュータメモリ又はコンピュータ可読記憶媒体に記憶されてもよい。様々な実施形態では、非一時的なコンピュータ可読記憶媒体は、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ等のソリッドステート記憶デバイス、又は、他の不揮発性メモリデバイスを含む。非一時的なコンピュータ可読記憶媒体に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈及び/若しくは実行可能な他の命令フォーマットであってもよい。
図1のAPU110、図5のメモリコントローラ又はこれらの一部(例えば、アービタ538)は、プログラムによって読出され、集積回路を製造するために直接的若しくは間接的に使用されるデータベース又は他のデータ構造の形態のコンピュータアクセス可能なデータ構造によって記述されてもよいし表現されてもよい。例えば、このデータ構造は、例えばVerilog又はVHDL等の高水準設計言語(HDL)におけるハードウェア機能の動作レベル記述であってもよいし、レジスタ転送レベル(RTL)記述であってもよい。記述は、ゲートのリストを含むネットリストを合成ライブラリから生成するために当該記述を合成し得る合成ツールによって読出されてもよい。ネットリストは、集積回路を含むハードウェアの機能を表すゲートのセットを含む。そして、ネットリストを配置及びルーティングして、マスクに適用される幾何学的形状を記述するデータセットを生成してもよい。マスクは、集積回路を製造するために様々な半導体製造工程で使用されてもよい。或いは、コンピュータアクセス可能な記憶媒体上のデータベースは、所望により、ネットリスト(合成ライブラリ有り若しくは無し)又はデータセットであってもよいし、グラフィックデータシステム(GDS)IIデータであってもよい。
特定の実施形態について説明してきたが、これらの実施形態に対する様々な変更が当業者には明らかであろう。例えば、本明細書に開示されたストリークカウンタは、上述したタイプのアクセス又は他の類似のアクセスに使用することができる。全てではないが一部のアクセスタイプのストリークカウンタを実装することができる。さらに、効率と公平性との間のトレードオフは、上記の閾値を変更することによって、アプリケーション環境に応じて変更することができる。
したがって、一形態では、データプロセッサ又はデータ処理システム等の回路は、メモリアクセス要求を受信して記憶するためのコマンドキューを有するメモリコントローラと、アービタと、を含む。アービタは、いくつかの基準に基づいてメモリアクセス要求をコマンドキューから選択し、選択したメモリアクセス要求をメモリチャネルに提供する。アービタは、コマンドキューから選択した第1タイプの連続するメモリアクセス要求の数をカウントするための第1ストリークカウンタを含む。第1ストリークカウンタが第1閾値に達すると、アービタは、第1タイプの要求の選択を停止し、少なくとも1つの第2タイプのメモリアクセス要求を選択する。第1ストリークカウンタは、少なくとも1つの第2タイプのメモリアクセス要求をメモリチャネルに提供する。例えば、第1タイプはページヒット要求を含むことができ、第2タイプはページ競合要求を含むことができる。第1ストリークカウンタが第1閾値に達すると、メモリコントローラは、少なくとも1つの第2タイプのメモリアクセス要求を選択する前に、メモリチャネルへの第1タイプの最後のメモリアクセス要求に対するオートプリチャージを有効にすることができる。別の例では、第1タイプは第1ランクへのページヒット要求を含むことができ、第2タイプは第2ランクへのページヒット要求を含むことができる。
回路は、各々がアクセスアドレスを含むメモリアクセス要求を受信するデコーダをさらに含むことができる。デコーダは、アクセスアドレスを、ランク、バンク及び行にデコードする。この場合、コマンドキューは、メモリアクセス要求毎に、ランク、バンク及び行を記憶し、アービタは、全ての適格なメモリアクセス要求のランク、バンク及び行のうち少なくとも1つを調べることによって、第2タイプのメモリアクセス要求が存在すると判別する。
回路がデータ処理システムである場合、回路は、メモリアクセスエージェントと、メモリシステムと、をさらに含むことができる。メモリアクセスエージェントは、アクセスアドレスを有するメモリアクセス要求をメモリコントローラに提供する。メモリシステムは、メモリコントローラに接続されており、メモリアクセス要求に応答する。メモリシステムは、少なくとも1つのランクのメモリを有しており、各ランクは、行のセットを有するバンクのセットを含む。この場合、データ処理システムは、メモリアクセス要求をメモリコントローラに提供するためのメモリアクセスエージェントのセットをさらに含むことができる。さらに、メモリシステムは、メモリコントローラに接続されたメモリチャネルのセットを含むことができ、各メモリチャネルは、少なくとも1つのランクのメモリを有しており、各ランクは、行のセットを有するバンクのセットを含む。
他の形態では、データプロセッサ又はデータ処理システム等の回路は、メモリコントローラを含み、メモリコントローラは、デコーダと、コマンドキューと、アービタと、を含む。デコーダは、メモリアクセス要求を受信し、メモリアクセス要求を或るタイプにデコードする。コマンドキューは、デコーダに接続されており、デコードされたメモリアクセス要求を受信して記憶する。アービタは、基準のセットに基づいてメモリアクセス要求をコマンドキューから選択し、選択したメモリアクセス要求をメモリチャネルに提供する。タイプは、対応するメモリアクセス要求が読出し要求か書込み要求かを示す。アービタは、コマンドキューをスキャンし、第1タイプのメモリアクセス要求の数をカウントする。第1タイプのメモリアクセス要求の数が第1閾値以上である場合、アービタは、第2タイプのメモリアクセス要求の選択を停止し、少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供する。例えば、第1タイプは書込み要求であってもよく、第2タイプは読出し要求であってもよい。メモリコントローラは、第1閾値を、対応するプログラム可能なレジスタに記憶することができる。
アービタが少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供する場合、アービタは、第1タイプのメモリアクセス要求がコマンドキューに存在しなくなるまで、又は、アービタが第2閾値数の第1タイプのメモリアクセス要求を選択するまで、第1タイプのメモリアクセス要求を選択する。この場合、アービタが少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供した後に、アービタは、第1タイプのメモリアクセス要求の選択を停止し、第2タイプのメモリアクセス要求がコマンドキューに存在しなくなるまで、又は、アービタが第3閾値数の第2タイプのメモリアクセス要求を選択するまで、第2タイプのメモリアクセス要求を選択する。
例えば、第1タイプのメモリアクセス要求の数は、書込み要求の総数、又は、特定の優先順位の書込み要求の総数とすることができる。後者の場合、優先順位は、例えば、低優先順位、中優先順位及び高優先順位のうち1つであってもよい。この場合、メモリコントローラは、特定の優先順位のメモリアクセス要求の数に対する閾値を、低優先順位、中優先順位及び高優先順位に対応するプログラム可能なレジスタのセットに記憶することができる。
回路がデータ処理システムである場合、回路は、メモリアクセスエージェントと、メモリシステムと、をさらに含むことができる。メモリアクセスエージェントは、アクセスアドレスを有するメモリアクセス要求をメモリコントローラに提供する。メモリシステムは、メモリコントローラに接続されており、メモリアクセス要求に応答する。メモリシステムは、少なくとも1つのランクのメモリを有しており、各ランクは、行のセットを有するバンクのセットを含む。この場合、データ処理システムは、メモリアクセス要求をメモリコントローラに提供するためのメモリアクセスエージェントのセットをさらに含むことができる。さらに、メモリシステムは、メモリコントローラに接続されたメモリチャネルのセットを含むことができ、各メモリチャネルは、少なくとも1つのランクのメモリを有しており、各ランクは、行のセットを有するバンクのセットを含む。
さらに他の形態では、ダイナミックランダムアクセスメモリへのメモリアクセス要求を順序付けるための方法は、メモリアクセス要求を受信することを含む。メモリアクセス要求は、コマンドキューに記憶される。メモリアクセス要求は、第1タイプのメモリアクセス要求と、少なくとも1つの第2タイプのメモリアクセス要求と、を含む。第1タイプの連続するメモリアクセス要求のストリークは、第1閾値に達するまで実行される。コマンドキューは、少なくとも1つの第1タイプの追加のメモリアクセス要求と、少なくとも1つの第2タイプのメモリアクセス要求と、を記憶する。少なくとも1つの第2タイプのメモリアクセス要求は、第1タイプのメモリアクセス要求を実行した後に実行される。一例において、第1タイプはページヒット要求であってもよく、第2タイプはページミス要求であってもよい。オートプリチャージは、少なくとも1つの第2タイプのメモリアクセス要求を実行する前に、第1タイプの最後のメモリアクセス要求に対して有効にすることができる。他の例では、第1タイプは第1ランクへのページヒット要求であってもよく、第2タイプは第2ランクへのページヒット要求であってもよい。
受信したメモリアクセス要求は、ランク、バンク及び行にデコードすることができる。ランク、バンク及び行は、コマンドキューに記憶することができる。全ての適格なメモリアクセス要求のランク、バンク及び行のうち少なくとも1つを調べることによって、少なくとも1つの第2タイプのメモリアクセス要求が存在すると判別することができる。
さらに他の形態では、ダイナミックランダムアクセスメモリへのメモリアクセス要求を順序付けるための方法は、メモリアクセス要求を受信することを含む。メモリアクセス要求は、対応するメモリアクセス要求が読出し要求か書込み要求かを示すタイプにデコードされる。第1タイプの連続するメモリアクセス要求のストリークは、第1閾値に達するまで実行される。コマンドキューは、少なくとも1つの第1タイプの追加のメモリアクセス要求と、少なくとも1つの第2タイプのメモリアクセス要求と、を記憶する。少なくとも1つの第2タイプのメモリアクセス要求は、第1タイプのメモリアクセス要求を実行した後に実行される。
例えば、少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供する場合、第1タイプのメモリアクセス要求がコマンドキューに存在しなくなるまで、又は、第2閾値数の第1タイプのメモリアクセス要求を選択するまで、第1タイプのメモリアクセス要求を選択してもよい。この場合、少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネルに提供した後に、第1タイプのメモリアクセス要求の選択を停止することができ、第2タイプのメモリアクセス要求がコマンドキューに存在しなくなるまで、又は、第3閾値数の第2タイプのメモリアクセス要求を選択するまで、第2タイプのメモリアクセス要求を選択することができる。
第1タイプのメモリアクセス要求は、書込み要求の総数、又は、特定の優先順位の書込み要求の総数を含むことができる。第1閾値は、対応するプログラム可能なレジスタに記憶することができる。
したがって、添付の特許請求の範囲によって、開示された実施形態の範囲に含まれる、開示された実施形態の全ての変更を包含することが意図される。

Claims (32)

  1. メモリコントローラ(500)を含む装置(100/200)であって、
    前記メモリコントローラ(500)は、
    メモリアクセス要求を受信して記憶するコマンドキュー(520)と、
    複数の基準に基づいて前記メモリアクセス要求を前記コマンドキュー(520)から選択し、選択したメモリアクセス要求をメモリチャネル(130/140)に提供するアービタ(538)と、を備え、
    前記アービタ(538)は、前記アービタ(538)が前記コマンドキュー(520)から選択する第1タイプの連続するメモリアクセス要求の数をカウントするための第1ストリークカウンタ(702)を含み、
    前記アービタ(538)は、前記第1ストリークカウンタ(702)が第1閾値に達すると、前記第1タイプの要求の選択を停止し、少なくとも1つの第2タイプのメモリアクセス要求を選択し、前記少なくとも1つの第2タイプのメモリアクセス要求を前記メモリチャネル(130/140)に提供する、
    装置(100/200)。
  2. 前記第1タイプはページヒット要求を含み、前記第2タイプはページ競合要求を含む、
    請求項1の装置(100/200)。
  3. 前記第1ストリークカウンタ(702)が前記第1閾値に達すると、前記メモリコントローラ(520)は、前記少なくとも1つの第2タイプのメモリアクセス要求を選択する前に、前記メモリチャネル(130/140)への前記第1タイプの最後のメモリアクセス要求に対するオートプリチャージを有効にする、
    請求項1の装置(100/200)。
  4. 前記第1タイプは第1ランクへのページヒット要求を含み、前記第2タイプは第2ランクへのページヒット要求を含む、
    請求項1の装置(100/200)。
  5. 各々がアクセスアドレスを含むメモリアクセス要求を受信し、前記アクセスアドレスをランク、バンク及び行にデコードするデコーダ(522)をさらに備え、
    前記コマンドキュー(520)は、メモリアクセス要求毎に、前記ランク、前記バンク及び前記行を記憶し、前記アービタ(538)は、全ての適格なメモリアクセス要求の前記ランク、前記バンク及び前記行のうち少なくとも1つを調べることによって、前記少なくとも1つの第2タイプのメモリアクセス要求が存在すると判別する、
    請求項1の装置(100/200)。
  6. 前記装置(100/200)は、
    アクセスアドレスを有するメモリアクセス要求を前記メモリコントローラ(500)に提供するメモリアクセスエージェント(110/210/220)と、
    前記メモリコントローラ(120)に接続されたメモリシステム(120)であって、前記メモリアクセス要求に応答し、少なくとも1つのランクのメモリを有し、各ランクは複数の行を有する複数のバンクを含む、メモリシステム(120)と、
    をさらに備えるデータ処理システム(100)である、
    請求項1の装置(100/200)。
  7. 前記データ処理システム(100)は、
    メモリアクセス要求を前記メモリコントローラ(500)に提供する複数のメモリアクセスエージェント(110/210/220)を備える、
    請求項6の装置(100/200)。
  8. 前記メモリシステム(120)は、
    前記メモリコントローラ(120)に接続された複数のメモリチャネル(130/140)であって、少なくとも1つのランクのメモリを有し、各ランクは複数の行を有する複数のバンクを含む、複数のメモリチャネル(130/140)を備える、
    請求項6の装置(100/200)。
  9. メモリコントローラ(500)を含む装置(100/200)であって、
    前記メモリコントローラ(500)は、
    メモリアクセス要求を受信し、メモリアクセス要求を或るタイプにデコードするデコーダ(522)と、
    デコードされたメモリアクセス要求を受信して記憶する、前記デコーダ(522)に接続されたコマンドキュー(520)と、
    複数の基準に基づいて前記メモリアクセス要求を前記コマンドキュー(520)から選択し、選択したメモリアクセス要求をメモリチャネル(130/140)に提供するアービタ(538)と、を備え、
    前記タイプは、対応するメモリアクセス要求が読出し要求か書込み要求かを示し、
    前記アービタ(538)は、前記コマンドキュー(520)をスキャンし、第1タイプのメモリアクセス要求の数をカウントし、
    前記アービタ(538)は、前記第1タイプのメモリアクセス要求の数が第1閾値以上である場合、第2タイプのメモリアクセス要求の選択を停止し、少なくとも1つの第1タイプのメモリアクセス要求を前記メモリチャネル(130/140)に提供する、
    装置(100/200)。
  10. 前記第1タイプは書込み要求を含み、前記第2タイプは読出し要求を含む、
    請求項9の装置(100/200)。
  11. 前記アービタ(538)が前記少なくとも1つの第1タイプのメモリアクセス要求を前記メモリチャネル(130/140)に提供する場合、前記アービタ(538)は、前記第1タイプのメモリアクセス要求が前記コマンドキュー(520)に存在しなくなるまで、又は、前記アービタ(538)が第2閾値数の前記第1タイプのメモリアクセス要求を選択するまで、前記第1タイプのメモリアクセス要求を選択する、
    請求項9の装置(100/200)。
  12. 前記アービタ(538)が前記少なくとも1つの第1タイプのメモリアクセス要求を前記メモリチャネル(130/140)に提供した後に、前記アービタ(538)は、前記第2タイプのメモリアクセス要求が前記コマンドキュー(520)に存在しなくなるまで、又は、前記アービタ(538)が第3閾値数の前記第2タイプのメモリアクセス要求を選択するまで、前記第1タイプのメモリアクセス要求の選択を停止して前記第2タイプのメモリアクセス要求を選択する、
    請求項11の装置(100/200)。
  13. 前記第1タイプのメモリアクセス要求の数は、書込み要求の総数を含む、
    請求項9の装置(100/200)。
  14. 前記第1タイプのメモリアクセス要求の数は、所定の優先順位の書込み要求の総数を含む、
    請求項9の装置(100/200)。
  15. 前記所定の優先順位は、低優先順位、中優先順位及び高優先順位のうち1つを含む、
    請求項14の装置(100/200)。
  16. 前記メモリコントローラ(500)は、前記所定の優先順位のメモリアクセス要求の数に対する閾値を、前記低優先順位、前記中優先順位及び前記高優先順位に対応する複数のプログラム可能なレジスタに記憶する、
    請求項15の装置(100/200)。
  17. 前記メモリコントローラ(500)は、前記第1閾値を、対応するプログラム可能なレジスタに記憶する、
    請求項9の装置(100/200)。
  18. 前記装置(100/200)は、
    アクセスアドレスを有するメモリアクセス要求を前記メモリコントローラ(500)に提供するメモリアクセスエージェント(110/210/220)と、
    前記メモリコントローラ(120)に接続されたメモリシステム(120)であって、前記メモリアクセス要求に応答し、少なくとも1つのランクのメモリを有し、各ランクは複数の行を有する複数のバンクを含む、メモリシステム(120)と、
    をさらに備えるデータ処理システム(100)である、
    請求項9の装置(100/200)。
  19. 前記データ処理システム(100)は、
    メモリアクセス要求を前記メモリコントローラ(500)に提供する複数のメモリアクセスエージェント(110/210/220)を備える、
    請求項18の装置(100/200)。
  20. 前記メモリシステム(120)は、
    前記メモリコントローラ(120)に接続された複数のメモリチャネル(130/140)であって、少なくとも1つのランクのメモリ有し、各ランクは複数の行を有する複数のバンクを含む、複数のメモリチャネル(130/140)を備える、
    請求項18の装置(100/200)。
  21. ダイナミックランダムアクセスメモリシステム(120)へのメモリアクセス要求を順序付けるための方法であって、
    メモリアクセス要求を受信することと、
    前記メモリアクセス要求をコマンドキュー(520)に記憶することであって、前記メモリアクセス要求は、第1タイプのメモリアクセス要求と、少なくとも1つの第2タイプのメモリアクセス要求と、を含む、ことと、
    前記第1タイプの連続するメモリアクセス要求のストリークを第1閾値に達するまで実行することであって、前記コマンドキュー(520)は、少なくとも1つの第1タイプの追加のメモリアクセス要求と、少なくとも1つ前記第2タイプのメモリアクセス要求と、を記憶する、ことと、
    前記第2タイプの少なくとも1つのメモリアクセス要求を、前記第1タイプのメモリアクセス要求を実行した後に実行することと、を含む、
    方法。
  22. 前記第1タイプのメモリアクセス要求を第1閾値に達するまで実行することは、
    前記第1タイプの連続するメモリアクセス要求の数をカウントすることと、
    前記数が前記第1閾値と等しいことに応じて、前記少なくとも1つの第2タイプのメモリアクセス要求を実行することと、を含む、
    請求項21の方法。
  23. 前記第1タイプはページヒット要求を含み、前記第2タイプはページミス要求を含む、
    請求項21の方法。
  24. 前記少なくとも1つの第2タイプのメモリアクセス要求を実行する前に、前記第1タイプの最後のメモリアクセス要求に対するオートプリチャージを有効にすることをさらに含む、
    請求項21の方法。
  25. 前記第1タイプは第1ランクへのページヒット要求を含み、前記第2タイプは第2ランクへのページヒット要求を含む、
    請求項21の方法。
  26. 受信したメモリアクセス要求をランク、バンク及び行にデコードすることと、
    前記ランク、前記バンク及び前記行をコマンドキュー(520)に記憶することと、
    全ての適格なメモリアクセス要求の前記ランク、前記バンク及び前記行のうち少なくとも1つを調べることによって、前記少なくとも1つの第2タイプのメモリアクセス要求が存在すると判別することと、をさらに含む、
    請求項21の方法。
  27. ダイナミックランダムアクセスメモリシステム(120)へのメモリアクセス要求を順序付けるための方法であって、
    メモリアクセス要求を受信することと、
    前記メモリアクセス要求を、対応するメモリアクセス要求が読出し要求か書込み要求かを示すタイプにデコードすることと、
    前記タイプを含むデコードされたメモリアクセス要求をコマンドキュー(520)に記憶することと、
    前記メモリアクセス要求を、複数の基準に基づいて前記コマンドキュー(520)から選択することと、を含み、
    前記選択することは、
    前記コマンドキュー(520)をスキャンし、第1タイプのメモリアクセス要求の数をカウントすることと、
    前記第1タイプのメモリアクセス要求の数が第1閾値以上である場合、第2タイプのメモリアクセス要求の選択を停止し、少なくとも1つの第1タイプのメモリアクセス要求をメモリチャネル(130/140)に提供することと、を含む、
    方法。
  28. 前記少なくとも1つの第1タイプのメモリアクセス要求を前記メモリチャネル(130/140)に提供する場合、前記第1タイプのメモリアクセス要求が前記コマンドキュー(520)に存在しなくなるまで、又は、第2閾値数の前記第1タイプのメモリアクセス要求を選択するまで、前記第1タイプのメモリアクセス要求を選択することをさらに含む、
    請求項27の方法。
  29. 前記少なくとも1つの第1タイプのメモリアクセス要求を前記メモリチャネル(130/140)に提供した後に、前記第2タイプのメモリアクセス要求が前記コマンドキュー(520)に存在しなくなるまで、又は、第3閾値数の前記第2タイプのメモリアクセス要求を選択するまで、前記第1タイプのメモリアクセス要求の選択を停止して前記第2タイプのメモリアクセス要求を選択することをさらに含む、
    請求項28の方法。
  30. 前記第1タイプのメモリアクセス要求の数は、書込み要求の総数を含む、
    請求項27の方法。
  31. 前記第1タイプのメモリアクセス要求の数は、所定の優先順位の書込み要求の総数を含む、
    請求項27の方法。
  32. 前記第1閾値を、対応するプログラム可能なレジスタに記憶することをさらに含む、
    請求項27の方法。
JP2019501952A 2016-07-15 2017-07-12 ストリーク及び読出し/書込みトランザクション管理を有するメモリコントローラアービタ Pending JP2019521448A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662363018P 2016-07-15 2016-07-15
US62/363,018 2016-07-15
US201662377367P 2016-08-19 2016-08-19
US62/377,367 2016-08-19
US15/272,626 US10402120B2 (en) 2016-07-15 2016-09-22 Memory controller arbiter with streak and read/write transaction management
US15/272,626 2016-09-22
PCT/US2017/041716 WO2018013690A2 (en) 2016-07-15 2017-07-12 Memory controller arbiter with streak and read/write transaction management

Publications (1)

Publication Number Publication Date
JP2019521448A true JP2019521448A (ja) 2019-07-25

Family

ID=57542891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019501952A Pending JP2019521448A (ja) 2016-07-15 2017-07-12 ストリーク及び読出し/書込みトランザクション管理を有するメモリコントローラアービタ

Country Status (6)

Country Link
US (1) US10402120B2 (ja)
EP (2) EP3270296A1 (ja)
JP (1) JP2019521448A (ja)
KR (1) KR102395745B1 (ja)
CN (1) CN109564556B (ja)
WO (1) WO2018013690A2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540115B2 (en) * 2015-04-21 2020-01-21 SK Hynix Inc. Controller adaptation to memory program suspend-resume
KR102322740B1 (ko) * 2017-04-24 2021-11-09 에스케이하이닉스 주식회사 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법
KR20180126793A (ko) * 2017-05-18 2018-11-28 삼성전자주식회사 커맨드 컨트롤러를 포함하는 애플리케이션 프로세서 및 집적 회로
US10474397B2 (en) * 2017-06-13 2019-11-12 Western Digital Technologies, Inc Unified indirection in a multi-device hybrid storage unit
CN110729006B (zh) * 2018-07-16 2022-07-05 超威半导体(上海)有限公司 存储器控制器中的刷新方案
US10558613B1 (en) * 2018-07-19 2020-02-11 EMC IP Holding Company LLC Storage system with decrement protection of reference counts
US11093425B2 (en) * 2018-08-20 2021-08-17 Apple Inc. Systems and methods for arbitrating traffic in a bus
US20210200694A1 (en) * 2019-12-27 2021-07-01 Advanced Micro Devices, Inc. Staging buffer arbitration
US20210200695A1 (en) * 2019-12-27 2021-07-01 Advanced Micro Devices, Inc. Staging memory access requests
KR20210115576A (ko) 2020-03-13 2021-09-27 에스케이하이닉스 주식회사 호스트 및 메모리 시스템을 포함하는 전자 시스템
US20210303340A1 (en) * 2020-03-24 2021-09-30 Micron Technology, Inc. Read counter for quality of service design
CN111444123B (zh) 2020-03-28 2021-01-15 珠海市一微半导体有限公司 基于硬件加速的spi接口的自动读取控制系统及方法
US20210357336A1 (en) * 2020-05-14 2021-11-18 Advanced Micro Devices, Inc. Efficient memory bus management
US11625352B2 (en) 2020-06-12 2023-04-11 Advanced Micro Devices, Inc. DRAM command streak management
US11494120B2 (en) * 2020-10-02 2022-11-08 Qualcomm Incorporated Adaptive memory transaction scheduling
US11782640B2 (en) 2021-03-31 2023-10-10 Advanced Micro Devices, Inc. Efficient and low latency memory access scheduling
US11789655B2 (en) 2021-03-31 2023-10-17 Advanced Micro Devices, Inc. Efficient and low latency memory access scheduling
US11687281B2 (en) * 2021-03-31 2023-06-27 Advanced Micro Devices, Inc. DRAM command streak efficiency management
US11520706B2 (en) * 2021-04-29 2022-12-06 Qualcomm Incorporated Dram-aware caching
US11995008B2 (en) 2021-06-22 2024-05-28 Advanced Micro Devices, Inc. Memory controller with hybrid DRAM/persistent memory channel arbitration
US11755246B2 (en) 2021-06-24 2023-09-12 Advanced Micro Devices, Inc. Efficient rank switching in multi-rank memory controller
US20230065395A1 (en) * 2021-08-30 2023-03-02 Micron Technology, Inc. Command retrieval and issuance policy
US20230325075A1 (en) * 2022-04-07 2023-10-12 Mellanox Technologies, Ltd. Methods and systems for managing memory buffer usage while processing computer system operations
CN116301664B (zh) * 2023-05-16 2023-08-15 北京象帝先计算技术有限公司 存储器的控制器、组件、电子设备及命令缓存方法
CN116257191B (zh) * 2023-05-16 2023-10-20 北京象帝先计算技术有限公司 存储器的控制器、组件、电子设备及命令调度方法
CN116737086B (zh) * 2023-08-14 2023-11-17 江苏云途半导体有限公司 一种嵌入式非易失性存储器读写方法
CN117891758B (zh) * 2024-03-12 2024-05-17 成都登临科技有限公司 一种基于仲裁的存储访问系统、处理器及计算设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040042320A1 (en) * 2002-08-27 2004-03-04 Dodd James M. Address decode
JP2005505854A (ja) * 2001-10-12 2005-02-24 ソニックス インコーポレイテッド 構成可能なしきい値を使用して1つの資源への要求をスケジュールする方法及び装置
JP2007537541A (ja) * 2004-05-14 2007-12-20 マイクロン テクノロジー,インコーポレイテッド メモリシーケンスのためのメモリハブおよび方法
US20140372711A1 (en) * 2013-06-13 2014-12-18 Advanced Micro Devices, Inc. Scheduling memory accesses using an efficient row burst value

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295586B1 (en) 1998-12-04 2001-09-25 Advanced Micro Devices, Inc. Queue based memory controller
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
US6880028B2 (en) * 2002-03-18 2005-04-12 Sun Microsystems, Inc Dynamic request priority arbitration
EP2348718B1 (en) * 2004-07-01 2015-02-25 Mitsubishi Electric Corporation Randomly accessible video information recording method and playback device
US7668530B2 (en) * 2005-04-01 2010-02-23 Adaptix, Inc. Systems and methods for coordinating the coverage and capacity of a wireless base station
US7698498B2 (en) 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
US20070220361A1 (en) * 2006-02-03 2007-09-20 International Business Machines Corporation Method and apparatus for guaranteeing memory bandwidth for trace data
US7664907B1 (en) 2006-11-02 2010-02-16 Nvidia Corporation Page stream sorter with dynamic binning
JP2008287528A (ja) 2007-05-18 2008-11-27 Renesas Technology Corp リクエスト調停装置及びメモリコントローラ
US7739461B2 (en) * 2007-07-10 2010-06-15 International Business Machines Corporation DRAM power management in a memory controller
US8682639B2 (en) * 2010-09-21 2014-03-25 Texas Instruments Incorporated Dedicated memory window for emulation address
GB201214432D0 (en) * 2012-08-13 2012-09-26 Lo Q Plc Queue management system
US8880809B2 (en) 2012-10-29 2014-11-04 Advanced Micro Devices Inc. Memory controller with inter-core interference detection
US9535860B2 (en) * 2013-01-17 2017-01-03 Intel Corporation Arbitrating memory accesses via a shared memory fabric
US9361240B2 (en) 2013-04-12 2016-06-07 International Business Machines Corporation Dynamic reservations in a unified request queue
US9293188B2 (en) * 2014-02-03 2016-03-22 Advanced Micro Devices, Inc. Memory and memory controller for high reliability operation and method
CN106469088B (zh) * 2015-08-21 2020-04-28 华为技术有限公司 一种i/o请求调度方法及调度器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505854A (ja) * 2001-10-12 2005-02-24 ソニックス インコーポレイテッド 構成可能なしきい値を使用して1つの資源への要求をスケジュールする方法及び装置
US7194561B2 (en) * 2001-10-12 2007-03-20 Sonics, Inc. Method and apparatus for scheduling requests to a resource using a configurable threshold
US20040042320A1 (en) * 2002-08-27 2004-03-04 Dodd James M. Address decode
WO2004021201A1 (en) * 2002-08-27 2004-03-11 Intel Corporation (A Delaware Corporation) Address decode
JP2007537541A (ja) * 2004-05-14 2007-12-20 マイクロン テクノロジー,インコーポレイテッド メモリシーケンスのためのメモリハブおよび方法
US20080133853A1 (en) * 2004-05-14 2008-06-05 Jeddeloh Joseph M Memory hub and method for memory sequencing
US20140372711A1 (en) * 2013-06-13 2014-12-18 Advanced Micro Devices, Inc. Scheduling memory accesses using an efficient row burst value

Also Published As

Publication number Publication date
EP3474150A1 (en) 2019-04-24
EP3270296A1 (en) 2018-01-17
US20180018133A1 (en) 2018-01-18
EP3474150B1 (en) 2023-09-13
WO2018013690A2 (en) 2018-01-18
KR20190019215A (ko) 2019-02-26
CN109564556B (zh) 2024-01-02
KR102395745B1 (ko) 2022-05-09
US10402120B2 (en) 2019-09-03
CN109564556A (zh) 2019-04-02
WO2018013690A3 (en) 2018-07-26

Similar Documents

Publication Publication Date Title
KR102395745B1 (ko) 스트릭 및 판독/기입 트랜잭션 관리 기능을 갖는 메모리 제어기 아비터
US11221772B2 (en) Self refresh state machine mop array
KR102442078B1 (ko) 고속 메모리 인터페이스들을 위한 명령 중재
US10593391B2 (en) Refresh scheme in a memory controller
KR102370477B1 (ko) 가상 컨트롤러 모드를 가진 메모리 컨트롤러
EP3436958B1 (en) Low power memory throttling
JP2024512625A (ja) アービトレーション中の書き込みバンクグループのマスク
EP3270294B1 (en) Command arbitration for high-speed memory interfaces
EP3270295A1 (en) Memory controller with virtual controller mode

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190419

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210810

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220517

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220517

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220527

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220531

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20220701

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20220705

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220906

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221011

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221018

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20221115

C19 Decision taken to dismiss amendment

Free format text: JAPANESE INTERMEDIATE CODE: C19

Effective date: 20221129

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20221129

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230110

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20230314

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20230411

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20230411