JP2008217563A - 非同期コンテキスト切り替えシステム - Google Patents

非同期コンテキスト切り替えシステム Download PDF

Info

Publication number
JP2008217563A
JP2008217563A JP2007055796A JP2007055796A JP2008217563A JP 2008217563 A JP2008217563 A JP 2008217563A JP 2007055796 A JP2007055796 A JP 2007055796A JP 2007055796 A JP2007055796 A JP 2007055796A JP 2008217563 A JP2008217563 A JP 2008217563A
Authority
JP
Japan
Prior art keywords
register
memory
output
circuit
data
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.)
Pending
Application number
JP2007055796A
Other languages
English (en)
Inventor
Yasuo Itabashi
康雄 板橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007055796A priority Critical patent/JP2008217563A/ja
Publication of JP2008217563A publication Critical patent/JP2008217563A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】レジスタの大容量化と状態保存の高速化を両立することができる非同期コンテキスト切り替えシステムを提供すること。
【解決手段】本発明の非同期コンテキスト切り替えシステムは、マイクロプロセッサが演算を行うときに用いられるデータを保存するレジスタ(3)と、前記レジスタ(3)に保存されている前記データのコピーを保存するキャッシュレジスタ(10)と、前記データを退避するためのキャッシュメモリ(4)と、前記マイクロプロセッサが前記キャッシュメモリ(4)に対してアクセスしていないときに、前記キャッシュレジスタ(10)から前記データを読み出して前記キャッシュメモリ(4)に保存するメモリバスアービタ(20)とを具備している。
【選択図】図1

Description

本発明は、マイクロプロセッサに適用される非同期コンテキスト切り替えシステムに関する。
マイクロプロセッサには、コンテキストを切り替えるためのコンテキスト切り替えシステムが適用されている。コンテキスト切り替えシステムは、マイクロプロセッサが演算(操作を含む)を行うときに用いられるコンテキスト(データ)を保存するレジスタと、キャッシュメモリとを具備している。マイクロプロセッサは、レジスタを用いてデータを実行しているとき、今まで実行していたデータから、別のデータに切り替えることがある。このような場合、マイクロプロセッサは、レジスタに保存されているデータをキャッシュメモリに退避し、別のデータをレジスタに保存して実行する。これにより、キャッシュメモリに使用頻度の高いデータを蓄積しておくことにより、低速なメインメモリへのアクセスを減らすことができ、処理を高速化することができる。
上述のように、レジスタの状態(レジスタが保存するデータ)を退避させる処理はマルチタスク機構を実現するために用いられているが、近年、実行時の性能を向上させるためにレジスタの容量が増えており、レジスタの状態をメモリに記録するために要する時間が相対的に長くなる傾向にある。また、パイプライン化されたプロセッサにおいては、メモリ書き込み時間の増大によりパイプラインを乱し、性能低下の要因となっている。つまり、性能向上のためにレジスタの大容量化を図った結果、レジスタの状態保存によって性能低下を引き起こすことになっており、レジスタの大容量化と状態保存の高速化を両立することが要求されている。
一方、マイクロプロセッサが提供する命令を高度化する代わりに、レジスタの容量を減らすことでレジスタの状態保存時間を短くし、それによって高性能化を図る方法が提案されている。その結果、マイクロプロセッサの命令のデコード回路の構造が複雑化し、消費電力の増大や発熱の増加、動作周波数の向上が難しくなるという欠点がある。さらには、レジスタが少ないために頻繁にメインメモリにアクセスをすることになるが、メインメモリの遅延時間はマイクロプロセッサの動作に比べて非常に遅いため、高い演算力を持続させるのが難しいという問題もある。
コンテキストの切り替えに関連する技術について紹介する。
特開2005−275703号公報(特許文献1)には“プロセッサ”が記載されている。プロセッサは、プロセッサによるプログラム実行時に用いる表レジスタ部及び前記表レジスタ部と同構成の裏レジスタ部とを備えるレジスタ装置と、前記プログラム実行時にデータの記憶領域として使用するデータ記憶装置と、前記表レジスタ部及び前記裏レジスタ部間におけるデータの転送にて使用する転送レジスタを備える転送装置と、前記表レジスタ部中の命令オペランドで示されたレジスタを前記裏レジスタ部にコピーし、コピーされた裏レジスタ部の内容を所定の順序にしたがい前記データ記憶装置に転送するストアレジスタ手段、前記ストアレジスタ手段により前記裏レジスタ部にコピーしたレジスタを前記表レジスタ部にコピーし、転送すべき前記裏レジスタ部のデータが前記データ記憶装置に残っていれば、前記データ記憶装置から前記裏レジスタ部へ転送するロードレジスタ手段とを備え、前記表レジスタ部と前記裏レジスタ部間のコピーは1サイクルで行い、前記データ記憶装置と前記裏レジスタ部間のデータ転送は、前記プロセッサが前記データ記憶装置へのメモリアクセスを伴わない命令実行時に、前記プロセッサの命令実行と並列に行う演算装置とを備えることを特徴としている。
特開2004−220070号公報(特許文献2)には“コンテキスト切り替え装置”が記載されている。コンテキスト切り替え装置は、演算論理ユニット又はメモリアクセスユニットで実行すべきスレッドに関するコンテキストが記憶されたレジスタファイルと、前記レジスタファイルに接続され、コンテキストをキャッシュするためのコンテキストキャッシュと、前記レジスタファイルと前記コンテキストキャッシュを接続するコンテキストスイッチ専用バスと、前記コンテキストキャッシュに記憶されているスレッドのコンテキストを識別するためのスレッド識別子(スレッドID)を記憶するスレッドIDテーブルを有し、演算論理ユニット及びメモリアクセスユニットと並列に接続され、前記コンテキストキャッシュと前記レジスタファイルとの間のデータ伝送を制御するスレッド制御ユニットとを備えている。前記スレッド制御ユニットは、コンテキストの切り替えが発生した場合、入力された切り替え命令と新たに入れ替えるスレッド識別子(スレッドID)に基づき前記スレッドIDテーブルを検索し、新たに入れ替えるコンテキストが記憶されている前記コンテキストキャッシュのアドレスと、実行中のコンテキストが記憶されている前記レジスタファイルのレジスタ識別子を求め、求めたアドレスに基付き前記コンテキストキャッシュをアクセスし、且つ、求めたレジスタ識別子に基付き前記レジスタファイルをアクセスし、前記レジスタファイル及び/又は前記コンテキストキャッシュのコンテキストを前記コンテキストスイッチ専用バスを介して入れ替え、退避又は復帰を実行する。
特開2006−99335号公報(特許文献3)には“コンテキスト処理装置”が記載されている。コンテキスト処理装置は、命令の実行に伴うコンテキストを記憶するためのレジスタ群を備えるプロセッサと、該プロセッサがアクセス可能なメモリとを備えている。このコンテキスト処理装置は、レジスタによって構成され、前記コンテキストを退避するためのコンテキストキャッシュ手段と、前記プロセッサによる前記メモリへのアクセスを介さずに、前記コンテキストキャッシュ手段と前記メモリとの間でデータを授受させるメモリアクセス手段と、を備えることを特徴としている。
特開2006−139496号公報(特許文献4)には“演算処理装置”が記載されている。演算処理装置は、複数の命令流を並列に取り扱うマルチスレッド方式である。この演算処理装置は、前記命令流を構成するスレッドあるいはタスクの実行に使用されるレジスタと、前記レジスタに記憶されていたコンテキストを格納するキャッシュ領域を備えたコンテキストキャッシュと、前記レジスタと前記キャッシュ領域とを相互に接続するコンテキスト用接続手段と、を備えている。前記レジスタにコンテキストスイッチの要求が発生した場合、前記コンテキスト用接続手段は、前記コンテキストキャッシュに記憶されているコンテキストを前記レジスタに送り、前記レジスタに記憶されているコンテキストを前記コンテキストキャッシュのキャッシュ領域に送ることを特徴としている。
特開2005−275703号公報 特開2004−220070号公報 特開2006−99335号公報 特開2006−139496号公報
本発明の課題は、レジスタの大容量化と状態保存の高速化を両立することができる非同期コンテキスト切り替えシステムを提供することにある。
以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の非同期コンテキスト切り替えシステムは、
マイクロプロセッサが演算を行うときに用いられるデータを保存するレジスタ(3)と、
前記レジスタ(3)に保存されている前記データのコピーを保存するキャッシュレジスタ(10)と、
前記データを退避するためのキャッシュメモリ(4)と、
前記マイクロプロセッサが前記キャッシュメモリ(4)に対してアクセスしていないときに、前記キャッシュレジスタ(10)から前記データを読み出して前記キャッシュメモリ(4)に保存するメモリバスアービタ(20)と
を具備している。
本発明の非同期コンテキスト切り替えシステムにおいて、
前記キャッシュレジスタ(10)は、
前記レジスタ(3)に保存されている前記データを複製するフリップフロップ回路(14)と、
前記フリップフロップ回路(14)に複製された前記データを保存する複製用メモリ(15)と
を具備している。
本発明の非同期コンテキスト切り替えシステムにおいて、
前記複製用メモリ(15)は、
前記キャッシュメモリ(4)への書き出し先アドレスと、前記キャッシュメモリ(4)に書き出される前記レジスタ(3)の前記データとを表すレジスタセットを保存するメモリ領域
を備え、
前記メモリ領域は、
既に前記キャッシュメモリ(4)への書き出しが完了している前記レジスタセットを保存する第1メモリ領域と、
前記キャッシュメモリ(4)への書き出し対象となる前記レジスタセットを保存する第2メモリ領域と、
次回の前記キャッシュメモリ(4)への書き出し対象となる前記レジスタセットを保存する第3メモリ領域と
を有している。
本発明の非同期コンテキスト切り替えシステムにおいて、
前記キャッシュレジスタ(10)は、
前記レジスタ(3)と同容量であり、前記レジスタ(3)に保存されている前記データを保存するメモリ用フリップフロップ回路(44)と、
前記メモリ用フリップフロップ回路(44)の切り替え用スイッチであるスイッチ回路(45)と
を具備している。
本発明の非同期コンテキスト切り替えシステムにおいて、
前記メモリ用フリップフロップ回路(44)は、
前記キャッシュメモリ(4)への書き出し先アドレスと、前記キャッシュメモリ(4)に書き出される前記レジスタ(3)の前記データとを表すレジスタセットを保存するメモリ領域
を備え、
前記メモリ領域は、
既に前記キャッシュメモリ(4)への書き出しが完了している前記レジスタセットを保存する第1メモリ領域と、
前記キャッシュメモリ(4)への書き出し対象となる前記レジスタセットを保存する第2メモリ領域と、
次回の前記キャッシュメモリ(4)への書き出し対象となる前記レジスタセットを保存する第3メモリ領域と
を有している。
本発明の非同期コンテキスト切り替えシステムにおいて、
前記マイクロプロセッサの現在の動作状況に応じて、出力先制御信号を前記キャッシュレジスタ(10)と前記メモリバスアービタ(20)とに出力する制御回路(2)
を更に具備し、
前記出力先制御信号は、前記マイクロプロセッサが前記キャッシュメモリ(4)に対してアクセスしているか否かを表し、
前記出力先制御信号が、前記マイクロプロセッサが前記キャッシュメモリ(4)に対してアクセスしていることを表している場合、
前記メモリバスアービタ(20)は、前記レジスタ(3)に保存されている前記データを前記キャッシュメモリ(4)に保存し、
前記出力先制御信号が、前記マイクロプロセッサが前記キャッシュメモリ(4)に対してアクセスしていることを表していない場合、
前記キャッシュレジスタ(10)は、前記レジスタ(3)に保存されている前記データのコピーを保存し、
前記メモリバスアービタ(20)は、前記キャッシュレジスタ(10)から前記データを読み出して前記キャッシュメモリ(4)に保存する。
以上により、本発明の非同期コンテキスト切り替えシステムでは、マイクロプロセッサ内にキャッシュレジスタ(10)を搭載することにより、キャッシュレジスタ(10)はメインメモリより高速に動作できるため、レジスタ(3)のデータを退避するとき、マイクロプロセッサはメモリへの書き出し(保存)を待つことなく動作することができる。
また、本発明の非同期コンテキスト切り替えシステムでは、キャッシュレジスタ(10)がレジスタ(3)に保存されているデータを複製し、マイクロプロセッサがメモリにアクセスしていない時に、メモリバスアービタ(20)がキャッシュレジスタ(10)からデータを読み出してキャッシュメモリ(4)に保存するため、レジスタ(3)のデータをキャッシュメモリ(4)に保存している間、マイクロプロセッサの動作を妨げることはない。
したがって、本発明の非同期コンテキスト切り替えシステムによれば、レジスタ(3)の大容量化と状態保存の高速化を両立することができる。
以下に添付図面を参照して、本発明の非同期コンテキスト切り替えシステムについて詳細に説明する。本発明の非同期コンテキスト切り替えシステムは、マイクロプロセッサに適用される。
図1は、本発明の非同期コンテキスト切り替えシステムの構成を示している。本発明の非同期コンテキスト切り替えシステムは、発信器1と、制御回路2と、レジスタ3と、キャッシュメモリ4と、キャッシュレジスタ10と、メモリバスアービタ20とを具備している。
発信器1は、出力端子1a、1bを具備している。制御回路2は、入力端子2a、出力端子2b、2cを具備している。入力端子2aには発信器1の出力端子1aが接続されている。レジスタ3は、入力端子3a、出力端子3bを具備している。入力端子3aには発信器1の出力端子1aが接続されている。キャッシュレジスタ10は、入力端子11a、11b、12b、15b、14a、16a、出力端子15c、16d、17bを具備している。入力端子11aには制御回路2の出力端子2bが接続され、入力端子11b、12b、15bには発信器1の出力端子1bが接続され、入力端子14aにはレジスタ3の出力端子3bが接続され、入力端子16aには制御回路2の出力端子2cが接続されている。メモリバスアービタ20は、入力端子22a、23b、24a、25b、21a、23a、27b、26b、28b、出力端子29c、30cを具備している。入力端子22a、23bには発信器1の出力端子1aが接続され、入力端子24aにはレジスタ3の出力端子3bが接続され、入力端子25bには制御回路2の出力端子2cが接続されている。入力端子21a、23aには制御回路2の端子2bが接続され、入力端子27bにはキャッシュレジスタ10の出力端子16dが接続され、入力端子26bにはキャッシュレジスタ10の出力端子17bが接続され、入力端子28bにはキャッシュレジスタ10の出力端子15cが接続されている。キャッシュメモリ4は、入力端子4a、4bを具備している。入力端子4a、4bにはそれぞれメモリバスアービタ20の出力端子29c、30cが接続されている。
発信器1は、クロックパルス信号を出力端子1a、1bより出力し、その信号が、制御回路2の入力端子2aとレジスタ3の入力端子3aとメモリバスアービタ20の入力端子22a、23bとキャッシュレジスタ10の入力端子11b、12b、15bとに供給される。制御回路2、レジスタ3、メモリバスアービタ20、キャッシュレジスタ10は、この信号に同期して動作する。
レジスタ3は、マイクロプロセッサが演算を行うときに用いられるデータを保存(保持)する。
制御回路2は、マイクロプロセッサの現在の動作状況に応じて、出力先制御信号を出力端子2bから出力し、その出力先制御信号が、メモリバスアービタ20の入力端子21a、23aとキャッシュレジスタ10の入力端子11aとに入力される。また、制御回路2は、書き出し先アドレスを指定するアドレス信号を出力端子2cから出力し、そのアドレス信号が、メモリバスアービタ20の入力端子25bとキャッシュレジスタ10の入力端子16aに入力される。
出力先制御信号は、第1出力先制御信号、又は、第2出力先制御信号を表している。第1出力先制御信号は、マイクロプロセッサがキャッシュメモリ4に対してアクセスしていることを表し、レジスタ3のデータをキャッシュメモリ4に保存するための制御信号である。第2出力先制御信号は、マイクロプロセッサがキャッシュメモリ4に対してアクセスしていないことを表し、レジスタ3のデータをキャッシュレジスタ10に保存するための制御信号である。
レジスタ3が保持しているデータが読み出されるとき、そのデータは出力端子3bより出力され、メモリバスアービタ20の入力端子24aとキャッシュレジスタ10の入力端子14aに入力される。
キャッシュレジスタ10は、出力先制御信号を入力端子11aにより入力し、その出力先制御信号が第2出力先制御信号を表している場合、内蔵しているメモリに対し、出力先制御信号が入力された時点におけるレジスタ3のデータを保存する。ここでレジスタ3とメモリは十分に高速なバス動作を行える。
キャッシュメモリ4は、それ固有のアルゴリズムにより入力されたデータを管理し、記録しきれないデータをメインメモリに出力する。その出力はメインメモリに入力され記録される。
ここで、マイクロプロセッサには、現在の動作状況を保存・復元するために、レジスタ3の全ての内容をキャッシュメモリ4に出力する命令が行われる。この処理に対し、キャッシュレジスタ10は、第2出力先制御信号に応じて、レジスタ3の内容のコピーを一時的に記録し、制御回路2、レジスタ3がメモリバスアービタ20にデータを出力していない間に、記録したレジスタ3の内容を出力する。
メモリバスアービタ20は、制御回路2、レジスタ3からキャッシュメモリ4への入出力がある場合、第1出力先制御信号に応じて、その動作を優先して実行し、それ以外の場合には、第2出力先制御信号に応じて、キャッシュレジスタ10からのデータをキャッシュメモリ4に出力する。
そのデータはキャッシュメモリ4に保存され、マイクロプロセッサの動作状況として、制御回路2、レジスタ3の動作とは独立して出力される。
図2は、キャッシュレジスタ10の構成を示している。キャッシュレジスタ10は、AND回路11と、比較器12と、AND回路13と、D−FF(D型フリップフロップ)回路14と、複製用メモリ(以下、メモリ)15と、カウンタ回路16と、カウンタ回路17とを具備している。
AND回路11は、入力端子11a、11b、出力端子11cを具備している。入力端子11aには制御回路2の端子2bが接続され、入力端子11bには発信器1の出力端子1bが接続されている。比較器12は、出力端子12a、入力端子12b、12cを具備している。入力端子12bには発信器1の出力端子1bが接続されている。AND回路13は、入力端子13a、13b、出力端子13cを具備している。入力端子13aにはAND回路11の出力端子11cが接続され、入力端子13bには比較器12の出力端子12aが接続されている。D−FF回路14は、入力端子14a(D端子)、14b(CLK端子)、出力端子14c(Q端子)を具備している。なお、R端子に入力される論理(信号レベル)は“1”であるものとする。入力端子14aにはレジスタ3の出力端子3bが接続され、入力端子14bにはAND回路13の出力端子13cが接続されている。メモリ15は、入力端子15a〜15c、出力端子15dを具備している。入力端子15aにはD−FF回路14の出力端子14が接続され、入力端子15bには発信器1の出力端子1bが接続されている。カウンタ回路16は、入力端子16a、16c、出力端子16b、16dを具備している。入力端子16aには制御回路2の出力端子2cが接続され、入力端子16cにはAND回路11の出力端子11cが接続されている。出力端子16bにはメモリ15の入力端子15dが接続され、出力端子16dにはメモリバスアービタ20の入力端子27bが接続されている。カウンタ回路17は、入力端子17a、出力端子17bを具備している。入力端子17aにはAND回路11の出力端子11cが接続されている。出力端子17bにはメモリバスアービタ20の入力端子26bと比較器12の入力端子12cとが接続されている。
発信器1は、クロックパルス信号を出力端子1a、1bより出力し、制御回路2は、マイクロプロセッサの現在の動作状況とクロックパルス信号とに応じて、出力先制御信号を出力端子2bから出力する。出力先制御信号が第1、第2出力先制御信号を表している場合、それぞれ、その信号レベルがロウレベル“0”、ハイレベル“1”であるものとする。この出力先制御信号がキャッシュレジスタ10の入力端子11aとメモリバスアービタ20の入力端子21a、23aに入力されることで、キャッシュメモリ4に保存されるデータの出力元がレジスタ3かキャッシュレジスタ10かが決定される。
また、制御回路2は、マイクロプロセッサの現在の動作状況とクロックパルス信号とに応じて、アドレス信号を出力端子2cから出力する。アドレス信号は、指定されたアドレスの内容を表している。このアドレス信号は、キャッシュレジスタ10の入力端子16aとメモリバスアービタ20の入力端子25bに入力され、キャッシュメモリ4にデータを保存する際に、書き出し先アドレスとして利用される。
キャッシュレジスタ10のAND回路11は、制御回路2から出力された出力先制御信号と、発信器1から出力されたクロックパルス信号とをそれぞれ入力端子11a、11bにより入力する。その出力先制御信号が第2出力先制御信号を表している場合、AND回路11は、第2出力先制御信号とクロックパルス信号とに応じて、出力信号を出力端子11cから出力する。比較器12は、カウンタ回路17から出力された内容(カウント値)と、発信器1から出力されたクロックパルス信号とをそれぞれ入力端子12b、12cにより入力し、カウント値と、自己が保持する内容(設定カウント値“0”)とを比較する。比較の結果、一致した場合、比較器12は、クロックパルス信号に同期して、出力信号として残転送データ有無信号を出力端子12aから出力する。AND回路13は、AND回路11から出力された出力信号と、残転送データ有無信号とをそれぞれ入力端子13a、13bにより入力し、出力信号としてクロック信号CLKを出力端子11cから出力する。D−FF回路14は、クロック信号CLKに応じて、レジスタ3に保持されているデータをレジスタデータ出力信号として入力端子14aにより入力し、保持する。D−FF回路14は、次のクロック信号CLKに応じて、自己が保持しているレジスタデータ出力信号(データ)をキャッシュレジスタメモリ入力信号として出力端子14cから出力し、メモリ15は、そのキャッシュレジスタメモリ入力信号(データ)を入力端子15aにより入力し、保持する。これにより、D−FF回路14は、レジスタ3の内容(データ)を複製し、メモリ15に保存する。
キャッシュレジスタ10のカウンタ回路16は、制御回路2から出力されたアドレス信号と、AND回路11から出力された出力信号とをそれぞれ入力端子16a、16cにより入力する。カウンタ回路16は、AND回路11から出力された出力信号に同期して、1ずつカウントアップして、そのカウント値が、自己が保持する設定カウント値である場合、出力信号としてアドレス信号を出力端子16b、16dから出力する。メモリ15は、カウンタ回路16から出力されたアドレス信号を入力端子15dにより入力し、そのアドレス信号に応じて、保存しているデータをキャッシュレジスタメモリ出力信号として出力端子15cからメモリバスアービタ20に出力する。
また、図示しないが、レジスタ3に保持されているデータが読み出されたとき、キャッシュレジスタ10のカウンタ回路17には、キャッシュレジスタ10の残り転送データ量として、レジスタ3のデータの容量を表すデータ容量設定値が設定される。カウンタ回路17は、AND回路11から出力された出力信号を入力端子17aにより入力し、その出力信号に同期して、データ容量設定値を1ずつカウントダウンして、そのカウント値を出力信号として出力端子17bから出力する。
この構成により、メモリバスアービタ20がキャッシュレジスタ10のメモリ15の内容(データ)をキャッシュメモリ4に出力するたびに、カウンタ回路16の内容は1ずつカウントアップされ、カウンタ回路17の内容は1ずつカウントダウンされる。
図3は、メモリバスアービタ20の構成を示している。メモリバスアービタ20は、NOT回路21と、AND回路22と、AND回路23と、AND回路24と、AND回路25と、比較器26と、AND回路27と、AND回路28と、OR回路29と、OR回路30とを具備している。
NOT回路21は、入力端子21a、出力端子21bを具備している。入力端子21aには制御回路2の出力端子2cが接続されている。AND回路22は、入力端子22a、22b、出力端子22cを具備している。入力端子22aには発信器1の出力端子1aが接続され、入力端子22bにはNOT回路21の出力端子21bが接続されている。AND回路23は、入力端子23a、23b、出力端子23cを具備している。入力端子23aには制御回路2の出力端子2cが接続され、入力端子23bには発信器1の出力端子1aが接続されている。AND回路24は、入力端子24a、24b、出力端子24cを具備している。入力端子24aにはレジスタ3の出力端子3bが接続され、入力端子24bにはAND回路22の出力端子22cが接続されている。AND回路25は、入力端子25a、25b、出力端子25cを具備している。入力端子25aにはAND回路22の出力端子22cが接続され、入力端子25bには制御回路2の端子2cが接続されている。比較器26は、入力端子26a、26b、出力端子26cを具備している。入力端子26aにはAND回路23の出力端子23cが接続され、入力端子26bにはカウンタ回路17の出力端子17bが接続されている。AND回路27は、入力端子27a、27b、出力端子27cを具備している。入力端子27aには比較器26の出力端子26cが接続され、入力端子27bにはカウンタ回路16の出力端子16dが接続されている。AND回路28は、入力端子28a、28b、出力端子28cを具備している。入力端子28aには比較器26の出力端子26cが接続され、入力端子28bにはメモリ15の出力端子15cが接続されている。OR回路29は、入力端子29a、29b、出力端子29cを具備している。入力端子29aにはAND回路25の出力端子25cが接続され、入力端子29bにはAND回路27の出力端子27cが接続されている。出力端子29cにはキャッシュメモリ4の入力端子4aが接続されている。OR回路30は、入力端子30a、30b、出力端子30cを具備している。入力端子30aにはAND回路24の出力端子24cが接続され、入力端子30bにはAND回路28の出力端子28cが接続されている。出力端子30cにはキャッシュメモリ4の入力端子4bが接続されている。
メモリバスアービタ20のNOT回路21は、制御回路2から出力された出力先制御信号を入力端子21aにより入力し、その反転信号を出力信号として出力端子21bから出力する。AND回路22は、発信器1から出力されたクロックパルス信号と、NOT回路21から出力された出力信号とをそれぞれ入力端子22a、22bにより入力し、出力信号を出力端子22cから出力する。AND回路24は、レジスタ3に保持されているデータをレジスタデータ出力信号として入力端子24aにより入力し、AND回路22から出力された出力信号を入力端子24bにより入力する。AND回路24は、レジスタデータ出力信号(データ)とAND回路22からの出力信号とに応じて、出力信号を出力端子24cから出力する。AND回路25は、AND回路22から出力された出力信号と、制御回路2から出力されたアドレス信号とをそれぞれ入力端子25a、25bにより入力し、出力信号を出力端子25cから出力する。
メモリバスアービタ20のAND回路23は、制御回路2から出力された出力先制御信号と、発信器1から出力されたクロックパルス信号とをそれぞれ入力端子23a、23bにより入力し、出力信号を出力端子23cから出力する。比較器26は、AND回路23から出力された出力信号と、カウンタ回路17から出力されたカウント値とをそれぞれ入力端子26a、26bにより入力し、カウント値と、自己が保持する内容(設定カウント値“0”)とを比較する。比較の結果、一致した場合、比較器26は、AND回路23からの出力信号に同期して、出力信号を出力端子26cから出力する。AND回路27は、比較器26から出力された出力信号と、カウンタ回路16から出力されたアドレス信号とをそれぞれ入力端子27a、27bにより入力し、出力信号を出力端子27cから出力する。AND回路28は、比較器26から出力された出力信号と、メモリ15から出力されたキャッシュレジスタメモリ出力信号(データ)とをそれぞれ入力端子28a、28bにより入力し、出力信号を出力端子28cから出力する。
メモリバスアービタ20のOR回路29は、AND回路25、27から出力された出力信号をそれぞれ入力端子29a、29bにより入力し、出力信号を出力端子29cからキャッシュメモリ4に出力する。OR回路30は、AND回路24、28から出力された出力信号をそれぞれ入力端子30a、30bにより入力し、出力信号をキャッシュメモリ入力信号として出力端子30cからキャッシュメモリ4に出力する。
この構成により、上記の出力先制御信号が第1出力先制御信号を表している場合、メモリバスアービタ20は、レジスタ3の内容(データ)を読み出し、AND回路24とOR回路30を経由して、キャッシュメモリ4に保存する。
一方、上記の出力先制御信号が第2出力先制御信号を表している場合、メモリバスアービタ20は、キャッシュレジスタ10内のメモリ15の内容(データ)を読み出し、AND回路28とOR回路30を経由して、キャッシュメモリ4に保存する。ここでメモリ15から読み出される内容は、カウンタ回路16により指定されたアドレスの内容である。
更に、メモリバスアービタ20は、カウンタ回路16より出力されたアドレス情報(書き出し先アドレス)を入力し、AND回路27とOR回路29を経由して、キャッシュメモリ4に保存する。また、この動作は、カウンタ回路17から比較器26に出力されるカウント値が0より大きい場合にのみ行われる。
上述の発信器、制御回路、キャッシュレジスタメモリ、メインメモリ、カウンタ回路、D−FF回路、AND回路、OR回路、NOT回路、比較器の内部構成は、当業者にとってよく知られているため、その説明を省略する。
図4は、キャッシュレジスタ10の動作を示すタイミングチャートである。
ここで、本実施例ではレジスタ3のデータ容量はキャッシュメモリ4へのアクセス4回分と仮定する。また、残転送データ有無信号は、時間T0及びそれ以前について、キャッシュレジスタ10の内容が全てキャッシュメモリ4に出力済みであることを示している。
まず、時間T0にて制御回路2の出力端子2bにより出力先制御信号が出力される。即ち、出力先制御信号が第2出力先制御信号を表している。この場合、D−FF回路14の入力端子14bにクロック信号CLKが供給され、時間T0の時点でレジスタ3の出力端子3bより出力されているデータがD−FF回路14の入力端子14aに入力される。
また、このときレジスタ3のデータ容量(データ容量設定値)がカウンタ回路17に入力される。先に述べたようにここでは4とする。カウンタ回路17は、制御回路2の出力端子2bより信号が入力されるたびにカウントダウンしていく。比較器12からの残転送データ有無信号であるカウント値が0以上、つまりキャッシュレジスタ10のメモリ15のデータがキャッシュメモリ4に出力し終わっていない場合には、比較器12の出力端子12aより0が出力され続ける。このため、時間T1の時点のように制御回路2の出力端子2bより信号が出力された場合や、時間T2の時点のようにレジスタ3の出力端子3bよりデータが出力された場合でも、D−FF回路14にクロック信号CLKは供給されない。
したがって、キャッシュレジスタ10のメモリ15には、入力端子15aより時間T0の時点でのレジスタ3の出力データが入力され続ける。ここでは時間T0〜T5までの間、時間T0の時点でレジスタ3の出力端子3bより出力されているデータが入力され続けている。
時間T3の時点のように、カウンタ回路17の内容が0になると比較器12の出力端子12aからは再び信号が出力され続ける。このため、その後に制御回路2の出力端子2bより出力先制御信号が出力されることで、入力端子15aに入力されるデータを変化させることができる。ここでは時間T4において比較器12の出力端子12aから信号が出力されるようになり、その後の時間T5において制御回路2の出力端子2bから出力先制御信号が出力されることで、入力端子15aに入力されるデータが時間T5の時点でレジスタ3の出力端子3bより出力されているデータと等しくなることを示している。
図5は、メモリバスアービタ20の動作を示すタイミングチャートである。
時間T0、T1、T3、T5の時点のように、制御回路2の出力端子2bより出力先制御信号が出力される。即ち、出力先制御信号が第2出力先制御信号を表している。この場合、キャッシュメモリ4の入力端子4bにはキャッシュレジスタ10のメモリ15の出力端子15cから出力されているデータが入力される。
時間T2、T4の時点のように、制御回路2の出力端子2bより出力先制御信号が出力されていない。このとき、キャッシュメモリ4の入力端子4bには、レジスタ3の出力端子3bより出力されているデータが入力される。
以上の説明により、本発明の非同期コンテキスト切り替えシステムでは、マイクロプロセッサ内にキャッシュレジスタ10を搭載することにより、キャッシュレジスタ10はメインメモリより高速に動作できるため、レジスタ3のデータを退避するとき、マイクロプロセッサはメモリへの書き出し(保存)を待つことなく動作することができる。
また、本発明の非同期コンテキスト切り替えシステムでは、マイクロプロセッサがメモリにアクセスしていない時に、キャッシュレジスタ10がレジスタ3に保存されているデータを複製し、メモリバスアービタ20がキャッシュレジスタ10からデータを読み出してキャッシュメモリ4に保存するため、レジスタ3のデータをキャッシュメモリ4に保存している間、マイクロプロセッサの動作を妨げることはない。
したがって、本発明の非同期コンテキスト切り替えシステムによれば、レジスタ3の大容量化と状態保存の高速化を両立することができる。
他の実施例について説明する。ここで、上述と重複する説明を省略する。
図6は、キャッシュレジスタ10の構成を示している。キャッシュレジスタ10は、D−FF回路14、メモリ15に代えて、D−FF回路44、スイッチ回路45を具備している。
D−FF回路44は、入力端子44a、44b、出力端子44cを具備している。入力端子44aにはレジスタ3の出力端子3bが接続され、入力端子44bにはAND回路13の出力端子13cが接続されている。スイッチ回路45は、入力端子45a〜45c、出力端子45dを具備している。入力端子45aにはD−FF回路44の出力端子44が接続され、入力端子45bには発信器1の出力端子1bが接続されている。カウンタ回路16の出力端子16bにはスイッチ回路45の入力端子45dが接続されている。
そこで、図6では、D−FF回路44をメモリ15として利用し、レジスタ3に保存されているデータを保存する。また、図2でメモリ15としていた部分をD−FF回路44の切り替え用スイッチ回路としてスイッチ回路45を利用する。このように、レジスタ3と同容量のD−FF回路44を用意し、スイッチ回路45に接続する。また、スイッチ回路45は、入力端子45dより入力された信号により、メモリバスアービタ20に接続しているバス幅に合わせてD−FF回路44のデータをメモリバスアービタ20に供給する。
これによって、本発明の非同期コンテキスト切り替えシステムでは、D−FF回路44と同じデータを保持するメモリ15を搭載する無駄を省くことができる効果が得られる。また、レジスタ3と同容量のD−FF回路44を搭載することで、レジスタ3のデータをより高速に退避できる効果が得られる。
更に他の実施例について説明する。ここで、上述と重複する説明を省略する。
図7は、図2のキャッシュレジスタ10のメモリ15の構造を示している。
図7では、メモリ15は、キャッシュメモリ4への書き出し先アドレス(アドレス情報)と、キャッシュメモリ4に書き出されるレジスタ3の内容(データ)とを表すレジスタセットを保存するメモリ領域を備えている。そのメモリ領域は、既にキャッシュメモリ4への書き出しが完了しているレジスタセットを保存する第1メモリ領域と、キャッシュメモリ4への書き出し対象となるレジスタセットを保存する第2メモリ領域と、次回のキャッシュメモリ4への書き出し対象となるレジスタセットを保存する第3メモリ領域とを有している。第1メモリ領域に保存されたレジスタセットと第2メモリ領域に保存されたレジスタセットとが不一致であれば、書き出し対象となるべきレジスタセットは存在している。第3メモリ領域に保存されたレジスタセットは、第2メモリ領域に保存されたレジスタセットをキャッシュメモリ4に書き出し終えた場合に次にキャッシュメモリ4に書き出すためのレジスタセットを指し示している。
これにより、本発明の非同期コンテキスト切り替えシステムでは、メモリの内容がキャッシュメモリ4に書き出し終わる前に、次のレジスタ3状態をメモリに保存する動作が発生しても、メモリの空いている限り、メモリの内容をキャッシュメモリ4に書き出し終わるまで待たされないようにすることができる。
なお、更に他の実施例について上記の他の実施例と組み合わせることも可能である。即ち、本手法は図2でメモリ15としていた部分を図6のようにD−FF回路44とする実施例と組み合わせることも可能であり、D−FF回路44は、上述のメモリ領域(第1メモリ領域、第2メモリ領域、第3メモリ領域)を備えている。
図1は、本発明の非同期コンテキスト切り替えシステムの構成を示している。 図2は、図1のキャッシュレジスタ10の構成を示している。 図3は、図1のメモリバスアービタ20の構成を示している。 図4は、キャッシュレジスタ10の動作を示すタイミングチャートである。 図5は、メモリバスアービタ20の動作を示すタイミングチャートである。 図6は、図1のキャッシュレジスタ10の構成を示している。 図7は、図2のキャッシュレジスタ10のメモリ15の構造を示している。
符号の説明
1 発信器、
1a、1b 出力端子、
2 制御回路
2a 入力端子、
2b、2c 出力端子、
3 レジスタ、
3a 入力端子、
3b 出力端子、
4 キャッシュメモリ、
4a、4b 入力端子、
10 キャッシュレジスタ、
11 AND回路、
11a、11b 入力端子、
11c 出力端子、
12 比較器、
12a 出力端子、
12b、12c 入力端子、
13 AND回路、
13a、13b 入力端子、
13c 出力端子、
14 D−FF回路、
14a、14b 入力端子、
14c 出力端子、
15 メモリ(複製用メモリ)、
15a〜15c 入力端子、
15d 出力端子、
16 カウンタ回路、
16a、16c 入力端子、
16b、16d 出力端子、
17 カウンタ回路、
17a 入力端子、
17b 出力端子、
20 メモリバスアービタ、
21 NOT回路、
21a 入力端子、
21b 出力端子、
22 AND回路、
22a、22b 入力端子、
22c 出力端子、
23 AND回路、
23a、23b 入力端子、
23c 出力端子、
24 AND回路、
24a、24b 入力端子、
24c 出力端子、
25 AND回路、
25a、25b 入力端子、
25c 出力端子、
26 比較器、
26a、26b 入力端子、
26c 出力端子、
27 AND回路、
27a、27b 入力端子、
27c 出力端子、
28 AND回路、
28a、28b 入力端子、
28c 出力端子、
29 OR回路、
29a、29b 入力端子、
29c 出力端子、
30 OR回路、
30a、30b 入力端子、
30c 出力端子、

Claims (6)

  1. マイクロプロセッサが演算を行うときに用いられるデータを保存するレジスタと、
    前記レジスタに保存されている前記データのコピーを保存するキャッシュレジスタと、
    前記データを退避するためのキャッシュメモリと、
    前記マイクロプロセッサが前記キャッシュメモリに対してアクセスしていないときに、前記キャッシュレジスタから前記データを読み出して前記キャッシュメモリに保存するメモリバスアービタと
    を具備する非同期コンテキスト切り替えシステム。
  2. 請求項1に記載の非同期コンテキスト切り替えシステムにおいて、
    前記キャッシュレジスタは、
    前記レジスタに保存されている前記データを複製するフリップフロップ回路と、
    前記フリップフロップ回路に複製された前記データを保存する複製用メモリと
    を具備する非同期コンテキスト切り替えシステム。
  3. 請求項2に記載の非同期コンテキスト切り替えシステムにおいて、
    前記複製用メモリは、
    前記キャッシュメモリへの書き出し先アドレスと、前記キャッシュメモリに書き出される前記レジスタの前記データとを表すレジスタセットを保存するメモリ領域
    を備え、
    前記メモリ領域は、
    既に前記キャッシュメモリへの書き出しが完了している前記レジスタセットを保存する第1メモリ領域と、
    前記キャッシュメモリへの書き出し対象となる前記レジスタセットを保存する第2メモリ領域と、
    次回の前記キャッシュメモリへの書き出し対象となる前記レジスタセットを保存する第3メモリ領域と
    を有する非同期コンテキスト切り替えシステム。
  4. 請求項1に記載の非同期コンテキスト切り替えシステムにおいて、
    前記キャッシュレジスタは、
    前記レジスタと同容量であり、前記レジスタに保存されている前記データを保存するメモリ用フリップフロップ回路と、
    前記メモリ用フリップフロップ回路の切り替え用スイッチであるスイッチ回路と
    を具備する非同期コンテキスト切り替えシステム。
  5. 請求項4に記載の非同期コンテキスト切り替えシステムにおいて、
    前記メモリ用フリップフロップ回路は、
    前記キャッシュメモリへの書き出し先アドレスと、前記キャッシュメモリに書き出される前記レジスタの前記データとを表すレジスタセットを保存するメモリ領域
    を備え、
    前記メモリ領域は、
    既に前記キャッシュメモリへの書き出しが完了している前記レジスタセットを保存する第1メモリ領域と、
    前記キャッシュメモリへの書き出し対象となる前記レジスタセットを保存する第2メモリ領域と、
    次回の前記キャッシュメモリへの書き出し対象となる前記レジスタセットを保存する第3メモリ領域と
    を有する非同期コンテキスト切り替えシステム。
  6. 請求項1〜5のいずれかに記載の非同期コンテキスト切り替えシステムにおいて、
    前記マイクロプロセッサの現在の動作状況に応じて、出力先制御信号を前記キャッシュレジスタと前記メモリバスアービタとに出力する制御回路
    を更に具備し、
    前記出力先制御信号は、前記マイクロプロセッサが前記キャッシュメモリに対してアクセスしているか否かを表し、
    前記出力先制御信号が、前記マイクロプロセッサが前記キャッシュメモリに対してアクセスしていることを表している場合、
    前記メモリバスアービタは、前記レジスタに保存されている前記データを前記キャッシュメモリに保存し、
    前記出力先制御信号が、前記マイクロプロセッサが前記キャッシュメモリに対してアクセスしていることを表していない場合、
    前記キャッシュレジスタは、前記レジスタに保存されている前記データのコピーを保存し、
    前記メモリバスアービタは、前記キャッシュレジスタから前記データを読み出して前記キャッシュメモリに保存する
    非同期コンテキスト切り替えシステム。
JP2007055796A 2007-03-06 2007-03-06 非同期コンテキスト切り替えシステム Pending JP2008217563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007055796A JP2008217563A (ja) 2007-03-06 2007-03-06 非同期コンテキスト切り替えシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007055796A JP2008217563A (ja) 2007-03-06 2007-03-06 非同期コンテキスト切り替えシステム

Publications (1)

Publication Number Publication Date
JP2008217563A true JP2008217563A (ja) 2008-09-18

Family

ID=39837514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007055796A Pending JP2008217563A (ja) 2007-03-06 2007-03-06 非同期コンテキスト切り替えシステム

Country Status (1)

Country Link
JP (1) JP2008217563A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61241838A (ja) * 1985-04-19 1986-10-28 Nec Corp 記憶装置
JP2006092042A (ja) * 2004-09-21 2006-04-06 Sanyo Electric Co Ltd 情報処理装置及びコンテキスト切り替え方法
JP2006099335A (ja) * 2004-09-29 2006-04-13 Seiko Epson Corp コンテキスト処理装置
JP2006195976A (ja) * 2005-01-13 2006-07-27 Hewlett-Packard Development Co Lp マルチスレッドハードウェアシステム及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61241838A (ja) * 1985-04-19 1986-10-28 Nec Corp 記憶装置
JP2006092042A (ja) * 2004-09-21 2006-04-06 Sanyo Electric Co Ltd 情報処理装置及びコンテキスト切り替え方法
JP2006099335A (ja) * 2004-09-29 2006-04-13 Seiko Epson Corp コンテキスト処理装置
JP2006195976A (ja) * 2005-01-13 2006-07-27 Hewlett-Packard Development Co Lp マルチスレッドハードウェアシステム及び方法

Similar Documents

Publication Publication Date Title
US20060294344A1 (en) Computer processor pipeline with shadow registers for context switching, and method
JP2006012163A (ja) マルチレベル・レジスタ・ファイルを有するディジタル・データ処理装置
JP2004062280A (ja) 半導体集積回路
JP2004512599A (ja) ディジタル信号処理装置
JP2011513843A (ja) 実行装置内のデータ転送のシステムおよび方法
JP2004171177A (ja) キャッシュシステムおよびキャッシュメモリ制御装置
JP2007133456A (ja) 半導体装置
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
JP2008107983A (ja) キャッシュメモリ
JPH05342084A (ja) データ記憶装置及びデータ記憶方法
JP2000353092A (ja) 情報処理装置及びそのレジスタファイル切替方法
JP2008217563A (ja) 非同期コンテキスト切り替えシステム
JP3670646B2 (ja) レジスタ転送オペレーション
JP3820645B2 (ja) マルチプロセッサシステム
WO2018138975A1 (ja) 演算処理装置および情報処理システム
JP2009199384A (ja) データ処理装置
JP2006285724A (ja) 情報処理装置および情報処理方法
JP2883465B2 (ja) 電子計算機
US5734855A (en) Processor with pipeline processing function having read buffer register and latch for storing register information where the result of external access type instruction is stored
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JP4498705B2 (ja) キャッシュシステム
JP4311087B2 (ja) プロセッサおよび例外処理方法
JP2001022581A (ja) データ処理装置及びコンピュータ読み取り可能な記憶媒体
JP3855069B2 (ja) 論理回路
JPH103389A (ja) 並列計算機

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101027