JP4056768B2 - マイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法 - Google Patents

マイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法 Download PDF

Info

Publication number
JP4056768B2
JP4056768B2 JP2002057351A JP2002057351A JP4056768B2 JP 4056768 B2 JP4056768 B2 JP 4056768B2 JP 2002057351 A JP2002057351 A JP 2002057351A JP 2002057351 A JP2002057351 A JP 2002057351A JP 4056768 B2 JP4056768 B2 JP 4056768B2
Authority
JP
Japan
Prior art keywords
register
cache
clock
stored
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002057351A
Other languages
English (en)
Other versions
JP2003256277A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002057351A priority Critical patent/JP4056768B2/ja
Priority to US10/355,177 priority patent/US7007134B2/en
Publication of JP2003256277A publication Critical patent/JP2003256277A/ja
Priority to US11/299,893 priority patent/US7434079B2/en
Application granted granted Critical
Publication of JP4056768B2 publication Critical patent/JP4056768B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はマイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法に関し、特にキャッシュメモリ、クロックを制御して、処理の高速化を図るマイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法に関する。
【0002】
【従来の技術】
近年のマイクロコントローラは、内部にキャッシュメモリを搭載して、動作速度の遅い周辺メモリへのアクセスを極力減らし、高速化を実現している。キャッシュメモリは、プログラムに特定の命令を記述することによって、その使用が制御される。
【0003】
図13は、従来のマイクロコントローラの内部構成を示すブロック図である。マイクロコントローラ7は、処理ルーチンを実行するCPU(Central Processing Unit)70、CPU70が頻繁にアクセスする処理ルーチンの一部、又は全部を格納するキャッシュメモリ71、キャッシュメモリ71を使用可能にするか否かを制御するキャッシュ制御回路72、及び周辺装置からの割込み要因をその優先度やマスク状態から判断し、CPU70に割込み要求信号を発生する割込みコントローラ73から構成される。マイクロコントローラ7には、CPU70が実行する処理ルーチンを格納するROM(Read Only Memory)8が接続されている。また、キャッシュ制御回路72は、キャッシュメモリ71の使用状態が設定されるためのレジスタ72aを有する。
【0004】
図14は、従来のマイクロコントローラのCPUの処理遷移図である。図14に示すように、マイクロコントローラ7のCPU70は、通常の動作を行うメインルーチンと、割込み要因1に対する割込みルーチンを処理するとする。メインルーチンは、キャッシュメモリ71を利用して処理され、割込みルーチンは、キャッシュメモリ71を利用しないで処理されるとする。
【0005】
割込み要因1が割込みコントローラ73に入ってきたとする。割込みコントローラ73は、CPU70に割込み要求信号を発生する。CPU70は、割込み要求信号により、メインルーチンの処理を中断し、割込みルーチンを処理する。
【0006】
このとき、CPU70に割込みルーチンを、キャッシュメモリ71を利用しないで処理させるために、割込みルーチンが記述されたプログラムの先頭に、キャッシュオフ命令を記述する。CPU70は、キャッシュオフ命令を実行し、キャッシュを使用しないという情報をレジスタ72aに格納する。キャッシュ制御回路72は、レジスタ72aに格納された情報に従って、CPU70のキャッシュメモリ71の使用を禁止する。このため、CPU70がキャッシュオフ命令を実行してから、キャッシュメモリ71の使用が不可となる。
【0007】
割込みルーチンを終えるとき、CPU70にメインルーチンを、キャッシュメモリ71を利用して処理させるために、割込みルーチンが記述されたプログラムの最後に、キャッシュオン命令と復帰命令を記述する。CPU70は、キャッシュオフ命令を実行し、キャッシュメモリ71を使用するという情報をレジスタ72aに格納する。キャッシュ制御回路72は、レジスタ72aに格納された情報に従って、キャッシュメモリ71の使用禁止を解除する。このため、CPU70がキャッシュオン命令を実行してからキャッシュメモリ71の使用が可能となる。
【0008】
【発明が解決しようとする課題】
このように、従来においては、キャッシュメモリ71を制御するための情報を、プログラムを実行してレジスタ72aに格納しなければならない。すなわち、図14に示すように、キャッシュオフ命令と、復帰命令は、キャッシュメモリ71に格納される可能性がある。このため、キャッシュメモリ71の容量は小さくなり、キャッシュメモリ71に格納されるべき、メインルーチンの一部が格納されない場合がある。
【0009】
このため、キャッシュメモリに格納されて処理されるべき処理ルーチンの一部が、キャッシュメモリに格納されない場合があり、キャッシュメモリの使用効率が悪く、処理速度の低下につながるという問題点があった。
【0010】
本発明はこのような点に鑑みてなされたものであり、キャッシュメモリを効率的に使用し、実行する処理の高速化を図ることができるマイクロコンピュータを提供することを目的とする。
【0011】
【課題を解決するための手段】
上記課題を解決するために第1の形態のキャッシュメモリを有するマイクロコンピュータにおいて、第1のレジスタを内蔵し、実行する処理を切替える毎に、次に実行する処理におけるキャッシュメモリの使用規則を示すキャッシュ使用情報を、前記第1のレジスタに格納する処理切替え制御回路と、第2のレジスタを内蔵し、前記第1のレジスタに前記キャッシュ使用情報が格納されると前記キャッシュ使用情報を前記第2のレジスタに格納し、当該第2のレジスタに格納された前記キャッシュ使用情報で示された使用規則に従って、データの前記キャッシュメモリへの入出力を行うキャッシュ制御回路と、を有することを特徴とするマイクロコンピュータが提供される。
【0012】
ここで、図1に示すように、処理切替え制御回路10は、実行する処理を切替える毎に、次に実行する処理におけるキャッシュ使用情報を、内蔵する第1のレジスタ10aに格納する。キャッシュ制御回路11は、第1のレジスタ10aにキャッシュ使用情報が格納されると、そのキャッシュ使用情報を、内蔵する第2のレジスタ11aに格納する。キャッシュ制御回路11は、第2のレジスタ11aに格納されたキャッシュ使用情報で示された使用規則に従って、データのキャッシュメモリ11bへの入出力を行う。これにより、キャッシュメモリ11bの使用効率を高め、実行する処理の高速化を図る。
【0013】
また、第2の形態のクロックに同期して処理を実行するマイクロコンピュータにおいて、第1のレジスタを内蔵し、実行する処理を切替える毎に、次に実行する処理に使用されるクロックを示すクロック使用情報を、前記第1のレジスタに格納する処理切替え制御回路と、第2のレジスタを内蔵し、前記第1のレジスタに前記クロック使用情報が格納されると前記クロック使用情報を前記第2のレジスタに格納し、複数のクロックから当該第2のレジスタに格納された前記クロック使用情報に従って、クロックを選択出力するクロック制御回路と、を有することを特徴とするマイクロコンピュータが提供される。
【0014】
このようなマイクロコンピュータでは、処理切替え制御回路は、実行する処理を切替える毎に、次に実行する処理におけるクロック使用情報を、内蔵する第1のレジスタに格納する。クロック制御回路は、第1のレジスタにクロック使用情報が格納されると、そのクロック使用情報を、内蔵する第2のレジスタに格納する。クロック制御回路は、複数のクロックから第2のレジスタに格納されたクロック使用情報に従って、クロックを選択出力する。これにより、クロックの変更を簡易化し、実行する処理の高速化を図る。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明の原理を説明する原理図である。
【0016】
この図において、マイクロコンピュータ1は、処理切替え制御回路10、キャッシュ制御回路11、レジスタ群12から構成され、そのマイクロコンピュータ1には、ROM2が接続されている。
【0017】
処理切替え制御回路10は、第1のレジスタ10aを内蔵する。処理切替え制御回路10は、実行する処理を切替える毎に、次に実行する処理におけるキャッシュメモリの使用規則を示すキャッシュ使用情報を、第1のレジスタ10aに格納する。
【0018】
キャッシュ制御回路11は、第2のレジスタ11a、キャッシュメモリ11bを内蔵する。キャッシュ制御回路11は、第1のレジスタ10aにキャッシュ使用情報が格納されると、そのキャッシュ使用情報を第2のレジスタ11aに格納する。キャッシュ制御回路11は、第2のレジスタ11aに格納されたキャッシュ使用情報で示された使用規則に従って、データのキャッシュメモリ11bへの入出力を行う。
【0019】
レジスタ群12は、レジスタ12a,12b,12cを有する。レジスタ12a〜12cには、キャッシュメモリ11bの使用規則を示すキャッシュ使用情報A1,A2,A3が格納される。
【0020】
ROM2は、処理切替え制御回路10が実行する処理B1,B2,B3が格納される。
ここで、例えば、キャッシュ使用情報A1は、処理切替え制御回路10が処理B1を実行する際、キャッシュメモリ11bを使用する、という情報である。キャッシュ使用情報A2は、処理切替え制御回路10が処理B2を実行する際、キャッシュメモリ11bを使用しない、という情報である。キャッシュ使用情報A3は、処理切替え制御回路10が処理B3を実行する際、キャッシュメモリ11bを使用する、という情報である。
【0021】
以下、図1の原理図の動作について説明する。
まず、処理切替え制御回路10は、処理B1を実行しているとする。第1のレジスタ10aは、レジスタ12aに格納されたキャッシュ使用情報A1を格納しているとする。キャッシュ制御回路11の第2のレジスタ11aは、レジスタ12aに格納されたキャッシュ使用情報A1を格納しているとする。従って、処理切替え制御回路10は、キャッシュ制御回路11のキャッシュメモリ11bを使用して処理B1を実行していることになる。
【0022】
処理切替え制御回路10が、処理B1から処理B2に実行を切替えるとする。このとき、処理切替え制御回路10は、レジスタ12bに格納された次に実行する処理B2のキャッシュ使用情報A2を第1のレジスタ10aに格納する。
【0023】
キャッシュ制御回路11は、第1のレジスタ10aにキャッシュ使用情報A2が格納されると、第1のレジスタ10aに格納されたキャッシュ使用情報A2を第2のレジスタ11aに格納する。
【0024】
処理切替え制御回路10は、処理B2を実行する。このとき、キャッシュ制御回路11の第2のレジスタ11aには、キャッシュメモリ11bを使用しないという情報のキャッシュ使用情報A2が格納されている。キャッシュ制御回路11は、第2のレジスタ11aに格納されたキャッシュ使用情報A2に従って、キャッシュメモリ11bのデータの入出力を禁止する。よって、処理切替え制御回路10は、キャッシュ制御回路11のキャッシュメモリ11bを使用せずに処理B2を実行することになる。
【0025】
さらに、処理切替え制御回路10が、処理B2から処理B3へ実行を切替えるとする。このとき、処理切替え制御回路10は、レジスタ12cに格納された次に実行する処理B3のキャッシュ使用情報A3を第1のレジスタ10aに格納する。
【0026】
キャッシュ制御回路11は、第1のレジスタ10aにキャッシュ使用情報A3が格納されると、第1のレジスタ10aに格納されたキャッシュ使用情報A3を第2のレジスタ11aに格納する。
【0027】
処理切替え制御回路10は、処理B3を実行する。このとき、キャッシュ制御回路11の第2のレジスタ11aには、キャッシュメモリを使用するという情報のキャッシュ使用情報A3が格納されている。キャッシュ制御回路11は、第2のレジスタ11aに格納されたキャッシュ使用情報A3に従って、キャッシュメモリ11bのデータの入出力を可能とする。よって、処理切替え制御回路10は、キャッシュ制御回路11のキャッシュメモリ11bを使用して処理B3を実行することになる。
【0028】
このように、処理切替え制御回路10は、実行する処理を切替える毎に、その実行する処理におけるキャッシュ使用情報を第1のレジスタ10aに格納し、キャッシュ制御回路11は、第1のレジスタ10aに格納されたキャッシュ情報を第2のレジスタ11aに格納する。キャッシュ制御回路11は、第2のレジスタ11aに格納されたキャッシュ使用情報に従って、データのキャッシュメモリ11bへの入出力を行う。従って、実行する処理を記述したプログラムにキャッシュメモリ11bを制御するための命令を記述する必要がなく、不要なプログラムがキャッシュメモリ11bに格納されることがない。よって、実行されるべき処理がキャッシュメモリ11bに格納され、キャッシュメモリを効率よく使用でき、処理の高速化を図ることができる。
【0029】
また、処理切替え制御回路10は、実行する処理を切替える毎に、次に実行する処理におけるキャッシュ使用情報を第1のレジスタに格納する。従って、実行する処理のプログラムの記述において、次に実行される処理のキャッシュ使用情報を気にすることなく記述でき、キャッシュメモリの使用管理が容易となる。
【0030】
次に、本発明の第1の実施の形態について説明する。
図2は、本発明の第1の実施の形態に係るマイクロコントローラの構成図である。
【0031】
この図において、マイクロコントローラ3は、割込みコントローラ30、CPU31、キャッシュ制御回路32、内部RAM(Random Access Memory)33から構成され、そのマイクロコントローラ3には、ROM4が接続されている。また、割込みコントローラ30は、割込み制御レジスタ群30aを有している。CPU31は、割込みレベルレジスタ31a、割込み判定回路31b、スタックポインタ31cを有している。キャッシュ制御回路32は、キャッシュ制御レジスタ32a、キャッシュメモリ32bを有している。
【0032】
割込みコントローラ30の割込み制御レジスタ群30aは、割り込み要因1,2,・・・に対応する割込みルーチンの、割込みレベル、キャッシュ使用情報、エントリロック情報を格納する。割込みレベルとは、割込み要因1,2,・・・が処理される優先度である。キャッシュ使用情報とは、割込みルーチン実行時にキャッシュメモリ32bを使用するか否かの情報である。エントリロック情報とは、割込みルーチン実行時にキャッシュメモリ32bが使用されている場合で、キャッシュメモリ32bに格納されているデータが、新たに格納されるデータによって書き換えられないように、キャッシュメモリ32bの内容を固定するか否かの情報である。例えば、キャッシュメモリ32bがエントリロックされたとする。キャッシュメモリ32bに空き領域が存在する場合、その空き領域に新しいデータが格納される。すでにデータが格納されている領域には、新しいデータは格納されない。
【0033】
割込みコントローラ30は、割込み判定回路31bと接続され、割込み要因1,2,・・・を受け付けると、受け付けた割込み要因に対応する割込みレベルをCPU31の割込み判定回路31bに送る。
【0034】
CPU31は、ROM4、キャッシュメモリ32bに格納された割込みルーチン及びメインルーチンを実行する。
CPU31の割込みレベルレジスタ31aは、CPU31aが実行する割込みルーチン及びメインルーチンの割込みレベル、キャッシュ使用情報、エントリロック情報を格納する。
【0035】
CPU31の割込み判定回路31bは、割込みコントローラ30から送られてくる割込みレベルと、割込みレベルレジスタ31aに格納されている割込みレベルを比較する。割込み判定回路31bは、割込みコントローラ30から送られてきた割込みレベルが、割込みレベルレジスタ31aに格納されている割込みレベルより高いと、割込み要因を受け付ける。
【0036】
CPU31は、受け付けた割込み要因の、割込みレベル、キャッシュ使用情報、エントリロック情報を、割込み制御レジスタ群30aから割込みレベルレジスタ31aに格納する。
【0037】
CPU31のスタックポインタ31cは、内部RAM33のアドレスが格納される。内部RAM33のデータサイズは8ビットである。スタックポインタ31cは、割込み要因1,2,・・・が発生した場合、格納している内部RAM33のアドレスを減算する。CPU31は、割込みレベルレジスタ31aの内容を、スタックポインタ31cが示す内部RAM33のアドレスに格納する。CPU31は、割込みルーチンの実行が終了すると、スタックポインタ31cが示す内部RAM33のアドレスの内容を、割込みレベルレジスタ31aに格納する。その後、スタックポインタ31cは、格納している内部RAM33のアドレスを加算する。なお、割込みレベルレジスタ31aのデータサイズが8ビットであるとすると、減算値、加算値は、‘1’となる。
【0038】
キャッシュ制御回路32のキャッシュ制御レジスタ32aは、割込みレベルレジスタ31aと接続され、キャッシュ使用情報、エントリロック情報が格納される。キャッシュ制御回路32は、キャッシュ制御レジスタ32aに格納された情報に従って、キャッシュメモリ32bに割込みルーチン、メインルーチンを格納するか否かを制御する。キャッシュ制御回路32は、割込みレベルレジスタ31aに情報が格納されると、割込みレベルレジスタ31aに格納されたキャッシュ使用情報、エントリロック情報をキャッシュ制御レジスタに32aに格納する。
【0039】
次に、各レジスタの構造について説明する。
図3は、割込み制御レジスタ群の構成図の一例である。割込み制御レジスタ群30aは、割込み要因1,2,・・・毎に対応して、情報を格納する8ビットのレジスタである。‘ICR01’は、割込み要因1に対応する情報を格納するレジスタであり、‘ICR02’は、割込み要因2に対応する情報を格納するレジスタである。割込み制御レジスタ群30aのビット0からビット4に示す‘ICR’には、割込みレベルを格納する。ビット5は、空きである。ビット6の‘ICELK’には、エントリロック情報を格納する。ビット7の‘ICENB’には、キャッシュ使用情報を格納する。
【0040】
割込みレベルは、5ビットの数値であらわして‘ICR’に格納する。数値が小さいほど、割込みレベルが高い。具体的には、‘00000’がもっとも高い割込みレベルで、‘11111’がもっとも低い割込みレベルである。
【0041】
キャッシュメモリ11bをエントリロックするには、‘ICELK’に‘1’を格納する。キャッシュメモリ11bをエントリロックしない場合は、‘ICELK’に‘0’を格納する。
【0042】
キャッシュメモリ32bを使用するには、‘ICENB’に‘0’を格納する。キャッシュメモリ32bを使用しない場合は、‘ICENB’に‘1’を格納する。
【0043】
割込みレベル、エントリロック情報、キャッシュ使用情報は、例えば、電源投入時などの初期化処理時に、割込み制御レジスタ群50aに格納しておく。
図4は、割込みレベルレジスタの構成図の一例である。割込みレベルレジスタ31aは、8ビットのレジスタである。ビット0からビット4に示す‘ICR’、ビット6に示す‘ICELK’、ビット7に示す‘ICENB’は、図3で示した‘ICR’、‘ICELK’、‘ICENB’と同様の、割込みレベル、エントリロック情報、キャッシュ使用情報が格納される。ビット5は、空きである。
【0044】
図5は、キャッシュ制御レジスタの構成図の一例である。キャッシュ制御レジスタ32aは、8ビットのレジスタである。ビット0に示す‘ENAB’は、キャッシュメモリ32bを使用するか否かの設定をする情報が格納される。ビット1,2は、空きである。ビット3の‘EOLK’は、キャッシュメモリ32bのエントリロックを使用するか否かの設定をする情報が格納される。ビット4〜7は、空きである。
【0045】
‘EOLK’に‘1’が格納されると、キャッシュ制御回路32は、キャッシュメモリ32bをエントリロックする。‘EOLK’に‘0’が格納されると、キャッシュ制御回路32は、キャッシュメモリ32bをエントリロックしない。
【0046】
‘ENAB’に‘1’が格納されると、キャッシュ制御回路32は、キャッシュメモリ32bを使用可能状態とする。‘ENAB’に‘0’が格納されると、キャッシュ制御回路32は、キャッシュメモリ32bを使用不可状態にする。
【0047】
ここで、メインルーチンは、通常の処理であり、もっとも低い割込みレベルとする。メインルーチンは、キャッシュメモリ32b及びエントリロックが使用されて、CPU31に実行されるとする。
【0048】
割込み要因1の割込みレベルは、2番目に低いレベルであるとする。割込み要因1に対応する割込みルーチンは、キャッシュメモリ32b及びエントリロックが使用されずに、CPU31に実行されるとする。
【0049】
割込み要因2の割込みレベルは、3番目に低いレベルであるとする。割込み要因2に対応する割込みルーチンは、キャッシュメモリ32b及びエントリロックが使用されずに、CPU31に実行されるとする。
【0050】
以下、図2のマイクロコントローラ3の動作について説明する。
CPU31は、通常の処理であるメインルーチンを実行しているとする。
割込み要因1が割込みコントローラ30に発生すると、割込みコントローラ30は、割込み要因1に対応する割込みレベルを割込み判定回路31bに送る。
【0051】
割込み判定回路31bは、割込みコントローラ30から送られてきた割込みレベルと、割込みレベルレジスタ31aに格納されている割込みレベルを比較する。現在CPU31が実行しているメインルーチンの割込みレベルは最も低く、割込み要因1の割込みレベルは、2番目に低い。このため、CPU31は、割込み制御レジスタ群30aの割込み要因1に対応するレジスタの内容を、割込みレベルレジスタ31aに格納する。このとき、スタックポインタ31cは、格納している内部RAM33のアドレスに‘1’を減算する。そして、CPU31は、割込みレベルレジスタ31aの内容を内部RAM33に格納する(スタックする)。
【0052】
割込み制御レジスタ群30aのレジスタの内容が、割込みレベルレジスタ31aに格納されると、キャッシュ制御回路32は、割込みレベルレジスタ31aに格納された、キャッシュ使用情報とエントリロック情報をキャッシュ制御レジスタ32aに格納する。その後、CPU31は、割込み要因1に対応する割込みルーチンを実行する。
【0053】
従って、CPU31が割込み要因1に対応する割込みルーチンを実行するときには、この割込みルーチンを実行するときのキャッシュ使用情報、エントリロック情報が、キャッシュ制御レジスタ32aに設定されている。キャッシュ制御回路32は、キャッシュ制御レジスタ32aの設定に従って、キャッシュメモリ32bの制御をする。
【0054】
CPU31は、割込み要因1に対応する割込みルーチンの実行を終了すると、内部RAM33に格納されていた割込みレベルレジスタ31aの内容を、割込みレベルレジスタ31aに格納する。すなわち、CPU31は、メインルーチンを実行していたときの割込みレベルレジスタ31aの内容を、割込みレベルレジスタ31aに格納しメインルーチンを実行する。スタックポインタ31cは、格納している内部RAM33のアドレスに‘1’を加算する。
【0055】
なお、割込み要因1の割込み処理をCPU31が実行しているときに、割込み要因2が発生し場合においても、上記で説明したように、スタックポインタ31cで示す内部RAM33のアドレスに割込みレベルレジスタ31aの内容が格納され、一時退避される。割込み要因2に対応する割込み処理が終了すると、一時退避されていた割込みレベルレジスタ31aの内容が、割込みレベルレジスタ31aに格納される。これにより、再び、割込み要因1に対応する割込みルーチンがCPU31によって実行される。
【0056】
次に、各レジスタのレジスタ値の遷移から、マイクロコントローラ3の動作について説明する。
図6は、CPU31が実行している処理ルーチンの遷移状態と各レジスタの遷移状態を示す図である。図に示す割込み制御レジスタ群値30aaは、割込み制御レジスタ群30aのレジスタ値を示す。割込みレベルレジスタ値31aa,31acは、CPU31がメインルーチンを実行しているときの割込みレベルレジスタ31aの値を示す。割込みレベルレジスタ値31abは、CPU31が割込みルーチンを実行しているときの割込みレベルレジスタ31aの値を示す。キャッシュ制御レジスタ値32aa、32acは、CPU31がメインルーチンを実行しているときのキャッシュ制御レジスタ32aの値を示す。キャッシュ制御レジスタ値32abは、CPU31が割込みルーチンを実行しているときのキャッシュ制御レジスタ32aの値を示す。
【0057】
CPU31がメインルーチンを実行している場合、割込みレベルレジスタ値31aaに示すように、割込みレベルレジスタ31aの‘ICENB’(ビット7)には、‘0’が格納され、‘ICELK’(ビット6)には、‘1’が格納されている。
【0058】
キャッシュ制御レジスタ32aの‘EOLK’(ビット3)には、割込みレベルレジスタ31aの‘ICELK’(ビット6)の値‘1’が格納される。キャッシュ制御レジスタ32aの‘ENAB’(ビット0)には、割込みレベルレジスタ31aの‘ICENB’(ビット7)の値を反転した‘1’が格納される。すなわち、CPU31は、キャッシュメモリ32b及びエントリロックを使用してメインルーチンを実行している。
【0059】
割込み要因1が割込みコントローラ30に発生すると、割込み判定回路31bによって、割込みレベルレジスタ31aの割込みレベルと、割込み制御レジスタ群30aの割込み要因1に対応したレジスタ‘ICR01’の割込みレベルとが比較される。
【0060】
割込みレベルレジスタ31aの割込みレベルは、割込みレベルレジスタ値31aaに示すように‘11111’である。割込み制御レジスタ群30aのレジスタ‘ICR01’の割込みレベルは、割込み制御レジスタ群値30aaに示すように、‘11110’である。
【0061】
レジスタ‘ICR01’の割込みレベルが、割込みレベルレジスタ31aの割込みレベルより高いので、CPU31は、割込みレベルレジスタ31aの値(割込みレベルレジスタ値31aa)を内部RAM33に格納する。続いて、CPU31は、レジスタ‘ICR01’のレジスタ値を、割込みレベルレジスタ31aに格納する。割込みレベルレジスタ31aの値は、図6に示す割込みレベルレジスタ値31abとなる。
【0062】
キャッシュ制御回路32は、割込みレベルレジスタ31aの‘ICELK’(ビット6)の値を、キャッシュ制御レジスタ32aの‘EOLK’(ビット3)に格納する。また、キャッシュ制御回路32は、割込みレベルレジスタ31aの‘ICENB’(ビット7)の値を反転して、キャッシュ制御レジスタ32aの‘ENAB’(ビット0)に格納する。すなわち、キャッシュ制御レジスタ32aの値は、図6のキャッシュ制御レジスタ値32abのようになる。
【0063】
従って、割込みルーチンは、キャッシュメモリ32b、エントリロックを使用せずに実行される。
割込みルーチンの処理が終了すると、CPU31は、内部RAM33に格納した割込みレベルレジスタ値31aaを割込みレベルレジスタ31aに格納する。すなわち、割込みレベルレジスタ31aの値は、割込みレベルレジスタ値31acとなる。
【0064】
キャッシュ制御回路32は、割込みレベルレジスタ31aの‘ICELK’(ビット6)の値を、キャッシュ制御レジスタ32aの‘EOLK’(ビット3)に格納する。また、キャッシュ制御回路32は、割込みレベルレジスタ31aの‘ICENB’(ビット7)の値を反転して、キャッシュ制御レジスタ32aの‘ENAB’(ビット0)に格納する。すなわち、キャッシュ制御レジスタ32aの値は、図6のキャッシュ制御レジスタ値32acのようになる。
【0065】
従って、メインルーチンは、再び、キャッシュメモリ32b、エントリロックを使用して実行される。このように各レジスタのレジスタ値が遷移して、メインルーチン、割込みルーチンが実行される。
【0066】
次に、キャッシュ制御回路32のキャッシュ制御レジスタ32aの書き換えにおける動作について説明する。
図7は、キャッシュ制御回路のキャッシュ制御レジスタの書き換えにおける動作を示すフローチャートである。
【0067】
[S10]キャッシュ制御回路32は、CPU31からキャッシュ制御レジスタ32aの書き換え要求があるか否かを確認する。キャッシュ制御回路32は、キャッシュ制御レジスタ32aの書き換え要求があればステップS11に進む。要求がなければ、キャッシュ制御回路32は待機する。
【0068】
[S11]キャッシュ制御回路32は、キャッシュメモリ32bがデータの入出力を行っているか否かを確認する。キャッシュ制御回路32は、キャッシュメモリ32bが、データの入出力を行っていれば待機し、行っていなければステップS12へ進む。
【0069】
[S12]キャッシュ制御回路32は、割込み要因によるキャッシュ制御レジスタ32aの書き換え要求であるか、CPU31が実行している処理ルーチンのプログラムに記述されている書き換え要求であるかの確認をする。キャッシュ制御回路32は、プログラムに記述された書き換え要求であればステップS13へ、割込み要因による書き換え要求であればステップS14へ進む。
【0070】
[S13]キャッシュ制御回路32は、CPU31とキャッシュメモリ32bが接続されたデータバスからの書き換え値を、キャッシュ制御レジスタ32aに格納する。
【0071】
[S14]キャッシュ制御回路32は、割込みレベルレジスタ31aの値をキャッシュ制御レジスタ32aに格納する。
このように、キャッシュ制御レジスタ32aのレジスタ値の格納は、上記で説明した方法とともに、CPU31に特定のプログラム命令を実行させて行うようにしてもよい。
【0072】
次に、キャッシュ制御回路32のキャッシュメモリ32bにおける動作制御について説明する。
図8は、キャッシュ制御回路のキャッシュメモリにおける動作制御を示すフローチャートである。
【0073】
[S20]キャッシュ制御回路32は、キャッシュ制御レジスタ32aの‘ENAB’の値を読み込む。‘ENAB’の値が‘1’であれば、キャッシュ制御回路32は、キャッシュメモリ32bを使用可能状態にし、ステップS21へ進む。‘ENAB’の値が‘0’であれば、キャッシュ制御回路32は、キャッシュメモリ32bを使用不可状態にし、キャッシュ制御回路20は、待機する。
【0074】
[S21]キャッシュ制御回路32は、CPU31が実行する命令データ(メインルーチン、割込みルーチンの全部、または、一部)を要求しているか否かを確認する。キャッシュ制御回路32は、CPU31がキャッシュメモリ32bに命令データを要求していると、ステップS22に進む。要求していなければ待機する。
【0075】
[S22]キャッシュ制御回路32は、命令データをキャッシュする。キャッシュヒットすれば、ステップS23へ進む。キャッシュミスすれば、ステップS24へ進む。
【0076】
[S23]キャッシュ制御回路32は、キャッシュヒット処理を行う。すなわち、キャッシュ制御回路32は、CPU31がキャッシュメモリ32bの命令データを実行できるようにする。
【0077】
[S24]キャッシュ制御回路32は、キャッシュ制御レジスタ32aの‘EOLK’の値を読み込む。‘EOLK’の値が‘1’であれば、キャッシュ制御回路32は、エントリロックを行うためステップS25へ進む。‘EOLK’の値が‘0’であれば、キャッシュ制御回路32は、ステップS26へ進む。
【0078】
[S25]キャッシュ制御回路32は、エントリロックを行う。キャッシュメモリ32bに空き領域が存在する場合、その空き領域にCPU31がROM4にアクセスした新たな命令データを格納する。すでに、データが格納されている領域には、新たな命令データを格納しない。
【0079】
[S26]キャッシュ制御回路32は、キャッシュミス処理を行う。キャッシュ制御回路32は、CPU31がROM4にアクセスした新たな命令データをキャッシュメモリ32bに格納する。
【0080】
このように、実行する処理ルーチンが切替えられると、次に実行される処理ルーチンのキャッシュ使用情報、エントリロック情報が、キャッシュ制御回路32によって、キャッシュ制御レジスタ32aに格納される。すなわち、処理ルーチンのプログラムにキャッシュ使用情報を示す命令を記述する必要がなく、キャッシュメモリ32bに、不要なプログラム命令が格納されることがない。よって、実行されるべき処理がキャッシュメモリ32bに格納され、キャッシュメモリを効率よく使用でき、処理の高速化を図ることができる。
【0081】
また、実行している処理ルーチンが途中で切替えられても、割込みレベルレジスタ31aの情報は、スタックポインタ31c、内部RAM33によって一時退避される。新たな処理ルーチンの実行が終了したとき、一時退避した情報は、再び、スタックポインタ31c、内部RAM33によって割込みレベルレジスタ31aに格納される。従って、プログラム作成時における処理ルーチンのプログラムの記述において、次に実行される処理ルーチンのキャッシュ使用情報を気にすることなく記述でき、キャッシュメモリの使用管理が容易となる。
【0082】
次に、本発明の第2の実施の形態について説明する。
図9は、本発明の第2の実施の形態に係るマイクロコントローラの構成図である。
【0083】
この図において、マイクロコントローラ5は、割込みコントローラ50、CPU51、クロック制御回路52、内部RAM53から構成され、そのマイクロコントローラ5には、ROM6が接続されている。また、割込みコントローラ50は、割込み制御レジスタ群50aを有している。CPU51は、割込みレベルレジスタ51a、割込み判定回路51b、スタックポインタ51cを有している。クロック制御回路52は、クロック制御レジスタ52a、同期回路52b、セレクタ52cを有している。
【0084】
割込みコントローラ50の割込み制御レジスタ群50aは、割り込み要因1,2,・・・に対応する割込みルーチンの、割込みレベル、クロック使用情報、を格納する。クロック使用情報とは、割込みルーチンを高速クロックで実行するか、低速クロックで実行するかという情報である。
【0085】
割込みコントローラ50は、割込み判定回路51bと接続され、割込み要因1,2,・・・を受け付けると、受け付けた割込み要因の割込みレベルをCPU51の割込み判定回路51bに送る。
【0086】
CPU51は、ROM6に格納された割込みルーチン及びメインルーチンを実行する。CPU51の割込みレベルレジスタ51aは、CPU51が実行する割込みルーチン、メインルーチンの割込みレベル、クロック使用情報を格納する。
【0087】
CPU51の割込み判定回路51bは、割込みコントローラ50から送られてくる割込み要因に対応する割込みレベルと、割込みレベルレジスタ51aに格納されている割込みレベルを比較する。割込み判定回路51bは、割込みコントローラ50から送られてきた割込みレベルが割込みレベルレジスタ51aに格納されている割込みレベルより高いと、割込み要因を受け付ける。CPU51は、受け付けた割込みの要因の、割込みレベル、クロック使用情報を割込み制御レジスタ群50aから割込みレベルレジスタ51aに格納する。
【0088】
スタックポインタ51c、内部RAM53の動作は、第1の実施の形態で説明したスタックポインタ31c、内部RAM33と同様であるため、説明を省略する。
【0089】
クロック制御回路52のクロック制御レジスタ52aは、割込みレベルレジスタ51aと接続され、クロック使用情報を格納する。
同期回路52bは、高速クロックと低速クロックに同期したクロックを出力する。例えば、高速クロックと低速クロックの立ち上がり、又は立下りに同期して、クロックを出力する。
【0090】
セレクタ52cは、クロック制御レジスタ52aのクロック制御情報に従って、高速クロック又は低速クロックを出力する。
ここで、通常の処理であるメインルーチンは、もっとも低い割込みレベルとする。メインルーチンは、低速クロックで実行されるとする。
【0091】
割込み要因1の割込みレベルは、2番目に低いレベルであるとする。割込み要因1を処理するための割込みルーチンは、高速クロックで実行されるとする。
割込み要因2の割込みレベルは、3番目に低いレベルであるとする。割込み要因2を処理するための割込みルーチンは、高速クロックで実行されるとする。
【0092】
以下、図9のマイクロコントローラ5の動作について説明する。
CPU51は、通常の処理であるメインルーチンを実行しているとする。割込み要因1が割込みコントローラ50に発生すると、割込みコントローラ50は、割込み要因1に対応する割込みレベルを割込み判定回路51bに送る。
【0093】
割込み判定回路51bは、割込みコントローラ50から送られてきた割込みレベルと、割込みレベルレジスタ51aに格納されている割込みレベルを比較する。現在実行しているメインルーチンの割込みレベルは最も低く、割込み要因1の割込みレベルは、2番目に低い。従って、CPU51は、割込み制御レジスタ群50aの割込み要因1に対応するレジスタの内容を、割込みレベルレジスタ51aに格納する。このとき、スタックポインタ51cは、格納している内部RAM53のアドレスに‘1’を減算する。そして、CPU51は、割込みレベルレジスタ51aの内容を内部RAM53に格納する(スタックする)。
【0094】
CPU51によって、割込み制御レジスタ群50aの割込み要因1に対応するレジスタの内容が、割込みレベルレジスタ51aに格納されると、クロック制御回路52は、割込みレベルレジスタ51aに格納されたクロック使用情報を、同期回路52bから出力される同期クロックに同期してクロック制御レジスタ52aに格納する。
【0095】
図10は、低速クロック、高速クロックの切替えを説明するためのタイミングチャートである。図10に示すように、高速クロックと低速クロックがともに立ち下がり状態のとき、同期クロックが出力される。同期クロックが立ち下がったとき、クロック使用情報がクロック制御レジスタ52aに格納される。すなわち、CPU51がメインルーチンから割込みルーチンへ実行を切替えたとき、割込みレベルレジスタ51aに格納されているクロック使用情報は、クロック制御レジスタ52aに送られるが、同期クロックの立下りまで格納されない。
【0096】
クロック制御レジスタ52aに格納されたクロック使用情報は、セレクタ52cに送られる。図10の例では、セレクタ52cは、クロック使用情報に従って、高速クロックを出力する。なお、クロック使用情報がセレクタに入力されるとき、同期クロックの立下りから遅れているが(矢印C)、これは、回路による遅延である。
【0097】
図11は、同期制御をしない場合の低速クロック、高速クロックの切替えを説明するためのタイミングチャートである。同期制御しない場合、図11に示すように、CPU51がメインルーチンから割込みルーチンへ実行を切替えたとき、クロック制御レジスタ52aに格納されたクロック使用情報は、直ちにセレクタ52cに入力される。このため、セレクタ52cから出力されるクロック出力は、図11に示すように乱れた波形となる。なお、クロック使用情報がセレクタ52cに入力されるとき、CPU51がメインルーチンから割込みルーチンへ実行を切替えたときから遅れているが(矢印D)、これは、回路による遅延である。
【0098】
このように、高速クロックと低速クロックに同期して、高速クロック、低速クロックを切替えることによって、クロックの切替え時に、波形が乱れることがない。
【0099】
CPU51は、割込み要因1に対応する割込みルーチンの実行を終了すると、内部RAM53に格納されていた割込みレベルレジスタ51aの内容を、割込みレベルレジスタ51aに格納する。すなわち、CPU51は、メインルーチンを実行していたときの割込みレベルレジスタ51aの内容を、割込みレベルレジスタ51aに格納しメインルーチンを実行する。スタックポインタ51cは、格納している内部RAM53のアドレスに‘1’を加算する。
【0100】
なお、割込み要因1に対応する割込み処理をCPU51が実行しているときに、割込み要因2が発生し場合においても、上記で説明したように、スタックポインタ51cで示す内部RAM53のアドレスに割込みレベルレジスタ51aの内容が格納され、一時退避される。割込み要因2に対応する割込み処理が終了すると、一時退避されていた割込みレベルレジスタ51aの内容が、割込みレベルレジスタ51aに格納される。これにより、再び、割込み要因1に対応する割込みルーチンがCPU51によって実行される。
【0101】
このように、実行する処理ルーチンが切替えられると、次に実行される処理ルーチンのクロック使用情報が、クロック制御回路52によって、クロック制御レジスタ52aに格納される。従って、処理ルーチンのプログラムにクロック使用情報を示す命令を記述する必要がなく、容易にクロックを切替えることができ、処理の実行の高速化を図ることができる。
【0102】
また、実行している処理ルーチンが途中で切替えられても、割込みレベルレジスタ51aの情報は、スタックポインタ51c、内部RAM53によって一時退避される。新たな処理ルーチンの実行が終了したとき、一時退避した情報は、再び、スタックポインタ51c、内部RAM53によって割込みレベルレジスタ51aに格納される。従って、実行する処理ルーチンのプログラムの記述において、次に実行される処理ルーチンのクロック使用情報を気にすることなく記述でき、クロックの切替え管理が容易となる。
【0103】
なお、一般のマイクロコントローラは、処理状態を設定、又は調べるためのプログラムステータスレジスタを搭載し、割込み処理時に、このプログラムステータスレジスタの内容をスタックする。そこで、プログラムステータスレジスタの空き領域の一部を割込みレベルレジスタとして使用する。図12は、プログラムステータスレジスタの一例を示す図である。図に示すプログラムステータスレジスタ31cは32ビットのレジスタである。図12の例では、プログラムステータスレジスタ31cのビット16から23ビットを割込みレベルレジスタ31dとして使用している。これにより、スタックへの退避、復帰に関しては、従来の回路のままで実現することができる。なお、プログラムステータスレジスタ31cは、32ビットのレジスタで、内部RAM33は、8ビットのデータサイズであるので、スタックの退避、復帰における内部RAM33のアドレスの減算値、加算値は‘4’となる。
【0104】
(付記1) キャッシュメモリを有するマイクロコンピュータにおいて、
第1のレジスタを内蔵し、実行する処理を切替える毎に、次に実行する処理におけるキャッシュメモリの使用規則を示すキャッシュ使用情報を、前記第1のレジスタに格納する処理切替え制御回路と、
第2のレジスタを内蔵し、前記第1のレジスタに前記キャッシュ使用情報が格納されると前記キャッシュ使用情報を前記第2のレジスタに格納し、当該第2のレジスタに格納された前記キャッシュ使用情報で示された使用規則に従って、データの前記キャッシュメモリへの入出力を行うキャッシュ制御回路と、
を有することを特徴とするマイクロコンピュータ。
【0105】
(付記2) 前記処理切替え制御回路が実行する処理毎の前記キャッシュ使用情報を格納するキャッシュ使用情報格納レジスタを有し、
前記処理切替え制御回路は、次に実行する処理のキャッシュ使用情報を前記キャッシュ使用情報格納レジスタから取得して前記第1のレジスタに格納することを特徴とする付記1記載のマイクロコンピュータ。
【0106】
(付記3) 前記キャッシュ使用情報は、前記キャッシュメモリを使用して処理を実行するか否かの情報であることを特徴とする付記1記載のマイクロコンピュータ。
【0107】
(付記4) 前記キャッシュ使用情報は、前記処理切替え制御回路が前記キャッシュメモリを使用して処理を実行している場合で、前記キャッシュメモリに新たなデータを格納可能とするか否かのエントリロック情報であることを特徴とする付記1記載のマイクロコンピュータ。
【0108】
(付記5) 前記処理切替え制御回路は、現在実行している処理の処理されるべき順序を示す優先度と、次に実行する処理の優先度とを比較し、次に実行する処理の優先度が高い場合に、前記キャッシュ使用情報を前記第1のレジスタに格納することを特徴とする付記1記載のマイクロコンピュータ。
【0109】
(付記6) 前記処理切替え制御回路が実行する処理を切替える毎に、前記第1のレジスタの値が入出力されるメモリと、
前記メモリの前記値が入出力されるアドレスを格納し、前記値の出入が行われたとき前記アドレスを増減するスタックポインタと、
を有することを特徴とする付記1記載のマイクロコンピュータ。
【0110】
(付記7) 前記第1のレジスタはプログラムステータスレジスタの一部であることを特徴とする付記1記載のマイクロコンピュータ。
(付記8) キャッシュメモリを有するマイクロコンピュータのキャッシュメモリ制御方法において、
実行する処理を切替える毎に、次に実行する処理におけるキャッシュメモリの使用規則を示すキャッシュ使用情報を第1のレジスタに格納し、
前記第1のレジスタに前記キャッシュ使用情報が格納されると前記キャッシュ使用情報を第2のレジスタに格納し、
当該第2のレジスタに格納された前記キャッシュ使用情報で示された使用規則に従って、データの前記キャッシュメモリへの入出力を行う、
ことを特徴とするキャッシュメモリ制御方法。
【0111】
(付記9) クロックに同期して処理を実行するマイクロコンピュータにおいて、
第1のレジスタを内蔵し、実行する処理を切替える毎に、次に実行する処理に使用されるクロックを示すクロック使用情報を、前記第1のレジスタに格納する処理切替え制御回路と、
第2のレジスタを内蔵し、前記第1のレジスタに前記クロック使用情報が格納されると前記クロック使用情報を前記第2のレジスタに格納し、複数のクロックから当該第2のレジスタに格納された前記クロック使用情報に従って、クロックを選択出力するクロック制御回路と、
を有することを特徴とするマイクロコンピュータ。
【0112】
(付記10) 前記クロック制御回路は、前記第2のレジスタに前記クロック使用情報が格納された後、前記複数のクロックの全てが同期したとき、前記クロックを選択出力することを特徴とする付記8記載のマイクロコンピュータ。
【0113】
(付記11) クロックに同期して処理を実行するマイクロコンピュータのクロック制御方法において、
実行する処理を切替える毎に、次に実行する処理に使用されるクロックを示すクロック使用情報を第1のレジスタに格納し、
前記第1のレジスタに前記クロック使用情報が格納されると前記クロック使用情報を第2のレジスタに格納し、
複数のクロックを出力するクロック出力回路から当該第2のレジスタに格納された前記クロック使用情報に従ったクロックを出力する、
ことを特徴とするクロック制御方法。
【0114】
【発明の効果】
以上説明したように本発明の第1の形態では、処理切替え制御回路は、実行する処理を切替える毎に、次に実行するキャッシュ使用情報を、内蔵する第1のレジスタに格納する。キャッシュ制御回路は、第1のレジスタにキャッシュ使用情報が格納されると、そのキャッシュ使用情報を内蔵する第2のレジスタに格納し、格納したキャッシュ使用情報に従って、データのキャッシュメモリへの入出力を行う。これにより、キャッシュメモリの使用効率が上がり、実行する処理の高速化を図ることができる。
【0115】
また、本発明の第2の形態では、処理切替え制御回路は、実行する処理を切替える毎に、次に実行するクロック使用情報を、内蔵する第1のレジスタに格納する。クロック制御回路は、第1のレジスタにクロック使用情報が格納されると、そのクロック使用情報を内蔵する第2のレジスタに格納し、複数のクロックから格納したクロック使用情報に従って、クロックを選択出力する。これにより、クロックの変更が簡易化され、実行する処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の原理を説明する原理図である。
【図2】本発明の第1の実施の形態に係るマイクロコントローラの構成図である。
【図3】割込み制御レジスタ群の構成図の一例である。
【図4】割込みレベルレジスタの構成図の一例である。
【図5】キャッシュ制御レジスタの構成図の一例である。
【図6】CPU31が実行している処理ルーチンの遷移状態と各レジスタの遷移状態を示す図である。
【図7】キャッシュ制御回路のキャッシュ制御レジスタの書き換えにおける動作を示すフローチャートである。
【図8】キャッシュ制御回路のキャッシュメモリにおける動作制御を示すフローチャートである。
【図9】本発明の第2の実施の形態に係るマイクロコントローラの構成図である。
【図10】低速クロック、高速クロックの切替えを説明するためのタイミングチャートである。
【図11】同期制御をしない場合の低速クロック、高速クロックの切替えを説明するためのタイミングチャートである。
【図12】プログラムステータスレジスタの一例を示す図である。
【図13】従来のマイクロコントローラの内部構成を示すブロック図である。
【図14】従来のマイクロコントローラのCPUの処理遷移図である。
【符号の説明】
1 マイクロコンピュータ
2,4,6 ROM
3,5 マイクロコントローラ
10 処理切替え制御回路
10a 第1のレジスタ
11 キャッシュ制御回路
11a 第2のレジスタ
11b,32b キャッシュメモリ
12 レジスタ群
30,50 割込みコントローラ
30a,50a 割込み制御レジスタ群
31,51 CPU
31a,51a 割込みレベルレジスタ
31b,51b 割込み判定回路
31c,51c スタックポインタ
32 キャッシュ制御回路
32a キャッシュ制御レジスタ
33,53 内部RAM
52 クロック制御回路
52a クロック制御レジスタ
52b 同期回路
52c セレクタ

Claims (10)

  1. キャッシュメモリを有するマイクロコンピュータにおいて、
    第1のレジスタを内蔵し、実行する処理を切替える毎に、次に実行する処理におけるキャッシュメモリの使用規則を示すキャッシュ使用情報を、前記第1のレジスタに格納する処理切替え制御回路と、
    第2のレジスタを内蔵し、前記第1のレジスタに前記キャッシュ使用情報が格納されると前記キャッシュ使用情報を前記第2のレジスタに格納し、当該第2のレジスタに格納された前記キャッシュ使用情報で示された使用規則に従って、データの前記キャッシュメモリへの入出力を行うキャッシュ制御回路と、
    を有することを特徴とするマイクロコンピュータ。
  2. 前記処理切替え制御回路が実行する処理毎の前記キャッシュ使用情報を格納するキャッシュ使用情報格納レジスタを有し、
    前記処理切替え制御回路は、次に実行する処理のキャッシュ使用情報を前記キャッシュ使用情報格納レジスタから取得して前記第1のレジスタに格納することを特徴とする請求項1記載のマイクロコンピュータ。
  3. 前記キャッシュ使用情報は、前記キャッシュメモリを使用して処理を実行するか否かの情報であることを特徴とする請求項1記載のマイクロコンピュータ。
  4. 前記キャッシュ使用情報は、前記処理切替え制御回路が前記キャッシュメモリを使用して処理を実行している場合で、前記キャッシュメモリに新たなデータを格納可能とするか否かのエントリロック情報であることを特徴とする請求項1記載のマイクロコンピュータ。
  5. 前記処理切替え制御回路は、現在実行している処理の処理されるべき順序を示す優先度と、次に実行する処理の優先度とを比較し、次に実行する処理の優先度が高い場合に、前記キャッシュ使用情報を前記第1のレジスタに格納することを特徴とする請求項1記載のマイクロコンピュータ。
  6. 前記処理切替え制御回路が実行する処理を切替える毎に、前記第1のレジスタの値が入出力されるメモリと、
    前記メモリの前記値が入出力されるアドレスを格納し、前記値の出入が行われたとき前記アドレスを増減するスタックポインタと、
    を有することを特徴とする請求項1記載のマイクロコンピュータ。
  7. キャッシュメモリを有するマイクロコンピュータのキャッシュメモリ制御方法において、
    実行する処理を切替える毎に、次に実行する処理におけるキャッシュメモリの使用規則を示すキャッシュ使用情報を第1のレジスタに格納し、
    前記第1のレジスタに前記キャッシュ使用情報が格納されると前記キャッシュ使用情報を第2のレジスタに格納し、
    当該第2のレジスタに格納された前記キャッシュ使用情報で示された使用規則に従って、データの前記キャッシュメモリへの入出力を行う、
    ことを特徴とするキャッシュメモリ制御方法。
  8. クロックに同期して処理を実行するマイクロコンピュータにおいて、
    第1のレジスタを内蔵し、実行する処理を切替える毎に、次に実行する処理に使用されるクロックを示すクロック使用情報を、前記第1のレジスタに格納する処理切替え制御回路と、
    第2のレジスタを内蔵し、前記第1のレジスタに前記クロック使用情報が格納されると前記クロック使用情報を前記第2のレジスタに格納し、複数のクロックから当該第2のレジスタに格納された前記クロック使用情報に従って、クロックを選択出力するクロック制御回路と、
    を有することを特徴とするマイクロコンピュータ。
  9. 前記クロック制御回路は、前記第2のレジスタに前記クロック使用情報が格納された後、前記複数のクロックの全てが同期したとき、前記クロックを選択出力することを特徴とする請求項8記載のマイクロコンピュータ。
  10. クロックに同期して処理を実行するマイクロコンピュータのクロック制御方法において、
    実行する処理を切替える毎に、次に実行する処理に使用されるクロックを示すクロック使用情報を第1のレジスタに格納し、
    前記第1のレジスタに前記クロック使用情報が格納されると前記クロック使用情報を第2のレジスタに格納し、
    複数のクロックを出力するクロック出力回路から当該第2のレジスタに格納された前記クロック使用情報に従ったクロックを出力する、
    ことを特徴とするクロック制御方法。
JP2002057351A 2002-03-04 2002-03-04 マイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法 Expired - Fee Related JP4056768B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2002057351A JP4056768B2 (ja) 2002-03-04 2002-03-04 マイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法
US10/355,177 US7007134B2 (en) 2002-03-04 2003-01-31 Microcomputer, method of controlling cache memory, and method of controlling clock
US11/299,893 US7434079B2 (en) 2002-03-04 2005-12-13 Microcomputer, method of controlling cache memory, and method of controlling clock

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002057351A JP4056768B2 (ja) 2002-03-04 2002-03-04 マイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法

Publications (2)

Publication Number Publication Date
JP2003256277A JP2003256277A (ja) 2003-09-10
JP4056768B2 true JP4056768B2 (ja) 2008-03-05

Family

ID=27800119

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002057351A Expired - Fee Related JP4056768B2 (ja) 2002-03-04 2002-03-04 マイクロコンピュータ、キャッシュメモリ制御方法及びクロック制御方法

Country Status (2)

Country Link
US (2) US7007134B2 (ja)
JP (1) JP4056768B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2411019B (en) * 2004-02-16 2007-03-07 Advanced Risc Mach Ltd Data accesses in data processing
US8527713B2 (en) * 2006-01-31 2013-09-03 Qualcomm Incorporated Cache locking without interference from normal allocations
JP4687685B2 (ja) * 2007-04-24 2011-05-25 株式会社デンソー エンジン制御用電子制御装置およびマイクロコンピュータ
JP5186802B2 (ja) * 2007-05-08 2013-04-24 富士通セミコンダクター株式会社 マイクロプロセッサ
JP4703738B2 (ja) * 2009-03-18 2011-06-15 富士通株式会社 ストレージ装置
WO2013095404A1 (en) 2011-12-20 2013-06-27 Intel Corporation Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
US20140095896A1 (en) * 2012-09-28 2014-04-03 Nicholas P. Carter Exposing control of power and clock gating for software

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235692A (en) * 1990-08-31 1993-08-10 International Business Machines Corporation Disk rotational position controls for channel operations in a cached peripheral subsystem
US5319760A (en) * 1991-06-28 1994-06-07 Digital Equipment Corporation Translation buffer for virtual machines with address space match
US5623647A (en) * 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US5974438A (en) * 1996-12-31 1999-10-26 Compaq Computer Corporation Scoreboard for cached multi-thread processes
US6230230B1 (en) * 1998-12-03 2001-05-08 Sun Microsystems, Inc. Elimination of traps and atomics in thread synchronization
US6757771B2 (en) * 2000-08-09 2004-06-29 Advanced Micro Devices, Inc. Stack switching mechanism in a computer system
EP1182559B1 (en) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
US6950951B2 (en) * 2002-04-30 2005-09-27 Arm Limited Power control signalling
US7369815B2 (en) * 2003-09-19 2008-05-06 Qualcomm Incorporated Power collapse for a wireless terminal
JP4497918B2 (ja) * 2003-12-25 2010-07-07 株式会社日立製作所 ストレージシステム

Also Published As

Publication number Publication date
US20030167378A1 (en) 2003-09-04
US7007134B2 (en) 2006-02-28
US20060095810A1 (en) 2006-05-04
JP2003256277A (ja) 2003-09-10
US7434079B2 (en) 2008-10-07

Similar Documents

Publication Publication Date Title
US7412590B2 (en) Information processing apparatus and context switching method
WO2008023426A1 (fr) Dispositif de traitement de tâche
US7434079B2 (en) Microcomputer, method of controlling cache memory, and method of controlling clock
JP2007133456A (ja) 半導体装置
WO2008023427A1 (fr) Dispositif de traitement de tâche
US5822762A (en) Information processing device with decision circuits and partitioned address areas
JP2004516547A (ja) 中断制御装置
JP2007041771A (ja) プロセススケジューリングシステム、プロセススケジューリング方法およびプログラム
EP1103898A2 (en) Microprocessor and memory
JP7468112B2 (ja) インタフェース回路およびインタフェース回路の制御方法
JP2003131945A (ja) キャッシュメモリ装置
KR100457478B1 (ko) 메모리액세스방법및데이터처리시스템
WO2012066621A1 (ja) 情報処理システム
JP2001290704A (ja) マルチプロセス制御装置及びマルチプロセス制御方法
JP4498705B2 (ja) キャッシュシステム
US20040103267A1 (en) Data processor having cache memory
JP2006331008A (ja) メモリインタフェース
JP5708273B2 (ja) 通信装置、情報処理装置、データ送信方法
JP2742245B2 (ja) 並列計算機
JP2005071203A (ja) マイクロプロセッサ
JPH1055308A (ja) キャッシュメモリ
JP2020149597A (ja) 制御装置および制御方法
JP2003228546A (ja) ダイレクト・メモリ・アクセス制御装置
JP2003076559A (ja) 情報処理装置
WO2001004760A1 (fr) Controleur de memoire

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071113

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071212

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101221

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20101221

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121221

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121221

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131221

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

LAPS Cancellation because of no payment of annual fees