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
JP7590852B2 - Storage control system and storage control method - Google Patents
[go: Go Back, main page]

JP7590852B2 - Storage control system and storage control method - Google Patents

Storage control system and storage control method Download PDF

Info

Publication number
JP7590852B2
JP7590852B2 JP2020189185A JP2020189185A JP7590852B2 JP 7590852 B2 JP7590852 B2 JP 7590852B2 JP 2020189185 A JP2020189185 A JP 2020189185A JP 2020189185 A JP2020189185 A JP 2020189185A JP 7590852 B2 JP7590852 B2 JP 7590852B2
Authority
JP
Japan
Prior art keywords
cache
data
application
controller
priority
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
JP2020189185A
Other languages
Japanese (ja)
Other versions
JP2022078486A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020189185A priority Critical patent/JP7590852B2/en
Publication of JP2022078486A publication Critical patent/JP2022078486A/en
Application granted granted Critical
Publication of JP7590852B2 publication Critical patent/JP7590852B2/en
Active 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 storage control system and a storage control method, and more particularly to a storage control system and a storage control method that executes a prioritized application program at high speed by suppressing cache misses of the prioritized application program that is executed in priority over other application programs.

近年、産業用電子制御装置を支える組込みシステム (embedded system)の開発においては、システムの制御性能を向上させること、厳格化する環境規制へ対応すること、そして、システムの自律制御に伴い、新たな制御演算処理を追加しなければならないこと等を理由として、組込みシステムのソフトウェア、プログラム、そして、アプリケーションプログラムに対する負荷が大きくなってきている。 In recent years, in the development of embedded systems that support industrial electronic control devices, the burden on embedded system software, programs, and application programs has increased due to the need to improve the control performance of the systems, comply with increasingly strict environmental regulations, and add new control calculation processes to accommodate autonomous system control.

例えば、自律制御では、多くの場合、組込みシステムが活動する状況に基づいてルールが設定されており、制御対象としてのオブジェクト(例えば、車両等)は、このルールに従って動作することを前提にして装置の通常の動作がプログラムされている。このルールから逸脱する状況が発生した際、これに対処するため、オブジェクトの緊急制御が必要になる。 For example, in many cases, in autonomous control, rules are set based on the circumstances in which the embedded system is active, and the object to be controlled (e.g., a vehicle) is programmed for normal device operation on the assumption that it will operate in accordance with these rules. When a situation arises that deviates from these rules, emergency control of the object is required to deal with the situation.

しかしながら、緊急制御に関与しないアプリケーションプログラムがキャッシュメモリを消費し、その結果、緊急制御に欠くことができない優先アプリケーションプログラムのキャッシュヒットミスを誘発して優先アプリケーションプログラムの高速化が図れず、ひいては、緊急制御に対応できないというおそれがある。 However, application programs that are not involved in emergency control consume cache memory, which can result in cache hit misses for priority application programs that are essential for emergency control, making it difficult to speed up priority application programs and ultimately making it impossible to handle emergency control.

特開2007-200277号(特許文献1)は、CPUがアイドル処理を実行している時間帯に高優先度処理をダミー実行してインストラクションキャッシュメモリ内に高優先度処理のプログラムを配置し、その後、正規のタイミングで高優先度処理を実行する際には、インストラクションキャッシュメモリに既に高優先度処理のプログラムが配置されているためヒット率が高くなり、その結果、高優先度処理の実行時間を短縮できるマイクロコンピュータを開示している。 JP 2007-200277 A (Patent Document 1) discloses a microcomputer that dummy-executes high-priority processing during periods when the CPU is executing idle processing, placing the high-priority processing program in the instruction cache memory, and then when the high-priority processing is executed at the regular timing, the hit rate is high because the high-priority processing program has already been placed in the instruction cache memory, thereby shortening the execution time of the high-priority processing.

特開2007-200277号JP 2007-200277 A

システムの高速化を実現するためには、優先アプリケーションプログラムだけではなく、データもキャッシュメモリに維持される必要があるが、既述の特許文献1では後者については配慮されていない。そして、例えば、自動車の自動運転に於ける衝突回避の類の優先アプリケーションプログラムを正規のタイミングより前にダミー実行しても、周囲に緊急回避すべき障害物が存在しないなど、実際に緊急制御の際の状況と異なり、そして、入力情報も実際のものとは異なるため、結果として、緊急制御に必要な命令やデータをキャッシュメモリに維持できない。そもそも、ダミー実行によって、優先アプリケーションプログラムの全ての分岐やアドレスを網羅できるわけでもない。 To speed up the system, not only the priority application program but also the data needs to be maintained in the cache memory, but the latter is not taken into consideration in the above-mentioned Patent Document 1. For example, even if a priority application program such as a collision avoidance program in an automatic driving car is dummy executed before the normal timing, the situation differs from that during actual emergency control, for example, there are no obstacles in the vicinity that need to be avoided in an emergency, and the input information also differs from the actual information, so as a result, the commands and data required for emergency control cannot be maintained in the cache memory. In the first place, dummy execution does not cover all branches and addresses of the priority application program.

本発明は、優先アプリケーションプログラムの動作中のキャッシュヒットミスを、優先アプリケーションプログラムの動作タイミングの如何に拘らず抑制するようにして、優先アプリケーションプログラムの高速化を達成しようとする記憶制御技術の提供を目的とする。 The present invention aims to provide a storage control technology that aims to reduce cache misses during the operation of a priority application program, regardless of the operation timing of the priority application program, thereby achieving faster execution of the priority application program.

前記目的を達成するために、本発明は、データの記憶制御システムであって、 複数のコントローラを備え、前記複数のコントローラのうち第1のコントローラは、所定条件下で他のアプリケーションプログラムより優先される少なくとも一つの優先アプリケーションプログラムを実行し、前記複数のコントローラのうち前記第1のコントローラ以外の他のコントローラである第2のコントローラは、前記優先アプリケーションプログラムの実行以前に当該優先アプリケーションプログラムの実行のための必要データを、当該優先アプリケーションプログラムがアクセス可能なキャッシュメモリに維持させておくようにする、というものである。 To achieve the above object, the present invention provides a data storage control system comprising a plurality of controllers, a first controller among the plurality of controllers executes at least one priority application program that is prioritized over other application programs under a predetermined condition, and a second controller among the plurality of controllers that is a controller other than the first controller maintains data required for execution of the priority application program in a cache memory accessible by the priority application program prior to execution of the priority application program.

本発明によれば、優先アプリケーションプログラムの動作中のキャッシュヒットミスを、優先アプリケーションプログラムの動作タイミングの如何に拘らず抑制するようにして、優先アプリケーションプログラムの高速化を達成することができる。 According to the present invention, cache misses during the operation of a priority application program can be suppressed regardless of the operation timing of the priority application program, thereby achieving faster operation of the priority application program.

本発明の第1の実施形態に係る制御システムのハードウェアブロック図である。FIG. 2 is a hardware block diagram of the control system according to the first embodiment of the present invention. LRUカウンタを用いたキャッシュの管理方式を説明するためのテーブルである。1 is a table for explaining a cache management method using an LRU counter. 図1の制御システムの機能ブロックである。2 is a functional block diagram of the control system of FIG. 1 . コア配置管理情報としての管理テーブルの一例を示す。13 shows an example of a management table as core placement management information. 維持対象データの管理情報としての管理テーブルの一例である。1 is an example of a management table as management information of data to be maintained. キャッシュ維持アプリケーションプログラムの動作例を説明するフローチャートである。10 is a flowchart illustrating an example of the operation of a cache maintenance application program. キャッシュメモリへのデータの維持の第1の態様を示すブロック図である。FIG. 2 is a block diagram showing a first manner of maintaining data in a cache memory. キャッシュメモリへのデータの維持の第2の態様を示すブロック図である。FIG. 11 is a block diagram showing a second manner of maintaining data in a cache memory. 複数のアプリケーションプログラムのタイミングチャートである。11 is a timing chart of a plurality of application programs. 第2の実施形態に係る制御システムの機能ブロック図である。FIG. 11 is a functional block diagram of a control system according to a second embodiment. 第2の実施形態に係る、維持対象管理テーブルである。13 is a maintenance target management table according to the second embodiment. 第3の実施形態に係る、維持対象管理テーブルである。13 is a maintenance target management table according to the third embodiment. 第3の実施形態に係る、キャッシュ維持アプリケーションプログラムの動作を説明するフローチャートである。13 is a flowchart illustrating the operation of a cache maintenance application program according to the third embodiment. 第3の実施形態において、対象データをキャッシュメモリに維持されるアプリケーションプログラムの遷移を表したタイムチャートである。13 is a time chart showing the transition of an application program in which target data is maintained in a cache memory in the third embodiment. 第4の実施形態に係る制御システムの機能ブロック図である。FIG. 13 is a functional block diagram of a control system according to a fourth embodiment. 第4の実施形態に係る維持対象管理情報一例を示す。13 illustrates an example of maintenance target management information according to the fourth embodiment. 第4の実施形態に於ける、キャシュ維持アプリケーションプログラムの動作を示すフローチャートである。13 is a flowchart showing the operation of a cache maintenance application program in the fourth embodiment. L1キャッシュもL2キャッシュ同様に、コア外でCPU内に構成されている例を示す、制御システムのハードウェアブロック図である。This is a hardware block diagram of a control system showing an example in which the L1 cache is configured outside the core and within the CPU, similar to the L2 cache. L1キャッシュとL2キャッシュとも、マルチコアの夫々のコア内に構成されている例を示す、制御システムのハードウェアブロック図である。FIG. 11 is a hardware block diagram of a control system showing an example in which both an L1 cache and an L2 cache are configured within each core of a multi-core processor. 図1のL1キャッシュとL2キャッシュとに加えて、各コア外でCPU内にL3キャッシュが追加されている例を示す、制御システムのハードウェアブロック図である。FIG. 2 is a hardware block diagram of a control system showing an example in which an L3 cache is added within the CPU outside each core in addition to the L1 and L2 caches of FIG. 図19の制御システムの各コア外でCPU内にL3キャッシュが追加されている例を示す、制御システムのハードウェアロック図である。FIG. 20 is a hardware block diagram of the control system showing an example in which an L3 cache is added in the CPU outside each core of the control system of FIG. 19.

本発明は、ソフトウェアの実行に必要な情報である、データ、パラメータ、そして、コマンド等の記憶制御のための制御システム、そして、その制御方法であり、例えば、自動車、鉄道、航空機、ロボット、通信装置、ネットワーク装置、ビル設備等の制御対象の駆動のために必要な情報の記憶を制御する制御システムである。制御システムは制御対象とともに全体システムを構成する。制御システムは、マイコン、パソコン、または、サーバである。なお、ソフトウェアの実行に必要な情報である、データ、パラメータ、コマンド等を“データ”として括って、特許請求の範囲、そして、実施形態において表記した。 The present invention relates to a control system and a control method for controlling the storage of information necessary for executing software, such as data, parameters, and commands. For example, the control system controls the storage of information necessary for driving controlled objects such as automobiles, trains, aircraft, robots, communication devices, network devices, and building facilities. The control system constitutes an entire system together with the controlled object. The control system is a microcomputer, a personal computer, or a server. Note that information necessary for executing software, such as data, parameters, and commands, are collectively referred to as "data" and are described in the claims and in the embodiments.

前記制御システムの実施形態を、図面を用いて説明する。図1に、マルチコアプロセッサを備える制御システム(制御装置)101のハードウェアブロック図を示す。制御システム101はCPU102、メインメモリ103、及び、周辺装置104を含む。CPU102は、夫々、アプリケーションプログラム(タスク)を実行する、N個のコア105~107を搭載し、夫々のコアにL1キャッシュ108~110が設けられている。コアは請求項に記載のコントローラの一例である。メインメモリとキャッシュメモリは夫々記憶資源である。なお、以後、実施形態、そして、特許請求の範囲において、アプリケーションプログラムをアプリケーションと略称する。メインメモリのデータは、HDD、フラッシュメモリドライブ等の非可搬型記憶媒体から読み出されて設定される。 An embodiment of the control system will be described with reference to the drawings. FIG. 1 shows a hardware block diagram of a control system (control device) 101 equipped with a multi-core processor. The control system 101 includes a CPU 102, a main memory 103, and a peripheral device 104. The CPU 102 is equipped with N cores 105-107 that each execute an application program (task), and each core is provided with an L1 cache 108-110. The cores are an example of a controller as described in the claims. The main memory and the cache memory are each storage resources. In the following embodiments and claims, the application program will be abbreviated to application. Data in the main memory is read and set from a non-portable storage medium such as a HDD or a flash memory drive.

夫々のコアとは別に、CPU102内にL2キャッシュ111が存在する。L1キャッシュ108~110とL2キャッシュ111とによってキャッシュメモリが構成される。L1キャッシュ108~110とL2キャッシュ111とは夫々メインメモリ103に保管されている命令およびデータを一時的に保持する。L1キャッシュ108~110はL2キャッシュ111よりも短時間で書き込みや読み出しを完了できる。L2キャッシュ111は、L1キャッシュ108~110とメインメモリ103の中間に位置して両者を繋ぐ機能を有する。なお、L1キャッシュ108~110、及び、L2キャッシュ111の配置は図1の例に限らず、L1キャッシュ108~110をまとめて全コア共通で管理される形態や、L2キャッシュ111を各コアで管理する等の他の形態でもよい。他の形態については後述する。 In addition to each core, an L2 cache 111 exists in the CPU 102. The L1 caches 108-110 and the L2 cache 111 form a cache memory. The L1 caches 108-110 and the L2 cache 111 each temporarily hold instructions and data stored in the main memory 103. The L1 caches 108-110 can complete writes and reads in a shorter time than the L2 cache 111. The L2 cache 111 is located between the L1 caches 108-110 and the main memory 103 and has the function of connecting the two. Note that the arrangement of the L1 caches 108-110 and the L2 cache 111 is not limited to the example in FIG. 1, and other forms are also possible, such as a form in which the L1 caches 108-110 are managed together by all cores, or the L2 cache 111 is managed by each core. Other forms will be described later.

制御システム101は周辺装置104を介して外部と通信する。制御システム101は、例えば、自動車のコントロールユニットとして、周辺装置104を介して、カメラによる画像データ、超音波センサやレダーセンサ、速度センサ、加速度センサ等による検出データ、を得て、制御対象としての自動車に対して緊急制御(衝突回避等)を実行するよう、制御対象の操作系(ブレーキ装置、操舵装置、懸架装置等)に制御信号を送信する。なお、メインメモリやキャッシュメモリに格納されるコマンドも0/1の並びとして扱うことができるため、既述のとおり、狭義の“データ”に加えて、プログラム、コマンドも広義の“データ”に含めることとした。 The control system 101 communicates with the outside world via the peripheral device 104. For example, as a control unit for an automobile, the control system 101 obtains image data from a camera and detection data from ultrasonic sensors, radar sensors, speed sensors, acceleration sensors, etc. via the peripheral device 104, and transmits control signals to the operating system (brake device, steering device, suspension device, etc.) of the controlled object so as to execute emergency control (collision avoidance, etc.) for the automobile as the controlled object. Note that commands stored in the main memory or cache memory can also be treated as a sequence of 0/1, so as mentioned above, in addition to "data" in the narrow sense, programs and commands are also included in "data" in the broad sense.

L1キャッシュ108~110やL2キャッシュ111はメインメモリ103に格納されたデータの少なくとも一部を格納する。コアは、L1キャッシュ内に必要なデータが存在しない場合、L2キャッシュからデータを読み出し、L2キャッシュにもデータがない場合にはメインメモリ103からデータを読み出す。コアは読み出したデータによってL1キャッシュ内のデータを入れ替える。この入れ替えに多く用いられる方式がLRU(Least Recent Used)である。これは、キャッシュメモリに保存されたデータごとにLRUカウンタを設けて、データに最後にアクセスした順番を管理することによって、高頻度でアクセスするデータを優先的にキャッシュメモリに残すという管理方式である。 The L1 caches 108-110 and the L2 cache 111 store at least a portion of the data stored in the main memory 103. If the required data is not present in the L1 cache, the core reads data from the L2 cache, and if the data is not present in the L2 cache either, it reads data from the main memory 103. The core replaces the data in the L1 cache with the data it reads. The method often used for this replacement is LRU (Least Recently Used). This is a management method in which an LRU counter is provided for each piece of data stored in the cache memory, and the order in which the data was last accessed is managed, so that frequently accessed data is given priority in remaining in the cache memory.

LRUカウンタを用いたキャッシュメモリの管理方式の概要を図2に示す。図2は、管理方式の一例として、キャッシュメモリの実装方式の一つであるフルセットアソシアティブ方式を示している。この方式は、キャッシュメモリ内のデータを、アドレス情報の代わりにTAGによって管理する。アプリケーションは、TAGにヒットした箇所のデータを参照する。例えば、アプリケーションはデータを読み出す際、アプリケーションを実行するコア1(105)のL1キャッシュ108にアクセスし、このデータが存在する場合にはこれを用いる。アプリケーションはアクセスしたデータのLRUカウンタを0に設定し、その他データのLRUカウンタを1インクリメントする。なお、アクセスしたデータよりLRUカウンタの値が大きいものはインクリメントされない。 Figure 2 shows an overview of a cache memory management method using an LRU counter. As an example of a management method, Figure 2 shows the full set associative method, which is one of the cache memory implementation methods. In this method, data in the cache memory is managed by TAGs instead of address information. An application references the data at the location where the TAG is hit. For example, when an application reads data, it accesses the L1 cache 108 of core 1 (105) that executes the application, and uses the data if it exists. The application sets the LRU counter of the accessed data to 0, and increments the LRU counters of other data by 1. Note that LRU counters with values greater than the accessed data are not incremented.

L1キャッシュ108に対象データが存在しない場合、アプリケーションは、L2キャッシュ111にアクセスし、データが存在する場合にはこれを利用する。アプリケーションは、L1キャッシュ108に保存されているデータのうちLRUカウンタが一番大きいデータを削除し、L2キャッシュ111から読み込んだデータをL1キャッシュ108に保存のうえ、当該データのLRUカウンタを0に設定、その他データのLRUカウンタを1インクリメントする。 If the target data does not exist in the L1 cache 108, the application accesses the L2 cache 111, and uses the data if it exists. The application deletes the data with the largest LRU counter from among the data stored in the L1 cache 108, stores the data read from the L2 cache 111 in the L1 cache 108, sets the LRU counter of that data to 0, and increments the LRU counters of the other data by 1.

コアは、キャッシュメモリに格納されたデータ数がキャッシュメモリのライン数を超えた場合に、キャッシュメモリからデータを削除する。L1キャッシュ108から削除されたデータはL2キャッシュ111へ保存される。 When the amount of data stored in the cache memory exceeds the number of lines in the cache memory, the core deletes data from the cache memory. Data deleted from the L1 cache 108 is stored in the L2 cache 111.

アプリケーションは、L2キャッシュ111にも必要なデータが存在しない場合、メインメモリ103にアクセスし、目的のデータを取得する。この際、アプリケーションは、L1キャッシュ108に保存されているデータのうちLRUカウンタの値が一番大きいデータを削除し、メインメモリ103から読み込んだデータを保存のうえ、当該データのLRUカウンタを0に設定、その他データのLRUカウンタを1インクリメントする。 If the required data is not present in the L2 cache 111, the application accesses the main memory 103 to obtain the desired data. At this time, the application deletes the data with the largest LRU counter value among the data stored in the L1 cache 108, saves the data read from the main memory 103, sets the LRU counter of that data to 0, and increments the LRU counters of the other data by 1.

さらに、コアは、L2キャッシュ111に保存されているデータのうちLRUカウンタの値が一番大きいデータを削除し、メインメモリ103から読み込んだデータをL2キャッシュ111に保存し、当該データのLRUカウンタの値を0に設定し、その他データのLRUカウンタの値を1インクリメントする。 Furthermore, the core deletes the data stored in the L2 cache 111 that has the largest LRU counter value, stores the data read from the main memory 103 in the L2 cache 111, sets the LRU counter value of that data to 0, and increments the LRU counter values of the other data by 1.

アプリケーションは、L2キャッシュ111から削除したデータをメインメモリ103に保存する。アプリケーションは、L2キャッシュ111に保存されているデータのうちLRUカウンタが一番大きいデータを削除し、メインメモリ103から読み込んだデータを保存のうえ、当該データのLRUカウンタを0に設定し、その他データのLRUカウンタの値を1インクリメントする。 The application stores the data deleted from the L2 cache 111 in the main memory 103. The application deletes the data with the largest LRU counter among the data stored in the L2 cache 111, stores the data read from the main memory 103, sets the LRU counter of that data to 0, and increments the values of the LRU counters of the other data by 1.

アクセスの内容が書き込みであった場合、アプリケーションは、L1キャッシュ108へライトデータを格納する。その際、アプリケーションは、当該データがL1キャッシュ108に存在すると、当該データのLRUカウンタを“0”に設定し、その他データのLRUカウンタを1インクリメントする。アクセスしたデータよりLRUカウンタの値が大きいもののインクリメントは実行されない。 If the access is a write, the application stores the write data in the L1 cache 108. At that time, if the data exists in the L1 cache 108, the application sets the LRU counter of the data to "0" and increments the LRU counters of other data by 1. Even if the value of the LRU counter is larger than that of the accessed data, no increment is performed.

前記ライトデータがL1キャッシュ108に存在しない場合、アプリケーションは、LRUカウンタが一番大きいデータを削除し、そして、ライトデータを格納して、そのLRUカウンタを“0”に設定し、その他データのLRUカウンタを1インクリメントする。キャッシュメモリから削除されたデータの扱いは、既述した、データの読み出しにおける取り扱いと同じである。 If the write data is not present in the L1 cache 108, the application deletes the data with the largest LRU counter, then stores the write data, sets its LRU counter to "0", and increments the LRU counters of the other data by 1. Data deleted from the cache memory is handled in the same way as when reading data, as described above.

なお、ライトデータは、既述のとおり、ライトバックと呼ばれる方式によって管理されるが、データの書き込み時に毎回L1キャッシュ108だけでなくL2キャッシュ111およびメインメモリ103にデータが書込まれるライトスルー方式の適用が否定されるものではない。 As mentioned above, write data is managed by a method called write-back, but this does not deny the application of a write-through method in which data is written not only to the L1 cache 108 but also to the L2 cache 111 and main memory 103 every time data is written.

キャッシュメモリの内部を区切ってブロックごとにLRUが管理されるセットアソシアティブ方式、そして、キャッシュメモリの内部が区切られないフルセットアソシアティブ方式が存在する。両者とも、LRUカウンタの基本的動作は同様である。図1の制御システムは、フルセットアソシアティブ方式、セットアソシアティブ方式およびダイレクトマップ方式のいずれをも採用することができる。 There is the set associative method, in which the cache memory is divided and the LRU is managed for each block, and the full set associative method, in which the cache memory is not divided. The basic operation of the LRU counter is the same for both. The control system in Figure 1 can employ any of the full set associative method, the set associative method, and the direct map method.

キャッシュメモリへのデータの置き換えを管理する方式にはLRUの他に、ラウンドロビン、ランダム等があるが、いずれかに制限されるものではないではない。キャッシュメモリのラインサイズは通常32~64バイトであり、サイズは限定されるものではない。 In addition to LRU, methods for managing data replacement in cache memory include round robin and random, but are not limited to any of these. The line size of cache memory is usually 32 to 64 bytes, and the size is not limited.

L1キャッシュ108~110、及び、L2キャッシュ111に、アプリケーションが必要とするデータが存在せず、アプリケーションによって、メインメモリ103へアクセスされなければならないデータが多い場合、アプリケーションの実行に大幅な遅延が生じる。そこで、緊急時等高速に処理されなければならないアプリケーション(優先アプリケーション)が必要とするデータは極力L1キャッシュ108~110、及び/又は、L2キャッシュ111に維持されることが好ましい。これを、制御システムの機能ブロック図である図3に基づいて説明する。 If data required by an application is not present in the L1 caches 108-110 and the L2 cache 111, and the application requires access to the main memory 103 for a large amount of data, significant delays in the execution of the application will occur. Therefore, it is preferable to maintain data required by applications that must be processed quickly in emergencies (priority applications) in the L1 caches 108-110 and/or the L2 cache 111 as much as possible. This will be explained based on FIG. 3, which is a functional block diagram of the control system.

図3は、CPU102内部のソフトウェアの構成、そして、メインメモリ103内のデータ構造の一部を示す。CPU102は、コア1(105)に、必要時、例えば、緊急時に優先して実行されるべき優先アプリケーション301と、それ以外のアプリケーション(通常アプリケーション)302とが混在して駆動させている。優先アプリケーションとは、例えば、相対的に優先度が高いアプリケーションをいい、通常アプリケーションとは相対的に優先度が中小程度のアプリケーションをいう。優先アプリケーション301を高優先アプリケーションと呼び、通常アプリケーション302を低優先アプリケーションと呼んでもよい。 Figure 3 shows the software configuration inside CPU 102 and part of the data structure in main memory 103. CPU 102 runs a mixture of priority applications 301, which should be executed with priority when necessary, for example in an emergency, and other applications (normal applications) 302, on core 1 (105). A priority application is, for example, an application with a relatively high priority, and a normal application is an application with a relatively low to medium priority. Priority application 301 may be called a high priority application, and normal application 302 may be called a low priority application.

さらに、CPU102は、スケジューリングモジュール303をコア1(105)以外のコアの一つ又は複数において動作させている。図3は、スケジューリングモジュール303がコア2(106)において実行されることを示している。スケジューリングモジュール303は、複数のアプリケーション夫々について、その駆動を開始するタイミング、そして、駆動を中断するタイミング等を制御している。すなわち、スケジューリングモジュール303は、コア1の優先アプリケーション301、通常アプリケーション302、そして、後述のキャッシュ維持アプリケーション304夫々の動作のタイミングを制御する。 Furthermore, the CPU 102 operates the scheduling module 303 in one or more cores other than the core 1 (105). FIG. 3 shows that the scheduling module 303 is executed in the core 2 (106). The scheduling module 303 controls the timing of starting and suspending the operation of each of the multiple applications. In other words, the scheduling module 303 controls the timing of operation of the priority application 301, the normal application 302, and the cache maintenance application 304 (described below) of the core 1.

スケジューリングモジュール303は、所定条件で、例えば、緊急時に、コア1が、通常アプリケーション302の駆動中でもこれを中断する等して、優先アプリケーション301を優先して実行させるようにする。スケジューリングモジュール303は、コア毎のアプリケーションの実装の形態を、後述のコア配置管理情報309に基づいて知ることができる。なお、“モジュール”とはソフトウェアによって実行される機能を意味する。“モジュール”を、“手段”、“機能”、“要素”、“回路”、又は、“部”等他の用語に置き換えてもよい。モジュールは、ハードウェア、又は、ソフトウェアとハードウェアとの協働によって、実現されてもよい。どのコアにどのようなアプリケーションを配置するかは、コアの負荷に応じて適宜、設定、又は、変更されてよい。 The scheduling module 303, under a predetermined condition, for example, in an emergency, causes core 1 to suspend normal application 302 even while it is running, and executes priority application 301 with priority. The scheduling module 303 can know the implementation form of applications for each core based on core placement management information 309 described below. Note that "module" means a function executed by software. "Module" may be replaced with other terms such as "means," "function," "element," "circuit," or "part." A module may be realized by hardware, or by a combination of software and hardware. Which application is placed on which core may be set or changed as appropriate according to the load of the core.

スケジューリングモジュール303は、コア配置管理情報309に基づいて、優先アプリケーション301、通常アプリケーション302が稼働している、コア1とは別なコア(コア2)に、キャッシュ維持アプリケーション304を稼働させている。図4に、コア配置管理情報309としての管理テーブルを示す。コア配置管理情報309は、アプリケーションの種別と、当該アプリケーションを実行するコアとの関係を規定している。コア配置管理情報309は、制御システム101のメインメモリ103に格納されている。コア配置管理情報309は制御システム101の管理者によってメインメモリ103に登録されてよい。 Based on the core allocation management information 309, the scheduling module 303 runs the cache maintenance application 304 on a core (core 2) other than the core 1 on which the priority application 301 and the normal application 302 are running. FIG. 4 shows a management table as the core allocation management information 309. The core allocation management information 309 specifies the relationship between the type of application and the core that executes the application. The core allocation management information 309 is stored in the main memory 103 of the control system 101. The core allocation management information 309 may be registered in the main memory 103 by the administrator of the control system 101.

キャッシュ維持アプリケーション304は、優先アプリケーション301がキャッシュヒットミスを緊急時に発生して動作遅延をきたさないように、優先アプリケーション301に必要なデータ(維持対象データ)を、維持対象管理情報308に基づいて、キャッシュメモリに、事前に、維持、格納、登録、記憶、保持、保有、又は、設定しておく。キャッシュ維持アプリケーション304のこの動作を、“キャッシュ維持”と記載する。維持対象管理情報308はメインメモリ103に記録されている。 The cache maintenance application 304 maintains, stores, registers, memorizes, holds, retains, or sets in advance in the cache memory the data required by the priority application 301 (data to be maintained) based on the maintenance target management information 308 so that the priority application 301 does not experience a cache hit miss in an emergency, causing operational delays. This operation of the cache maintenance application 304 is referred to as "cache maintenance." The maintenance target management information 308 is recorded in the main memory 103.

図3に示すように、キャッシュ維持アプリケーション304は、データアクセスモジュール306と維持対象管理モジュール307とを備える。維持対象管理機モジュール307はメインメモリ103の維持対象管理情報308を参照して、参照情報をデータアクセスモジュール306に渡し、データアクセスモジュール306はキャッシュメモリにアクセスして、キャッシュメモリに維持対象データを格納する。データが格納されるキャッシュメモリは、L1キャッシュ108、L2キャッシュ111、そして、L1キャッシュ108の少なくとも一つでよい。要するに、優先アプリケーション301がアクセスできるキャッシュメモリであればよい。 As shown in FIG. 3, the cache maintenance application 304 includes a data access module 306 and a maintenance target management module 307. The maintenance target management module 307 references the maintenance target management information 308 in the main memory 103, passes the reference information to the data access module 306, and the data access module 306 accesses the cache memory and stores the maintenance target data in the cache memory. The cache memory in which the data is stored may be at least one of the L1 cache 108, the L2 cache 111, and the L1 cache 108. In short, it is sufficient that the cache memory can be accessed by the priority application 301.

キャッシュ維持アプリケーション304は、例えば、タイマ割込み処理によって、継続的に実施されればよい。キャッシュ維持アプリケーション304が優先アプリケーション301の動作中に実行されることを妨げるものではないが、同じデータへの同時アクセスによる競合が発生して、優先アプリケーションの動作遅延を引き起こすのを防ぐため、優先アプリケーション301の駆動中にはスケジューリングモジュール303がキャッシュ維持アプリケーション304を中断すればよい。 The cache maintenance application 304 may be continuously executed, for example, by a timer interrupt process. Although the cache maintenance application 304 is not prevented from being executed while the priority application 301 is running, the scheduling module 303 may suspend the cache maintenance application 304 while the priority application 301 is running in order to prevent conflicts caused by simultaneous access to the same data, which may cause delays in the operation of the priority application.

コア2において、スケジューリングモジュール303はキャッシュ維持アプリケーション304を優先して動作させる。スケジューリングモジュール303は、キャッシュ維持アプリケーション304を動作させていない間、他アプリケーション305を駆動することができる。スケジューリングモジュール303は、キャッシュ維持アプリケーション304を常に高優先度で運用してもよい。また、スケジューリングモジュール303は他アプリケーション305が動作していない隙間時間に、キャッシュ維持アプリケーション304を動作させてもよいし、さらにまた、スケジューリングモジュール303はキャッシュ維持アプリケーション304を周期的に動作させてもよい。 In core 2, the scheduling module 303 operates the cache maintenance application 304 with priority. The scheduling module 303 can run other applications 305 while the cache maintenance application 304 is not operating. The scheduling module 303 may always operate the cache maintenance application 304 with high priority. The scheduling module 303 may also operate the cache maintenance application 304 during spare time when the other applications 305 are not operating, and furthermore, the scheduling module 303 may operate the cache maintenance application 304 periodically.

図5に、維持対象データの管理情報(維持対象管理情報308)としての管理テーブルの一例を示す。管理テーブルには、対象番号(エントリ)と、データが格納されているメインメモリアドレスと、データの変数型とが記録されている。これらの管理情報によって、データアクセスモジュール306は維持対象データを特定することができる。 Figure 5 shows an example of a management table as management information for data to be maintained (maintenance target management information 308). The management table records the target number (entry), the main memory address where the data is stored, and the variable type of the data. This management information allows the data access module 306 to identify the data to be maintained.

優先アプリケーション301が必要とするデータは予め判明しているため、維持対象管理モジュール307は、維持対象データを維持対象管理情報308としてメインメモリ103に予め設定(登録)し、また、これを更新することができる。データアクセスモジュール306は、維持対象管理情報308に基づいて、メインメモリ103にアクセスしてデータを取り込み、当該データをキャッシュメモリに記録する。 Since the data required by the priority application 301 is known in advance, the maintenance target management module 307 can set (register) the maintenance target data in advance in the main memory 103 as maintenance target management information 308, and can also update this. The data access module 306 accesses the main memory 103 based on the maintenance target management information 308, retrieves the data, and records the data in the cache memory.

キャッシュ維持アプリケーション304を詳しく説明する。図6は、キャッシュ維持アプリケーション304の動作例を説明するフローチャートである。キャッシュ維持アプリケーション304は、維持対象管理モジュール307を実行して維持対象を決定するとデータアクセスモジュール306にキャッシュ維持を実行させる。 The cache maintenance application 304 will now be described in detail. FIG. 6 is a flowchart illustrating an example of the operation of the cache maintenance application 304. The cache maintenance application 304 executes the maintenance target management module 307 to determine the target to be maintained, and then causes the data access module 306 to perform cache maintenance.

維持対象管理モジュール307は、維持対象を選択するための選択番号を変数として保持し、フローチャートの起動後にこれを0にセットする(S401)。その後、維持対象管理モジュール307は、選択番号と維持対象管理テーブル(維持対象管理情報308)の対象番号が一致する箇所を参照し、対象のアドレスおよびデータ型情報を取得する(S402)。 The maintenance target management module 307 holds the selection number for selecting the maintenance target as a variable, and sets this to 0 after the flowchart is started (S401). After that, the maintenance target management module 307 references the portion where the selection number matches the target number in the maintenance target management table (maintenance target management information 308), and obtains the address and data type information of the target (S402).

取得した情報をもとに、データアクセスモジュール306は対象のデータ型およびアドレスを指定してデータアクセスを行う(S403)。データアクセスモジュール306は、データアクセスによって、メインメモリ103からL1キャッシュ、又は、L2キャッシュへデータを格納し、そして、これらキャッシュメモリのLRUカウンタを更新して、優先アプリケーション301が必要とするデータが優先アプリケーション301の実行時にキャッシュメモリから削除された状態になっていないように、キャッシュメモリに対象データが維持されるようにする。次いで、維持対象管理モジュール307は、選択番号を1インクリメントする(S404)。 Based on the acquired information, the data access module 306 specifies the target data type and address and performs data access (S403). The data access module 306 stores data from the main memory 103 to the L1 cache or L2 cache by data access, and updates the LRU counters of these cache memories to ensure that the target data is maintained in the cache memory so that data required by the priority application 301 is not deleted from the cache memory when the priority application 301 is executed. Next, the maintenance target management module 307 increments the selection number by 1 (S404).

選択番号の値がキャッシュ維持の対象の数と同数まで達すると、即ち、データアクセスモジュール306が全ての維持対象にアクセスし終わると(S405:Yes)、データアクセスモジュール306は、選択番号を0にセットする。選択番号の値がキャッシュ維持対象の数まで達していない場合(S405:No)、ステップS407が終了シーケンスに入っているか確認し、これを肯定するとフローチャートが終了する(S407:Yes)。ステップS407がNoを判定すると、ステップS402にリターンする(S407:No)。図4のフローチャートによって、管理テーブル308に登録された全ての維持対象データがキャッシュメモリに設定され、突然に、優先アプリケーション301が動作してもキャッシュヒットミスが生じないようにできる。 When the value of the selection number reaches the same number as the number of cache maintenance targets, that is, when the data access module 306 has finished accessing all the maintenance targets (S405: Yes), the data access module 306 sets the selection number to 0. If the value of the selection number has not reached the number of cache maintenance targets (S405: No), step S407 checks whether the end sequence has been entered, and if this is affirmative, the flowchart ends (S407: Yes). If step S407 determines No, the process returns to step S402 (S407: No). According to the flowchart in FIG. 4, all maintenance target data registered in the management table 308 is set in the cache memory, and it is possible to prevent cache hit misses even if the priority application 301 suddenly operates.

なお、フローチャート終了の管理はフラグを用いた管理方法や、killシグナルやpthread_cancelのようなシグナルを、維持対象管理モジュール307が受け取ってキャンセルハンドラを呼びだす仕組み等、格別限定されない。また、維持対象管理情報308に、データ型の代わりにデータサイズが登録され、データアクセスモジュール306は、memcopyのような変数型によらずサイズを指定して、データのリード、ライトを実行してもよい。 The management of the end of a flowchart is not particularly limited, and may be a management method using a flag, or a mechanism in which the maintenance target management module 307 receives a signal such as a kill signal or pthread_cancel and calls a cancel handler. In addition, the data size may be registered in the maintenance target management information 308 instead of the data type, and the data access module 306 may specify the size regardless of the variable type such as memcopy to read and write data.

既述のデータアクセス(図6:S403)について詳しく説明する。データアクセスモジュール306のデータアクセスは読み出しと書き込みとを含む。データ読み出しは、if文による参照やzeroレジスタへのコピー等により実現される。プログラミング言語にもよるが、アセンブリを直接指定可能な場合にはload命令等がある。 The data access mentioned above (Figure 6: S403) will be explained in more detail. Data access by the data access module 306 includes reading and writing. Data reading is achieved by referencing using an if statement or copying to the zero register, etc. Although it depends on the programming language, there are commands such as the load command when an assembly can be directly specified.

そのほか、例えば、ARMのCPUに実装されているプリフェッチ命令でも読み出しと同様の効果が得られる。キャッシュメモリのラインサイズは通常32~64バイトが多く、キャッシュメモリのラインに格納されている全データをアクセスする必要は無く、ラインごとに1つのデータをアクセスすることにより同ラインに格納されたデータのキャッシュ維持が可能である。 In addition, for example, the prefetch command implemented in ARM CPUs can also achieve the same effect as reading. The line size of cache memory is usually 32 to 64 bytes, and there is no need to access all the data stored in a line of cache memory. By accessing one piece of data per line, it is possible to maintain the cache of data stored in the same line.

データ書き込みは、例えば target_data = target_data + 0;の形で対象自身に同じデータを書き込むなどにより実現される。アセンブリが直接指定可能な場合、store命令によってもよい。 Data writing is achieved by writing the same data to the target itself, for example in the form target_data = target_data + 0;. If the assembly can be specified directly, it can also be done using the store command.

データアクセス(S403)に基づく、キャッシュメモリへのデータの維持は、L1キャッシュ109、及び、/又は、L2キャッシュ111への維持対象データの登録を含む。例えば、図7において、データアクセスモジュール306は、L1キャッシュ109に維持対象データが存在すればLRUカウンタを更新し、当該データがL1キャッシュ109に存在せず、L2キャッシュ111に存在する場合には、L2キャッシュからデータを読み出してLRUカウンタを更新して格納する。データがL2キャッシュ111にも存在しない場合には、データアクセスモジュール306は、メインメモリ103からデータを読み出して、データをL2キャッシュ111にLRUカウンタを更新して格納する(S1)。 Maintaining data in cache memory based on data access (S403) includes registering the data to be maintained in the L1 cache 109 and/or the L2 cache 111. For example, in FIG. 7, the data access module 306 updates the LRU counter if the data to be maintained is present in the L1 cache 109, and if the data is not present in the L1 cache 109 but is present in the L2 cache 111, reads the data from the L2 cache, updates the LRU counter, and stores the data. If the data is not present in the L2 cache 111 either, the data access module 306 reads the data from the main memory 103, updates the LRU counter, and stores the data in the L2 cache 111 (S1).

以上により、少なくともL2キャッシュ111に、優先アプリケーション301が必要とするデータが維持された状態を、優先アプリケーション301が動作する前に形成しておくことが可能になる。なお、L2キャッシュ111はL1キャッシュ109に比べて、アクセスのための時間を要するが、キャッシュ維持アプリケーション304の負荷は小さい、と云ってよい。 As a result, it is possible to create a state in which the data required by the priority application 301 is maintained at least in the L2 cache 111 before the priority application 301 operates. Note that although the L2 cache 111 requires more time to access than the L1 cache 109, it can be said that the load on the cache maintenance application 304 is small.

また、図8に示すように、データアクセスモジュール306は、メインメモリ103から維持対象データを読み出し、当該データをL1キャッシュ109の同じアドレスへ書込むことによって、L1キャッシュ109へ維持対象データを格納することができる(S2)。 Also, as shown in FIG. 8, the data access module 306 can store the data to be maintained in the L1 cache 109 by reading the data to be maintained from the main memory 103 and writing the data to the same address in the L1 cache 109 (S2).

一方、コア1に存在する所定アプリケーションがスヌープ機能に基づいてコア2にあるL1キャッシュ109から維持対象データを読み込んで、当該データをL1キャッシュ108に維持することが可能となる(S3)。スヌープの機能の分、キャッシュ維持アプリケーション304に加わる負荷は大きくなるが、優先アプリケーション301は自身のコア1(105)のL1キャッシュ108の維持対象データにアクセスできるために、優先アプリケーション301が実行される際のリアルタイム性が向上する。キャッシュの実装方法やアプリケーション構成によってはL2キャッシュ111に前記対象データを維持するのが困難な場合もあるため、L1キャッシュ109に維持対象データを格納することは望ましい。 Meanwhile, a specific application in core 1 can read the data to be maintained from the L1 cache 109 in core 2 using the snoop function, and maintain the data in the L1 cache 108 (S3). Although the load on the cache maintenance application 304 increases due to the snoop function, the priority application 301 can access the data to be maintained in the L1 cache 108 of its own core 1 (105), improving real-time performance when the priority application 301 is executed. Depending on the cache implementation method and application configuration, it may be difficult to maintain the target data in the L2 cache 111, so it is desirable to store the data to be maintained in the L1 cache 109.

図9に、コア2がキャッシュ維持アプリケーション304を実行している態様(図3)とキャシュアプリケーション304が付加されていない従来態様とについて、タイミングチャートに於ける比較結果を示す。図9の上段が後者のチャートを示し、図9の後段が前者のチャートである。図9の縦軸がアプリケーションの優先度を示し、横軸が時間経過を示す。縦軸の矢印方向が、優先度が高いことを示す。301は既述のとおり優先アプリケーションであり、302は通常アプリケーションであり、夫々コア1に属する。304は既述のとおり、キャシュ維持アプリケーションである。 Figure 9 shows a comparison of timing charts between the mode in which core 2 is executing cache maintenance application 304 (Figure 3) and a conventional mode in which cache application 304 is not added. The upper part of Figure 9 shows the latter chart, and the lower part of Figure 9 shows the former chart. The vertical axis of Figure 9 indicates the priority of the application, and the horizontal axis indicates the passage of time. The direction of the arrow on the vertical axis indicates higher priority. As already mentioned, 301 is a priority application, and 302 is a normal application, both of which belong to core 1. As already mentioned, 304 is a cache maintenance application.

図9の“H”は、前者に於ける優先アプリケーション301の所要時間と後者に於ける優先アプリケーション301の所要時間との差分である。後者においては、コア2にキャッシュ維持アプリケーション304が存在しないため、これが、オーバーヘッドとなって、優先アプリケーション301の開始から終了までHで示される時間幅の分長くなる。 "H" in Figure 9 is the difference between the time required for the priority application 301 in the former and the time required for the priority application 301 in the latter. In the latter, since the cache maintenance application 304 does not exist in core 2, this becomes overhead and increases the time from the start to the end of the priority application 301 by the time width indicated by H.

従来、通常アプリケーション302が膨大なデータを利用してキャッシュを使いきってしまうと、優先アプリケーション301に係るデータはキャッシュメモリから削除されてしまい、優先アプリケーション301の遅延に繋がり、そのリアルタイム性が保証されない。キャッシュ維持アプリケーション304を、優先アプリケーション301とこれ以外のアプリケーション302とが混在するコアと別コアにおいて駆動させることにより、優先アプリケーション301の優先処理を妨げることなく、優先アプリケーション301が使用する可能性がある全てのデータ(命令およびデータ)をキャッシュメモリに維持できる。 Conventionally, if normal application 302 uses up a huge amount of data and the cache becomes full, data related to priority application 301 is deleted from the cache memory, which leads to delays in priority application 301 and its real-time performance is not guaranteed. By running cache maintenance application 304 in a core other than the core in which priority application 301 and other applications 302 coexist, all data (commands and data) that priority application 301 may use can be maintained in the cache memory without interfering with the priority processing of priority application 301.

既述の従来例のように、優先アプリケーションのキャッシュヒットミスを防ぐために、優先アプリケーションを非緊急時に実行しても、緊急制御時に於ける、優先アプリケーションのための入力値とは異なるため、結局のところ、緊急制御が必要になった時点では、優先アプリケーションに必要な命令やデータをキャッシュ維持できない。 As in the conventional example described above, even if a priority application is executed in a non-emergency to prevent a cache miss for the priority application, the input values for the priority application during emergency control are different, so ultimately, when emergency control becomes necessary, the commands and data required for the priority application cannot be maintained in the cache.

一方、既述の実施形態によれば、キャシュ維持アプリケーション304によって、緊急時直前までに、優先アプリケーションに必要な命令やデータをキャッシュメモリに維持することができる。なお、図1に係る制御システムは、自動車の自動運転の他、電源ユニット制御やロボット制御等、様々な緊急制御を必要とする技術分野に適用することができる。 On the other hand, according to the embodiment described above, the cache maintenance application 304 can maintain the commands and data required for the priority application in the cache memory until just before the emergency occurs. The control system of FIG. 1 can be applied to various technical fields requiring emergency control, such as automatic driving of automobiles, power supply unit control, and robot control.

マルチコアの制御システムに於ける、アプリケーションの高速化方法としてはシングルコア向けアプリケーションを移植する方法があるが、シングルコア向けに作られたプログラム群をマルチコア上で実行する場合、実行タイミングの変化などによりタスク間のデッドロックやバグの誘発という危険性があり、プログラムの設計やその検証のやり直しが必要となる。これに対して、既述の実施形態によれば、この種の対応を必要とすることなく、優先アプリケーションの高速化を達成することができる。 One method of speeding up applications in a multi-core control system is to port single-core applications, but when running a group of programs made for a single core on a multi-core, there is a risk of deadlocks between tasks or bugs being induced due to changes in execution timing, making it necessary to redesign and verify the programs. In contrast, according to the embodiment described above, it is possible to speed up priority applications without the need for this type of response.

次に、第2の実施形態について説明する。図10は、第2の実施形態に係る制御システムの機能ブロック図であり、図11は、第2の実施形態に係る維持対象管理情報308である。第2の実施形態が第1の実施形態と異なる点は、キャシュ維持アプリケーション304が維持依頼管理モジュール901を備えることである。維持依頼管理モジュール901は、優先アプリケーション301からのリクエストによって、維持対象管理モジュール307を経由して、維持対象管理情報308に、維持対象データの帰属先としてのアプリケーションを追加、変更、又は、削除する。 Next, the second embodiment will be described. FIG. 10 is a functional block diagram of a control system according to the second embodiment, and FIG. 11 is maintenance target management information 308 according to the second embodiment. The second embodiment differs from the first embodiment in that the cache maintenance application 304 includes a maintenance request management module 901. In response to a request from the priority application 301, the maintenance request management module 901 adds, changes, or deletes an application as the destination of the maintenance target data in the maintenance target management information 308 via the maintenance target management module 307.

図11の維持対象管理情報308には、このアプリケーション名が登録されている。リクエストの内容は、アプリケーションのID、維持対象データ数、維持対象データそれぞれのアドレス、および、変数型を含む。アプリケーションのIDはスレッドIDやプロセスIDなど、アプリケーションをコア1に実装する形態に合わせて変えてよい。維持対象データの変数型はデータのサイズに置き換えてもよい。 The name of this application is registered in the maintenance target management information 308 in Figure 11. The request contents include the application ID, the number of data items to be maintained, the address of each piece of data to be maintained, and the variable type. The application ID may be changed to a thread ID, process ID, or the like, depending on the form in which the application is implemented on core 1. The variable type of the data to be maintained may be replaced with the size of the data.

状況変化により、維持対象データをキャッシュメモリに維持することが必要無くなった際、優先アプリケーション301は、キャッシュ維持をキャンセルできるようにしてもよい。維持依頼管理モジュール901は、優先アプリケーション301からキャンセルリクエストを受け取り、維持対象管理モジュール307を経由して、維持対象管情報308から、キャンセルリクエストに係るアプリケーションの情報を削除する。キャンセルリクエストの内容はアプリケーションのID、キャンセル対象データ数、キャンセル対象データそれぞれのアドレス及び変数型を含む。 When a change in circumstances means that it is no longer necessary to maintain the data to be maintained in the cache memory, the priority application 301 may be able to cancel the cache maintenance. The maintenance request management module 901 receives a cancellation request from the priority application 301, and deletes the information of the application related to the cancellation request from the maintenance target management information 308 via the maintenance target management module 307. The contents of the cancellation request include the application ID, the number of data to be canceled, and the address and variable type of each of the data to be canceled.

キャンセル時のデータ指定を簡単化するため、維持依頼管理モジュール901は、依頼時に、維持対象データ群と結びついたラベルを生成し、依頼元アプリケーションへラベルを返し、キャンセル時にラベルを指定する形式を採ってもよい。さらに、通常アプリケーション302が誤って依頼をキャンセルしてしまうことを防ぐため、維持依頼管理モジュール901は、優先アプリケーション301以外からのキャンセル通知を拒否する形式や、キャンセル通知を受諾可能なアプリケーションを指定する形式を採用してもよい。 To simplify data specification at the time of cancellation, the maintenance request management module 901 may generate a label associated with the data group to be maintained at the time of the request, return the label to the requesting application, and specify the label at the time of cancellation. Furthermore, to prevent the normal application 302 from erroneously canceling the request, the maintenance request management module 901 may adopt a format that rejects cancellation notifications from applications other than the priority application 301, or a format that specifies an application that can accept cancellation notifications.

第2の実施形態によれば、システムの状況変化に応じて、複数の優先アプリケーションの中から、高速化を図るべき優先アプリケーションを変更することができる。例えば、自動車の自動運転システムにおいて、ドライバによる手動運転をサポートするモードと、システムが運転する自動運転のモードでは、夫々必要もしくは重要となるアプリケーションが異なる可能性がある。自動車に限らず、状況変化やモードの遷移などによりリアルタイム性を保障すべきアプリケーションが変わるようなシステムにおいて、アプリケーションからの依頼によりキャッシュ維持対象を変更することで、状況に応じて適したアプリケーションの高速化が可能となる。 According to the second embodiment, the priority application to be accelerated can be changed from among multiple priority applications in response to changes in the system situation. For example, in an autonomous driving system for an automobile, the applications that are necessary or important may be different in a mode that supports manual driving by the driver and an autonomous driving mode in which the system is driving. This is not limited to automobiles, but in any system in which the applications that require real-time performance change due to changes in the situation or mode transitions, changing the cache maintenance target at the request of the application makes it possible to accelerate the appropriate application according to the situation.

次に、制御システムの第3の実施形態について説明する。第3の実施形態は、複数の優先アプリケーション301の優先度に基づいて、キャッシュメモリに、複数の優先アプリケーション夫々の維持対象データの格納の順番、及び、頻度を決定することに特徴を有する。優先アプリケーションが複数存在するなど、キャッシュメモリに維持すべき対象データ数が多い場合、全データをキャッシュメモリに格納できない可能性がある。そこで、維持対象管理モジュール307(図3、図 10)は、例えば、複数の優先アプリケーション夫々の優先度にしたがって、キャッシュメモリに対象データを維持すべき、優先アプリケーションを決定、判定、又は、選定することとした。これを図12~14を用いて説明する。 Next, a third embodiment of the control system will be described. The third embodiment is characterized in that the order and frequency of storing the target data of each of the multiple priority applications 301 in the cache memory is determined based on the priority of the multiple priority applications 301. When there is a large amount of target data to be maintained in the cache memory, such as when there are multiple priority applications, it may not be possible to store all of the data in the cache memory. Therefore, the maintenance target management module 307 (Figures 3 and 10) determines, judges, or selects the priority application whose target data should be maintained in the cache memory, for example, according to the priority of each of the multiple priority applications. This will be described using Figures 12 to 14.

図12は、第3の実施形態に係る維持対象管理情報308の一例である。この管理テーブル308には、優先アプリケーションの優先度が追加されている。図13は、キャッシュ維持アプリケーション304の動作を説明するフローチャートである。図14は、キャッシュ維持アプリケーション304によって、対象データをキャッシュメモリに維持されるアプリケーションの遷移を表したタイムチャートである。 Figure 12 is an example of the maintenance target management information 308 according to the third embodiment. The priority of the priority application is added to this management table 308. Figure 13 is a flowchart explaining the operation of the cache maintenance application 304. Figure 14 is a time chart showing the transition of applications whose target data are maintained in the cache memory by the cache maintenance application 304.

維持対象管理情報308は、図12に示されるように、アプリケーションの優先度、インデックス、対象数、連続維持数が追加されており、各データとアプリケーションとをタグ(インデックス)によって結び付けている。維持対象管理情報308は、維持数と、対象アプリケーションごとの選択番号とを保持している。 As shown in FIG. 12, the maintenance target management information 308 includes the application priority, index, target number, and continuous maintenance number, and links each data item to the application by a tag (index). The maintenance target management information 308 holds the maintenance number and a selection number for each target application.

図13に示すように、まず、維持対象管理モジュール307は、維持数と各選択番号を0にセットする(S1201)。その後、維持対象管理モジュール307は、維持対象管理情報308(図12)にて管理している対象アプリケーション間の優先度を比較し、優先度比率に応じて各アプリケーションの連続維持数を決定する(S1202)。 As shown in FIG. 13, first, the maintenance target management module 307 sets the maintenance count and each selection number to 0 (S1201). After that, the maintenance target management module 307 compares the priorities between the target applications managed in the maintenance target management information 308 (FIG. 12), and determines the continuous maintenance count for each application according to the priority ratio (S1202).

図12のように、アプリケーション間の優先度比率(App_A:App_B)が2:1であった場合、維持対象管理モジュール307は、アプリケーションAとアプリケーションBについて、連続してキャッシュ維持を行う対象数の比率を優先度の比率と同様に2:1にする。そのうえで、データアクセスモジュール306は、優先度の高いアプリケーションから順番に選択する(S1203)。 As shown in FIG. 12, when the priority ratio between applications (App_A:App_B) is 2:1, the maintenance target management module 307 sets the ratio of the number of targets for continuous cache maintenance for application A and application B to 2:1, the same as the priority ratio. Then, the data access module 306 selects applications in order of priority (S1203).

データアクセスモジュール306は、選択したアプリケーションのインデックスを参照し、選択したアプリケーションの中で選択番号と一致するデータを選択し(S1204)、対象データのアドレス及び変数型情報を取得する(S1205)。データアクセスモジュール306は、取得したデータ情報をもとに、データアクセスを行う(S1206)。 The data access module 306 references the index of the selected application, selects data from the selected application that matches the selection number (S1204), and obtains the address and variable type information of the target data (S1205). The data access module 306 accesses the data based on the obtained data information (S1206).

データアクセスモジュール306は、維持数および選択番号を1インクリメントし(S1207)、選択番号が選択アプリケーションの対象数に達した場合(S1208:Yes)、選択番号を0にリセットする(S1209)。選択番号が選択アプリケーションの対象数に到達していない場合、そのまま次のステップへ進む(S1208:No)。 The data access module 306 increments the maintenance count and the selection number by 1 (S1207), and if the selection number reaches the target number of selected applications (S1208: Yes), resets the selection number to 0 (S1209). If the selection number has not reached the target number of selected applications, the process proceeds directly to the next step (S1208: No).

データアクセスモジュール306は、維持数が選択アプリケーションの連続維持数に達した場合(S1210:Yes)、選択アプリケーションを次の優先度のアプリケーションに変更する(S1211)。維持数が選択アプリケーションの連続維持数に到達していない場合、キャシュ維持アプリケーション304はそのまま次のステップへ進む(S1210のNo)。 If the maintenance count reaches the continuous maintenance count of the selected application (S1210: Yes), the data access module 306 changes the selected application to the application of the next priority (S1211). If the maintenance count has not reached the continuous maintenance count of the selected application, the cache maintenance application 304 proceeds directly to the next step (S1210: No).

その後、データアクセスモジュール306は、システムが終了シーケンスに入っているか確認し、入っている場合にはシステムを終了する(S1212:Yes)。システム終了でない場合、キャシュ維持アプリケーション304はS1204へ戻り、システム終了までS1204~S1212を繰り返す(S1212:No)。 Then, the data access module 306 checks whether the system is in a shutdown sequence, and if so, shuts down the system (S1212: Yes). If the system is not shutting down, the cache maintenance application 304 returns to S1204 and repeats S1204 to S1212 until the system is shut down (S1212: No).

データアクセスモジュール306は、図14に示すように、App_A(アプリケーションA)用の維持対象データの全てにアクセスしたのち、App_B(アプリケーションB)用の維持対象データの途中までアクセスする。次いで、キャシュ維持アプリケーション304は、App_Aのための維持に戻り、これを完了したらApp_B用の残りのための維持を継続する。以後これを繰り返す。アプリケーションAとアプリケーションBとの間の比率は、アプリケーションの優先度に依らず、イベント発生からデッドラインまでの時間や頻度等によって決定されてもよい。さらに、連続維持数を連続維持時間に代えてもよい。 As shown in FIG. 14, the data access module 306 accesses all of the data to be maintained for App_A (application A), and then accesses part of the data to be maintained for App_B (application B). Next, the cache maintenance application 304 returns to maintaining data for App_A, and when this is completed, continues maintaining the remaining data for App_B. This process is repeated thereafter. The ratio between application A and application B may be determined by the time from the occurrence of an event to the deadline, frequency, etc., regardless of the priority of the applications. Furthermore, the continuous maintenance count may be replaced with the continuous maintenance time.

第3の実施例によれば、アプリケーションの優劣に基づいて、アプリケーションのキャッシュに維持対象データの格納順番や頻度を制御することにより、優先アプリケーションが複数あっても、その中でより重要度が高いアプリケーションを優先して維持対象データをキャッシュメモリに保持させることが可能となる。なお、同一アプリケーション用の複数の維持対象データ間で優先度等の優劣を設けてキャッシュへメモリへのデータ維持を実行してもよい。 According to the third embodiment, by controlling the order and frequency of storing data to be maintained in the cache of an application based on the priority of the application, even if there are multiple priority applications, it is possible to hold data to be maintained in the cache memory with priority given to the application with the highest importance. Note that data maintenance in the cache and memory may be performed by setting priority, etc., between multiple data to be maintained for the same application.

次に、第4の実施形態について説明する。この実施形態は、キャシュメモリにデータを維持すべき対象となるアプリケーションが複数存在する場合に、アプリケーションが起動するまでの時間に基づいて、複数のアプリケーション間でのデータの維持に関する順番等の優劣を決定する点に特徴を有する。図15は、第4の実施形態に係る制御システムの機能ブロック図である。図16は、第4の実施形態に係る維持対象管理情報308の一例を示す。図17は、第4の実施形態に於ける、キャシュ維持アプリケーション304の動作を示すフローチャートである。 Next, the fourth embodiment will be described. This embodiment is characterized in that when there are multiple applications for which data should be maintained in the cache memory, the priority of the order of data maintenance among the multiple applications is determined based on the time it takes for the application to start up. Figure 15 is a functional block diagram of a control system according to the fourth embodiment. Figure 16 shows an example of maintenance target management information 308 according to the fourth embodiment. Figure 17 is a flowchart showing the operation of a cache maintenance application 304 in the fourth embodiment.

キャッシュ維持アプリケーション304は、既述の第2の実施形態に係る制御システムの機能ブロックに加えて、周期/時間管理モジュール1401とタイマ設定モジュール1402とを備える。周期/時間管理モジュール1401は、図16の維持対象管理情報308に示すように、各アプリケーションについて、アプリケーションの実行周期と、当該周期と時刻に基づいて各アプリケーションが起動されるまでの時間と、を管理している。 The cache maintenance application 304 includes a cycle/time management module 1401 and a timer setting module 1402 in addition to the functional blocks of the control system according to the second embodiment described above. As shown in the maintenance target management information 308 in FIG. 16, the cycle/time management module 1401 manages, for each application, the application execution cycle and the time until each application is started based on the cycle and the time.

周期/時間管理モジュール1401は、先ず、各アプリケーションの周期と前回の起動時刻から次の起動時刻を更新し、起動時刻が近いアプリケーションを選択する(S1601)。その後は、データアクセスモジュール306は、実施例3と同様に選択したアプリケーションの維持対象データ情報を取得し(S1602)、データアクセスを行う(S1603)。これをシステムが終了するまで繰り返す(S1604)。 The cycle/time management module 1401 first updates the next startup time from the cycle and previous startup time of each application, and selects the application with the closest startup time (S1601). Thereafter, the data access module 306 acquires the data information to be maintained for the selected application, as in the third embodiment (S1602), and performs data access (S1603). This is repeated until the system is shut down (S1604).

周期/時間管理モジュール1401は、複数のアプリケーションの中から特定のアプリケーションを選択する際、キャッシュ維持に要する時間に基づいて、選択したアプリケーションが起動するまでにキャッシュ維持が完了できるアプリケーションを選択するようにしてもよい。また、キャッシュ維持アプリケーション304を常に動作させるのではなく、対象アプリケーションの次回起動時刻から維持に必要な起動時刻を算出し、タイマ設定機能1402によりタイマ1403をセットすることで、キャッシュ維持アプリケーションの駆動時刻を制御してもよい。 When selecting a specific application from among multiple applications, the cycle/time management module 1401 may select an application that can complete cache maintenance before the selected application is launched, based on the time required for cache maintenance. Also, instead of constantly running the cache maintenance application 304, the startup time required for maintenance may be calculated from the next startup time of the target application, and the timer setting function 1402 may be used to set the timer 1403, thereby controlling the operation time of the cache maintenance application.

第4の実施形態によれば、キャッシュ維持対象としての複数のアプリケーションの夫々の次回起動時刻、即ち、夫々のアプリケーションの駆動タイミングに基づいて、複数のアプリケーションに対する、キャッシュ維持の優劣の一つとしての順番を決定することにより、実行タイミングが近いアプリケーションを優先して高速化を実現できる。また、キャッシュ維持時間とタイマを用いた駆動タイミング管理により、キャッシュ維持アプリケーション304の負荷を必要最小限に抑えることが可能である。 According to the fourth embodiment, the order of cache maintenance for multiple applications is determined based on the next start time of each of the multiple applications to be cached, i.e., the drive timing of each application, thereby enabling applications with close execution timing to be prioritized and speeded up. In addition, by managing the drive timing using the cache maintenance time and a timer, it is possible to keep the load on the cache maintenance application 304 to a necessary minimum.

次に、本発明に係る制御システムのハードウェア構成の他の例を図面に示す。図18は、L1キャッシュ108もL2キャッシュ111と同様に、コア外でCPU内に構成されている例を示すブロック図である。図19は、L1キャッシュ108とL2キャッシュ111とも、マルチコアの夫々のコア内に構成されている例を示すブロック図である。図20は、図1のL1キャッシュ108とL2キャッシュ111とに加えて、各コア外でCPU102内にL3キャッシュ117が追加されている例を示すブロック図である。図21は、図19の制御システムの各コア外でCPU102内にL3キャッシュ117が追加されている例を示すブロック図である。CPU102がL3キャッシュを備える形態では、維持対象データをL3キャッシュ117に維持するようにしてもよい。 Next, another example of the hardware configuration of the control system according to the present invention is shown in the drawings. FIG. 18 is a block diagram showing an example in which the L1 cache 108 is configured in the CPU outside the core, similar to the L2 cache 111. FIG. 19 is a block diagram showing an example in which both the L1 cache 108 and the L2 cache 111 are configured in each core of a multi-core. FIG. 20 is a block diagram showing an example in which an L3 cache 117 is added in the CPU 102 outside each core, in addition to the L1 cache 108 and the L2 cache 111 in FIG. 1. FIG. 21 is a block diagram showing an example in which an L3 cache 117 is added in the CPU 102 outside each core of the control system in FIG. 19. In a form in which the CPU 102 has an L3 cache, the data to be maintained may be maintained in the L3 cache 117.

101 制御システム
102 CPU
103 メインメモリ
104 周辺装置
105 コア1
106 コア2
107 コアN
108 L1キャッシュ(コア1内)
109 L1キャッシュ(コア2内)
110 L1キャッシュ(コアN内)
111 L2キャッシュ
301 優先アプリケーション
302 通常アプリケーション
303 スケジューリングモジュール
304 キャッシュ維持アプリケーション
305 他アプリケーション
306 メモリアクセスモジュール
307 維持対象管理モジュール
308 維持対象管理情報
309 コア配置管理情報
901 維持依頼管理モジュール
1401 周期/時間管理モジュール
1402 タイマ設定モジュール
1403 タイマ
101 Control system 102 CPU
103 Main memory 104 Peripheral device 105 Core 1
106 Core 2
107 Core N
108 L1 cache (in core 1)
109 L1 cache (in core 2)
110 L1 cache (in core N)
111 L2 cache 301 Priority application 302 Normal application 303 Scheduling module 304 Cache maintenance application 305 Other application 306 Memory access module 307 Maintenance target management module 308 Maintenance target management information 309 Core allocation management information 901 Maintenance request management module 1401 Period/time management module 1402 Timer setting module 1403 Timer

Claims (9)

データの記憶制御システムであって、
複数のコントローラを備え、
前記複数のコントローラのうち第1のコントローラは、所定条件下で他のアプリケーションより優先される少なくとも一つの優先アプリケーションを実行し、
前記複数のコントローラのうち前記第1のコントローラ以外の他のコントローラである第2のコントローラは、前記優先アプリケーションの実行以前に当該優先アプリケーションの実行のための必要データを、当該優先アプリケーションがアクセス可能なキャッシュメモリに維持させておくようにし、
前記第2のコントローラは、前記優先アプリケーションが実行される前から前記キャッシュメモリに前記必要データの維持を継続し、前記優先アプリケーションが開始するタイミングで前記必要データの維持を中断する、
記憶制御システム。
A data storage control system, comprising:
With multiple controllers,
a first controller of the plurality of controllers executes at least one priority application that is prioritized over other applications under a predetermined condition;
a second controller, which is a controller other than the first controller among the plurality of controllers, maintains data required for execution of the priority application in a cache memory accessible by the priority application before execution of the priority application;
the second controller continues to maintain the necessary data in the cache memory from before the priority application is executed, and suspends the maintenance of the necessary data at a timing when the priority application is started;
Storage control system.
メインメモリを備え、
前記第1のコントローラと前記第2のコントローラは、夫々、マルチコアCPUの各コアであり、
前記メインメモリは前記必要データの管理情報を有し、
前記第2のコントローラは当該管理情報に基づいて、前記必要データを前記キャッシュメモリに維持する、
請求項1記載の記憶制御システム。
It has a main memory,
the first controller and the second controller are each a core of a multi-core CPU,
the main memory has management information for the necessary data;
the second controller maintains the necessary data in the cache memory based on the management information;
2. The storage control system according to claim 1.
前記キャッシュメモリはL1キャッシュとL2キャッシュとを含み、
前記第2のコントローラは、前記メインメモリから前記必要データを読み出して前記L1キャッシュ及び/又はL2キャッシュに格納する、
請求項2記載の記憶制御システム。
the cache memory includes an L1 cache and an L2 cache;
the second controller reads the necessary data from the main memory and stores the necessary data in the L1 cache and/or the L2 cache;
3. The storage control system according to claim 2.
前記第1のコントローラと第2のコントローラとは夫々前記L1キャッシュを備え、当該第2のコントローラは自身のL1キャシュに格納された前記必要データを、前記L2キャッシュを経由して前記第1のコントローラのL1キャッシュに維持するようにした、
請求項3記載の記憶制御システム。
The first controller and the second controller each include the L1 cache, and the second controller maintains the necessary data stored in its own L1 cache in the L1 cache of the first controller via the L2 cache.
4. The storage control system according to claim 3.
前記第1のコントローラは、前記優先アプリケーションとして複数のアプリケーションを実行でき、
メインメモリは、当該複数のアプリケーション毎に前記必要データを対応させた管理情報を有し、
前記第2のコントローラは、前記優先アプリケーションとしての複数のアプリケーションの少なくとも一つのアプリケーションからのリクエストに基づいて、前記管理情報を更新する、
請求項1記載の記憶制御システム。
the first controller is capable of executing a plurality of applications as the priority applications;
the main memory has management information that associates the necessary data with each of the plurality of applications;
the second controller updates the management information based on a request from at least one application of the plurality of applications as the priority application.
2. The storage control system according to claim 1.
前記第2のコントローラは、前記リクエストを発行したアプリケーションを前記管理情報から削除する、
請求項記載の記憶制御システム。
the second controller deletes the application that issued the request from the management information;
6. The storage control system according to claim 5 .
前記第1のコントローラは、前記優先アプリケーションとして複数のアプリケーションを実行でき、
前記メインメモリは、当該複数のアプリケーション毎に前記必要データを対応させた管理情報を有し、
前記第2のコントローラは、前記優先アプリケーションとしての複数のアプリケーション夫々の優先度に応じて、当該優先度が高いアプリケーションから優先的に前記必要データを前記キャッシュメモリに維持するようにした、
請求項記載の記憶制御システム。
the first controller is capable of executing a plurality of applications as the priority applications;
the main memory has management information that associates the necessary data with each of the plurality of applications;
the second controller maintains the necessary data in the cache memory in a manner that prioritizes an application having a higher priority in accordance with the priority of each of the plurality of applications as the priority applications;
3. The storage control system according to claim 2 .
前記第1のコントローラは、前記優先アプリケーションとして複数のアプリケーションを実行でき、
前記メインメモリは、当該複数のアプリケーション毎に前記必要データを対応させた管理情報を有し、
前記第2のコントローラは、前記優先アプリケーションとしての複数のアプリケーション夫々が起動するまでの時間に応じて、当該複数のアプリケーションに対する前記必要データを前記キャッシュメモリに維持する優劣を決定する、
請求項記載の記憶制御システム。
the first controller is capable of executing a plurality of applications as the priority applications;
the main memory has management information that associates the necessary data with each of the plurality of applications;
the second controller determines whether it is appropriate to maintain the necessary data for the plurality of applications in the cache memory in accordance with a time period required for each of the plurality of applications as the priority applications to be started.
3. The storage control system according to claim 2 .
複数のコントローラがデータの記憶のための制御を実行する記憶制御方法であって、
前記複数のコントローラのうち第1のコントローラは、所定条件下で他のアプリケーションより優先される少なくとも一つの優先アプリケーションを実行し、
前記複数のコントローラのうち前記第1のコントローラ以外の他のコントローラである第2のコントローラは、前記優先アプリケーションの実行以前に当該優先アプリケーションの実行のための必要データを、当該優先アプリケーションがアクセス可能なキャッシュメモリに維持させておくようにし、
前記第2のコントローラは、前記優先アプリケーションが実行される前から前記キャッシュメモリに前記必要データの維持を継続し、前記優先アプリケーションが開始するタイミングで前記必要データの維持を中断する、
記憶制御方法。
A storage control method in which a plurality of controllers executes control for storing data, comprising:
a first controller of the plurality of controllers executes at least one priority application that is prioritized over other applications under a predetermined condition;
a second controller, which is a controller other than the first controller among the plurality of controllers, maintains data required for execution of the priority application in a cache memory accessible by the priority application before execution of the priority application;
the second controller continues to maintain the necessary data in the cache memory from before the priority application is executed, and suspends the maintenance of the necessary data at a timing when the priority application is started;
Storage control method.
JP2020189185A 2020-11-13 2020-11-13 Storage control system and storage control method Active JP7590852B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020189185A JP7590852B2 (en) 2020-11-13 2020-11-13 Storage control system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020189185A JP7590852B2 (en) 2020-11-13 2020-11-13 Storage control system and storage control method

Publications (2)

Publication Number Publication Date
JP2022078486A JP2022078486A (en) 2022-05-25
JP7590852B2 true JP7590852B2 (en) 2024-11-27

Family

ID=81707217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020189185A Active JP7590852B2 (en) 2020-11-13 2020-11-13 Storage control system and storage control method

Country Status (1)

Country Link
JP (1) JP7590852B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015668A (en) 2006-07-04 2008-01-24 Toyota Infotechnology Center Co Ltd Task management device
JP2012155439A (en) 2011-01-25 2012-08-16 Nec Corp Processor, information processing device, information processing method, and system start program
WO2014030387A1 (en) 2012-08-22 2014-02-27 三菱電機株式会社 Cache memory controller and method for controlling cache memory
JP2014146366A (en) 2014-04-03 2014-08-14 Fujitsu Ltd Multi-core processor system, and control method and control program of multi-core processor system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015668A (en) 2006-07-04 2008-01-24 Toyota Infotechnology Center Co Ltd Task management device
JP2012155439A (en) 2011-01-25 2012-08-16 Nec Corp Processor, information processing device, information processing method, and system start program
WO2014030387A1 (en) 2012-08-22 2014-02-27 三菱電機株式会社 Cache memory controller and method for controlling cache memory
JP2014146366A (en) 2014-04-03 2014-08-14 Fujitsu Ltd Multi-core processor system, and control method and control program of multi-core processor system

Also Published As

Publication number Publication date
JP2022078486A (en) 2022-05-25

Similar Documents

Publication Publication Date Title
US5649157A (en) Memory controller with priority queues
US5130922A (en) Multiprocessor cache memory system using temporary access states and method for operating such a memory
US5043886A (en) Load/store with write-intent for write-back caches
KR101607905B1 (en) Interrupt control for virtual processing apparatus
JP5914145B2 (en) Memory protection circuit, processing device, and memory protection method
CN113924558B (en) Memory pipeline control in hierarchical memory system
KR101858597B1 (en) Processing in memory system and method for transmitting job, operand data, and calculation results of processing in memory system
US5615167A (en) Method for increasing system bandwidth through an on-chip address lock register
US20020040382A1 (en) Multiprocessor system, processor module for use therein, and task allocation method in multiprocessing
US8555001B2 (en) Cache memory, including miss status/information and a method using the same
JPH11174952A (en) Map data look-ahead method and map scroll method
JP5213485B2 (en) Data synchronization method and multiprocessor system in multiprocessor system
CN114528230B (en) Cache data processing method and device and electronic equipment
JP7590852B2 (en) Storage control system and storage control method
JP3814521B2 (en) Data processing method and apparatus
JP2002032264A (en) Cache memory device and central processing unit using the same
JPH04100158A (en) Cache control method
US10366013B2 (en) Caching structure for nested preemption
JP5146444B2 (en) Multiprocessor system and control method thereof
KR102476438B1 (en) Apparatus and method for providing atomic set of data access
JP2746189B2 (en) File access control system
JPH0628258A (en) Microprocessor
JPH1139214A (en) A shared memory control method for multiprocessor systems.
JP2002259209A (en) Arithmetic processing system
JP3378270B2 (en) Multiprocessor system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241011

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241115

R150 Certificate of patent or registration of utility model

Ref document number: 7590852

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150