FUKUSHIMA MASAMI (JP)
KITAGISHI KOICHI (JP)
NAKAYAMA SEIJIN (JP)
JP2002230979A | 2002-08-16 |
YOSHIZAWA, KIYOSHI: "Realized with the controller of a program-controlled, Driving LCD character display module", TRANSISTOR GIJUTSU SPECIAL, 1 October 2002 (2002-10-01), pages 89 - 96
NAKAHODO, MOTOTUNE ET AL.: "Design and Implementation to FPGA of MIPS Architecture Asynchronous Processor", THE PAPERS OF TECHNICAL MEETING ON THE INSTITUTE OF ELECTRICAL ENGINEERING OF JAPAN. TECHNICAL MEETING ON INNOVATIVE INDUSTRIAL SYSTEM IIS-09-072, 25 September 2009 (2009-09-25), pages 7 - 11
FURBER, S. B. ET AL.: "AMULET2e: An Asynchronous Embedded Controller", PROCEEDINGS THIRD INTERNATIONAL SYMPOSIUM ON ADVANCED RESEARCH IN ASYNCHRONOUS CIRCUITS AND SYSTEMS, 1997, pages 290 - 299, XP010223512, DOI: 10.1109/ASYNC.1997.587182
〇 2020/175074 9 卩(:170? 2020 /004528 請求の範囲 [請求項 1 ] 縮小命令セツ トコンビユータアーキテクチヤで構成されている中央 演算処理装置において、 複数の命令からなるプログラムデータが格納される命令メモリと、 前記命令メモリのアドレスを指示するプログラムカウンタと、 前記命令メモリから読み出された命令を解読する命令デコーダと、 前記命令デコーダで解読される命令においてオペランドとして指定 可能な汎用レジスタと、 を備え、 前記プログラムカウンタ及び前記汎用レジスタが非同期式記憶素子 で構成されていることを特徴とする中央演算処理装置。 [請求項 2] 前記命令メモリから読み出された命令は前記命令デコーダに直接入 力されることを特徴とする請求項 1 に記載の中央演算処理装置。 [請求項 3] 前記命令メモリは、 同期式記憶素子で構成されていることを特徴と する請求項 1 または 2に記載の中央演算処理装置。 |
発明の名称 : 中央演算処理装置
技術分野
[0001 ] 本発明は、 中央演算処理装置に関する。
背景技術
[0002] 従来、 中央演算処理装置 (マイクロコンピュータやマイクロプロセッ サと もいう) においては、 命令実行の高速化のため 1つの命令の実行に際して複 数のステージに分割して行われることが多い 。
[0003] 例えば、 特許文献 1では、 メモリから命令を読み込む命令フェッチ (丨 ) ステージ、 丨 ステージで読み込んだ命令を解読するデコー ド (〇巳〇) ステージ、 0巳(3ステージで解読された命令の内容に応 て算術 ·論理演算 や丨 ステージで読み込むべき命令のアドレスやメ モリへアクセスする際の アドレス等を演算する実行 (巳乂巳) ステージ、 口巳〇ステージで解読され た命令の内容に応じて巳 X巳ステージでの演算結果をアドレスとして モリ へのアクセスを行うメモリアクセス (1\/1八) ステージ、 0巳〇ステージで解 読された命令の内容に応じて演算データもし くはメモリから取り込んだデー 夕を内部レジスタに書き込むライ トバック ( ステージといった 5つの ステージに分けて命令が実行される。
先行技術文献
特許文献
[0004] 特許文献 1 :特開 2 0 0 6— 3 0 9 4 5 4号公報
発明の概要
発明が解決しようとする課題
[0005] 命令実行を複数のステージに分割し、 パイプライン処理とすることで、 複 数命令からなる処理全体の時間の短縮化が図 れ、 結果として命令実行を高速 化できる。 しかしながら、 分岐命令等により発生するパイプラインハザ ード への対策が必要となり、 回路が複雑化し、 回路規模が増大してしまう。 〇 2020/175074 2 卩(:170? 2020 /004528
[0006] 本発明は、 以上の背景に鑑みてなされたものであり、 処理速度の高速化を 図った中央演算処理装置を提供することを目 的としている。
課題を解決するための手段
[0007] 上述した課題を解決するためになされた請求 項 1 に記載された発明は、 縮 小命令セッ トコンピュータアーキテクチャで構成されて いる中央演算処理装 置において、 複数の命令からなるプログラムデータが格納 される命令メモリ と、 前記命令メモリのアドレスを指示するプログ ラムカウンタと、 前記命令 メモリから読み出された命令を解読する命令 デコーダと、 前記命令デコーダ で解読される命令においてオペランドとして 指定可能な汎用レジスタと、 を 備え、 前記プログラムカウンタ及び前記汎用レジス タが非同期式記憶素子で 構成されていることを特徴とする中央演算処 理装置である。
[0008] 請求項 2に記載された発明は、 請求項 1 に記載された発明において、 前記 命令メモリから読み出された命令は前記命令 デコーダに直接入力されること を特徴とする。
[0009] 請求項 3に記載された発明は、 請求項 1 または 2に記載された発明におい て、 前記命令メモリは、 同期式記憶素子で構成されていることを特徴 とする 発明の効果
[0010] 以上説明したように本発明によれば、 プログラムカウンタ及び汎用レジス 夕が非同期式記憶素子で構成されているので 、 これらにデータを格納する際 にクロック信号を必要とせず、 少なくともライ トバックステージを削減する ことができる。 したがって、 〇 II 1 における命令実行サイクル数の削減に 資することができ、 処理速度の高速化を図ることができる。
図面の簡単な説明
[001 1] [図 1]本発明の一実施形態にかかる〇 IIを示すブロック図である。
[図 2]図 1 に示された〇 IIの命令実行時におけるステージ動作を示す イミ ングチヤ _ 卜である。
[図 3]本発明の他の実施形態にかかる〇 IIを示すブロック図である。 [図 4]従来の C P Uを示すブロック図である。
[図 5]図 4に示された C P Uの命令実行時におけるステージ動作を示す イミ ングチヤ _ 卜である。
発明を実施するための形態
[0012] 以下、 本発明の一実施形態における本発明の中央演 算処理装置 (マイクロ コンビユータ又はマイクロプロセッサともい う) を図面を参照して説明する 。 まず、 図 4を参照して、 従来の中央演算処理装置 (以下、 C P U) 1 00 の構成を説明する。 C P U 1 00は、 縮小命令セッ トコンビユータアーキテ クチャ (R I SCアーキテクチャ) で構成されており、 具体的なハードウエ アとしては、 例えば F PGA (Field Programmable Gate Array) で構成され ているものとする。
[0013] C P U 1 00は、 プログラムカウンタ (PC) 2と、 プログラムメモリ 3 と、 命令レジスタ (丨 R) 4と、 命令デコーダ 5と、 汎用レジスタ 6と、 デ —タラッチ 7と、 演算部 8と、 アドレス計算部 9と、 データメモリ 1 0と、 システムデータバス 1 1 と、 CS Rレジスタ 1 2と、 割り込み制御部 1 3と 、 タイマ 1 4と、 を備えている。
[0014] PC2は、 プログラムメモリ 3から読み出す命令のアドレスを示す (指示 する) レジスタである。 PC 2は、 アドレス計算部 9の結果に基づいてイン クリメント値又は所定のアドレス値が格納さ れる。 なお、 本実施形態では、 PC2 1 6ビッ トで構成されている。
[0015] プログラムメモリ (命令メモリ) 3は、 本実施形態では、 0000 H (1
6進数) 番地〜 7 F F F H番地までのアドレス空間を有する 1 6ビッ トデー 夕のメモリである。 プログラムメモリ 3には、 C P U 1 00で実行される複 数の命令からなるプログラムデータが格納さ れている。 また、 格納される命 令形式は、 R 丨 SC型の C P Uで多くみられる固定長命令形式であっても いし、 可変長命令形式のプログラムデータをプログ ラムメモリ 3の格納形式 に合致させて固定長命令形式に変換して格納 するようにしてもよい。
[0016] 丨 R4は、 PC 2で示されたアドレスに格納されている命令 格納される 〇 2020/175074 4 卩(:170? 2020 /004528
レジスタである。 丨 4に格納された命令は命令デコーダ 5に出力される。 命令デコーダ 5は、 I から出力された命令を解読 (デコード) し、 汎用 レジスタ 6、 演算部 8、 アドレス計算部 9に対して解読結果としての制御信 号等を出力する。
[0017] 汎用レジスタ 6は、 演算部 8やアドレス計算部 9で演算するデータや演算 結果が格納される 3 2ビッ ト幅のレジスタであり、 本実施形態では、 X 0〜 乂3 1 までの 3 2本を有している。 汎用レジスタ 6に含まれる乂〇〜 X 3 1 のレジスタは命令においてソースオペランド 又はデイステイネーシヨンオペ ランドに指定することができるレジスタであ る。 データラッチ 7は、 汎用レ ジスタ 6から読み出されたデータをラッチするレジ タである。
[0018] 演算部 8は、 算術論理演算器 や演算結果をフェッチするラッチ 等を備え、 命令デコーダ 5から出力される制御信号に基づいて各種算 演算 や論理演算等を行う。 また、 演算部 8は、 1_ IIに加えて乗算器や除算器等 を備えてもよい。 アドレス計算部 9は、 命令デコーダ 5から出力される制御 信号等に基づいてデータメモリへアクセスす るアドレスの計算を行う。 即ち 、 演算部 8及びアドレス計算部 9は、 命令デコーダ 5で解読された結果に応 じて当該命令を実行する命令実行部として機 能する。
[0019] データメモリ 1 0は、 本実施形態では、 0 0 0 0 1 ~ 1番地〜 0 1 1 ~ 1番地 までのアドレス空間を有する 3 2ビッ トデータのメモリである。 データメモ リ 1 0は、 アドレス計算部 7で算出されたアドレスに基づいて、 演算部 8で 演算された結果が書き込まれる。 また、 アドレス計算部 9で算出されたアド レスに基づいて、 格納されているデータが読み出される。 読み出されたデー 夕はシステムデータバス 1 1 を介して汎用レジスタ 6へ出力される。 即ち、 データメモリ 1 0は、 命令実行部の実行結果の書き込み又は命令実 行のため データが読み出される。
[0020] システムデータバス 1 1は、 演算部 6、 汎用レジスタ 8、 データラッチ 9 、 データメモリ 1 0等を互いに接続するデータバスである。 レジスタ 1 2は、 〇 11 1 0 0内のステータスを読み込んだり、 設定を変更すること ができるレジスタである。 割り込み制御部 1 3は、 割り込み要求信号 (外部 割り込み) が入力される。 割り込み制御部 1 3は、 入力された割り込み要求 信号に基づいて、 割り込み信号をシステムデータバス 1 1へ出力する。 タイ マ 1 4は、 設定された時間周期毎に割り込み信号をシス テムデータバス 1 1 へ出力する。
[0021 ] 上述した構成では、 プログラムメモリ 3、 汎用レジスタ 6、 データメモリ
1 0は、 F P G Aのデバイス内に設けられている同期式の記 素子、 例えば シンクロナス S R A M (Stat i c Random Access Memory) で構成されている。
[0022] C P U 1 0 0は、 P C 2で示されたプログラムメモリ 3のアドレスから読 み出された命令が丨 R 4に格納されるまでが丨 F (命令フェッチ) ステージ 、 I F 4に格納されている命令を命令デコーダ 5でデコードした結果に基づ いて汎用レジスタ 6から読み出してデータラッチ 9にデータを格納するまで が D E (デコード) ステージ、 命令デコーダ 5でデコードした結果に基づい て演算部 8やアドレス計算部 9で演算や計算等を行うまでが E X (実行) ス テ _ジとなる。
[0023] 次に、 アドレス計算部 9で計算されたアドレスに基づいてデータメ リ 1
0からデータを読出す、 又はデータを書き込むまでがメモリアクセス (M A ) ステージ、 演算部 8の演算結果の汎用レジスタ 6への書き込み、 及び P C 2の更新までがライ トバック (W B) ステージとなる。
[0024] 図 5に上記した各ステージとクロック信号との 係を示す。 図 5に示した ように、 C P U 1 0 0は各ステージを 1サイクルで実行するため、 1命令を 実行するために 5サイクルが必要となる。
[0025] 図 1 に本発明の一実施形態にかかる C P U 1 を示す。 図 4と同一部分には 、 同一符号を付して説明を省略する。
[0026] 図 1は、 図 4に対して、 まず、 D Eステージ〜 M Aステージまでを 1サイ クルで動作するように不要なレジスタ (データラッチ 9等) を削除している 〇 次に、 丨 Fステージ〜 D Eステージを 1サイクルで動作するように 丨 R 4 を削除している。 つまり、 プログラムメモリ 3から読み出された命令は命令 〇 2020/175074 6 卩(:170? 2020 /004528
デコーダ 5に直接入力される。 即ち、 命令デコーダ 5が直接命プログラムメ モリ 3八から命令 (プログラムデータ) を読み取っている。 本発明において 「直接」 とは、 図 1のように、 丨 等のクロック信号に同期する回路を介 さずに命令デコーダ 5に入力されることを意味する。
[0027] 丨 を削除することで、 丨 4で丨 ステージが分割されないので丨 ステージ〜 IV!八ステージまでが 1サイクルで動作することとなる。
[0028] また、 図 1のプログラムメモリ 3八は、 プログラムデータが〇 II 1の起 動前から予め格納済みとなっている。 即ち、 〇 II 1の電源がオンして起動 してから外部のメモリ等にアクセスすること なく直ぐにプログラムメモリ 3 八に格納された命令データを読み出すことが 可能な状態となっている。
[0029] そして、 〇 2八及び汎用レジスタ 6八を非同期式の記憶素子で構成する 。 本実施形態では、 例えば 3フリップフロップで構成しているが、 非同期 これで、 〇 2八及び汎用レジスタ 6八がク ロック信号に同期して動作する必要が無くな るので、 巳ステージを分割す る必要が無く、 丨 ステージから 巳ステージまでが 1サイクルで動作する こととなる。
[0030] したがって、 図 1のように構成することで、 図 2に示したように、 0 9 1)
1は 1命令を 1サイクルで実行することができる。
[0031 ] 本実施形態によれば、
は、 命令メモリ 3のアドレスを指示する 〇 2 及び命令デコーダ 5でデコ -ドされる命令においてオペランドとして指 される汎用レジスタ 6八を非 同期式のメモリで構成している。 このようにすることにより、 これらステー ジの切れ目となる 〇 2八や汎用レジスタ 6八にデータを格納する際にクロ ック信号を必要とせず、 巳ステージを削減することができる。 したがって 、 〇 II 1 における命令実行サイクル数の削減に資する ことができ、 命令実 行の高速化を図ることができる。 特に図 1 に示したように、 1命令を 1サイ クルで実行するように構成する際に有用であ り、 1命令を 1サイクルで実行 すれば、 パイプライン処理を用いる必要が無く、 パイプラインハザード等の 対策を講じる必要が無くなる。
[0032] また、 C P U 1は、 プログラムメモリ 3から読み出された命令は命令デコ —ダ 5に直接入力されているので、 丨 R 4が不要となり、 丨 Fステージと D Eステージとが分割されず、 C P U 1 における命令実行サイクル数の削減に 資することができる。
[0033] また、 命令メモリ及びデータメモリは、 同期式記憶素子で構成されている ので、 F PG Aが予め有するメモリでこれらのメモリを構 することが可能 となる。 また、 これらのメモリが同期式記憶素子で構成され ているので、 C P U 1全体をクロック信号に同期させることがで る。
[0034] さらには、 本実施形態では、 乗算も 1 クロックで演算することができるた め、 時間を要することが問題であった除算に、 逆数による乗算演算を有効に 利用することができる。
[0035] なお、 図 1 に示した C P U 1は、 1命令の実行を 1サイクルで行っていた が、 例えば、 図 3に示したように 丨 R4をプログラムメモリ 3と命令デコー ダ 5の間に配置してもよい。 この場合は、 1命令を 2サイクルで実行するこ とになるが、 従来の図 4の状態よりも 1命令の実行に要するサイクル数を削 減することができる。
[0036] また、 上述した実施形態は F PGAで構成することを前提に説明したが、
AS I C (Application Specific Integrated Circuit) として構成してもよ い。
[0037] なお、 本発明は上記実施形態に限定されるものでは ない。 即ち、 当業者は 、 従来公知の知見に従い、 本発明の骨子を逸脱しない範囲で種々変形し て実 施することができる。 かかる変形によってもなお本発明の中央演算 処理装置 の構成を具備する限り、 勿論、 本発明の範疇に含まれるものである。
符号の説明
[0038] 1 C P U (中央演算処理装置)
2 A プログラムカウンタ
3 プログラムメモリ (命令メモリ) 〇 2020/175074 8 卩(:170? 2020 /004528
5 命令デコーダ
6八 巩用レジスタ
8 演算部 (命令実行部)
9 アドレス計算部 (命令実行部)
1 0 データメモリ