JP2009199135A - 主記憶装置及び主記憶装置のアドレス制御方法 - Google Patents

主記憶装置及び主記憶装置のアドレス制御方法 Download PDF

Info

Publication number
JP2009199135A
JP2009199135A JP2008037199A JP2008037199A JP2009199135A JP 2009199135 A JP2009199135 A JP 2009199135A JP 2008037199 A JP2008037199 A JP 2008037199A JP 2008037199 A JP2008037199 A JP 2008037199A JP 2009199135 A JP2009199135 A JP 2009199135A
Authority
JP
Japan
Prior art keywords
physical address
address
address generation
generation logic
storage device
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.)
Granted
Application number
JP2008037199A
Other languages
English (en)
Other versions
JP4992114B2 (ja
Inventor
Takanori Watanabe
崇紀 渡辺
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 Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2008037199A priority Critical patent/JP4992114B2/ja
Publication of JP2009199135A publication Critical patent/JP2009199135A/ja
Application granted granted Critical
Publication of JP4992114B2 publication Critical patent/JP4992114B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】主記憶装置を構成するRAMが低速RAMであっても、高速RAMであっても主記憶装置のスループットを高いものにする。
【解決手段】アドレスモードレジスタ3-1には、第1或いは第2の物理アドレス生成論理を選択する選択情報が設定されている。アドレス生成回路3-5は選択情報に従って、第1の物理アドレス生成論理(連続する論理アドレスを、RAMの先頭バンクから最終バンクを順次アクセスし、最終バンクをアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換する)或いは第2の物理アドレス生成論理(連続する論理アドレスを、RAMの先頭バンクから最終バンクまでを繰り返しアクセスし、最終バンク内の最終位置までアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換する)により、演算処理装置1から発行された論理アドレスを物理アドレスに変換する。
【選択図】図1

Description

本発明は、コンピュータシステムの主記憶装置に関し、特に、主記憶装置のスループットを向上させるアドレス制御技術に関する。
複数のRAMを備え、且つ、各RAMが複数のバンクに分割されている主記憶装置においては、一般的に、連続する論理アドレスを、RAMの先頭バンクから最終バンクまでを繰り返しアクセスし、最終バンク内の最終位置までアクセスしたら、別RAMの先頭バンクから最終バンクまでを繰り返しアクセスする物理アドレスに変換するという物理アドレス生成論理により、演算処理装置から発行された論理アドレスを物理アドレスに変換するようにしている。従って、例えば、RAM#1、#2を備えた主記憶装置においては、演算処理装置から連続する論理アドレスが発行された場合には、図12に示すように、RAM#1のBANK00〜BANK07が繰り返しアクセスされ、BANK07内の最終アドレスがアクセスされた後、RAM#2のBANK08〜BANK15が繰り返しアクセスされる。
一方、特許文献1には、コンピュータシステムのメモリに関し、RAMインタフェースが異なる(メモリコントローラーとRAM間の電気的・論理的インタフェースが異なる)RAM毎に、アドレス生成論理を切り替える技術が記載されている。
特開2004−213337号公報
RAM#1、#2がサイクルタイムが短い高速RAMの場合には、演算処理装置から連続する論理アドレスが発行された際に、図12に示すようにRAM#1のBANK00〜BANK07を繰り返しアクセスし、その後、RAM#2のBANK08〜BANK15を繰り返しアクセスするようにしても問題は生じないが、RAM#1、#2が低速RAMの場合には、主記憶装置のスループットが低下するという問題が生じる。即ち、RAM#1、#2が低速RAMの場合には、最終バンクBANK07、15をアクセスした後、先頭バンクBANK00、08をアクセスしようとするが、その時点では、BANK00、08の出力が確定していないため、BANK00、08の出力が確定するのを待たなければならず(バンクコンフリクト)、その分、主記憶装置のスループットが低下してしまう。
また、特許文献1には、コンピュータシステムのメモリに関し、RAMインタフェースが異なるRAM毎に、アドレス生成論理を切り替える技術は記載されているが、上記した課題、その解決手段については全く記載されていない。
〔発明の目的〕
そこで、本発明の目的は、主記憶装置が低速RAMによって構成されている場合であっても、スループットを大きくできるようにすることにある。
本発明にかかる第1の主記憶装置は、
複数のRAMと、メモリコントローラーとを備えた主記憶装置において、
前記複数のRAMがそれぞれ複数のバンクに分割され、且つ、
前記メモリコントローラーが、
連続する論理アドレスを、RAMの先頭バンクから最終バンクを順次アクセスし、該最終バンクをアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第1の物理アドレス生成論理により、演算処理装置から発行された論理アドレスを物理アドレスへ変換するアドレス生成回路を備えたことを特徴とする。
本発明にかかる第1の主記憶装置のアドレス制御方法は、
複数のRAMを備え、且つ前記複数のRAMがそれぞれ複数のバンクに分割された主記憶装置のアドレス制御方法であって、
アドレス生成回路が、連続する論理アドレスを、RAMの先頭バンクから最終バンクを順次アクセスし、該最終バンクをアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第1の物理アドレス生成論理により、演算処理装置から発行された論理アドレスを物理アドレスへ変換することを特徴とする。
本発明によれば、主記憶装置を構成するRAMが低速RAMであっても、主記憶装置のスループットを大きなものにすることにある。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
〔本発明の実施の形態〕
図1を参照すると、本実施の形態にかかるコンピュータシステムは、中央処理装置(CPU)1と、主記憶装置(MMU)2と、磁気ディスク装置などによって実現されるメモリ保存用ディスク装置5とから構成されている。
主記憶装置2は、メモリコントローラー3と、記憶部4とを備えている。
記憶部4は、複数のRAM4−1〜4−4から構成されており、各RAM4−1〜4−4は、それぞれ8バンク構成になっている。また、RAM4−1、4−2はメモリチャネル(メモリCH)番号#0のバスによりメモリコントローラー3と接続され、RAM4−3、4−4はメモリCH番号#1のバスによりメモリコントローラー3と接続されている。
メモリコントローラー3は、アドレスモードレジスタ3−1と、メモリアクセス制御回路3−2と、スループットカウンタ3−3と、ビジーカウンタ3−4と、アドレス生成回路3−5とから構成されている。
アドレスモードレジスタ3−1は、アドレス生成回路3−5の物理アドレス生成論理を切り替えるために使用するレジスタであり、第1或いは第2の物理アドレス生成論理A、Bを選択するための選択情報として、“0”あるいは“1”が格納される。アドレスモードレジスタ3−1の設定は、オペレーティングシステム(OS)やメモリアクセス制御部3−2によって行われる。
メモリアクセス制御部3−2は、演算処理装置1が発行する主記憶装置に対するアクセスリクエスト(書き込み、読み出し命令)に従って記憶部4を構成するRAMを制御するためのチップイネーブル信号やライト・リードイネーブル信号などを生成する他、RAMスペックに従い、RAMへの制御信号の送出タイミング間隔制御(ビジー制御)を行う。更に、メモリアクセス制御部3−2は、OSからカウンタ測定開始指示があった場合、スループットカウンタ3−3、ビジーカウンタ3−4のカウント動作を開始させ、OSからカウンタ読み出し指示があった場合、スループットカウンタ3−3、ビジーカウンタ3−4のカウント値をOSに渡す。更に、OSからアドレス割付け切り替え指示があった場合は、その内部に設けられているアドレス切り替え中フラグをセットする処理、記憶部4の内容をメモリ保存用ディスク装置5にコピー(退避)する処理、アドレスモードレジスタ3−1に設定する選択情報の値を物理アドレス切り替え指示によって指示された物理アドレス割付け種別に対応した値に変更する処理、メモリ保存用ディスク装置5に退避しておいたデータをOSから指示された物理アドレス割付け種別の割付方法で記憶部4に書き戻す処理、アドレス切り替え中フラグをリセットする処理を順次行う。
アドレス生成回路3−5は、演算処理装置1から発行されたアドレス(論理アドレス)を、記憶部4を構成するRAMを制御するための物理アドレスに変換する。その際、アドレスモードレジスタ3−1の値が“0”であれば、第1の物理アドレス生成論理Aを用いて論理アドレスを物理アドレスに変換し、“1”であれば第2の物理アドレス生成論理Bを用いて論理アドレスを物理アドレスに変換する。なお、第1、第2の物理アドレス生成論理A、Bについては後で詳しく説明する。
スループットカウンタ3−3は、任意の期間に主記憶装置2が処理したメモリアクセスリクエスト数をカウントするためのカウンタである。ビジーカウンタ3−4は、任意の期間に発生したビジーによるリクエスト発行待ち時間をカウントするためのカウンタであり、図2に示すように、ビジーの種類毎のカウンタ3−4a〜3−4cを備えている。カウンタ3−4aは、図3(a)に示すような同一バンク連続アクセス時の待ち時間(ビジー時間)をカウントし、カウンタ3−4bは図3(b)に示すような同一RAM内の別バンクへの連続アクセス時の待ち時間をカウントし、カウンタ3−4cは図3(c)に示すようなメモリCH内のデータバスに接続される異RAM間連続アクセス時の待ち時間をカウントする。なお、図3(c)に示す待ち時間(バスコンフリクト時間)は、一般的にRAM単体のスピードランク(サイクルタイム)とは無関係であり、バスの物理構成(配線長、バスに接続されるデバイス数)に依存する。
〔実施の形態の動作の説明〕
次に、本実施の形態の動作について詳細に説明する。なお、本実施の形態にかかるコンピュータシステムは、通常モード、ダイナミック割付けモード、自動最適化モードの3つのモードで動作可能になっている。
〔通常モード時の動作〕
先ず、通常モード時の動作について説明する。通常モード時で動作させる場合には、先ず、記憶部4を構成するRAM4−1〜4−4のスピード(サイクルタイム)に応じた値をアドレスモードレジスタ3−1に設定する。RAM4−1〜4−4が低速のRAMである場合には、“0”を設定し、高速のRAMである場合には“1”を設定する。この設定は、例えば、管理者がOSに対してアドレスモードレジスタ3−1に設定する値を指示し、この指示を受けたOSが指定された値をアドレスモードレジスタ3−1に設定する。その後、OSはプログラムの実行を指示する。
メモリアクセス制御部3−2は、プログラムの実行に伴って演算処理装置1が発行する主記憶装置2に対するアクセスリクエスト(書き込み、読み出し命令)に従って記憶部4を構成するRAMを制御するためのチップイネーブル信号やライト・リードイネーブル信号などを生成する。また、アドレス生成回路3−5は、演算処理装置1から発行されたアドレス(論理アドレス)を、記憶部4を構成するRAMを制御するための物理アドレスに変換する。その際、アドレス生成回路3−5は、図4のフローチャートに示すように、アドレスモードレジスタ3−1の値が“0”であれば(ステップS401がYES)、第1の物理アドレス生成論理Aを用いて物理アドレスを生成し(ステップS402)、“1”であれば(ステップS401がNO)、第2の物理アドレス生成論理Bを用いて物理アドレスを生成する(ステップS403)。
図5(A)、(B)は、それぞれ第1、第2の物理アドレス生成論理A、Bを用いて物理アドレスを生成した際のアドレス割付けを示した図である。第1の物理アドレス生成論理Aでは、図5(A)に示すように、論理アドレスの最下位ビット[第0ビット]を物理アドレスのメモリCH番号を示すビット位置に配置し、論理アドレスの次の3ビット[第1ビット〜第3ビット]を物理アドレスのRAM内バンク番号を示すビット位置に配置し、論理アドレスの次の1ビット[第4ビット]を物理アドレスのメモリCH内グループ(GRP)番号を示すビット位置に配置し、論理アドレスの残りのビット[第5ビット〜第(n−1)ビット]を物理アドレスのバンク内アドレスを示すビット位置に配置することにより、物理アドレスを生成する。このようなアドレス割付けを第1のアドレス割付けAと称す。また、第2の物理アドレス生成論理Bでは、図5(B)に示すように、論理アドレスの最下位ビット[第0ビット]を物理アドレスのメモリCH番号を示すビット位置に配置し、論理アドレスの次の3ビット[第1ビット〜第3ビット]を物理アドレスのRAM内バンク番号を示すビット位置に配置し、論理アドレスの最上位ビット[第(n−1)ビット]を物理アドレスのグループ番号を示すビット位置に配置し、論理アドレスの残りのビット[第4ビット〜第(n−2)ビット]を物理アドレスのバンク内アドレスを示すビット位置に配置することにより、物理アドレスを生成する。このようなアドレス割付けを第2のアドレス割付けBと称す。
従って、第1の物理アドレス生成論理Aを用いた場合に、例えば、論理アドレスオール“0”番地から連続アクセスすると、BANK00→BANK01→BANK02→…→BANK31→BANK00→BANK01→…の順でアクセスされることになる。これを1つのメモリCH内に限定すると、メモリCH#0では、BANK00→BANK02→…→BANK30→BANK00の順となり、RAMを跨ぐアクセスが行われたとき、即ちBANK14→BANK16のときにバスコンフリクトが生じる可能性がある。
一方、第2の物理アドレス生成論理Bを用いた場合には、論理アドレスオール“0”番地から連続アクセスすると、BANK00→BANK01→…→BANK14→BANK15の順のアクセスが複数回(グループ番号#0のRAMの全アドレスがアクセスされるまで)行われ、その後、BANK16→BANK17→…→BANK30→BANK31の順のアクセスが複数回行われる。これをメモリCH内に限定すると、メモリCH#0では、BANK00→BANK02→…→BANK14の順のアクセスが複数回行われた後、BANK16→BANK18→…→BANK30の順のアクセスが複数回行われる。この場合も、BANK14→BANK16のときにバスコンフリクトが発生する可能性があるが、第1の物理アドレス生成論理Aを用いた場合に比較して、RAMを跨ぐアクセスが行われる頻度が少なくなるので、バスコンフリクトが発生する危険性が少なくなる。
図6にビジー時間の一例を示す。一般的なDDR−SDRAM系のメモリデバイスは、データバス速度が数nsであるのに対し連続アクセス時間が数十nsであるため、RAM内部を複数バンクに分割しインタリーブすることでバンク内のビジー時間を隠蔽している。従って、ビジーサイクルの内訳はおおよそ図6に示すようになる。図6では、低速、高速RAMそれぞれについて、同一RAM内の同一バンクをライトアクセスする際のビジー時間、同一RAM内の同一バンクをリードアクセスする際のビジー時間、同一RAM内の異なるバンクを連続してリード或いはライトアクセスする際のビジー時間、同一RAM内の異なるバンクに対してリードアクセス及びライトアクセスを順次行う場合のビジー時間、同一RAM内の異なるバンクに対してライトアクセス及びリードアクセスを順次行う場合のビジー時間、異なるRAMを連続してリード或いはライトアクセスする場合のビジー時間、異なるRAMに対してリードアクセス及びライトアクセスを順次行う場合のビジー時間、異なるRAMに対してライトアクセス及びリードアクセスを順次行う場合のビジー時間を示している。
図6から分かるように、低速RAMの場合、メモリスループットのネックとなるのは、ランダムアクセス(数バイト〜数百バイト程度の小規模アクセス)時の同一バンクアクセスによるところが大きい。従って、低速RAMの場合は、連続アドレス中のインタリーブ数(バンク数)が多いほど、メモリスループットが良いことになる。例えば、1メモリアドレス当たりのデータ幅を4バイトとした場合、連続256バイト内のインタリーブ数は、図5(A)に示したアドレス割付けAの場合には32となり、同図(B)に示したアドレス割付けBの場合には16となるので、アドレス割付けAの方が好ましいことになる。
一方、高速RAM(例えば、FCRAM)の同一バンクアクセスのビジー時間は低速RAMに比較して大幅に短く、バスコンフリクト時間の影響が無視できなくなり、実行するプログラムのメモリアクセス特性によっては、バスコンフリクトによるメモリスループット低下の影響が顕著に現れるケースがある。
図7にバンクコンフリクト、バスコンフリクトの影響を簡易的に計算した結果を示す。図7(A)、(B)は、それぞれアドレス割付けA、Bについてのバンクコンフリクト、バスコンフリクトの影響を簡易計算した結果を示している。
アドレス割付けAの場合は、図5(A)に示すように、メモリCH当たりのバンク数は16であり、この16バンクには連続するアドレスが割り振られているので、主記憶アクセス命令発行レートを100%とすると、同一バンクを連続アクセスする確率は1/16、同一RAM内の異なるバンクをアクセスする確率は7/16、メモリCH内の他のRAMをアクセスする確率は8/16となる。上記した各場合の確率(a)と、上記した各場合の低速、高速RAMのビジー時間(b)、(b')を掛け合わせた値が、上記した各場合の低速、高速RAMのビジー時間の指標値(期待値)となる。ここで、高速RAM、低速RAMそれぞれについて、指標値の合計値を求めると、それぞれ「14.25」、「17.25」となる。この値が少ないほど、バンクコンフリクト、バスコンフリクトによるメモリスループットの低下が少ないことになる。
一方、アドレス割付けBの場合も、図5(B)に示すように、メモリCH当たりのバンク数は16であるが、連続するアドレスが割り当てられるのは8バンクである。従って、バスコンフリクトが発生するのは、主記憶装置の記憶容量をmバイトとした場合、m/2バイト境界を跨ぐ連続アクセス時のみとなる。例えば、図5(B)に示した1個のRAMの容量が1Gバイトであるとすると、1メモリCH当たりのメモリ容量は2Gバイトとなる。プログラム実行時の主記憶アクセスの局所性に着目した場合、局所的なアドレス範囲が数Kバイト〜数Mバイトのプログラムを想定すると、上記m/2バイト境界を跨ぐメモリアクセスによるバスコンフリクトの影響はほとんど無視できることが容易に推測できる。バスコンフリクトの影響を無視し、アドレス割付けAの場合と同様にして低速、高速RAMのビジー時間の指標値を求めると図7(B)に示すものとなる。図7(B)に示すように、アドレス割付けBの場合における、高速RAM、低速RAMの指標値の合計値は、それぞれ「13.5」、「19.5」となる。
図7(A)、(B)から分かるように、高速RAMの場合は、アドレス割付けBの方が指標値の合計値が小さくなり、低速RAMの場合は逆にアドレス割付けAの方が指標値の合計値が小さくなる。
従って、記憶部4を構成するRAM4−1〜4−4が低速RAMの場合には、アドレスモードレジスタ3−1に“0”を設定してアドレス割付けAが行われるようにし、高速RAMの場合にはアドレスモードレジスタ3−1に“1”を設定してアドレス割付けBが行われるようにすることにより、主記憶スループットの低下を最小限に留めることができる。
〔ダイナミック割付けモード時の動作〕
次に、ダイナミック割付けモード時の動作について、図8及び図9を参照して説明する。本モードは、実行する各プログラムのアドレス割付け種別(アドレス割付けA、或いはアドレス割付けBを示す)が予め決まっている場合に利用される。アドレス割付け種別は、例えば、プログラムのコンパイルオプション等で指定し、OSはこの指定に基づいて、必要に応じてアドレス割付け種別を切り替える。なお、各プログラムのアドレス割付け種別は、各プログラムの特性(アクセスするアドレスの規則性)に基づいて、主記憶スループットの低下が少なくなるものを選択する。
アドレス割付け種別が予め決まっているプログラムA,Bがあって、プログラムAの次にプログラムBを実行する場合、図8のフローチャートに示すように、OSは、現在実行中のプログラムAが終了すると、次に実行するプログラムBのアドレス割付け種別を調べ(ステップS801)、更に、アドレスモードレジスタ3−1を参照して現在のアドレス割付け種別を調べる(ステップS802)。その後、OSはステップS801、S802で調べたアドレス割付け種別を比較する(ステップS803)。
そして、両者が一致する場合(ステップS803がYES)は、直ちに次のプログラムBの実行を指示する(ステップS806)。これに対して、両者が一致しない場合(ステップS803がNO)は、メモリアクセス制御部3−2に対して、プログラムBのアドレス割付け種別を含んだアドレス割付け切り替え指示を出力し(ステップS804)、アドレス切り替え中フラグがリセットされるのを待つ(ステップS805)。そして、アドレス切り替え中フラグがリセットされると(ステップS805がYES)、プログラムBの実行を指示する(ステップS806)。
次に、図9を参照して、アドレス割付け切り替え指示が入力されたときの、メモリアクセス制御部3−2の動作を説明する。但し、図9は現在のアドレス割付け種別がアドレス割付けAであり、次に実行するプログラムBのアドレス割付け種別がアドレス割付けBである場合を示している。
OSは、プログラムAの実行が終了すると、プログラムBのアドレス割付け種別(アドレス割付けB)を含んだアドレス割付け切り替え指示をメモリアクセス制御部3−2に対して出力する。
これにより、メモリアクセス制御部3−2は、先ず、アドレス切り替え中フラグをセットし(図9のステップS901)、演算処理装置1に対して主記憶アクセスの禁止を伝える。次いで、メモリアクセス制御部3−2は、記憶部4のデータをメモリ保存用ディスク装置5にコピーし(ステップS902)、コピーが終了した時点でアドレスモードレジスタ3−1の値をアドレス割付けBに対応する値“1”に更新する(ステップS903)。その後、メモリアクセス制御部3−2は、アドレス割付けBで、メモリ保存用ディスク装置5の内容を記憶部4に書き戻す(ステップS904)。この時点で、記憶部4のデータは、アドレス割付けBに対応したものとなる。アドレス変換は、主記憶装置2内部に閉じているため、演算処理装置1−主記憶装置2間のアドレス読み替えは不要である。その後、メモリアクセス制御部3−2は、アドレス切り替え中フラグをリセットする(ステップS905)。これにより、OSはプログラムBの実行を指示する。
〔自動最適化モード時の動作〕
次に、自動最適化モード時の動作について、図10及び図11を参照して説明する。
OSは、新たなプログラムの実行を指示する場合には、先ず、アドレスモードレジスタ3−1を参照して現在のアドレス割付け種別を調べる(図10のステップS1001)。今、例えばアドレス割付け種別がアドレス割付けAであったとする。その後、OSはメモリアクセス制御部3−2に対してカウンタ測定開始指示を出力すると共にプログラム実行指示を出力する(ステップS1002、S1003)。なお、ステップS1003では、実行対象プログラムの代わりに、ユーザが用意している上記実行対象プログラムに対するテストプログラム(例えば、実行プログラムのデータ配列を小さくしたプログラム)の実行を指示するようにしても良い。
メモリアクセス制御部3−2は、カウンタ測定開始指示が入力されると、図11に示すように、スループットカウンタ3−3及びビジーカウンタ3−4に対するカウンタリセット信号を出力した後、カウンタイネーブル信号を出力する。これにより、スループットカウンタ3−3は、主記憶装置2が処理するメモリアクセスリクエスト数のカウントを開始し、スループットカウンタ3−4は、リクエスト発行待ち時間のカウントを開始する。
一方、OSは、プログラム実行指示を出力してから所定時間Tが経過すると、プログラムの停止を指示すると共に、メモリアクセス制御部3−2に対してカウンタ読み出し指示を出力する(ステップS1004)。なお、テストプログラムを実行するようにした場合は、テストプログラムが終了してからカウンタ読み出し指示を出力する。
これにより、メモリアクセス制御部3−2は、カウンタイネーブル信号を“0”とし、スループットカウンタ3−3及びビジーカウンタ3−4のカウント値をOSに伝える。OSは、アドレス割付けAのときの両カウンタのカウント値を保持する(ステップS1005)。なお、ビジーカウンタ3−4については、各カウンタ3−4a〜3−4cのカウント値の合計値を保持する。以下では、この合計値をビジーカウンタ3−4の合計値という。
その後、OSは、アドレス割付けA、Bの内、アドレス割付けAでしかスループット、リクエスト発行待ち時間を測定していないので(ステップS1006がNO)、アドレス割付け種別をアドレス割付けBに変更するために、メモリアクセス制御部3−2に対してアドレス割付け切り替え指示を出力する(ステップS1007)。これにより、メモリアクセス制御部3−2では、前述したステップS901〜S905と同様の処理を行う(図11のステップS1101〜1105)。
OSは、アドレス切り替え中フラグがリセットされると、再び、前述したステップS1002〜S1005の処理を行い、アドレス割付けBのときの両カウンタのカウント値を保持する。
その後、OSは、アドレス割付けがAのときのスループットカウンタ3−3、ビジーカウンタ3−4のカウント値と、アドレス割付けがBのときのスループットカウンタ3−3、ビジーカウンタ3−4のカウント値と、予め定められている判定基準とに基づいて、アドレス割付けA、Bの内のどちらを使用するか決定する(ステップS1009)。ここで、判定基準としては、次のようなものを使用することができる。スループットカウンタ3−3のカウント値は、スループットが大きいほど大きくなり、ビジーカウンタ3−4のカウント値はスループットが大きいほど小さくなる。従って、例えば、アドレス割付けA、Bの内、スループットカウンタ3−3のカウント値が大きくなった方を使用するという判定基準を採用することができる。また、アドレス割付けA、Bの内、ビジーカウンタ3−4のカウント値が小さくなった方を使用するという判定基準を採用することもできる。また、アドレス割付けA、Bの内、スループットカウンタ3−3のカウント値とビジーカウンタ3−4のカウント値との比率(スループットカウンタ3−3のカウント値/ビジーカウンタ3−4のカウント値)が大きい方を使用するという判定基準を採用することもできる。
そして、ステップS1009で決定したアドレス割付け種別と現在のアドレス割付け種別が同じ場合(S1010がYES)は、直ちにプログラム実行指示を出力する(S1013)。これに対して、決定したアドレス割付け種別と現在のアドレス割付け種別とが異なる場合(ステップS1010がNO)は、アドレス割付け種別を変更するために、メモリアクセス制御部3−2に対してアドレス割付け切り替え指示を出力し(ステップS1011)、アドレス切り替え中フラグがリセットされるのを待って(S1012がYES)、プログラム起動指示を出力する(ステップS1013)。
〔実施の形態の効果〕
本実施の形態によれば、主記憶装置2を構成するRAM4−1〜4−4が低速RAMであっても、主記憶装置2のスループットを大きなものにすることができる。その理由は、連続する論理アドレスを、RAMの先頭バンクから最終バンクを順次アクセスし、上記最終バンクをアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第1の物理アドレス生成論理により、演算処理装置1から発行された論理アドレスを物理アドレスへ変換するアドレス生成回路3−5を備えているからである。
また、本実施の形態によれば、主記憶装置2を構成するRAM4−1〜4−4が低速RAMであっても高速RAMであっても、主記憶装置1のスループットを大きなものにすることができる。その理由は、アドレスモードレジスタ3−1に設定されている値に基づいて、第1あるいは第2の物理アドレス生成論理により論理アドレスを物理アドレスに変換するアドレス生成回路を備えているからである。
更に、本実施の形態によれば、実行するプログラムの特性(主記憶アクセスアドレス特性)に応じて第1あるいは第2の物理アドレス生成論理を使用するようにしているので、実行するプログラム毎にスループットを最適なものにすることができるという効果もある。
本発明は、主記憶装置のアドレス制御に適用すると好適である。
本発明の実施の形態のブロック図である。 ビジーカウンタ3−4の構成例を示すブロック図である。 ビジー種別を説明するための図である。 アドレス生成回路3−5の処理例を示すフローチャートである。 物理アドレス生成論理の違いによるアドレス割付けの違いを示した図である。 ビジー時間の一例を示す図である。 ビジー時間の簡易計算結果を示す図である。 ダイナミック割付けモード時のOSの処理例を示すフローチャートである。 ダイナミック割付けモード時の動作を説明するための図である。 自動最適化モード時のOSの処理例を示すフローチャートである。 自動最適化モード時の動作を説明するための図である。 従来技術を説明するための図である。
符号の説明
1…演算処理装置
2…主記憶装置
3…メモリコントローラー
3−1…アドレスモードレジスタ
3−2…メモリアクセス制御部
3−3…スループットカウンタ
3−4…ビジーカウンタ
3−5…アドレス生成回路
4−1〜4−4…RAM
5…メモリ保存用ディスク装置

Claims (10)

  1. 複数のRAMと、メモリコントローラーとを備えた主記憶装置において、
    前記複数のRAMがそれぞれ複数のバンクに分割され、且つ、
    前記メモリコントローラーが、
    連続する論理アドレスを、RAMの先頭バンクから最終バンクを順次アクセスし、該最終バンクをアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第1の物理アドレス生成論理により、演算処理装置から発行された論理アドレスを物理アドレスへ変換するアドレス生成回路を備えたことを特徴とする主記憶装置。
  2. 請求項1記載の主記憶装置において、
    第1の物理アドレス生成論理あるいは第2の物理アドレス生成論理を選択する選択情報が設定されるアドレスモードレジスタを備え、且つ、
    前記アドレス生成回路が、前記選択情報によって第1の物理アドレス生成論理が選択されている場合は、前記演算処理装置から発行された論理アドレスを前記第1の物理アドレス生成論理により物理アドレスへ変換し、前記選択情報によって第2の物理アドレス生成論理が選択されている場合は、連続する論理アドレスを、RAMの先頭バンクから最終バンクまでを繰り返しアクセスし、該最終バンク内の最終位置までアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第2の物理アドレス生成論理により、前記演算処理装置から発行された論理アドレスを物理アドレスに変換することを特徴とする主記憶装置。
  3. 請求項2記載の主記憶装置において、
    実行するプログラム毎に、そのプログラムを実行する際に使用する物理アドレス生成論理を、前記第1或いは第2の物理アドレス生成論理の内の何れにするのかを予め定めておき、且つ、
    プログラムの実行開始時に、そのプログラムについて予め定められている物理アドレス生成論理を選択する選択情報を前記アドレスモードレジスタに設定する制御手段を備えたことを特徴とする主記憶装置。
  4. 請求項2記載の主記憶装置において、
    前記アドレス生成回路の物理アドレス生成論理を前記第1の物理アドレス生成論理にしてプログラムを実行したときの主記憶スループットと、前記アドレス生成回路の物理アドレス生成論理を前記第2の物理アドレス生成論理にしてプログラムを実行したときの主記憶スループットとを比較し、主記憶スループットが高い方の物理アドレス生成論理を選択する選択情報を前記アドレスモードレジスタに設定する制御手段を備えたことを特徴とする主記憶装置。
  5. 請求項3または4記載の主記憶装置において、
    メモリ保存用ディスク装置を備え、
    前記制御手段が、前記アドレスモードレジスタに選択情報を設定する前に前記各RAMに記憶されているデータを前記メモリ保存用ディスク装置に退避させ、前記選択情報を設定した後、該設定した選択情報によって示される物理アドレス生成論理を用いて前記メモリ保存用ディスク装置に退避させておいたデータを前記各RAMに書き戻すことを特徴とする主記憶装置。
  6. 複数のRAMを備え、且つ前記複数のRAMがそれぞれ複数のバンクに分割された主記憶装置のアドレス制御方法であって、
    アドレス生成回路が、連続する論理アドレスを、RAMの先頭バンクから最終バンクを順次アクセスし、該最終バンクをアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第1の物理アドレス生成論理により、演算処理装置から発行された論理アドレスを物理アドレスへ変換することを特徴とする主記憶装置のアドレス制御方法。
  7. 請求項6記載の主記憶装置のアドレス制御方法において、
    第1の物理アドレス生成論理あるいは第2の物理アドレス生成論理を選択する選択情報が設定されるアドレスモードレジスタを設け、且つ、
    前記アドレス生成回路が、前記選択情報によって第1の物理アドレス生成論理が選択されている場合は、前記演算処理装置から発行された論理アドレスを前記第1の物理アドレス生成論理により物理アドレスへ変換し、前記選択情報によって第2の物理アドレス生成論理が選択されている場合は、連続する論理アドレスを、RAMの先頭バンクから最終バンクまでを繰り返しアクセスし、該最終バンク内の最終位置までアクセスした後、別RAMの先頭バンクをアクセスする物理アドレスに変換するという第2の物理アドレス生成論理により、前記演算処理装置から発行された論理アドレスを物理アドレスに変換することを特徴とする主記憶装置のアドレス制御方法。
  8. 請求項7記載の主記憶装置のアドレス制御方法において、
    実行するプログラム毎に、そのプログラムを実行する際に使用する物理アドレス生成論理を、前記第1或いは前記第2の物理アドレス生成論理の内の何れにするのかを予め定めておき、且つ、
    制御手段が、プログラムの実行開始時に、そのプログラムについて予め定められている物理アドレス生成論理を選択する選択情報を前記アドレスモードレジスタに設定することを特徴とする主記憶装置のアドレス制御方法。
  9. 請求項7記載の主記憶装置のアドレス制御方法において、
    制御手段が、前記アドレス生成回路の物理アドレス生成論理を前記第1の物理アドレス生成論理にしてプログラムを実行したときの主記憶スループットと、前記アドレス生成回路の物理アドレス生成論理を前記第2の物理アドレス生成論理にしてプログラムを実行したときの主記憶スループットとを比較し、主記憶スループットが高い方の物理アドレス生成論理を選択する選択情報を前記アドレスモードレジスタに設定することを特徴とする主記憶装置のアドレス制御方法。
  10. 請求項8または9記載の主記憶装置のアドレス制御方法において、
    メモリ保存用ディスク装置を設け、
    前記制御手段が、前記アドレスモードレジスタに選択情報を設定する前に前記各RAMに記憶されているデータを前記メモリ保存用ディスク装置に退避させ、前記選択情報を設定した後、該設定した選択情報によって示される物理アドレス生成論理を用いて前記メモリ保存用ディスク装置に退避させておいたデータを前記各RAMに書き戻すことを特徴とする主記憶装置のアドレス制御方法。
JP2008037199A 2008-02-19 2008-02-19 主記憶装置及び主記憶装置のアドレス制御方法 Active JP4992114B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008037199A JP4992114B2 (ja) 2008-02-19 2008-02-19 主記憶装置及び主記憶装置のアドレス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008037199A JP4992114B2 (ja) 2008-02-19 2008-02-19 主記憶装置及び主記憶装置のアドレス制御方法

Publications (2)

Publication Number Publication Date
JP2009199135A true JP2009199135A (ja) 2009-09-03
JP4992114B2 JP4992114B2 (ja) 2012-08-08

Family

ID=41142597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008037199A Active JP4992114B2 (ja) 2008-02-19 2008-02-19 主記憶装置及び主記憶装置のアドレス制御方法

Country Status (1)

Country Link
JP (1) JP4992114B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014068760A1 (ja) * 2012-11-02 2014-05-08 Necディスプレイソリューションズ株式会社 電子機器およびデバイス制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210092460A (ko) 2020-01-16 2021-07-26 삼성전자주식회사 복수의 어드레스 맵핑 테이블들을 저장하는 메모리 컨트롤러, 시스템 온 칩, 및 전자 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5781659A (en) * 1980-11-10 1982-05-21 Nec Corp Storage controller
JP2004102633A (ja) * 2002-09-09 2004-04-02 Sony Corp 演算システム
JP2004518343A (ja) * 2001-01-12 2004-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5781659A (en) * 1980-11-10 1982-05-21 Nec Corp Storage controller
JP2004518343A (ja) * 2001-01-12 2004-06-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリアドレス変換のための装置及び方法並びにそのような装置を含む画像処理装置
JP2004102633A (ja) * 2002-09-09 2004-04-02 Sony Corp 演算システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014068760A1 (ja) * 2012-11-02 2014-05-08 Necディスプレイソリューションズ株式会社 電子機器およびデバイス制御方法

Also Published As

Publication number Publication date
JP4992114B2 (ja) 2012-08-08

Similar Documents

Publication Publication Date Title
KR102456085B1 (ko) 로우 버퍼 충돌을 감소시키기 위한 동적 메모리 재매핑
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
JP5344411B2 (ja) シリアルインターフェースメモリの同時読み出し及び書き込みメモリ動作
JP2703668B2 (ja) データ転送制御装置および磁気ディスク制御装置
US10203878B2 (en) Near memory accelerator
JP5947302B2 (ja) 複数のメモリチャネルを有するコンピューティングシステムにおけるメモリバッファの割り当て
JP6069031B2 (ja) 計算機及びメモリ管理方法
KR20150017526A (ko) 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법
US6615326B1 (en) Methods and structure for sequencing of activation commands in a high-performance DDR SDRAM memory controller
JP6146128B2 (ja) データ処理装置
CN110447075B (zh) 多内核管芯上存储器微控制器
CN106802870B (zh) 一种高效的嵌入式系统芯片Nor-Flash控制器及控制方法
WO2009057955A2 (en) Apparatus for controlling nand flash memory
JP2011060162A (ja) メモリ制御装置
WO2023125016A1 (zh) 平面编程方法及其闪存设备
CN111796759A (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
CN114489475B (zh) 分布式存储系统及其数据存储方法
KR102570454B1 (ko) 반도체 메모리 장치 및 그의 동작 방법
WO2011048400A1 (en) Memory interface compression
JP4992114B2 (ja) 主記憶装置及び主記憶装置のアドレス制御方法
JPH11224221A (ja) メモリ制御装置および方法
KR20060097314A (ko) 버스 연결 방법 및 장치
JP7500991B2 (ja) ストレージ制御装置及びストレージ制御プログラム
JP6332756B2 (ja) データ処理方法、装置、およびシステム
JP2015191604A (ja) 制御装置、制御プログラム、および制御方法

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090805

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

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

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4992114

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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