Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5644539B2 - Processor, information processing apparatus, information processing method, and system startup program - Google Patents
[go: Go Back, main page]

JP5644539B2 - Processor, information processing apparatus, information processing method, and system startup program - Google Patents

Processor, information processing apparatus, information processing method, and system startup program Download PDF

Info

Publication number
JP5644539B2
JP5644539B2 JP2011012703A JP2011012703A JP5644539B2 JP 5644539 B2 JP5644539 B2 JP 5644539B2 JP 2011012703 A JP2011012703 A JP 2011012703A JP 2011012703 A JP2011012703 A JP 2011012703A JP 5644539 B2 JP5644539 B2 JP 5644539B2
Authority
JP
Japan
Prior art keywords
instruction
transfer
cache
storage means
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.)
Expired - Fee Related
Application number
JP2011012703A
Other languages
Japanese (ja)
Other versions
JP2012155439A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011012703A priority Critical patent/JP5644539B2/en
Publication of JP2012155439A publication Critical patent/JP2012155439A/en
Application granted granted Critical
Publication of JP5644539B2 publication Critical patent/JP5644539B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明はプロセッサ、情報処理装置、情報処理方法及びシステム起動プログラムに関し、特に命令キャッシュとデータキャッシュ間での転送機能を有するプロセッサ、そのプロセッサを含む情報処理装置、そのプロセッサを用いた情報処理方法、及びそのプロセッサに実行させるプログラムに関する。   The present invention relates to a processor, an information processing apparatus, an information processing method, and a system activation program, and in particular, a processor having a transfer function between an instruction cache and a data cache, an information processing apparatus including the processor, an information processing method using the processor, And a program to be executed by the processor.

機器の多様化や高機能化が進む組込機器の分野においては、電源投入と同時に使用できることが基本的に要求されており、システム起動処理の高速化がより一層重要度を増してきている。   In the field of embedded devices, where the diversification and high functionality of devices are progressing, it is basically required that the devices can be used at the same time as the power is turned on, and the speeding up of the system start-up process is becoming even more important.

一般的に、システム起動処理では、システム起動処理の実行開始時にRead Only Memory(以降ROMと記載)やNOR型フラッシュメモリ(以降NORと記載)などよりも高速なDynamic Random Access Memory(以降DRAMと記載)にROMやNOR内に格納されている命令とデータが一旦転送される。そして、DRAM内の命令とデータを使用してシステム起動処理が行われ、システム起動処理の実行中にキャッシュミスヒットが発生した場合は、Central Processing Unit(以降CPUと記載)は、命令とデータをROMやNORなどから再取得するのではなくDRAMから取得する方式が採られている。   Generally, in system startup processing, dynamic random access memory (hereinafter referred to as DRAM), which is faster than Read Only Memory (hereinafter referred to as ROM) or NOR flash memory (hereinafter referred to as NOR) at the start of execution of the system startup processing. ) Is temporarily transferred to the command and data stored in the ROM or NOR. Then, when the system startup process is performed using the instructions and data in the DRAM and a cache miss occurs during the execution of the system startup process, the Central Processing Unit (hereinafter referred to as CPU) Instead of re-acquiring from ROM, NOR, etc., a method of acquiring from DRAM is adopted.

しかし、システムの起動直後では、DRAMの初期化が完了しておらず、DRAMを使用できない区間が存在する。そのため、キャッシュミスヒットが発生した場合、CPUは、このDRAMを使用できない区間ではDRAMよりも低速なROMやNORなどから命令またはデータを再度読み込む必要がある。   However, immediately after the system is started, initialization of the DRAM is not completed and there is a section in which the DRAM cannot be used. For this reason, when a cache miss hit occurs, the CPU needs to reread an instruction or data from a ROM, NOR, or the like that is slower than the DRAM in a section where the DRAM cannot be used.

そこで、DRAMが使用できない区間においてキャッシュミスヒットが発生した場合に行うROMやNORなどからの読み込みの回数を軽減する方法として、マルチCPUを有するシステムにおけるキャッシュのマイグレーション技術が開発されている。   Therefore, as a method for reducing the number of times of reading from ROM, NOR, etc. when a cache miss occurs in a section where DRAM cannot be used, cache migration technology in a system having a multi-CPU has been developed.

図8に、上述のキャッシュマイグレーションに関する情報処理装置のブロック図を示す。CPU−1〜NとNOR802の間にはCPU間キャッシュ共有制御モジュール803が配置される。CPU間キャッシュ共有制御モジュール803は、CPU−1でキャッシュミスヒットが発生した場合、CPU間キャッシュ共有制御モジュール803自身が管理するキャッシュの内容を示す制御情報を参照して他のCPU−2〜NのLevel1キャッシュ(以降L1キャッシュと記載)内に必要な命令300またはデータ301が存在するかを確認する。CPU−2〜NのL1キャッシュ804内にCPU−1でキャッシュミスヒットした命令300またはデータ301が存在する場合には、CPU間キャッシュ共有制御モジュール803は、CPU−2〜NのL1キャッシュ804内に存在している命令300またはデータ301をCPU−1のL1キャッシュ804に転送するキャッシュ間転送を行う。このように、CPU−1〜Nのキャッシュ間のコヒーレンシを保つようにCPU間キャッシュ共有制御モジュール803が動作することで、CPU−1〜Nの間でキャッシュを共有することができ、処理の高速化が実現されている。   FIG. 8 shows a block diagram of an information processing apparatus related to the above-described cache migration. An inter-CPU cache sharing control module 803 is disposed between the CPUs 1 to N and the NOR 802. When a cache miss occurs in CPU-1, the inter-CPU cache sharing control module 803 refers to control information indicating the contents of the cache managed by the inter-CPU cache sharing control module 803 itself, and the other CPUs 2 to N. It is checked whether the necessary instruction 300 or data 301 exists in the Level 1 cache (hereinafter referred to as L1 cache). When there is an instruction 300 or data 301 that has a cache miss hit by CPU-1 in the L1 cache 804 of CPUs 2 to N, the inter-CPU cache sharing control module 803 is in the L1 cache 804 of CPUs 2 to N. The cache 300 transfers the instruction 300 or the data 301 existing in the CPU 1 to the L1 cache 804 of the CPU-1. As described above, the cache sharing control module 803 between the CPUs 1 to N operates so as to maintain coherency between the caches of the CPUs 1 to N, so that the caches can be shared among the CPUs 1 to N, and the processing speed is high. Has been realized.

また、上述のキャッシュマイグレーションに関連する技術として、複数のマイクロプロセッサを有するシステムにおいてメモリを共有する技術が特許文献1に開示されている。   Further, as a technique related to the above-described cache migration, a technique for sharing a memory in a system having a plurality of microprocessors is disclosed in Patent Document 1.

特開2005−050368号公報JP 2005-050368 A

マルチCPUを有するシステムにおいて、いくつかのCPUが命令フェッチを行わない場合がある。例えば、システム起動処理の開始時点では1つのCPUのみが動作し、他のCPUは割り込み待ちなどの待ち合わせ処理の実行中となっている場合がある。   In a system having multiple CPUs, some CPUs may not fetch instructions. For example, there may be a case where only one CPU is operating at the time of starting the system activation process, and the other CPUs are executing a waiting process such as waiting for an interrupt.

システム起動処理ではデバイスを初期化する順序が決められており、各デバイスを初期化する場合に、デバイスのレジスタに値を設定する順序も予め決められている。複数のCPUで並列に1つのデバイスのレジスタへ値を設定するためには、複雑な排他制御が必要となるため逆に待ち時間が多くなり、並列化のメリットが享受できない。そのため、システム起動処理では、複数ではなく1つのCPUで動作する場合が多く、他のCPUは割り込み待ちなどの待ち合わせ処理の実行中となっている。   In the system startup process, the order in which devices are initialized is determined, and the order in which values are set in the device registers when each device is initialized is also determined in advance. In order to set a value in a register of one device in parallel by a plurality of CPUs, complicated exclusive control is required, and conversely, the waiting time increases, and the benefits of parallelization cannot be enjoyed. For this reason, in the system activation process, there are many cases in which the operation is performed by one CPU instead of a plurality, and the other CPUs are executing a waiting process such as waiting for an interrupt.

命令キャッシュとデータキャッシュが分離しているハーバードアーキテクチャを採用しているシステムでは、ROMやNORに格納されている命令は、CPUが命令を実行する前に行う命令フェッチの際に命令キャッシュに載せられる。つまり、命令フェッチが行われない限り、ROMやNORに格納されている命令が命令キャッシュに存在しないことになる。   In a system employing a Harvard architecture in which an instruction cache and a data cache are separated, an instruction stored in a ROM or a NOR is placed in the instruction cache at the time of instruction fetch before the CPU executes the instruction. . That is, unless an instruction fetch is performed, the instruction stored in the ROM or NOR does not exist in the instruction cache.

このようにシステム起動処理を1つのCPUが行い、他のCPUは待ち合わせ処理の実行中となる場合には、他のCPUにおいて命令フェッチが行われないため、他のCPUの命令キャッシュに命令が格納されていない。従って、キャッシュのマイグレーション技術を導入しても、キャッシュミスヒット時に行うROMやNORへのアクセス回数を削減できないという問題が生じることになる。   In this way, when one CPU performs the system startup process and the other CPUs are executing the waiting process, the instruction fetch is not performed in the other CPUs, so the instructions are stored in the instruction cache of the other CPUs. It has not been. Therefore, even if the cache migration technology is introduced, there arises a problem that the number of accesses to the ROM and NOR performed when a cache miss hits cannot be reduced.

本発明は上記の課題を鑑み、複雑な排他制御を必要とせずにキャッシュの有効利用を可能とするシステムを提供することを目的とする。   In view of the above problems, an object of the present invention is to provide a system that enables effective use of a cache without requiring complicated exclusive control.

本発明にかかるプロセッサは、命令を一時記憶する第1の記憶手段と、命令及びデータを一時記憶する第2の記憶手段と、前記第2の記憶手段に一時記憶されている命令を前記第1の記憶手段に転送する転送手段と、第3の記憶手段に格納されている命令を前記第2の記憶手段に読み込む第1の制御と前記転送手段に対して前記第2の記録手段へ読み込まれた命令を前記第1の記憶手段に対して転送させる第2の制御とを行う制御手段と、を具備する。   The processor according to the present invention includes a first storage unit that temporarily stores an instruction, a second storage unit that temporarily stores an instruction and data, and an instruction temporarily stored in the second storage unit. Transfer means for transferring to the storage means, first control for reading the instructions stored in the third storage means to the second storage means, and reading to the second recording means for the transfer means. Control means for performing second control for transferring the received instruction to the first storage means.

また、本発明にかかる情報処理装置は、命令及びデータを格納する第3の記憶手段と、命令を一時記憶する第1の記憶手段と、命令及びデータを一時記憶する第2の記憶手段と、前記第2の記憶手段に一時記憶されている命令を前記第1の記憶手段に転送する転送手段と、前記第3の記憶手段に格納されている命令を前記第2の記憶手段に読み込む第1の制御と前記転送手段に対して前記第2の記録手段へ読み込まれた命令を前記第1の記憶手段に対して転送させる第2の制御とを行う制御手段と、を具備するプロセッサを複数備える。 An information processing apparatus according to the present invention includes a third storage unit that stores instructions and data, a first storage unit that temporarily stores instructions, and a second storage unit that temporarily stores instructions and data; A transfer means for transferring an instruction temporarily stored in the second storage means to the first storage means; and a first for reading an instruction stored in the third storage means into the second storage means And a control means for performing a second control for causing the transfer means to transfer a command read into the second recording means to the first storage means. .

また、本発明にかかる情報処理方法は、命令をデータキャッシュにロードする第1ロード工程と、前記ロードされた命令とロード先のデータキャッシュ及びアドレスとの対応関係を記した制御情報を記憶する記憶工程と、前記データキャッシュにロードされた命令を命令キャッシュへ転送する転送工程と、前記転送が完了したことを通知する通知工程と、前記通知に基づいて前記制御情報を更新する更新工程と、を有する。   The information processing method according to the present invention also includes a first load step for loading an instruction into a data cache, and a memory for storing control information describing a correspondence relationship between the loaded instruction and a load destination data cache and an address. A transfer step for transferring an instruction loaded in the data cache to the instruction cache, a notification step for notifying that the transfer is completed, and an update step for updating the control information based on the notification. Have.

また、本発明にかかるプログラムは、複数のプロセッサを有する情報処理装置において、第1のプロセッサにシステムの起動に関する処理を実行させ、前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させる。   A program according to the present invention causes a first processor to execute processing related to system activation in an information processing apparatus having a plurality of processors, and a processor other than the first processor executes the first processor. And a process for loading an instruction that can be loaded into the data cache and a process for transferring the loaded instruction from the data cache to the instruction cache.

本発明によれば、複雑な排他制御を必要とすることなくキャッシュの共有化を図ることが可能となる。   According to the present invention, it is possible to share a cache without requiring complicated exclusive control.

本発明にかかるプロセッサを示すブロック図である。It is a block diagram which shows the processor concerning this invention. 本発明にかかる転送モジュールの動作のフローチャートを示す図である。It is a figure which shows the flowchart of operation | movement of the transfer module concerning this invention. キャッシュ間の転送の様子を示す概念図である。It is a conceptual diagram which shows the mode of the transfer between caches. 実施の形態1にかかる情報処理装置を示すブロック図である。1 is a block diagram illustrating an information processing apparatus according to a first embodiment; NORから複数のCPUへのロードの様子を示す概念図である。It is a conceptual diagram which shows the mode of loading from NOR to several CPU. CPU間キャッシュ共有制御モジュールが有する制御情報を示す図である。It is a figure which shows the control information which the cache sharing control module between CPUs has. CPU間キャッシュ共有制御モジュールが有する制御情報を示す図である。It is a figure which shows the control information which the cache sharing control module between CPUs has. 背景技術にかかる情報処理装置を示すブロック図である。It is a block diagram which shows the information processing apparatus concerning background art.

以下、本発明について図面を参照して説明する。   The present invention will be described below with reference to the drawings.

図1は、本発明にかかるCPUのブロック図である。本発明のシステムは、ハーバードアーキテクチャを採用しており、CPU100は、命令キャッシュ101とデータキャッシュ102の2つの分離したL1キャッシュを有する。   FIG. 1 is a block diagram of a CPU according to the present invention. The system of the present invention employs a Harvard architecture, and the CPU 100 has two separate L1 caches, an instruction cache 101 and a data cache 102.

命令キャッシュ101は、後述する制御部103で実行される命令が一時的に格納される第1の記録手段である。命令は、図示せぬ外部のROMやNORなどに格納されており、命令が実行される前段階に行われる命令フェッチによって命令キャッシュに取り出される。当該命令は、制御部103で解読された後に実行される。   The instruction cache 101 is a first recording unit that temporarily stores instructions executed by the control unit 103 described later. The instruction is stored in an external ROM or NOR (not shown), and is fetched into the instruction cache by instruction fetch performed before the instruction is executed. The instruction is executed after being decoded by the control unit 103.

データキャッシュ102は、NOR等から読み込まれた内容が一時的に格納される第2の記憶手段である。通常、ハーバードアーキテクチャでは、命令系統とデータ系統が分離されているため、データキャッシュに命令が格納されることはない。しかし、本発明では、所定の場合に命令もデータキャッシュ102に一時的に格納されることを特徴とする。なお、データキャッシュ102に格納された命令は、この状態では制御部で実行すべき命令としてフェッチされることはない。   The data cache 102 is a second storage unit that temporarily stores the contents read from the NOR or the like. Usually, in the Harvard architecture, since the instruction system and the data system are separated, the instruction is not stored in the data cache. However, the present invention is characterized in that an instruction is also temporarily stored in the data cache 102 in a predetermined case. Note that the instruction stored in the data cache 102 is not fetched as an instruction to be executed by the control unit in this state.

制御部103は、図示せぬROMやNORなどの低速メモリに格納されている内容をデータキャッシュ102へロードする。ROMやNORは、命令やデータを格納する第3の記憶手段であり、第3の記憶手段は、第1の記憶手段である命令キャッシュや第2の記憶手段であるデータキャッシュといったL1キャッシュよりも読み込み速度が遅いことで特徴づけられる。   The control unit 103 loads the contents stored in a low-speed memory such as a ROM or NOR (not shown) into the data cache 102. ROM and NOR are third storage means for storing instructions and data, and the third storage means is more than an L1 cache such as an instruction cache as a first storage means and a data cache as a second storage means. Characterized by slow reading speed.

上記のロード方法としては、既存のロード命令を用いることができる。ここで、ロード命令とは、指定されたアドレスに格納されている内容をデータキャッシュに読み込む命令のことを言う。なお、ロード命令では、複数のアドレスを指定して、一括してデータ等を読み込むことが可能となっている。   As the loading method, an existing load instruction can be used. Here, the load instruction refers to an instruction for reading the contents stored at a specified address into the data cache. In the load instruction, it is possible to specify a plurality of addresses and read data and the like at once.

制御部103は、キャッシュ間転送要求命令に基づいて、後述するキャッシュ間転送モジュール104に対してキャッシュ間転送要求を出力する。キャッシュ間転送要求命令は、新たに定義された命令であり、キャッシュ間転送モジュール104に対してデータキャッシュの内容を命令キャッシュに転送させるための命令である。   Based on the inter-cache transfer request command, the control unit 103 outputs an inter-cache transfer request to the inter-cache transfer module 104 described later. The inter-cache transfer request instruction is a newly defined instruction and is an instruction for causing the inter-cache transfer module 104 to transfer the contents of the data cache to the instruction cache.

キャッシュ間転送モジュール104は、制御部103から出力されたキャッシュ間転送要求に基づいて、データキャッシュ102に格納されている内容を命令キャッシュ101に転送する。   The inter-cache transfer module 104 transfers the contents stored in the data cache 102 to the instruction cache 101 based on the inter-cache transfer request output from the control unit 103.

図2に上記キャッシュ間転送モジュール104の動作のフローチャートを示す。   FIG. 2 shows a flowchart of the operation of the inter-cache transfer module 104.

キャッシュ間転送モジュール104は、制御部103よりキャッシュ間転送要求が出力されたかどうかの判断を行う(ステップ1)。キャッシュ間転送要求を受け取っていない場合には、引き続き待機状態を維持する。   The inter-cache transfer module 104 determines whether an inter-cache transfer request is output from the control unit 103 (step 1). If the inter-cache transfer request has not been received, the standby state is continuously maintained.

キャッシュ間転送モジュール104は、キャッシュ間転送要求を受け取った場合は、データキャッシュ102からダーティビット部分以外のキャッシュラインの内容を読み出す(ステップ2)。なお、この段階のデータキャッシュ102にはNORからロードされた命令が格納されている。命令は更新されることがなく、命令キャッシュ101にダーティビットは存在しない。従って、ダーティビットの転送は不要であるから、読み出される範囲は、ダーティビット部分以外のキャッシュラインの内容となる。   When receiving the inter-cache transfer request, the inter-cache transfer module 104 reads the contents of the cache line other than the dirty bit portion from the data cache 102 (step 2). Note that an instruction loaded from NOR is stored in the data cache 102 at this stage. The instruction is not updated, and there is no dirty bit in the instruction cache 101. Therefore, since dirty bit transfer is not required, the read range is the contents of the cache line other than the dirty bit portion.

次に、キャッシュ間転送モジュール104は、読み出したデータキャッシュ102の内容を命令キャッシュ101にコピーする(ステップ3)。   Next, the inter-cache transfer module 104 copies the contents of the read data cache 102 to the instruction cache 101 (step 3).

次に、キャッシュ間転送モジュール104は、読み出した範囲がキャッシュラインの終端に到達したかどうかの判断を行う(ステップ4)。キャッシュラインの終端まで読み出しが完了していない場合は、再度ステップ2に戻り、すべての読み出しが完了するまでステップ2〜ステップ4の処理を繰り返し行う。   Next, the inter-cache transfer module 104 determines whether or not the read range has reached the end of the cache line (step 4). If the reading has not been completed up to the end of the cache line, the process returns to step 2 again, and the processes in steps 2 to 4 are repeated until all the reading is completed.

キャッシュラインの終端まで読み出しが完了した場合は、キャッシュ間転送モジュール104は、データキャッシュ102から命令キャッシュ101への転送が完了したことを図示せぬCPU間キャッシュ共有制御モジュールに対して通知する(ステップ5)。その後、キャッシュ間転送モジュール104は、再びステップ1へ戻って待機状態となる。   When the reading to the end of the cache line is completed, the inter-cache transfer module 104 notifies an unillustrated inter-CPU cache sharing control module that the transfer from the data cache 102 to the instruction cache 101 has been completed (step). 5). Thereafter, the inter-cache transfer module 104 returns to step 1 again and enters a standby state.

図3に、データキャッシュ102に格納された内容がキャッシュ間転送モジュール104によって命令キャッシュ101に転送される様子を示す。データキャッシュ内に格納されている命令は、格納場所を示すアドレス及びダーティビットと対応付けされている。キャッシュ間転送モジュール104は、データキャッシュ102に格納されている命令を、その命令内容及び格納アドレスを変更することなくそのまま命令キャッシュ101へ転送する。   FIG. 3 shows how the contents stored in the data cache 102 are transferred to the instruction cache 101 by the inter-cache transfer module 104. The instruction stored in the data cache is associated with an address indicating a storage location and a dirty bit. The inter-cache transfer module 104 transfers the instruction stored in the data cache 102 to the instruction cache 101 as it is without changing the instruction content and storage address.

制御部103は、上記キャッシュ間転送後に再度ロードを実行し、NOR等に格納されているデータをデータキャッシュ102に読み込む。   The control unit 103 executes the load again after the inter-cache transfer, and reads the data stored in the NOR or the like into the data cache 102.

このように、CPU100内に分離されて存在している命令キャッシュ101とデータキャッシュ102の間にキャッシュ間転送モジュール103を搭載することで、本来独立している2つのキャッシュ間にパスが形成される。従って、NOR等から一度に多くの命令をロードしデータキャッシュ102に載せた後に、その命令を命令キャッシュ101へ転送することで、命令フェッチを行うことなく命令を命令キャッシュ101に載せることが可能となる。   As described above, by mounting the inter-cache transfer module 103 between the instruction cache 101 and the data cache 102 that exist separately in the CPU 100, a path is formed between two originally independent caches. . Therefore, by loading a large number of instructions at once from NOR, etc. and placing them in the data cache 102, the instructions can be loaded into the instruction cache 101 without being fetched by transferring the instructions to the instruction cache 101. Become.

上記のように、本発明のプロセッサは、第1の記憶手段である命令キャッシュと第2の記憶手段であるデータキャッシュの2つのキャッシュを有する。さらに、本発明のプロセッサは、前記第2の記憶手段に一時記憶されている命令を命令キャッシュに転送する転送手段を有する。また、制御手段は、第3の記憶手段としての外部メモリに格納されている命令をデータキャッシュに読み込む第1の制御と前記転送手段に転送を行わせる第2の制御とを行う。このような構成をとることにより、プロセッサは、命令フェッチを行わなくても命令を命令キャッシュに格納することができる。   As described above, the processor of the present invention has two caches, that is, an instruction cache that is a first storage unit and a data cache that is a second storage unit. Furthermore, the processor of the present invention has transfer means for transferring the instruction temporarily stored in the second storage means to the instruction cache. The control means performs a first control for reading an instruction stored in an external memory as a third storage means into the data cache and a second control for causing the transfer means to perform transfer. By adopting such a configuration, the processor can store the instruction in the instruction cache without performing the instruction fetch.

また、上記転送手段による転送は、新たに定義されたキャッシュ間転送要求命令によって可能となる。すなわち、上記制御手段は、転送手段に上記転送を行わせる命令であるキャッシュ間転送要求命令を実行することで上記第2の制御を行う。制御手段が、第3の記憶手段に記憶されている命令又はデータを前記第2の記憶手段に読み込ませる命令であるロード命令を実行することで上記第1の制御を行う。制御手段は、第3の記憶手段に記憶されている命令の範囲を指定してロード命令を実行し、命令が第2の記憶手段に読み込まれた後に、上記第1の制御を行うことで命令を第1の記憶手段に一時記憶させることが可能となる。このように、新たにキャッシュ間転送要求命令を定義し、制御手段が、当該命令を実行することによりキャッシュ間転送が開始される。   The transfer by the transfer means is enabled by a newly defined inter-cache transfer request command. That is, the control unit performs the second control by executing an inter-cache transfer request command that is a command for causing the transfer unit to perform the transfer. The control means performs the first control by executing a load instruction which is an instruction for reading the instruction or data stored in the third storage means into the second storage means. The control means executes the load instruction by designating a range of instructions stored in the third storage means, and executes the first control after the instruction is read into the second storage means. Can be temporarily stored in the first storage means. In this way, an inter-cache transfer request instruction is newly defined, and the control means starts the inter-cache transfer by executing the instruction.

また、上記転送手段は、転送前後で、命令が一時記憶されている第2の記憶手段のアドレスと第1の記憶手段のアドレスが同一になるように当該命令を転送する。このように転送手段は、各々の記憶手段での格納アドレスを変更することなく転送することで、転送前後でも管理が簡単となる。転送手段は、転送処理が完了すると、外部に転送完了を通知することで、自プロセッサのキャッシュ間転送が完了し、マイグレーションが可能な状態であることを通知する。   The transfer means transfers the instruction so that the address of the second storage means where the instruction is temporarily stored is the same as the address of the first storage means before and after the transfer. As described above, the transfer means transfers without changing the storage address in each storage means, thereby simplifying management before and after the transfer. When the transfer process is completed, the transfer unit notifies the transfer completion to the outside, thereby notifying that the inter-cache transfer of the own processor is completed and migration is possible.

また、本発明の情報処理方法では、第1の工程として、外部記憶手段から第1のキャッシュであるデータキャッシュに命令を読み込む。次に、第2の工程として、データキャッシュに読み込まれた命令を、命令の内容及び格納するアドレスを同一に保った状態で第2のキャッシュである命令キャッシュに転送する。次に、第3の工程として、転送が完了したことを通知する。   In the information processing method of the present invention, as a first step, an instruction is read from the external storage means into the data cache that is the first cache. Next, as a second step, the instruction read into the data cache is transferred to the instruction cache, which is the second cache, with the contents of the instruction and the address to be stored kept the same. Next, as a third step, it is notified that the transfer has been completed.

以上により、L1キャッシュのマイグレーションが実施される場合には、必要な命令の多くが命令キャッシュに存在しているため、キャッシュヒット率が向上し、処理が高速となる。以下、この点に関して各実施の形態でより詳細に説明する。   As described above, when the migration of the L1 cache is performed, since many of the necessary instructions exist in the instruction cache, the cache hit rate is improved and the processing becomes faster. Hereinafter, this point will be described in detail in each embodiment.

(実施の形態1)
図4に本実施の形態1における情報処理システムのブロック図を示す。本システムは、大きく分けてCPU−1〜4の4つのCPU100 (以降各CPU100をCPU100−1〜CPU100−4と記載する)、DRAM201、NOR202、及びCPU間キャッシュ共有制御モジュール203から構成される。なお、以下ではCPUが4つである場合について説明するが、CPUの数については4つに限定するものではなく、N個のCPUを有するシステムについて拡張可能である。
(Embodiment 1)
FIG. 4 shows a block diagram of the information processing system in the first embodiment. This system is roughly composed of four CPUs 100 (CPU-1 to CPU-4) (hereinafter referred to as CPU100-1 to CPU100-4), a DRAM 201, a NOR 202, and an inter-CPU cache sharing control module 203. In the following, a case where the number of CPUs is four will be described. However, the number of CPUs is not limited to four, and a system having N CPUs can be expanded.

低速メモリであるNOR202には命令300とデータ301が格納されている。電源が投入され、システム起動処理が開始されると、命令300及びデータ301はNOR102から高速メモリであるDRAM201へ転送される。ただし、初期化等の理由によりDRAM201が使用できない区間では、命令300とデータ301はNOR202から直接各CPU100へ読み込まれる。   An instruction 300 and data 301 are stored in the NOR 202 which is a low-speed memory. When the power is turned on and the system activation process is started, the instruction 300 and data 301 are transferred from the NOR 102 to the DRAM 201 which is a high-speed memory. However, the instruction 300 and the data 301 are read directly from the NOR 202 to each CPU 100 in a section where the DRAM 201 cannot be used due to initialization or the like.

CPU間キャッシュ共有制御モジュール203は、NOR202と各CPU100との間に配置されている。CPU間キャッシュ共有制御モジュール203は、L1キャッシュのマイグレーション機能を有しており、各CPU100内のキャッシュのコヒーレンシを保たせるための制御を行う。   The inter-CPU cache sharing control module 203 is disposed between the NOR 202 and each CPU 100. The inter-CPU cache sharing control module 203 has an L1 cache migration function, and performs control to maintain cache coherency within each CPU 100.

各CPU100は、命令フェッチによって取り出した命令を解読・実行して制御処理や演算処理などを行う。以下、システム起動時における各CPU100の個別処理について具体的に説明する。本実施の形態では、4つのCPUのうちCPU100−1のみがシステム起動処理を行う場合について説明する。なお、システム起動処理を1つのCPUが行う理由は、システム起動処理を複数のCPUで実行しても、逆に待ち時間が多くなり並列化のメリットが享受できないからである。すなわち、システム起動処理において実行されるデバイス初期化処理では、デバイスのレジスタに値を設定する順序が決められているが、複数のCPUで並列に1つのデバイスのレジスタへ値を設定するためには複雑な排他制御が必要となる。そのため、この複雑な排他制御を避けるために、システム起動処理を複数のCPU100で並列して行うのではなく、従来どおりCPU100−1のみで行うこととする。   Each CPU 100 decodes and executes an instruction fetched by instruction fetch to perform control processing, arithmetic processing, and the like. Hereinafter, individual processing of each CPU 100 at the time of system startup will be specifically described. In the present embodiment, a case will be described in which only the CPU 100-1 among the four CPUs performs the system activation process. Note that the reason why one CPU performs the system startup process is that even if the system startup process is executed by a plurality of CPUs, the waiting time is increased and the benefits of parallelization cannot be enjoyed. In other words, in the device initialization process executed in the system startup process, the order of setting values in the device registers is determined, but in order to set values in the register of one device in parallel by multiple CPUs Complex exclusive control is required. Therefore, in order to avoid this complicated exclusive control, the system activation process is not performed in parallel by a plurality of CPUs 100 but is performed only by the CPU 100-1 as in the past.

まず、システム起動時において、システム起動処理を行わないCPU100−2からCPU100−4の動作に関して説明する。ここで言うシステム起動処理とは、デバイスの初期化のことをいう。通常、システム起動時においては、デバイスの初期化の順序が決められており、各デバイスを初期化する場合は、デバイスのレジスタに値を設定する処理が必要となる。ここでは、CPU100−2からCPU100−4の動作は同一であるため、代表してCPU100−2の動作について説明し、CPU100−3とCPU100−4については動作の説明を省略する。   First, the operation of the CPU 100-2 to the CPU 100-4 that does not perform the system activation process when the system is activated will be described. The system startup process here refers to device initialization. Normally, when the system is started up, the order of device initialization is determined. When each device is initialized, a process for setting a value in the device register is required. Here, since the operations of the CPU 100-2 to the CPU 100-4 are the same, the operation of the CPU 100-2 will be described as a representative, and the description of the operations of the CPU 100-3 and the CPU 100-4 will be omitted.

CPU100−2内の制御部103は、ロード命令を実行し、NOR202に格納されている命令300をロードして、命令300をデータキャッシュ102に格納する。図5は、当該ロードの様子を示した図である。各CPU100は、他のCPUのロード範囲と重複しない範囲で自CPUがロードする範囲を指定しロード命令を実行する。各CPUがロードする範囲は、最小で命令キャッシュ101のキャッシュラインのサイズであり、最大で命令キャッシュ101の全体サイズである。ロードする範囲は、NOR202からの読み出し速度に応じて変更することも可能である。しかし、CPUが、NOR202からの読み出し性能を上回る範囲を指定した場合、命令キャッシュ201の構築が、後述するキャッシュミスヒット時に行うL1キャッシュのマイグレーション処理に間に合わず、キャッシュヒットしない可能性がある。従って、各CPU100は、NOR202の読み出し性能範囲内でロードする範囲を指定することが望ましい。   The control unit 103 in the CPU 100-2 executes the load instruction, loads the instruction 300 stored in the NOR 202, and stores the instruction 300 in the data cache 102. FIG. 5 shows the state of the load. Each CPU 100 executes a load instruction by designating a range to be loaded by its own CPU within a range that does not overlap with the load range of other CPUs. The range loaded by each CPU is the size of the cache line of the instruction cache 101 at the minimum, and the maximum size of the instruction cache 101 at the maximum. The loading range can be changed according to the reading speed from the NOR 202. However, if the CPU specifies a range that exceeds the performance of reading from the NOR 202, the construction of the instruction cache 201 may not be in time for the L1 cache migration process performed at the time of a cache miss hit, which will be described later, and a cache hit may not occur. Therefore, it is desirable for each CPU 100 to specify a load range within the read performance range of the NOR 202.

NOR202からロード命令で読み出された命令300は、システムとして採用したキャッシュの構造に依存することなく、アドレスとその内容という構造でキャッシュ内に格納される。NOR202からロード命令で読み出された命令300については、CPU間キャッシュ共有制御モジュール203が把握している。CPU間キャッシュ共有制御モジュール203はCPU100−2からCPU100−4のL1キャッシュ内に必要な命令300またはデータ301が存在するのかを、CPU間キャッシュ共有制御モジュール203自身が管理するキャッシュの内容を示す制御情報から確認する。   The instruction 300 read by the load instruction from the NOR 202 is stored in the cache with a structure of an address and its contents without depending on the structure of the cache adopted as the system. The instruction 300 read by the load instruction from the NOR 202 is known by the inter-CPU cache sharing control module 203. The inter-CPU cache sharing control module 203 controls whether or not the necessary instruction 300 or data 301 exists in the L1 cache of the CPU 100-2 to the CPU 100-4, and indicates the contents of the cache managed by the inter-CPU cache sharing control module 203 itself. Confirm from the information.

図6に、上記制御情報の一例を示す。CPU間キャッシュ共有制御モジュール203はこのような管理テーブルを記録・更新しており、ロード命令により指定されたアドレス範囲の内容がデータキャッシュ102に存在することを記録している。   FIG. 6 shows an example of the control information. The inter-CPU cache sharing control module 203 records and updates such a management table, and records that the contents of the address range specified by the load instruction exist in the data cache 102.

次に、制御部103は、データキャッシュ102に格納された命令300を命令キャッシュ101に転送するために、キャッシュ間転送要求をキャッシュ間転送モジュール104に出す。このキャッシュ間転送要求は、新たに追加定義された命令300であるキャッシュ間転送要求命令400に従って実行される。すなわち、制御部103は、NOR内に格納されている上記キャッシュ間転送要求命令400を命令フェッチして取り出し、実行してキャッシュ間転送要求をキャッシュ間転送モジュール104へ出す。   Next, the control unit 103 issues an inter-cache transfer request to the inter-cache transfer module 104 in order to transfer the instruction 300 stored in the data cache 102 to the instruction cache 101. This inter-cache transfer request is executed in accordance with an inter-cache transfer request instruction 400 which is a newly added instruction 300. That is, the control unit 103 fetches and fetches the inter-cache transfer request instruction 400 stored in the NOR, executes it, and issues an inter-cache transfer request to the inter-cache transfer module 104.

ここで、キャッシュ間転送要求命令400は、転送する範囲も同時に指定することが可能である。つまり、キャッシュ間転送モジュール104に対して、データキャッシュ102からどれだけの命令300を命令キャッシュ101に転送させるのかを指定することが可能である。キャッシュ間転送モジュール104は、キャッシュ間転送要求に基づいて、指定された範囲でデータキャッシュ102に一時保管されている命令を命令キャッシュ101へ転送する。   Here, the inter-cache transfer request instruction 400 can simultaneously specify the transfer range. That is, it is possible to specify how many instructions 300 are transferred from the data cache 102 to the instruction cache 101 to the inter-cache transfer module 104. The inter-cache transfer module 104 transfers an instruction temporarily stored in the data cache 102 within a specified range to the instruction cache 101 based on the inter-cache transfer request.

データキャッシュ102と命令キャッシュ101の構造は両方ともアドレスとその内容で対になっている構造であるため、キャッシュ間転送モジュール104は、データキャッシュ102に格納された内容をそのまま命令キャッシュ101に転送することが可能となる。すなわち、キャッシュ間転送モジュール104は、データキャッシュ102に格納された内容である命令を変更することなく、また、各キャッシュ内でのアドレスを変更することなく転送することができる。   Since both the data cache 102 and the instruction cache 101 have a structure in which an address and its contents are paired, the inter-cache transfer module 104 transfers the contents stored in the data cache 102 to the instruction cache 101 as they are. It becomes possible. That is, the inter-cache transfer module 104 can transfer without changing the instruction that is the content stored in the data cache 102 and without changing the address in each cache.

次に、キャッシュ間転送モジュール104は、CPU間キャッシュ共有制御モジュール203に対してデータキャッシュ102の内容を命令キャッシュ101に転送したことを通知する。   Next, the inter-cache transfer module 104 notifies the inter-CPU cache sharing control module 203 that the contents of the data cache 102 have been transferred to the instruction cache 101.

CPU間キャッシュ共有制御モジュール203は、キャッシュ間転送モジュールからの転送完了通知を受けると、内部で管理しているキャッシュの内容を示す制御情報を更新する。   When the inter-CPU cache sharing control module 203 receives the transfer completion notification from the inter-cache transfer module, it updates the control information indicating the contents of the cache managed internally.

図7に更新後の制御情報の内容を示す。図6に示す制御情報と比較して、更新後の制御情報では、命令の格納先がデータキャッシュから命令キャッシュに変更されて記録されている。キャッシュ間転送モジュール104が行った転送処理により、データキャッシュ内にあった命令が命令キャッシュに転送されているためである。このように、CPU間キャッシュ共有制御モジュール203は、キャッシュ間転送モジュール104より転送完了通知を受けると、命令が現在格納されている場所を正しく特定できるように制御情報を更新する。   FIG. 7 shows the contents of the updated control information. Compared with the control information shown in FIG. 6, in the updated control information, the instruction storage destination is changed from the data cache to the instruction cache and recorded. This is because the instruction in the data cache is transferred to the instruction cache by the transfer process performed by the inter-cache transfer module 104. As described above, when the inter-CPU cache sharing control module 203 receives the transfer completion notification from the inter-cache transfer module 104, it updates the control information so that the location where the instruction is currently stored can be correctly specified.

次に制御部103は、ロード命令を実行して、NORからデータをロードし、データキャッシュの構築を行う。   Next, the control unit 103 executes a load instruction, loads data from the NOR, and constructs a data cache.

以上のようにCPU100―2からCPU100−4が動作することにより、システム起動処理に必要となる可能性がある命令及びデータを、各々のL1キャッシュ内にキャッシュのコヒーレンシが保たれた状態で格納することができる。なお、NOR202から多くの命令300をロード命令により一度にデータキャッシュ102に格納するようにシステム起動処理に関するプログラムの内容に変更が加えられている。   As described above, the CPU 100-2 to the CPU 100-4 operate to store instructions and data that may be necessary for system startup processing in each L1 cache in a state where cache coherency is maintained. be able to. Note that the contents of the program related to the system activation processing have been changed so that many instructions 300 from the NOR 202 are stored in the data cache 102 at once by load instructions.

また、上記説明したようにキャッシュ間転送要求命令400が新たに追加定義されている。そのため、コンパイラにも変更が加えられている。コンパイラでは、本発明を使用することを示すコンパイルオプションを新たに定義する。該当のコンパイルオプションが指定された場合、システム起動処理を行うCPU100−1以外のCPU100−2〜CPU100−4が上述した4つの処理(1:命令のロード.2:転送処理.3:転送完了通知.4:データのロード.)を繰り返して行うコードを生成する。   Further, as described above, the inter-cache transfer request instruction 400 is newly defined. Therefore, changes have been made to the compiler. The compiler newly defines a compile option indicating that the present invention is used. When the corresponding compile option is specified, the CPU 100-2 to CPU 100-4 other than the CPU 100-1 that performs the system startup process perform the above-described four processes (1: instruction load. 2: transfer process. 3: transfer completion notification) .4: Load data.) To generate code.

次にCPU100−1の動作に関して説明する。CPU100−1は、システム起動時において、各デバイスの初期化といったシステムの起動に関する処理を行う。以下、システム起動処理中にキャッシュミスヒットが発生した場合の処理について具体的に説明する。   Next, the operation of the CPU 100-1 will be described. The CPU 100-1 performs processing related to system activation such as initialization of each device at the time of system activation. Hereinafter, a process when a cache miss hit occurs during the system activation process will be specifically described.

CPU100−1内の制御部103は、キャッシュミスヒットが発生した場合に、CPU間キャッシュ共有制御モジュール203に対して必要な命令300又はデータ301の転送要求を行う。   When a cache miss occurs, the control unit 103 in the CPU 100-1 makes a transfer request for the necessary instruction 300 or data 301 to the inter-CPU cache sharing control module 203.

CPU間キャッシュ共有制御モジュール203は、CPU100−1からの転送要求を受け取ると、自己が管理しているキャッシュの内容とその格納場所を示す制御情報を参照して、要求されている命令300又はデータ301が他CPUの命令キャッシュ又はデータキャッシュに存在するかどうかを確認する。当該命令300やデータ301が他CPUのキャッシュに存在する場合には、CPU間キャッシュ共有制御モジュール203は当該命令300を他CPUの命令キャッシュからCPU100−1の命令キャッシュへ、また、当該データ301を他CPUのデータキャッシュからCPU100−1のデータキャッシュへそれぞれ転送する制御を行う。なお、制御情報に当該命令300又はデータ301に関する情報が記録されていない場合には、CPU間キャッシュ共有制御モジュール203は、キャッシュ間共有はできないと判断し、NOR202からこれらの命令等を取得する制御を行う。   When receiving the transfer request from the CPU 100-1, the inter-CPU cache sharing control module 203 refers to the control information indicating the contents of the cache managed by itself and the storage location thereof, and requests the requested instruction 300 or data. It is confirmed whether 301 exists in the instruction cache or data cache of another CPU. When the instruction 300 and the data 301 exist in the cache of another CPU, the inter-CPU cache sharing control module 203 transfers the instruction 300 from the instruction cache of the other CPU to the instruction cache of the CPU 100-1 and also transfers the data 301. Control is performed to transfer data from the data cache of the other CPU to the data cache of the CPU 100-1. Note that if the information related to the instruction 300 or the data 301 is not recorded in the control information, the inter-CPU cache sharing control module 203 determines that inter-cache sharing is not possible, and obtains these instructions from the NOR 202. I do.

このように、本発明にかかわる情報処理装置は、複数のCPUを搭載している。各CPUは、命令を一時記憶する第1の記憶手段としての命令キャッシュと、命令及びデータを一時記憶する第2の記憶手段としてのデータキャッシュの2つのL1キャッシュを有する。また、各CPUは、前記命令キャッシュから命令を取り出して命令を実行する実行手段と、前記データキャッシュに一時記憶されている命令を前記命令キャッシュに転送する転送手段とを有している。そして、情報処理装置は、前記命令キャッシュに一時記憶されている命令又は前記データキャッシュに一時記憶されているデータの前記複数のCPU間での転送を制御する転送制御手段と、を有する。このように構成することで、1のCPUでキャッシュミスヒット時でも他のCPUの命令キャッシュに記憶されている命令を転送することができる。   Thus, the information processing apparatus according to the present invention is equipped with a plurality of CPUs. Each CPU has two L1 caches: an instruction cache as first storage means for temporarily storing instructions and a data cache as second storage means for temporarily storing instructions and data. Each CPU has execution means for fetching an instruction from the instruction cache and executing the instruction, and transfer means for transferring the instruction temporarily stored in the data cache to the instruction cache. The information processing apparatus includes transfer control means for controlling transfer of instructions temporarily stored in the instruction cache or data temporarily stored in the data cache between the plurality of CPUs. With this configuration, even when one CPU has a cache miss hit, an instruction stored in the instruction cache of another CPU can be transferred.

また、前記各CPU内の転送手段は、データキャッシュから命令キャッシュへの転送が完了した場合に、転送が完了したことを示す転送完了信号を前記転送制御手段へ出力する。前記転送制御手段は、前記転送完了信号に基づいて前記制御情報を更新する。より具体的には、前記転送制御手段は、前記通知完了信号を入力すると、転送された命令に関する制御情報について、当該命令が格納されている場所をデータキャッシュから命令キャッシュに変更する。ただし、キャッシュ内でのアドレスは同一に保たれたまま転送されるため、制御情報に記されているアドレスは変更しない。このように制御情報を更新することであるCPU内においてデータキャッシュから命令キャッシュへの転送行われても、転送制御手段は、適切に各CPUのキャッシュ内の情報を管理することができる。   Further, when the transfer from the data cache to the instruction cache is completed, the transfer means in each CPU outputs a transfer completion signal indicating that the transfer is completed to the transfer control means. The transfer control unit updates the control information based on the transfer completion signal. More specifically, when the notification completion signal is input, the transfer control unit changes the location where the instruction is stored from the data cache to the instruction cache for the control information related to the transferred instruction. However, since the addresses in the cache are transferred while being kept the same, the addresses described in the control information are not changed. Thus, even if transfer from the data cache to the instruction cache is performed in the CPU, which is to update the control information, the transfer control means can appropriately manage the information in the cache of each CPU.

また、本発明にかかわるシステム起動プログラムでは、複数のCPUを有する情報処理装置において、第1のCPUにシステムの起動に関する処理を実行させ、前記第1のCPU以外のCPUに、前記第1のCPUで実行される命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させる。ここで第1のCPUが実行するシステム起動に関する処理には、例えばデバイスの初期化処理が含まれ、より具体的には、デバイスのレジスタへ値を設定する処理が含まれる。このように、本発明にかかわるシステム起動プログラムは、一のCPUにシステム起動処理を担当させ、その他のCPUは、システム起動処理を実行しているCPUが必要とする命令の一部を、命令フェッチを行うことなく転送機能を用いて命令キャッシュに格納させる。従って、キャッシュのマイグレーションが可能な状態であるため、システム起動処理を実行しているCPUにおいてキャッシュミスヒットが起きても、他のCPUの命令キャッシュから適切に命令を転送させることができる。   Further, in the system activation program according to the present invention, in an information processing apparatus having a plurality of CPUs, the first CPU is caused to execute processing related to system activation, and the CPU other than the first CPU is allowed to execute the first CPU. And a process for loading the instruction to be executed into the data cache and a process for transferring the loaded instruction from the data cache to the instruction cache. Here, the process related to system activation executed by the first CPU includes, for example, a device initialization process, and more specifically includes a process of setting a value in a register of the device. As described above, the system startup program according to the present invention causes one CPU to be in charge of system startup processing, and the other CPU fetches a part of instructions required by the CPU executing the system startup processing. It is stored in the instruction cache using the transfer function without performing the above. Therefore, since the cache can be migrated, even if a cache miss occurs in the CPU executing the system startup process, it is possible to appropriately transfer the instruction from the instruction cache of another CPU.

以上のように、本実施の形態の発明では、システム起動処理を行うCPU以外のCPU内の命令キャッシュとデータキャッシュに、システム起動処理の処理内容である命令300とその処理に必要なデータ301がそれぞれ格納される。これらの命令300やデータ301に対してキャッシュ間共有が行われることにより起動処理の高速化が実現できる。   As described above, in the invention of the present embodiment, the instruction 300 and the data 301 necessary for the processing of the system activation process are stored in the instruction cache and the data cache in the CPU other than the CPU that performs the system activation process. Each is stored. By performing inter-cache sharing for these instructions 300 and data 301, the startup process can be speeded up.

従来のマルチCPUシステムにおいては、4つのCPUを備えていてもCPU−2からCPU−4は単に割り込み待ちなどの待ち合わせ処理の実行中状態となっておりCPU−2からCPU−4のL1キャッシュにはシステム起動処理に必要となる命令300やデータ301が存在しないため、まったくキャッシュヒットしない。そのため、キャッスミスヒットが起こる度に命令300およびデータ301の再取得のためNORへアクセスする必要があり、システム起動処理時間がNORへのアクセス時間分長くなっていた。   In the conventional multi-CPU system, even if four CPUs are provided, the CPU-2 to CPU-4 are simply executing a waiting process such as waiting for an interrupt and the CPU-2 to the CPU-4 in the L1 cache. Since there is no instruction 300 or data 301 necessary for system startup processing, no cache hit occurs. For this reason, it is necessary to access the NOR in order to reacquire the instruction 300 and the data 301 every time a smith miss occurs, and the system startup processing time is increased by the access time to the NOR.

しかし、本発明のマルチCPUシステムにおいては、新たにキャッシュ間転送モジュールがCPUに搭載され、従来では待ち合わせ処理の実行中であったCPUでも所定の処理が行われる。すなわち、ロード命令によりNOR等から命令をデータキャッシュに読み込む処理と、キャッシュ間転送要求命令により、データキャッシュの内容をそのまま命令キャッシュに転送する処理を行う。これらの処理は、システムの起動に関する処理とは異なるため、システム起動処理を実行しているCPUを意識せずに行うことができる。すなわち、システム起動処理を実行しているCPUは、複雑な排他制御を行う必要はなく、他のCPUの処理完了を待ち合わせる必要もない。このように構成することで、システム起動処理を担当していないCPUでも命令を命令キャッシュに格納しておくことができる。   However, in the multi-CPU system of the present invention, a cache-to-cache transfer module is newly installed in the CPU, and a predetermined process is also performed by the CPU that has been executing the waiting process conventionally. That is, a process of reading an instruction from the NOR or the like by a load instruction into the data cache and a process of transferring the contents of the data cache as it is to the instruction cache by an inter-cache transfer request instruction. Since these processes are different from the processes related to system activation, the processes can be performed without being aware of the CPU executing the system activation process. In other words, the CPU executing the system activation process does not need to perform complicated exclusive control, and does not need to wait for the completion of the process of another CPU. With this configuration, even a CPU that is not in charge of system startup processing can store instructions in the instruction cache.

つまり、本実施の形態の発明ではCPU−2からCPU−4のL1キャッシュにはシステム起動処理の処理内容である命令300と、その処理に必要なデータ301が対応するそれぞれのキャッシュ内に存在する。そこで、CPU間キャッシュ共有制御モジュール203が制御情報に基づいて必要な命令300やデータ301が格納されているキャッシュを特定し、CPU−1のキャッシュに命令300およびデータ301を転送する。この構成により、NORへアクセスする場合と比較して高速にシステム起動処理を継続することが可能となる。   In other words, in the invention of the present embodiment, the instruction 300 which is the processing content of the system activation process and the data 301 necessary for the process exist in the corresponding caches in the L1 caches of the CPU-2 to the CPU-4. . Therefore, the inter-CPU cache sharing control module 203 specifies a cache in which necessary instructions 300 and data 301 are stored based on the control information, and transfers the instructions 300 and data 301 to the CPU-1 cache. With this configuration, the system activation process can be continued at a higher speed than when accessing the NOR.

このように、キャッシュ間のコヒーレンシを保つCPU間キャッシュ共有制御モジュール203がキャッシュミスヒット時に行うL1キャッシュのマイグレーションにおいて、マイグレーションの対象として検索するCPU内のL1キャッシュの範囲が従来に比較してCPUの数分大きくなる。マイグレーションの対象として検索するCPU内のL1キャッシュの範囲が大きくなればキャッシュヒット率が向上し、処理の高速化を実現する。   As described above, in the migration of the L1 cache performed by the inter-CPU cache sharing control module 203 that maintains the coherency between the caches when a cache miss occurs, the range of the L1 cache in the CPU to be searched for the migration target is smaller than that of the conventional CPU. Increases by a few minutes. If the range of the L1 cache in the CPU to be searched for as a migration target is increased, the cache hit rate is improved and the processing speed is increased.

なお、上記説明では、電源投入時におけるシステム起動の動作を中心に説明したが、これに限るものではなく、組込機器が通常稼働している場合においても本発明を利用することができる。しかし、処理の繰り返しが少ないという特徴があるシステム起動処理ではキャッシュヒット率が低く、必要な命令やデータを再取得するためのNORへアクセスが頻繁に発生するため、特に本発明を実施することにより得られる効果が高い。   In the above description, the operation of starting the system when the power is turned on has been mainly described. However, the present invention is not limited to this, and the present invention can be used even when the embedded device is normally operating. However, in the system activation process characterized by a small number of process repetitions, the cache hit rate is low, and access to the NOR for reacquiring necessary instructions and data frequently occurs. The effect obtained is high.

また、上記説明では命令とデータの格納先はNORとして説明したが、格納先の記憶手段としては命令とデータが格納できれば特に限定はしない。   In the above description, the instruction and data storage destination is described as NOR. However, the storage destination storage means is not particularly limited as long as the instruction and data can be stored.

また、命令キャッシュとデータキャッシュが採用しているキャッシュの構造は、例えば、フルアソシアティブ(Full Associative)方式、ダイレクトマップ(Direct Map)方式、またはセットアソシアティブ(Set Associative)方式などのいずれの方式の構造とすることができる。ただし、命令キャッシュとデータキャッシュは同じ方式を採用していることが求められる。   In addition, the cache structure adopted by the instruction cache and data cache is, for example, the structure of any method such as the full associative method, direct map method, or set associative method. It can be. However, it is required that the instruction cache and the data cache adopt the same method.

なお、上記説明ではマルチCPUの場合について説明したが、マルチコアの場合でも同様に本発明を適用することができる。この場合、図4のCPU100−1〜4を、それぞれコア1〜4としてとらえればよい。   In the above description, the case of a multi-CPU has been described. However, the present invention can be similarly applied to a multi-core case. In this case, the CPUs 100-1 to 4 in FIG. 4 may be regarded as the cores 1 to 4, respectively.

また、上記説明では、制御部とキャッシュ間転送モジュールとを分離されたブロックとして説明したが、これに限るものではなく、当該制御部が転送機能を取り込む形で構成されていても良い。この場合、制御部は、命令フェッチにより新たに定義されているキャッシュ間転送要求命令を実行し、制御部自身が図2に示すフローに従ってデータキャッシュ内に格納されている命令を命令キャッシュに転送する処理を行っても良い。   In the above description, the control unit and the inter-cache transfer module are described as separate blocks. However, the present invention is not limited to this, and the control unit may be configured to incorporate a transfer function. In this case, the control unit executes an inter-cache transfer request instruction newly defined by instruction fetch, and the control unit itself transfers the instruction stored in the data cache to the instruction cache according to the flow shown in FIG. Processing may be performed.

(その他の実施の形態)
本実施の形態に関する情報処理装置の具体的構成は、実施の形態1と同一であるため図1を援用して説明する。すなわち、CPUは、データキャッシュと命令キャッシュとキャッシュ間転送モジュールと制御部を備えており、情報処理装置はこのようなCPUを複数備えたマルチCPUシステムである。
(Other embodiments)
Since the specific configuration of the information processing apparatus according to the present embodiment is the same as that of the first embodiment, it will be described with reference to FIG. That is, the CPU includes a data cache, an instruction cache, an inter-cache transfer module, and a control unit, and the information processing apparatus is a multi-CPU system including a plurality of such CPUs.

電源が投入されると、CPU−1はシステム起動処理を開始する。   When the power is turned on, CPU-1 starts a system activation process.

CPU−2〜CPU−4は、実施の形態1と同様、命令キャッシュ101及びデータキャッシュ102に命令とデータの格納を行う。すなわち、第1の処理として、ロード命令を実行してNORから命令をデータキャッシュにロードする。次に、データキャッシュに格納した命令を命令キャッシュへ転送する。そして、再度ロード命令を実行し、データをデータキャッシュに格納する。   CPU-2 to CPU-4 store instructions and data in the instruction cache 101 and the data cache 102 as in the first embodiment. That is, as a first process, a load instruction is executed to load an instruction from the NOR into the data cache. Next, the instruction stored in the data cache is transferred to the instruction cache. Then, the load instruction is executed again, and the data is stored in the data cache.

ここで、CPU−2〜CPU−4は、CPU−1が実行している命令よりも先の処理内容を命令キャッシュ101とデータキャッシュ102にあらかじめ構築しておく。すなわち、システム起動処理の中で現在CPU−1が実行している処理よりも後で必要となる命令及びデータをそれぞれ命令キャッシュ及びデータキャッシュに格納しておく。   Here, the CPU-2 to CPU-4 construct the processing contents ahead of the instruction executed by the CPU-1 in the instruction cache 101 and the data cache 102 in advance. That is, instructions and data that are required after the process currently executed by CPU-1 in the system startup process are stored in the instruction cache and the data cache, respectively.

次に、システム起動処理を行うCPUをCPU−1からCPU−2〜4のいずれかのCPUに変更する。この変更は自発的に行われてもよいし、システム起動処理を実行していたCPU1が何らかのトラブルで起動処理を継続できなくなった場合に、CPU2〜4にその担当が移譲される構成であってもよい。   Next, the CPU that performs system startup processing is changed from CPU-1 to any one of CPUs 2 to 4. This change may be made voluntarily, or when the CPU 1 that has executed the system startup process cannot continue the startup process due to some trouble, the charge is transferred to the CPUs 2 to 4. Also good.

このように、マルチCPUを有するシステムにおいて、1つのCPUがシステム起動処理を行い、他のCPUはシステム起動処理の担当の移譲に備えて、必要となる命令及びデータのキャッシュ構築を予め行ったうえで待機しておく。そして、担当の移譲が行われた場合には、移譲されたCPUが引き続きシステム起動処理を継続する。   In this way, in a system having multiple CPUs, one CPU performs system startup processing, and the other CPUs perform necessary instruction and data cache construction in advance in preparation for transfer of responsibility for system startup processing. Wait at. When the assigned transfer is performed, the transferred CPU continues the system activation process.

このように、システム起動処理を行うCPUの変更が可能となる構成とすることで、システム起動処理を行っていたCPUに復旧および実行継続不可能なハードウェア障害が発生しても、別のCPUでシステム起動処理を継続して実行でき、システム全体の対障害性が向上する。すなわち、システム起動処理を行うCPUを別のCPUに変更する、システム起動処理自体のマイグレーションが可能となる。   In this way, by adopting a configuration in which the CPU that performs the system startup process can be changed, even if a hardware failure that cannot be recovered and continued in the CPU that was performing the system startup process occurs, another CPU In this way, the system startup process can be continued and the fault tolerance of the entire system is improved. That is, the system startup process itself can be migrated by changing the CPU that performs the system startup process to another CPU.

なお、上記説明では1つのCPUのみがシステム起動処理を実行する場合について説明したがこれに限定するものではない。すなわち、N個のCPUを有するマルチCPUシステムにおいて、一部のCPU群が排他制御を行いながらシステム起動処理を担当し、他のCPU群がロード命令及びキャッシュ間転送要求命令を実行して、システム起動処理で必要となる命令を命令キャッシュに格納するよう動作しても良い。   In the above description, the case where only one CPU executes the system startup process has been described. However, the present invention is not limited to this. That is, in a multi-CPU system having N CPUs, some CPU groups are in charge of system startup processing while performing exclusive control, and other CPU groups execute load instructions and inter-cache transfer request instructions. It may operate so as to store an instruction required in the startup process in the instruction cache.

なお、上述したプログラムは、コンピュータ・システムがアクセス可能な様々な種類の記憶媒体に格納することが可能である。また、このプログラムは、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM、DVD、ROMカートリッジ、バッテリバックアップ付きRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ等が含まれる。また、通信媒体には、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等が含まれ、インターネットも含まれる。   The above-described program can be stored in various types of storage media that can be accessed by the computer system. The program can be transmitted via a communication medium. Here, the storage medium includes, for example, a flexible disk, a hard disk, a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD, a ROM cartridge, a battery-backed RAM memory cartridge, a flash memory cartridge, a nonvolatile RAM cartridge, and the like. . In addition, the communication medium includes a wired communication medium such as a telephone line, a wireless communication medium such as a microwave line, and the Internet.

また、上記説明では、命令キャッシュとデータキャッシュの2つのL1キャッシュ間での転送について説明したが、キャッシュが階層化されている場合にはこれらのキャッシュ間での転送に拡張することも可能である。すなわち、Lnキャッシュ(nは2以上の整数)まで階層化されている場合には、n階層のデータキャッシュに読み込まれた命令をn階層の命令キャッシュに転送する制御を上述の制御手段が行う構成であっても良い。   In the above description, transfer between the two L1 caches of the instruction cache and the data cache has been described. However, when the caches are hierarchized, the transfer can be expanded to transfer between these caches. . That is, when the Ln cache (n is an integer of 2 or more) is hierarchized, the above-described control means performs control for transferring an instruction read into the n-layer data cache to the n-layer instruction cache It may be.

また、上記説明では組込機器における場合について説明したがこれに限るものではなく、様々な種類の情報処理装置について本発明を利用することができる。   In the above description, the case of an embedded device has been described. However, the present invention is not limited to this, and the present invention can be used for various types of information processing apparatuses.

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変形・変更することが可能である。本発明の実施の形態としては様々な態様が考えられ、例えば以下のような実施の形態が可能である。   The present invention is not limited to the above-described embodiments, and can be appropriately modified and changed without departing from the spirit of the present invention. Various embodiments are conceivable as embodiments of the present invention. For example, the following embodiments are possible.

(1)命令を一時記憶する第1の記憶手段と、命令及びデータを一時記憶する第2の記憶手段と、前記第2の記憶手段に一時記憶されている命令を前記第1の記憶手段に転送する転送手段と、第3の記憶手段に格納されている命令を前記第2の記憶手段に読み込む第1の制御と前記転送手段に対して前記第2の記録手段へ読み込まれた命令を前記第1の記憶手段に対して転送させる第2の制御とを行う制御手段と、を具備するプロセッサ。
(2)前記制御手段は、前記第3の記憶手段に記憶されている命令又はデータを前記第2の記憶手段に読み込ませる命令であるロード命令を実行することで前記第1の制御を行い、前記転送手段に前記転送を行わせる命令であるキャッシュ間転送要求命令を実行することで前記第2の制御を行う、(1)に記載のプロセッサ。
(3)前記転送手段は、転送前の前記命令が一時記憶されていた前記第2の記憶手段のアドレスと転送後に前記命令が一時記憶される前記第1の記憶手段のアドレスとが同一になるように転送することを特徴とする、(1)又は(2)に記載のプロセッサ。
(4)前記第1の制御及び第2の制御によって処理される命令は、他のプロセッサに対して転送されるための命令であることを特徴とする(1)から(3)に記載のプロセッサ。
(5)前記第1の制御及び第2の制御は、他のプロセッサがシステム起動処理を実行している間に行われる、(1)から(4)に記載のプロセッサ。
(6)命令及びデータを格納する第3の記憶手段と、命令を一時記憶する第1の記憶手段と、命令及びデータを一時記憶する第2の記憶手段と、前記第2の記憶手段に一時記憶されている命令を前記第1の記憶手段に転送する転送手段と、前記第3の記憶手段に格納されている命令を前記第2の記憶手段に読み込む第1の制御と前記転送手段に対して前記第2の記録手段へ読み込まれた命令を前記第1の記憶手段に対して転送させる第2の制御とを行う制御手段と、を具備するプロセッサを複数備える、情報処理装置。
(7)前記第1の記憶手段に一時記憶されている命令又は前記第2の記憶手段に一時記憶されているデータの前記複数のプロセッサ間での転送を制御する転送制御手段を更に備える、(6)に記載の情報処理装置。
(8)前記複数のプロセッサが具備する各々の前記転送手段は、転送前の前記命令が一時記憶されていた前記第2の記憶手段のアドレスと転送後の前記命令が一時記憶される前記第1の記憶手段のアドレスとが同一になるように前記転送を行うことを特徴とする、(6)又は(7)に記載の情報処理装置。
(9)前記転送制御手段は、前記複数のプロセッサが有する前記第1の記憶手段又は前記第2の記憶手段に一時記憶されている命令又はデータの内容及び記憶場所が対応付けられた制御情報を有する、(6)から(8)に記載の情報処理装置。
(10)前記転送手段は、前記転送が完了したことを示す転送完了信号を前記転送制御手段へ出力し、前記転送制御手段は、前記転送完了信号に基づいて前記制御情報を更新する、(9)に記載の情報処理装置。
(11)命令をデータキャッシュにロードする第1ロード工程と、前記ロードされた命令とロード先のデータキャッシュ及びアドレスとの対応関係を記した制御情報を記憶する記憶工程と、前記データキャッシュにロードされた命令を命令キャッシュへ転送する転送工程と、前記転送が完了したことを通知する通知工程と、前記通知に基づいて前記制御情報を更新する更新工程と、を有する情報処理方法。
(12)前記更新工程は、前記通知に基づいて前記命令の格納先を示す情報をアドレスは同一に保ちつつデータキャッシュから命令キャッシュに変更して前記制御情報を更新する、(11)に記載の情報処理方法。
(13)第1のプロセッサにシステム起動に関する処理を実行させ、前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させるシステム起動方法。
(14)第1のプロセッサにシステム起動に関する処理を実行させ、前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させるシステム起動方法。
(15)第1のプロセッサにシステムの起動に関する処理を実行させ、前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させ、所定の条件に基づいてシステム起動処理の実行担当を前記第1のプロセッサから他のプロセッサに変更する処理をいずれかのプロセッサに実行させる、システム起動方法。
(16)複数のプロセッサを有する情報処理装置において、第1のプロセッサにシステムの起動に関する処理を実行させ、前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させるプログラム。
(17)複数のプロセッサを有する情報処理装置において、第1のプロセッサにシステムの起動に関する処理を実行させ、前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、を実行させ、所定の条件に基づいてシステム起動処理の実行担当を前記第1のプロセッサから他のプロセッサに変更する処理をいずれかのプロセッサに実行させる、プログラム。
(1) First storage means for temporarily storing instructions, second storage means for temporarily storing instructions and data, and instructions temporarily stored in the second storage means in the first storage means A transfer means for transferring; a first control for reading an instruction stored in a third storage means into the second storage means; and an instruction read into the second recording means for the transfer means. Control means for performing second control to be transferred to the first storage means.
(2) The control means performs the first control by executing a load instruction which is an instruction for reading the instruction or data stored in the third storage means into the second storage means, The processor according to (1), wherein the second control is performed by executing an inter-cache transfer request instruction that is an instruction for causing the transfer means to perform the transfer.
(3) In the transfer means, the address of the second storage means where the instruction before transfer is temporarily stored and the address of the first storage means where the instruction is temporarily stored after transfer are the same. The processor according to (1) or (2), wherein the transfer is performed as follows.
(4) The processor according to any one of (1) to (3), wherein the instruction processed by the first control and the second control is an instruction to be transferred to another processor .
(5) The processor according to any one of (1) to (4), wherein the first control and the second control are performed while another processor is executing a system startup process.
(6) Third storage means for storing instructions and data, first storage means for temporarily storing instructions, second storage means for temporarily storing instructions and data, and temporary storage in the second storage means Transfer means for transferring stored instructions to the first storage means, first control for reading instructions stored in the third storage means to the second storage means, and the transfer means An information processing apparatus comprising a plurality of processors each including control means for performing second control for transferring a command read to the second recording means to the first storage means.
(7) The system further comprises transfer control means for controlling transfer between the plurality of processors of instructions temporarily stored in the first storage means or data temporarily stored in the second storage means. The information processing apparatus according to 6).
(8) Each of the transfer means included in the plurality of processors is configured to temporarily store the address of the second storage means in which the instruction before transfer is temporarily stored and the instruction after transfer. The information processing apparatus according to (6) or (7), wherein the transfer is performed so that the address of the storage means is the same.
(9) The transfer control means includes control information associated with the contents and storage locations of instructions or data temporarily stored in the first storage means or the second storage means of the plurality of processors. The information processing apparatus according to any one of (6) to (8).
(10) The transfer means outputs a transfer completion signal indicating that the transfer is completed to the transfer control means, and the transfer control means updates the control information based on the transfer completion signal. ).
(11) a first loading step of loading an instruction into the data cache, a storage step of storing control information describing a correspondence relationship between the loaded instruction and the data cache and address of the loading destination, and loading into the data cache An information processing method comprising: a transfer step of transferring the executed instruction to an instruction cache; a notification step of notifying that the transfer has been completed; and an update step of updating the control information based on the notification.
(12) The update process updates the control information by changing the information indicating the storage location of the instruction from the data cache to the instruction cache while keeping the address the same based on the notification. Information processing method.
(13) Processing for causing the first processor to execute processing related to system startup, causing a processor other than the first processor to load an instruction that can be executed by the first processor into the data cache, and the loaded instruction And a process of transferring the data from the data cache to the instruction cache.
(14) causing the first processor to execute processing related to system startup, causing a processor other than the first processor to load an instruction that can be executed by the first processor into the data cache, and the loaded instruction And a process of transferring the data from the data cache to the instruction cache.
(15) causing the first processor to execute processing related to system activation, causing a processor other than the first processor to load an instruction that can be executed by the first processor into a data cache, and the loading A process of transferring an instruction from the data cache to the instruction cache, and changing a person in charge of executing the system activation process from the first processor to another processor based on a predetermined condition. System startup method to be executed.
(16) In an information processing apparatus having a plurality of processors, the first processor is caused to execute processing related to system activation, and instructions other than the first processor are executed by a data cache on instructions that can be executed by the first processor A program for executing a process for causing the instruction to be loaded and a process for transferring the loaded instruction from the data cache to the instruction cache.
(17) In an information processing apparatus having a plurality of processors, the first processor is caused to execute processing related to system activation, and a command other than the first processor is instructed to execute a command that can be executed by the first processor in a data cache And a process for transferring the loaded instruction from the data cache to the instruction cache, and executing the system activation process from the first processor to another processor based on a predetermined condition. A program that causes one of the processors to execute the process of changing to

100 CPU
101 命令キャッシュ
102 データキャッシュ
103 制御部
104 キャッシュ間転送モジュール
201 DRAM
202 NOR
203 CPU間キャッシュ共有制御モジュール
300 命令
301 データ
800 CPU
801 DRAM
802 NOR
803 CPU間キャッシュ共有制御モジュール
804 L1キャッシュ
100 CPU
101 instruction cache 102 data cache 103 control unit 104 inter-cache transfer module 201 DRAM
202 NOR
203 Inter-CPU cache sharing control module 300 Instruction 301 Data 800 CPU
801 DRAM
802 NOR
803 Inter-CPU cache sharing control module 804 L1 cache

Claims (10)

命令を一時記憶する第1の記憶手段と、
命令及びデータを一時記憶する第2の記憶手段と、
前記第2の記憶手段に一時記憶されている命令を前記第1の記憶手段に転送する転送手段と、
第3の記憶手段に格納されている命令を前記第2の記憶手段に読み込む第1の制御と前記転送手段に対して前記第2の記憶手段へ読み込まれた命令を前記第1の記憶手段に対して転送させる第2の制御とを行う制御手段と、
を具備し、
前記第1の制御及び前記第2の制御によって処理される命令は、所定の処理を実行するプロセッサである他のプロセッサに対して転送されうる命令であり、
前記他のプロセッサが前記所定の処理を実行している間に、前記所定の処理を行わず、前記第1の制御及び前記第2の制御を行う
プロセッサ。
First storage means for temporarily storing instructions;
Second storage means for temporarily storing instructions and data;
Transfer means for transferring an instruction temporarily stored in the second storage means to the first storage means;
A first control for reading an instruction stored in a third storage means into the second storage means and an instruction read into the second storage means for the transfer means to the first storage means Control means for performing the second control to be transferred to,
Equipped with,
The instructions processed by the first control and the second control are instructions that can be transferred to another processor that is a processor that executes a predetermined process,
The processor that performs the first control and the second control without performing the predetermined process while the other processor is executing the predetermined process .
前記制御手段は、前記第3の記憶手段に記憶されている命令又はデータを前記第2の記憶手段に読み込ませる命令であるロード命令を実行することで前記第1の制御を行い、前記転送手段に前記転送を行わせる命令であるキャッシュ間転送要求命令を実行することで前記第2の制御を行う、
請求項1に記載のプロセッサ。
The control means performs the first control by executing a load instruction that is an instruction for causing the second storage means to read an instruction or data stored in the third storage means, and the transfer means The second control is performed by executing an inter-cache transfer request instruction that is an instruction that causes the transfer to be performed.
The processor of claim 1.
前記転送手段は、転送前の前記命令が一時記憶されていた前記第2の記憶手段のアドレスと転送後に前記命令が一時記憶される前記第1の記憶手段のアドレスとが同一になるように転送することを特徴とする、
請求項1又は2に記載のプロセッサ。
The transfer means transfers the address of the second storage means where the instruction before the transfer is temporarily stored and the address of the first storage means where the instruction is temporarily stored after the transfer. It is characterized by
The processor according to claim 1 or 2.
命令及びデータを格納する第3の記憶手段と、
命令を一時記憶する第1の記憶手段と、命令及びデータを一時記憶する第2の記憶手段と、前記第2の記憶手段に一時記憶されている命令を前記第1の記憶手段に転送する転送手段と、前記第3の記憶手段に格納されている命令を前記第2の記憶手段に読み込む第1の制御と前記転送手段に対して前記第2の記憶手段へ読み込まれた命令を前記第1の記憶手段に対して転送させる第2の制御とを行う制御手段と、を具備するプロセッサを複数備え、
複数の前記プロセッサのうち、第1のプロセッサが所定の処理を実行し、
前記所定の処理を実行しない前記第1のプロセッサ以外のプロセッサは、前記第1のプロセッサが前記所定の処理を実行している間に、前記第1の制御及び前記第2の制御を行い、
前記第1の制御及び前記第2の制御によって処理される命令は、前記第1のプロセッサに対して転送されうる命令である
情報処理装置。
Third storage means for storing instructions and data;
First storage means for temporarily storing instructions, second storage means for temporarily storing instructions and data, and transfer for transferring instructions temporarily stored in the second storage means to the first storage means Means, a first control for reading an instruction stored in the third storage means into the second storage means, and an instruction read into the second storage means for the transfer means in the first Introduction plurality Bei a processor comprising a control means for performing a second control to transfer to the storage means,
A first processor among the plurality of processors executes a predetermined process,
Processors other than the first processor that do not execute the predetermined processing perform the first control and the second control while the first processor is executing the predetermined processing,
The information processing apparatus , wherein the instructions processed by the first control and the second control are instructions that can be transferred to the first processor .
前記第1の記憶手段に一時記憶されている命令又は前記第2の記憶手段に一時記憶されているデータの前記複数のプロセッサ間での転送を制御する転送制御手段を更に備える、
請求項4に記載の情報処理装置。
Transfer control means for controlling transfer between the plurality of processors of instructions temporarily stored in the first storage means or data temporarily stored in the second storage means;
The information processing apparatus according to claim 4.
前記複数のプロセッサが具備する各々の前記転送手段は、転送前の前記命令が一時記憶されていた前記第2の記憶手段のアドレスと転送後の前記命令が一時記憶される前記第1の記憶手段のアドレスとが同一になるように前記転送を行うことを特徴とする、
請求項4又は5に記載の情報処理装置。
Each of the transfer units included in the plurality of processors includes an address of the second storage unit in which the instruction before transfer is temporarily stored and the first storage unit in which the instruction after transfer is temporarily stored. The transfer is performed so that the address is the same as
The information processing apparatus according to claim 4 or 5.
前記転送制御手段は、前記複数のプロセッサが有する前記第1の記憶手段又は前記第2の記憶手段に一時記憶されている命令又はデータの内容及び記憶場所が対応付けられた制御情報を有する、
請求項5に記載の情報処理装置。
The transfer control means has control information in which the contents of the instruction or data temporarily stored in the first storage means or the second storage means of the plurality of processors and the storage location are associated with each other.
The information processing apparatus according to claim 5 .
前記転送手段は、前記転送が完了したことを示す転送完了信号を前記転送制御手段へ出力し、
前記転送制御手段は、前記転送完了信号に基づいて前記制御情報を更新する、
請求項7に記載の情報処理装置。
The transfer means outputs a transfer completion signal indicating that the transfer is completed to the transfer control means,
The transfer control means updates the control information based on the transfer completion signal;
The information processing apparatus according to claim 7.
複数のプロセッサのうち、第1のプロセッサにより所定の処理を実行し、
複数のプロセッサのうち、前記所定の処理を実行しない前記第1のプロセッサ以外のプロセッサにより、前記第1のプロセッサが前記所定の処理を実行している間に、第3の記憶手段に格納されている命令を第2の記憶手段に読み込み、前記第2の記憶手段に読み込まれ一時記憶されている命令を第1の記憶手段に転送し、
前記第1の記憶手段に転送された前記命令を、前記第1のプロセッサに対して転送する
情報処理方法。
Of the plurality of processors, the first processor executes predetermined processing,
Among the plurality of processors, the processor other than the first processor that does not execute the predetermined process is stored in the third storage unit while the first processor is executing the predetermined process. The command stored in the second storage means, and the instruction read and temporarily stored in the second storage means is transferred to the first storage means,
An information processing method for transferring the instruction transferred to the first storage means to the first processor .
複数のプロセッサを有する情報処理装置において、
第1のプロセッサに所定の処理を実行させ、
前記所定の処理を実行しない前記第1のプロセッサ以外のプロセッサに、前記第1のプロセッサが前記所定の処理を実行している間に、前記第1のプロセッサで実行されうる命令をデータキャッシュにロードさせる処理と、前記ロードされた命令を前記データキャッシュから命令キャッシュに転送させる処理と、
を実行させるプログラム。
In an information processing apparatus having a plurality of processors,
Causing the first processor to execute a predetermined process;
An instruction that can be executed by the first processor is loaded into a data cache to a processor other than the first processor that does not execute the predetermined process while the first processor is executing the predetermined process. Processing to transfer the loaded instruction from the data cache to the instruction cache;
A program that executes
JP2011012703A 2011-01-25 2011-01-25 Processor, information processing apparatus, information processing method, and system startup program Expired - Fee Related JP5644539B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011012703A JP5644539B2 (en) 2011-01-25 2011-01-25 Processor, information processing apparatus, information processing method, and system startup program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011012703A JP5644539B2 (en) 2011-01-25 2011-01-25 Processor, information processing apparatus, information processing method, and system startup program

Publications (2)

Publication Number Publication Date
JP2012155439A JP2012155439A (en) 2012-08-16
JP5644539B2 true JP5644539B2 (en) 2014-12-24

Family

ID=46837129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011012703A Expired - Fee Related JP5644539B2 (en) 2011-01-25 2011-01-25 Processor, information processing apparatus, information processing method, and system startup program

Country Status (1)

Country Link
JP (1) JP5644539B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7590852B2 (en) * 2020-11-13 2024-11-27 株式会社日立製作所 Storage control system and storage control method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03158943A (en) * 1989-11-17 1991-07-08 Mitsubishi Electric Corp Buffer storage/transfer system
JP2002007212A (en) * 2000-06-19 2002-01-11 Sony Corp Cache memory system and cache memory control method
US7500056B2 (en) * 2004-07-21 2009-03-03 Hewlett-Packard Development Company, L.P. System and method to facilitate reset in a computer system
GB2426082B (en) * 2005-05-09 2007-08-15 Sony Comp Entertainment Europe Memory caching in data processing
JP2007114890A (en) * 2005-10-18 2007-05-10 Matsushita Electric Ind Co Ltd Arithmetic processing device and cache operation method
JP2007264976A (en) * 2006-03-28 2007-10-11 Nec Corp Computer system, data saving method and program
JP2008293426A (en) * 2007-05-28 2008-12-04 Toshiba Corp Information processing apparatus and data recording method thereof

Also Published As

Publication number Publication date
JP2012155439A (en) 2012-08-16

Similar Documents

Publication Publication Date Title
US9244883B2 (en) Reconfigurable processor and method of reconfiguring the same
US10846237B2 (en) Methods and apparatus for locking at least a portion of a shared memory resource
US20080235477A1 (en) Coherent data mover
EP3547146B1 (en) System, method, and apparatus for detecting repetitive data accesses and automatically loading data into local cache
KR20220123512A (en) Reducing system-on-chip boot time by reducing memory context restoration, double data rate memory training
JP7096840B2 (en) Equipment and methods for managing capacity metadata
US9507534B2 (en) Home agent multi-level NVM memory architecture
US20070239940A1 (en) Adaptive prefetching
CN115098409B (en) Processor and method for performing hierarchical cache system restore and invalidation
WO2007096843A1 (en) Data processing system and method for prefetching data and/or instructions
JP5625809B2 (en) Arithmetic processing apparatus, information processing apparatus and control method
JP2007219581A (en) Memory controller, and electronic equipment mounted therewith
JP2011138213A (en) Arithmetic processor, information processor and cache memory control method
KR20070040340A (en) Disable write back on atomic reserved line in a small cache system
JP3973129B2 (en) Cache memory device and central processing unit using the same
KR20190130570A (en) Super-threaded processor
JP2010102623A (en) Cache memory and control method therefor
JP5644539B2 (en) Processor, information processing apparatus, information processing method, and system startup program
JP2006287675A (en) Semiconductor integrated circuit
US20090100232A1 (en) Processor, information processing device and cache control method of processor
JP4666511B2 (en) Memory caching in data processing
KR20240067941A (en) Store representations of specific data patterns in spare directory entries
US8862825B2 (en) Processor supporting coarse-grained array and VLIW modes
JP4471947B2 (en) Data processing apparatus and data processing method
JP4664011B2 (en) Information processing apparatus and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141020

R150 Certificate of patent or registration of utility model

Ref document number: 5644539

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees