JP2005128963A - 記憶制御装置及びdma転送が可能な制御システム - Google Patents

記憶制御装置及びdma転送が可能な制御システム Download PDF

Info

Publication number
JP2005128963A
JP2005128963A JP2003366460A JP2003366460A JP2005128963A JP 2005128963 A JP2005128963 A JP 2005128963A JP 2003366460 A JP2003366460 A JP 2003366460A JP 2003366460 A JP2003366460 A JP 2003366460A JP 2005128963 A JP2005128963 A JP 2005128963A
Authority
JP
Japan
Prior art keywords
address
host bus
cpu
bus
system 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.)
Pending
Application number
JP2003366460A
Other languages
English (en)
Inventor
Yumi Sato
藤 由 美 佐
Fumio Sudo
藤 文 夫 須
Yasumasa Nakada
田 恭 正 中
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.)
Toshiba Corp
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Corp
Toshiba Information Systems Japan Corp
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 Toshiba Corp, Toshiba Information Systems Japan Corp filed Critical Toshiba Corp
Priority to JP2003366460A priority Critical patent/JP2005128963A/ja
Priority to US10/800,349 priority patent/US20050091458A1/en
Publication of JP2005128963A publication Critical patent/JP2005128963A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

【課題】 DMA転送においてホストバスの使用率を低減し、処理効率を向上させることが可能な記憶制御装置を提供する。
【解決手段】 IPからシステムメモリ231へのDMA転送を制御する記憶制御装置であって、周辺バス102又はホストバス101から与えられたアドレスが、システムメモリ231において自己が管理しているメモリ領域か否かの判定をアドレスマップ判定部112が行い、TLB情報保持部117が保持しているCPUのキャッシュ可能な領域を示すアドレス情報に基づいて、当該アドレスがキャッシュ可能な領域か否かの判定をアドレス判定部116が行い、アドレスをCPUに通知すべき場合に、ホストバス101を介してこの通知をスヌープアドレス制御部115が行うことで、ホストバス使用率を低減させる。
【選択図】 図1

Description

本発明は記憶制御装置及びにDMA(Direct Memory Access)転送が可能な制御システムに係わり、特に複数のバスを有するものに関する。
図10に、従来のDMA転送が可能な制御システムとしてのシステムオンチップ(以下、SoCという)におけるバスの構成を示す。
このSoC200上におけるバスは、制御部202とキャッシュ203とを有するCPU(Central Processing Unit)201、記憶制御装置222、任意の数のIP(Intellectual Property)211が接続された高速なホストバス101と、複数のIP212〜214が接続された低速な周辺バス102とに分離されている。
ここで、IP211〜214は特定の制御機能を有する各種コントローラであり、例えば割り込み処理に関するコントローラ、外部インタフェースに関するコントローラ等が存在する。
また、ホストバス101と周辺バス102とは、バスブリッジ(あるいはバスモジュール)221によって接続されており、このバスブリッジ221内のバッファ(FIFO等)を介すことにより、バス101と102間のデータ転送を可能にしている。
また、SoC200外にはRAM等から成るシステムメモリ231が設けられている。このシステムメモリ231とSoC200との間のデータ転送の殆どは、CPU201とシステムメモリ231との間で行われる。そこで、システムメモリ231を制御する記憶制御装置(メモリコントローラ、MEMC)222をホストバス101に接続配置することにより、CPU201とシステムメモリ231間のデータ転送の高速化が図られている。
ここで、システムメモリ231には、常にノンキャッシャブル(キャッシュ不能)な領域231a、アドレス変換テーブルの制御情報によってキャッシャブル(キャッシュ可能)又はノンキャッシャブルが決定される領域231b、常にキャッシャブルな領域231c、アドレス変換テーブル231dが含まれる。また、アドレス変換テーブル231dの一部が、後述するように、論理アドレスから物理アドレスに変換するために必要なデータを格納するバッファに相当するTLB(Transfer Look-aside Buffer)に格納されている。
CPU201の処理では仮想アドレスが用いられ、ホストバス101へのアクセスでは物理アドレスが使用される。そこで、CPU201がシステムメモリ231にアクセスする場合には、仮想アドレスから物理アドレスヘの変換が必要となる。システムメモリ231へのアクセスの度に、システムメモリ231上の変換テーブル231dを参照すると処理速度の低下につながるので、変換テーブル231dの一部をCPU201内部に設けたTLBに持たせている。
TLBの構造と、物理アドレスヘの変換動作について説明する。
図11に、アドレス変換テーブルの一例を示す。
コンテキストID(プロセスID)と仮想ページ番号(VPN:Virtual Page Number)からインデックスを生成する。
例えば、コンテキストIDごとに、OS(Operating System)がメモリ上の領域を割り付け、この情報をOSが管理する。
その領域内のアドレスを仮想ページ番号で決めるなどの方法が採られる。
ここには、仮想ページ番号に対応する物理ページ番号(PPN:Physical Page Number)及び制御情報が格納される。
生成されたインデックスによって、仮想ページ番号に対応する物理ページ番号及び制御情報が決定される。キャッシャブルであるか否かは、この制御情報に基づいて判定される。
生成された物理ページ番号に仮想ページ番号のオフセットを物理ページ番号と上位ビット、仮想アドレスのオフセットを下位ビットと見なして、2つのビットの並びを連接することによって、物理アドレスが生成される。
次に、図12にTLBの構成の一例を示す。
TLBによって、VPN(Virtual Page Number;仮想ページ番号)がPPN(Physical Page Number;物理ページ番号)に変換される。ここで、対応する制御情報には、キャッシャブルかノンキャッシャブルかを示す情報も含まれている。
ところで、ライトスルー方式では、CPU201がシステムメモリ231にデータを書き込む場合、キャッシュと同時にシステムメモリ231の更新が行われてキャッシュのコヒーレンシが維持される。
しかし、CPU201を介すことなくIP211〜214から直接システムメモリ231へのアクセス、即ちDMA転送が行われる場合、IP211〜214はシステムメモリ231にのみデータを書き込む。このため、CPU201内のキャッシュとシステムメモリ231との間でコヒーレンシが崩れるおそれがある。
そこで、CPU201はスヌープ、即ちバス上のトランザクションを監視し、キャッシュを行っているアドレスに書き込みが行われると、キャッシュ内の対応するデータを無効化する処理を行うことにより、キャッシュコヒーレンシを維持していた。
以下、従来の記憶制御装置を開示する文献名を記載する。
国際公開第97/34228号公報 特許公報第29384号公報 特開平5−282197号公報 特開2001−4324号公報 特開平11−85682号公報
しかし、従来の装置には、ホストバス101の使用率に関して次のような問題があった。
従来の記憶制御装置222では、与えられたアドレスがシステムメモリ231内の領域か否かの判断は可能であったが、以下のようなアドレスマップの状態を判断することはできなかった。
(1) 常にキャッシャブルであるか
(2) 常にノンキャッシャブルであるか
(3) ページテーブル又はTLB定義によるものであるか
このため、周辺バス102上のIP212〜214からシステムメモリ231へのDMA転送を行う場合、キャッシュコヒーレンシを維持するべくスヌープを行うためには、その転送先アドレスがキャッシュ領域か否かに関わらず、ホストバス101を通じて行う必要があり、その結果ホストバス11の使用率増加を招いていた。
さらに、低速な周辺バス102上のIP212〜214から高速なホストバス101上の記憶制御装置222へのDMA転送においては、ホストバス101より周辺バス102の方が転送速度が遅いため、ホストバス101上の転送が制約を受けることも、ホストバス21の使用率増加の一因となっていた。
このように、従来は複数のバスを有するシステムにおいて、低速な周辺バスに接続されたIPからシステムメモリへのDMA転送が、CPUが接続された高速なホストバスを必ず介して行っており、ホストバスの使用率の増加を招いていた。
本発明は上記事情に鑑み、ホストバスの使用率を低減し、処理効率を向上させることが可能な記憶制御装置を提供することを目的とする。
本発明の一態様による記憶制御装置は、
CPUが接続されたホストバス、少なくとも1つのIPが接続された周辺バス、及びシステムメモリに接続され、前記IPからシステムメモリへのDMA転送を制御する装置であって、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを備えることを特徴とする。
また本発明の一態様による記憶制御装置は、
各々の前記IPに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記IPとの間でデータ転送を行うスイッチ部と、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを備えることを特徴とする。
あるいは本発明の一態様による記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを備え、
前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とする。
本発明の一態様によるDMA転送が可能な制御システムは、
ホストバスに接続されたCPUと、
前記ホストバス又は周辺バスに接続された少なくとも一つのIPと、
前記CPU又は前記IPがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記IPから前記システムメモリへのDMA転送を制御する記憶制御装置とを備え、
前記記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を有することを特徴とする。
また本発明の一態様による制御システムは、
前記ホストバス又は周辺バスに接続された少なくとも二つのIPと、
前記CPU又は前記IPがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、さらに前記IPに直接接続されており、前記IPから前記システムメモリへのDMA転送を制御する記憶制御装置とを備え、
前記記憶制御装置は、
各々の前記IPに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記IPとの間でデータ転送を行うスイッチ部と、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを有することを特徴とする。
あるいは本発明の一態様による制御システムは、
ホストバスに接続されたCPUと、
前記ホストバス又は周辺バスに接続された少なくとも一つのIPと、
前記CPU又は前記IPがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記IPから前記システムメモリへのDMA転送を制御する記憶制御装置とを備え、
前記記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを有し、
前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とする。
本発明の記憶制御装置によれば、周辺バスに接続されたIPからシステムメモリへのDMA転送において、アドレス判定部によりTLBで定義された情報に基づいて、CPUがキャッシュ可能な領域がどうかを判定することにより、ホストバスを使用することなくDMA転送が可能となる場合が生じ、その結果ホストバスの使用率を低減させることができる。
以下、本発明の実施の形態について、図面を参照して説明する。
後述する実施の形態では、先ず、ホストバス又は周辺バスから送られてきたアドレスが、当該記憶制御装置が管理する領域であるかどうか、またこのアドレスはCPUがキャッシュ可能な領域かどうかを判断し、次に、キャッシュ不可能な領域である場合を除き、キャッシュのコヒーレンシ確保のため、IPがメモリのどの領域をアクセスしたかを知らせるために記憶制御装置がCPUに対してこのアドレスを通知するように構成している。
(1)実施の形態1
図1に、本実施の形態1による記憶制御装置の構成を示す。
この記憶制御装置103aは、ホストバス101に接続されたホストバスI/F部111及びスヌープアドレス制御部115、アドレスマップ判定部112、メモリ制御部113、アドレス判定部116、TLB情報保持部117、周辺バス102に接続された周辺バスI/F部114を備えている。特に本装置は、周辺バスI/F部114、スヌープアドレス制御部115、アドレス判定部116、TLB情報保持部117を備える点に特徴がある。
この場合の記憶制御装置103aを含むシステム全体の構成の一例は、図2に示される通りである。ここで、記憶制御装置103aが、ホストバス101のみならず周辺バス102にも接続されている点が従来と相違する。
尚、ここでCPU201は、ライトスルー方式を採用していることを前提とする。
記憶制御装置103a内における各ブロックが有する機能は、以下の通りである。
(1)ホストバスI/F部111
ホストバス101と記憶制御装置103aとの間のバスアクセスを制御する。
(2)アドレスマップ判定部112
ホストバス101又は周辺バス102上のアドレス(物理アドレス)が、自己の管理するシステムメモリ231かどうかを判定する。
例えば、この記憶制御装置103aがDRAMコントローラである場合、図3に示されたような内部レジスタ231a、DRAM231b、EEPROM231c、ROM231dを有するメモリマップで構成されたシステムメモリ231において、ホストバス101又は周辺バス102上のアドレスが、DRAMコントローラが管理するDRAM231bに割り付けられているアドレスであるかどうかの判定を行う。
(3)メモリ制御部113
システムメモリ231へのアクセスを制御する。
アドレスマップ判定部112における判定の結果、そのアドレスが自己の管理するメモリ領域(ここでは、DRAM231b)である場合、バス上のアクセス要求(リード/ライト)に従ってメモリアクセスの制御を行う。
(4)周辺バスI/F部114
周辺バス102と記憶制御装置103aとの間のバスアクセスを制御する。
(5)TLB情報保持部117
アドレス変換に必要なCPU201のTLBを複製した情報として、論理物理アドレス変換情報及び制御情報(キャッシャブル/ノンキャッシャブルの判定情報)を保持する。
(6)スヌープアドレス制御部115
スヌープアドレスをホストバス101に出力する。
アドレス判定部116から送られてきた判定結果がノンキャッシャブルではない場合、ホストバス101上にそのアドレスの無効化トランザクション、又は擬似的なI/Oからシステムメモリ231へのDMAを、ブロードキャストする。
これは、ホストバス101にCPUが1つ以上存在する場合を想定しており、送信先を特定することなく全CPUに対して、当該アドレスのキャッシュデータを無効化するよう通知するためである。
(7)アドレス判定部116
ホストバス101又は周辺バス102上のアドレスが、キャッシャブルかどうかの判定を行い、一致した場合はスヌープアドレス制御部115に通知する。
予め設定されたシステム固有のアドレスマップの状態、及びTLB情報保持部117の制御情報から、ホストバス101又は周辺バス102上のアドレスがキャッシャブルかどうかの判定を行う。
この場合の判断基準は
1)ヒットかつキャッシャブルの場合;スヌープアドレス制御部115に伝達する。
2)ヒットかつノンキャッシャブルの場合;スヌープアドレス制御部115に伝達しない。
3)ミスの場合;スヌープアドレス制御部115に伝達する。
ここで、3)の処理は無駄なフローになる可能性もあるが、安全の為に行う。
キャッシュにコピーが存在する場合、可能性のあるアドレスは全てスヌープアドレス制御部115に通知する。
上記構成を有する本実施の形態における動作について説明する。
周辺バス102上のIP212〜214からシステムメモリ231ヘのDMA転送を行う際、スヌープを行うかどうかの判定を以下のように行う。
アドレスマップ判定部112により、ホストバス101又は周辺バス102上のアドレスが、自己の管理するシステムメモリ231ヘのアクセスであることが判明した場合、アドレス判定部116は、先ず、
1) 周辺バス102上のアドレスが、
A)常にキャッシャブルな領域のアドレスであるか、
B)常にノンキャッシャブルなアドレスであるか、
C)アドレス変換テーブルの制御情報によって制御されるアドレスであるか、
を判定する。
2)C)(アドレス変換テーブルの制御情報によって制御されるアドレス)である場合、さらに周辺バス102上のアドレスと、TLB情報保持部117に保持されている全ての物理アドレスとを比較し、
D)TLB情報保持部117に一致する物理アドレスが存在するか、(即ち、TLBヒット)
E)TLB情報保持部117に一致する物理アドレスが存在しないか、(即ち、TLBミス)であるか、
を判定する。
ここで、上述のように、TLB情報保持部117は、アドレス変換テーブルの一部の情報しか保持していない。そのため、TLBミスの場合は、システムメモリ231上のアドレス変換テーブルを参照しない限り、キャッシャブルか否かを判定することはできない。そこで本実施の形態においては、ノンキャッシャブルであることが明白な場合を除き、スヌープ動作を実行するものとしている。これは、無駄なフローになる可能性もあるが、安全のために実行するものである。
3)D)(TLB情報保持部117に一致する物理アドレスが存在する、TLBヒット)の場合、TLB情報保持部117に保持されている、一致した物理アドレスの制御情報により、そのアドレスが、
F)キャッシャブルであるか、
G)ノンキャッシャブルであるか、
を判定する。
4)判定結果が、B)(常にノンキャッシャブルなアドレス)又はG)(ノンキャッシャブルなアドレス)の場合、周辺バス102上のアドレスに対応するデータがキャッシュには存在しないことが明らかであり、スヌープ動作を行う必要はない。
判定結果がこれ以外の場合、このアドレスのデータがキャッシュに存在する可能性があり、アドレス判定部116はスヌープアドレス制御部115にスヌープ動作を行うように通知する。
5)アドレス判定部による判定結果が、B)又はG)以外の場合、スヌープアドレス制御部115はホストバス101のバス使用権をCPU201から取得した後、スヌープのための擬似的なライトトランザクションを実行する。
ここで、スヌープのための擬似的なライトトランザクションについて説明する。通常のライトトランザクションには、以下のような特徴がある。
a)マスタからのアクセス要求と、その要求に対するアクセス対象物からの応答とによりハンドシェークが成立する。
b)マスタからのライトデータ転送を伴う。
これに対し、擬似的なライトトランザクションとは、スヌープアドレス制御部115がCPU201に対してスヌープ処理に必要なアドレスを通知するための処理であり、通常のバストランザクションとは以下のような相違がある。
A)記憶制御装置がマスタとなって、トランザクションを発行する。
B)応答すべきアクセス対象物が、ライトトランザクションを発行した記憶制御装置101自身であり応答が存在しない。このため、記憶制御装置101が発行したアクセス要求とこの要求に対する応答とによるハンドシェークが成立しない。
但し、バスのプロトコルを守る必要上、応答が必要な場合は、記憶制御装置101自身がダミーの応答を発行することで、見かけ上ハンドシェークが成立する場合もある。
C)有効なデータ転送を伴わない。
これは、データ転送を目的とした通常のバストランザクションとは異なり、スヌープ処理に必要なアドレスをCPU201に通知することを目的としているため、データをバス上に出力する必要がないことに基づく。但し、上記のダミー応答を行う場合、DRAMへの書き込みは行われない。
6)ここで、擬似的なライトトランザクションにおけるホストバス101上のアドレス、データ、書き込み信号の波形の変化を図4に示し、周辺バス102上のアドレス、データ、書き込み信号の波形の変化を図5に示す。
図5に示されたように、周辺バス102上のIP212〜214のいずれかから記憶制御装置101にシステムメモリ231ヘのDMA転送要求があった場合、アドレスN、N+4、N+8、N+12と、それぞれに対応するデータD、DN+4、DN+8、DN+12 と、ライト信号とが記憶制御装置101に送られてくる。
このとき、アドレス判定部116が、周辺バス102上のアドレスN〜N+12はキャッシャブルであると判定した場合、記憶制御装置103aはスヌープのための擬似的なライトトランザクションを発行する。
このライトトランザクションでは、図4に示されたようにホストバス101上に、データ転送を伴うことなく、CPU201に通知が必要なアドレスN、N+4、N+8、N+12と、ライト信号のみが転送される。
このように、実際に書込処理は伴わないが、スヌープを行うべくデータを転送することなく擬似的なトランザクションを行うことになる。
上記実施の形態1の記憶制御装置103aによれば、周辺バス12に接続されたIP212〜214からシステムメモリ231へのDMA転送を行う際に、アドレス判定部116にて判定することにより、このDMA転送がTLBで定義されたノンキャッシャブル領域への転送である場合、CPUへの通知が不要であり、ホストバス101を使用することなく転送が可能である。この結果、ホストバス101の使用率を低減することができる。
(2)実施の形態2
図6に、本実施の形態2による記憶制御装置103bの構成を示す。
本実施の形態2による記憶制御装置103bは、上記実施の形態1による記憶制御装置103aにおける周辺バスI/F部114の替わりに、スイッチ部118を備えている。
また、本実施の形態2におけるホストバスI/F部111は、上記実施の形態1におけるものと同様にバスマスタ機能を有する。
アドレス判定部116は、CPU201のキャッシュ領域へのアクセスであるかどうかを判定する。
スイッチ部118は、複数のIP211〜21n(nは、2以上の整数)からシステムメモリ231へのアクセスを調停していずれかのIPを選択し、選択したIPとシステムメモリ231との間の転送の制御を行う。この場合、IP211〜21nのいずれかとスイッチ部118との間でデータ転送する際に、ホストバス101あるいは周辺バス102を介することなく、直接ピアツーピア接続(peer to peer)を行う。
他の実施の形態1における要素と同一のものには、同一の番号を付して説明を省略する。
本実施の形態2による記憶制御装置を含むシステムにおけるバス構成を図7に示す。記憶制御装置103bにおけるスイッチ部118と各IP211〜21nとが、ホストバス101あるいは周辺バス102を介することなく、上述したように直接接続されている。
上記実施の形態1では、ホストバス101又は周辺バス102上のアドレスによってスヌープが必要か否かの判定を行う。
これに対し本実施の形態2では、ホストバス101又は周辺バス102上のアドレスの代わりに、各IP211〜21nから直接送られてきたアドレスに基づいて、スヌープが必要かどうかの判定を行う。
本実施の形態2におけるスヌープを行うかどうかの判定動作は上記実施の形態1と同様であり、上記実施の形態1と同様にホストバス101の使用率を低減することが可能である。
(3)実施の形態3
本発明の実施の形態3による記憶制御装置について、その構成を示した図8を用いて説明する。
本実施の形態3における記憶制御装置103cは、上記実施の形態1における記憶制御装置103aと比較し、スヌープアドレス制御部115aがレジスタ115bを有する点が異なっている。
この場合の記憶制御装置103cを含むシステム全体の構成の一例は、図2を用いて説明した上記実施の形態1におけるものと同様であり、説明を省略する。
本実施の形態3では、スヌープのために必要な擬似的なトランザクションを行う必要のあるアドレスを、ホストバス101にバースト転送をする際に、そのアドレスをレジスタ115bに溜めておく。そして、バーストサイズまで溜まった後、アドレスをスヌープアドレス制御部115aがホストバス101へバースト転送する。
この場合に、周辺バス102のバーストサイズとは無関係に、ホストバス101の最大バーストサイズに合わせてトランザクションをマージすることが可能である。
これにより、CPU201に接続されているホストバス101の最大バーストサイズに合わせた転送が可能となる。また、記憶制御装置103aがホストバス101の使用権を得るまでの間、周辺バス102を停止させる必要がない。さらには、スヌープのための擬似的なトランザクションを行うためには、アドレスを一旦記憶しておく必要もある。以上によって、スヌープに必要なアドレスの転送効率を向上させることができる。
周辺バスから連続したアドレスがホストバスの最大バーストサイズ分だけ発行された場合、ホストバス上では、ホストバス上の最大バーストサイズを用いて、転送を行うことができる。
即ち、周辺バスの数回のトランザクションをホストバス上ではまとめて1回のトランザクションとして発行することができる。
図9に、本実施の形態3における擬似ライトトランザクションのホストバス101及び周辺バス102上のタイミングダイアグラムの一例を示す。
周辺バス102上において、N+0x00をスタートアドレスとする4ワードバーストが完了し、それに引き続いて、N+0x10をスタートアドレスとする4ワードバーストが開始した時点で、ホストバス上ではN+0x00をスタートアドレスとする8ワードバーストを行うことが可能と判断できる。
その時点で、8ワードバーストをダミーのデータとともに開始する。
N+0x10のバースト転送の終了を待たずに、バスマスターになることが出来次第、8ワードバーストのスヌープの為の擬似的なライトトランザクションが可能である。これによりホストバスの使用率を低減することができる。
周辺バス102からのバースト転送のアドレスはこのように連続している可能性が高いため、アドレスを束ねて転送することで、バス転送効率が向上する。
本実施の形態3によれば、上記実施の形態1、2と同様に、周辺バス102に接続されたIP212〜21nから記憶制御装置103aを介してシステムメモリ231にDMA転送を行う際に、このDMA転送が、TLBで定義されたノンキャッシャブル領域への転送である場合、上記実施の形態1、2と同様にアドレス判定部116によってアドレス判定がなされるため、ホストバス101を使用することなくDMA転送を実現し、ホストバス101の使用率を低減することができる。
上述した実施の形態はいずれも一例であり、本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
本発明の実施の形態1による記憶制御装置の構成を示したブロック図。 同記憶制御装置を有するシステム全体のバス構成を示したブロック図。 同システムにおけるシステムメモリのメモリマップを示した説明図。 同システムにおける擬似的なライトトランザクションを行うときのホストバス上のアドレス、データ、書き込み信号の波形の変化を示したタイムチャート。 同システムにおける擬似的なライトトランザクションを行うときの周辺バス上のアドレス、データ、書き込み信号の波形の変化を示したタイムチャート。 本発明の実施の形態2による記憶制御装置の構成を示したブロック図。 同記憶制御装置を有するシステム全体のバス構成を示したブロック図。 本発明の実施の形態2による記憶制御装置の構成を示したブロック図。 本発明の実施の形態3による記憶制御装置を含むシステムにおいて、擬似的なライトトランザクションを行うときのホストバス及び周辺バス上のアドレス、データ、書き込み信号の波形の変化を示したタイムチャート。 従来の記憶制御装置を有するシステム全体のバス構成を示したブロック図。 仮想アドレスから物理アドレスへ変換する時に用いるアドレス変換テーブルを示した説明図。 アドレス変換に用いるTLBの構成を示した説明図。
符号の説明
101 ホストバス
102 周辺バス
103a、103b、103c 記憶制御装置
111 ホストバスI/F部
112 アドレスマップ判定部
113 メモリ制御部
114 周辺バスI/F部
115、115a スヌープアドレス制御部
115c レジスタ
116 アドレス判定部
117 TLB情報保持部
118 スイッチ部
201 CPU
211〜21n IP
221 バスブリッジ
231 システムメモリ

Claims (8)

  1. CPU(Central Processing Unit)が接続されたホストバス、少なくとも1つのIP(Intellectual Property)が接続された周辺バス、及びシステムメモリに接続され、前記IPからシステムメモリへのDMA(Direct Memory Access)転送を制御する記憶制御装置であって、
    前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
    前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
    前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB(Translation Look-aside Buffer)情報保持部と、
    前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
    前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
    を備えることを特徴とする記憶制御装置。
  2. CPUが接続されたホストバス、少なくとも1つのIPが接続された周辺バス、及びシステムメモリに接続され、前記IPからシステムメモリへのDMA転送を制御する記憶制御装置であって、
    各々の前記IPに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記IPとの間でデータ転送を行うスイッチ部と、
    前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
    前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
    前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
    前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
    前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
    を備えることを特徴とする記憶制御装置。
  3. CPUが接続されたホストバス、少なくとも1つのIPが接続された周辺バス、及びシステムメモリに接続され、前記IPからシステムメモリへのDMA転送を制御する記憶制御装置であって、
    前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
    前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
    前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
    前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
    前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
    を備え、
    前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とする記憶制御装置。
  4. 前記アドレス判定部が当該アドレスはキャッシュ可能な領域であると判定した場合、前記スヌープアドレス制御部は、前記ホストバス上に当該アドレスのキャッシュデータを無効化するための通知をブロードキャストすることを特徴とする請求項1乃至3のいずれかに記載の記憶制御装置。
  5. ホストバスに接続されたCPUと、
    前記ホストバス又は周辺バスに接続された少なくとも一つのIPと、
    前記CPU又は前記IPがアクセス可能なシステムメモリと、
    前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記IPから前記システムメモリへのDMA転送を制御する記憶制御装置と、
    を備え、
    前記記憶制御装置は、
    前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
    前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
    前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
    前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
    前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
    を有することを特徴とするDMA転送が可能な制御システム。
  6. ホストバスに接続されたCPUと、
    前記ホストバス又は周辺バスに接続された少なくとも二つのIPと、
    前記CPU又は前記IPがアクセス可能なシステムメモリと、
    前記ホストバス、前記周辺バス及び前記システムメモリに接続され、さらに前記IPに直接接続されており、前記IPから前記システムメモリへのDMA転送を制御する記憶制御装置と、
    を備え、
    前記記憶制御装置は、
    各々の前記IPに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記IPとの間でデータ転送を行うスイッチ部と、
    前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
    前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
    前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
    前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
    前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
    を有することを特徴とするDMA転送が可能な制御システム。
  7. ホストバスに接続されたCPUと、
    前記ホストバス又は周辺バスに接続された少なくとも一つのIPと、
    前記CPU又は前記IPがアクセス可能なシステムメモリと、
    前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記IPから前記システムメモリへのDMA転送を制御する記憶制御装置と、
    を備え、
    前記記憶制御装置は、
    前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
    前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
    前記CPUがキャッシュ可能な領域を示すアドレス情報を保持するTLB情報保持部と、
    前記TLB情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記CPUのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
    前記アドレス判定部の判定結果に従い、前記アドレスを前記CPUに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
    を有し、
    前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とするDMA転送が可能な制御システム。
  8. 前記アドレス判定部が当該アドレスはキャッシュ可能な領域であると判定した場合、前記スヌープアドレス制御部は、前記ホストバス上に当該アドレスのキャッシュデータを無効化するための通知をブロードキャストすることを特徴とする請求項5乃至7のいずれかに記載のDMA転送が可能な制御システム。
JP2003366460A 2003-10-27 2003-10-27 記憶制御装置及びdma転送が可能な制御システム Pending JP2005128963A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003366460A JP2005128963A (ja) 2003-10-27 2003-10-27 記憶制御装置及びdma転送が可能な制御システム
US10/800,349 US20050091458A1 (en) 2003-10-27 2004-03-12 Storage control apparatus, control system capable of DMA transfer, and method of controlling DMA transfer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003366460A JP2005128963A (ja) 2003-10-27 2003-10-27 記憶制御装置及びdma転送が可能な制御システム

Publications (1)

Publication Number Publication Date
JP2005128963A true JP2005128963A (ja) 2005-05-19

Family

ID=34510243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003366460A Pending JP2005128963A (ja) 2003-10-27 2003-10-27 記憶制御装置及びdma転送が可能な制御システム

Country Status (2)

Country Link
US (1) US20050091458A1 (ja)
JP (1) JP2005128963A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191266A (ja) * 2014-03-27 2015-11-02 株式会社メガチップス データ転送制御装置及びデータ転送の制御方法
JP2019159452A (ja) * 2018-03-08 2019-09-19 富士ゼロックス株式会社 情報処理装置および半導体装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
JP5057360B2 (ja) * 2006-08-08 2012-10-24 ルネサスエレクトロニクス株式会社 半導体装置、データ処理装置、及び記憶装置へのアクセス方法
US7673091B2 (en) * 2007-04-24 2010-03-02 Texas Instruments Incorporated Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
KR102392844B1 (ko) * 2017-03-10 2022-05-03 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 저장 장치
CN114745325B (zh) * 2022-03-28 2024-07-23 合肥边缘智芯科技有限公司 一种基于PCIe总线的MAC层数据交换方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
JPH0789340B2 (ja) * 1992-01-02 1995-09-27 インターナショナル・ビジネス・マシーンズ・コーポレイション バス間インターフェースにおいてアドレス・ロケーションの判定を行なう方法及び装置
US5966728A (en) * 1992-01-02 1999-10-12 International Business Machines Corp. Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
US5659709A (en) * 1994-10-03 1997-08-19 Ast Research, Inc. Write-back and snoop write-back buffer to prevent deadlock and to enhance performance in an in-order protocol multiprocessing bus
US6223255B1 (en) * 1995-02-03 2001-04-24 Lucent Technologies Microprocessor with an instruction level reconfigurable n-way cache
USRE38428E1 (en) * 1995-05-02 2004-02-10 Apple Computer, Inc. Bus transaction reordering in a computer system having unordered slaves
US5678009A (en) * 1996-02-12 1997-10-14 Intel Corporation Method and apparatus providing fast access to a shared resource on a computer bus
JP3524337B2 (ja) * 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
US6442666B1 (en) * 1999-01-28 2002-08-27 Infineon Technologies Ag Techniques for improving memory access in a virtual memory system
JP4434534B2 (ja) * 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015191266A (ja) * 2014-03-27 2015-11-02 株式会社メガチップス データ転送制御装置及びデータ転送の制御方法
JP2019159452A (ja) * 2018-03-08 2019-09-19 富士ゼロックス株式会社 情報処理装置および半導体装置
JP7010070B2 (ja) 2018-03-08 2022-01-26 富士フイルムビジネスイノベーション株式会社 情報処理装置および半導体装置

Also Published As

Publication number Publication date
US20050091458A1 (en) 2005-04-28

Similar Documents

Publication Publication Date Title
CN101430664B (zh) 一种多处理器系统及Cache一致性消息传输方法
TW591384B (en) Method and system for speculatively invalidating lines in a cache
US4959777A (en) Write-shared cache circuit for multiprocessor system
US5897656A (en) System and method for maintaining memory coherency in a computer system having multiple system buses
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
US6049847A (en) System and method for maintaining memory coherency in a computer system having multiple system buses
TWI506433B (zh) 監測過濾機構
US20030005237A1 (en) Symmetric multiprocessor coherence mechanism
JP4119380B2 (ja) マルチプロセッサシステム
JP2010191638A (ja) キャッシュ装置
US6574710B1 (en) Computer cache system with deferred invalidation
JP2007257637A (ja) アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム
US6502168B1 (en) Cache having virtual cache controller queues
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
US5918069A (en) System for simultaneously writing back cached data via first bus and transferring cached data to second bus when read request is cached and dirty
JPH09114665A (ja) 記憶装置と補助プロセッサ間のコマンド及びデータ転送方法及び情報処理システム
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US20060224840A1 (en) Method and apparatus for filtering snoop requests using a scoreboard
CN113853589A (zh) 高速缓冲存储器大小改变
EP3644190B1 (en) I/o coherent request node for data processing network with improved handling of write operations
US6003106A (en) DMA cache control logic
US7797495B1 (en) Distributed directory cache
WO2000038077A1 (fr) Antememoire et procede de commande
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
US6976132B2 (en) Reducing latency of a snoop tenure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060905

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100105