JP5426036B2 - 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法 - Google Patents

複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法 Download PDF

Info

Publication number
JP5426036B2
JP5426036B2 JP2012545649A JP2012545649A JP5426036B2 JP 5426036 B2 JP5426036 B2 JP 5426036B2 JP 2012545649 A JP2012545649 A JP 2012545649A JP 2012545649 A JP2012545649 A JP 2012545649A JP 5426036 B2 JP5426036 B2 JP 5426036B2
Authority
JP
Japan
Prior art keywords
transfer
cpu
access
memory
signal
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.)
Active
Application number
JP2012545649A
Other languages
English (en)
Other versions
JPWO2012070319A1 (ja
Inventor
久人 松尾
里華 長原
健治 大谷
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012545649A priority Critical patent/JP5426036B2/ja
Application granted granted Critical
Publication of JP5426036B2 publication Critical patent/JP5426036B2/ja
Publication of JPWO2012070319A1 publication Critical patent/JPWO2012070319A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories

Description

本発明は、情報装置の含む複数のプロセッサのためのメモリアクセスの制御に関する。
ストレージデバイスにおいて、消費電力の削減やコストの削減は課題の一つである。例えば、使用しているDRAMメモリ点数を削減することは、消費電力、コスト、設置面積の削減に大きく貢献する。近年は、複数のCPUを搭載したSoC LSIが開発されている。一般的に複数のCPUにはそれぞれメインメモリが必要である。この複数のCPUメモリを同じLSIにおける他のDRAMメモリと共有することにより、メインメモリとして使用するDRAMメモリを削減することが可能となる。
図1は、CPUからのアクセス(CPUアクセス)とデータフロー転送とにおいて共有化されたDRAMメモリと、その共有化を可能とするアービタとを有すASICを示す。この共有メモリ構成では、データフローのデータバッファとCPUのメインメモリは、同じDRAMメモリチップを共有する。共有化メモリでは、1つのDRAMメモリの使用領域は物理的に分離されている。
CPUを使用するファームウェアは、データフローASICなどのハードウェアを制御して記録媒体とのデータ転送をしている。ファームウェアのコード本体はメインメモリ上に置かれるので、動作上、メインメモリアクセスが発生する。メインメモリアクセスの要求を出して、その要求が完了するまでの遅延はCPUの処理待ち時間となる。この処理待ち時間が大きいとCPUのパフォーマンスが低下する。
この方法では、それぞれのデータ転送が滞ると、最終的にはホスト転送の中断やメディア転送パフォーマンスの低下につながる。データバッファアーキテクチャを考える場合、全てのブロックからのデータ転送要求が同時に発生するときに、それぞれの必要帯域を満す必要がある。メインメモリをデータバッファと共有する場合でも、データフロー転送及びCPUアクセスのスループットを満たす必要がある。特に、デバイスが複数のCPUを搭載しておいる場合、DRAMメモリのバンド幅を確保する必要がある。しかしDRAMメモリでのバス幅と周波数で決まる物理的な帯域は限られる。
更にメインメモリへのアクセスはアクセス応答時間が、CPUのパフォーマンスに影響する。現在のメインメモリへのアクセス以外の転送(例えばデータフロー転送)が行われているときにメインメモリアクセス要求が来ると、その要求は現在の転送が終わるまで待つ必要がある。以上から、メインメモリと他のDRAMメモリを共有する場合は、次の課題がある。
1.限られた帯域の中で複数のCPUのメインメモリへのアクセスの帯域をいかに確保するか。
帯域確保の簡単な対応は物理帯域そのものを向上することである。しかし、バス幅を広げて帯域を上げるのは使用チップ数が増えることになり本来のメモリ部品数の削減の目的に沿わない。また周波数を上げる場合は、それにより消費電力が増えるため、完全な解決策とはいえない。
与えられた物理帯域の中で帯域を広げるには、転送のオーバーヘッドを削減することが効果的である。一般に使われているDDR3 SDRAMなどのDRAM技術は1回のアクセスでバースト転送長を長くすればオーバーヘッドの比率を下げることができる。必要帯域を満たすメモリ・アーキテクチャでは、高い帯域が必要なブロックには長いバースト転送を許可し、そうでないブロックは短いバースト長の転送とする技術が有効である。実際IBMテープドライブのデータバッファはこのような思想で設計されており、高いデータ転送効率で、比較的低い動作周波数を実現している。
しかし、応答時間が重要となるメインメモリアクセスの場合、メインメモリ要求が来たときに他のブロックのメモリアクセス中ならば、メインメモリアクセスは現在の転送が終わるまで待つ必要がある。現在の転送を中断してメインメモリ転送を許可する対応策も考えられるが、他のブロックのバンド幅を圧迫するためパフォーマンスを要求されるシステムでは採用できない。
DRAM技術におけるオーバーヘッドとは、動作モード設定コマンド(MRS)、アクセスしたい行アドレスを有効にするコマンド(Activate)、使用した行を閉じるコマンド(Precharge)、リフレッシュコマンド(Refresh)などである。これらのコマンドではデータは転送されない。この仕様を応用して、連続アドレスへのアクセスはPrechargeコマンドを発行しないという既存技術もある。この記述はメインメモリ専用DRAMでは有効であり、実際オーバーヘッドの短縮につながる。しかし、用途の異なるCPUによる共有メモリの場合は、メモリの物理領域を分割して使用するためアドレスが連続せずこの方法は有効でない。
また、CPUからのメインメモリアクセスはバイト単位かキャッシュラインによるアクセスである。組み込みシステムのCPUの場合キャッシュラインは32バイトや64バイトの大きさである。この場合、DRAMメモリのデータバスが32ビットならば、4バーストや8バーストによる転送となる。したがって、CPUアクセスはバースト転送の点で効率がよくなく、オーバーヘッドが大きくなる。
2.メインメモリ要求の応答時間をいかに短縮するか。
課題1で挙げたように、メインメモリアクセス要求が来たときに他のブロック(例えばデータフロー)の転送中であれば、その転送が終了するまでメインメモリ転送は待つ必要がある。その転送終了後、メインメモリアクセスが最優先されるアービタ設計ならば、アクセスが許可されてデータ転送する。他のブロックの転送サイクルは最低でもDRAMメモリのクロックで20クロックほどであり、メインメモリアクセスのレイテンシが大きくなる主要因の一つである。他のブロックの転送を中断する方法は、中断分のペナルティの補償をシステムとして考える必要がある。またそれにより再転送サイクルが必要となり、転送オーバーヘッドが増加するため、そのブロックの帯域を保証するのは困難である。
特許文献1は、ホスト側とCDメディア側のデータバッファアクセスというバスアクセス調停システムに関する。このバスアクセス調停システムは、CDドライブにおいてデータバッファへの複数のブロックのアクセスを制御するときに、各ブロックからのアクセスに優先度と回数制限を設ける。
特開平11−120124号公報
しかしながら、特許文献1のバス調停システムは、複数のCPUのメインメモリとバッファメモリなどと共有されたメモリシステムにおいて、CPUアクセスの遅延やCPUと複数転送ブロックのスループットを考慮したメモリの共有化を示さない。
そこで、本発明の目的は、情報装置(例えばストレッジデバイス)の具備する複数のCPUのためのメインメモリの共有化メモリ機構のメモリアクセス装置及びその方法を提供することである。
上記の目的を達成する本発明は、複数のCPUのためのメインメモリと他の機能ブロックのためのバッファとを共有化させるためのメモリアクセス装置である。このメモリアクセス装置は、メモリをメインメモリとして使用する複数のCPUと、
メモリをバッファとして使用する他の機能ブロックと、
前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス転送を制御するCPUインターフェースと、
前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのメモリへのアクセス転送の調停を行うメモリコントローラとを備え、
前記CPUインターフェースは、前記複数のCPUからのアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに前記情報を送り、
前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送ることを特徴とする。
このメモリアクセス装置の特徴は、メモリはDRAMであることである。
このメモリアクセス装置の特徴は、前記CPUインターフェースが前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のCPUからのアクセス要求を待機させることである。
このメモリアクセス装置の特徴は、前記メモリコントローラが前記1回のバスサイクルで複数のCPUアクセス転送フォーマットを実行させることである。
このメモリアクセス装置の特徴は、前記メモリコントローラが(a)複数の異なるCPUからのアクセス要求を受けたときに、他ブロック転送が実行中であれば前記複数のCPUアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行することである。
このメモリアクセス装置の特徴は、前記メモリコントローラが前記異なるCPUのアクセス転送要求をDRAMのバンクインターリーブにより、1回の転送サイクルで実行することである。
このメモリアクセス装置の特徴は、前記メモリコントローラが(b)他ブロック転送が実行中に、待機されているCPUアクセスと同じCPUから次のアクセス要求が発行される場合、前記複数のCPUアクセス要求を待機させて前記データフロー転送の終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行することである。
このメモリアクセス装置の特徴は、他のブロックからの転送、前記(a)の転送、及び前記(b)の転送を組み合わせて実行させることである。
このメモリアクセス装置の特徴は、前記CPUインターフェースは、
転送モード(Read/Write)及びアドレスをメモリコントローラに送る(Idle)ステップと、
複数のCPUから転送要求を受け取り、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブモードにはいることを示すBI信号を前記メモリコントローラに転送するステップと、
転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを実行し、バンクインターリーブモードの時は、2つのCPUからのそれぞれのアクセスが待機されているため、それら2つを実行するステップと、
次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、CPUインターフェース回路はContinue信号をメモリコントローラに送るステップを含み、
前記メモリコントローラは、
BI信号を受け取ったかチェックするステップと、
CPUインターフェースがバースト転送を停止するステップと、
2つのCPUにContinue信号が立っていることを確認し、2つのCPUにContinue信号が立っている場合、CPUインターフェース回路に待機されている次の要求を実行し、1つのCPUにContinue信号が立っている場合、バースト転送を停止するステップ3に移動し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、
Prechargeコマンドをメモリに発行しrowアクセスをクローズするステップとを含むことである。
このメモリアクセス装置の特徴は、前記メモリコントローラの前記ステップがBI信号の場合、該当するバンクアドレスに対する複数のActivateコマンドをメモリに発行し、
BI信号でない場合、1つのActivateコマンドを発行するステップを含むことである。
このメモリアクセス装置の特徴は、メモリとしてDRAMを含むことである。
更に上記の目的を達成する本発明は、複数のCPUのためのメインメモリと他の機能ブロック(データフロー)のためのバッファとを共有化させるために、メモリをメインメモリとして使用する複数のCPUと、メモリをバッファとして使用する他の機能(データフロー)ブロックと、前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス転送を制御するCPUインターフェースと、前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのメモリへのアクセス転送の調停を行うDRAMコントローラとを含む装置においけるメモリアクセス方法である。
この方法は、前記複数のCPUからのアクセス要求(信号)をキューするステップと、
各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記DRAMコントローラに前記アクセス要求(信号)を知らせるステップと、アクセス要求(信号)に対して許可信号を受けた場合に、前記許可信号に応じて前記DRAMコントローラに前記情報を送るステップと、
前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送るステップとを含むことを特徴とする。
以上のように本発明によれば、複数のCPUのメインメモリが他のバッファメモリなどと共有されたメモリシステムにおいて、メインメモリアクセス要求が来た時にアクセス遅延を最小化し、かつ、データ転送のオーバーヘッドを小さくできる。
図1は、CPUからのアクセスとデータフロー転送とにおいて共有化されたDRAMメモリと、その共有化を可能とするアービタとを有すASICを示す。 複数のCPUアクセス及びデータフローのアクセスするDRAM構成における本発明のメモリ転送の概念図を示す。 テープ記録装置の構成図を示す。 テープドライブのコントローラ16に含まれるDRAMコントローラやデータフロー制御などを行う回路ブロックの構成(ASIC)を示す。 複数のCPUを含むアクセスブロックのためのローカルバス51と、CPUインターフェースと、DRAMコントローラとの接続関係を示す。 CPUインターフェースが複数のローカルバスとDRAMコントローラを接続する。 本発明を実行するコマンドシーケンスのフローチャートを示す。
以下において、記録装置におけるデータフローと複数のCPUからのアクセスについてDRAMアクセス装置の本発明の実施形態(以下「実施例」という)が説明される。以下の実施例は、例示であり本発明の内容を限定するものではない。
複数のCPUメインメモリと他のバッファメモリとが共有されるメモリシステムにおいて、CPUメモリアクセス要求が来た時に次の手法を行う。
(a)複数のメインメモリアクセス要求が来たときに、他ブロック転送が実行中であればそれらの要求は待たされる。他ブロックの転送後、これらの2つの転送要求をDDR3SDRAMなどの仕様におけるバンクインターリーブ(Bank Interleave:以下BIとも言う)により、1回のサイクルで実行する。
(b)あるメインメモリアクセス要求が来たときに、他ブロック転送が実行中であればその要求は待たされる。その間に同じCPUから次のアクセス要求が発行される。DRAMメモリコントローラ(Arbitor:アービタ)は、メインメモリのアクセス許可を行い、既にキューされているCPU転送と共に次の転送要求がキューされていれば、条件を考慮して同じサイクルで次のデータ転送も行う。
(c)上記2つの組み合わせ。
これら手法により、転送のオーバーヘッドを削減し、効率のよいDRAM転送を行う。
(a)では、共有メモリの中で複数のCPUメインメモリの領域を論理分割して持つアーキテクチャーでは、それぞれの領域をDDR3 SDRAMのバンクアドレス(Bank Address)でマップする。2つのCPUアクセスが2つの領域のアクセス先で異なっても、バンク・アドレスによるバンクインターリーブを使って一度に2つの転送を実行する。これにより第2以降の転送要求に対して課題2が解決される。
(b)では、最初の要求は進行中の他ブロックの転送終了まで待たされるが、以降の転送要求の応答時間は大幅に短縮される。これにより第2以降の転送要求に対して課題2が解決される。
(c)では、(a)(b)の2つ手法を合わせて使うことにより、複数のCPUからの転送要求が1回の転送サイクルで終了する。複数のCPUからのアクセスが1回の転送で済むため、転送オーバーヘッドが削減され、メモリの帯域使用効率が上がり、課題1が改善される。余った帯域を確保できるためメインメモリ帯域自身や他のブロック(例えばデータフロー・ブロック)の帯域に割り振ることが可能となる。このキューの数をシステムによって調整すれば、高使用効率の共有メモリコントローラが実現できる。
図2は、複数のCPUアクセス及びデータフローのアクセスするDRAM構成における本発明のメモリ転送の概念図を示す。本発明の手法(a)〜(c)について図2を用いて説明する。(B)は、データバス47とCPUローカルバス48が外部DRAM45を要求化していることを示す。情報装置(例えばストレッジ装置)は、機能制御のための複数のCPUとデータの読み出し書込みのためのデータバス47を備えている。各CPU49からDRAM45にアクセス転送される。これらに並行してデータの読み出し書き込みのためのメモリをバッファ451として使用する。複数のCPU1,2,3,・・・からのCPU転送(CPUアクセス)はDRAMの452を使用する。このとき各CPUからのアクセスはバンクインターリーブによるアドレッシングにより異なるバンクアドレスが割り当てられる。(A)は、データバス47がデータフローのREQ1,2,・・・が512バイトの転送41をそれぞれ一回転送されていることを示す。この転送中複数のCPU転送が待ち状態である。CPU1・・・からの転送43はデータ転送終了後に1回転送でまとめて実行される。CPUアクセスのオーバーヘッド39を縮小化される。データフロー41のごとに1回の転送サイクルで512バイトのデータが転送されるが、その間CPU転送を待たされCPUアクセスが遅延する。複数のCPUアクセスが連続し集中するとデータ転送完了の遅延が各アクセス転送に及ぶ。CPUアクセス転送はRead/Writeのコマンドを含む32B(斜線部分)であり小さい。2つ又はそれ以上のCPUアクセスが1回転転送にまとめることができれば、全体でCPUアクセスのオーバーヘッドを小さくできる。一方、CPUアクセスが集約できればCPUアクセスの転送だけでなく、データフローのために十分な転送帯域を確保できデータ転送のスループットが向上する。
図3は、テープドライブ10の構成図を示す。実施例を適用するテープドライブについて説明する。テープドライブ10は、インターフェース11と、バッファ12と、記録チャネル13と、テープ23と、ヘッド14と、リール21、22と、カートリッジ20と、モータ15と、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。インターフェース11は、ホスト30と通信を行う。
インターフェース11は、ホスト10からバッファ12へ転送されるデータの書込みを指示するコマンド、バッファ12のデータをテープ23への書込みを指示するコマンドを受け取る。例えばインターフェース11の通信の規格はSCSIまたはファイバーチャネル(Fibre Channel)である。
バッファ12は、テープ23に書き込むべきデータを蓄積するメモリである。バッファ12は、固定長のセグメントで区切られる。ひとつのセグメントは、テープ23上の一つのデータセットに対応する。データセットは、C1パリティとC2パリティとからなる積符号が付加されたデータ構造である。データセット(DataSet)は、それが含む複数のレコード(データ)の区切れ情報などを属性情報としてDSIT(Data Set Information Table)に含む。コントローラ16に含まれるCPUがバッファ12においてデータセットごとにDSITを生成し、DSITは各データセットに含まれる。DSITの生成は、CPUが直接データバッファへアクセスしてファームウェアを実行してデータの管理情報を付加できることを意味する。
バッファ12は、最後のセグメントまでデータを受け取り次は再び最初のセグメントからデータを受け取りはじめるという意味でリングバッファと呼ばれる。データは、任意の長さでホスト30からドライブに転送される。また、固定長のデータをホストが転送したとしてもデータ圧縮が行われる場合には、データの長さがデータごとに異なる。これらの転送データは、順次バッファ12のセグメントに順次蓄積される。記録チャネル13は、いろいろな大きさのデータで充填されたセグメントのデータを、データセットとしてテープ媒体に書込む通信経路である。バッファ12に蓄積されたデータは、セグメント毎にデータセットとして、テープ媒体に書込まれる。書込みのタイミングは、セグメントがデータにより完全に充填された場合である。
テープ23は、データの記録手段としての記録媒体である。記録チャネル13を介して渡されたデータをデータセットとしてヘッド14によりテープ23に書込まれる。テープ23は、リール21及び22に巻かれ、これらの回転に伴い、リール21からリール23の方向へ、又は、その反対の方向へ、縦方向に移動する。カートリッジ20は、テープ23が巻きつけてあるリール20を収容する容器である。20と同じカートリッジにより、リール14dを収容するものを設けてもよい。モータ15は、リール21及び22を回転させる。
コントローラ16は、テープドライブ10の全体を制御する。コントローラ16は、ホスト30からインターフェース11で受け付けたコマンドに従って、データのテープ23への書込み読取りを制御する。また、コントローラは、ヘッド位置制御システム17やモータドライバ18の制御も行う。ヘッド位置制御システム17は、所望のトラックを追跡する。ヘッド14は、トラックを切り換える必要が生じると、ヘッド位置制御システム17が、ヘッド14を電気的に切り換えの制御を行う。モータドライバ18は、直接コントローラ16に接続されていてもよい。
図4は、テープドライブのコントローラ16に含まれるDRAMコントローラやデータフロー制御などを行う回路ブロックの構成(ASIC)を示す。コントローラ16は、各種制御を行うプロセッサ80、ファームウェアを保持するFlashROM90、バッファマネジャ40、テープ転送70、ホスト転送60、C2ECC計算機(エラー訂正)50など機能ブロックを含む。テープ転送ブロック70は、テープ23および読書きヘッド14を接続される。ホスト転送ブロック60は、ホスト30に接続される。コントローラ(ASIC)16は、テープ媒体23およびヘッド14、ホスト30および外部バッファ12との関連を制御する。特にバッファマネジャ40は、外部バッファ120と、テープ転送30ブロック、ホスト転送60ブロック、C2ECC計算機ブロック50及び2つのプロセッサ(CPU1、CPU2)80との間メモリアクセスの仲介機能を有する。
ホスト30からデータ転送されテープ書込が行われるデータ転送フローを説明する。ホスト転送ブロック60からのデータは、ホストから書込まれたデータをバッファマネージャ・ブロック40を介して外部バッファ12に一旦書き込まれる。バッファマネージャ・ブロック40は、各機能ブロック50、60、70から外部バッファのデータ転送のアクセスを高速にパイプライン処理で実行するために高帯域を必要とする。外部バッファは、例えばバス幅は4バイト又は8バイトを有するDDR3SDRAM12である。また、外部バッファ12に書き込まれたデ−タは、C2ECC計算機50のSRAMに転送される。C2ECC50では、全てのデータのエラー訂正をし、訂正データをDDR SDRAM12に書き戻す。データフロー・コントローラの機能として、バッファマネジャ40は、各機能ブロック50、60、70が効率よくDDR3SDRAM12をアクセスできるよう、時分割でバスを切り換えている。C2ECC50にとっては、DDR3SDRAM12から読んだデータをDDR3SDRAM12に書き戻している構造上、処理時間の要求も厳しい。
各機能ブロックからデータ転送を均一的にパイプライン処理できるように、各ブロック転送のために帯域確保を確保することが必要である。CPUがホストやメディアの転送を制御すると、データは外部バッファに一時的に格納され、順次処理される。例えばホストからストレージデバイスへの書き込みの場合、ホストからのデータは最初に外部バッファに格納される。次にエラー訂正コード(以下ECC)付加のため、外部バッファから読み出されECC計算機に送られる。ECC計算機で計算されたECCパリティは再び外部バッファへ格納される。その後、メディア側への転送のため再び外部バッファから読み出される。1回のWriteまたはRead処理みに関してバッファマネジャは、複数の機能ブロックを介して外部バッファに対して複数回のアクセスを実行する。更にこれらの処理はパイプラインとなり、同時に複数のアクセス要求が外部バッファに発生する。
図5は、複数のCPUを含むアクセスブロック(図示せず)のためのローカルバス51と、CPUインターフェースと、DRAMコントローラとの接続関係を示す。図3において、これらDRAMアクセス回路はコントローラ16に含まれる。DRAMコントローラはバッファ12を共有する。通常DRAMコントローラは、DDR3 SDRAMなどのDRAMにコマンドを発行するシーケンスを管理している。アクセスするブロックによって最適なコマンド発行順番が変わるため、コマンドシーケンスはハードウェア上にステートマシンで実装される。このDRAMコントローラにおけるコマンド制御回路とCPUインターフェース回路の、2つの回路構成で実現できる。CPUのためのメインメモリとデータ転送のためのバッファなどの2つのメモリが共有されるシステムを想定している。メモリチップ(図示せず)との信号線は両方で共有され、DRAMコントローラ53は各アクセスブロックの調停を行いながら時分割でDRAMメモリとデータ転送を行う。CPUからのメインメモリアクセスを含んだアクセスブロックは転送要求(REQ信号)を上げ、許可されるとAllowed信号が上がり、転送を開始できる。DRAMコントローラ53では、アクセスを許可するブロック(図示せず)を決定すると、コマンド制御回路が動き出して転送ブロックに合わせたシーケンスでコマンドを発行する。
CPUインターフェース(「CPUインターフェース回路」または「CPUインタフェースブロック」とも言う。)について説明する。この回路は、複数のCPUのローカルバスと接続されてアクセス要求とデータ転送を行う。DRAMコントローラ側に対してはDRAM転送要求と転送が許可された後のデータ転送を行う。CPUローカルバスとのインターフェースは、転送要求信号と共にアドレスやRead、Write方向、転送データサイズなどの信号が接続される。
図6はCPUインターフェースが複数のローカルバスとDRAMコントローラを接続する。2つのインターフェースブロックとしてCPU1及びCPU2を与える。DRAMアクセスブロック1及び2は、情報機器の他の機能させるブロックである。アクセスブロック63及び64は、例えばデータフローでのデータ書込み/読取りのためのブロックである。2つのCPUから、共有されているそれぞれのメインメモリ領域へのアクセスをCPUインターフェース52の回路を経由して外部DRAMメモリ67に対して行う。転送要求信号(REQ信号)は、キューを管理する要求待ち制御(Request Queue Control)回路54に送られる。最初の要求はこの制御回路54により即座に処理されてDRAMコントローラ53にDRAM転送要求が送られる。DRAMコントローラに含まれるアービタ65は、他のブロックを含めた転送要求の調停を行う。DRAMコントローラは、CPU転送(CPUアクセス転送)を許可するときはAllowed信号を上げる。Allowed信号を受け取ったDRAMコントローラインターフェース回路54は、メモリアドレスやWriteデータ、Readデータの転送をDRAMコントローラ53との間で行う。
CPUからのDRAM転送要求でAllowed信号が上がらないときは、他のブロック63または64がデータ転送中などでアクセスが許可されないときである。DRAMコントローラインターフェース54は、REQ信号は上げたまま許可されるのを待つ。このとき次の転送要求が来ると要求待ち制御(Request Queue Control)回路54はその要求を受けつける。要求のキュー(要求待ち)のされ方により、上述した3つの手法a、b、cを使い分ける。2つの要求キューが2つのCPUからのアクセスの場合は、手法aにより、Allowed信号が来たらbank interleave信号(BI信号)を上げてバンクインターリーブによる転送を実行できる。ただし、2つのCPUからの要求アドレスのBankアドレスが違う必要がある。2つの要求キューが同一のCPUからの場合は、手法bにより、Allowed信号が来たらContinue信号を使って2つの要求を1回のサイクルで転送する。または手法cにより、転送効率を向上させることができる。つまり、動作aの実行中に、処理しているCPUから次の要求が来ると、そのサイクル実行中に動作bを行う。
次の転送要求をキューできるかどうかは、CPUの仕様に拠る。Write要求はWriteするデータを受け取ったらメインメモリに実際に転送してなくてもサイクルを終了させることができる。先読みが可能なCPUではRead転送も要求だけキューしておいて後でReadデータを受け取ることが可能である。
DRAMコントローラ53について説明する。バンクインターリーブによる転送実行は、上記REQ信号がまだ受理されていないとき、つまりAllowed信号が上がってないときに複数のCPUからのアクセス要求があるときに実行される。また、CPUインターフェース52は、Allowed信号が上がって転送権を得ると、DRAMコントローラのコマンド・シーケンス・コントローラ66との間で適切なタイミングで転送モード情報、アドレス、データの転送を行う。データ転送が終わると適当なタイミングでPrechargeコマンドを発行するなど、サイクル終了となる。その前にCPUインターフェース52は、転送要求キューの状態を調べて次の転送が可能ならばContinue信号を上げて次の転送をDRAMコントローラに要求する。Continue信号を受けたDRAMコントローラは、次の転送コマンド(Write又はRead)を発行し、キューにある次の要求を処理する。なお、アービタ(arbiter)65は、複数のブロックからのアクセス調停をする。
図7は、本発明を実行する、コマンドシーケンスのフローチャートを示す。このフローチャート(左図)は、複数(例えば2つ)のCPUのメインメモリを共有するシステムにおける本発明の動きを、コマンドシーケンス制御のフローとして示す。右図は、各ステップにおけるCPUインターフェース及びDRAMコントローラの機能を示す。
●ステップ0
・CPUインターフェース:
転送モード(Read/Write)及びアドレスをDRAMコントローラに送る。
●ステップ1
・CPUインターフェース:
1つまたは2つのCPUから転送要求を受け取る。2つのCPUから要求があり、かつそれらのバンクアドレスが異なる場合は、バンクインターリーブが可能である。DRAMコントローラへBank Interleaveモードにはいることを示すBI信号を送る。
●ステップ2
・DRAMコントローラ:
BI信号を受け取ったかチェックする。
BI信号の場合、BI信号を受け取り、該当するバンクに対する複数のActivateコマンドを発行する。
BI信号でない場合1つのActivateコマンドを発行する。
●ステップ3
・CPUインターフェース:
続いてキューされているメインメモリ転送、ReadまたはWriteを実行する。Bank Interleaveモードの時は、複数(例えば2つ)のCPUからのそれぞれのアクセスがキューされているため、それらを実行する。転送は、転送ワードをカウントしながら、CPUに指定されたサイズ分終了するまでバースト転送される。
・DRAMコントローラ:
CPUインターフェースがバース転送を終了したらステップ4に移動する。
●ステップ4:
・CPUインターフェース:
この時点で次の転送要求が来ている場合かつそれらの要求アドレスがBIモード可能なアドレスの場合、Continue信号をDRAMコントローラに送る。
・DRAMコントローラ:
Continue信号が立っていることをチェックする。
Continue信号が立っている場合は、ステップ3に移動する。
Continueがたっていない場合は、ステップ5に移動しこの転送サイクルは終了する。
●ステップ5:
・DRAMコントローラ:
転送サイクルが終了の場合は、PrechargeコマンドがROWへのアクセスをクローズする処理を行う。
次に、BI信号とContinue信号をCPUインターフェースが上げる条件を考える。DRAMメモリでは連続したアドレスには追加のオーバーヘッドなしで連続アクセスできる。具体的にはDRAMメモリのバンクアドレスとRowアドレスが同じ場合である。DRAMメモリは、bank、row、columnのアドレスがある。bank、rowアドレスが同じならその中で任意のcolumnアドレスにアクセスできる。これは図7のステップ3を繰り返すことであり、したがってこの条件では複数個のアクセス要求を1回分のオーバーヘッドで転送できる。
Rowアドレスが異なるとActivateコマンドをその都度発行する必要がある。これは、図7のステップ2が必要となる。ステップ5のPrechargeコマンドは、Bankアドレスを指定してそのバンクに対して行うので、Rowアドレスが違ってもBankアドレスが同じなら1回のPrechargeですむ。
バンクアドレスが異なると、Activateコマンドを発行しなければならない。転送終了後のRechargeコマンドはすべてのバンクに対するコマンド発行が可能なためオーバーヘッドは増えない。このようにバンクインターリーブを使用して、複数のCPUからのアクセスを1回の転送で実行することにより、Prechargeコマンド分のオーバーヘッドを削減できる。
本発明において最大の効果を得られるのは複数のCPUからの転送要求で、バンクアドレスが異なり、さらにそれぞれがBankアドレス、Rowアドレスが同一の要求を連続して行う場合である。そこで上記実施例ではContinue信号を上げる条件はBank、Rowアドレスが前の転送と同じ場合とした。ここでBankアドレスなどはDRAMのアドレスである。CPUが使うアドレスは論理アドレスでありDRAMアドレスは物理アドレスであるので、CPUインターフェース回路がCPUの論理アドレスからContinue条件を判断する方法が必要である。そこで、論理アドレスのどのビットがBankアドレスにマップされ、どのビットがRowアドレスにマップされているかを示すテーブルをDRAMコントローラからCPUインターフェースに渡す。これにより、CPUインターフェースは前後の要求のアドレスが同じ物理アドレスかどうか判定してContinue条件とする。これは図6に、CPUインターフェースとDRAMコントローラの間にある”PADDR Table”信号で示している。
以上の本実施例では、CPUインターフェース、DRAMコントローラ双方に以上の機能を実装することにより、複数のCPUからの複数の要求を1回のDRAMアクセスサイクルで転送可能となり、帯域使用効率の向上が実現できる。例としてキャッシュサイズが32バイトのCPUのアクセスを考える。DRAMのバス幅が32ビットの場合、DDR3 SDRAMでは1ワードが4バイトなので8バーストで転送できる。DDRメモリは1クロックで2バーストするため、データ転送クロックは4クロックである。しかし、DDR3 SDRAMのACタイミング規定より、このサイクルはReadで22クロックほどかかる。このクロック数は動作周波数などに依存する。このアクセスだけに限れば、オーバーヘッドの比率は8割以上となる。これを本特許の機能で例えば2つのCPUからの2つの転送をまとめて1回のサイクルで転送すると、オーバーヘッドの比率を50%ほどまで小さくしながら、合計64バイトを転送できる。
本発明によれば、CPU以外の転送として、データフロー転送があり、その合間にCPU転送を割り込ませるアービターシステムの枠組みの中で、複数の(バースト長の短い)CPUからのアクセスを効率よく転送する。バースト長が短いと相対的にDDRメモリの転送オーバーヘッドはおおきくなり、転送効率が落ちる。本発明の範囲は、かかる共有化メモリの利用環境で、なるべく多くのCPUアクセスを最大効率で入れ込みたいというものである。
10…テープドライブ、
11…インターフェース
12…バッファ、
13…チャネル、
14…ヘッド、
15…モータ、
16…コントローラ(ASIC)、
17…ヘッド位置制御システム、
18…モータドライバ
20…カートリッジ
21、22…リール
30…ホスト、
40…バッファマネージャ・ブロック
50…C2ECC計算機
60…ホスト転送ブロック
70…テープ転送ブロック
80…プロセッサ
90…ファームウェア

Claims (7)

  1. 複数のCPUと他の機能ブロックとにメモリを共有化させるメモリアクセス装置であって、
    前記メモリをバッファとして使用する他の機能ブロックと、
    前記CPUのバスに接続され、メモリへの前記複数のCPUからのアクセス(CPUアクセス)要求を制御するCPUインターフェースと、
    前記CPUインターフェースに接続され、前記メモリへの前記CPU及び前記機能ブロックからのアクセス(機能ブロックアクセス)要求の調停を行うメモリコントローラとを備え、
    前記CPUインターフェースは、前記複数のCPUアクセス要求を待機させ、かつ各アクセスのアドレス、データ転送モード及びデータサイズを受取り保管し、前記メモリコントローラに前記アクセス要求を知らせ前記アクセス要求に対して許可信号を受けた場合に、前記許可信号に応じて前記メモリコントローラに情報を送り
    前記アクセス要求信号に対して前記メモリコントローラから許可信号を受けない場合に、次の前記複数のCPUアクセス要求を待機させ、
    前記メモリコントローラは、前記アクセス要求信号を受取り、アクセス調停に基づいて転送を許可された前記CPUを指定して許可信号を前記CPUインターフェースに送り、1回のバスサイクルで複数のCPUアクセス要求を実行させ、
    複数の異なるCPUアクセス要求を受けたときに、他の前記機能ブロックアクセス要求の実行中であれば前記複数のCPUアクセス要求を待機させて前記他の機能ブロックアクセス要求のデータフロー転送が終了後に、前記複数のCPUアクセスを1回の転送サイクルで実行することを特徴とする、メモリアクセス装置。
  2. 前記メモリはDRAMである請求項1に記載の装置。
  3. 前記メモリコントローラは、(a)異なる前記複数のCPUアクセス要求をDRAMのバンクインターリーブにより、1回の転送サイクルで実行する請求項1に記載の装置。
  4. 前記メモリコントローラは、(b)他の前記機能ブロックアクセス要求を実行中に、待機している前記CPUアクセス要求と同じCPUから次のアクセス要求が発行される場合、前記複数のCPUアクセス要求を待機させて前記機能ブロックアクセス要求のデータフロー転送の終了後に、前記複数のCPUアクセス要求を1回の転送サイクルで実行する請求項3に記載の装置。
  5. 前記(a)の転送、及び前記(b)の転送を組み合わせて実行させる請求項4に記載の装置。
  6. 前記CPUインターフェースは、
    転送モード及びアドレスを前記メモリコントローラに送るステップと、
    複数のCPUアクセス要求を受け取り、かつそれらのバンクアドレスが異なる場合は、 バンクインターリーブモードにはいることを示すBI信号を前記メモリコントローラに転送するステップと、
    転送ワードをカウントし、続いて待機されているメインメモリ転送、ReadまたはWriteを前記カウントがそれぞれの転送の転送サイズに達するまで実行し、バンクインターリーブモードの時は、複数のCPUからのそれぞれのアクセスが待機されているため、それらを実行するステップと、
    次の転送要求が来ている場合かつそれらの要求アドレスが同じバンクアドレスの場合、CPUインターフェース回路はContinue信号を前記メモリコントローラに送るステップとを含み、
    前記メモリコントローラは、
    BI信号を受け取ったかチェックするステップと、
    CPUインターフェースからの知らせでバースト転送を停止するステップと、
    複数のCPUにContinue信号が立っていることを確認し、CPUインターフェース回路に待機されている次の要求を実行し、
    バースト転送を停止し、Continue信号がたっていない場合、以下のクローズするステップで終了するステップと、
    Prechargeコマンドをメモリに発行しバンククローズするステップとを含む請求項4に記載の装置。
  7. 前記メモリコントローラのステップは、
    BI信号を受取った場合、該当するバンクに対する複数のActivateコマンドをメモリに発行し、
    BI信号を受取らない場合、1つのActivateコマンドを発行するステップを含む請求項6記載の装置。
JP2012545649A 2010-11-25 2011-10-06 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法 Active JP5426036B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012545649A JP5426036B2 (ja) 2010-11-25 2011-10-06 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010262860 2010-11-25
JP2010262860 2010-11-25
JP2012545649A JP5426036B2 (ja) 2010-11-25 2011-10-06 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
PCT/JP2011/073053 WO2012070319A1 (ja) 2010-11-25 2011-10-06 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法

Publications (2)

Publication Number Publication Date
JP5426036B2 true JP5426036B2 (ja) 2014-02-26
JPWO2012070319A1 JPWO2012070319A1 (ja) 2014-05-19

Family

ID=46145677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012545649A Active JP5426036B2 (ja) 2010-11-25 2011-10-06 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法

Country Status (7)

Country Link
US (2) US9268721B2 (ja)
JP (1) JP5426036B2 (ja)
CN (1) CN103201725B (ja)
DE (1) DE112011103916B4 (ja)
GB (1) GB2500529B (ja)
TW (1) TW201234188A (ja)
WO (1) WO2012070319A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5426036B2 (ja) 2010-11-25 2014-02-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
US9208002B2 (en) 2012-01-06 2015-12-08 International Business Machines Corporation Equalizing bandwidth for multiple requesters using a shared memory system
CN103544123A (zh) * 2012-07-16 2014-01-29 深圳市中兴微电子技术有限公司 Sdram控制器及对sdram存储空间的访问方法
KR20150018291A (ko) * 2013-08-09 2015-02-23 에스케이하이닉스 주식회사 메모리 시스템
US9286208B2 (en) * 2014-02-07 2016-03-15 Kabushiki Kaisha Toshiba Controller controlling an interleave operation, solid-state drive including the controller, and control method controlling an interleave operation
JP5911548B1 (ja) 2014-10-23 2016-04-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP6114767B2 (ja) * 2015-01-28 2017-04-12 株式会社東芝 ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP5989818B2 (ja) * 2015-01-28 2016-09-07 株式会社東芝 ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
US10133493B2 (en) * 2016-03-01 2018-11-20 Marvell World Trade Ltd. DRAM controller with adaptive precharge policy
US10198216B2 (en) * 2016-05-28 2019-02-05 Advanced Micro Devices, Inc. Low power memory throttling
CN108536619B (zh) * 2017-03-03 2021-12-14 北京忆恒创源科技股份有限公司 快速恢复ftl表的方法与装置
US10628057B2 (en) * 2017-03-28 2020-04-21 Hewlett Packard Enterprise Development Lp Capability based locking and access of shared persistent memory
JP6890055B2 (ja) * 2017-06-30 2021-06-18 ルネサスエレクトロニクス株式会社 半導体装置
US11544168B2 (en) 2017-10-30 2023-01-03 SK Hynix Inc. Memory system
KR102499255B1 (ko) * 2018-02-19 2023-02-13 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
US10534731B2 (en) * 2018-03-19 2020-01-14 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays
US10714159B2 (en) * 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
JP7018833B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
CN110688331B (zh) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 一种SoC芯片及读取数据的方法
TWI671632B (zh) * 2018-10-24 2019-09-11 財團法人工業技術研究院 記憶體裝置及其復新資訊同步方法
CN109582226A (zh) * 2018-11-14 2019-04-05 北京中电华大电子设计有限责任公司 一种高速存储访问逻辑结构及其控制方法
JP7142562B2 (ja) * 2018-12-25 2022-09-27 ルネサスエレクトロニクス株式会社 半導体装置、および、データのアクセスを制御するための方法
CN113835673B (zh) * 2021-09-24 2023-08-11 苏州睿芯集成电路科技有限公司 一种用于降低多核处理器加载延时的方法、系统及装置
CN115225592B (zh) * 2022-06-01 2024-01-12 裕太微(上海)电子有限公司 一种直接存储器访问数据传输方法及系统
CN115480708B (zh) * 2022-10-11 2023-02-28 成都市芯璨科技有限公司 一种分时复用局部存储器访问的方法
CN116521096B (zh) * 2023-07-03 2023-09-22 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3317150B2 (ja) 1996-07-29 2002-08-26 日本電気株式会社 情報処理装置
US6182177B1 (en) * 1997-06-13 2001-01-30 Intel Corporation Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
JPH11120124A (ja) 1997-10-14 1999-04-30 Toshiba Corp バスアクセス装置、バス調停システム、cd−romデコーダ、dvd−romデコーダ及びcd−romドライブ
JP3999943B2 (ja) * 2001-03-13 2007-10-31 株式会社東芝 マルチバンクアクセス制御装置及びマルチバンクアクセス制御方法
DE60316197T2 (de) 2002-04-04 2008-04-10 Infineon Technologies Ag Verfahren und System zum Teilen eines Speichermoduls
JP2006099731A (ja) * 2004-08-30 2006-04-13 Matsushita Electric Ind Co Ltd リソース管理装置
GB2430053B (en) 2005-09-08 2010-09-22 Advanced Risc Mach Ltd Accessing external memory from an integrated circuit
CN101443734B (zh) * 2006-05-17 2012-12-05 Nxp股份有限公司 多处理系统以及执行多个数据处理任务的方法
US20080082707A1 (en) * 2006-09-29 2008-04-03 Synfora, Inc. Non-blocking bus controller for a pipelined, variable latency, hierarchical bus with point-to-point first-in first-out ordering
US8285895B2 (en) 2007-08-06 2012-10-09 Winbond Electronics Corporation Handshake free sharing in a computer architecture
US7861041B2 (en) 2007-09-04 2010-12-28 Advanced Micro Devices, Inc. Second chance replacement mechanism for a highly associative cache memory of a processor
CN102265348B (zh) * 2008-12-25 2017-08-25 联想企业解决方案(新加坡)私人有限公司 记录介质记录的数据的读出装置及方法
JP5426036B2 (ja) 2010-11-25 2014-02-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法

Also Published As

Publication number Publication date
DE112011103916T5 (de) 2013-10-10
GB2500529A (en) 2013-09-25
US9460763B2 (en) 2016-10-04
US9268721B2 (en) 2016-02-23
CN103201725B (zh) 2015-12-09
GB201311026D0 (en) 2013-08-07
WO2012070319A1 (ja) 2012-05-31
CN103201725A (zh) 2013-07-10
JPWO2012070319A1 (ja) 2014-05-19
DE112011103916B4 (de) 2021-11-25
US20140059286A1 (en) 2014-02-27
GB2500529B (en) 2020-03-25
US20160211006A1 (en) 2016-07-21
TW201234188A (en) 2012-08-16

Similar Documents

Publication Publication Date Title
JP5426036B2 (ja) 複数のプロセッサのメモリ共有化のためのメモリアクセス装置、及びそのアクセス方法
US11211141B2 (en) Storage system with multiple components and method for use therewith
US7707366B2 (en) Memory control device
US10453540B2 (en) Method and apparatus to prioritize read response time in a power-limited storage device
KR102519019B1 (ko) 액세스 효율에 기초한 메모리 요청의 순서화
EP2565794B1 (en) Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7188219B2 (en) Buffer control system and method for a memory system having outstanding read and write request buffers
US20180059976A1 (en) Storage System with Integrated Components and Method for Use Therewith
JP4866646B2 (ja) メモリーに送るコマンドの選択方法、メモリーコントローラー、コンピュータシステム
US11726704B2 (en) Buffer optimization for solid-state drives
US11500797B2 (en) Computer memory expansion device and method of operation
CN114902198B (zh) 用于异构存储器系统的信令
JP5068300B2 (ja) データフロー及びプロセッサのメモリ共有化ための装置、方法及びプログラム
US6836831B2 (en) Independent sequencers in a DRAM control structure
US11138102B2 (en) Read quality of service for non-volatile memory
US20220326860A1 (en) Method and apparatus to perform bank sparing for adaptive double device data correction
US20090276553A1 (en) Controller, hard disk drive and control method
JPH0442320A (ja) ファイルデータの転送装置

Legal Events

Date Code Title Description
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: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131127

R150 Certificate of patent or registration of utility model

Ref document number: 5426036

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150