JP2018180656A - メモリコントローラとその制御方法 - Google Patents
メモリコントローラとその制御方法 Download PDFInfo
- Publication number
- JP2018180656A JP2018180656A JP2017074832A JP2017074832A JP2018180656A JP 2018180656 A JP2018180656 A JP 2018180656A JP 2017074832 A JP2017074832 A JP 2017074832A JP 2017074832 A JP2017074832 A JP 2017074832A JP 2018180656 A JP2018180656 A JP 2018180656A
- Authority
- JP
- Japan
- Prior art keywords
- write
- invalid
- byte
- command
- invalid byte
- 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.)
- Withdrawn
Links
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】MWR(Masked Write)コマンドを発行することで発生する時間ペナルティによる性能低下を抑制するメモリコントローラ及びその制御方法を提供する。【解決手段】MWRコマンドを発行するメモリコントローラ100において、ライトデータからバイトイネーブル信号を用いて無効バイトの有無を検出し、無効バイトのメモリへのライトが許容されるかを判定し、無効バイトが有ることが検出され、無効バイトのライトが許容されると判定された場合に、ライトデータを、無効バイトを含めてライトするWRコマンドを発行し、無効バイトが有ることが検出され、無効バイトのライトが許容されないと判定された場合に、MWRコマンドを発行する。【選択図】図1
Description
本発明は、メモリコントローラに関し、特に、メモリへのバーストライト内に無効バイトが含まれない場合と、無効バイトが含まれる場合とで異なるライトコマンドを発行するメモリコントローラに関する。
近年に策定された規格であるLPDDR4では、Masked Write(MWR)コマンドが導入され、メモリ(以降、「DRAM」とも記載する。)がこのコマンドを受信するとメモリ内部でリードモディファイライトを実行する。メモリは一度データを読み出し、データマスク信号に基づいて読み出したデータを変更し、全データを書き戻す。これにより、従来はバイト毎に制御していたデータマスク制御がバーストライト単位でのデータマスク制御となり実装が単純化されるため、小型化と低電力化を実現することが可能となる。データマスク制御とは、データマスク信号が対応するデータが無効であることを示す場合に、メモリに格納されているデータを上書きしないための制御である。LPDDR4のメモリが、従来のDRAMと同じWrite(WR)コマンドを受信すると、メモリは全データを有効なものとして書き込みを実行するため、内部でリードモディファイライトは実行されない。(非特許文献1参照)
JEDEC STANDARD No.209−4A仕様規格書
MWRコマンドを受信したメモリが内部でリードモディファイライトを実行するため、メモリコントローラは、先行するWR/MWRコマンドを発行後に同じバンクにMWRコマンドを発行する場合は規定間隔(以下、「tCCDMW」とも記載する。)を空けなければいけない。WR/MWRコマンドとMWRコマンドとの間の規定間隔(tCCDMW)は、メモリへのバーストライトのバースト長が16の場合は32DRAMクロックサイクル、バースト長が32の場合は64DRAMクロックサイクルである。
一方、WR/MWRコマンドを発行後にWRコマンドを発行する場合の規定間隔(以下、「tCCD」とも記載する。)は、それより短い。WR/MWRコマンドとWRコマンドとの間の規定間隔(tCCD)は、メモリへのバーストライトのバースト長が16の場合は8DRAMクロックサイクル、バースト長が32の場合は16DRAMクロックサイクルである。そのため、先行するWR/MWRコマンドを発行後に同じバンクにMWRコマンドを発行すると、従来(後のコマンドがWRコマンド)の4倍の時間ペナルティがかかり、性能低下が発生する。
本発明は、上記の課題に鑑みてなされたものである。すなわち、MWRコマンドを発行することで発生する時間ペナルティによる性能低下を抑制するメモリコントローラを提供することを目的とする。また、その制御方法を提供することを目的とする。
本発明に係るメモリコントローラは以下の構成を備える。即ち、バースト単位でのリードモディファイライトを行うメモリへのライトアクセスに対し、ライトアクセスを行うアドレスに存在するデータを含むようにバースト単位でリードしたリードデータの一部のバイトを、ライトアクセスする対象のライトデータの有効バイトと無効バイトとを示すバイトイネーブル信号を用いて更新して更新後のリードデータをライトする第一のライトコマンドを発行するメモリコントローラであって、前記ライトデータから前記バイトイネーブル信号を用いて無効バイトの有無を検出する検出手段と、無効バイトの前記メモリへのライトが許容されるかを判定する判定手段と、前記検出手段で無効バイトが有ることが検出され、前記判定手段で無効バイトのライトが許容されると判定された場合に、前記ライトデータを、無効バイトを含めてライトする第二のライトコマンドを発行し、前記検出手段で無効バイトが有ることが検出され、前記判定手段で無効バイトのライトが許容されないと判定された場合に、前記第一のライトコマンドを発行する発行手段。
本発明によれば、無効バイトのライトが許容される場合に、メモリのバーストアクセス内に無効バイトが含まれてもMWRコマンドではなく、WRコマンドを発行することでMWRコマンドを発行した場合の時間ペナルティによる性能低下を抑制することが可能になる。
[実施形態1]
図1は本実施形態におけるメモリコントローラ100の構成図である。メモリコントローラ100は、メモリデバイス110とバスマスタ120に接続される。バスマスタ120はアドレス情報と、ライトデータやバイトイネーブルを含むメモリアクセス要求をメモリコントローラ100に送信する。メモリコントローラ100は、バスマスタ120から受信したメモリアクセス要求を基にDRAMコマンドを生成し、メモリデバイス110に送信する。メモリデバイス110は、メモリのバーストアクセスの全データをライトする場合と、メモリのバーストアクセスのバイト毎にメモリへライトする場合とで異なるライトコマンドを使用する規格に準拠する。
図1は本実施形態におけるメモリコントローラ100の構成図である。メモリコントローラ100は、メモリデバイス110とバスマスタ120に接続される。バスマスタ120はアドレス情報と、ライトデータやバイトイネーブルを含むメモリアクセス要求をメモリコントローラ100に送信する。メモリコントローラ100は、バスマスタ120から受信したメモリアクセス要求を基にDRAMコマンドを生成し、メモリデバイス110に送信する。メモリデバイス110は、メモリのバーストアクセスの全データをライトする場合と、メモリのバーストアクセスのバイト毎にメモリへライトする場合とで異なるライトコマンドを使用する規格に準拠する。
DRAMコマンド生成部101は、バスマスタ120から受信したメモリアクセス要求からDRAMコマンドを生成する。
無効バイト検出部102は、バスマスタ120から受信したバイトイネーブルのうち、次に発行するライトバーストのライトデータに対応するビットに基づいて、次に発行するライトバーストが無効バイトを含むか無効バイトの有無を判定する。無効バイトを含む場合は無効バイト情報信号をアサートする。無効バイトを含んでいることが分かれば、無効バイトとは、ライトデータに含まれているが、メモリに既に格納されているデータを通常は上書きしないバイトのことである。本実施形態で例として挙げているLPDDR4のDRAMでは、無効バイトを含む場合には、通常はMWRコマンドを生成する。MWRコマンドは、バースト単位でのリードモディファイライトを行うメモリへのライトアクセスに用いる。MWRコマンドは、ライトアクセスを行うアドレスに存在するデータを含むようにバースト単位でリードしたリードデータの一部のバイトを、ライトアクセスする対象のライトデータの有効バイトと無効バイトとを示すバイトイネーブル信号を用いて更新する。そして、更新後のリードデータをライトする。
無効バイト情報マスク部103は、バスマスタ120から受信したメモリアクセス要求のアドレス情報の一つであるマスタ識別子に基づいて、次に発行するライトバーストは無効バイトのライトが許容されるか判定する。例えば、あるメモリ領域に最初にデータをライトすることが決まっているなど、システムとして無効バイトのライトが許容されているバスマスタが存在する。無効バイトのライトが許容されるバスマスタからのメモリアクセス要求であることを、マスタ識別子が示す場合、DRAMコマンド生成部101に無効バイト情報信号を無視するように無効バイト情報マスク信号をアサートする。
DRAMコマンド生成部101は、バスマスタ120から受信したメモリアクセス要求がメモリへのライトであり、無効バイト情報マスク信号がデアサートされている場合、無効バイト情報信号に基づいてWRコマンドとMWRコマンドのいずれかを生成する。DRAMコマンド生成部101は、無効バイト情報信号がデアサートされている場合はWRコマンドを、アサートされている場合はMWRコマンドを生成する。また、無効バイト情報マスク信号がアサートされている場合、DRAMコマンド生成部101は無効バイト情報信号に関わらず、WRコマンドを生成する。本実施形態で例として挙げているLPDDR4のDRAMでは、WRコマンドを受けると全データ有効データ扱いとなる。ライトデータに無効データが含まれていても、無効バイト情報マスク信号によりWRコマンドをLPDDR4のDRAMが受けた場合は、既存データが無効データで上書きされることになる。
図2は第一の実施形態における無効バイト情報マスク部103の構成図である。レジスタには、無効バイトのライトを許容するバスマスタを示す、無効バイトライト許容マスタ識別子0〜Nまでが設定されている。無効バイト情報マスク部103は、バスマスタ120から受信するメモリアクセス要求に付与される発行元を示すマスタ識別子と、レジスタに設定された無効バイトライト許容マスタ識別子を比較する。無効バイトライト許容マスタ識別子は、無効バイトのライトが許容されるバスマスタの識別を示し、いずれかの無効バイトライト許容マスタ識別子と一致した場合は無効バイト情報マスク信号をアサートする。
図3は本実施形態における無効バイトのライトが許容されない場合の挙動を示す波形図である。メモリは、無効バイトをメモリにライトしないようにバースト単位でのデータマスク制御(リードモディファイライト)を実行する。無効バイトによって既にメモリに格納されているデータを上書きしない。本波形図では、WRコマンドとWRコマンドの間はtCCD(=8DRAMクロックサイクル)、WR/MWRとMWRコマンドの間はtCCDMW(=32DRAMクロックサイクル)のペナルティがあるものとする。次ライトバーストREADYは発行すべきメモリライトアクセス要求が存在するかを示し、次ライトバーストREADYがアサートされ、かつ、先行するDRAMコマンドとのタイミング制約を満たす場合にWR/MWRコマンドを発行する。T2でDRAMコマンド生成部101は次ライトバーストREADYがアサートされたことを検出し、無効バイト情報信号と無効バイト情報マスク信号に基づいてWRコマンドとMWRコマンドの選択を開始する。T2では無効バイト情報マスク信号と無効バイト情報信号がともにデアサートされているため、WRコマンドを選択する。次に、先行して発行したDRAMコマンドとのタイミング制約を満たすようにWRコマンドの発行開始タイミングを調整する。本波形図では先行するDRAMコマンドがないものとし、T2からWRコマンドの発行を開始する。T6でDRAMコマンド生成部101は次ライトバーストREADYがアサートされたことを検出する。T6では無効バイト情報マスク信号がデアサート、かつ、無効バイトがアサートされているため、MWRコマンドを選択する。しかし、先行するWRコマンドとのタイミング制約であるtCCDMWを満たさなければいけないため、T34からMWRコマンドの発行を開始することになってしまう。
図4は本実施形態における無効バイトのライトが許容される場合の挙動を示す波形図である。本波形図では、WRコマンドとWRコマンドの間はtCCD(=8DRAMクロックサイクル)、WR/MWRとMWRコマンドの間はtCCDMW(=32DRAMクロックサイクル)のペナルティがあるものとする。次ライトバーストREADYは発行すべきメモリライトアクセス要求が存在するかを示し、次ライトバーストREADYがアサートされ、かつ、先行するDRAMコマンドとのタイミング制約を満たす場合にWR/MWRコマンドを発行する。T2でDRAMコマンド生成部101は次ライトバーストREADYがアサートされたことを検出し、無効バイト情報信号と無効バイト情報マスク信号に基づいてWRコマンドとMWRコマンドの選択を開始する。T2では無効バイト情報マスク信号と無効バイト情報信号がともにデアサートされているため、WRコマンドを選択する。次に、先行して発行したDRAMコマンドとのタイミング制約を満たすようにWRコマンドの発行開始タイミングを調整する。本波形図では先行するDRAMコマンドがないものとし、T2からWRコマンドの発行を開始する。T6でDRAMコマンド生成部101は次ライトバーストREADYがアサートされたことを検出する。T6では無効バイト情報マスク信号がアサートされているため、無効バイト情報信号に関わらず、WRコマンドを選択する。そして、先行するWRコマンドとのタイミング制約であるtCCDを満たすように、T10からWRコマンドの発行を開始することが可能である。
このように、無効バイトのライトが許容されるバスマスタからのメモリアクセス要求の場合には、ライトデータに無効データが含まれていても、無効バイト情報マスク信号をアサートする。そして、MWRコマンドではなくWRコマンドを生成することにより、MWRコマンドを発行することによる時間ペナルティによる性能低下を抑制する。メモリ(例えばLPDDR4)側では、既存データが無効データで上書きされることになる。
[実施形態2]
実施形態2は、実施形態1における無効バイト情報マスク部103を異なる形態にしたものである。その他の構成は、実施形態1と同じなので省略する。図5は、第二の実施形態における無効バイト情報マスク部103の構成図である。無効バイト情報マスク部103は、バスマスタ120から受信するメモリアクセス要求の宛先アドレスと、レジスタに設定された無効バイトライト許容アドレス領域を比較する。無効バイトライト許容アドレス領域は、無効バイトのライトが許容されるメモリデバイス110のアドレス領域を示し、メモリアクセス要求の宛先がいずれかの無効バイトライト許容アドレス領域宛である場合は無効バイト情報マスク信号をアサートする。
実施形態2は、実施形態1における無効バイト情報マスク部103を異なる形態にしたものである。その他の構成は、実施形態1と同じなので省略する。図5は、第二の実施形態における無効バイト情報マスク部103の構成図である。無効バイト情報マスク部103は、バスマスタ120から受信するメモリアクセス要求の宛先アドレスと、レジスタに設定された無効バイトライト許容アドレス領域を比較する。無効バイトライト許容アドレス領域は、無効バイトのライトが許容されるメモリデバイス110のアドレス領域を示し、メモリアクセス要求の宛先がいずれかの無効バイトライト許容アドレス領域宛である場合は無効バイト情報マスク信号をアサートする。
[実施形態3]
実施形態3は、実施形態1と実施形態2における無効バイト情報マスク部103を異なる形態にしたものである。その他の構成は、実施形態1と同じなので省略する。
実施形態3は、実施形態1と実施形態2における無効バイト情報マスク部103を異なる形態にしたものである。その他の構成は、実施形態1と同じなので省略する。
図6は、第三の実施形態における無効バイト情報マスク部103の構成図である。無効バイト情報マスク部103は、バスマスタ120から受信するメモリアクセス要求のマスタ識別子および宛先アドレスを、レジスタに設定された無効バイトライト許容マスタ識別子および無効バイトライト許容アドレス領域と比較する。宛先アドレスがいずれかの無効バイトライト許容アドレス領域宛であり、かつ、マスタ識別子がその許容アドレス領域に対応した無効バイトライト許容マスタ識別子と一致した場合は無効バイト情報マスク信号をアサートする。
無効バイトのライトは、ある一連のデータ処理において、データを最初にメモリデバイス110にライトする場合などに許容される。ある処理を開始する際、使用するメモリ領域へ最初のライトを実行する前から存在しているデータは無用なので、無効バイトのライトが許容される。一連のデータ処理において、最初にライトするマスタが決まっている場合は実施形態1、最初にライトするアドレス領域が決まっている場合は実施形態2を適用できる。また、データ処理毎にアドレス領域が分かれており、それぞれの領域で最初にライトするマスタが決まっている場合は実施形態3を適用できる。
実施形態1から実施形態3では、無効バイト情報マスク部103をメモリコントローラ100の回路として説明したが、メモリコントローラ100の外部にあっても構わない。メモリコントローラ100の外部に存在する無効バイト情報マスク部103が生成する無効バイト情報マスク信号を無効バイトライト信号としてメモリコントローラ100に入力してもよい。または、無効バイト情報マスク信号の値をメモリコントローラ100内の無効バイトライト許容レジスタに設定してもよい。DRAMコマンド生成部101は、メモリコントローラ外部から入力される無効バイトライト許容信号、または、無効バイトライト許容レジスタの設定値と、無効バイト情報信号により、DRAMコマンドを生成する。
また、実施形態1から実施形態3には明記していないが、ECC(Error detection and correction)と組み合わせて使用してもよい。無効バイトのライトが許容されると判定した場合、メモリのバーストアクセス内の全バイトを有効バイトとして計算したECCデータもWRコマンドを使用してメモリデバイス110に書き込む。これは、MWRコマンドのペナルティだけでなく、メモリへのライト発行後のECCデータを正しく計算するためにメモリコントローラ100が一度DRAMから全データをリードすることを不要にし、ECCデータの計算による性能低下も抑制することができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 メモリコントローラ
101 DRAMコマンド生成部
102 無効バイト検出部
103 無効バイト情報マスク部
110 メモリデバイス
120 バスマスタ
101 DRAMコマンド生成部
102 無効バイト検出部
103 無効バイト情報マスク部
110 メモリデバイス
120 バスマスタ
Claims (6)
- バースト単位でのリードモディファイライトを行うメモリへのライトアクセスに対し、ライトアクセスを行うアドレスに存在するデータを含むようにバースト単位でリードしたリードデータの一部のバイトを、ライトアクセスする対象のライトデータの有効バイトと無効バイトとを示すバイトイネーブル信号を用いて更新して更新後のリードデータをライトする第一のライトコマンドを発行するメモリコントローラであって、
前記ライトデータから前記バイトイネーブル信号を用いて無効バイトの有無を検出する検出手段と、
無効バイトの前記メモリへのライトが許容されるかを判定する判定手段と、
前記検出手段で無効バイトが有ることが検出され、前記判定手段で無効バイトのライトが許容されると判定された場合に、前記ライトデータを、無効バイトを含めてライトする第二のライトコマンドを発行し、前記検出手段で無効バイトが有ることが検出され、前記判定手段で無効バイトのライトが許容されないと判定された場合に、前記第一のライトコマンドを発行する発行手段と、
を備えることを特徴とするメモリコントローラ。 - 前記判定手段では、前記ライトアクセスの発行元を示すマスタ識別子に基づいて判定を行うことを特徴とする請求項1に記載のメモリコントローラ。
- 前記判定手段では、前記ライトアクセスのアドレスに基づいて判定を行うことを特徴とする請求項1に記載のメモリコントローラ。
- 前記判定手段では、外部から入力される無効バイトライト許容信号に基づいて判定を行うことを特徴とする請求項1に記載のメモリコントローラ。
- 前記判定手段では、レジスタの設定値に基づいて判定を行うことを特徴とする請求項1に記載のメモリコントローラ。
- バースト単位でのリードモディファイライトを行うメモリへのライトアクセスに対し、ライトアクセスを行うアドレスに存在するデータを含むようにバースト単位でリードしたリードデータの一部のバイトを、ライトアクセスする対象のライトデータの有効バイトと無効バイトとを示すバイトイネーブル信号を用いて更新して更新後のリードデータをライトする第一のライトコマンドを発行するメモリコントローラの制御方法であって、
前記ライトデータから前記バイトイネーブル信号を用いて無効バイトの有無を検出する検出工程と、
無効バイトの前記メモリへのライトが許容されるかを判定する判定工程と、
前記検出手段で無効バイトが有ることが検出され、前記判定手段で無効バイトのライトが許容されると判定された場合に、前記ライトデータを、無効バイトを含めてライトする第二のライトコマンドを発行し、前記検出手段で無効バイトが有ることが検出され、前記判定手段で無効バイトのライトが許容されないと判定された場合に、前記第一のライトコマンドを発行する発行工程と、
を備えることを特徴とするメモリコントローラの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017074832A JP2018180656A (ja) | 2017-04-04 | 2017-04-04 | メモリコントローラとその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017074832A JP2018180656A (ja) | 2017-04-04 | 2017-04-04 | メモリコントローラとその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018180656A true JP2018180656A (ja) | 2018-11-15 |
Family
ID=64275512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017074832A Withdrawn JP2018180656A (ja) | 2017-04-04 | 2017-04-04 | メモリコントローラとその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018180656A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021039447A (ja) * | 2019-08-30 | 2021-03-11 | キヤノン株式会社 | メモリコントローラおよびメモリコントローラで実施される方法 |
US11385963B1 (en) * | 2021-02-24 | 2022-07-12 | Western Digital Technologies, Inc. | Usage of data mask in DRAM write |
-
2017
- 2017-04-04 JP JP2017074832A patent/JP2018180656A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021039447A (ja) * | 2019-08-30 | 2021-03-11 | キヤノン株式会社 | メモリコントローラおよびメモリコントローラで実施される方法 |
US11842079B2 (en) | 2019-08-30 | 2023-12-12 | Canon Kabushiki Kaisha | Memory controller and memory control method that decides an order of issuing dram commands based on whether a command has a penalty period |
US11385963B1 (en) * | 2021-02-24 | 2022-07-12 | Western Digital Technologies, Inc. | Usage of data mask in DRAM write |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
US10860486B2 (en) | Semiconductor device, control system, and control method of semiconductor device | |
JP2005235182A (ja) | 不揮発性メモリを制御するためのコントローラ | |
US7380076B2 (en) | Information processing apparatus and method of accessing memory | |
US10725698B2 (en) | Memory controller and control method thereof | |
US8547760B2 (en) | Memory access alignment in a double data rate (‘DDR’) system | |
KR20140035772A (ko) | 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법 | |
JP2009289170A (ja) | データ処理装置、メモリコントローラ及びそのアクセス制御方法 | |
JP2018180656A (ja) | メモリコントローラとその制御方法 | |
US9081657B2 (en) | Apparatus and method for abstract memory addressing | |
US9256556B2 (en) | RAM memory device capable of simultaneously accepting multiple accesses | |
JP2016143422A (ja) | シリアルデバイスの構成 | |
US8065449B2 (en) | DMA device having plural buffers storing transfer request information and DMA transfer method | |
US11237762B2 (en) | Information writing method and apparatus | |
US7761280B2 (en) | Data processing apparatus simulation by generating anticipated timing information for bus data transfers | |
US10127107B2 (en) | Method for performing data transaction that selectively enables memory bank cuts and memory device therefor | |
US20020169930A1 (en) | Memory access control system, method thereof and host bridge | |
US20110314211A1 (en) | Recover store data merging | |
JP6089492B2 (ja) | システム制御装置、情報処理システム、システム制御装置の制御方法およびシステム制御装置の制御プログラム | |
CN113836050A (zh) | 访存控制方法、装置、设备及可读存储介质 | |
JPH07141174A (ja) | レジスタ装置 | |
JPH0512121A (ja) | データ処理装置 | |
JP2016001380A (ja) | 電子制御装置 | |
JP2008217062A (ja) | 省電力システム | |
JPH05265942A (ja) | Dma制御部におけるデータ入出力方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200327 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20200714 |