JP2011034324A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2011034324A
JP2011034324A JP2009179627A JP2009179627A JP2011034324A JP 2011034324 A JP2011034324 A JP 2011034324A JP 2009179627 A JP2009179627 A JP 2009179627A JP 2009179627 A JP2009179627 A JP 2009179627A JP 2011034324 A JP2011034324 A JP 2011034324A
Authority
JP
Japan
Prior art keywords
access
bus
memory
page
memory access
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
JP2009179627A
Other languages
English (en)
Inventor
Wataru Ochiai
渉 落合
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2009179627A priority Critical patent/JP2011034324A/ja
Publication of JP2011034324A publication Critical patent/JP2011034324A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】アクセスパターンによらず、メモリアクセス性能を向上できるようにする。
【解決手段】複数のバスマスターと、前記複数のバスマスターからのアクセスを受け取り、DRAM700へのアクセスを行うメモリアクセス回路600と、前記複数のバスマスターとメモリアクセス回路600とを接続する共有バス400と、共有バス400において前記複数のバスマスターからのメモリアクセスを調停するアービタ500と、メモリアクセス回路600がアクセスするDRAM700とを有するメモリシステムであって、DRAM700のバンクごとにどのページがアクティブであるかの情報を備えたアクティブページテーブルを保持し、前記複数のバスマスターから出力されるアドレスと前記アクティブページテーブルの情報とに基づいて、アクティブなページへのアクセスをしているバスマスターを優先的に選択するバスマスター選択回路520を有する。
【選択図】図1

Description

本発明はメモリシステムに関し、特に、複数のバスマスターがメモリアクセスを行う際に用いて好適な技術に関する。
従来のメモリシステムでは、メモリアクセス回路が取り込んだアクセスの順番でメモリアクセスを行う。そのため、同一バンク内でアクティブになりページに対してアクセス対象となるページが切り替わるようなページミスが頻繁に発生し、ページのクローズ、オープンといったコマンドが必要となり、メモリアクセス性能が低下する。そこで、メモリアクセス回路にリオーダリング回路を付加することにより、ページミス回数を低減することが行われている。
特開2007−26365号公報
しかしながら従来のメモリシステムでは、アクセスパターンによってはリオーダリングの効果が得られず、ページミスによるペナルティが発生し、メモリアクセス性能が向上しないといった問題がある。
本発明は前述の問題点に鑑み、アクセスパターンによらず、メモリアクセス性能を向上できるようにすることを目的としている。
本発明のメモリシステムは、メモリアクセスを行う複数バスマスターと、前記複数バスマスターからのアクセスを受け取り、メモリへのアクセスを行うメモリアクセス手段と、前記複数バスマスターと前記メモリアクセス手段とを接続する共有バスと、前記共有バスにおいて前記複数バスマスターからのメモリアクセスを調停するアービタと、前記メモリアクセス手段がアクセスするメモリとから構成されるメモリシステムであって、前記メモリのバンクごとにどのページがアクティブであるかの情報を備えたアクティブページテーブルを保持する保持手段と、前記複数バスマスターから出力されるアドレスと前記アクティブページテーブルの情報とに基づいて、アクティブなページへのアクセスをしているバスマスターを優先的に選択し、前記選択したバスマスターのアクセスするページを前記アクティブページテーブルに通知するバスマスター選択手段とを有することを特徴とする。
本発明によれば、メモリアクセス回路がアクセスを取り込む際にページミスによるペナルティが発生しないようにアービタがメモリアクセスを行うバスマスターを選択するため、ページミスの発生回数が低減し、メモリアクセス性能を向上することができる。
本発明の実施形態のメモリシステムの構成例を示すブロック図である。 従来のメモリシステムの構成例を示すブロック図である。 メモリシステムにおけるメモリアクセスの波形を示す図である。 メモリシステムにおけるメモリアクセスの波形を示す図である。 アクティブページテーブルの一例を示す図である。 バスマスター選択回路の詳細な構成例を示すブロック図である。 バスマスターを決定する処理手順の一例を示すフローチャートである。
(第1の実施形態)
図2(a)は、複数バスマスターからメモリアクセスを行う従来のメモリシステムの構成例を示すブロック図である。
図2(a)において、1100、1200、1300はメモリアクセスを行うバスマスターである。1101、1201、1301はバスマスター1100、1200、1300が出力するメモリアクセスのリクエスト信号である。1102、1202、1302はバスマスター1100、1200、1300が出力するメモリアクセスのアドレス信号である。1400はバスマスター1100、1200、1300に接続された共有バスである。1401は共有バス1400が出力するメモリアクセスのリクエスト信号である。1402は共有バス1400が出力するメモリアクセスのアドレス信号である。
1500はバスマスター1100、1200、1300からのアクセスを調停し、選択するバスマスターを共有バス1400に知らせるアービタである。1501はアービタ1500が選択したバスマスターを示すバスマスター信号である。1600は共有バス1400から出力されるアクセスを取り込み、DRAMへのアクセスを行うメモリアクセス回路である。1610はメモリアクセス回路1600が取り込んだアクセスを複数保持するためのコマンドキューである。
1700はDRAM(Dynamic Random Access Memory)である。DRAM1700は通常、複数バンクから構成され、各バンクは複数のページに分割されている。DRAM1700にアクセスを発行する場合、該当ページにアクティブコマンドを発行した後にアクセスが実行可能となる。同一バンク内でアクティブになりページに対してアクセス対象となるページが切り替わる場合(以下、ページミス)、既にアクティブとなっているページを非アクティブ化(以下、クローズ)する。そして、アクセス対象のページをアクティブ化(以下、オープン)し、前記アクティブ化されたページに対するアクセスを実行する必要がある。
バスマスター1100、1200、1300がアクセスを発行すると、アービタ1500がアクセスを許可するバスマスターを決定し、共有バス1400に通知する。共有バス1400はアクセスを許可されたバスマスターからのアクセスを出力する。メモリアクセス回路1600は受信したアクセスをコマンドキュー1610に取り込む。メモリアクセス回路1600はコマンドキュー1610の先頭のアクセスをメモリコマンドに変換し、DRAM1700に発行する。
図2(b)は、前述した図2(a)のメモリシステムにおいて、メモリアクセス回路1600にリオーダリング回路1620を付加することでページミス回数を低減する従来のメモリシステムの構成例を示すブロック図である。図2(b)に示す例では、リオーダリング回路1620により、コマンドキュー1610内に保持された複数のアクセスの順番を変更することでページミスによるペナルティを低減させ、メモリアクセス性能が向上する。
図4(a)は、図2(a)に示すメモリシステムにおけるメモリアクセスの波形を示す図である。また、図4(b)は、図2(b)に示すメモリシステムにおけるメモリアクセスの波形を示す図である。図4では上から、クロック、バスマスター1100のアクセス、バスマスター1200のアクセス、バスマスター1300のアクセス、共有バス1400の選択アクセス、コマンドキュー1610の状態、メモリアクセス回路1600のメモリコマンドである。実際にDRAM1700にメモリコマンドを発行する際は各コマンドの間隔が規定されているが、説明を簡単にするためメモリコマンドの間隔は全て1サイクルとしている。
バスマスター1100はアクセスA、Bを発行し、バスマスター1200はアクセスC、Dを発行し、バスマスター1300はアクセスE、Fを発行する。アクセスA、C、Dはページ0へのアクセスであり、アクセスB、E、Fはページ1へのアクセスであるものとする。バスマスター1100、1200、1300は同一バンクにアクセスするものとする。バスのアービトレーション方式としては複数バスマスターからのアクセスを順に選択するラウンドロビン方式や複数バスマスターに優先順位を設け優先度の高いバスマスターからのアクセスを優先的に選択するプライオリティ方式が広く知られている。図4(a)、図4(b)では、アービタ1500はラウンドロビン方式を採用したものとする。よって、メモリアクセス回路1600にはアクセスA、C、E、B、D、Fの順にアクセスが取り込まれる。
図4(a)では、メモリアクセス回路1600に取り込まれたアクセスが取り込まれた順に処理されるため、アクセスAとアクセスC、アクセスEとアクセスB、アクセスBとアクセスDとの間にページの切り替わりが起き、メモリアクセス性能が低下している。それに対して図4(b)では、サイクル6において、ページミスが起きないようコマンドキュー1610のリオーダリングしている。これにより、図4(a)に比べてページミス回数が減り、メモリアクセス性能が向上している。
ところが、図2(b)のメモリシステムでは、図4(b)に示すようにページ切り替わりが2回起きている。アクセスDをアクセスCとアクセスEとの間に出せればページの切り替わりを1回に減らし、メモリアクセス性能を向上できる。しかしながら、図4(b)に示すように、アクセスDがコマンドキュー1610に取り込まれるときには、既にアクセスEがDRAM1700へ発行されているため、アクセスDがアクセスEよりも前にDRAM1700へ発行することができない。このように従来のメモリシステムでは、アクセスパターンによってはリオーダリングの効果が得られず、ページミスによるペナルティが発生し、メモリアクセス性能が向上しないといった問題がある。
このような問題点を解決するために、以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本実施形態のメモリシステムの構成例を示すブロック図である。
図1において、100、200、300はメモリアクセスを行うバスマスターである。101、201、301はバスマスター100、200、300が出力するメモリアクセスのリクエスト信号である。102、202、302はバスマスター100、200、300が出力するメモリアクセスのアドレス信号である。400はバスマスター100、200、300に接続された共有バスである。401は共有バス400が出力するメモリアクセスのリクエスト信号である。402は共有バス400が出力するメモリアクセスのアドレス信号である。
500はバスマスター100、200、300からのアクセスを調停し、選択するバスマスターを共有バス400に知らせるアービタである。501はアービタ500が選択したバスマスターを示すバスマスター信号である。510はDRAM700のバンクごとにどのページがオープンであるかの情報を保持するアクティブページテーブルである。例えばDRAM700が4バンク構成である場合、図5に示すように、4バンクのそれぞれに対してどのページがオープンであるかという情報を保持する。
511はアクティブページテーブル510から出力されるアクティブページ情報である。520はバスマスター100、200、300からのアクセスに応じてアクセスを許可するバスマスターを決定するバスマスター選択回路である。521はバスマスター選択回路520が選択したバスマスターのアクセスがどのバンクのどのページであるかを示すアクセスページ情報である。600は共有バス400から出力されるアクセスを取り込み、DRAM700へのアクセスを行うメモリアクセス回路である。700はDRAMである。
図6は、本実施形態におけるバスマスター選択回路520の詳細な構成例を示すブロック図である。
図6において、5210はページヒット判定回路であり、バスマスター100のリクエスト信号101とアドレス信号102とを監視する。そして、リクエスト信号101がアサートされるとアドレス信号102がDRAM700のどのバンク、ページへのアクセスかを判定する。ページヒット判定回路5210は、さらにアクティブページ情報511から前記アクセスがアクティブなページへのアクセスであるか否かを判定する。そして、判定結果はページヒット信号5211として出力される。
5220、5230もページヒット判定回路であり、それぞれ、バスマスター200、300からのリクエスト信号201、301、アドレス信号202、302、アクティブページ情報511からページヒットか否かを判定する。そして、それぞれページヒット信号5221、5231を出力する。5240はバスマスター決定回路であり、ページヒット信号5211、5221、5231から次に選択されるバスマスターを決定する。そして、決定したバスマスターを示すバスマスター信号501を出力する。5250はバスマスター決定回路5240で選択されたバスマスターのアクセスするページをアクティブページテーブル510に知らせるアクセスページ通知回路である。
図7は、バスマスター決定回路5240がバスマスターを決定する処理手順の一例を示すフローチャートである。
バスマスター決定回路5240は、単一バスマスターからリクエストを受けたか否かを判定する(ステップS801)。この判定の結果、リクエストを受けていない場合はそのまま処理を終了し、単一バスマスターからリクエストを受けた場合は、複数のバスマスターからのリクエストであるか否かを判定する(ステップS802)。この判定の結果、複数のバスマスターからのリクエストでない場合は、バスマスターを選択する(ステップS805)。
一方、複数のバスマスターからのリクエストである場合は、ページヒットするアクセスがあるか否かを判定する(ステップS803)。この判定の結果、ページヒットするアクセスがない場合は、特定の選択方法に応じてバスマスターを選択する(ステップS806)。なお、選択方法については、ラウンドロビン方式やプライオリティ方式、それ以外の方式でも構わない。
一方、ページヒットするアクセスがある場合は、ページヒットするアクセスが複数あるか否かを判定する(ステップS804)。この判定の結果、ページヒットするアクセスが1つの場合は、そのバスマスターを選択する(ステップS807)。一方、ページヒットするアクセスが複数ある場合は、ページヒットするアクセスを発行したバスマスターから特定の選択方法に応じてバスマスターを選択する(ステップS808)。なお、選択方法については、ラウンドロビン方式やプライオリティ方式、それ以外の方式でも構わない。本実施形態ではラウンドロビン方式を採用するものとする。
図3は、本実施形態のメモリシステムにおけるメモリアクセスの波形を示す図である。図3では上から順に、クロック、バスマスター100が発行するアクセス、バスマスター200が発行するアクセス、バスマスター300が発行するアクセス、共有バス400にて選択されたアクセス、メモリアクセス回路600が発行するメモリコマンドである。実際にDRAM700にメモリコマンドを発行する際は各コマンドの間隔が規定されているが、ここでは説明を簡単にするためメモリコマンドの間隔は全て1サイクルとしている。
バスマスター100はアクセスA、Bを発行し、バスマスター200はアクセスC、Dを発行し、バスマスター300はアクセスE、Fを発行する。なお、アクセスA、C、Dはページ0へのアクセスであり、アクセスB、E、Fはページ1へのアクセスであるものとする。バスマスター100、200、300は同一バンクにアクセスするものとする。アービタ500はアクセスA、C、Eからラウンドロビン方式でアクセスAを選択し、アクセスAがメモリアクセス回路600に取り込まれる。このとき、アクセスページ通知回路5250から出力されるアクセスページ情報521がページ0であるためアクティブページテーブル510のアクティブページ情報はページ0となる。そして、アービタ500はアクセスB、C、Eから唯一ページヒットであるアクセスCを選択し、共有バス400から出力される。
メモリアクセス回路600はページ0をオープンするコマンドを発行する。そして、メモリアクセス回路600はアクセスAのコマンドを発行する。さらに、共有バス400から出力されているアクセスCがメモリアクセス回路600に取り込まれ、メモリアクセス回路600はアクセスCのコマンドを発行する。アービタ500はアクセスB、D、から唯一ページヒットであるアクセスDを選択し、アクセスDが共有バス400から出力される。そして、共有バス400から出力されているアクセスCがメモリアクセス回路600に取り込まれ、メモリアクセス回路600はアクセスDのコマンドを発行する。
アービタ500はアクセスB、Eが共にページミスであるので、ラウンドロビン方式でアクセスBを選択し、アクセスBが共有バス400から出力される。そして、共有バス400から出力されているアクセスBがメモリアクセス回路600に取り込まれ、メモリアクセス回路600はページ0をクローズするコマンドを発行する。アービタ500は唯一リクエストされているアクセスEを選択し、アクセスEが共有バス400から出力される。
メモリアクセス回路600はページ1をオープンするコマンドを発行する。そして、メモリアクセス回路600はアクセスBのコマンドを発行する。さらに、共有バス400から出力されているアクセスEがメモリアクセス回路600に取り込まれ、メモリアクセス回路600はアクセスEのコマンドを発行する。アービタ500は唯一リクエストされているアクセスFを選択し、アクセスFが共有バス400から出力される。そして、共有バス400から出力されているアクセスFがメモリアクセス回路600に取り込まれ、メモリアクセス回路600はアクセスFのコマンドを発行する。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100、200、300 バスマスター、400 共有バス、500 アービタ、510 アクティブページテーブル、520 バスマスター選択回路、600 メモリアクセス回路、700 DRAM

Claims (1)

  1. メモリアクセスを行う複数のバスマスターと、前記複数のバスマスターからのアクセスを受け取り、メモリへのアクセスを行うメモリアクセス手段と、前記複数のバスマスターと前記メモリアクセス手段とを接続する共有バスと、前記共有バスにおいて前記複数のバスマスターからのメモリアクセスを調停するアービタと、前記メモリアクセス手段がアクセスするメモリとから構成されるメモリシステムであって、
    前記メモリのバンクごとにどのページがアクティブであるかの情報を備えたアクティブページテーブルを保持する保持手段と、
    前記複数のバスマスターから出力されるアドレスと前記アクティブページテーブルの情報とに基づいて、アクティブなページへのアクセスをしているバスマスターを優先的に選択し、前記選択したバスマスターのアクセスするページを前記アクティブページテーブルに通知するバスマスター選択手段とを有することを特徴とするメモリシステム。
JP2009179627A 2009-07-31 2009-07-31 メモリシステム Pending JP2011034324A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009179627A JP2011034324A (ja) 2009-07-31 2009-07-31 メモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009179627A JP2011034324A (ja) 2009-07-31 2009-07-31 メモリシステム

Publications (1)

Publication Number Publication Date
JP2011034324A true JP2011034324A (ja) 2011-02-17

Family

ID=43763336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009179627A Pending JP2011034324A (ja) 2009-07-31 2009-07-31 メモリシステム

Country Status (1)

Country Link
JP (1) JP2011034324A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225458A (ja) * 2014-05-27 2015-12-14 京セラドキュメントソリューションズ株式会社 情報処理装置および調停方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015225458A (ja) * 2014-05-27 2015-12-14 京セラドキュメントソリューションズ株式会社 情報処理装置および調停方法

Similar Documents

Publication Publication Date Title
US9343127B1 (en) Memory device having an adaptable number of open rows
US20070226422A1 (en) Multi-master system and data transfer system
US20070266196A1 (en) Information Processing Apparatus Having Multiple Processing Units Sharing Multiple Resources
US20100169578A1 (en) Cache tag memory
JP2002530731A (ja) 異常メモリアクセスまたは異なる時間のメモリアクセス実行の際のデータバス上のデータ衝突を検出するための方法および装置
JP2019525271A (ja) 高速メモリインタフェースのためのコマンドアービトレーション
US20090204771A1 (en) Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages
JP2002530743A (ja) ページタグレジスタを使用して、メモリデバイス内の物理ページの状態を追跡すること
CN108139994B (zh) 内存访问方法及内存控制器
JP2007334564A (ja) ユニファイドメモリシステム
JP2005339348A (ja) 半導体装置
US7636812B2 (en) Cache memory control method and cache memory control device
JP2019522257A (ja) 低電力メモリのスロットリング
JP2007102646A (ja) コンテキスト切替え装置
US5829010A (en) Apparatus and method to efficiently abort and restart a primary memory access
JP2011034324A (ja) メモリシステム
WO2010122607A1 (ja) 記憶制御装置及びその制御方法
JP5932261B2 (ja) メモリ制御装置、メモリ制御方法
JP5383159B2 (ja) バス中継装置及び制御方法
KR20050081498A (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
JP5966759B2 (ja) 演算処理装置および演算処理装置の制御方法
US9015423B2 (en) Reducing store operation busy times
JP2008009763A (ja) 情報処理装置及びバス制御方法
Zheng et al. Design of a dynamic memory access scheduler
JP3956698B2 (ja) メモリ制御装置