JP6966568B2 - 情報処理システム及び情報処理システムによる情報処理方法 - Google Patents

情報処理システム及び情報処理システムによる情報処理方法 Download PDF

Info

Publication number
JP6966568B2
JP6966568B2 JP2019553644A JP2019553644A JP6966568B2 JP 6966568 B2 JP6966568 B2 JP 6966568B2 JP 2019553644 A JP2019553644 A JP 2019553644A JP 2019553644 A JP2019553644 A JP 2019553644A JP 6966568 B2 JP6966568 B2 JP 6966568B2
Authority
JP
Japan
Prior art keywords
terminal
data
register
information processing
address
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
JP2019553644A
Other languages
English (en)
Other versions
JPWO2019097693A1 (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.)
Mitsubishi Heavy Industries Machinery Systems Co Ltd
Original Assignee
Mitsubishi Heavy Industries Machinery Systems Co 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 Mitsubishi Heavy Industries Machinery Systems Co Ltd filed Critical Mitsubishi Heavy Industries Machinery Systems Co Ltd
Publication of JPWO2019097693A1 publication Critical patent/JPWO2019097693A1/ja
Application granted granted Critical
Publication of JP6966568B2 publication Critical patent/JP6966568B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理システム及び情報処理システムによる情報処理方法に関する。
カーナビゲーションシステムやゲーム機などのさまざまな情報処理システムでは、その情報処理システムの起動操作が行われた直後に、その情報処理システムを利用したいという利用者からの要求がある。そのため、情報処理システムを、所定の状態(例えば、工場出荷時の状態や装置の電源を落とす直前の状態など)で直ちに起動させたい場合がある。
特許文献1には、関連する技術として、システムの中断前の揮発性メモリの記憶状態、周辺デバイスのレジスタ値、及び、プロセッサのレジスタ値を表すデータを不揮発性メモリに格納し、システムの起動時にOS(Operating System)はカーネル機能によって不揮発性メモリに格納したデータを用いてシステムの中断前の状態を再現することで、情報処理システムを直ちに初期化する技術が記載されている。
特開2015−156205号公報
ところで、情報処理システムにおいて使用される周辺デバイスには、情報処理システムが起動する際に、スナップショットイメージ情報を含むデータがメインメモリに書き込まれることで、起動後に所定の状態で直ちに動作できる状態に初期化される周辺デバイスと、レジスタを備え、起動後にそのレジスタの初期設定が行われるまで動作できる状態に初期化されない周辺デバイスとがある。なお、スナップショットイメージ情報とは、工場出荷時の状態や装置の電源を落とす直前の状態などの所定の状態を示す情報であり、不揮発性メモリに記憶させておくことで、情報処理システムがシャットダウンした場合であっても、失われない情報である。情報処理システムがシャットダウンし、起動すると、レジスタを備える周辺デバイスのレジスタの値は、いわゆる不定状態となる。したがって、初期設定を示す初期設定データがレジスタに書き込まれるまで、すなわち初期化されるまで、レジスタを備える周辺デバイスは、動作することができない。つまり、レジスタを備える周辺デバイスが初期化されないため、情報処理システムでは、レジスタを備える周辺デバイスを起動後に直ちに使用することができない。
そのため、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することのできる技術が求められている。
本発明は、上記の課題を解決することのできる情報処理システム及び情報処理システムによる情報処理方法を提供することを目的としている。
本発明の第1の態様によれば、情報処理システム(1)は、アドレスと、前記アドレスへデータを書き込むことを指示する書込み指示信号または前記アドレスからデータを読み出すことを指示する読出し指示信号とをセレクタ(70)に出力するCPU(Central Processing Unit)(20)と、前記アドレス、前記書込み指示信号及び前記読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成された前記セレクタと、前記セレクタが出力する信号に基づいて、情報処理システムが起動する際に、スナップショットイメージ情報とレジスタを備える非標準デバイス(40)の初期設定データとを含むデータを記憶する揮発性メモリ(50)と、前記揮発性メモリが前記初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有する前記レジスタ(401)と、を備える。
情報処理システムは、情報処理システムが起動する際に、スナップショットイメージ情報とレジスタを備える非標準デバイスの初期設定データとを含むデータを、レジスタのアドレスと同一のアドレスの揮発性メモリのメモリ領域へ書き込む処理を行う。こうすることで、情報処理システムが起動する際に、揮発性メモリにおいてスナップショットイメージ情報が再現されると同時に、レジスタに初期設定データが書き込まれる。したがって、スナップショットイメージ情報が揮発性メモリに書き込まれ、標準デバイスが動作可能な状態になるのとほぼ同時に、非標準デバイスは、動作可能な状態となる。
このように、情報処理システムによって、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することができる。
本発明の第2の態様によれば、第1の態様における情報処理システムにおいて、前記セレクタは、前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記書込み指示信号が入力された場合、前記同一のアドレスを前記揮発性メモリと前記レジスタとに出力し、前記揮発性メモリと前記レジスタの両方に対して書込みデータを出力するものであってもよい。
情報処理システムは、揮発性メモリとレジスタの両方に、アドレスと書込みデータとを入力する。そのため、情報処理システムは、揮発性メモリとレジスタのそれぞれにおいて同一のアドレスを示すメモリ領域に同一の書込みデータが書き込む。こうすることで、情報処理システムは、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
本発明の第3の態様によれば、第1の態様または第2の態様における情報処理システムにおいて、前記セレクタは、前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記読出し指示信号が入力された場合、前記同一のアドレスを前記レジスタに出力し、前記レジスタから読出しデータを取得し、前記書込み指示信号と、前記レジスタから取得した読出しデータとを前記揮発性メモリに出力するものであってもよい。
情報処理システムは、揮発性メモリとレジスタの両方に共通するアドレスからデータを読み出す場合、レジスタから書込みデータを取得する。そして、情報処理システムは、レジスタから取得した読出しデータに対応するアドレスと同一のアドレスの揮発性メモリのメモリ領域に読出しデータを書き込む。こうすることで、情報処理システムは、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
本発明の第4の態様によれば、第1の態様または第2の態様における情報処理システムにおいて、前記セレクタは、前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記読出し指示信号が入力された場合、前記同一のアドレスを前記揮発性メモリに出力し、前記揮発性メモリから読出しデータを取得し、前記書込み指示信号と、前記揮発性メモリから取得した読出しデータとを前記レジスタに出力するものであってもよい。
情報処理システムは、揮発性メモリとレジスタの両方に共通するアドレスからデータを読み出す場合、揮発性メモリから書込みデータを取得する。そして、情報処理システムは、揮発性メモリから取得した読出しデータに対応するアドレスと同一のアドレスのレジスタのメモリ領域に読出しデータを書き込む。こうすることで、情報処理システムは、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
本発明の第5の態様によれば、情報処理システムによる情報処理方法は、CPU、アドレス、書込み指示信号及び読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成されたセレクタ、揮発性メモリ、及び前記揮発性メモリがレジスタを備える非標準デバイスの初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有するレジスタ、を有する情報処理システムによる情報処理方法であって、前記CPUは、前記アドレスと、前記アドレスへデータを書き込むことを指示する前記書込み指示信号または前記アドレスからデータを読み出すことを指示する前記読出し指示信号とを前記セレクタに出力し、前記揮発性メモリは、前記セレクタが出力する信号に基づいて、前記情報処理システムが起動する際に、スナップショットイメージ情報と前記初期設定データとを含むデータを記憶する。
情報処理システムによる情報処理方法は、揮発性メモリとレジスタの両方に共通するアドレスからデータを読み出す場合、レジスタから書込みデータを取得する。そして、情報処理システムによる情報処理方法は、レジスタから取得した読出しデータに対応するアドレスと同一のアドレスの揮発性メモリのメモリ領域に読出しデータを書き込む。こうすることで、情報処理システムによる情報処理方法は、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
本発明の実施形態による情報処理システム及び情報処理方法によれば、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することができる。
本発明の一実施形態による情報処理システムの構成を説明するための第1の図である。 本発明の一実施形態による情報処理システムの構成を説明するための第2の図である。 本発明の一実施形態による情報処理システムの処理を説明するための図である。 本発明の一実施形態による情報処理システムの処理フローを示す第1の図である。 本発明の一実施形態による情報処理システムの処理フローを示す第2の図である。 本発明の一実施形態による情報処理システムの処理フローを示す第3の図である。 本発明の一実施形態による情報処理システムの処理フローを示す第4の図である。 少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
<実施形態>
(情報処理システムの構成)
以下、本発明の一実施形態による情報処理システムの構成について説明する。
本発明の一実施形態による情報処理システム1は、図1に示すように、電源10、CPU(Central Processing Unit)20、標準デバイス30、非標準デバイス40(レジスタを備える周辺デバイスの一例)、メモリ50(揮発性メモリの一例)、ストレージ60、セレクタ70を備える。
情報処理システム1は、非標準デバイス40が備えるレジスタと同一のアドレスで1対1で対応するメモリ領域をメモリ50において予め確保し、それらの1対1で対応するメモリ領域のデータを同期させるシステムである。これにより、情報処理システム1は、起動する際にも、スナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータがメインメモリに書き込まれることによって初期化される周辺デバイスとほぼ同タイミングに、レジスタを備える周辺デバイスを初期化することができる。スナップショットイメージ情報とは、不揮発性メモリに記憶される情報処理システム1の中断の直前や工場出荷時などの所定の状態を示すデータのことである。初期化とは、各周辺デバイスを動作可能な状態に設定することである。高速起動とは、情報処理システム1が起動を開始し、スナップショットイメージ情報を含むデータがメインメモリに書き込まれることによって、工場出荷時の状態や装置の電源を落とす直前の状態などの所定の状態で情報処理システム1を起動させることである。情報処理システム1が高速起動し、レジスタを備える周辺デバイスを初期化することにより、利用者は、情報処理システム1を起動直後に所定の状態から使用を開始することができる。
電源10は、図1に示すように、CPU20、標準デバイス30、非標準デバイス40、メモリ50、ストレージ60、セレクタ70のそれぞれに電力を供給する。
標準デバイス30は、スナップショットイメージ情報を含むデータがメインメモリに書き込まれることによって初期化される周辺デバイスである。標準デバイス30は、情報処理システム1において電源10が起動する際に、ブートローダによって、メモリ50にスナップショットイメージ情報を含むデータが書き込まれることで、所定の状態で高速起動することができる。所定の状態とは、情報処理システム1が処理の中断の直前や工場出荷時などの状態のことである。
非標準デバイス40は、レジスタを備える周辺デバイスである。非標準デバイス40は、初期設定を示す初期設定データがレジスタに書き込まれることで動作可能な状態になる。非標準デバイス40は、図1に示すように、レジスタ401を備える。レジスタ401は、初期設定データを保持するレジスタである。レジスタ401は、図2に示すように、reg_adr端子、reg_wreq端子、reg_wdata端子、reg_rreq端子、reg_rdata端子、reg_rvalid端子を備える。reg_adr端子は、レジスタ401についての読み出しまたは書き込み時のアドレスをCPU20から受ける端子である。reg_wreq端子は、レジスタ401へ書込みを指示する信号をCPU20から受ける端子である。reg_wdata端子は、reg_wreq端子が書込みを指示する信号を受けたときに書き込むデータをCPU20から受ける端子である。reg_rreq端子は、読出しを指示する信号をCPU20から受ける端子である。reg_rdata端子は、reg_rreq端子が読出しを指示する信号を受けたときに読み出されたデータをCPU20に出力する端子である。reg_rvalid端子は、reg_rdata端子から出力されるデータ(すなわち読み出されるデータ)を特定する信号である。
メモリ50は、CPU20が処理に用いるメインメモリである。メモリ50は、揮発性のメモリである。メモリ50とCPU20との間で高速にデータの送受信が行われる。情報処理システム1が起動する際に、メモリ50には、ストレージ60が記憶するスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータが書き込まれる。メモリ50にスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータが書き込まれることで、CPU20、標準デバイス30、非標準デバイス40、メモリ50、ストレージ60のそれぞれが動作可能となる。なお、スナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータには、書込みを示すコマンド情報と書込み先のアドレスを示す情報とが含まれている。また、メモリ50では、非標準デバイス40が備えるレジスタ401と同一のアドレスとアドレスに対応するメモリ領域が予め確保されている。メモリ50は、図2に示すように、mem_adr端子、mem_wreq端子、mem_wdata端子、mem_rreq端子、mem_rdata端子、mem_rvalid端子を備える。mem_adr端子は、メモリ50についての読み出しまたは書き込み時のアドレスをCPU20から受ける端子である。mem_wreq端子は、メモリ50へ書込みを指示する信号をCPU20から受ける端子である。mem_wdata端子は、mem_wreq端子が書込みを指示する信号を受けたときに書き込むデータをCPU20から受ける端子である。mem_rreq端子は、読出しを指示する信号をCPU20から受ける端子である。mem_rdata端子は、mem_rreq端子が読出しを指示する信号を受けたときに読み出されたデータをCPU20に出力する端子である。mem_rvalid端子は、mem_rdata端子から出力されるデータ(すなわち読み出されるデータ)を特定する信号である。
ストレージ60は、不揮発性のメモリである。ストレージ60は、起動時にメモリ50に書き込まれるスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータを記憶する。また、ストレージ60は、OS、アプリケーションプログラム、アプリケーションプログラムによって処理されたデータなどを記憶する。
(CPU20の機能)
CPU20は、セレクタ70を介して、メモリ50及びレジスタ401の少なくとも一方との間でデータの読み書きを行う。CPU20は、図2に示すように、adr端子、wreq端子、wdata端子、rreq端子、rdata端子、rvalid端子を備える。adr端子は、メモリ50及びレジスタ401の少なくとも一方についての読み出しまたは書き込み時のアドレスを出力する端子である。wreq端子は、メモリ50及びレジスタ401の少なくとも一方へ書込みを指示する信号を出力する端子である。wdata端子は、wreq端子が書込みを指示する信号を出力したときに書き込むデータを出力する端子である。rreq端子は、メモリ50及びレジスタ401の少なくとも一方へ読出しを指示する信号を出力する端子である。rdata端子は、rreq端子がメモリ50及びレジスタ401の少なくとも一方へ読出しを指示する信号を出力したときに読み出されたデータを受ける端子である。rvalid端子は、rdata端子から受けるデータ(すなわち読み出されたデータ)を特定する信号である。
(セレクタ70の構成)
セレクタ70は、図2に示すように、CPU20、メモリ50、レジスタ401のそれぞれに接続される。セレクタ70は、T1端子、T2端子、T3端子、T4端子、T5端子、T6端子、T7端子、T8端子、T9端子、T10端子、T11端子、T12端子、T13端子、T14端子、T15端子、T16端子、T17端子、T18端子を備える。T1端子は、adr端子に接続される。T2端子は、wreq端子に接続される。T3端子は、wdata端子に接続される。T4端子は、rreq端子に接続される。T5端子は、rdata端子に接続される。T6端子は、rvalid端子に接続される。T7端子は、mem_adr端子に接続される。T8端子は、mem_wreq端子に接続される。T9端子は、mem_wdataに接続される。T10端子は、mem_rreq端子に接続される。T11端子は、mem_rdata端子に接続される。T12端子は、mem_rvalid端子に接続される。T13端子は、reg_adr端子に接続される。T14端子は、wreg端子に接続される。T15端子は、reg_wdataに接続される。T16端子はreg_rreq端子に接続される。T17端子は、reg_rdata端子に接続される。T18端子は、reg_rvalid端子に接続される。
セレクタ70は、CPU20から入力される信号に応じて適切なT7〜T18端子から信号を出力するまたは信号を受けることを実現するように論理設計された、ハードウェアによって実現される回路である。
具体的には、例えば、T1端子にメモリ50とレジスタ401とが有する同一のアドレスが入力され、T2端子に書込みを指示する信号が入力された場合、セレクタ70は、T1端子に入力されたアドレスをT7端子とT13端子の両方から出力する。また、セレクタ70は、T2端子に入力された書込みを指示する信号を、T8端子とT14端子の両方から出力する。また、セレクタ70は、T3端子に入力されたデータをT9端子とT15端子の両方に出力する。
また、具体的には、例えば、T1端子にメモリ50のみが有するアドレスが入力され、T2端子に書込みを指示する信号が入力された場合、セレクタ70は、T1端子に入力されたアドレスをT7端子から出力する。また、セレクタ70は、T2端子に入力された書込みを指示する信号を、T8端子から出力する。また、セレクタ70は、T3端子に入力されたデータをT9端子に出力する。
また、具体的には、例えば、T1端子にメモリ50とレジスタ401とが有する同一のアドレスが入力され、T4端子に読出しを指示する信号が入力された場合、T1端子に入力されたアドレスは、T7端子とT13端子とから出力される。T4端子に入力された読出しを指示する信号は、T16端子から出力される。また、T17端子はレジスタ401に接続され、データを取得する。T9端子は、T17が取得したデータをメモリ50に出力する。レジスタ401は、reg_rdata端子からデータを出力する際に、そのデータを特定するための“Lowレベルの信号”をreg_rvalid端子からセレクタ70に出力する。セレクタ70は、T18端子で受けた、データを特定するための“Lowレベルの信号”に応じて、T8端子からmem_wreg端子に書込みを指示する信号を出力し、レジスタ401の記憶するデータをメモリ50書き込む。
また、具体的には、例えば、T1端子にメモリ50のみが有するアドレスが入力され、T4端子に読出しを指示する信号が入力された場合、T4端子に入力された読出しを指示する信号は、T10端子化出力される。また、T11端子はメモリ50に接続され、データを取得する。T5端子は、T11が取得したデータをCPU20に出力する。CPU20は、T1端子に入力したデータがメモリ50のみが有するアドレスであることを送信時に判定している。そのため、CPU20は、T5端子からデータを取得してデータの読み出しを完了する。
(情報処理システム1が行う処理)
次に、本発明の一実施形態による情報処理システム1の処理について説明する。
ここでは、図3(a)〜(d)に示す4つの場合について、情報処理システム1の処理の処理を説明する。
(メモリ50へのデータの書き込み)
図3(a)に示すメモリ50へのデータの書き込み、すなわち、レジスタ401のアドレスとは異なるメモリ50のアドレス(例えば、図3に示すアドレス“m1000”)のメモリ領域へのデータ“1234”の書き込みについて図4に示す処理フローを用いて説明する。
CPU20は、adr端子からT1端子へアドレス“m1000”を出力する(ステップS1)。CPU20は、wdata端子からT3端子へデータ“1234”を出力する(ステップS2)。そして、CPU20は、wreq端子からT2端子へ書込みを指示する“Lowレベルの信号”を出力する(すなわち、書込みを指示する信号がアサートされる)(ステップS3)。なお、CPU20は、ステップS1の処理とステップS2の処理をほぼ同時に行い、アドレスとデータの信号が安定した時に書込みを指示する信号を出力する。以下、CPU20が書き込み時にアドレスとデータを出力する処理は、特に記載しない場合であっても、ほぼ同時に行われるものである。また、CPU20が書き込み時に書込みを指示する信号を出力する処理は、アドレスとデータの信号が安定した時に行うものである。
セレクタ70は、T1端子から入力されたアドレスをT7端子からmem_adr端子へ出力する(ステップS4)。また、セレクタ70は、T2端子から入力された書込みを指示する信号をT8端子からmem_wreq端子へ出力する(ステップS5)。また、セレクタ70は、T3端子から入力されたデータをT9端子からmem_wdata端子へ出力する(ステップS6)。
メモリ50は、セレクタ70から、アドレス“m1000”、書込みを指示する“Lowレベルの信号”、データ“1234”を受ける。メモリ50は、書込みを指示する信号に応じて、アドレス“m1000”のメモリ領域にデータ“1234”を書き込む(ステップS7)。なお、セレクタ70は、上述したようにハードウェアによって実現される回路である。そのため、セレクタ70は、CPU20からアドレス、データ、書込みを指示する信号、読出しを指示する信号などを受けた場合、信号を受けるのとほぼ同時に処理を完了し、処理した信号を適切な端子から出力する。以下、特に記載しない場合であっても、セレクタ70は、入力信号を受けるのとほぼ同時に処理を完了し、処理した信号を適切な端子から出力する。
(レジスタ401へのデータの書き込み)
図3(b)に示すレジスタ401へのデータの書き込み、すなわち、レジスタ401のアドレスと同一のメモリ50のアドレス(例えば、図3に示すアドレス“m9000”)のメモリ領域へのデータ“5678”の書き込みについて図5に示す処理フローを用いて説明する。
CPU20は、adr端子からT1端子へアドレス“m9000”を出力する(ステップS11)。また、CPU20は、wdata端子からT3端子へデータ“5678”を出力する(ステップS12)。そして、CPU20は、wreq端子からT2端子へ書込みを指示する“Lowレベルの信号”を出力する(ステップS13)。
セレクタ70は、T1端子から入力されたアドレスをT7端子からmem_adr端子へ出力する(ステップS14)。セレクタ70は、T1端子から入力されたアドレスをT13端子からreg_adr端子へ出力する(ステップS15)。また、セレクタ70は、T3端子から入力されたデータをT9端子からmem_wdata端子へ出力する(ステップS16)。セレクタ70は、T3端子から入力されたデータをT15端子からreg_wdata端子へ出力する(ステップS17)。また、セレクタ70は、T2端子から入力された書込みを指示する信号をT8端子からmem_wreq端子へ出力する(ステップS18)。セレクタ70は、T2端子から入力された書込みを指示する信号をT14端子からreg_wreq端子へ出力する(ステップS19)。なお、セレクタ70が行うステップS14とS15、S16とS17、S18とS19のそれぞれの処理は、並行して行われる。
メモリ50は、セレクタ70から、アドレス“m9000”、書込みを指示する“Lowレベルの信号”、データ“5678”を受ける。メモリ50は、書込みを指示する信号に応じて、アドレス“m9000”のメモリ領域にデータ“5678”を書き込む(ステップS20)。
レジスタ401は、セレクタ70から、アドレス“m9000”、書込みを指示する“Lowレベルの信号”、データ“5678”を受ける。レジスタ401は、書込みを指示する信号に応じて、アドレス“m9000”のメモリ領域にデータ“5678”を書き込む(ステップS21)。
なお、情報処理システム1は、情報処理システム1が起動する際に、ストレージ60の記憶するスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータを、レジスタ401のアドレスと同一のメモリ50のアドレスへ書き込む処理を行う。こうすることで、情報処理システム1が起動する際に、メモリ50においてスナップショットイメージ情報とレジスタ401に初期設定データが書き込まれるのと同時に、レジスタ401に初期設定データが書き込まれる。したがって、スナップショットイメージ情報がメモリ50に書き込まれ、標準デバイス30が動作可能な状態になるのとほぼ同時に、非標準デバイス40は、動作可能な状態となる。
(メモリ50からのデータの読み出し)
図3(c)に示すメモリ50からのデータの読み出し、すなわち、レジスタ401のアドレスとは異なるメモリ50のアドレス(例えば、図3に示すアドレス“m1000”)のメモリ領域からのデータ“1234”の読み出しについて図6に示す処理フローを用いて説明する。
CPU20は、adr端子からT1端子へアドレス“m1000”を出力する(ステップS31)。また、CPU20は、rreq端子からT4端子へ読出しを指示する“Lowレベルの信号”を出力する(すなわち、読出しを指示する信号がアサートされる)(ステップS32)。
セレクタ70は、T1端子から入力されたアドレスをT7端子からmem_adr端子へ出力する(ステップS33)。また、セレクタ70は、T4端子から入力された読出しを指示する“Lowレベルの信号”をT10端子からmem_rreq端子へ出力する(ステップS34)。
メモリ50は、セレクタ70から、アドレス“m1000”、読出しを指示する“Lowレベルの信号”を受ける。メモリ50は、読出しを指示する“Lowレベルの信号”に応じて、アドレス“m1000”のメモリ領域のデータ“1234”をmem_rdata端子から端子11へ出力する(ステップS35)。また、メモリ50は、読出しを指示する“Lowレベルの信号”に応じて、mem_rvalid端子からT12端子へデータ“1234”を特定する“Lowレベルの信号”を出力する(ステップS36)。
セレクタ70は、端子11に入力されたデータをT5端子からrdata端子へ出力する(ステップS37)。また、セレクタ70は、端子T12に入力されたデータを特定する“Lowレベルの信号”をT6端子からrvalid端子へ出力する(ステップS38)。
CPU20は、rvalid端子が“Lowレベルの信号”を受けている間にrdata端子が受けたデータ“1234”を読み出したデータとして取得する(ステップS39)。
(レジスタ401からのデータの読み出し)
図3(d)に示すレジスタ401からのデータの読み出し、すなわち、メモリ50において同一のアドレスが存在するレジスタ401のアドレス(例えば、図3に示すアドレス“m8000”)のメモリ領域からのデータ“9876”の読み出しについて図7に示す処理フローを用いて説明する。
CPU20は、adr端子からT1端子へアドレス“m8000”を出力する(ステップS41)。そして、CPU20は、rreq端子からT4端子へ読出しを指示する“Lowレベルの信号”を出力する(すなわち、読出しを指示する信号がアサートされる)(ステップS42)。
セレクタ70は、T1端子から入力されたアドレスを、T7端子からmem_adr端子へ、また、T13端子からreg_adr端子へそれぞれ出力する(ステップS43)。セレクタ70は、T4端子から入力された読出しを指示する信号をT16端子からreg_rreq端子へ出力する(ステップS44)。
レジスタ401は、セレクタ70から、アドレス“m8000”、読出しを指示する“Lowレベルの信号”を受ける。このとき、メモリ50は、セレクタ70からアドレス“m8000”を受ける(ステップS45)。レジスタ401は、読出しを指示する信号に応じて、アドレス“m8000”のメモリ領域のデータ“9876”をreg_rdata端子から端子17へ出力する(ステップS46)。また、レジスタ401は、読出しを指示する信号に応じて、reg_rvalid端子からT18端子へデータ“9876”を特定する“Lowレベルの信号”を出力する(ステップS47)。
セレクタ70は、端子17に入力されたデータを、T5端子からrdata端子へ、また、T9端子からmem_wdata端子へそれぞれ出力する(ステップS48)。また、セレクタ70は、端子T18に入力されたデータを特定するための“Lowレベルの信号”をT6端子からrvalid端子へ出力する(ステップS49)。
CPU20は、rvalid端子が“Lowレベルの信号”を受けている間にrdata端子が受けたデータ“9876”を読み出したデータとして取得する(ステップS50)。
セレクタ70は、“Lowレベルの信号”をT6端子からrvalid端子へ出力すると、書込みを指示する信号をT8端子からmem_wreq端子へ出力する(ステップS51)。
メモリ50は、書込みを指示する“Lowレベルの信号”を受ける。メモリ50は、書込みを指示する信号に応じて、セレクタ70から受けたアドレス“m8000”のメモリ領域にデータ“9876”を書き込む(ステップS52)。
レジスタ401は、データ“9876”の送信を完了すると、reg_rvalid端子からT18端子へ“highレベルの信号”を出力する(ステップS53)。つまり、レジスタ401は、reg_rvalid端子から“highレベルの信号”を出力したとき、データの送信を完了している。したがって、このステップS49の処理により、レジスタ401がreg_rvalid端子から“highレベルの信号”を出力した段階で、レジスタ401から読み出されたデータは、メモリ50に送信され、メモリ50における書き込みのデータとして確定している。なお、このステップS51の処理により、レジスタ401からのデータの読み出し処理において、レジスタ401が行う処理は終了する。なお、レジスタ401からのデータの読み出し処理において、レジスタ401が処理を終了すると、レジスタ401がreg_rdataから出力するデータは、不定値になる。
セレクタ70は、T18端子が“Highレベルの信号”を受けると、その“Highレベルの信号”を、T8端子からmem_wreq端子へ、また、T6端子からrvalid端子へ出力する(ステップS54)。セレクタ70が行うステップS54の処理によって、レジスタ401からのデータの読み出し処理における、レジスタ401とデータの同期をとるためのメモリ50への書き込み処理は終了する。なお、レジスタ401からのデータの読み出し処理において、メモリ50が処理を終了すると、メモリ50のmem_wdata端子に入力されるデータは、不定値になる。また、CPU20は、rvalid端子で“Highレベルの信号”を受けると、レジスタ401からデータを読み出す処理を終了する。なお、レジスタ401からのデータの読み出し処理において、CPU20がレジスタ401からデータを読み出す処理を終了すると、CPU20のrdata端子に入力されるデータは、不定値になる。CPU20は、レジスタ401からデータを読み出す処理を終了すると、rreq端子からT4端子へ“Highレベルの信号”を出力する(ステップS55)。
セレクタ70は、T4端子で“Highレベルの信号”を受けると、T16端子からreg_rreq端子へ“Highレベルの信号”を出力する(ステップS56)。このステップS56の処理により、情報処理システム1が行うレジスタ401からのデータの読み出し処理は終了する。情報処理システム1が行うレジスタ401からのデータの読み出し処理は終了すると、CPU20のadr端子から出力されるアドレスは不定となり、reg_adr端子及びmem_adr端子に入力されるアドレスも不定となり、すべてのアドレスが開放される。
(作用・効果)
以上、本発明の一実施形態による情報処理システム1について説明した。
本発明の一実施形態による情報処理システム1では、CPU20は、アドレスと、そのアドレスへデータを書き込むことを指示する書込み指示信号またはそのアドレスからデータを読み出すことを指示する読出し指示信号とをセレクタ70に出力する。セレクタ70は、アドレス、書込み指示信号及び読出し指示信号に応じて、CPU20から入力されたデータの出力先が決定されるようにハードウェアで構成される。メモリ50は、セレクタ70が出力する信号に基づいて、情報処理システム1が起動する際に、スナップショットイメージ情報とレジスタ401を備える非標準デバイス40の初期設定データとを含むデータを記憶する。レジスタ401は、メモリ50が初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有する。
情報処理システム1は、情報処理システム1が起動する際に、スナップショットイメージ情報とレジスタ401を備える非標準デバイス40の初期設定データとを含むデータを、レジスタ401のアドレスと同一のメモリ50のアドレスのメモリ領域へ書き込む処理を行う。こうすることで、情報処理システム1が起動する際に、メモリ50においてスナップショットイメージ情報が再現されると同時に、レジスタ401に初期設定データが書き込まれる。したがって、スナップショットイメージ情報がメモリ50に書き込まれ、標準デバイス30が動作可能な状態になるのとほぼ同時に、非標準デバイス40は、動作可能な状態となる。
このように、情報処理システム1によって、情報処理システム1が起動する際に、レジスタ401を備える非標準デバイス40を直ちに初期化することができる。
(変形例)
なお、本発明の別の実施形態による情報処理システム1において、レジスタ401は、書き込み及び読み出しの両方が可能であるものとして説明した。しかしながら、レジスタ401の中には、書き込みのみが可能であるものも存在する。
レジスタ401が書き込みのみ可能な場合、上述の(レジスタ401からのデータの読み出し)におけるレジスタ401とメモリ50とを入れ替え、メモリ50からデータを読み出し、読み出したデータをレジスタ401に書き込む処理を、(レジスタ401からのデータの読み出し)における処理と同様に行うことで、メモリ50とレジスタ401のデータを同期することができる。また、CPU20は、レジスタ401が記憶すべきデータをメモリ50から読み出すことができる。
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
本発明の実施形態におけるメモリ、ストレージ、レジスタを含む記憶部、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、記憶部、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
本発明の実施形態について説明したが、上述の標準デバイス30、非標準デバイス40、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
図8は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ5は、図8に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述の標準デバイス30、非標準デバイス40、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応するメモリ領域をメインメモリ7に確保する。
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
本発明の実施形態による情報処理システムによれば、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することができる。
1・・・情報処理システム
6、20・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10・・・電源
30・・・標準デバイス
40・・・非標準デバイス
50・・・メモリ
60・・・ストレージ
70・・・セレクタ
401・・・レジスタ

Claims (5)

  1. アドレスと、前記アドレスへデータを書き込むことを指示する書込み指示信号または前記アドレスからデータを読み出すことを指示する読出し指示信号とをセレクタに出力するCPU(Central Processing Unit)と、
    前記アドレス、前記書込み指示信号及び前記読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成された前記セレクタと、
    前記セレクタが出力する信号に基づいて、情報処理システムが起動する際に、スナップショットイメージ情報とレジスタを備える非標準デバイスの初期設定データとを含むデータを記憶する揮発性メモリと、
    前記揮発性メモリが前記初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有する前記レジスタと、
    を備える情報処理システム。
  2. 前記セレクタは、
    前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記書込み指示信号が入力された場合、前記同一のアドレスを前記揮発性メモリと前記レジスタとに出力し、前記揮発性メモリと前記レジスタの両方に対して書込みデータを出力する、
    請求項1に記載の情報処理システム。
  3. 前記セレクタは、
    前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記読出し指示信号が入力された場合、前記同一のアドレスを前記レジスタに出力し、
    前記レジスタから読出しデータを取得し、前記書込み指示信号と、前記レジスタから取得した読出しデータとを前記揮発性メモリに出力する、
    請求項1または請求項2に記載の情報処理システム。
  4. 前記セレクタは、
    前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記読出し指示信号が入力された場合、前記同一のアドレスを前記揮発性メモリに出力し、
    前記揮発性メモリから読出しデータを取得し、前記書込み指示信号と、前記揮発性メモリから取得した読出しデータとを前記レジスタに出力する、
    請求項1または請求項2に記載の情報処理システム。
  5. CPU、アドレス、書込み指示信号及び読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成されたセレクタ、揮発性メモリ、及び前記揮発性メモリがレジスタを備える非標準デバイスの初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有するレジスタ、を有する情報処理システムによる情報処理方法であって、
    前記CPUは、
    前記アドレスと、前記アドレスへデータを書き込むことを指示する前記書込み指示信号または前記アドレスからデータを読み出すことを指示する前記読出し指示信号とを前記セレクタに出力し、
    前記揮発性メモリは、
    前記セレクタが出力する信号に基づいて、前記情報処理システムが起動する際に、スナップショットイメージ情報と前記初期設定データとを含むデータを記憶する、
    情報処理システムによる情報処理方法。
JP2019553644A 2017-11-17 2017-11-17 情報処理システム及び情報処理システムによる情報処理方法 Active JP6966568B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/041548 WO2019097693A1 (ja) 2017-11-17 2017-11-17 情報処理システム及び情報処理システムによる情報処理方法

Publications (2)

Publication Number Publication Date
JPWO2019097693A1 JPWO2019097693A1 (ja) 2020-11-26
JP6966568B2 true JP6966568B2 (ja) 2021-11-17

Family

ID=66539430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019553644A Active JP6966568B2 (ja) 2017-11-17 2017-11-17 情報処理システム及び情報処理システムによる情報処理方法

Country Status (6)

Country Link
US (1) US11249904B2 (ja)
JP (1) JP6966568B2 (ja)
KR (1) KR102281418B1 (ja)
GB (1) GB2581719B (ja)
SG (1) SG11202004378VA (ja)
WO (1) WO2019097693A1 (ja)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675813A (en) * 1985-01-03 1987-06-23 Northern Telecom Limited Program assignable I/O addresses for a computer
JPS62123545A (ja) * 1985-11-22 1987-06-04 Nec Home Electronics Ltd デ−タ入出力装置
JPH06131241A (ja) * 1992-10-19 1994-05-13 Fujitsu Ltd データ処理装置
US6212609B1 (en) * 1997-06-30 2001-04-03 Intel Corporation Alternate access mechanism for saving and restoring state of read-only register
AU2020799A (en) * 1998-08-10 2000-03-06 Micron Electronics, Inc. Processor or core logic unit with internal register for peripheral status
JP4961781B2 (ja) * 2006-03-14 2012-06-27 ソニー株式会社 情報処理装置、その起動方法およびプログラム
US8825912B2 (en) * 2008-11-12 2014-09-02 Microchip Technology Incorporated Dynamic state configuration restore
JP6160273B2 (ja) * 2013-06-06 2017-07-12 富士通株式会社 半導体回路装置、及び、電子装置
US9916173B2 (en) * 2013-11-25 2018-03-13 Red Hat Israel, Ltd. Facilitating execution of MMIO based instructions
JP6399916B2 (ja) * 2014-01-20 2018-10-03 キヤノン株式会社 情報処理装置およびその制御方法
JP6294732B2 (ja) * 2014-03-31 2018-03-14 株式会社メガチップス データ転送制御装置及びメモリ内蔵装置
TWI564802B (zh) * 2015-12-14 2017-01-01 財團法人工業技術研究院 初始化週邊裝置之方法與使用此方法之電子裝置
US10223149B2 (en) * 2016-12-15 2019-03-05 Intel Corporation Implementing device models for virtual machines with reconfigurable hardware

Also Published As

Publication number Publication date
SG11202004378VA (en) 2020-06-29
KR102281418B1 (ko) 2021-07-23
GB2581719A (en) 2020-08-26
US20200278928A1 (en) 2020-09-03
WO2019097693A1 (ja) 2019-05-23
GB202006897D0 (en) 2020-06-24
GB2581719B (en) 2022-03-09
US11249904B2 (en) 2022-02-15
JPWO2019097693A1 (ja) 2020-11-26
KR20200066698A (ko) 2020-06-10

Similar Documents

Publication Publication Date Title
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
US7958344B2 (en) Method for adjusting set-up default value of bios and mainboard using the same method
EP2557497A1 (en) Method for improving booting of a computing device
JP5622429B2 (ja) マイクロコンピュータ
JP6966568B2 (ja) 情報処理システム及び情報処理システムによる情報処理方法
KR102116096B1 (ko) 다중시스템 및 이의 부팅 방법
JP2014048835A (ja) 情報処理装置、領域解放制御プログラム、および領域解放制御方法
WO2016106933A1 (zh) 一种基于若干分区的mcu芯片信息保护方法和装置
US11288374B2 (en) Information processing device, method for controlling information processing device, and program
EP2735965A2 (en) Resume method and information processing device
JP2004220575A (ja) カード型メモリのインターフェース回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置
JP2017107283A (ja) 初期化方法、配備サーバ、配備プログラム及び初期化プログラム
JP4461760B2 (ja) コンピュータの起動システム
JP7018067B2 (ja) 情報処理システム、情報処理方法及びプログラム
JP5051881B2 (ja) 通信制御装置、画像形成装置、通信制御方法及び通信制御プログラム
JP2006260158A (ja) 情報処理装置、情報処理方法、プログラム
JP2006331221A (ja) データ転送装置及びデータ転送方法
JP7161125B2 (ja) 情報処理システム、情報処理装置及び情報処理プログラム
KR20180080463A (ko) 반도체 장치 및 반도체 장치의 동작 방법
JP2016151803A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP5823000B2 (ja) マイクロコンピュータ
JP2008225894A (ja) Sdramコントローラ
CN107025144B (zh) 用于写入以及读取数据集的方法
JP2006048369A (ja) カード型メモリのインターフェイス回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置
JP2020003983A (ja) 制御システムおよび電子機器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211021

R150 Certificate of patent or registration of utility model

Ref document number: 6966568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150