JP2017516228A - 自己書き換えコードのハードウェアサポートを提供する方法及び装置 - Google Patents

自己書き換えコードのハードウェアサポートを提供する方法及び装置 Download PDF

Info

Publication number
JP2017516228A
JP2017516228A JP2016567579A JP2016567579A JP2017516228A JP 2017516228 A JP2017516228 A JP 2017516228A JP 2016567579 A JP2016567579 A JP 2016567579A JP 2016567579 A JP2016567579 A JP 2016567579A JP 2017516228 A JP2017516228 A JP 2017516228A
Authority
JP
Japan
Prior art keywords
code
guest
cache
hardware buffer
processor
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
JP2016567579A
Other languages
English (en)
Japanese (ja)
Other versions
JP2017516228A5 (enExample
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2017516228A publication Critical patent/JP2017516228A/ja
Publication of JP2017516228A5 publication Critical patent/JP2017516228A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/45525Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
JP2016567579A 2014-05-12 2015-05-12 自己書き換えコードのハードウェアサポートを提供する方法及び装置 Pending JP2017516228A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461991951P 2014-05-12 2014-05-12
US61/991,951 2014-05-12
PCT/US2015/030411 WO2015175555A1 (en) 2014-05-12 2015-05-12 Method and apparatus for providing hardware support for self-modifying code

Publications (2)

Publication Number Publication Date
JP2017516228A true JP2017516228A (ja) 2017-06-15
JP2017516228A5 JP2017516228A5 (enExample) 2018-06-21

Family

ID=54367921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016567579A Pending JP2017516228A (ja) 2014-05-12 2015-05-12 自己書き換えコードのハードウェアサポートを提供する方法及び装置

Country Status (6)

Country Link
US (1) US9946538B2 (enExample)
EP (1) EP3143496B1 (enExample)
JP (1) JP2017516228A (enExample)
KR (1) KR101963725B1 (enExample)
CN (1) CN106796506B (enExample)
WO (1) WO2015175555A1 (enExample)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281116A1 (en) 2013-03-15 2014-09-18 Soft Machines, Inc. Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits
US9436476B2 (en) 2013-03-15 2016-09-06 Soft Machines Inc. Method and apparatus for sorting elements in hardware structures
US9582322B2 (en) 2013-03-15 2017-02-28 Soft Machines Inc. Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping
US9627038B2 (en) 2013-03-15 2017-04-18 Intel Corporation Multiport memory cell having improved density area
CN104679480A (zh) * 2013-11-27 2015-06-03 上海芯豪微电子有限公司 一种指令集转换系统和方法
US9946538B2 (en) 2014-05-12 2018-04-17 Intel Corporation Method and apparatus for providing hardware support for self-modifying code
JP6234640B2 (ja) * 2015-05-28 2017-11-22 三菱電機株式会社 シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
CN106919367B (zh) * 2016-04-20 2019-05-07 上海兆芯集成电路有限公司 侦测自修正程序码的处理器与方法
CN106933537B (zh) * 2016-04-20 2019-03-08 上海兆芯集成电路有限公司 侦测自修正程序码的处理器与方法
US9798675B1 (en) * 2016-04-20 2017-10-24 Via Alliance Semiconductor Co., Ltd. System and method of determining memory ownership on cache line basis for detecting self-modifying code including code with looping instructions
CN106933538B (zh) * 2016-04-20 2019-03-01 上海兆芯集成电路有限公司 侦测自修正程序码的处理器与方法
US11280645B2 (en) * 2018-02-02 2022-03-22 Analog Devices International Unlimited Company Measurement system
CN109890082B (zh) * 2019-03-08 2022-05-24 中国航空工业集团公司洛阳电光设备研究所 一种时间触发的tt帧报文传输方法
CN114416450B (zh) * 2022-01-18 2022-09-27 深圳市百泰实业股份有限公司 一种pcba生产测试管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006244516A (ja) * 1999-10-13 2006-09-14 Transmeta Corp 微細粒度変換判別方法及び装置
JP2011040087A (ja) * 1999-01-28 2011-02-24 Ati Technologies Ulc コンピュータのメモリを参照する方法およびコンピュータ
US20120198157A1 (en) * 2011-01-27 2012-08-02 Soft Machines, Inc. Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
US20120198122A1 (en) * 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053952A (en) 1987-06-05 1991-10-01 Wisc Technologies, Inc. Stack-memory-based writable instruction set computer having a single data bus
US5630157A (en) 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
US5265260A (en) 1991-06-26 1993-11-23 International Business Machines Corporation High performance sort hardware for a database accelerator in a data processing system
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5826055A (en) 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
EP0638183B1 (en) 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
IL110181A (en) 1994-06-30 1998-02-08 Softchip Israel Ltd Install microprocessor and peripherals
US5644742A (en) 1995-02-14 1997-07-01 Hal Computer Systems, Inc. Processor structure and method for a time-out checkpoint
US5751982A (en) 1995-03-31 1998-05-12 Apple Computer, Inc. Software emulation system with dynamic translation of emulated instructions for increased processing speed
US5870584A (en) 1995-09-20 1999-02-09 Fore Systems, Inc. Method and apparatus for sorting elements
US5826073A (en) * 1995-10-06 1998-10-20 Advanced Micro Devices, Inc. Self-modifying code handling system
US5784638A (en) 1996-02-22 1998-07-21 International Business Machines Corporation Computer system supporting control transfers between two architectures
US5892934A (en) 1996-04-02 1999-04-06 Advanced Micro Devices, Inc. Microprocessor configured to detect a branch to a DSP routine and to direct a DSP to execute said routine
KR19990076967A (ko) 1996-11-04 1999-10-25 요트.게.아. 롤페즈 처리 장치 및 메모리내의 명령 판독
US5905876A (en) 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
US6049868A (en) 1997-06-25 2000-04-11 Sun Microsystems, Inc. Apparatus for delivering precise traps and interrupts in an out-of-order processor
US6052777A (en) 1997-06-25 2000-04-18 Sun Microsystems, Inc. Method for delivering precise traps and interrupts in an out-of-order processor
JPH1124929A (ja) 1997-06-30 1999-01-29 Sony Corp 演算処理装置およびその方法
US5870575A (en) 1997-09-22 1999-02-09 International Business Machines Corporation Indirect unconditional branches in data processing system emulation mode
US6061785A (en) 1998-02-17 2000-05-09 International Business Machines Corporation Data processing system having an apparatus for out-of-order register operations and method therefor
US6167508A (en) 1998-06-02 2000-12-26 Compaq Computer Corporation Register scoreboard logic with register read availability signal to reduce instruction issue arbitration latency
US6412067B1 (en) 1998-08-11 2002-06-25 Intel Corporation Backing out of a processor architectural state
US8127121B2 (en) * 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6385676B1 (en) 1999-07-12 2002-05-07 Hewlett-Packard Company Coherent ordering queue for computer system
US6557095B1 (en) 1999-12-27 2003-04-29 Intel Corporation Scheduling operations using a dependency matrix
US6615300B1 (en) 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US6711672B1 (en) 2000-09-22 2004-03-23 Vmware, Inc. Method and system for implementing subroutine calls and returns in binary translation sub-systems of computers
US6826681B2 (en) 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US6851011B2 (en) 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
US6964043B2 (en) 2001-10-30 2005-11-08 Intel Corporation Method, apparatus, and system to optimize frequently executed code and to use compiler transformation and hardware support to handle infrequently executed code
US20030115578A1 (en) * 2001-12-18 2003-06-19 Igor Liokumovich PC platform simulation system employing efficient memory access simulation in a direct execution environment
US6813704B1 (en) 2001-12-20 2004-11-02 Lsi Logic Corporation Changing instruction order by reassigning only tags in order tag field in instruction queue
US6898699B2 (en) 2001-12-21 2005-05-24 Intel Corporation Return address stack including speculative return address buffer with back pointers
US7032101B2 (en) 2002-02-26 2006-04-18 International Business Machines Corporation Method and apparatus for prioritized instruction issue queue in a processor
US7113510B2 (en) 2002-03-01 2006-09-26 Xinming Allen Lin Hardware self-sorting scheduling queue
US6779092B2 (en) 2002-05-15 2004-08-17 Hewlett-Packard Development Company, L.P. Reordering requests for access to subdivided resource
US7127592B2 (en) 2003-01-08 2006-10-24 Sun Microsystems, Inc. Method and apparatus for dynamically allocating registers in a windowed architecture
GB0309056D0 (en) 2003-04-22 2003-05-28 Transitive Technologies Ltd Block translation optimizations for program code conversion
US7536682B2 (en) 2003-04-22 2009-05-19 International Business Machines Corporation Method and apparatus for performing interpreter optimizations during program code conversion
JP4186768B2 (ja) 2003-09-16 2008-11-26 沖電気工業株式会社 マルチポート半導体メモリ
US7096345B1 (en) 2003-09-26 2006-08-22 Marvell International Ltd. Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof
US7373637B2 (en) 2003-09-30 2008-05-13 International Business Machines Corporation Method and apparatus for counting instruction and memory location ranges
US7290253B1 (en) 2003-09-30 2007-10-30 Vmware, Inc. Prediction mechanism for subroutine returns in binary translation sub-systems of computers
US7315935B1 (en) 2003-10-06 2008-01-01 Advanced Micro Devices, Inc. Apparatus and method for port arbitration in a register file on the basis of functional unit issue slots
US7441101B1 (en) 2003-12-10 2008-10-21 Cisco Technology, Inc. Thread-aware instruction fetching in a multithreaded embedded processor
US7434031B1 (en) 2004-04-12 2008-10-07 Sun Microsystems, Inc. Execution displacement read-write alias prediction
US8443171B2 (en) 2004-07-30 2013-05-14 Hewlett-Packard Development Company, L.P. Run-time updating of prediction hint instructions
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US8195922B2 (en) 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US7461237B2 (en) 2005-04-20 2008-12-02 Sun Microsystems, Inc. Method and apparatus for suppressing duplicative prefetches for branch target cache lines
JP4912016B2 (ja) 2005-05-23 2012-04-04 ルネサスエレクトロニクス株式会社 半導体記憶装置
US20070033385A1 (en) 2005-08-02 2007-02-08 Advanced Micro Devices, Inc. Call return stack way prediction repair
US7483332B2 (en) 2005-08-11 2009-01-27 Texas Instruments Incorporated SRAM cell using separate read and write circuitry
US8024522B1 (en) 2005-09-28 2011-09-20 Oracle America, Inc. Memory ordering queue/versioning cache circuit
US20070186081A1 (en) 2006-02-06 2007-08-09 Shailender Chaudhry Supporting out-of-order issue in an execute-ahead processor
WO2007091541A1 (ja) 2006-02-08 2007-08-16 Renesas Technology Corp. 半導体記憶装置
US7478190B2 (en) 2006-02-10 2009-01-13 University Of Utah Technology Commercialization Office Microarchitectural wire management for performance and power in partitioned architectures
US20080126771A1 (en) 2006-07-25 2008-05-29 Lei Chen Branch Target Extension for an Instruction Cache
US7716460B2 (en) 2006-09-29 2010-05-11 Qualcomm Incorporated Effective use of a BHT in processor having variable length instruction set execution modes
WO2008061154A2 (en) 2006-11-14 2008-05-22 Soft Machines, Inc. Apparatus and method for processing instructions in a multi-threaded architecture using context switching
US7721076B2 (en) 2006-12-18 2010-05-18 Intel Corporation Tracking an oldest processor event using information stored in a register and queue entry
US7783869B2 (en) 2006-12-19 2010-08-24 Arm Limited Accessing branch predictions ahead of instruction fetching
TW200833002A (en) 2007-01-31 2008-08-01 Univ Nat Yunlin Sci & Tech Distributed switching circuit having fairness
US7813163B2 (en) 2007-09-05 2010-10-12 International Business Machines Corporation Single-ended read and differential write scheme
TWI346338B (en) 2007-10-23 2011-08-01 Nat Univ Tsing Hua Access unit for a static random accesss memory
US8782384B2 (en) 2007-12-20 2014-07-15 Advanced Micro Devices, Inc. Branch history with polymorphic indirect branch information
US7945764B2 (en) 2008-01-11 2011-05-17 International Business Machines Corporation Processing unit incorporating multirate execution unit
US8015362B2 (en) 2008-02-15 2011-09-06 International Business Machines Corporation Method and system for handling cache coherency for self-modifying code
TWI368165B (en) 2008-08-13 2012-07-11 Faraday Tech Corp Processor and method for recovering global history shift register and return address stack thereof
GB2463278B (en) 2008-09-05 2012-05-16 Advanced Risc Mach Ltd Scheduling control within a data processing system
US7848131B2 (en) 2008-10-19 2010-12-07 Juhan Kim High speed ferroelectric random access memory
US8074060B2 (en) 2008-11-25 2011-12-06 Via Technologies, Inc. Out-of-order execution microprocessor that selectively initiates instruction retirement early
US8219784B2 (en) 2008-12-09 2012-07-10 International Business Machines Corporation Assigning and pre-decoding group ID and tag ID prior to dispatching instructions in out-of-order processor
US8078854B2 (en) 2008-12-12 2011-12-13 Oracle America, Inc. Using register rename maps to facilitate precise exception semantics
US8332854B2 (en) 2009-05-19 2012-12-11 Microsoft Corporation Virtualized thread scheduling for hardware thread optimization based on hardware resource parameter summaries of instruction blocks in execution groups
US8799879B2 (en) * 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
US8281110B2 (en) 2009-07-15 2012-10-02 Via Technologies, Inc. Out-of-order microprocessor with separate branch information circular queue table tagged by branch instructions in reorder buffer to reduce unnecessary space in buffer
US8217813B2 (en) 2010-04-29 2012-07-10 Advanced Micro Devices, Inc. System and method for low-latency data compression/decompression
CN102262590B (zh) 2010-05-31 2014-03-26 国际商业机器公司 一种用于对硬件加速器的请求队列重排的方法和系统
US8959094B2 (en) 2010-05-28 2015-02-17 Oracle International Corporation Early return of partial sort results in a database system
US20110320784A1 (en) 2010-06-24 2011-12-29 International Business Machines Corporation Verification of processor architectures allowing for self modifying code
US20120117335A1 (en) 2010-11-10 2012-05-10 Advanced Micro Devices, Inc. Load ordering queue
US8516197B2 (en) * 2011-02-11 2013-08-20 International Business Machines Corporation Write-through cache optimized for dependence-free parallel regions
CN108376097B (zh) 2011-03-25 2022-04-15 英特尔公司 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段
US9690583B2 (en) 2011-10-03 2017-06-27 International Business Machines Corporation Exploiting an architected list-use operand indication in a computer system operand resource pool
US8984200B2 (en) * 2012-08-21 2015-03-17 Lenovo (Singapore) Pte. Ltd. Task scheduling in big and little cores
US9582322B2 (en) 2013-03-15 2017-02-28 Soft Machines Inc. Method and apparatus to avoid deadlock during instruction scheduling using dynamic port remapping
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9627038B2 (en) 2013-03-15 2017-04-18 Intel Corporation Multiport memory cell having improved density area
US20140281116A1 (en) 2013-03-15 2014-09-18 Soft Machines, Inc. Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits
CN109358948B (zh) 2013-03-15 2022-03-25 英特尔公司 用于支持推测的访客返回地址栈仿真的方法和装置
US9436476B2 (en) 2013-03-15 2016-09-06 Soft Machines Inc. Method and apparatus for sorting elements in hardware structures
US9946538B2 (en) 2014-05-12 2018-04-17 Intel Corporation Method and apparatus for providing hardware support for self-modifying code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011040087A (ja) * 1999-01-28 2011-02-24 Ati Technologies Ulc コンピュータのメモリを参照する方法およびコンピュータ
JP2006244516A (ja) * 1999-10-13 2006-09-14 Transmeta Corp 微細粒度変換判別方法及び装置
US20120198157A1 (en) * 2011-01-27 2012-08-02 Soft Machines, Inc. Guest instruction to native instruction range based mapping using a conversion look aside buffer of a processor
US20120198122A1 (en) * 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中島康彦、上埜治彦、田尻邦彦、鈴木貴朗: "動的命令変換手法によるMアーキテクチャ・エミュレーション", 情報処理学会論文誌, vol. 第38巻,第11号, JPN6019013440, 15 November 1987 (1987-11-15), JP, pages 2309 - 2320, ISSN: 0004018375 *

Also Published As

Publication number Publication date
EP3143496A1 (en) 2017-03-22
CN106796506B (zh) 2019-09-27
KR101963725B1 (ko) 2019-04-01
WO2015175555A1 (en) 2015-11-19
US20150324213A1 (en) 2015-11-12
CN106796506A (zh) 2017-05-31
EP3143496B1 (en) 2021-07-14
US9946538B2 (en) 2018-04-17
KR20160145696A (ko) 2016-12-20
EP3143496A4 (en) 2018-01-24

Similar Documents

Publication Publication Date Title
JP2017516228A (ja) 自己書き換えコードのハードウェアサポートを提供する方法及び装置
US9858192B2 (en) Cross-page prefetching method, apparatus, and system
US10802987B2 (en) Computer processor employing cache memory storing backless cache lines
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
KR101587361B1 (ko) 다수의 순차적 어드레스 변환들을 위한 통합된 tlb 구조
US9645941B2 (en) Collapsed address translation with multiple page sizes
CN104346294B (zh) 基于多级缓存的数据读/写方法、装置和计算机系统
US10884751B2 (en) Method and apparatus for virtualizing the micro-op cache
JP7443344B2 (ja) 外部メモリベースのトランスレーションルックアサイドバッファ
US9268694B2 (en) Maintenance of cache and tags in a translation lookaside buffer
US20150089150A1 (en) Translation Bypass In Multi-Stage Address Translation
JP2020529656A (ja) アドレス変換キャッシュ
JP2018504694A5 (enExample)
US11403222B2 (en) Cache structure using a logical directory
CN105446898B (zh) 用于数据处理的装置及方法
CN110941565A (zh) 用于芯片存储访问的内存管理方法和装置
US11474953B2 (en) Configuration cache for the ARM SMMUv3

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170512

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180509

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180509

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191112