JP2009157887A - ロードストアキューの制御方法及びその制御システム - Google Patents
ロードストアキューの制御方法及びその制御システム Download PDFInfo
- Publication number
- JP2009157887A JP2009157887A JP2007338861A JP2007338861A JP2009157887A JP 2009157887 A JP2009157887 A JP 2009157887A JP 2007338861 A JP2007338861 A JP 2007338861A JP 2007338861 A JP2007338861 A JP 2007338861A JP 2009157887 A JP2009157887 A JP 2009157887A
- Authority
- JP
- Japan
- Prior art keywords
- request
- load
- store
- main storage
- storage unit
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】キャッシュと主記憶部との間に実装されるロードストアキューについて、RASのアクティベート実行回数を削減して、主記憶部に対して効率的にリクエストを発行する。
【解決手段】ロードストアキューの制御方法は、主記憶部に対して発行するリクエストを保持する制御方法であって、ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが主記憶部において同一の処理単位に含まれるアドレスである場合には、第1のリクエストを主記憶部に発行する際に、その第2のリクエストを併せて主記憶部へと発行するように制御するものである。
【選択図】図3
【解決手段】ロードストアキューの制御方法は、主記憶部に対して発行するリクエストを保持する制御方法であって、ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが主記憶部において同一の処理単位に含まれるアドレスである場合には、第1のリクエストを主記憶部に発行する際に、その第2のリクエストを併せて主記憶部へと発行するように制御するものである。
【選択図】図3
Description
本発明は、主記憶部に対して発行するリクエストを保持するロードストアキューの制御方法に関し、特にキャッシュと主記憶部との間に設けられたロードストアキューの制御方法に関する。
近年、プロセッサからキャッシュへとロード・ストアリクエストを発行する際、或いはキャッシュから主記憶部へとロード・ストアリクエストを発行する際に、アクセスレイテンシ、データ転送性能差を隠蔽するためのロードストアキューが実装されてきた。ロードストアキューは、プロセッサとキャッシュ、或いは、キャッシュと主記憶部の中間位置に設けられ、その制御方法についてこれまでにも多くの工夫がなされてきた。
ロードストアキューに関するアクセスレイテンシ、データ転送性能を向上させる技術としては、例えば以下のような技術が良く知られている。
(1)ストアキュー内に発行待ちとなっているリクエストと同一アドレスの後続ロードリクエストが存在する場合には、キャッシュ若しくは主記憶部へとロードアクセスリクエストを発行する代わりに、発行待ちとなっているストアキューのデータをロードアクセス結果としてリプライすることにより、短アクセスタイム化を計っている。
(2)また、処理時間のかかるロードリクエストを、先行するストアリクエストより先に発行するなどの工夫がなされている。
(3)さらに、先行ストアリクエストと同一アドレスの後続リクエストが存在する場合には、ストアデータの置き換え、或いはマージを行い、ストアリクエストの圧縮を行っている。そして、これらの機能の高速化手法も提案されている。
(1)ストアキュー内に発行待ちとなっているリクエストと同一アドレスの後続ロードリクエストが存在する場合には、キャッシュ若しくは主記憶部へとロードアクセスリクエストを発行する代わりに、発行待ちとなっているストアキューのデータをロードアクセス結果としてリプライすることにより、短アクセスタイム化を計っている。
(2)また、処理時間のかかるロードリクエストを、先行するストアリクエストより先に発行するなどの工夫がなされている。
(3)さらに、先行ストアリクエストと同一アドレスの後続リクエストが存在する場合には、ストアデータの置き換え、或いはマージを行い、ストアリクエストの圧縮を行っている。そして、これらの機能の高速化手法も提案されている。
また、プロセッサとキャッシュとの間に実装されるロードストアキューに関する技術として、特許文献1では、ストアリクエストが発生したにも関わらずそのストアデータが揃わない場合に、先行ストアリクエストと後続ロードリクエストが同一アドレスでない場合、ロードストアバッファにおいて順番を入れ替え、ロードリクエストを先に発行する主記憶アクセス制御方式を提供している。即ち、特許文献1に開示される主記憶アクセス制御方式は、ストアリクエストが別要因で遅れてしまい、アドレスが一致しないロードリクエストを優先して主記憶部へと発行するものである。特許文献2では、同一アドレスのストアリクエストをマージするキャッシュメモリアクセスシステムが提案されている。特許文献3及び4では、同一アドレスを有するストアリクエスト後のロードリクエストについて、その高速化手法が提案されている。
特開平06−131239号公報
特開平01−050139号公報
特開2000−259412号公報
特開2002−287959号公報
しかしながら、上述したいずれの技術もプロセッサとキャッシュとの間に実装されるロードストアキューに関するものであり、主記憶部であるDRAM、シンクロナスDRAM及びそれらを用いたDIMMやSIMMの特性を利用することで、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現する内容ではない。
プロセッサとキャッシュとの間に実装されるロードストアキューに関しては、一般的にキャッシュとしてSRAMが使用され、プロセッサから発行されるリクエストは主記憶部に対して直接アクセスを伴うものではないため、主記憶アクセスにおけるローアドレスやバンク(ランク)を有効化するアクティベートについて問題とはならない。一方、キャッシュと主記憶部との間に実装されるロードストアキューに関しては、一般的に、主記憶部を構成するDRAM、SDRAMに対してアクセスする場合には、ローアドレスをセットしてローアドレスストローブ(RAS)をアクティベートし、次いでカラムアドレスをセットしてカラムアドレスストローブ(CAS)をアクティベートとすることによってデータの読み書きが行われる。また、同じく主記憶部を構成するDIMM、SIMMにおいても、バンク・ランクによりアクセス先が異なるため、データ転送のためにはアクセス先を示すバンク(ランク)を指定してアクティベートする。このため、データ転送に際してDRAMではローアドレスのアクティベートが必要となり、DIMM、SIMMではバンク(ランク)のアクティベートが必要となる。
ところで、SRAMとは異なり、DRAM、SDRAMは、同一のローアドレスに対するアクセスが連続する場合には、ローアドレスを出力した後、カラムアドレスを変更するだけでデータを高速にアクセス可能なバースト転送機能を備えている。しかし、上述したように、各リクエストを主記憶部に発行する都度、主記憶部においてアドレスアクティベート後にデータアクセスを実行する構成とした場合には、例えば、同一のローアドレスを有する複数のロードリクエストについても、各ロードリクエストそれぞれについてアクティベートを要することになり、アクティベート実行回数の不要な増加を招くという問題がある。このため、アクティベート実行回数の増加により、アクセスレイテンシ、データ転送が低下するという課題がある。
本発明の目的は、上記知見に基づいてなされたものであって、キャッシュと主記憶部との間に実装されるロードストアキューについて、RASのアクティベート実行回数を削減して、主記憶部に対して効率的にリクエストを発行することで、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現するロードストアキューの制御方法及び制御システムを提供することにある。
本発明に係るロードストアキューの制御方法の一態様は、主記憶部に対して発行するリクエストを保持するロードストアキューの制御方法であって、前記ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが前記主記憶部において同一の処理単位に含まれるアドレスである場合には、前記第1のリクエストを前記主記憶部に発行する際に、前記第2のリクエストを併せて前記主記憶部へと発行する。
また、本発明に係るロードストアキューの制御システムの一態様は、主記憶部に対して発行するリクエストを保持するロードストアキューと、当該ロードストアキューを制御する制御部と、を備えたロードストアキューの制御システムであって、前記制御部は、前記ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが前記主記憶部において同一の処理単位に含まれるアドレスである場合には、前記第1のリクエストを前記主記憶部に発行する際に、前記第2のリクエストを併せて前記主記憶部へと発行する。
本発明によれば、キャッシュと主記憶部との間に実装されるロードストアキューについて、主記憶部に対して効率的にリクエストを発行することで、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現するロードストアキューの制御方法及び制御システムを提供することができる。
以下、本発明を実施するための最良の形態について、図面を参照しながら詳細に説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡潔化がなされている。各図面において同一の構成又は機能を有する構成要素及び相当部分には、同一の符号を付し、その説明を省略する。
図1は、本発明の各実施の形態のロードストアキュー制御方法の共通した全体概念図である。ロードストアキュー10は、キャッシュ20と主記憶部30の間に実装されている。ロードストアキュー10は主記憶部30に対して発行するリクエストを保持する。尚、ロードストアキュー10は主記憶部30に対してリクエストを直接発行するロードストアキューであればよく、ロードストアキュー10に対してリクエストを発行する装置はキャッシュ20に限定されない。ロードストアキューは、図示しないプロセッサからリクエストを直接発行されるロードストアキューであってもよい。
キャッシュ20はロードストアキュー10に対してリクエスト50を新たに発行する。リクエスト50は、リクエスト50がロードリクエスト又はストアリクエストのいずれかのリクエストであるかを示すリクエスト種類情報(LD/ST41)と、リクエストで使用するデータを指定するアドレス42と、主記憶部30に格納するストアデータ48と、を含む。
ロードストアキュー10は、主記憶部30に対するリクエストを実際に発行するリクエストキュー11と、ストアデータ48を保持するストアデータキュー12と、ロードリクエストに対するリプライ情報(LDリクエストリプライ情報49)を保持するリプライキュー13と、を含む。尚、図示は省略するが、ロードストアキュー10は、ロードデータを保持するロードキューを更に備えていてもよい。
ロードストアキューの制御方法は、ランダムに発生するロードリクエスト及びストアリクエストを、ロードストアキュー10内でそのリクエスト順序を並び替え、連続したロードリクエストと連続したストアリクエストとなるように制御する。このため、キャッシュ20からロードストアキュー10へと新たに発行されたリクエスト50に対して制御情報43を付与し、ロードストアキュー10内におけるリクエストの順序を並び替える。
ロードストアキュー10内のキューについて、主記憶部30により近いキューを上位キューとし、ロードストアキュー10に新たに発行されたリクエストは、ロードストアキュー10内において上位キューへと移動する。
ロードストアキューの制御方法は、ロードストアキュー10内でその順序を並び替えたリクエストを、主記憶部30に対して発行する。リクエストがストアリクエストである場合には、ストアデータ48を主記憶部30に転送し、指定されたアドレス42に格納する。リクエストがロードリクエストである場合には、主記憶部30からロードストアキュー10に対して、ロードデータとロードリクエストに関するLDリクエストリプライ情報49が転送される。リクエストキュー11は、同一アドレスのロードがあった場合、1つのリクエストに圧縮して主記憶部30にリクエストされるが、LDリクエストリプライ情報49は、圧縮前のロードリクエスト情報を記憶している。主記憶部30からのロードデータは、LDリクエストリプライ情報と照合され、キャッシュ20からのロードリクエスト毎にリプライを返す。
尚、ロードストアキュー10のリクエストキュー11及びリプライキュー13は、例えばフリップフロップ(FF)で構成することができ、ストアデータキュー12はランダムアクセスメモリ(RAM)で構成することができる。主記憶部30は、DRAMやシンクロナスDRAM(SDRAM)で構成され、これらDRAMを用いたDIMMやSIMMにより構成してもよい。
図2はロードストアキュー内におけるリクエストキューの制御内容を説明するための図である。リクエストキュー11内に保持されたリクエストの制御情報43は、リクエストの有効性を示す有効情報(V44)と、ストアwaitカウント(STwait46)と、ストアwait valid(STwaitV45)と、近接アドレスフラグコード47と、を含む。
STwait46及びSTwaitV45は、所定の条件を満足するまでの間、ロードストアキュー10内のストアリクエストをロードストアキュー10内に保持するように制御するための制御情報である。例えば所定の条件としては、ストアリクエストに後続するリクエストの個数に応じて制御することができる。
より具体的には、ストアリクエストに後続して発行されるリクエストの個数をSTwait46を用いてカウントし、当該カウント値が規定回数となった場合には、STwaitV45を規定の値に設定する。STwaitV45が規定の値となった場合には、そのストアリクエストを主記憶部30に対して発行するように制御することができる。一方、STwaitV45が規定の値となるまでの間は、そのストアリクエストを主記憶部30に対して発行せずに、ロードストアキュー10内に保持するように制御することができる。
このように、ロードストアキュー10に対して新たに発行されるリクエストの個数が所定の個数となるまでの間、ロードストアキュー10内にストアリクエストを保持することで、先行するストアリクエストと、同じアドレスの後続ストアリクエストがあった場合、ロードストアキュー10内により多くのストアリクエストを滞留させることができるため、効率よくストアデータをマージすると共に、ストアリクエスト毎に保持する時間を変えることにより、ストアリクエストとロードリクエストを分離して主記憶部30に発行することができる。
近接アドレスフラグコード47は、主記憶部30において予め定めたアドレスの処理単位に基づいて、ロードストアキュー10内のリクエストを分類するための制御情報である。主記憶部30におけるアドレスは予め複数の処理単位に分割され、近接アドレスフラグコード47は、それら処理単位のいずれかを示す識別情報である。ロードストアキュー10内のリクエストに近接アドレスフラグコード47を付与することで、リクエストをアドレスに応じて分類して管理することができる。例えば、同一のローアドレスを有するリクエストに対して同一の近接アドレスフラグコード47を付与し、同一のランクアドレスを有するリクエストに同一の近接アドレスフラグコード47を付与することができる。
より具体的には、ロードストアキューの制御方法は、ロードストアキュー10内のリクエストと新たに発行されるリクエストをそのアドレスについて互いに比較し、リクエストを近接アドレスフラグコード47に応じて分類する。そして、ロードストアキュー10内のリクエストを主記憶部30へと発行する際には、リクエストのうち同一の近接アドレスフラグコード47を有するリクエストをまとめて連続して主記憶部30へと発行する。例えばメモリリクエスト選択ユニット(MRSU15)によって、ロードリクエストを主記憶部30へと発行する場合には、同一の近接フラグコード47を有するロードストアキュー10内のロードリクエストを全て選択した上で、それらロードリクエストを連続して発行するようにマルチプレクサを制御することができる。
また、ストアリクエストを主記憶部30へと発行する場合には、STwaitV45が規定の値となったストアリクエストを主記憶部30へとまず発行した後、同一の近接アドレスフラグコード47を有するストアリクエストを連続して発行するように制御することができる。尚、ストアリクエストによっては、STwaitV45が規定の値となる前に発行するように制御してもよいし、STwaitV45が規定の値となったストアリクエストから常に選択して発行するように制御することもできる。
さらにまた、ロードストアキューの制御方法は、同一アドレスリクエスト制御部14によって、同一のアドレスを有するリクエストについて下記(i)乃至(iii)で説明する制御を実行することができる。
(i)ロードストアキュー10内において、先行ロードリクエストと後続ロードリクエストのアドレスが同一であった場合には、主記憶部30に対するロードリクエストを1つにする。より具体的には、新規に発行されたロードリクエストのアドレスとロードストアキュー10内の全てのロードリクエストのアドレスとを比較し、同一のアドレスを有するロードリクエストが存在する場合には、リクエストキュー11には1つのロードリクエストのみをキューイングし、リプライキュー13には同一のアドレスを有する全てのロードリクエストの個数分のLDリクエストリプライ情報49がキューイングされる。尚、本制御機能は一般的にキャッシュ20内に実装されることもあるが、ロードストアキュー10のリクエスト元がキャッシュ20ではない場合には、ロードストアキュー10に実装してもよい。
(ii)先行ストアリクエストと後続ストアリクエストのアドレスが同一であった場合には、それらストアリクエストのストアデータをマージする。より具体的には、ロードストアキュー10内の全てのストアリクエストについて、先行するストアリクエストと後続ストアリクエストのアドレスを比較し、同一のアドレスを有するストアリクエストが存在する場合には、後続ストアリクエストのストアデータ48を先行ストアリクエストのストアデータ48にマージする。この場合、リクエストキュー11には、1つのストアリクエストのみがキューイングされ、ストアデータキュー12には、マージされた1つのストアデータ48が保持される。
(iii)先行ストアリクエストと後続ロードリクエストのアドレスが同一であった場合には、ストアデータキュー12に保持されたストアデータ48の内容を後続ロードリクエストのデータとしてリプライする。より具体的には、新規に発行されたロードリクエストのアドレスとロードストアキュー10内の全てのストアリクエストのアドレスとを比較し、同一のアドレスを有するストアリクエストが存在する場合には、ロード結果として、ストアデータキュー12に保持されたストアデータ48の内容をキャッシュにリプライする。
実施の形態1.
実施の形態1では、ロードストアキューの制御方法は、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるか否かを判定し、主記憶部30へとリクエストを発行する際には、同一の処理単位に含まれるアドレスを有するリクエストをまとめて連続して発行するよう制御する。図3は、本実施の形態のロードストアキューの制御方法が、ロードストアキュー内のリクエストを制御する手順の一例を示すフローチャートである。以下、図3を参照しながらロードストアキューの制御方法について詳細に説明する。
実施の形態1では、ロードストアキューの制御方法は、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるか否かを判定し、主記憶部30へとリクエストを発行する際には、同一の処理単位に含まれるアドレスを有するリクエストをまとめて連続して発行するよう制御する。図3は、本実施の形態のロードストアキューの制御方法が、ロードストアキュー内のリクエストを制御する手順の一例を示すフローチャートである。以下、図3を参照しながらロードストアキューの制御方法について詳細に説明する。
まず、ロードストアキューの制御方法は、新規発行されたリクエストの有効情報V44の値を初期化する(V=1)(ステップS101)。次いで、ロードストアキュー10内の上位キューに存在する全てのリクエストのアドレスと、新規発行されたリクエストのアドレスとを比較して検索を行う(ステップS102)。
ステップS102における検索の結果、ロードストアキュー10内の上位キューに、新規発行リクエストのアドレスと同一のローアドレス或いは同一のランクアドレスを有するリクエストが存在するか否かを判定する(ステップS103)。即ち、新規発行リクエストに先行するリクエストであって、新規リクエストと同一のローアドレス或いは同一のランクアドレスを有しており、主記憶部30に発行する際に、新規発行リクエストと同時に発行可能なリクエストがロードストアキュー10内に既に存在しているか否かを確認する。
ステップS103における判定の結果、新規発行リクエストのアドレスと同一のローアドレス或いは同一のランクアドレスを有するリクエストが既に存在している場合には、ロードストアキュー10内のそのリクエストに付与された近接アドレスフラグコード47を新規発行リクエストに付与する(ステップS110)。一方、新規発行リクエストのアドレスと同一のローアドレス或いは同一のランクアドレスを有するリクエストが存在しない場合には、新たな近接アドレスフラグコード47を生成して、その新規発行リクエストに付与する(ステップS104)。
次いで、ロードストアキュー10内の上位キューに有効なリクエスト(ここでは、V=1のリクエスト)が存在するか否かを判定する(ステップS105)。判定の結果、上位キューに有効なリクエストが存在しない場合には、ステップS111へと進む。一方、上位キューに有効なリクエストが存在する場合には、リクエストが最上位キューに位置するものであるか否かを更に判定する(ステップS106)。
ステップS106における判定の結果、リクエストが最上位キューに位置するものである場合にはステップS111へと進む。一方、リクエストが最上位キューに位置するものではない場合には、同一の近接アドレスフラグコード47を有するリクエストが、主記憶部30に対して発行されたか否かを更に判定する(ステップS107)。即ち、同一の近接アドレスフラグコード47を有するリクエストをまとめて連続して発行するか否かを確認する。
ステップS107における判定の結果、同一の近接アドレスフラグコード47を有するリクエストが、主記憶部30に対して発行された場合にはステップS111へと進む。一方、同一の近接アドレスフラグコード47を有するリクエストが、主記憶部30に対して発行されていない場合には、直上キューのリクエストが有効なリクエスト(ここでは、V=1のリクエスト)であるか否かを更に判定する(ステップS108)。
ステップS108における判定の結果、直上キューのリクエストが有効なリクエストである場合には再びステップS108へと戻る。一方、直上キューのリクエストが有効なリクエストでない場合には、リクエストを上位キューへと移動して、ステップS105へと戻る(ステップS109)。
他方、ステップS105、S106、S107の判定の結果、リクエストが主記憶部30への発行対象となった場合には、リクエストの有効情報V44の値をクリアし(V=0)(ステップS111)、ロードストアキュー10から主記憶部30に対してリクエストを発行する(ステップS112)。
このように、ロードストアキュー10内のリクエストについて、そのアドレスが同一のローアドレス或いは同一のランクアドレスである場合には、同一の近接アドレスフラグコード47を有するリクエストを併せて主記憶部30へと発行することで、同一のローアドレス或いは同一のランクアドレスにより主記憶部30に対して連続してアクセスすることができる。このため、ロードストアキュー10から主記憶部30に対してリクエストを発行する際には、同一のローアドレスの転送について、RASを1回のみアクティベートすれば良く、RASのアクティベート実行回数を削減することができる。また、DIMM等が主記憶部30に使用されており、同一ランクアドレスアクセスが連続する場合の方が、異ランクアドレスアクセスが連続する場合より、高速にアクセスできる場合は、同一ランクアドレスアクセスを連続させることができ、主記憶部30の処理を高速化できる。
実施の形態2.
次に、本発明の実施の形態2について図面を参照して詳細に説明する。実施の形態2では、ロードストアキューの制御方法は、ロードストアキュー10内におけるリクエストの順序を並び替え、連続したストアリクエストと連続したロードリクエストとなるように制御する。図4は、本実施の形態のロードストアキューの制御方法が、ロードストアキュー内のリクエストを制御する手順の一例を示すフローチャートである。図4に示すようにステップS203乃至S207において、新規発行されたロードリクエストの順序を制御する。また、ステップS208乃至S217において、新規発行されたストアリクエストをロードストアキュー10内に待機させると共に、その順序を制御する。以下、図4を参照しながらロードストアキューの制御方法について詳細に説明する。尚、ロードリクエストと同一アドレスの先行ストアリクエストがリクエストキュー上にあった場合で、ロードデータの一部のデータがストアデータとして存在しないような場合に、当該ストアリクエストのストアデータをロードリクエストのデータとしてキャッシュにリプライできないとき、ストアリクエストは規定回数待つことなしに、ロードリクエストに先立ってストアリクエストを主記憶部に発行しなければならないが、当該制御は、本発明の本質ではないため、記述していない。また、実施の形態1では、リクエストキューで、ストアリクエストの直上位キューにあるのがストアリクエストであった場合で、当該直上位キューが主記憶部に発行された場合には、ストアリクエストの発行待ちをせずに主記憶部へ発行する制御の場合を示している。
次に、本発明の実施の形態2について図面を参照して詳細に説明する。実施の形態2では、ロードストアキューの制御方法は、ロードストアキュー10内におけるリクエストの順序を並び替え、連続したストアリクエストと連続したロードリクエストとなるように制御する。図4は、本実施の形態のロードストアキューの制御方法が、ロードストアキュー内のリクエストを制御する手順の一例を示すフローチャートである。図4に示すようにステップS203乃至S207において、新規発行されたロードリクエストの順序を制御する。また、ステップS208乃至S217において、新規発行されたストアリクエストをロードストアキュー10内に待機させると共に、その順序を制御する。以下、図4を参照しながらロードストアキューの制御方法について詳細に説明する。尚、ロードリクエストと同一アドレスの先行ストアリクエストがリクエストキュー上にあった場合で、ロードデータの一部のデータがストアデータとして存在しないような場合に、当該ストアリクエストのストアデータをロードリクエストのデータとしてキャッシュにリプライできないとき、ストアリクエストは規定回数待つことなしに、ロードリクエストに先立ってストアリクエストを主記憶部に発行しなければならないが、当該制御は、本発明の本質ではないため、記述していない。また、実施の形態1では、リクエストキューで、ストアリクエストの直上位キューにあるのがストアリクエストであった場合で、当該直上位キューが主記憶部に発行された場合には、ストアリクエストの発行待ちをせずに主記憶部へ発行する制御の場合を示している。
まず、ロードストアキューの制御方法は、新規発行されたリクエストの有効情報V44と、STwaitV45と、STwait46の値を初期化する(V=1,STwaitV=0,STwait=0)(ステップS201)。次いで、リクエスト種類情報(LD/ST41)より、リクエストがロードリクエストであるか否かを判定する(ステップS202)。
ステップS202における判定の結果、リクエストがロードリクエストでない場合(即ちストアリクエストである場合)には、ステップS208へと進む。一方、リクエストがロードリクエストである場合には、ロードストアキュー10内の上位キューに有効なリクエスト(ここでは、V=1のリクエスト)が存在するか否かを判定する(ステップS203)。即ち、ロードストアキュー10内に先行する有効なリクエストが存在するか否かを確認する。
ステップS203における判定の結果、上位キューに有効なリクエストが存在しない場合には、ステップS218へと進む。一方、上位キューに有効なリクエストが存在する場合には、リクエストが最上位キューに位置するものであるか否かを更に判定する(ステップS204)。即ち、リクエストが主記憶部30に対して次に発行対象となるリクエストであるか否かを確認する。
ステップS204における判定の結果、リクエストが最上位キューに位置するものである場合にはステップS218へと進む。一方、リクエストが最上位キューに位置するものではない場合には、上位キューのリクエストが全てストアリクエストであるか否かを更に判定する(ステップS205)。即ち、ロードリクエストに対して先行するリクエストが、全てストアリクエストであるか否かを確認する。
ステップS205における判定の結果、上位キューのリクエストが全てストアリクエストでない場合にはステップS218へと進む。一方、上位キューのリクエストが全てストアリクエストである場合には、直上キューのリクエストが有効なリクエスト(ここでは、V=1のリクエスト)であるか否かを更に判定する(ステップS206)。即ち、ロードストアキュー10内において、直前に先行する有効なリクエストが存在するか否かを確認する。
ステップS206における判定の結果、直上キューのリクエストが有効なリクエストである場合には再びステップS206へと戻る。即ち、ロードキュー10内において、直前に先行する有効リクエストが存在する場合には、その先行するリクエストが無効となるまでの間、待機する。一方、直上キューのリクエストが有効なリクエストでない場合には、リクエストを上位キューへと移動して、ステップS203へと戻る(ステップS207)。
他方、ステップS202における判定の結果、リクエストがロードリクエストでない(即ちストアリクエストである)場合には、直上位のリクエストがストアリクエストであるか否かを更に判定する(ステップS208)。即ち、直前に先行するリクエストがストアリクエストであるか否かを確認する。
ステップS208における判定の結果、直上位のリクエストがストアリクエストでない場合にはステップS210へと進む。一方、直上位のリクエストがストアリクエストである場合には、直上位のリクエストが主記憶部30に対して発行されたか否かを更に判定する(ステップS209)。即ち、直前に先行するストアリクエストが発行済みであるか否かを確認する。
ステップS209における判定の結果、直上位のリクエストが主記憶部30に対して発行された場合にはステップS218へと進む。一方、直上位のリクエストが主記憶部30に対して発行されていない場合には、ロードストアキュー10に対して新たなリクエストが発行されたか否かを更に判定する(ステップS210)。即ち、ストアリクエストに対して後続するリクエストが発行されたか否かを確認する。
ステップS210における判定の結果、新たなリクエストが発行されていない場合には、ステップS210へと戻る。即ち、ロードストアキュー10に対して後続するリクエストが発行されるまでの間待機する。一方、新たなリクエストが発行された場合には、STwait46の値をインクリメントする(STwait=+1)(ステップS211)。即ち、後続するリクエストの個数をカウントする。
次いで、STwait46の値に基づいて、ストアリクエストがロードストアキュー10内において規定回数待ったか否かを判定する(ステップS212)。即ち、ストアリクエストが発行可能状態であるか否かを確認する。
ステップS212における判定の結果、規定回数待っていない場合には、ステップS210へと戻る。即ち、後続するリクエストの個数をカウントし、そのカウント値が規定の値となるまでの間、ロードストアキュー10内にストアリクエストを保持する。一方、規定回数待った場合には、STwaitV45の値を有効値へと変更する(STwaitV=1)(ステップS213)。即ち、ストアリクエストを発行可能状態とする。
次いで、ロードストアキュー10内の上位キューに有効なリクエスト(ここでは、V=1のリクエスト)が存在するか否かを判定する(ステップS214)。判定の結果、上位キューに有効なリクエストが存在しない場合にはステップS218へと進む。一方、上位キューに有効なリクエストが存在する場合には、リクエストが最上位キューに位置するものであるか否かを更に判定する(ステップS215)。
ステップS215における判定の結果、リクエストが最上位キューに位置するものである場合にはステップS218へと進む。一方、リクエストが最上位キューに位置するものでない場合には、直上キューのリクエストが有効なリクエスト(ここでは、V=1のリクエスト)であるか否かを更に判定する(ステップS216)。
ステップS216における判定の結果、直上キューのリクエストが有効なリクエストである場合には再びステップS216へと戻る。即ち、ロードストアキュー10内において、直前に先行する有効リクエストが存在する場合には、その先行するリクエストが無効となるまでの間、待機する。一方、直上キューのリクエストが有効なリクエストでない場合には、リクエストを上位キューへと移動して、ステップS208へと戻る(ステップS217)。
他方、ステップS203、S204、S205、S209、S214、S215の判定の結果、リクエストが主記憶部30へ発行対象となった場合には、リクエストの有効情報V44の値をクリアし(V=0)(ステップS218)、主記憶部30に対してロードストアキュー10からリクエストを発行し(ステップS219)、リクエストキューからエントリを解除する。
このように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替えることで、ロードストアキュー10内のストアリクエストを連続して保持することができる。このため、ロードストアキュー10から主記憶部30に対してリクエストを発行する際には、ストアリクエストを連続して発行することができると共に、ストアリクエスト間のロードリクエストについても連続して発行することができる。従って、リードサイクル及びライトサイクル間のバス切り替における空きサイクルの発生を抑制して、主記憶部30に対して効率的にリクエストを発行することができ、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現することができる。
実施の形態3.
上述した実施の形態1では、ロードストアキューの制御方法は、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるか否かを判定し、主記憶部30へとリクエストを発行する際には、同一の処理単位に含まれるアドレスを有するリクエストをまとめて連続して発行するように制御する。また、実施の形態2では、ロードストアキューの制御方法は、所定の条件が満足されるまでの間、ロードストアキュー10内にストアリクエストを保持することで、連続したストアリクエストと連続したロードリクエストとなるように制御する。実施の形態3では、ロードストアキューの制御方法は、ロードストアキュー内におけるリクエストの順序を並び替え、連続したストアリクエストと連続したロードリクエストとなるように制御すると共に、リクエストを主記憶部30へと発行する際には、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるアドレスである場合には、同一の処理単位に含まれるアドレスを有するリクエストを併せて発行するように制御する。
上述した実施の形態1では、ロードストアキューの制御方法は、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるか否かを判定し、主記憶部30へとリクエストを発行する際には、同一の処理単位に含まれるアドレスを有するリクエストをまとめて連続して発行するように制御する。また、実施の形態2では、ロードストアキューの制御方法は、所定の条件が満足されるまでの間、ロードストアキュー10内にストアリクエストを保持することで、連続したストアリクエストと連続したロードリクエストとなるように制御する。実施の形態3では、ロードストアキューの制御方法は、ロードストアキュー内におけるリクエストの順序を並び替え、連続したストアリクエストと連続したロードリクエストとなるように制御すると共に、リクエストを主記憶部30へと発行する際には、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるアドレスである場合には、同一の処理単位に含まれるアドレスを有するリクエストを併せて発行するように制御する。
より具体的には、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして、図3に示したフローチャートにおいて説明したように、ロードストアキュー10内のリクエストについて、そのアドレスが同一のローアドレス或いは同一のランクアドレスである場合には、同一の近接アドレスフラグコード47を有するリクエストを併せて主記憶部30へと発行する。ロードストアキューの制御方法は、例えばSTwait46及びSTwaitV45を用いることで、所定の条件を満足するまでの間、ストアリクエストをロードストアキュー10内に保持することができ、例えば近接アドレスフラグコード47を用いることで、主記憶部30において同一のアドレスの処理単位に基づいて、ロードストアキュー10内のリクエストを分類して管理することができる。
このようにすると、ロードストアキュー10から主記憶部30に対してリクエストを発行する際には、連続したロードリクエストと連続したストアリクエストをより効率的に発行することができるため、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現することができる。
尚、ストアリクエストを主記憶部30へと発行する場合には、STwaitV45が規定の値となったストアリクエストを主記憶部30へと先に発行した後、同一の近接アドレスフラグコード47を有するストアリクエストを連続して発行するよう制御し、STwaitV45が規定の値となる前に発行するように制御してもよい。
また、ロードストアキューの制御方法は、まず、図3に示したフローチャートにおいて説明したように、ロードストアキュー10内のリクエストについて、そのアドレスが同一のローアドレス或いは同一のランクアドレスである場合には、同一の近接アドレスフラグコード47を有するリクエストが連続するようにリクエストの順序を並び替える。そして、図4に示したフローチャートにおいて説明したように、後続ストアリクエスト個数が所定の個数となった場合に、同一の近接アドレスフラグコード47を有するリクエストの中で、ロードリクエストとストアリクエストを分離して、主記憶部30へと発行するようにしてもよい。
実施の形態4.
実施の形態4では、ロードストアキューの制御方法は、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして更に、ロードストアキュー10内の全てのストアリクエストについて、先行するストアリクエストと後続ストアリクエストのアドレスを比較し、同一のアドレスを有するストアリクエストが存在する場合には、後続するストアリクエストのストアデータ48を先行するストアリクエストのストアデータ48にマージして1つのストアリクエストとするように制御する。
実施の形態4では、ロードストアキューの制御方法は、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして更に、ロードストアキュー10内の全てのストアリクエストについて、先行するストアリクエストと後続ストアリクエストのアドレスを比較し、同一のアドレスを有するストアリクエストが存在する場合には、後続するストアリクエストのストアデータ48を先行するストアリクエストのストアデータ48にマージして1つのストアリクエストとするように制御する。
このように、ロードストアキュー10内のストアリクエストを所定の条件が満足されるまで発行しない構成とすることで、より多くのストアリクエストをロードストアキュー10内に滞留させることができる。従って、ロードストアキュー10に対して発行されるストアリクエストのマージ確率をより向上させることができ、主記憶部30に対して更に効率的にストアリクエストを発行することができる。
実施の形態5.
実施の形態5では、ロードストアキューの制御方法は、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして更に、新規発行ロードリクエストのアドレスとロードストアキュー10内の全てのストアリクエストのアドレスとを比較し、同一のアドレスを有するストアリクエストが存在する場合には、ロードリクエストを主記憶部30に対して発行せずに、ロード結果として、ストアデータキュー12に保持されたストアデータ48の内容をリプライする。
実施の形態5では、ロードストアキューの制御方法は、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして更に、新規発行ロードリクエストのアドレスとロードストアキュー10内の全てのストアリクエストのアドレスとを比較し、同一のアドレスを有するストアリクエストが存在する場合には、ロードリクエストを主記憶部30に対して発行せずに、ロード結果として、ストアデータキュー12に保持されたストアデータ48の内容をリプライする。
このように、ストアリクエストの発行を遅延させることで、連続したロードリクエストと連続したストアリクエストを主記憶部30にリクエストすることができる。また、ロードストアキュー10内により多くのストアリクエストを滞留させることで、先行ストアリクエストと同一アドレスを有する後続ロードリクエストがロードストアキュー10内に存在する確率を向上させることができ、主記憶部30に対して更に効率的にリクエストを発行することができる。
実施の形態6.
実施の形態6では、ロードストアキューの制御方法は、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして更に、新規発行されたロードリクエストのアドレスとロードストアキュー10内の全てのロードリクエストのアドレスとを比較し、同一のアドレスを有するロードリクエストが存在する場合には、リクエストキュー11には1つのロードリクエストのみをキューイングするように制御する。
実施の形態6では、ロードストアキューの制御方法は、まず、図4に示したフローチャートにおいて説明したように、後続リクエスト個数が所定の個数となるまでの間、ロードストアキュー10内のストアリクエストを主記憶部30に対して発行せずに保持すると共に、そのストアリクエストの後続ロードリクエストの順序を先に並び替える。そして更に、新規発行されたロードリクエストのアドレスとロードストアキュー10内の全てのロードリクエストのアドレスとを比較し、同一のアドレスを有するロードリクエストが存在する場合には、リクエストキュー11には1つのロードリクエストのみをキューイングするように制御する。
このように、ストアリクエストの発行を遅延させることで、連続したロードリクエストと連続したストアリクエストを主記憶部30にリクエストすることができる。更に、同一のアドレスを有するロードリクエストを1つにすることで、主記憶部30に対してより効率的にリクエストを発行することができる。
実施の形態7.
実施の形態7では、ロードストアキューの制御システムは、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるか否かを判定し、主記憶部30へとリクエストを発行する際には、同一の処理単位に含まれるアドレスを有するリクエストをまとめて連続して発行するよう制御する。図5は、実施の形態7のロードストアキュー制御システムの機能ブロック図である。ロードストアキューの制御システム100は、主記憶部30に対して発行するリクエストを保持するロードストアキュー10と、ロードストアキュー10を制御する制御手段としての制御部110と、を備える。
実施の形態7では、ロードストアキューの制御システムは、ロードストアキュー10内のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるか否かを判定し、主記憶部30へとリクエストを発行する際には、同一の処理単位に含まれるアドレスを有するリクエストをまとめて連続して発行するよう制御する。図5は、実施の形態7のロードストアキュー制御システムの機能ブロック図である。ロードストアキューの制御システム100は、主記憶部30に対して発行するリクエストを保持するロードストアキュー10と、ロードストアキュー10を制御する制御手段としての制御部110と、を備える。
制御部110は、ロードストアキュー10内の第1のリクエストのアドレスと第2のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるアドレスである場合には、第1のリクエストを主記憶部30に発行する際に、その第2のリクエストを併せて主記憶部30へと発行する。制御部110は、アドレス判定部150と識別情報付与部160を備える。
主記憶部30におけるアドレスは予め複数の処理単位に分割され、制御部110は、アドレス判定部150により、第1のリクエストのアドレスと第2のリクエストのアドレスが同一の処理単位に含まれるアドレスであるか否かを判定する。そして、第1のリクエストのアドレスと第2のリクエストのアドレスが同一の処理単位に含まれるアドレスである場合には、識別情報付与部160により、処理単位のいずれかを示す識別情報のうち第1のリクエストと同一の識別情報をその第2のリクエストに付与する。そして、制御部110は、ロードストアキュー10内のリクエストを主記憶部30に発行する際に、ロードストアキュー10内のリクエストのうち同一の識別情報を有するリクエストを併せて主記憶部30へと発行する。
その他の実施の形態.
上述した実施の形態2乃至6においては、所定の条件が満足されるまでの間、ロードストアキュー10内にストアリクエストを保持するように制御する構成としたが、本発明はこれに限定されない。例えば、ロードストアキュー10内において、リクエストが主記憶部30に対して発行対象となった場合に、そのリクエストがストアリクエスト又はロードリクエストのいずれかであるかを判定し、当該判定の結果、リクエストがストアリクエストである場合には、ロードストアキュー10内に当該ストアリクエストを保持するように制御してもよい。また、上述した実施の形態においては、後続リクエストの個数に応じてストアリクエストを保持するように制御する構成としたが、ロードストアキュー10内に所定の時間ストアリクエストを保持するように制御してもよい。
上述した実施の形態2乃至6においては、所定の条件が満足されるまでの間、ロードストアキュー10内にストアリクエストを保持するように制御する構成としたが、本発明はこれに限定されない。例えば、ロードストアキュー10内において、リクエストが主記憶部30に対して発行対象となった場合に、そのリクエストがストアリクエスト又はロードリクエストのいずれかであるかを判定し、当該判定の結果、リクエストがストアリクエストである場合には、ロードストアキュー10内に当該ストアリクエストを保持するように制御してもよい。また、上述した実施の形態においては、後続リクエストの個数に応じてストアリクエストを保持するように制御する構成としたが、ロードストアキュー10内に所定の時間ストアリクエストを保持するように制御してもよい。
以上説明してきたように、本発明のロードストアキューの制御方法の一態様は、主記憶部30に対して発行するリクエストを保持するロードストアキュー10の制御方法であって、ロードストアキュー10内の第1のリクエストのアドレスと第2のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるアドレスである場合には、第1のリクエストを主記憶部30に発行する際に、その第2のリクエストを併せて主記憶部30へと発行するように制御する。
このように、ロードストアキュー10内のリクエストについて、そのアドレスが主記憶部30において同一の処理単位に含まれるアドレスである場合には、主記憶部30において同一の処理単位に応じて主記憶部30に対してリクエストを連続して発行することができる。このため、ロードストアキュー10から主記憶部30に対してリクエストを発行する際には、主記憶部30において同一の処理単位に含まれるアドレスであるリクエストの転送について、RASを1回のみアクティベートすれば良く、RASのアクティベート実行回数を削減することができ、主記憶部30に対して効率的にリクエストを発行することができるため、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現することができる。
また、本発明のロードストアキューの制御システムの一態様は、主記憶部30に対して発行するリクエストを保持するロードストアキュー10と、ロードストアキュー10を制御する制御部110と、を備えたロードストアキューの制御システム100であって、制御部110は、ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが主記憶部30において同一の処理単位に含まれるアドレスである場合には、第1のリクエストを主記憶部30に発行する際に、その第2のリクエストを併せて主記憶部30へと発行するように制御する。
これにより、ロードストアキュー10から主記憶部30に対してリクエストを発行する際には、主記憶部30において同一の処理単位に含まれるアドレスであるリクエストの転送について、RASを1回のみアクティベートすれば良く、RASのアクティベート実行回数を削減することができ、主記憶部30に対して効率的にリクエストを発行することができるため、アクセスレイテンシ、データ転送に関して性能改善及び低消費電力化を実現することができる。
尚、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
10 ロードストアキュー、
11 リクエストキュー、 12 ストアデータキュー、 13 リプライキュー、
14 同一アドレスリクエスト制御部、 15 MRSU、
20 キャッシュ、
30 主記憶部、
41 リクエスト種類情報(LD/ST)、 42 アドレス、 43 制御情報、
44 有効情報、 45 STwaitV、 46 STwait、
47 近接アドレスフラグコード、 48 ストアデータ、
49 LDリクエストリプライ情報、
100 ロードストアキューの制御システム、
110 制御部、 150 アドレス判定部、 160 識別情報付与部
11 リクエストキュー、 12 ストアデータキュー、 13 リプライキュー、
14 同一アドレスリクエスト制御部、 15 MRSU、
20 キャッシュ、
30 主記憶部、
41 リクエスト種類情報(LD/ST)、 42 アドレス、 43 制御情報、
44 有効情報、 45 STwaitV、 46 STwait、
47 近接アドレスフラグコード、 48 ストアデータ、
49 LDリクエストリプライ情報、
100 ロードストアキューの制御システム、
110 制御部、 150 アドレス判定部、 160 識別情報付与部
Claims (16)
- 主記憶部に対して発行するリクエストを保持するロードストアキューの制御方法であって、
前記ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが前記主記憶部において同一の処理単位に含まれるアドレスである場合には、前記第1のリクエストを前記主記憶部に発行する際に、前記第2のリクエストを併せて前記主記憶部へと発行する
ロードストアキューの制御方法。 - 前記処理単位のいずれかを示す識別情報のうち前記第1のリクエストと同一の識別情報を前記第2のリクエストに付与し、前記ロードストアキュー内のリクエストを前記主記憶部に発行する際に、前記ロードストアキュー内のリクエストのうち同一の前記識別情報を有するリクエストを併せて前記主記憶部へと発行する
ことを特徴とする請求項1記載のロードストアキューの制御方法。 - 前記第1のリクエストと前記第2のリクエストは共にロードリクエストか、又は、共にストアリクエストである
ことを特徴とする請求項1又は2記載のロードストアキューの制御方法。 - 前記処理単位は同一ロー単位であり、当該処理単位に含まれるアドレスが同一のローアドレスに含まれるアドレスである
ことを特徴とする請求項1乃至3いずれか1項記載のロードストアキューの制御方法。 - 前記処理単位は同一ランク単位であり、当該処理単位に含まれるアドレスが同一のランクアドレスに含まれるアドレスである
ことを特徴とする請求項1乃至4いずれか1項記載のロードストアキューの制御方法。 - 前記主記憶部をDRAMで構成する
ことを特徴とする請求項1乃至5いずれか1項記載のロードストアキューの制御方法。 - 前記主記憶部をシンクロナスDRAMで構成する
ことを特徴とする請求項1乃至5いずれか1項記載のロードストアキューの制御方法。 - 前記主記憶部をDRAM又はシンクロナスDRAMを用いたDIMM若しくはSIMMで構成する
ことを特徴とする請求項1乃至5いずれか1項記載のロードストアキューの制御方法。 - 主記憶部に対して発行するリクエストを保持するロードストアキューと、当該ロードストアキューを制御する制御部と、を備えたロードストアキューの制御システムであって、
前記制御部は、
前記ロードストアキュー内の第1のリクエストのアドレスと第2のリクエストのアドレスが前記主記憶部において同一の処理単位に含まれるアドレスである場合には、前記第1のリクエストを前記主記憶部に発行する際に、前記第2のリクエストを併せて前記主記憶部へと発行する
ロードストアキューの制御システム。 - 前記制御部は、
前記第1のリクエストのアドレスと前記第2のリクエストのアドレスが同一の前記処理単位に含まれるアドレスであるか否かを判定するアドレス判定手段と、
前記アドレス判定手段による判定の結果、前記第1のリクエストのアドレスと前記第2のリクエストのアドレスが同一の前記処理単位に含まれるアドレスである場合には、前記処理単位のいずれかを示す識別情報のうち前記第1のリクエストと同一の識別情報を前記第2のリクエストに付与する識別情報付与手段と、を備え、
前記ロードストアキュー内のリクエストを前記主記憶部に発行する際に、前記ロードストアキュー内のリクエストのうち同一の前記識別情報を有するリクエストを併せて前記主記憶部へと発行する
ことを特徴とする請求項9記載のロードストアキューの制御システム。 - 前記第1のリクエストと前記第2のリクエストは共にロードリクエストか、又は、共にストアリクエストである
ことを特徴とする請求項9又は10記載のロードストアキューの制御システム。 - 前記処理単位は同一ロー単位であり、当該処理単位に含まれるアドレスが同一のローアドレスに含まれるアドレスである
ことを特徴とする請求項9乃至11いずれか1項記載のロードストアキューの制御システム。 - 前記処理単位は同一ランク単位であり、当該処理単位に含まれるアドレスが同一のランクアドレスに含まれるアドレスである
ことを特徴とする請求項9乃至12いずれか1項記載のロードストアキューの制御システム。 - 前記主記憶部をDRAMで構成する
ことを特徴とする請求項9乃至13いずれか1項記載のロードストアキューの制御システム。 - 前記主記憶部をシンクロナスDRAMで構成する
ことを特徴とする請求項9乃至13いずれか1項記載のロードストアキューの制御システム。 - 前記主記憶部をDRAM又はシンクロナスDRAMを用いたDIMM若しくはSIMMで構成する
ことを特徴とする請求項9乃至13いずれか1項記載のロードストアキューの制御システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007338861A JP2009157887A (ja) | 2007-12-28 | 2007-12-28 | ロードストアキューの制御方法及びその制御システム |
US12/285,762 US20090172339A1 (en) | 2007-12-28 | 2008-10-14 | Apparatus and method for controlling queue |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007338861A JP2009157887A (ja) | 2007-12-28 | 2007-12-28 | ロードストアキューの制御方法及びその制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009157887A true JP2009157887A (ja) | 2009-07-16 |
Family
ID=40800047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007338861A Pending JP2009157887A (ja) | 2007-12-28 | 2007-12-28 | ロードストアキューの制御方法及びその制御システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090172339A1 (ja) |
JP (1) | JP2009157887A (ja) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048744A (ja) * | 2009-08-28 | 2011-03-10 | Nec Corp | メモリアクセス処理装置及び方法 |
JP2011070666A (ja) * | 2009-09-23 | 2011-04-07 | Samsung Electronics Co Ltd | 電子デバイスの性能改善のための電子デバイスコントローラ |
JP2012198621A (ja) * | 2011-03-18 | 2012-10-18 | Nec Corp | メモリアクセス制御装置、プロセッサ及びメモリアクセス制御方法 |
JP2014186618A (ja) * | 2013-03-25 | 2014-10-02 | Toshiba Corp | ロックトランザクションコントローラを備えた共有メモリ制御ユニット |
JP2018500667A (ja) * | 2014-11-28 | 2018-01-11 | 華為技術有限公司Huawei Technologies Co.,Ltd. | メモリ活性化方法および装置 |
US9934033B2 (en) | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013147820A1 (en) * | 2012-03-29 | 2013-10-03 | Intel Corporation | System and method for managing persistence with a multi-level memory hierarchy including non-volatile memory |
US20140201326A1 (en) | 2013-01-16 | 2014-07-17 | Marvell World Trade Ltd. | Interconnected ring network in a multi-processor system |
WO2014121818A1 (en) * | 2013-02-05 | 2014-08-14 | Telefonaktiebolaget L M Ericsson (Publ) | Apparatus and method for identifying events |
US20180188976A1 (en) * | 2016-12-30 | 2018-07-05 | Intel Corporation | Increasing read pending queue capacity to increase memory bandwidth |
US10522210B2 (en) * | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001222463A (ja) * | 2000-02-10 | 2001-08-17 | Hitachi Ltd | メモリ装置 |
US6564304B1 (en) * | 2000-09-01 | 2003-05-13 | Ati Technologies Inc. | Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching |
JP2004252985A (ja) * | 2003-02-19 | 2004-09-09 | Canon Inc | メモリ要求の動的並べ替え |
JP2005505854A (ja) * | 2001-10-12 | 2005-02-24 | ソニックス インコーポレイテッド | 構成可能なしきい値を使用して1つの資源への要求をスケジュールする方法及び装置 |
US20060248261A1 (en) * | 2005-04-18 | 2006-11-02 | Jacob Bruce L | System and method for performing multi-rank command scheduling in DDR SDRAM memory systems |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983350B1 (en) * | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US6938133B2 (en) * | 2001-09-28 | 2005-08-30 | Hewlett-Packard Development Company, L.P. | Memory latency and bandwidth optimizations |
US7469316B2 (en) * | 2003-02-10 | 2008-12-23 | Intel Corporation | Buffered writes and memory page control |
US7386658B2 (en) * | 2004-03-15 | 2008-06-10 | Intel Corporation | Memory post-write page closing apparatus and method |
-
2007
- 2007-12-28 JP JP2007338861A patent/JP2009157887A/ja active Pending
-
2008
- 2008-10-14 US US12/285,762 patent/US20090172339A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001222463A (ja) * | 2000-02-10 | 2001-08-17 | Hitachi Ltd | メモリ装置 |
US6564304B1 (en) * | 2000-09-01 | 2003-05-13 | Ati Technologies Inc. | Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching |
JP2005505854A (ja) * | 2001-10-12 | 2005-02-24 | ソニックス インコーポレイテッド | 構成可能なしきい値を使用して1つの資源への要求をスケジュールする方法及び装置 |
JP2004252985A (ja) * | 2003-02-19 | 2004-09-09 | Canon Inc | メモリ要求の動的並べ替え |
US20060248261A1 (en) * | 2005-04-18 | 2006-11-02 | Jacob Bruce L | System and method for performing multi-rank command scheduling in DDR SDRAM memory systems |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011048744A (ja) * | 2009-08-28 | 2011-03-10 | Nec Corp | メモリアクセス処理装置及び方法 |
JP2011070666A (ja) * | 2009-09-23 | 2011-04-07 | Samsung Electronics Co Ltd | 電子デバイスの性能改善のための電子デバイスコントローラ |
JP2012198621A (ja) * | 2011-03-18 | 2012-10-18 | Nec Corp | メモリアクセス制御装置、プロセッサ及びメモリアクセス制御方法 |
JP2014186618A (ja) * | 2013-03-25 | 2014-10-02 | Toshiba Corp | ロックトランザクションコントローラを備えた共有メモリ制御ユニット |
US10127955B2 (en) | 2014-11-28 | 2018-11-13 | Huawei Technologies Co., Ltd. | Memory activation method and apparatus, and memory controller |
JP2018500667A (ja) * | 2014-11-28 | 2018-01-11 | 華為技術有限公司Huawei Technologies Co.,Ltd. | メモリ活性化方法および装置 |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10564978B2 (en) | 2016-03-22 | 2020-02-18 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US10268518B2 (en) | 2016-05-11 | 2019-04-23 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US10255107B2 (en) | 2016-05-11 | 2019-04-09 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US10042770B2 (en) | 2016-05-11 | 2018-08-07 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US9934033B2 (en) | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US9940133B2 (en) | 2016-06-13 | 2018-04-10 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
Also Published As
Publication number | Publication date |
---|---|
US20090172339A1 (en) | 2009-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009157887A (ja) | ロードストアキューの制御方法及びその制御システム | |
JP3937365B2 (ja) | データ処理システムにおけるメモリリクエスト再順序付け法 | |
US8683125B2 (en) | Tier identification (TID) for tiered memory characteristics | |
US20150046642A1 (en) | Memory command scheduler and memory command scheduling method | |
US20050275658A1 (en) | Information processing apparatus with a cache memory and information processing method | |
US10152434B2 (en) | Efficient arbitration for memory accesses | |
US20030023806A1 (en) | Prioritized content addressable memory | |
KR20040033029A (ko) | 캐시 메모리 내 태그 액세스 및 데이터 액세스의 분리방법 및 장치 | |
US7461211B2 (en) | System, apparatus and method for generating nonsequential predictions to access a memory | |
US8601205B1 (en) | Dynamic random access memory controller | |
JP4569628B2 (ja) | ロードストアキューの制御方法及びその制御システム | |
KR102202575B1 (ko) | 메모리 관리 방법 및 장치 | |
CN109669881B (zh) | 一种基于Cache空间预约算法的计算方法 | |
JP2013175115A (ja) | ベクトル処理装置およびベクトル処理方法 | |
CN112799589B (zh) | 一种数据读取方法及装置 | |
US8495303B2 (en) | Processor and computer system with buffer memory | |
KR100947745B1 (ko) | 메모리로의 접근 요청을 재정렬하는 요청 재정렬 장치 및그 방법 | |
JP2006285727A (ja) | キャッシュメモリ装置 | |
US9037806B2 (en) | Reducing store operation busy times | |
EP3910484B1 (en) | Systems and methods for managing cache replacement | |
CN112631960B (zh) | 高速缓冲存储器的扩展方法 | |
EP2434409A1 (en) | Processor and method thereof | |
US20140095792A1 (en) | Cache control device and pipeline control method | |
JP2022168545A (ja) | メモリコントローラ、メモリコントローラの制御方法およびプログラム | |
US20140095795A1 (en) | Reducing penalties for cache accessing operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091222 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100413 |