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
JP4837247B2 - プロセッサ - Google Patents
[go: Go Back, main page]

JP4837247B2 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP4837247B2
JP4837247B2 JP2003331964A JP2003331964A JP4837247B2 JP 4837247 B2 JP4837247 B2 JP 4837247B2 JP 2003331964 A JP2003331964 A JP 2003331964A JP 2003331964 A JP2003331964 A JP 2003331964A JP 4837247 B2 JP4837247 B2 JP 4837247B2
Authority
JP
Japan
Prior art keywords
program
application program
interrupt
dma
control system
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 - Lifetime
Application number
JP2003331964A
Other languages
English (en)
Other versions
JP2005100034A (ja
Inventor
光典 法貴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003331964A priority Critical patent/JP4837247B2/ja
Priority to US10/946,009 priority patent/US8135909B2/en
Priority to CNB2004100118457A priority patent/CN100365594C/zh
Publication of JP2005100034A publication Critical patent/JP2005100034A/ja
Application granted granted Critical
Publication of JP4837247B2 publication Critical patent/JP4837247B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)

Description

本発明は情報処理制御システムに関し、特に、キャッシュメモリに格納する命令を入れ替えながらリアルタイム処理を実現することが必要なシステムを支援するものである。
図15に一般的なキャッシュを用いた情報処理制御システムの構成を示す。このシステムは、プログラムの全命令を格納する主記憶メモリ400Hと、必要な命令のみを格納するキャッシュメモリ401Hと、主記憶メモリおよびキャッシュメモリの制御を行うキャッシュコントローラ402Hと、キャッシュメモリに格納された命令を実行するプロセッサ403Hとを備える。
上記情報処理制御システムでは、キャッシュメモリ401H上に必要な命令がある場合は、キャッシュメモリ401Hに格納されている命令をプロセッサ403Hが解読して実行する。キャッシュメモリ401H上に必要な命令が無い場合はミスヒットが発生し、プロセッサを止めるかカーネルプログラムでポーリング(待つこと)し、その間に、キャッシュコントローラ402Hが主記憶メモリ400Hからキャッシュメモリ401Hへ必要な命令を転送し、キャッシュメモリ401H内の命令が有効になった時点でプロセッサ403Hがミスヒットの発生した時点の命令を再開する。
上記情報処理制御システムにおいて、キャッシュメモリに格納する命令を入れ替えながらプログラムを実行する場合のプログラムの流れを図16に示す(例えば、非特許文献1参照)。図16において、420は時間の流れを示し、421はKernel programの処理を示し、422はApplication programの処理を示す。423はKernel programとApplication programとの間を行き来するプログラムの流れを示し、424は主記憶メモリからキャッシュメモリへ必要な命令のDown load起動を示し、425はキャッシュメモリに必要な命令がなかった場合に発生するMiss hit割り込みを示す。420t,423t,426tはプログラムがKernel programからApplication programへ処理が移行する時刻を示し、421t,424tはプログラムがApplication programからKernel programへ処理が移行する時刻を示し、422t,425tは主記憶メモリからキャッシュメモリへ必要な命令のDown load起動時刻を示す。
以下、Kernel programとApplication programとの間を行き来するプログラムの流れ423について説明する。Kernel programから起動されるプログラムは時刻420tでApplication programへ処理が移行する。その後、Application programはMiss hit割り込み425が発生するまで実行される。時刻421tにMiss hit割り込み425が発生すると、プログラムはApplication programからKernel programへ処理が移行する。Kernel programでポーリングしている間の時刻422tに主記憶メモリからキャッシュメモリへ必要な命令のDown loadが起動される。時刻423tでDown loadが完了すると、Kernel programからApplication programへ処理が移行し、Miss hit割り込み425が発生した時点(421t)の命令からプログラムが再開される。なお、Miss hit割り込み425が発生してからDown loadが完了するまでの処理としては、Kernel programでポーリングしても、Application programで命令を停止していてもどちらでもかまわない。
上記情報処理制御システムにおけるキャッシュコントローラ402Hの内部構成を図17に示す(例えば、非特許文献1参照)。図17において、440はプログラム上の論理アドレスと物理アドレスとの対応を示すCache Table Registerを示し、442はTag Addressを示し、443は物理Addressを示す。441は、Tag Address442と物理Address443の対応が有効か無効かを示すValid flagを示す。444はプログラムの論理Addressの上位を示し、445はプログラムの論理Addressの下位を示す。446はCache Addressの上位を示し、447はCache Addressの下位を示す。447は445と同じ信号である。449は比較回路を示し、450はMiss hit割り込みを発生させるMiss hit flagを示す。
以下、上記回路の動作を説明する。この回路では、プログラムの論理Addressの上位444とTag Address442を比較回路449で比較した結果が一致しておりかつValid flag441が有効であれば、物理Address443の上位をCache Addressの上位446として、さらに、プログラムの論理アドレスの下位445をCache Addressの下位447として、キャッシュメモリ401HにCache Addressとして送る。プログラムの論理Addressの上位444とTag Address442を比較回路449で比較した結果が一致かつValid flag441が有効であるものがCache Table Register440内に存在しない場合は、Miss hit flag450がActiveになり、Miss hit割り込みが発生する。
David A.Patterson/John L.Hennessy著「コンピュータの構成と設計 下」日経BP社、1996年4月19日
以上説明した従来の情報処理制御システムでは、プログラムを実行するために必要な命令がキャッシュメモリ上にない場合、ミスヒット(以降、Miss hitという表現も出てくるが意味は同じ)が発生し、必要な命令がキャッシュメモリ上にDown loadされるまでApplication programが停止するということが頻繁に発生する。そのため、命令を入れ替えながらリアルタイム処理を保証することができないという問題点があった。
さらに、従来の情報処理制御システムでは、あるApplication programでMiss hitが発生した場合、別のApplication programを起動し、その間に、Miss hitが発生したApplication programに必要な命令を主記憶メモリからキャッシュメモリへDown loadするという機構がないため、プロセッサの稼働率を下げてしまうという問題点があった。
さらに、従来の情報処理制御システムでは、Down loadしているDMAの状況やMiss hitの状況を示すflagがCache Table Registerにないため、必要な命令を主記憶メモリからキャッシュメモリへプロセッサが実行する前にあらかじめダウンロードし、さらに、Miss hit割り込み発生時にApplication programを切り替えることにより、命令入れ替えを行いながらリアルタイム処理を実現する情報処理制御システムを構築することができないという問題点があった。
さらに、従来の情報処理制御システムでは、Down loadしている命令のDMA完了を示すflagとしてValid flagしかないので、DMAが完了する度に割り込みが発生してしまい、割り込みによるプログラムの切り替えによるロスが頻繁に発生し、プロセッサの処理効率を下げてしまうという問題点があった。
本発明は以上のような問題点を解消するためになされたもので、命令を入れ替えながらリアルタイム処理を保証する情報処理制御システムを提供することを目的とする。
本発明の請求項1記載の情報処理制御システムは、オペレーティングシステムを制御するカーネルプログラムおよびアプリケーションを実行するアプリケーションプログラムと、プログラムの全命令を格納する主記憶メモリと、必要な命令のみを格納するキャッシュメモリと、キャッシュメモリに格納された命令を実行するプロセッサからなる情報処理制御システムにおいて、必要な命令を主記憶メモリからキャッシュメモリにプロセッサが実行する前にあらかじめダウンロードするように制御する仕組みを持つものである。
本発明の請求項2記載の情報処理制御システムは、請求項1記載の情報処理制御システムにおいて、カーネルプログラムおよびアプリケーションプログラムをあるまとまった単位で細分化し、細分化した単位毎に主記憶メモリからキャッシュメモリにプロセッサが実行する前にあらかじめダウンロードするように制御する仕組みを持つものである。
本発明の請求項3記載の情報処理制御システムは、請求項2記載の情報処理制御システムにおいて、さらに、キャッシュ内に必要な命令があるかないかを判定し、必要な命令を主記憶メモリからキャッシュメモリに転送するキャッシュコントローラを備えたシステムにおいて、キャッシュコントローラの状態を監視することにより、プログラム内部に必要な命令を主記憶メモリからキャッシュメモリにプロセッサが実行する前にあらかじめダウンロードする制御手段を持つものである。
本発明の請求項4記載の情報処理制御システムは、オペレーティングシステムを制御するカーネルプログラムおよびアプリケーションを実行するアプリケーションプログラムと、プログラムの全命令を格納する主記憶メモリと、必要な命令のみを格納するキャッシュメモリと、キャッシュ内に必要な命令があるかないかを判定し、必要な命令を主記憶メモリからキャッシュメモリに転送するキャッシュコントローラと、キャッシュメモリに格納された命令を実行するプロセッサからなる情報処理制御システムにおいて、プロセッサへの割り込み手段として、Miss hit割り込みおよびDMA完了割り込みを備え、Miss hit割り込みにより、カーネルプログラムがアプリケーションプログラムを切り替え、DMA完了割り込みにより、カーネルプログラムがMiss hit割り込みが発生したアプリケーションプログラムに復帰させることが出来る仕組みを持つものである。
本発明の請求項5記載の情報処理制御システムは、請求項4記載の情報処理制御システムにおいて、キャッシュコントローラの状態を監視することにより、プログラム内部にアプリケーションプログラム切り替え制御手段を持つものである。
本発明の請求項6記載の情報処理制御システムは、請求項2記載の情報処理制御システム、または、請求項4記載の情報処理制御システムにおいて、細分化された単位に対応した、命令の論理アドレスと物理アドレス対応表と、対応表に有効/無効flag、Miss hit管理flag、DMA管理flagを持つものである。
本発明の請求項7記載の情報処理制御システムは、請求項6記載の情報処理制御システムにおいて、請求項6記載の情報処理制御システムと、Miss hit発生時の命令フェッチプログラムカウンタ値とを用いて、Miss hit割り込み処理を実現するミスヒット割り込み機構を備え、Miss hit割り込み処理により、カーネルプログラムがアプリケーションプログラムを切り替えることが出来る手段を持つ、ものである。
本発明の請求項8記載の情報処理制御システムは、請求項6記載の情報処理制御システムにおいて、Miss hit管理flagとDMA管理flagを用いてDMA完了割り込みを発生するDMA Done割り込み機構を備え、それにより、カーネルプログラムがMiss hit割り込みが発生したアプリケーションプログラムへの復帰を実現できる手段を持つものである。
本発明の請求項9記載の情報処理制御システムは、請求項6記載の情報処理制御システムにおいて、カーネルプログラムおよびアプリケーションプログラムをあるまとまった単位で細分化し、細分化した単位毎に主記憶メモリからキャッシュメモリにプロセッサが実行する前にあらかじめダウンロードするように制御する仕組みを持つものである。
本発明の請求項10記載の情報処理制御システムは、請求項6記載の情報処理制御システムにおいて、プロセッサへの割り込み手段として、Miss hit割り込みおよびDMA完了割り込みを備え、Miss hit割り込みにより、カーネルプログラムがアプリケーションプログラムを切り替え、DMA完了割り込みにより、カーネルプログラムがMiss hit割り込みが発生したアプリケーションプログラムに復帰させることが出来る仕組みを持つものである。
本発明の請求項11記載の情報処理制御システムは、請求項6記載の情報処理制御システムにおいて、Miss hit発生時にアプリケーションプログラムを切り替え、その後、発生するDMA完了割り込みをマスクする機構を持つものである。
本発明の請求項12記載の情報処理制御システムは、請求項6記載の情報処理制御システムにおいて、キャッシュメモリにある命令を解読する命令解読装置と、プロセッサの状態を管理する状態管理装置を備え、プロセッサへの割り込みが発生すると、命令解読装置の出力を無効にし、さらに、状態管理装置をリセットする機構を持つものである。
本発明の請求項1にかかる情報処理制御システムによれば、Miss hitの発生頻度を下げることが出来、命令を入れ替えながらリアルタイム処理を実現することができるという効果がある。
本発明の請求項2にかかる情報処理制御システムによれば、Miss hitが発生する頻度を下げることが出来、ミスヒットペナルティーを低減することが出来、それにより、命令を入れ替えながらさらに高速なリアルタイム処理を実現することが出来るという効果がある。
本発明の請求項3にかかる情報処理制御システムによれば、module毎のPre loadを適切な時に適切な数だけ実行することが出来るという効果がある。なお、ここでは、必要な命令を主記憶メモリからキャッシュメモリへプロセッサが実行する前にあらかじめダウンロードすることをPre loadと呼び、Kernel programおよびApplication programをあるまとまった単位に細分化することをmodule化と呼ぶこととする。
本発明の請求項4にかかる情報処理制御システムによれば、命令を主記憶メモリからキャッシュメモリへdown loadすることで発生するミスヒットペナルティを隠蔽し、プロセッサとしての稼働率を上げることが出来るという効果がある。
本発明の請求項5にかかる情報処理制御システムによれば、Pre loadもしくはDown load実行によるミスヒットペナルティを隠蔽することが出来るという効果がある。
本発明の請求項6にかかる情報処理制御システムによれば、module単位でのPre loadや、Miss hit割り込み発生時にApplication programを切り替えながらプログラムを実行することが出来、命令入れ替えを行いながらリアルタイム処理を実現する情報処理制御システムを構築することが出来るという効果がある。
本発明の請求項7にかかる情報処理制御システムによれば、Pre load実行している状態でのMiss hit割り込みとPre load実行していない状態でのMiss hit割り込みのどちらの割り込みも処理することが出来るという効果がある。
本発明の請求項8にかかる情報処理制御システムによれば、DMA完了ごとに発生していたプログラムの切り替えロスを削減でき、プロセッサの処理効率の低下を抑えることが出来、DMA Done割り込みの発生を抑えることが出来、DMA Done割り込みの発生をコントロールすることが出来るという効果がある。
本発明の請求項9にかかる情報処理制御システムによれば、DMA Process flagからPre load実行状態を判定し、module毎のPre loadを適切な時に適切な数だけ実行することが出来るという効果がある。
本発明の請求項10にかかる情報処理制御システムによれば、Pre loadもしくはDown load実行によるミスヒットペナルティーを隠蔽することが出来、さらに、Miss hit割り込みが発生したApplication programへの復帰を早く実現できるという効果がある。
本発明の請求項11にかかる情報処理制御システムによれば、別Application programの処理を保護することが出来、また、割り込みマスクを解除した時点で、再び、DMA Done割り込みが発生するので、Miss hit割り込みが発生したApplication programに復帰することが出来るという効果がある。
本発明の請求項12にかかる情報処理制御システムによれば、無効な命令により状態管理装置が間違った状態に陥ることを防ぐことが出来、割り込み復帰後も命令解読を正常に行うことが出来るという効果がある。
以下、本発明の実施の形態を図面を参照して詳しく説明する。なお、図面において同一部分または相当部分には同一の符号を付してその説明は繰り返さない。
(第1の実施形態)
第1の実施形態による情報処理制御システムの構成を図1に示す。このシステムは、プログラムの全命令を格納する主記憶メモリ400Hと、必要な命令のみを格納するキャッシュメモリ401Hと、主記憶メモリ400Hおよびキャッシュメモリ401Hの制御を行うキャッシュコントローラ402Hと、キャッシュメモリ401Hに格納された命令を実行するプロセッサ403Hとを備える。
以下、図1に示した情報処理制御システムの動作について説明する。ここでは、必要な命令を主記憶メモリ400Hからキャッシュメモリ401Hへプロセッサ403Hが実行する前にあらかじめダウンロードすることをPre loadと呼ぶことにする。Pre loadを実現するにはPre loadを実現する仕組みをプログラムに組み込む必要がある。Application program内でのPre loadについては、Application program起動時にPre loadを起動するタイミング(プログラムカウンタ値)をBreak pointとしてレジスタに設定し、プログラムがBreak pointにヒットしたらBreak point割り込みが発生することによりPre loadが起動する方法と、Application program内部にPre load起動プログラムを直接記述することによりPre loadを起動する方法の2種類の方法がある。異なるApplication programに対するPre loadについてはそれぞれのApplication programがお互いのPre loadを起動するタイミングを知らないので、Kernel programがそれぞれのApplication programのPre loadを起動するタイミングをBreak pointとしてレジスタに設定し、プログラムがBreak pointにヒットしたらBreak point割り込みが発生し、Pre loadを起動する方法がある。
図1に示した情報処理制御システムにおいてPre loadを実現する場合のプログラムの流れを図2に示す。図2において、100は時間の流れを示し、101はKernel programの処理を示し、102はApplication program Aの処理を示し、103はApplication program Bの処理を示し、104はKernel programとApplication programを行き来するプログラムの流れを示し、105はBreak point割り込みを示し、106はPre load起動を示す。100tはPre load起動タイミングをBreak pointとしてレジスタに設定する時刻を示し、103tはPre load起動時刻を示し、101t,104tはKernel programからApplication program Aへ処理が移行する時刻を示し、102t,105tはApplication program AからKernel programへ処理が移行する時刻を示し、106tはKernel programからApplication program Bへ処理が移行する時刻を示す。
以下、Pre loadを実現する際のプログラムの流れを説明する。Kernel program起動後、時刻100tでPre load起動タイミングをBreak pointとしてレジスタに設定する。設定後、時刻101tでKernel programからApplication program Aへ処理が移行し、Application program Aの処理が始まる。Application program AがBreak pointで設定したプログラムカウンタに到達した時点でBreak point割り込み105が発生し、時刻102tでApplication program AからKernel programへ処理が移行する。Kernel programはBreak point割り込み105を受けて、時刻103tにApplication program Bに対するPre loadを起動する。Pre loadを起動するとKernel programの処理は終わり、時刻104tにKernel programからApplication program Aに処理が移行する。時刻105tでApplication program Aの処理がApplication program切り替えタイミングに到達すると、再びKernel programへ処理が移行する。Kernel programは時刻106tにApplication program Bを起動する。この時点では、Application program Bの命令がキャッシュメモリ401H上にPre loadされているので、Miss hit割り込みを発生させることなしに、Application program Bの処理を実行できる。
図2では異なるApplication programに対するPre loadについて説明したが、Application program内でのPre loadにおいても、Pre loadタイミングの設定方法が異なるだけで処理の流れとしては基本的に同じである。また、図2ではApplication programをA/Bの2種類しか記載していないが、Application programの数に制約があるわけではないということはいうまでもない。
このように第1の実施形態によれば、Application program内でのPre loadについては、Application program起動時にPre loadを起動するタイミング(プログラムカウンタ値)をBreak pointとしてレジスタに設定し、Break point割り込みによりPre loadが起動する方法と、Application program内部にPre load起動プログラムを直接記述することによりPre loadを起動する方法を取ることにより、Pre loadを実現し、異なるApplication programに対するPre loadについてはKernel programがそれぞれのApplication programのPre loadを起動するタイミングをBreak pointとしてレジスタに設定しBreak point割り込みにより、Pre loadを起動する方法を取ることによりPre loadを実現する。このようにしてPre loadを実現することにより、Miss hitの発生頻度を下げることができるので、命令を入れ替えながらリアルタイム処理を実現することができる。
(第2の実施形態)
第2の実施形態による情報処理制御システムの構成は図1に示したものと同様である。このシステムは、Pre load処理の単位をmodule化し、module化した単位毎にPre loadを実現する仕組みを持つことを特徴とする。
次に本発明の実施の形態2にかかる情報処理制御システムについて説明する。まず、Kernel programおよびApplication programをあるまとまった単位に細分化することをmodule化と呼ぶこととする。図3は、Kernel programやApplication program等のソフトウェアをmodule化した図である。ソフト構成としてはKernel programの上でApplication programが動作する構成となっている。120はmodule化したソフトウェアの全体構成を示し、121はKernel program、122はApplication program Aを示し、123はApplication program Bを示し、124はApplication program Cを示し、125はApplication program Dを示す。ここで示したApplication programはA/B/C/Dの4種類であるが、Application programの数に制約があるわけではないということは言うまでもない。Kernel program121、Application program122〜125はそれぞれmodule化され、module化された単位毎にPre loadを実現する仕組みを持っている。
図4は本実施の形態2により、module化したプログラムをPre loadする場合のプログラムの流れを示す。Pre load起動方法としては、Application program内でのPre loadについては、Break pointを設定することによりPre loadを起動する方法と、Application program内部にPre load起動タイミングをプログラムに直接記述することによりPre loadを起動する方法の2種類がある。図4では後者を用いて説明することとする。140は時間の流れを示し、141はKernel programの処理を示し、142はApplication program Aの処理を示し、143はApplication program Bの処理を示す。144はKernel programとApplication programを行き来するプログラムの流れを示し、145はPre load起動を示し、146はBreak point割り込みを示す。147,148,149はそれぞれApplication program Aのmodule A,module B,module Cの処理区間を示し、150,151はそれぞれApplication program Bのmodule A,module Bの処理区間を示す。140tはPre load起動タイミングをBreak pointとしてレジスタに設定する時刻を示し、143t,147t,151t,156tはPre load起動時刻を示し、141t,144t,148t,152tはKernel programからApplication program Aへ処理が移行する時刻を示し、142t,146t,150t,153tはApplication program AからKernel programへ処理が移行する時刻を示し、154t,157tはKernel programからApplication program Bへ処理が移行するタイミングを示し、155はApplication program BからKernel programへ処理が移行する時刻を示す。また、145tはApplication program A内部でmodule Aからmodule Bへ処理が移行する時刻を示し、149tはApplication program A内部でmodule Bからmodule Cへ処理が移行する時刻を示し、158tはApplication program B内部でmodule Aからmodule Bへ処理が移行する時刻を示す。
以下、module単位でPre loadを実現する際のプログラムの流れを説明する。Kernel program起動後、時刻140tでApplication program Bに対するPre load起動タイミングをBreak pointとしてレジスタに設定する。設定後、時刻141tでKernel programからApplication program Aへ処理が移行し、Application program Aの処理が始まる。Application program Aのmodule A内部に記述しているmodule Bに対するPre load起動命令を発行した時点でApplication program AからKernel programへ処理が移り(時刻142t)、時刻143tにおいてmodule Bに対するPre loadを起動する。Pre loadを起動するとKernel programの処理は終わり、時刻144tにKernel programからApplication program Aのmodule Aに処理が移行する。時刻145tに到達した時点で、Application program Aのmodule Aの処理が終わり、module Bの処理が開始される。Application program Aのmodule B内部に記述しているmodule Cに対するPre load起動命令を発行した時点でApplication program AからKernel programへ処理が移り(時刻146t)、時刻147tにmodule Cに対するPre loadを起動する。Pre loadを起動するとKernel programの処理は終わり、時刻148tにKernel programからApplication program Aのmodule Bに処理が移行する。時刻149tに到達した時点で、Application program Aのmodule Bの処理が終わり、module Cの処理が開始される。Application program Aのmodule CがBreak pointで設定したプログラムカウンタに到達した時点でBreak point割り込み146が発生し、時刻150tでApplication program AからKernel programへ処理が移行する。Kernel programはBreak point割り込み146を受けて、時刻151tにPre loadを起動する。Pre loadを起動するとKernel programの処理は終わり、時刻152tにKernel programからApplication program Aに処理が移行する。時刻153tでApplication program Aの処理がApplication program切り替えタイミングに到達すると、再びKernel programへ処理が移行する。Kernel programは時刻154tにApplication program Bを起動し、以降、Application program Bの処理が同様に行われる。Application program Aのmodule B,module CおよびApplication program Bのmodule Aの処理が始まる時点では、必要な命令がキャッシュメモリ上にPre loadされているので、Miss hit割り込みを発生させることなしにApplication programの処理を実行できる。
上記説明では述べていないがPre loadについては、moduleによっては、多数のmoduleに対してPre loadの起動を行うものや全くPre loadの起動を行わないものがあってもかまわない。
図4ではApplication programをA/Bの2種類、module をA/B/Cの3種類しか記載していないが、Application programやmoduleの数に制約があるわけではないということはいうまでもない。
このように実施の形態2によれば、Pre load処理の単位をmodule化し、module化した単位毎にPre loadを実現する仕組みを持つことにより、module化する前に比べて、Pre load起動の予測精度があがり、そのことにより、Miss hitの発生頻度を下げることができる。さらに、一回のPre loadにかかるDMA時間も短縮することができるため、仮にMiss hitが発生したとしてもミスヒットペナルティーを低減することができる。このように実施の形態2では命令を入れ替えながらリアルタイム処理を実現することができ、さらに、実施の形態1以上に高速なリアルタイム処理にも対応できる。
(第3の実施形態)
第3の実施形態による情報処理制御システムの構成は図1に示したものと同様である。このシステムは、キャッシュコントローラ402H内部のCache Table Registerの情報と、Pre load実行状態の情報を利用することにより、module毎のPre loadを適切な時に適切な数だけ実行することを特徴とする。
次に本発明の実施の形態3にかかる情報処理制御システムについて説明する。図5は本発明の実施の形態3において、Application programのmodule毎にPre loadを実行する際のフローチャートである。このフローではキャッシュコントローラ402Hの状態(特にPre load実行状態)からPre loadを起動するかどうかを判定する。ステップ160において、Pre loadを起動する場合、ステップ161を通って、Application program のmodule AからKernel programのステップ162に処理を進める。module内部にPre load起動がない場合は、ステップ166のmodule Aの処理を行い、その後、Pre loadを実行しないままステップ167のmodule Bの処理へ移行する。ステップ162においては、Cache Table Register内部にPre loadする予定のプログラムカウンタ(PC)と一致するTag Addressが存在するかどうかを判定する。ない場合はステップ164に処理を進め、Pre load起動を行う。ある場合は、ステップ163に処理を進め、ステップ162の条件を満たしているものがPre load中かどうかを判定する。Pre load中でない場合は、ステップ164に処理を進め、Pre load起動を行う。Pre load中である場合は、なにも実行せず、ステップ165に処理を進める。また、ステップ164でPre load起動を行った後も、ステップ165に処理を進める。ステップ165においては全Pre load起動が完了したかどうかを判定する。完了していない場合は、ステップ162に戻り、上記処理を繰りかえす。完了した場合は、ステップ166に処理を進め、module Aの残りの処理を行い、その後、ステップ167のmodule Bの処理を行う。
このように実施の形態3によれば、キャッシュコントローラ402H内部のCache Table Registerの情報と、Pre load実行状態の情報を利用することにより、module毎のPre loadを適切な時に適切な数だけ実行することができる。
(第4の実施形態)
第4の実施形態による情報処理制御システムの構成は図1に示したものと同様である。このシステムは、プロセッサ403Hへの割り込み手段として、Miss hit割り込みおよびDMA Done割り込みを備えることにより、命令がMiss hitした場合にアプリケーションプログラムを切り替えながら実行できる点を特徴とする。
次に本発明の実施の形態4にかかる情報処理制御システムについて説明する。図6は本実施の形態4により、Miss hit割り込みとDMA完了割り込み(以降、DMA Done割り込みと呼ぶ)を備えることにより、命令のMiss hitが発生した場合、Application programを切り替えながら、プログラムを実行する際のプログラムの流れを示す。180は時間の流れを示し、181はKernel programの処理を示し、182はApplication program Aの処理を示し、183はApplication program Bの処理を示し、184はKernel programとApplication programを行き来するプログラムの流れを示す。185はdown load起動を示し、186はMiss hit割り込みを示し、187はDMA Done割り込みを示す。DMA Done割り込みはdown loadが完了した際に発生するものである。180t,185t,190tはKernel programからApplication program Aへ処理が移行する時刻を示し、181t,186tはApplication program AからKernel programへ処理が移行する時刻を示し、183t,188tはKernel programからApplication program Bへ処理が移行する時刻を示し、184t,189tはApplication program BからKernel programへ処理が移行する時刻を示す。
以下、命令のMiss hitが発生した場合、Application programを切り替えながらプログラムを実行する際のプログラムの流れを説明する。Kernel program起動後、時刻180tでKernel programからApplication program Aへ処理が移行し、Application program Aの処理が始まる。キャッシュメモリ401H上に必要な命令がなくなるとMiss hit割り込みが発生する。時刻181tでMiss hit割り込み186が入った場合、Application program AからKernel programへ処理が移行する。時刻182tにMiss hit割り込みを受けて、Application program Aに対する命令のdown loadを起動する。その後、Kernel programが待ち状態にあるApplication programを検出すると、Kernel programはApplication programの切り替えを行う。Application program Bが待ち状態にあった場合、Kernel programがApplication program Bを起動する(時刻183t)。Application program B実行中もdown loadは実行されており、down loadが完了した時点でDMA Done割り込み187を発生し、Application program BからKernel programへ処理が移行する(時刻184t)。DMA Done割り込み187がApplication program Aに対するものであった場合は、Kernel programがApplication program Aを起動し、Miss hit割り込み186が発生した時点の命令から再開される(時刻185t)。DMA Done割り込み187については各Application program毎、または、module毎に割り込み要因が存在するものとする。
図6では2種類のApplication programの切り替えについて説明したが、Application programが複数有り、Miss hit割り込み後、Application programを切り替え、さらに、切り替え先のApplication programでMiss hit割り込みが発生したとしても基本的に同じ処理となる。また、図6ではApplication programをA/Bの2種類しか記載していないが、Application programの数に制約があるわけではないということはいうまでもない。
このように実施の形態4によれば、プロセッサ403Hへの割り込み手段として、Miss hit割り込み186およびDMA Done割り込み187を備えることにより、命令がMiss hitした場合にアプリケーションプログラムを切り替えながら実行できる。特にDMA Done割り込み187についてはApplication program毎、module毎に割り込み要因を持つことで、Miss hit割り込み186が発生した後、Application programが切り替わっても、DMA Done割り込み187が発生した際に、元のApplication programに戻ることができる。Miss hit発生した際にApplication programの切り替えを行うことで命令を主記憶メモリ400Hからキャッシュメモリ401Hへdown loadすることで発生するミスヒットペナルティを隠蔽し、プロセッサとしての稼働率を上げることができる。
(第5の実施形態)
第5の実施形態による情報処理制御システムの構成は図1に示したものと同様である。このシステムは、キャッシュコントローラ402H内部のCache Table Registerの情報と、Pre load実行状態の情報を利用することにより、Down loadを起動すべきかどうかを判定することを特徴とする。
次に本発明の実施の形態5にかかる情報処理制御システムについて説明する。図7は本発明の実施の形態5において、Miss hitが発生した場合にApplication programを切り替えながら実行する際のフローチャートである。このフローではキャッシュコントローラ402Hの状態(特にPre load実行状態)からdown loadを起動するかどうかを判定する。また、Miss hitが発生した際に待ち状態にあるApplication programがあるかどうかを判定したう上で、Application programの切り替えを実行する。図7において、200H,201Hはハードウェアの処理である。例えば、Application program Aのmodule A処理中に200HでハードウェアがMiss hit割り込みを検出すると、ステップ200のApplication program Aのmodule A処理からKernel programへ処理が移行し、ステップ201へ進む。ステップ201においては、Cache Table Register内部にDown loadする予定のプログラムカウンタ(PC)と一致するTag Addressが存在するかどうかを判定する。ない場合はステップ203に処理を進め、Down load起動を行う。ある場合は、ステップ202に処理を進め、ステップ201の条件を満たしているものがPre load中かどうかを判定する。Pre load中でない場合は、ステップ203に処理を進め、Down load起動を行う。Pre load中である場合は、なにも実行せず、ステップ204に処理を進める。また、ステップ203でDown load起動を行った後も、ステップ204に処理を進める。ステップ204においては待ち状態にあるApplication programがあるかどうかを判定し、ある場合はApplication programの切り替えを行い、ステップ206に進み、別のApplication programを実行し、ない場合はKernel program内のステップ205でDown load完了までポーリングする。Down loadが完了し、201HでハードウェアがDMA Done割り込みを検出すると、ステップ205、ステップ206からKernel program内のステップ207のDMA Done割り込み処理へ移行する。ステップ207でDMA Done割り込み処理を行った後、元のApplication program Aのmodule Aの処理に戻り、Miss hit割り込みが発生した時点の命令からプログラムを再開する。
このように実施の形態5によれば、キャッシュコントローラ402H内部のCache Table Registerの情報と、Pre load実行状態の情報を利用することにより、Down loadを起動すべきかどうかを判定することができる。また、Pre loadもしくはDown load起動後に、待ち状態にあるApplication programがあるかどうかを判定し、Application program切り替えを実行することで、Pre loadもしくはDown load実行によるミスヒットペナルティを隠蔽することができる。
(第6の実施形態)
第6の実施形態による情報処理制御システムの構成は図1に示したものと同様である。このシステムは、module単位でDMA実行状況やMiss hit発生状況がわかる仕組みになっている点を特徴とする。
次に本発明の実施の形態6にかかる情報処理制御システムについて説明する。図8は本実施の形態6においてキャッシュコントローラ402Hの内部構成を示すブロック図である。図8において、220はプログラム上の論理Addressと物理Addressとの対応を示すCache Table Registerを示し、224はTag Addressを示し、225は物理Addressを示す。221はTag Address224と物理Address225の対応が有効か無効かを示すValid flagを示す。Cache Table Register220はmodule単位での対応表として構成されている。222はTag Address224と物理Address225に対応したmoduleにおいて、Miss hitが発生しているかどうかを示すMiss hit History flagを示し、223はTag Address224と物理Address225に対応したmoduleにおいて、Pre loadもしくはDown loadのDMAが実行中であるかどうかを示すDMA Process flagを示す(今後、Tag Address、物理Address、Valid flag、Miss hit History flag、DMA Process flagのペアをブロックと呼ぶ。Cache Table Register220は複数のブロックから構成されていることとなる。)。226はプログラムの論理Addressの上位を示し、227はプログラムの論理Addressの下位を示す。228はCache Addressの上位を示し、229はCache Addressの下位を示す。229は227と同じ信号である。231は比較回路を示し、232はMiss hit割り込みを発生させるMiss hit flagを示す。Cache Table Register220はプログラムから書き込みも読み出しも可能な構成となっている。さらに、Valid flag221はDMAが完了した時点でセットされ、DMA Process flag223はDMAが完了した時点でリセットされる仕組みにしている。
以下、図8に示した回路の動作を説明する。この回路ではプログラムの論理Addressの上位226とTag Address224を比較回路231で比較した結果が一致しておりかつValid flag221が有効であれば、物理Addressの上位225をCache Addressの上位228として、さらに、プログラムの論理Addressの下位227をCache Addressの下位229として、キャッシュメモリ401HにCache Addressとして送る。Cache Table Register220内に、プログラムの論理Addressの上位226とTag Address224を比較回路231で比較した結果が一致かつValid flag221が有効であるものが存在しない場合は、Miss hit flag232がActiveになり、Miss hit割り込みが発生する。また、Miss hit割り込みが発生した際にMiss hit History flag222をセットすれば、Cache Table RegisterのどこでMiss hit割り込みが発生しているかがわかる仕組みになっている。さらに、DMA Process flag223はDMA完了時点で自動的にリセットされる仕組みになっているため、Pre loadやDown loadのDMA起動時にセットしておけば、module単位でのDMA実行状況がわかる仕組みになっている。
このように実施の形態6によれば、module単位でDMA実行状況やMiss hit発生状況がわかる仕組みになっているため、module単位でのPre loadや、Miss hit割り込み発生時にApplication programを切り替えながらプログラムを実行することができ、命令入れ替えを行いながらリアルタイム処理を実現する情報処理制御システムを構築することができる。
(第7の実施形態)
第7の実施形態による情報処理制御システムは第6の実施形態を発展させたものである。このシステムは、Miss hit割り込み発生時にMiss hit割り込み発生時の命令フェッチプログラムカウンタ値(以降、EIPCと呼ぶ)と、命令デコードプログラムカウンタ値(以降、EPCと呼ぶ)を自動的に退避する仕組みを持っている。図9は図8に示した本発明の実施の形態6にかかる情報処理制御システムと、EIPCと、DMA process flagを用いて、Miss hit割り込み処理を実現する際のフローチャートである。図9において、240Hはハードウェア(プロセッサ403Hまたはキャッシュコントローラ402H)の処理である。Application program Aのmodule A実行中に、240HにおいてハードウェアがMiss hit割り込みを検出すると、自動的にEIPCとEPCが退避され、ステップ240のApplication program Aのmodule Aの処理からKernel programへ処理が移行し、ステップ241に進む。ステップ241においてはCache Table Register内部にEIPCと一致するTag Addressが存在するかどうかを判定する。ない場合はステップ243に処理を進め、Cache Table Registerを任意に選択する。ある場合は、ステップ242に処理を進め、ステップ241の条件が成立しているブロックにおいて、DMA Process flagが1かどうかを判定する。DMA Process flagが1でない場合はPre load実行中でないと判断し、ステップ243に処理を進め、Cache Table Registerを任意に選択する。DMA Process flagが1である場合は、Pre load実行中と判断し、なにも実行せず、ステップ245に処理を進める。また、ステップ243でCache Table Registerを任意に選択する処理に移った場合は、その後、ステップ244へ進む。ステップ244では、選択されたブロックのValid flagを0に設定し、DMA Process flagを1に設定し、Tag Addressと物理Addressを設定し、Down load起動を行う。その後、ステップ245に進む。ステップ245では、ステップ242からステップ245に移行してきた場合は、ステップ242の条件が成立しているブロックのMiss hit History を1に設定し、ステップ244からステップ245に移行してきた場合は、ステップ243で選択されたブロックのMiss hit History を1に設定する。ステップ245の処理が終わると、ステップ246に進む。ステップ246においては待ち状態にあるApplication programがあるかどうかを判定する。ある場合はApplication programを切り替え、ステップ248の別のApplication programを実行する、ない場合はKernel program内のステップ247でDown load完了までポーリングする。
このように実施の形態7によれば、本発明の実施の形態6にかかる情報処理制御システムと、EIPCと、DMA process flagを用いて、Miss hit割り込み処理を実現することにより、Pre load実行している状態でのMiss hit割り込みとPre load実行していない状態でのMiss hit割り込みのどちらの割り込みも処理することができる。
(第8の実施形態)
第8の実施形態による情報処理制御システムの構成は図1に示したものと同様である。図10は本実施の形態8におけるキャッシュコントローラ402Hの内部構成を示すブロック図である。図10において、図8と同一符号は同一または相当部分を示し、233はDMA Done割り込みflagを示す。DMA Done割り込みflag233はMiss hit History flag222を1に設定しているブロックに対してDMA完了した場合のみ発生する構成にしている。まず、DMA Process flag223を1に設定し、次にPre loadまたは、Down loadのDMAを起動し、その後、Miss hit History flag222を1に設定すると、DMA完了時点で自動的にDMA Process flag223がリセットされ0になるので、DMA Done割り込みが発生する仕組みにしている。
このように実施の形態8によれば、Pre loadによるDMA完了時など、DMAが完了する度にDMA Done割り込みがすることはなくなるので、DMA完了ごとに発生していたプログラムの切り替えロスを削減でき、プロセッサの処理効率の低下を抑えることが出来る。また、仮にMiss hit割り込みが発生した場合でも、DMA Done割り込みを発生させたくない場合などは、Miss hit History flagを0のままにしておくことで、DMA Done割り込みの発生を抑えることが出来、DMA Done割り込みの発生をコントロールすることが出来る。
(第9の実施形態)
第9の実施形態による情報処理制御システムは第8の実施形態の応用例である。図11は図10に示した本発明の実施の形態8にかかる情報処理制御システムを用いて、Application programのmodule毎にPre loadを実行する際のフローチャートである。ステップ280において、Pre loadを起動する場合、ステップ281を通って、Application program のmodule AからKernel programのステップ282に処理を進める。module内部にPre load起動がない場合は、ステップ287のmodule Aの処理を行い、その後、Pre loadを実行しないままステップ288のmodule Bの処理へ移行する。ステップ282においては、Cache Table Register220内部にPre loadする予定のプログラムカウンタ(PC)と一致するTag Address224が存在するかどうかを判定する。ない場合はステップ284に処理を進め、Cache Table Register220を任意に選択する。ある場合は、ステップ283に処理を進め、ステップ282の条件が成立しているブロックにおいて、DMA Process flag223が1かどうかを判定する。DMA Process flag223が1でない場合はPre load実行中でないと判断し、ステップ284に処理を進め、Cache Table Register220を任意に選択する。DMA Process flag223が1である場合は、Pre load実行中と判断し、なにも実行せず、ステップ286に処理を進める。また、ステップ284でCache Table Register220を任意に選択する処理に移った場合は、その後、ステップ285へ進む。ステップ285では、選択されたブロックのValid flag221を0に設定し、DMA Process flag223を1に設定し、Tag Address224と物理Address225を設定し、Pre load起動を行う。その後、ステップ286に進む。ステップ286においては全Pre load起動が完了したかどうかを判定し、完了していない場合は、ステップ282に戻り、上記処理を繰りかえす。完了した場合は、ステップ287に処理を進め、module Aの残りの処理を行い、その後、ステップ288のmodule Bの処理を行う。また、285の処理を行った時点で、ハードウェアは280Hにおいて、Valid flag221が0に設定され、DMA Process flag223が1に設定され、281HにおいてDMA起動がかかる。282HでDMAが完了した時点で、自動的にValid flag221は1に設定され、DMA Process flag223は0に設定される。
このように実施の形態9によれば、本発明の実施の形態8にかかる情報処理制御システムを用いて、DMA Process flag223からPre load実行状態を判定し、module毎のPre loadを適切な時に適切な数だけ実行することが出来る。
(第10の実施形態)
次に本発明の実施の形態10にかかる情報処理制御システムは、図9に示した本発明の実施の形態7にかかる情報処理制御システムと、図10に示した本発明の実施の形態8にかかる情報処理制御システムを用いて、Miss hit割り込みが発生した場合にApplication programを切り替えながら実行するものである。この処理のフローチャートを図12に示す。図12において、300H,301H,302H,303H,304H,305H,306Hはハードウェアの処理である。Application program Aのmodule A実行中に、300HにおいてハードウェアがMiss hit割り込みを検出すると、自動的にEIPCとEPCが退避され、ステップ300のApplication program Aのmodule Aの処理からKernel programへ処理が移行し、ステップ301に進む。ステップ301においてはCache Table Register220内部にEIPCと一致するTag Address224が存在するかどうかを判定する。ない場合はステップ303に処理を進め、Cache Table Register220を任意に選択する。ある場合は、ステップ302に処理を進め、ステップ301の条件が成立しているブロックにおいて、DMA Process flag223が1かどうかを判定する。DMA Process flag223が1でない場合はPre load実行中でないと判断し、ステップ303に処理を進め、Cache Table Register220を任意に選択する。DMA Process flag223が1である場合は、Pre load実行中と判断し、なにも実行せず、ステップ305に処理を進める。また、ステップ303でCache Table Register220を任意に選択する処理に移った場合は、その後、ステップ304へ進む。ステップ304では、選択されたブロックのValid flag221を0に設定し、DMA Process flag223を1に設定し、Tag Address224と物理Address225を設定し、Down load起動を行う。その後、ステップ305に進む。ステップ305では、ステップ302からステップ305に移行してきた場合は、ステップ302の条件が成立しているブロックのMiss hit History flag222を1に設定し、ステップ304からステップ305に移行してきた場合は、ステップ303で選択されたブロックのMiss hit History flag222を1に設定する。ステップ305の処理が終わると、ステップ306に進む。ステップ306においては待ち状態にあるApplication programがあるかどうかを判定する。ある場合はApplication programを切り替え、ステップ308の別のApplication programを実行する、ない場合はKernel program内のステップ307でDown load完了までポーリングする。また、304の処理を行った時点で、ハードウェアは301Hにおいて、Valid flag221が0に設定され、DMA Process flag223が1に設定され、302HにおいてDMA起動がかかる。
その後、ステップ305の処理を行った時点で、303HにおいてMiss hit History flag222が1に設定され、305HにおいてDMAが完了した時点で、304Hにおいて自動的にValid flag221が1に設定され、DMA Process flag223が0に設定される。Miss hit History flag222が1に設定されている状態でDMA Process flag223が0になれば、DMA Done割り込みが検出され、ステップ307とステップ308の処理からKernel programのステップ309のDMA Done割り込みルーチンに処理が移行する。その後、ステップ310で切り替え先のApplication programのmodule判定を行い、ステップ311においてMiss hit History flag222を0に設定し、ステップ312において、DMA Done割り込みを発生させたApplication programのmoduleへ処理が移行する。
このように実施の形態10によれば、本発明の実施の形態7にかかる情報処理制御システムと、本発明の実施の形態8にかかる情報処理制御システムを用いてプログラムを制御することにより、Application program切り替えを行いながらプログラムの実行が出来るため、Pre loadもしくはDown load実行によるミスヒットペナルティーを隠蔽することが出来る。また、DMA Done割り込みがmodule単位で必要な命令がキャッシュメモリ上にそろった時点で発生するため、Miss hit割り込みが発生したApplication programへの復帰を早く実現できる。
(第11の実施形態)
第11の実施形態にかかる情報処理制御システムは、第6の実施形態にかかる情報処理制御システムと、DMA Done割り込みマスク機構を用いて、DMA Done割り込みをマスクするものである。この情報処理制御システムでは、module毎に発生するDMA Done割り込みをマスクする機構を持ち、この機構については割り込み要因そのものを消してしまうのではなく、割り込み要因自体は保持できるようになっており、割り込みマスクを解除した時点で再び割り込み要因が発生し、割り込みが入る仕組みになっている。図13は、本発明の実施の形態6にかかる情報処理制御システムと、DMA Done割り込みマスク機構を用いて、DMA Done割り込みをマスクする際のフローチャートを示す。このフローチャートはMiss hit割り込みが発生した後の処理を表す。320H,321H,322Hはハードウェアの処理である。Miss hit割り込み発生後、Down load起動等を行った後、ステップ320において、Miss hit History flagを1に設定する。ステップ320の処理が終わると、ステップ321に進む。ステップ321においては待ち状態にあるApplication programがあるかどうかを判定する。ある場合はApplication programを切り替え、ステップ323へ進み、ない場合はKernel program内のステップ322でDown load完了までポーリングする。ステップ323においては割り込みマスクが必要かどうかを判定する。必要であれば、ステップ324において割り込みマスクを設定し、その後、ステップ325で別Application programを実行する。必要でない場合は、ステップ325に直接進み、別Application programを実行する。また、320の処理を行った時点で、ハードウェアは320Hにおいて、Miss hit History flagが1に設定され、324の処理を行った時点で、321Hにおいて、DMA Done割り込みマスクが設定される。その後、322Hにおいて、DMA Done割り込みが検出される。ステップ322においては、DMA Done割り込みが検出された時点でDMA Done割り込みが発生し、ステップ329のDMA Done割り込み処理へ進む。また、ステップ325において、DMA Done割り込みマスクが設定されていない場合は、DMA Done割り込みが検出された時点でDMA Done割り込みが発生し、ステップ329のDMA Done割り込み処理へ進む。ステップ325において、DMA Done割り込みマスクが設定されている場合は、DMA Done割り込みが検出された時点でもDMA Done割り込みが発生せず、ステップ327に進み、別Application programの処理が継続される。その後、ステップ328で割り込みマスクを解除した時点で、DMA Done割り込みが発生し、ステップ329のDMA Done割り込み処理へ進む。
このように実施の形態11によれば、Miss hit割り込み後のDMA Done割り込みに対して割り込み要因を残したまま割り込みマスクすることで、別Application programの処理を保護することが出来る。また、割り込み要因を残した状態でDMA Done割り込みをマスクするため、割り込みマスクを解除した時点で、再び、DMA Done割り込みを発生し、Miss hit割り込みが発生したApplication programに復帰することが出来る。
(第12の実施形態)
次に本発明の実施の形態12にかかる情報処理制御システムについて説明する。
図14は本発明の実施の形態12にかかる情報処理制御システムのブロック図である。340Hは割り込み管理機構を示し、341Hはプログラムを格納しているメモリを示し、342Hは命令解読装置、343Hは状態管理装置を示す。340Sは命令を示す信号線で、341Sは343Hに示した状態管理装置が342Hに示した命令解読装置を制御する制御線である。342Sは340Hに示した割り込み管理機構が342Hに示した命令解読装置と343Hに示した状態管理装置を制御するための制御線である。通常のプロセッサにおいては343Hに示した状態管理装置は存在しない。命令ビットフィールド上に命令以外のもの、たとえば、暗号化情報等を含むような場合は、通常の命令の解読を行う命令解読装置と暗号化情報により状態が変化する状態管理装置が存在することがある。この場合、343Hの状態管理装置から出力される制御線341Hにより、342Hに示した命令解読装置の命令解読方法が変わる。
図14において、340H割り込み管理機構が割り込みを検出すると342Hに示した命令解読装置と343Hに示した状態管理装置に接続されている342Sに示した制御線がActiveになる。342SがActiveにすることで、342Hに示した命令解読装置の出力を無効化し、さらに、343Hに示した状態管理装置をリセットする。
このように実施の形態12によれば、割り込み発生時に343Hに示した状態管理機構をリセットすることにより、無効な命令により状態管理装置が間違った状態に陥ることを防ぐことが出来、割り込み復帰後も命令解読を正常に行うことが出来る。
本発明は、キャッシュメモリに格納する命令を入れ替えながらリアルタイム処理を実現することが必要なシステム、たとえばMPEG AVデコーダやデジタルTV関係のLSIなどに適用可能である。
第1の実施形態による情報処理制御システムの全体構成を示すブロック図である。 本発明の第1の実施形態にかかる情報処理制御システムにおいて、Pre load処理をする場合のプログラムの流れを示す図である。 本発明の第2の実施形態にかかる情報処理制御システムにおいて、module化したソフトウェアの構成図である。 本発明の第2の実施形態にかかる情報処理制御システムにおいて、module単位でPre loadする場合のプログラムの流れを示す図である。 本発明の第3の実施形態にかかる情報処理制御システムにおいて、module単位でPre loadする場合のフローチャートを示す図である。 本発明の第4の実施形態にかかる情報処理制御システムにおいて、Miss hit発生時Application programを切り替えながら実行する場合のプログラムの流れを示す図である。 本発明の第5の実施形態にかかる情報処理制御システムにおいて、Miss hit発生時Application programを切り替えながら実行する場合のフローチャートを示す図である。 本発明の第6の実施形態にかかる情報処理制御システムにおいて、Cache Table Registerとキャッシュメモリとの構成を示すブロック図である。 本発明の第7の実施形態にかかる情報処理制御システムにおいて、Miss hit割り込み処理を実現する場合のフローチャートを示す図である。 本発明の第8の実施形態にかかる情報処理制御システムにおいて、DMA Done割り込みを発生させる際のCache Table Registerとキャッシュメモリとの構成を示すブロック図である。 本発明の第9の実施形態にかかる情報処理制御システムにおいて、module単位でPre loadする場合のフローチャートを示す図である。 本発明の第10の実施形態にかかる情報処理制御システムにおいて、Miss hit発生時Application programを切り替えながら実行する場合のフローチャートを示す図である。 本発明の第11の実施形態にかかる情報処理制御システムにおいて、DMA Done割り込みマスクを実現する場合のフローチャートを示す図である。 本発明の第12の実施形態にかかる情報処理制御システムにおいて、メモリと、命令解読装置と、状態管理装置と、割り込み管理機構との関係を示すブロック図である。 一般的なキャッシュを用いた情報処理制御システムの構成図である。 キャッシュメモリに格納する命令を入れ替えながらプログラムを実行する場合の一般的なプログラムの流れを示す図である。 キャッシュコントローラ内のCache Table Registerと、キャッシュメモリの構成を示す一般的なブロック図である。
符号の説明
100 時間の流れ
101 Kernel Program処理
102 Application program A処理
103 Application program B処理
104 プログラムの流れ
105 Break point割り込み
100t〜106t 時刻
120 ソフトウェア構成
121 Kernel program
122 Application program A
123 Application program B
124 Application program C
125 Application program D
140 時間の流れ
141 Kernel Program処理
142 Application program A処理
143 Application program B処理
144 プログラムの流れ
145 Pre load起動
146 Break point割り込み
147 Application program A module A処理区間
148 Application program A module B処理区間
149 Application program A module C処理区間
150 Application program B module A処理区間
151 Application program B module B処理区間
140t〜158t 時刻
160〜167 フローチャート内処理
180 時間の流れ
181 Kernel Program処理
182 Application program A処理
183 Application program B処理
184 プログラムの流れ
185 Down load起動
186 Miss hit割り込み
187 Break point割り込み
180t〜190t 時刻
200〜208 フローチャート内処理
201H、202H ハード処理
220 Cache Table Register
221〜225 レジスタ
226〜229 制御信号
230 メモリ
231 比較回路
232 制御信号
233 制御信号
240〜248 フローチャート内処理
240H ハード処理
280〜288H フローチャート内処理
280H〜283H ハード処理
300〜312 フローチャート内処理
300H〜306H ハード処理
320〜329 フローチャート内処理
320H〜322H ハード処理
340H 割り込み管理機構
341H メモリ
342H 命令解読装置
343H 状態管理装置
340S〜342S 制御信号
400H 主記憶メモリ
401H キャッシュメモリ
402H キャッシュコントローラ
403H プロセッサ
420 時間の流れ
421 Kernel Program処理
422 Application program処理
423 プログラムの流れ
424 Down load処理
425 Miss hit割り込み
420t〜423t 時刻

Claims (1)

  1. つ以上の命令からなる第1のプログラム第2のプログラムおよび第3のプログラムを実行するプロセッサであって、
    前記第1のプログラム前記第2のプログラムおよび第3のプログラムを格納するメインメモリと、
    前記第1のプログラム前記第2のプログラムおよび第3のプログラムを格納するキャッシュメモリと、
    前記第2のプログラムのプリロードを開始する前記第1のプログラム中の第1のアドレスと、前記第3のプログラムのプリロードを開始する前記第2のプログラム中の第2のアドレスとを格納する第1のレジスタと、
    前記第1のプログラムを実行中に、実行アドレスが前記第1のレジスタ中の前記第1のアドレスと一致したら、前記メインメモリから前記キャッシュメモリへの前記第2のプログラムのプリロードを起動し、前記第1のプログラムの残りを実行しながら、前記第2のプログラムの実行の前に前記第2のプログラムのプリロードを完了し、前記第2のプログラムを実行中に、実行アドレスが前記第1のレジスタ中の前記第2のアドレスと一致したら、前記メインメモリから前記キャッシュメモリへの前記第3のプログラムのプリロードを起動し、前記第2のプログラムの残りを実行しながら、前記第3のプログラムの実行の前に前記第3のプログラムのプリロードを完了するプリロード手段とを備えたプロセッサ。
JP2003331964A 2003-09-24 2003-09-24 プロセッサ Expired - Lifetime JP4837247B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003331964A JP4837247B2 (ja) 2003-09-24 2003-09-24 プロセッサ
US10/946,009 US8135909B2 (en) 2003-09-24 2004-09-22 System for starting a preload of a second program while a first program is executing
CNB2004100118457A CN100365594C (zh) 2003-09-24 2004-09-22 信息处理控制系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003331964A JP4837247B2 (ja) 2003-09-24 2003-09-24 プロセッサ

Publications (2)

Publication Number Publication Date
JP2005100034A JP2005100034A (ja) 2005-04-14
JP4837247B2 true JP4837247B2 (ja) 2011-12-14

Family

ID=34308958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003331964A Expired - Lifetime JP4837247B2 (ja) 2003-09-24 2003-09-24 プロセッサ

Country Status (3)

Country Link
US (1) US8135909B2 (ja)
JP (1) JP4837247B2 (ja)
CN (1) CN100365594C (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833178B1 (ko) 2005-08-26 2008-05-28 삼성전자주식회사 캐시 메모리에 저장되는 블록개수를 제어할 수 있는 캐시메모리 시스템 및 동작 방법
JP4882625B2 (ja) * 2005-12-26 2012-02-22 株式会社デンソー マイクロコンピュータ
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
JP2007323358A (ja) * 2006-05-31 2007-12-13 Toshiba Corp コンパイラプログラムを記録する媒体、コンパイル方法及びこれを伴う情報処理装置
JP2008015668A (ja) * 2006-07-04 2008-01-24 Toyota Infotechnology Center Co Ltd タスク管理装置
JP2009123064A (ja) * 2007-11-16 2009-06-04 Toshiba Corp 計算機システム
JP5494243B2 (ja) * 2010-06-01 2014-05-14 富士電機株式会社 プログラマブルコントローラ、プログラマブルコントローラのプログラム実行方法
US20120167122A1 (en) * 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
EP2541404B1 (en) * 2011-06-30 2014-08-13 Telefonaktiebolaget LM Ericsson (publ) Technique for task sequence execution
WO2013015835A1 (en) 2011-07-22 2013-01-31 Seven Networks, Inc. Mobile application traffic optimization
CN102724585B (zh) * 2012-06-29 2016-01-13 Tcl集团股份有限公司 一种用于终端设备网络视频播放预加载的方法及装置
US10089233B2 (en) 2016-05-11 2018-10-02 Ge Aviation Systems, Llc Method of partitioning a set-associative cache in a computing platform
CN119311608A (zh) * 2023-07-11 2025-01-14 脸萌有限公司 一种程序对象的缓存方法、装置、设备和介质
JP2025012071A (ja) * 2023-07-12 2025-01-24 キオクシア株式会社 メモリシステムおよびメモリシステムの制御方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4375083A (en) * 1980-01-31 1983-02-22 Bell Telephone Laboratories, Incorporated Signal sequence editing method and apparatus with automatic time fitting of edited segments
JPS56117384A (en) * 1980-02-20 1981-09-14 Nec Corp Cash controller
JPS56159886A (en) * 1980-05-13 1981-12-09 Nec Corp Buffer memory device
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
JPS57185545A (en) * 1981-05-11 1982-11-15 Hitachi Ltd Information processor
JPS58197553A (ja) * 1982-05-12 1983-11-17 Mitsubishi Electric Corp プログラム監視装置
JPS60263238A (ja) * 1984-06-11 1985-12-26 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置
US5053944A (en) * 1986-01-24 1991-10-01 Intel Corporation Microprocessor breakpoint apparatus
FR2593621A1 (fr) * 1986-01-24 1987-07-31 Intel Corp Appareil de point de rupture pour microprocesseur
US5165027A (en) * 1986-01-24 1992-11-17 Intel Corporation Microprocessor breakpoint apparatus
US5249278A (en) * 1986-01-24 1993-09-28 Intel Corporation Microprocessor breakpoint apparatus
US4860195A (en) * 1986-01-24 1989-08-22 Intel Corporation Microprocessor breakpoint apparatus
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
JP2672599B2 (ja) * 1988-10-18 1997-11-05 ヤマハ 株式会社 コンピュータシステム
GB2234613B (en) * 1989-08-03 1993-07-07 Sun Microsystems Inc Method and apparatus for switching context of state elements in a microprocessor
JPH03154139A (ja) * 1989-11-10 1991-07-02 Fuji Xerox Co Ltd キャッシュメモリ
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
DE69129872T2 (de) * 1990-03-27 1999-03-04 Philips Electronics N.V., Eindhoven Datenverarbeitungssystem mit einem leistungsverbessernden Befehlscachespeicher
JP2938511B2 (ja) * 1990-03-30 1999-08-23 三菱電機株式会社 半導体記憶装置
JP3203701B2 (ja) * 1990-11-01 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コードセグメントのリンク方法とそのシステム及びコードセグメントのダイナミックリンク方法
JP2522176B2 (ja) * 1993-08-13 1996-08-07 日本電気株式会社 プロセッサの制御方法
JPH09218823A (ja) * 1996-02-08 1997-08-19 Hitachi Ltd キャッシュメモリ制御装置
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5761515A (en) * 1996-03-14 1998-06-02 International Business Machines Corporation Branch on cache hit/miss for compiler-assisted miss delay tolerance
JPH1040106A (ja) * 1996-07-19 1998-02-13 Nec Corp 関数型言語処理装置
US5901225A (en) * 1996-12-05 1999-05-04 Advanced Micro Devices, Inc. System and method for performing software patches in embedded systems
US6088788A (en) * 1996-12-27 2000-07-11 International Business Machines Corporation Background completion of instruction and associated fetch request in a multithread processor
JPH10340197A (ja) * 1997-06-09 1998-12-22 Nec Corp キャッシング制御方法及びマイクロコンピュータ
JPH1139153A (ja) * 1997-07-15 1999-02-12 Matsushita Electric Ind Co Ltd プログラムがromに記録されているマイコンシステムにおけるメンテナンス方法、そのマイコンシステムに用いられる中央処理装置、キャッシュシステム、及びマイコンシステムの応用装置
JP3289661B2 (ja) * 1997-11-07 2002-06-10 日本電気株式会社 キャッシュメモリシステム
JPH11328123A (ja) * 1998-05-20 1999-11-30 Sony Corp プロセッサ、並列プロセッサおよび演算処理方法
US6134710A (en) * 1998-06-26 2000-10-17 International Business Machines Corp. Adaptive method and system to minimize the effect of long cache misses
JP2001056781A (ja) * 1999-08-19 2001-02-27 Sharp Corp 情報処理装置
US6587966B1 (en) * 2000-04-25 2003-07-01 Hewlett-Packard Development Company, L.P. Operating system hang detection and correction
US6665748B1 (en) * 2000-09-06 2003-12-16 3Com Corporation Specialized PCMCIA host adapter for use with low cost microprocessors
JP2002259209A (ja) * 2001-03-01 2002-09-13 Oki Electric Ind Co Ltd 演算処理システム
JP3852703B2 (ja) * 2001-08-29 2006-12-06 アナログ・デバイシズ・インコーポレーテッド 無線システムにおけるタイミングおよび事象処理の方法および装置
JP2003076559A (ja) * 2001-09-03 2003-03-14 Matsushita Electric Ind Co Ltd 情報処理装置
CA2478007A1 (en) 2002-03-05 2003-09-12 International Business Machines Corporation Method of prefetching data/instructions related to externally triggered events
US20050268195A1 (en) * 2004-04-29 2005-12-01 Lund Morten W Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems

Also Published As

Publication number Publication date
JP2005100034A (ja) 2005-04-14
CN100365594C (zh) 2008-01-30
US8135909B2 (en) 2012-03-13
US20050066132A1 (en) 2005-03-24
CN1601488A (zh) 2005-03-30

Similar Documents

Publication Publication Date Title
JP4837247B2 (ja) プロセッサ
US9727343B2 (en) Apparatus and method for handling exception events
JP5323828B2 (ja) 仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路
KR102629722B1 (ko) 이동 프리픽스 명령어
JP4520788B2 (ja) マルチスレッドプロセッサ
US7836291B2 (en) Method, medium, and apparatus with interrupt handling in a reconfigurable array
US7386709B2 (en) Controlling execution of a block of program instructions within a computer processing system
JP2012220990A (ja) ハイパーバイザ置き換え方法および情報処理装置
EP2083352B1 (en) Processing unit
JP2021527248A (ja) 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
CN114610388A (zh) 一种指令跳转方法、处理器及电子设备
CN112579162A (zh) 异构isa平台上硬件和软件协调的对高级特征选入的方法
JPWO2008023427A1 (ja) タスク処理装置
CN115391079A (zh) 一种基于五级流水线处理器的中断与异常处理方法
JP4170364B2 (ja) プロセッサ
CN114579264A (zh) 处理装置、处理系统和处理方法
JP2009230479A (ja) マイクロプロセッサ
JP2005275703A (ja) プロセッサ及びコンテキスト切り替え方法
KR100870175B1 (ko) 에이알엠7 계열 마이크로 컨트롤러에서의 콘텍스트 스위치방법
JP2006139495A (ja) 演算処理装置
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP5194360B2 (ja) 情報処理装置およびその制御方法
CN120704749A (zh) 一种指令处理方法、装置及相关设备
JP2011150636A (ja) マイクロプロセッサ及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141007

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4837247

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term