JP5181127B2 - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- Publication number
- JP5181127B2 JP5181127B2 JP2008284574A JP2008284574A JP5181127B2 JP 5181127 B2 JP5181127 B2 JP 5181127B2 JP 2008284574 A JP2008284574 A JP 2008284574A JP 2008284574 A JP2008284574 A JP 2008284574A JP 5181127 B2 JP5181127 B2 JP 5181127B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- register file
- cache
- memory
- 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
Links
Images
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
K.J.Kim, J.M.Youn, S.B.Kim, J.H.Kim, S.H.Hwang, K.T.Kim, Y.S Shin著、"A novel 6.4μm2 full-cmos sram cell with aspect ratio of 0.63 in a high-performance 0.25μm-generation cmos technology"、VLSI Technology, 1998、Digest of Technical Papers. 1998 Symposium、pp.68-69, 1998年 Y.Tatsumi, H.J.Mattausch著、"Fast quadratic increase of multiport-storage-cell area with port number"、Electronics Letters, Vol.35, No. 25, pp.2185-2187, 1999年 J.L.Crutz, A.Gonzalez, M.Valero著、"Multiple-Banked Register File Architecture"、Proceedings of the 27th International Symposium on Computer Architecture (ISCA), pp.316-325, 2000年 N.C.Yung, R.; Wilhelm著、"Caching processor general registers"、Proceedings of the International Conference on Computer Design (ICCD), pp.307-312, 1995年 小林良太郎、梶山太郎、島田俊夫著、「クリティカル・パスに着目した階層型レジスタ・ファイル」、先進的計算基盤システムシンポジウムSACSIS、pp.33-40, 2006年 小林良太郎、堀部大介、島田俊夫著、「物理レジスタ番号の割り当て順に着目したレジスタ・キャッシュの高精度化手法」、先進的計算基盤システムシンポジウムSACSIS、pp.13-22, 2006年
この発明の第1の実施形態に係る半導体集積回路について、図1を用いて説明する。図1は、本実施形態に係るスーパスカラプロセッサのブロック図である。
本実施形態に係るプロセッサ1は、パイプライン動作を行う。すなわちプロセッサ1は、発行された命令を複数のステージに分割して処理する。各ステージは、それぞれが独立して処理可能なユニットによって処理される。そしてプロセッサ1は、複数のパイプラインにより、複数の命令を同時並行して実行可能である。
レジスタキャッシュ10は、プロセッサ1におけるキャッシュメモリとして機能し、例えばSRAM等の半導体メモリである。そしてレジスタキャッシュ10は、レジスタファイル30に保持されるデータや、演算器50の演算結果等を、一時的に保持可能である。レジスタキャッシュ10は、例えばr個(rは1以上の自然数)のリードポートと、w個(wは1以上の自然数)のライトポートを有している。すなわち、1ステージにおいて、最大でr個のデータを同時に読み出すことが可能であり、また最大でw個のデータを同時に書き込むことが出来る。
アービタ20は、レジスタファイル30に対するデータアクセスを制御する。すなわちアービタ20は、データの読み出し時において、パイプラインラッチ70を経た読み出しアドレス信号RA0〜RAr−1を、それぞれパイプラインラッチ73を介してリードポートにおいて受信する。また、レジスタキャッシュ10から出力されるヒット信号またはミス信号を、パイプラインラッチ75を介して受信する。そしてアービタ20は、レジスタキャッシュ10からミス信号を受信した場合には、アドレス信号RA0〜RAr−1に応じて、アドレス信号MA0〜MAm−1(mは1以上の自然数)を発生し、レジスタファイル30へ出力する。アドレス信号MA0〜MAm−1は、レジスタファイル30において、アドレス信号RA0〜RAr−1によって選択されるデータが保持されるアドレスを示す信号である。
レジスタファイル30は、プロセッサ1における主たるメモリとして機能する半導体メモリであり、例えばSRAMである。レジスタファイル30は、大まかにはデコーダ31、データアレイ32、及びパイプラインラッチ76を備えている。
プロセッサ1は、r個の選択回路40を備えている。選択回路40の各々は、レジスタキャッシュ10及びレジスタファイル30から読み出される読み出しデータCRD0〜CRDr−1、MRD0〜MRDm−1のいずれか1つを選択し、これを読み出し信号RD0〜RDr−1として出力する。
演算器50は、選択回路40で選択された読み出しデータRD0〜RDr−1を、パイプラインラッチ79を介して受信する。そして読み出しデータRD0〜RDr−1を用いて演算を行う。
制御回路60は、上記説明した各ユニットの動作を制御する。すなわち、上記ユニットで処理が実行される命令を発行して、パイプラインを制御する。そして、当該命令を実行するために必要なデータに応じて、アドレス信号RA0〜RAr−1を発行する。
次に、本実施形態に係る上記プロセッサ1の動作について、図1及び図2を用いて説明する。図2は、プロセッサ1が行う動作のフローチャートである。なお以下の説明では、RA0〜RAr−1、WA0〜WAw−1、WD0〜WDw−1、MA0〜MAm−1、MWD0〜MWDm−1、MRD0〜MRDm−1、及びRD0〜RDr−1の各々をそれぞれ区別しない場合には、それぞれRA、WA、WD、MA、MWD、MRD、及びRDと呼ぶことにする。
図3は、上記動作の流れを時間軸に沿って示した概念図である。図中の第1ステージに記した“IS”は、制御部60による命令発行を行う(図2におけるステップS10)ステージであることを示す。第2ステージに記した“CR”は、レジスタキャッシュ10に対するデータアクセスを行う(ステップS11)ステージであることを示す。第3、第4ステージに記した“RR”は、レジスタファイル30に対するデータアクセス(ステップS13)が可能なステージであることを示す。第5ステージに記した“EX”は、演算器50において演算を行う(ステップS15)ステージであることを示す。第6ステージに記した“CW”は、演算器50における演算結果をレジスタキャッシュ10及びレジスタファイル30に書き込む(ステップS16)ステージであることを示す。また、Ia、Ib、Icはそれぞれ、各パイプラインの実行命令である。
以上のように、この発明の第1の実施形態に係る半導体集積回路であると、下記(1)の効果が得られる。
本効果につき、以下、詳細に説明する。背景技術で説明した通り、近年のOut-of-Orderスーパスカラプロセッサのレジスタファイルは非常に巨大化する傾向にある。この要因として、レジスタファイルのエントリ数の増大と、ポート数の増大とが挙げられる。
次に、この発明の第2の実施形態に係る半導体集積回路について説明する。本実施形態は、上記第1の実施形態において、レジスタキャッシュ10からのデータの読み出しタイミングとヒットミス判定タイミングとを分離し、パイプラインの構成を変形したものである。以下では、第1の実施形態と異なる点についてのみ説明する。
図7は、本実施形態に係るレジスタキャッシュ10の概念図である。図示するようにレジスタキャッシュ10は、(N+1)個(Nは1以上の自然数)のエントリ0〜Nを備えている。そして各エントリにデータが保持される。また、各エントリにはタグ(tag)が設けられている。タグは、対応する各エントリの管理情報等を保持し、各エントリのステータスフラグとして機能するものである。従って、このタグをチェックすることにより、現在、レジスタキャッシュ10には如何なるデータが保持されているのか、等の情報を得ることが出来る。
図8は、本実施形態に係るプロセッサ1のブロック図である。図示するように本実施形態に係るプロセッサ1は、第1の実施形態で説明した図1の構成において、レジスタキャッシュ10を変形すると共に、制御部60にデータアクセスのスケジューリング機能を持たせたものである。
本実施形態に係るレジスタキャッシュ10は、タグアレイ11、データアレイ12、及びパイプラインラッチ81〜83を備えている。
制御部60は、タグアレイ11から与えられるヒット/ミス判定結果に基づいて、データアクセスのスケジューリングを行う。データアクセスのスケジューリングの具体的な内容は、命令を実行するにあたって、各オペランドのデータをレジスタファイルとレジスタキャッシュ10のいずれから読み出すかを決定すること、である。
次に、本実施形態に係る上記プロセッサ1の動作について、図8及び図9を用いて説明する。図9は、プロセッサ1が行う動作のフローチャートである。
図10は、本実施形態に係る上記動作の流れを時間軸に沿って示した概念図である。図中の第2ステージに記した“RS”は、制御部60によりスケジューリングを行う(図9におけるステップS20)ステージであることを示す。“RR/CR”は、レジスタファイル30またはレジスタキャッシュ10に対するデータアクセスを行う(ステップS13−2、S22)ステージであることを示す。その他は図3と同様である。
以上のように、この発明の第2の実施形態に係る半導体集積回路であると、第1の実施形態で説明した(1)の効果に加えて、下記(2)の効果が得られる。
第1の実施形態で説明したように、レジスタファイルのパイプライン化は、新たな問題を引き起こす。パイプライン化に固有の問題として、バイパスネットワーク(bypass network)の複雑化が挙げられる。これは、バイパスそのものがクリティカルであるため、非常に大きな問題となる。
次に、この発明の第3の実施形態に係る半導体集積回路について説明する。本実施形態は、上記第2の実施形態において、レジスタファイル30に書き込むべきデータを一時的に保持可能なバッファを設けたものである。以下では、第2の実施形態と異なる点についてのみ説明する。
図14は、本実施形態に係るプロセッサ1のブロック図である。図示するように本実施形態に係るプロセッサ1は、第2の実施形態で説明した図8の構成において、更にライトバッファ(write buffer)90を備えている。
次に、本実施形態に係る上記プロセッサ1の大まかな動作は、第2の実施形態で説明した図9と同様であり、第2の実施形態と異なる点は、図9におけるステップS16の処理内容のみである。従って、以下ではステップS16についてのみ説明する。図15は、本実施形態におけるステップS16の詳細を示すフローチャートである。
以上のように、この発明の第3の実施形態に係る半導体集積回路であると、第1、第2の実施形態でそれぞれ説明した(1)及び(2)の効果に加えて、下記(3)の効果が得られる。
第1の実施形態において説明したように、レジスタファイルの回路面積縮小のためには、ポート数を削減することが有効である。しかし、ポート数を削減すれば、当然ながら個々のポートの使用率は高くなり、パイプラインをストールさせる必要性も高まる。
次に、この発明の第4の実施形態に係る半導体集積回路について説明する。本実施形態は、上記第3の実施形態において、ライトバッファ90に必要なデータが保持されている際における、データアクセスのスケジューリングに関するものである。特に、データをいずれのメモリから読み出すかを決定する方法に関する。
本実施形態に係る構成であると、上記第1乃至第3の実施形態で説明した(1)乃至(3)の効果に加えて、下記(4)の効果が得られる。
第3の実施形態で説明したように、レジスタファイル30への演算結果の書き込みは、一旦ライトバッファ90上へバッファリングされた後、サイクル・スチールによって行われる。
次に、この発明の第5の実施形態に係る半導体集積回路について説明する。本実施形態は、上記第2乃至第4の実施形態のいずれかにおけるデータアクセスのスケジューリングに関するものである。特に、データの読み出しをいずれのステージで行うかを決定する方法に関する。
本実施形態に係る構成であると、上記第1乃至第4の実施形態で説明した(1)乃至(4)の効果に加えて、下記(5)の効果が得られる。
上記第1乃至第3の実施形態に係る構成によれば、レジスタファイル30のレイテンシを短縮化出来る。すると、レジスタファイル30へのアクセス機会を複数設けることが出来るようになる。
なお、この発明の実施形態は、以下のものを含む。
1.データを保持する第1メモリと、前記第1メモリに対するキャッシュメモリとして働く第2メモリとを備え、前記データに対する読み出し処理と書き込み処理とを複数の処理ステージによりパイプライン実行する半導体集積回路であって、前記読み出し処理の対象となるデータを前記第1メモリから読み出すと決定された場合に、該データの前記第1メモリからの読み出しを前記処理ステージのいずれかにおいて行うことを特徴とする半導体集積回路。
2.上記1において、前記読み出し処理の対象となるデータの前記第2メモリからの読み出しを前記処理ステージのいずれかにおいて行い、前記データを前記第2メモリから読み出す前記処理ステージは、該データの前記第2メモリからの読み出しが開始可能となるステージより下流に存在することを特徴とする。
3.上記1において、前記第1メモリに対するライトバッファとして働く第3メモリを更に備え、前記書き込み処理の対象となるデータは、まず前記第3メモリに一時的に保持され、前記第1メモリのポートが空いている期間に前記第1メモリに書き移されることを特徴とする。
4.上記3において、前記読み出し処理の対象となるデータが前記第3メモリに保持されている場合、前記パイプラインをストールさせ、該ストール期間に、該データを前記第3メモリから前記第1メモリに書き移し、更に該データを前記第1メモリから読み出すことを特徴とする。
5.上記1において、前記処理ステージには、前記読み出し処理の対象となるデータの前記第1メモリからの読み出しを行うステージが、一つのデータの読み出しに必要とされるステージ数より多く含まれ、前記第1メモリからのデータの読み出しは、同時にパイプライン実行さている処理のために前記第1メモリのポートのすべてが使用されてはいない処理ステージにおいて実行されることを特徴とする。
Claims (2)
- データを保持するメモリと、前記メモリに対するキャッシュメモリとを備える半導体集積回路であって、
前記キャッシュメモリは、
複数のエントリのそれぞれにデータを格納するデータアレイと、
前記データアレイにどのデータが格納されているのかの情報を格納するタグアレイと
を有し、前記タグアレイによって、読み出し処理、または、書き込み処理の対象となるデータが前記データアレイに格納されているかどうかが判定され、
読み出し処理に対して格納されていると判定された場合には、前記データアレイ上の該データが読み出され、
読み出し処理に対して格納されていないと判定された場合には、前記メモリ上の該データが読み出され、
書き込み処理に対して格納されていると判定された場合には、前記データアレイ上の該データに対して書き込みが行われ、
前記タグアレイ、前記データアレイ、及び前記メモリは複数の処理ステージからなるパイプラインにおいてアクセスされ、
前記読み出し処理の対象となるデータを前記メモリから読み出すと判定された場合に、該データの前記メモリからの読み出しを前記処理ステージのうちの1つである1または複数のサイクルから成る第1処理ステージにおいて行って、読み出した該データを選択して出力し、
前記読み出し処理の対象となるデータを前記データアレイから読み出すと判定された場合、前記読み出し処理は、
前記メモリからの読み出しを実行することなく、
前記メモリから読み出すと判定された場合において前記データを選択して出力するタイミングと同じタイミングで、前記データアレイから読み出した該データを選択して出力する
ことを特徴とし、
前記メモリは、前記キャッシュメモリを経由しない経路を用いて、該メモリからのデータを出力する半導体集積回路。 - 前記パイプラインにおいて、該データを前記データアレイから読み出す処理ステージは、前記タグアレイによる判定が行われる処理ステージより下流に存在する
ことを特徴とする請求項1記載の半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008284574A JP5181127B2 (ja) | 2008-11-05 | 2008-11-05 | 半導体集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008284574A JP5181127B2 (ja) | 2008-11-05 | 2008-11-05 | 半導体集積回路 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012221419A Division JP5589169B2 (ja) | 2012-10-03 | 2012-10-03 | 半導体集積回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010113470A JP2010113470A (ja) | 2010-05-20 |
JP5181127B2 true JP5181127B2 (ja) | 2013-04-10 |
Family
ID=42301996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008284574A Expired - Fee Related JP5181127B2 (ja) | 2008-11-05 | 2008-11-05 | 半導体集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5181127B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2539974B2 (ja) * | 1991-11-20 | 1996-10-02 | 富士通株式会社 | 情報処理装置におけるレジスタの読出制御方式 |
EP0717359A3 (en) * | 1994-12-15 | 1997-02-05 | Sun Microsystems Inc | Register cache memory for a computer processor |
US5809450A (en) * | 1997-11-26 | 1998-09-15 | Digital Equipment Corporation | Method for estimating statistics of properties of instructions processed by a processor pipeline |
JP3659941B2 (ja) * | 2002-07-26 | 2005-06-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マイクロプロセッサおよびその処理方法 |
JP3906363B2 (ja) * | 2004-09-01 | 2007-04-18 | 国立大学法人名古屋大学 | クラスタ化スーパスカラプロセッサ及びクラスタ化スーパスカラプロセッサにおけるクラスタ間の通信制御方法 |
-
2008
- 2008-11-05 JP JP2008284574A patent/JP5181127B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010113470A (ja) | 2010-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8200949B1 (en) | Policy based allocation of register file cache to threads in multi-threaded processor | |
US8769246B2 (en) | Mechanism for selecting instructions for execution in a multithreaded processor | |
CN103620555B (zh) | 抑制不正确的推测性执行路径上的控制转移指令 | |
JP5372929B2 (ja) | 階層マイクロコードストアを有するマルチコアプロセッサ | |
US8966232B2 (en) | Data processing system operable in single and multi-thread modes and having multiple caches and method of operation | |
US8516196B2 (en) | Resource sharing to reduce implementation costs in a multicore processor | |
US7219185B2 (en) | Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache | |
US7680985B2 (en) | Method and apparatus for accessing a split cache directory | |
CN104813278B (zh) | 对二进制转换的自修改代码以及交叉修改代码的处理 | |
US20090300319A1 (en) | Apparatus and method for memory structure to handle two load operations | |
US6557078B1 (en) | Cache chain structure to implement high bandwidth low latency cache memory subsystem | |
US7725659B2 (en) | Alignment of cache fetch return data relative to a thread | |
US6633971B2 (en) | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline | |
US20120159217A1 (en) | Method and apparatus for providing early bypass detection to reduce power consumption while reading register files of a processor | |
US20080244224A1 (en) | Scheduling a direct dependent instruction | |
US20020056034A1 (en) | Mechanism and method for pipeline control in a processor | |
US7730288B2 (en) | Method and apparatus for multiple load instruction execution | |
JP5181127B2 (ja) | 半導体集積回路 | |
JP5589169B2 (ja) | 半導体集積回路 | |
US8225034B1 (en) | Hybrid instruction buffer | |
CN105786758B (zh) | 一种具有数据缓存功能的处理器装置 | |
US6351803B2 (en) | Mechanism for power efficient processing in a pipeline processor | |
US7426630B1 (en) | Arbitration of window swap operations | |
US6408381B1 (en) | Mechanism for fast access to control space in a pipeline processor | |
US6928534B2 (en) | Forwarding load data to younger instructions in annex |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101222 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110314 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110725 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110725 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110817 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121003 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20121010 |
|
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: 20121106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5181127 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160125 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |