JP4656862B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP4656862B2
JP4656862B2 JP2004159510A JP2004159510A JP4656862B2 JP 4656862 B2 JP4656862 B2 JP 4656862B2 JP 2004159510 A JP2004159510 A JP 2004159510A JP 2004159510 A JP2004159510 A JP 2004159510A JP 4656862 B2 JP4656862 B2 JP 4656862B2
Authority
JP
Japan
Prior art keywords
data
bus
memory
bank
read
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.)
Expired - Fee Related
Application number
JP2004159510A
Other languages
English (en)
Other versions
JP2005339348A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2004159510A priority Critical patent/JP4656862B2/ja
Priority to US11/130,217 priority patent/US7519774B2/en
Publication of JP2005339348A publication Critical patent/JP2005339348A/ja
Priority to US12/410,437 priority patent/US7783827B2/en
Priority to US12/848,777 priority patent/US8032715B2/en
Application granted granted Critical
Publication of JP4656862B2 publication Critical patent/JP4656862B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width

Description

本発明は、クロック同期で外付けメモリを制御可能なメモリ制御部を有する半導体装置に係り、例えばDDR(ダブルデータレート)メモリのインタフェースコントローラを備えたマイクロコントローラに適用して有効な技術に関する。
SDRAM(シンクロナス・ダイナミック・ランダム・アクセス・メモリ)などに代表されるクロックに同期動作されるシンクロナス・メモリはグラフィック用のフレームバッファやCPUのメインメモリなどに広く利用されている。例えばSDRAMは複数個のメモリバンクを有し、各メモリバンクはアドレスデコーダ、メモリアレイ、センスアンプアレイなどを有し、各々独立に制御可能にされ、複数メモリバンクがパイプライン的に動作されることによって、高速アクセス動作可能にされる。特にDDR形態のシンクロナスメモリはクロックの立ち上がり及び立ち下がりの両エッジに同期して外部とデータ入出力を行ない、SDR(シングルデータレート)のシンクロナスメモリに比べて更に高速化されている。特許文献1にはマルチバンクSDRAMの記載がある。特許文献2にはグラフィックポートやSDRAMコントローラを搭載したシステムコントローラの記載が有る。シンクロナスメモリはそのようなシステムコントローラに接続されてアクセス制御される。
特開平10−189889号公報
特開2000−132503号公報(図6)
本発明者は外部に接続されるDDRメモリに対してアクセスを行うCPU(中央処理装置)やグラフィック系モジュールを内蔵し、そのDDRメモリへのアクセスを制御するDDRメモリコントローラについて検討した。例えば32ビットのデータ入出力端子を有するDDRメモリの場合、1クロックサイクルでリード可能なデータはバス幅の2倍の64ビットとされるが、アクセス主体がワード又はロングワードのアクセスデータサイズでメモリアクセスを要求して来る場合、DDRメモリから1クロックサイクルでリードしたデータの大半がアクセス要求外のデータになり、無効にされる。アクセスアドレスが連続する場合にはその無効データの中に後続のアクセス要求に係るデータを含む可能性が高い。例えば、CPUなどからのバーストアクセス要求のアクセスデータサイズが1クロックサイクルによるアクセスデータサイズよりも小さいとき、指定されたバーストアクセス回数分だけ毎回1クロックサイクルのメモリアクセスを繰り返すと、折角リードしても無効にされるデータが多くなる。このように、メモリコントローラに要求されるアクセスデータサイズが外部メモリの単位アクセスデータサイズに比べて小さいときバスのスループットが悪くなることが明らかにされた。
外部メモリのバススループットもしくはデータスループットの悪化に対してはCPUのキャッシュメモリが効果を奏する場合がある。このようなCPUキャッシュメモリにおいてはキャッシュミスによるエントリ若しくキャッシュラインのリプレースなどを行なうためのキャッシュミスペナルティーの処理が比較的重い為、繰り返し利用されるプログラム及びデータをキャッシュ対象とすることが重要になる。これを考慮すると、フレームバッファに対する描画データや画像データに代表されるような繰り返し利用されることの少ないデータ、或いは頻繁に利用されることのないサブルーチンプログラムや制御データなどに対してはCPUキャッシュメモリによるキャッシュの対象としないことが得策になる。
本発明の目的は、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどが多用される場合に対して外付けメモリバスのバススループット若しくはデータスループットを向上させることができる半導体装置を提供することにある。
本発明の別の目的は、頻繁に繰り返しアクセスされずCPUキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムのアクセス要求に対してバススループット若しくはデータスループットを向上させることができる半導体装置を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係る半導体装置は、各々独立に制御可能な複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続された複数のバスと、前記複数のバスの各々に対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備える。前記メモリ制御部は、前記外付けメモリのバンクに各々対応する記憶領域としてのバンクキャッシュを有する。前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。これにより、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどを行なう場合に、外付けメモリから読み出されたデータをバンクキャッシュに格納し、格納しデータを無効にすることなく利用することが可能であるから、外付けメモリバスのバススループット若しくはデータスループットを向上させることができる。外付けメモリのバンクに各々対応するバンクキャッシュを有するから、複数バンクをパイプライン的に動作させることによる連続的なデータ読み出し対しても各バンクからのデータの保持に対応することができる。
本発明の具体的な形態では、一つの回路モジュールとしてCPUを有し、前記CPUと一つのバスとの間に配置されたキャッシュメモリを有し、前記メモリ制御部は、前記キャッシュメモリのキャッシュ非対象領域に対するアクセス要求に対して善意バンクキャッシュを有効とする。これにより、頻繁に繰り返しアクセスされず、前記キャッシュメモリのキャッシュの対象とすればキャッシュミスペナルティーによる大きな負担が強いられるような、CPUキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムに対して、バススループット若しくはデータスループットを向上させることができる。さらにCPUキャッシュとバンクキャッシュの双方でキャッシュ対象にする場合のようなコヒーレンシを保つ為の複雑な制御も必要ない。
本発明の更に別の具体的な形態では、前記外付けメモリは前記クロックに対してDDR動作されるメモリである。DDR動作ではSDR動作に比べて単位クロックサイクル当り2倍のリードデータを得ることができ、そのリードデータに対してバンクキャッシュを利用することにより、外付けメモリに対するリードデータのスループットを更に向上させることができる。このとき、前記バンクキャッシュは、前記外付けメモリの1個のバンクに対して前記クロックの1サイクルでアクセス可能なデータサイズに対応されるデータ記憶部を有する。DDR動作によるリードデータのラッチ機能を保証しつつキャッシュ制御の簡素化に資することができる。このバンクキャッシュの構成に対しては前記外付けメモリに対する1回のリードアクセス指示によるバーストアクセスによる全アクセスデータサイズが前記データ記憶部のデータサイズを超えるリードアクセス指示に対してバンクキャッシュを無効化することにより、更なるキャッシュ制御の簡素化に資することができる。前記バスの並列データビット数は例えば前記クロックの1サイクルで外付けメモリをDDR動作させて得られるデータサイズに等しくするのがよい。各々のバンクキャッシュのデータ記憶部のサイズと前記バスのサイズが整合してアクセス制御上好都合である。
〔2〕本発明の別の観点による半導体装置は、上記発明と同様に、複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続された複数のバスと、前記複数のバスの各々に対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備える。そして、一つの回路モジュールとしてCPUを有し、前記CPUと一つのバスとの間に配置されたキャッシュメモリを有する。このとき、前記メモリ制御部は、前記外付けメモリのバンクに各々対応するバンクキャッシュを有し、前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。前記キャッシュメモリのキャッシュ非対象領域に対するアクセス要求に対してバンクキャッシュを有効とし、前記回路モジュールから前記外付けメモリのリードアクセス要求に対してバンクキャッシュを有効としたとき、前記リードアクセスがバンクキャッシュに対して連想ミスの場合には当該連想ミスに係るデータを前記外付けメモリからリードするリードコマンドを発行し、これによりリードしたデータを対応するバンクキャッシュに格納すると共に前記リードアクセス要求元に対するデータとして出力する。これにより、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどを行なう場合に、一旦外付けメモリから読み出したデータをバンクキャッシュに格納して無駄なく利用可能であるから、外付けメモリバスのバススループット若しくはデータスループットを向上させることができる。外付けメモリのバンクに各々対応するバンクキャッシュを有するから、複数バンクをパイプライン的に動作させることによる連続的なデータ読み出し対しても各バンクからのデータの保持に対応することができる。頻繁に繰り返しアクセスされず前記キャッシュメモリのキャッシュの対象とすればキャッシュミスペナルティーによる大きな負担が強いられるような、CPUキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムに対して、バススループット若しくはデータスループットを向上させることができる。
本発明の具体的な形態では、前記メモリ制御部は、前記回路モジュールから前記外付けメモリのライトアクセス要求に対してバンクキャッシュを有効としたとき、前記ライトアクセスがバンクキャッシュに対して連想ヒットの場合には当該連想ヒットに係るキャッシュデータを無効化して、前記外付けメモリに当該連想ヒットに係るライトデータのライトコマンドを発行する。これにより、バンクキャッシュと外付けメモリとの間のコヒーレンシを維持するための複雑な制御が必要なくなる。メモリ制御部は複数のバスに接続されて複数の回路モジュールからのアクセス要求に応答して外付けメモリをアクセス制御し、どのバスからのアクセス要求に対しても全てキャッシュの対象にされるとは限らず、仮にこれを考慮してバンクキャッシュと外付けメモリとの間のコヒーレンシを維持する場合には複雑な制御が必要になる。
前記ライトアクセスがバンクキャッシュに対して連想ミスの場合には、前記外付けメモリに当該連想ミスに係るデータのライトコマンドを発行すればよい。
本発明の更に具体的な形態では、別の一つのバスには回路モジュールとして3次元描画用のグラフィックモジュールが接続され、更に別の一つのバスには回路モジュールとして2次元描画用のグラフィックモジュールが接続され、その他の一つのバスには回路モジュールとして表示コントローラが接続される。
本発明の別の具体的な形態では、アクセス要求に対して前記バンクキャッシュを有効にするバスと無効にするバスが混在する。例えばグラフィックモジュールによるアクセスでは同一ラスタ上で連続アドレスに配置されたデータを最大バースト数をもって連続リードするのが効率的であり、1クロックサイクルのアクセスデータサイズのバンクキャッシュのサイズを超えるデータサイズになるから、そのようなバスに関してはキャッシュ非対象にするのがよく、また、スタック領域に対する退避や復帰のためのデータサイズは16ビットや32ビットのようにCPUなどのデータ処理単位に整合するのでそれらデータの転送用途とされるバスに関してはキャッシュ対象にするのがよいからである。
本発明の別の具体的な形態では、前記バス毎にバスIDが割当てられるとき、前記メモリ制御部は、アクセス要求に対してバンクキャッシュが有効にされるバスと無効にされるバスのバスIDを定義する回路を有するのがよい。バスIDはアクセス要求に含まれ、アクセス要求やそれに対する応答のルーティングに用いられる。バスIDを定義する回路は、ハードワイヤードロジックで固定的に構成してもよいし、コントロールレジスタによってプログラマブルな定義可能に構成してもよい。メモリ制御回路にアクセス要求を伝達するバス単位でキャッシュ有効/無効を決定できれば、バンクキャッシュのヒット率向上に寄与する。
本発明の別の具体的な形態では、前記メモリ制御部は、回路モジュールからアクセス要求があったとき、それに付随するアクセスデータサイズにしたがって前記バンクキャッシュの有効又は無効を決定してもよい。メモリ制御回路へのアクセス要求に付随するアクセスデータサイズに応じてキャッシュ有効/無効を決定できれば、バンクキャッシュのヒット率向上に寄与する。前記メモリ制御部は、バンクキャッシュの有効又は無効を決定するためのアクセスデータサイズを定義する回路を有する。そのようなアクセスデータサイズを定義する回路は、ハードワイヤードロジックで固定的に構成してもよいし、コントロールレジスタによってプログラマブルな定義可能に構成してもよい。
〔3〕本発明の更に別の観点による半導体装置は、複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、前記メモリ制御部は、前記外付けメモリのバンクに各々対応するバンクキャッシュを有し、前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。前記バスはスプリットトランザクション型のバスとされる。スプリットトランザクション型のバスでは、アクセス要求回路からのリクエストパケットをアクセス応答回路が受取り、その要求に応答するレスポンスパケットをアクセス要求回路に返すようになっており、リクエストパケットとレスポンスパケットを含んで構成される一連の処理(トランザクション)はアクセス要求回路に固有のトランザクションIDによってその他のトランザクションから識別可能にされる。前記メモリ制御部は、前記回路モジュールから前記外付けメモリへの連続する複数のリードアクセスの指示に応答する複数のリードデータを前記バスに返すとき、前記回路モジュールからのリードアクセスの指示順に対してリードアクセス要求元へのリードデータの出力順を変更するリオーダリングが可能である。これは、一つのトランザクションはそれに固有のトランザクションIDによってその他のトランザクションか識別できることによって可能になる。
アクセス要求順に応答を返さなければならないとすると、要するに上記リオーダリングを行なわないとするなら、バンクキャッシュにヒットしたアクセス要求の応答データは、バンクキャッシュに連想ミスする先のアクセス要求の応答データよりも早く取得することができるが、前者の応答をアクセス要求元に返すのに後者の応答が有るまで待たなければならず、結果として、システムのデータスループットを悪化させる。上記手段では、前記回路モジュールからのリードアクセスの指示順に対して、連想ヒットしたバンクキャッシュからのリードデータを、バンクキャッシュの連想ミスに係る外付けメモリからのリードデータよりも先行させてリードアクセス要求元へのデータとして出力することができる。アクセス要求に対する応答を受取るのに余計に待つことを要しない。
〔4〕本発明の更に別の観点による半導体装置は、複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、前記メモリ制御部は、回路モジュールから前記バスのビット数より小さいアクセスデータサイズでバーストリードが要求されたとき、前記要求されたバーストリードのバースト数より少ない回数で前記外付けメモリにリード要求を連続的に発行可能である。換言すれば、前記バスのビット数より小さいアクセスデータサイズでバースト数を指定した前記回路モジュールからのアクセス要求に応答して、外付けメモリに対し1回のリード要求で受信する全データを有効として連続的に複数回リード要求を発行する。要するに、バス制御部は、回路モジュールからのアクセス要求に応じて外付けメモリに発行するリード要求をマージする。例えば、前記バスのビット数と、前記外付けメモリから1クロックサイクルでリード可能でデータビット数とが等しい場合、回路モジュールからのバーストリード要求のアクセスデータサイズがバスのビット数の1/nのとき、バス制御部は外付けメモリに対するn回路のリード要求を1回のリード要求にマージする。これにより、バス制御部が外付けメモリに発行するリード要求の回数が1/nとされ、バス制御部は外付けメモリからのリードデータを毎回全ビット有効とし、回路モジュールには要求されたアクセスデータサイズ毎に応答を返す。これにより、外付けメモリのバススループットを向上させることができ、外付けメモリに対する回路モジュール間でのアクセス競合の割合が低減し、システムのデータスループットが向上する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、外付けメモリのデータバス幅より小さいデータサイズによる連続リードなどが多用される場合に対して外付けメモリバスのバススループット若しくはデータスループットを向上させることができる。
頻繁に繰り返しアクセスされずCPUのキャッシュメモリによるキャッシュの対象とされ難いようなデータやプログラムのアクセス要求に対してバススループット若しくはデータスループットを向上させることができる。
《画像処理プロセッサ》
図1には本発明の一例に係る画像処理プロセッサが例示される。同図に示される画像処理プロセッサ1は、特に制限されないが、相補型MOS(CMOS)集積回路製造技術により、単結晶シリコンなどの1個の半導体基板(半導体チップ)に形成され、例えばカーナビゲーションに必要な画像処理および音声処理機能、並びにDDR−SDRAM(ダブル・データ・レート・シンクロナス・ダイナミック・ランダム・アクセス・・メモリ:double data rate synchronous dynamic random access memory)インタフェース等を備える。
画像処理プロセッサ1は、プロセッサコア2及びクロック発生回路(CPG)3を有し、プロセッサコア2が接続するスーパーハイウェイバス(SHB)4にはバスブリッジ回路(BBRG)5、ダイレクトメモリアクセスコントローラ(DMAC)6、3次元画像の描画処理などの3次元画像処理を行う3Dエンジン(3DGFC)7、RAM8、割り込みコントローラ(INTCF)9及びメモリ制御部としてのDDR―SDRAMコントローラ(NCEMI)10が接続される。プロセッサコア2は、フェッチした命令を実行する中央処理装置(CPU)11、浮動小数点演算ユニット(FPU)12及びキャッシュメモリユニット/メモリマネージメントユニット(CACH/MMU)13を有する。キャッシュメモリユニット13(CACH)はキャッシュ対象アドレスエリアに配置されたメモリや入出力レジスタが保有するデータ及びプログラムをそのアクセス頻度に応じてリプレース可能に保持する連想記憶構造を有する。クロック発生回路(CPG)3は画像処理プロセッサ1の各部に同期動作用のクロックCLKiを供給する。前記キャッシュメモリユニット13(CACH)は以下単にCPUキャッシュメモリ13(CACH)とも記す。
前記DDR―SDRAMコントローラ(NCEMI)10に接続されるDDR―SDRAM61はCPU11のメインメモリ又はフレームバッファ等に利用される。前記バスブリッジ回路5には、第1周辺バス(PBF)21、第2周辺バス(PBS)22及び外部バス(EXB)23が接続される。3Dエンジン7は3Dバス(3DB)24を介してDDR―SDRAMコントローラ(NCEMI)10に接続される。DDR−SDRAMコントローラ(NCEMI)10には更にグラフィックバス(GFB)20が接続される。DDR−SDRAMコントローラ(NCEMI)10は外部においてDDRメモリバス(MRB)25に結合される。
前記スーパーハイウェイバス4はマルチマスターバス若しくはスプリットトランザクション型のバスとされる。スーパーハイウェイバス4に接続する夫々の回路モジュールはマスターポートとスレーブポートを独立に有しており、自回路モジュールからのリード/ライトの転送要求はマスターポートからリクエストパケットとして発行され、他回路モジュールからの転送要求はバス調停回路での調停を経た結果、スレーブポートにリクエストパケットとして通知され、バストランザクションが実行される。バス調停回路は特に図示はしないがスーパーハイウェイバス4の途中に配置されている。このマルチマスターバス制御方式により、スーパーハイウェイバス4はそれに接続される回路モジュール間の全ての組み合わせの転送が可能にされる。例えばCPU11とDMAC6、バスブリッジ回路5とNCEMI10、バスブリッジ回路5とCPU11、の間の転送等が可能である。
前記3Dバス24に接続される3DGFC7はスーパーハイウェイバス4を介してCPU11から3D描画コマンドなどの画像処理コマンドを受取って3D描画処理を行う。描画はNCEMI10を介して図示を省略する前記DDR−SDRAM61のフレームバッファ領域に対して行なわれる。
グラフィックバス20には、2次元画像処理を行なう2Dエンジン(2DGFC)30、表示制御回路(DU)31、シリアルインタフェース回路(IEEE1394)32、色空間変換ユニット(YUV)33、ATアタッチメントパケットインタフェース回路(ATAPI)34、ビデオ信号入力回路(VIN)35、ユニバーサル・シリアル・バス・ファンクションコントローラ(USB)36が接続される。表示制御回路31はフレームバッファ領域に描画された画像データを順次読み出、ラスタスキャン型のディスプレイに表示タイミングに同期させて出力する制御を行う。ビデオ信号入力回路35はディジタルビデオ信号を入力する。ATAPI34はハードディスクドライブ、DVD又はCD−ROMドライブ等のディスクドライブ装置とのインタフェース制御を行う。
グラフィックバス20はスーパーハイウェイバス4と同様にスプリットトランザクション型のバスとされるが、バスのソース、デスティネーションの一方は必ずDDR−SDRAMコントローラ10になっている。すなわち、バスブリッジ回路5、2DGFC30、DU31、シリアルインタフェース回路32、YUV33、ATAPI34、VIN35、USB36はDDR−SDRAMインタフェース10を介してDDR−SDRAM61との間の転送のみを行う。それら画像系の回路モジュール30などは自回路ブロックで画像処理を行った後にはDDR−SDRAM61に一旦データを格納する必要があるか、或いはDDR−SDRAM61のデータをDU31に転送する必要があり、全ての転送は必ずDDR−SDRAMコントローラ10を経由する構成になっている。
第1周辺バス21には前記INTC37、2DGFC30、DU31、シリアルインタフェース回路32が接続される。
第2周辺バス22には、調歩同期シリアルコミュニケーションインタフェース回路(SCIF)40、パルス幅変更タイマ(PWM)41、IEC60958オーディオコントローラ(SPDIF)42、ソースレートコンバータ(SRC)43、GPS(Global Positioning System)サーチ/トラッキングエンジン(GPS)44、及び前記クロック発生回路3が接続される。
前記第1周辺バス21及び第2周辺バス22はシングルマスターの32ビットバスであり、バスブリッジ回路5がバスマスターになっている。
前記CPU11は例えば32ビットCPUでありデータ処理単位は32ビットとされる。このCPU11は1サイクルで複数の命令を発行するスーパースカラ構造を有することにより、動作周波数の約2倍の命令処理実行能力を有する。即ち、CPU11は所謂2ウェイ・スーパースカラ構造を有する。これに呼応して前記スーパーハイウェイバス4は64ビットバスとされる。したがって、CPU11は並行に2命令を実行して夫々32ビットのデータを2組用意し、用意された合計64ビットの2組のデータを1バスサイクルでスーパーハイウェイバス4へ転送可能である。また、CPU11は1バスサイクルでスーパーハイウェイバス4から64ビットのデータをリードし、リードした下位32ビットと上位32ビットを別々に並行して演算処理することも可能にされる。
図2にはDDR−SDRAM61の概略ブロックが示される。DDR−SDRAM61は、特に制限されないが、4個のメモリバンクBNK0〜BNK3を有する。各々のメモリバンクBNK0〜BNK3はメモリアレイ(ARY)62、ロウアドレスデコーダ(RDEC)63、センスアンプアレイ(SAA)64、カラム入出力回路(CIO)65及びカラムアドレスデコーダ(CDEC)66を有する。各メモリアレイ62は、マトリクス配置された多数のダイナミック型のメモリセルを備え、メモリセルの選択端子は列毎にワード線に接続され、メモリセルのデータ入出力端子はセンスアンプを介して折り返された一方の相補ビット線に結合される。
ロウアドレスデコーダ63にはロウアドレスバッファ/リフレッシュカウンタ(RABF/RCUNT)67から内部ロウアドレスが供給される。カラムアドレスデコーダ66にはカラムアドレスバッファ/バーストカウンタ(CABF/BCUNT)68から内部カラムアドレスが供給される。内部ロウアドレス及び内部カラムアドレスは選択的にアクティブにされるメモリバンクに供給される。カラム入出力回路65はデータコントロールロジック(DCLGC)70を介して選択的にデータ入出力バッファ(DIOB)71に接続され、メモリバンク単位でリードデータの出力、ライトデータの入力が可能にされる。データ入出力バッファ71は32ビットのデータ入出力端子DQ0〜DQ31に接続される。
DDR−SDRAM61は例えば15ビットのアドレス入力端子A0〜A14を有する。アドレス入力端子A0〜A14にアドレスマルチプレクス形態で供給されるロウアドレス信号及びバンク選択信号はロウアドレスバッファに、カラムアドレス信号はカラムアドレスバッファ7に、モードレジスタ設定情報はタイミングコントローラに供給される。4個のメモリバンクBNK0〜BNK3は2ビットのバンク選択信号の論理値にしたがってその動作が可能(バンクアクティブ)にされる。メモリバンクBNK0〜BNK3は独立にその動作が制御可能にされる。
DDR−SDRAM61の動作制御はタイミングコントローラ(TCNT)72が行なう。タイミングコントローラ72にはクロック信号CLK、/CLK、クロックイネーブル信号CKE、チップセレクト信号/CS、カラムアドレスストローブ信号/CAS、ロウアドレスストローブ信号/RAS、ライトイネーブル信号/WE、及びデータストローブ信号DQSなどの外部制御信と共に、前記モードレジスタ設定情報が入力される。DDR−SDRAM61の動作はそれら入力信号の状態の組み合わせによって規定されるコマンドで決定され、タイミングコントローラ72は、そのコマンドで指示される動作に応じた内部タイミング信号を形成するための制御ロジックを有する。
クロック信号CLK、/CLKはDDR−SDRAM61のマスタクロックとされ、その他の外部入力信号は当該クロック信号CLKの立ち上がりエッジに同期して有意とされる。チップセレクト信号/CSはそのローレベルによってコマンド入力サイクルの開始を指示する。/RAS,/CAS,/WEの各信号はコマンドサイクルを定義するための信号とされる。入力信号としての前記データストローブ信号DQSは書込み動作時にライトストローブ信号として外部から供給され、書込みデータの確定タイミングを規定する。出力信号としてのデータストローブ信号DQSは読み出しデータの外部出力に同期して変化されリードストローブ信号とされる。読み出しデータの出力タイミング及び出力信号DQSの変化は図示を省略するDLL(ディレイ・ロックド・ループ)回路を用いてクロック信号CKに同期される。DLL回路は、特に制限されないが、レプリカ回路技術と、位相同期技術とによって、クロックCLKに対する内部回路の信号伝播遅延時間特性を補償した内部クロック信号を生成する。この内部クロック信号に同期してリードデータを出力すると共に出力信号DQSをクロック変化させる。結果として、クロックCLKと出力クロックDQSの位相は高精度で一致される。
アクセスコマンドにはロウアドレスストローブ・バンクアクティブコマン(RASBAコマンド)、カラムアドレス・リードコマンド(CARコマンド)、カラムアドレス・ライトコマンド(CAWコマンド)などが有る。
RASBAコマンドは、メモリバンクの選択と選択されたメモリバンクのロウアドレスの指示を有効にするコマンドであり、これにより、指定されたメモリバンクにおけるワード線が選択され、当該ワード線に接続されたメモリセルが夫々対応する相補データ線に導通される。
CARコマンドはリード動作のカラムアドレスを与える為のコマンドであり、これによってカラムアドレス信号がカラムアドレスバッファに取り込まれ、カラム系選択動作が行なわれる。バースト動作ではその次以降のカラム系選択動作ではバーストカウンタでインクリメントしたカラムアドレスを用いる。カラム系選択動作では、先にRASBAコマンドにてアクティブにされているメモリバンクで64ビット単位のビット線選択動作が行なわれ、選択されたビット線のデータは出力信号DQSの立ち上がり及び立ち下がりに同期して32ビット単位で外部に連続的に出力される。連続的に読出される回数は上記バースト数(バーストレングス)によって指定された回数とされる。DDR−SDRAM61の場合、バースト数は整数の2の倍数とされる。また、データ出力回路からのデータ読出し開始はCASレイテンシーで規定されるクロック信号CLKのサイクル数を待って行われる。
CAWコマンドはライト動作のトライトアドレスを与えるためのコマンドであり、これによって取り込まれたカラムアドレス信号はアクティブにされているメモリバンクの書込みスタートアドレスとされ、そのアドレスには、入力信号DQSの立ち上がり及び立ち下がりに同期して32ビット単位で供給される書込みデータが64ビット単位で書込まれる。ライト動作にはCASレイテンシーの設定はなく、ライトデータの取り込は、当該CAWコマンドサイクルからクロック信号CLKの1サイクル遅れてデータストローブ信号DQSに同期して開始される。
DDR−SDRAM61においては、一つのメモリバンクでバースト動作が行われているとき、その途中で別のメモリバンクを指定して、ロウアドレスストローブ・バンクアクティブコマンドが供給されると、当該実行中の一方のメモリバンクでの動作に何等影響を与えることなく、当該別のメモリバンクにおけるロウアドレス系の動作が可能にされる。即ち、バンクアクティブコマンドなどによって指定されるロウアドレス系動作とカラムアドレス・ライトコマンドなどによって指定されるカラムアドレス系動作とは、相違するメモリバンク間で並列可能になっている。したがって、データ入出力端子DQ0〜DQ31においてデータが衝突しない限り、処理が終了していないコマンドの実行中に、当該実行中のコマンドが処理対象とするメモリバンクとは異なるメモリバンクに対するプリチャージやRASBAコマンドなどを発行して、内部動作を予め開始させることが可能である。DDR−SDRAM61は、クロック信号CLKに同期するデータストローブ信号DQSの立ち上がり及び立ち下がりの両エッジに同期したデータ入出力が可能にされ、クロック信号CLKに同期してアドレス、制御信号を入出力できるため、DRAMと同様の大容量メモリをSRAMに匹敵する高速で動作させることが可能であり、また、選択された1本のワード線に対して幾つのデータをアクセスするかをバーストレングスによって指定することによって、内蔵カラムアドレスカウンタ10で順次カラム系の選択状態を切換えていって複数個のデータを連続的にリード又はライトすることもできる。
《DDR−SDRAMコントローラ》
図3にはDDR−SDRAMコントローラ10のブロック図が示される。DDR−SDRAMコントローラ10は、スーパハイウェイバスインタフェース(SHBIF)80、3Dバスインタフェース(3DBIF)81、グラフィックバスインタフェース(GFBIF)82、バスアービタ(BARBT)83、及びDDRコントローラ(DDRCNT)84を有する。
前記SHBインタフェース80にはSHB4が接続され、3DBインタフェース81に3DB24が接続され、GFBインタフェース82にはGFB20が接続される。GFB20は128ビット乃至32ビットのモジュール間専用バスとして構成される。前記インタフェース80〜83はマスタポートとスレーブポートを有し、スプリットトランザクションバスのバストランザクションを実行する。バスアービタ83は前記インタフェース80〜82を介する回路モジュールとDDRコントローラ(DDRCNT))84との間のデータ転送若しくはパケット転送を調停する。
DDRコントローラ84はバスアービタで調停されたアクセス要求を満足するように、DDR−SDRAM61に対するクロック同期のコマンド発行及びデータ入出力動作を制御する。その基本的な制御は図2に基づいて説明したDDR−SDRAM61のバーストリード動作やライト動作に対する一般的なDDR−SDRAMのアクセス制御であり、その制御ロジックはDDRアクセス制御部(ASCNT)85が備える。DDRコントローラ84にとって特徴的な構成は、DDR−SDRAM61の4個のメモリバンクBNK0〜BNK3に各々対応する記憶領域としてのバンクキャッシュCACHB0〜CACHB3を有することである。前記バンクキャッシュCACHB0〜CACHB3は対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能である。バンクキャッシュCACHB0〜CACHB3に対する制御ロジックはキャッシュ制御部(CHCNT)86が備える。その他にDDRコントローラ84はリードデータの出力制御部(DOCNT)87、バンクキャッシュCACHB0〜CACHB3のデータとDDR−SDRAMからのデータを選択するセレクタ(DSEL)88を有する。バンクキャッシュCACHB0〜CACHB3のうちの何れか一つ又はそれらを総称してバンクキャッシュCACHBとも記す。
バンクキャッシュCACHB0〜CACHB3の各々は記憶領域として図4に例示されるアドレス部ADR,Vとデータ部DATを有する。データ部DATはDDR−SDRAMのクロックDQSの1サイクルでアクセス可能なデータサイズの記憶領域とされる。具体的には64ビットとされる。アドレス部ADRにはDDRE−SDRAMのメモリバンクに対して一つのロウアドレス及び2個のカラムアドレスで指定される範囲を定義するアドレス、即ちロウアドレス及びから最下位ビットを除くカラムアドレスが格納される。アドレス部Vには当該バンクキャッシュの有効性を示すバリッドビットが格納される。各々のバンクキャッシュCACHB0〜CACHB3は1個のキャッシュエントリを保有する事ができる。前記バンクキャッシュCACHB0〜CACHB3はSRAM(スタティック・ランダム・アクセス・メモリ)やレジスタ等で構成される。
《バンクキャッシュ》
キャッシュ制御部(CHCNT)86によるバンクキャッシュに対する制御形態を説明する。バスアービタ83で調停されて供給されるアクセス要求には、アクセス要求基におけるトランザクションID、アクセス要求が転送されたバスを特定するバスID、アクセスの種別を示すアクセスコマンド、アクセスアドレス、バースト長、書込みアクセスの場合には書込みデータを含む。
キャッシュ制御部86は、アクセスアドレスがCPUキャッシュメモリ13(CACH)のキャッシュ非対象領域であるときバンクキャッシュCACHBを動作可能にする。アクセスアドレスがCPUキャッシュ対象領域であるときはバンクキャッシュCACHBを動作させない。これにより、頻繁に繰り返しアクセスされず、前記CPUキャッシュメモリ13(CACH)のキャッシュの対象とすればキャッシュミスペナルティーによる大きな負担が強いられるような、CPUキャッシュメモリ13(CACH)によるキャッシュの対象とされ難いようなデータやプログラムに対して、バススループット若しくはデータスループットを向上させることができる。さらにCPUキャッシュメモリ13(CACH)とバンクキャッシュCACHBの双方でキャッシュ対象にする場合、記憶情報のコヒーレンシを保つ為の複雑な制御も必要ない。
また、キャッシュ制御部86は、アクセス要求に対してバンクキャッシュCACHBを動作可能にするバスを限定する。例えばSHB4からのアクセス要求に対してだけバンクキャッシュCACHB0〜CACHB3を動作可能にする。例えばDGFC7や2DGFC30等のグラフィックモジュールによるアクセスでは同一ラスタ上で連続アドレスに配置されたデータを大きなバースト数をもって連続リードするのが効率的であり、それによる一連のアクセスデータサイズがバンクキャッシュCACHBの記憶容量を超えることになるから、そのようなバスに関してはキャッシュ非対象にするのがよく、また、スタック領域に対する退避や復帰のためのデータサイズは16ビットや32ビットのようにCPU11などのデータ処理単位に整合するのでそれらデータの転送用途とされるSHB4バスに関してはキャッシュ対象にするのがよいからである。
また、キャッシュ制御部86は、前記DDR−SDRAM61に対する1回のリードアクセス指示によるバーストアクセスによる全アクセスデータサイズが一つのバンクキャッシュCACHBのサイズを超えるリードアクセス指示に対してはバンクキャッシュCACHB0〜CACHB3を動作させない。要するに、DDR−SDRAM61に対する1回のリードアクセスコマンドによるアクセスがバースト数2でなければバンクキャッシュCACHB0〜CACHB3を動作させない。同一メモリバンクからのバーストリードデータ長さが一つのバンクキャッシュCACHBのデータ部DATの記憶容量を超えるようなアクセスに対する複雑な制御を行なわずに済む。
キャッシュ制御部86はバンクキャッシュCACHB0〜CACHB3を動作可能とするとき、アクセスアドレスに対応するバンクキャッシュCACHB0〜CACHB3を参照し、そのアドレス部ADRのアドレスがアクセスアドレスに対応するか、アドレス部Vのバリッドビットが有効かを判定し、アドレスが対応し、バリッドビットが有効であるときキャッシュヒットと判別する。そうでなければキャッシュミスである。
リード動作では、キャッシュヒットであれば、メモリ制御部85にはDDR−SDRAM61へのメモリリードコマンドの発行を抑制させ、対応する一つのバンクキャッシュCACHBのデータ部DATのデータを読み出し、これをセレクタ88に選択させる。DDRコントローラ84から出力されたリードデータはアクセス要求元に繋がるSHBIF80などを介して応答パケットとしてバスアクセス要求元に返される。キャッシュヒットであれば、DDR−SDRAMに対するメモリアクセスを行わずに済むから、これによってMRB25のバススループット向上に寄与し、リードアクセスのデータスループットが向上する。
リード動作において、キャッシュミスの場合には、メモリ制御部85はミスに係るアクセスアドレスによってDDR−SDRAM61をリードアクセスし、リードアクセスしたデータをアクセス要求元に繋がるSHBIF80などを介して応答パケットとしてバスアクセス要求元に返し、また、そのリードデータをメモリバンクに対応するバンクキャッシュCACHBのデータ部に格納し、対応するアドレス部ADRのアドレスを当該アクセスアドレスに更新し、対応するアドレス部Vのバリッドビットを有効を示す値にセットする。
ライト動作で、キャッシュヒットの場合、メモリ制御部85は、ヒットに係る一つのバンクキャッシュCACHBのデータを無効化する。即ち、対応するバンクキャッシュCACHBのアドレス部Vのバリッドビットを無効を示す値に変更する。これと共に、ヒットに係るライトデータのライトコマンドをDDR−SDRAM61に発行する。ライト動作でキャッシュミスの場合には、ミスに係るライトデータのライトコマンドをDDR−SDRAM61に発行する。これにより、バンクキャッシュCACHB0〜CACHB3とDDR−SDRAM61との間のコヒーレンシを維持するためのに複雑な制御が必要なくなる。DDRコントローラ10は複数のバスに接続されて複数の回路モジュールからのアクセス要求に応答してDDR−SDRAM61をアクセス制御し、どのバスからのアクセス要求に対しても全てバンクキャッシュCACHB0〜CACHB3の対象にされるとは限らず、その場合にはバンクキャッシュCACHB0〜CACHB3とDDR−SDRAM61との間のコヒーレンシを維持する場合には複雑な制御が必要になるからである。
図5にはDDRコントローラ10による前記バンクキャッシュCACHB0〜CACHB3のヒットとミス時の制御処理フローが例示される。前述の如く、アクセスリクエストがあると、リードアクセスか否かを判定し(S1)、リードの場合にバンクキャッシュヒットであれば(S2のT)、ヒットに係るデータを出力させるが(S3)、キャッシュミスであれば(S2のF)、DDR−SDRAMに対するメモリリードを行い(S4)、ミスに係るバンクキャッシュを更新する(S5)。ライトの場合に(S1のF)、バンクキャッシュヒットであれば(S7のT)、ヒットに係るバンクキャッシュを無効化して(S8)、DDR−SDRAMに対するメモリライトを行い(S9)、キャッシュミス(S7のF)のときはDDR−SDRAM61に対するメモリライトに移行する(S9)。
図6にはDDR−SDRAM61の代表的なアクセスタイミングが示される。クロックサイクルC1,C2,C3毎にアドレスを指定したバースト長2のリードコマンドが発行されている。コマンド発行後、DDR−SDRAMの内部動作が確定するタイミングを待って、クロックサイクルC5,C6,C7でリードデータがクロックの半サイクル毎に32ビット単位で出力される。
図7にはSHB4からアクセスデータサイズ16ビットのリードアクセスが連続アドレス対して3回要求されときのタイミングチャートが示される。16ビット単位のデータの連続アドレスは64ビット単位ではその上位の共通アドレスとされる。図7ではそのような共通アドレスをA0として示している。例えばSHB4のCPU11からアクセスアドレスA0のリードアクセス要求がクロックサイクルC1,C2,C3の3回連続して供給されると、DDRコントローラ10はバンクキャッシュのヒット又はミスを判定し、最初のアクセス要求であるからバンクキャッシュミスとされ、DDR−SDRAM61に対してクロックサイクルC2でアクセスアドレスA0のリードアクセスコマンドを発行する。コマンド発行後、DDR−SDRAM61の内部動作が確定するタイミングを待って、DDR−SDRAM61からクロックサイクルC6に同期してリードデータD0、D01がクロックの半サイクル毎に32ビット単位で出力される。C2、C3の要求は、DDR−SDRAMコントローラ10内蔵のバンクキャッシュCACHB0〜CACHB3にヒットするため、DDR−SDRAM61に対するメモリアクセスコマンドは発行されず、CPU11へのアクセスレスポンスとされるリードデータは、夫々バンクキャッシュCACHBが保持するデータD00,D01から切出された連続アドレスの16ビットデータとされる。図ではクロックサイクルC7、C8,C9で返されるレスポンスデータは便宜上D00,D01というようにバンクキャッシュヒットに係る全部のデータを示している。これによりMRB25のスループットが向上する。
図8には図7と同じアクセス要求に対してバンクキャッシュを用いないで動作させたときのタイミングチャートが示される。CPUからクロックサイクルC1、C2、C3で発行されたアクセス要求に応ずるアクセスコマンドが直接DDR−SDRAM61に対してクロックサイクルC2、C3、C4で発行され、クロックサイクルC7、C8、C9のサイクルでCPU11に転送されます。図7に比べてMRB25を占有する時間が長くなり、バススループットが低くなっている。
図9にはSHB4からのバーストリードとシングルリードのアクセス要求に対して、DDR−SDRAMコントローラ10がバンクキャッシュヒットのデータをリオーダリングしてアクセス要求元に返す動作のタイミングが示される。クロックサイクルC0においてCPU11から発行されるアクセス要求は、先頭アドレスB0とするバースト数4のリードアクセスとされる。次いでサイクルC2,C3ではCPU11からアドレスS1,S2のシングルリードのアクセス要求が発行される。DDR−SDRAMコントローラ10はそのバーストリードアクセス要求に対しては、そのバースト数より全体のアクセスデータサイズがバンクキャッシュの記憶容量を超えるのでバンクキャッシュに対象とせず、クロックサイクルC2から順次アドレスB00,B01,B02,B03とするリードコマンド(バースト数2)をSDRAM61に発行する。このリードコマンドに応答するSDRAM61はクロックサイクルC6から順次クロックの半サイクル毎に32ビット単位でリードデータD00,D01,D03,D04,D05,D05,D06,D07を出力することになる。ここでは前記アドレスS1に対するシングルリードはバンクキャッシュにヒットする。したがって、DDR−SDSRAMコントローラ10は当該シングルリードに対してDDR−SDRAM61のアクセスコマンドを発行せず、バンクキャッシュからヒットに係るデータD10,D11を取得する。この取得タイミングはSDRAM61からのリードデータD00,D01をCPUに返すことができるタイミングよりも早いので、当該バンクキャッシュヒットに係るデータD00,D01をクロックサイクルC6で先にCPU11に返す。前記アドレスS2に対するシングルリードはバンクキャッシュミスとされるので、クロックサイクルC6ではアドレスS2に対するリードコマンド(バースト数2)がSDRAM61に発行される。このリードコマンドに応答するSDRAM61からのデータD20,D21の出力はクロックサイクルC10に同期される。DDR−SDRAMコントローラ10はクロックサイクルC7以降、順次SDRAM61からのリードデータD00,D01,D02,D03,D04,D05,D06,D07,D20,D21をCPU11に返す。
このように図9では、DDR−SDRAM61のリードレーテンシのサイクル中に、バンクキャッシュヒットにされるシングルリードS1のアクセス要求に対するリードデータD10,D11をアクセス要求元のCPU11に返すことが可能なため、CPU11アクセスに対するバススループットの向上、そしてDDR−SDRAM61のバスのバススループットが向上する。
特に、その場合に、スーパーハイウェイバス4はスプリットトランザクション型であるため、リードデータのリオーダリングに対応しているため、SHBインタフェース80はC6のサイクルでS1のアクセス要求に係る応答データD10,D11を先のB0に係るアクセス要求に対する応答に先立って転送することが可能である。
スプリットトランザクション型のバスでは、アクセス要求回路からのリクエストパケットをアクセス応答回路が受取り、その要求に応答するレスポンスパケットをアクセス要求回路に返すようになっており、リクエストパケットとレスポンスパケットを含んで構成される一連の処理(トランザクション)はアクセス要求回路に固有のトランザクションIDによってその他のトランザクションから識別可能にされる。DDR−SDRAMコントローラ10は、前記回路モジュールから前記外付けメモリへの連続する複数のリードアクセスの指示に応答する複数のリードデータを前記バスに返すとき、前記回路モジュールからのリードアクセスの指示順に対してリードアクセス要求元へのリードデータの出力順を変更するリオーダリングが可能である。これは、一つのトランザクションはそれに固有のトランザクションIDによってその他のトランザクションか識別できることによって可能になる。
アクセス要求順に応答を返さなければならないとすると、要するに上記リオーダリングを行なわないなら、バンクキャッシュCACHBにヒットしたアクセス要求の応答データは、バンクキャッシュCACHBにミスする先のアクセス要求の応答データよりも早く取得できるが、前者の応答をアクセス要求元に返すのに後者の応答が有るまでまたなけれならず、結果として、システムのデータスループットを悪化させる。前記回路モジュールからのリードアクセスの指示順に対して、バンクキャッシュヒットに係るバンクキャッシュCACHBからのリードデータを、バンクキャッシュミスに係るDDR−SDRAM61からのリードデータよりも先行させてリードアクセス要求元へのデータとして出力することができる。アクセス要求に対する応答を受取るのに余計に待つことを要しない。
図10には図9のS1に係るシングルリードもバンクキャッシュミスとされる場合の動作タイミングが示される。この場合は、CPU11からのアクセス要求をシーケンシャルに処理するため、CPU11に対する応答リードデータの転送もシーケンシャルになる。バンクキャッシュヒットも発生しないので、リオーダリングも生じない。
《アクセス要求のマージ》
次に、バンクキャッシュ非対象とされるグラフィックバス20からのアクセス要求に対するDDR−SDRAMコントローラ10による応答、特にアクセス要求のマージについて説明する。
図11にグラフィックバス20の回路モジュール(単にグラフィックモジュールとも称する)からDDR−SDRAM61へのリードアクセスフローが示される。グラフィックモジュールからグラフィックバス20上にアドレスとバースト長が発行されると、DDRメモリバス25を介してDDR−SDRAM61でメモリリードアクセスが行われ、リードデータがグラフィックデータとしてグラフィックバス20上に返される。
図12にはグラフィックモジュールからDDR−SDRAM61へのリードアクセスの動作フローが示される。
グラフィックモジュールからDDR−SDRAM61へのリードアクセスは、
(1)グラフィックモジュールからDDR−SDRAMコントローラ10へのリードリクエストサイクル、(2)DDR−SDRAMコントローラ10からDDR−SDRAM61にリードコマンドを発行するリードサイクル開始、
(3)DDR−SDRAM61がDDR−SDRAMコントローラ10にリードデータを出力してリードサイクルを終了するリードサイクル終了、
(4)DDR−SDRAMコントローラ10がグラフィックモジュールに対してメモリリードデータを返すリードレスポンスサイクル、の順に行われる。
図13乃至図15にはグラフィックモジュールからDDR−SDRAMへアクセスデータサイズ32ビットでバースト長8のリードアクセス要求を行った場合の動作タイミングが示される。図13及び図14はリードアクセス要求のマージを行わない場合を示し、図15にはリードアクセス要求のマージを行った場合を示す。
図13において、グラフィックモジュールからグラフィックバス20を介してDDR−SDRAMコントローラ10に対し、C1サイクルにおいて、要求コマンド、アドレス、バースト長が発行される。DDR−SDRAMコントローラ10はDDRメモリバス25を介してDDR−SDRAM61に対し、C2からC9のサイクルにおいてリードコマンドを発行し、DDR−SDRAM61はC4からC11のサイクルにおいてクロック半サイクル毎に32ビット単位でリードデータを出力する。このときDDR−SDRAMコントローラ10は、DDR−SDRAM61にバースト長の回数(8回)だけリードコマンドを発行し、DDR−SDRAM61からバースト長の回数(8回)だけデータを受信する。つまり、32ビットのデータを8回リードするために、リードコマンドを8回発行する。これに応じて、DDRメモリバス25では、アドレスが連続する64ビットのデータが32ビットずつ2回に分けて1サイクル内で連続出力されるので、要求されているリードアクセスのようにアドレスが連続する32ビットデータを8回リードの場合、C4とC5のサイクル、C6とC7のサイクル、C8とC9のサイクル、C10とC11のサイクルで同じデータが出力される。しかしながら、この場合に1回のリードアクセスで有効とされるのは32ビットのみであるため、各サイクルで出力される前半または後半の32ビットデータが無効とされる。これは取りも直さず、前サイクルで出力され無効とされるデータと同データを再度次のサイクルで出力して有効にするのと同じことである。作図上、無効データは太線枠によって有効データと区別している。DDR−SDRAMコントローラ10は、そのようにして取得したデータをグラフィックバス20を介してC6からC13サイクルでグラフィックモジュールに返す。このレスポンスサイクルは、バースト長の回数に対応する8回で行われ、各回32ビットデータの転送とされる。
図14には図13に対して途中でDDR−SDRAM61に対するリフレッシュサイクルが発生する場合のタイミングチャーチが示される。図13と同様に、グラフィックモジュールからC1のサイクルにおいて、要求コマンド、アドレス、バースト長が発行された後、DDR−SDRAMコントローラ10はDDRメモリバス25を介してDDR−SDRAM61に対し、C2のサイクルからバースト長の回数(8回)だけリードコマンドを発行し、C4のサイクルからバースト長の回数(8回)だけデータを受信する。ここでは、リードコマンドを8回発行する途中のC3のサイクルでリフレッシュが発生する。そうすると、残りのリードコマンドの発行サイクルが例えばC10のサイクル以降に遅れる。また、DDR−SDRAM61はリフレッシュが終了してからデータを出力するため、リフレッシュコマンドの後に発行したリードコマンドに対応するデータ出力は、図13で示したリフレッシュが発生しない場合におけるC5からC11のサイクルよりも大分遅れることになる。よって、図12の場合よりグラフィックバス20のデータスループットは悪化することになり。
図15にはアクセス要求のマージを行ってリードコマンドを発行する場合のタイミングチャートを示す。グラフィックモジュールからは図13の場合と同様にグラフィックバス20を介してDDR−SDRAMコントローラ10に対し、要求コマンド、アドレス、バースト長が発行される。DDR−SDRAMコントローラ10は、DDRメモリバス25を介してDDR−SDRAM61に対してリードコマンドを発行し、これによってDDR−SDRAM61からデータが出力される。このときDDR−SDRAMコントローラ10は、図13及び図14で発生する無効データを有効に使用するため、リードコマンドを4回にまとめて発行する。つまり、グラフィックモジュールからのアドレスが連続する32ビットデータの8回リードというアクセス要求を、64ビットデータの4回リードという要求に変換してDDR−SDRAM61にリードコマンドを発行する。これにより、図13に比較して、DDRメモリバス25が当該リードアクセスに使用されない期間が増え、その期間を次のアクセスや、プリチャージ、リフレッシュ等に使用することが可能となる。また、1つのリクエストに対するDDRメモリバス25の使用サイクルが少ないため、図14の場合のようにメモリリードアクセスの途中でリフレッシュが発生する確率が少なくなる。これらの理由により、DDRメモリバス25のデータスループットが大幅に向上する。
上記アクセス要求をマージしてDDR−SDRAM61から出力されたリードデータは前記RDOCNT87に供給される。RDOCNT87に供給されたデータは、ASCNT85からの指示に従ってグラフィックモジュールから要求されたデータサイズに切出され、セレクタ88を介してGFBIF82に供給され、レスポンスパケットにてアクセス要求元のグラフィックモジュールに転送される。
上記アクセス要求のマージに関する説明では、32ビットデータの8回リードアクセスを例に挙げているが、この例に限らず、DDR−SDRAMコントローラ10に対するアクセス要求のデータビット数がデータバス25の幅より小さい場合には、同様にDDRメモリバス25のデータスループット向上が実現される。バースト長も当然別の値であってよい。
次に、DDR−SDRAM61へのアクセスを要求するモジュールが複数である場合の動作を説明する。
図16には2個のグラフィックモジュールA、BからDDR−SDRAM61にリードアクセス要求があった場合の動作フローが示される。図16において、2個のグラフィックモジュールA、BからDDR−SDRAM61へのリードアクセスは、
(1)グラフィックモジュールAからDDR−SDRAMコントローラ10へのリードリクエスト(A)サイクル、
(2)DDR−SDRAMコントローラ10からDDR−SDRAM61に対して(1)に対応するリードコマンドを発行するリードサイクル(A)開始、
(3)DDR−SDRAM61がDDR−SDRAMコントローラ10に(2)に対応するデータを出力してリードサイクル(A)を終了するリードサイクル(A)終了、
(4)DDR−SDRAMコントローラ10がグラフィックモジュールAに対してメモリリードデータをレスポンスするリードレスポンス(A)サイクル、
(5)グラフィックモジュールBからDDR−SDRAMコントローラ10へのリードリクエスト(B)サイクル、
(6)DDR−SDRAMコントローラ10からDDR−SDRAM61に対して(5)に対応するリードコマンドを発行するリードサイクル(B)開始、
(7)DDR−SDRAM61がDDR−SDRAMコントローラ10に(6)に対応するデータを出力してリードサイクル(B)を終了するリードサイクル(B)終了、
(8)DDR−SDRAMコントローラ10がグラフィックモジュールBに対してメモリリードデータをレスポンスするリードレスポンス(B)サイクル、の順に行われる。(1)、(4)のサイクルはグラフィックモジュールAのグラフィックバス(A)を介し、(5)、(8)のサイクルはグラフィックモジュールBのグラフィックバス(B)を介して、異なるバスを使用するため、サイクル(1)から(4)とサイクル(5)は、逆順あるいは同時にも行われ得る。
図16ではグラフィックモジュールAからのアクセス要求に対する応答が完結する前に、グラフィックモジュールBからのアクセス要求が発生する。グラフィックバス(A)及びグラフィックバス(B)のバススループットはDDRメモリバス25のバススループットによって決まることになる。
図17にはメモリアクセスを要求するモジュールが複数あるときアクセス要求をマージしない場合の動作タイミングが例示される。
グラフィックモジュールAとグラフィックモジュールBが、それぞれグラフィックバス(A)、グラフィックバス(B)を介してDDR−SDRAMコントローラ10に対し、C1のサイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは32ビットである。DDR−SDRAMコントローラ10は複数モジュールからのリクエストをバスアービタ83で調停する。ここえは、グラフィックモジュールA、グラフィックモジュールBの順にDDR−SDRAM61に対してアクセスリクエストを発行する。図17ではDDR―SDRAMコントローラ10は各アクセス要求についてバースト長の回数(8回)づつリードコマンドを発行し、バースト長の回数(8回)分だけリードデータを受信する。32ビットデータを8回リードするためには、リードコマンドを8回発行する必要があるからである。グラフィックモジュールAとグラフィックモジュールBのアクセス分を合わせると、C2からC17のサイクルで合計16回のリードコマンドを発行し、C4からC19のサイクルで16回リードデータを受信する。図13の場合と同様に、前サイクルで出力され無効とされるデータと同データを後から再度リードして有効にしている。DDR−SDRAMコントローラ10はこのように16回リードしたデータを、グラフィックバス(A)を介してグラフィックモジュールAに、グラフィックバス(B)を介しグラフィックモジュールBに返す。このレスポンス回数はバースト長の回数に一致される。
図18にはメモリアクセスを要求するモジュールが複数あるときアクセス要求をマージする場合の動作タイミングが例示される。
グラフィックモジュールAとグラフィックモジュールBが、それぞれグラフィックバス(A)、グラフィックバス(B)を介してDDR−SDRAM10コントローラ10に、C1のサイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは32ビットである。これに応答してDDR−SDRAMコントローラ10は、グラフィックモジュールAとグラフィックモジュールBからのアクセス要求を調停し、グラフィックモジュールA、グラフィックモジュールBの順にDDR−SDRAM61に対してアクセスリクエストを発行する。図18の場合には、DDR−SDRAMコントローラ10は、図17の無効データを有効活用するために、各グラフィックモジュールA,Bからのアドレスが連続する32ビットの8回リードというアクセス要求を64ビットの4回リードというアクセス要求にマージして、DDR−SDRAM61にはリードコマンドを4回ずつにまとめて発行する。これにより、グラフィックモジュールAとグラフィックモジュールBのアクセス分を合わせて、C2からC9のサイクルで8回分リードコマンドを発行すればよく、DDR−SDRAMコントローラ10はDDR−SDRAM61からサイクルC4〜C11で32ビット×2のリードデータを8回受取る。DDR−SDRAM61から受取ったデータには無効データはない。したがって、図17に比べてDDRメモリバス25のデータスループットが向上する。この後、DDR−SDRAMコントローラ10は、グラフィックバス(A)、グラフィックバス(B)を介し、グラフィックモジュールA、グラフィックモジュールBにリードデータを返す。このアクセスレスポンスはバースト長の回数(8回)行われる。グラフィックバス(A)、グラフィックバス(B)はグラフィックモジュールA、グラフィックモジュールBに対応して個別化されているため、グラフィックモジュールA、グラフィックモジュールBへのアクセスレスポンスを並行して行うことができる。これらにより、システム全体のデータスループットが向上する。
図19にはグラフィックモジュールの動作周波数がDDR−SDRAM61の動作周波数より高い場合にアクセス要求をマージしない場合の動作タイミングが例示される。
ここではグラフィックモジュールの動作周波数はDDR−SDRAM61の動作周波数の2倍とされる。グラフィックモジュールがグラフィックバスを介してDDR−SDRAMコントローラ10に対し、C1サイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは32ビットである。DDR−SDRAMコントローラ10はDDRメモリバス25を介してDDR−SDRAM61に対し、C’1からC’8のサイクルにおいてバースト長の回数(8回)だけリードコマンドを発行し、C’3からC’10の8サイクルに亘って32ビット×2のデータを8回受信する。次にDDR−SDRAM10コントローラは、受信したデータを順にグラフィックバスを介してグラフィックモジュールに返すが、DDR−SDRAM10からの遅いデータ受信に律速され連続サイクルでリードデータを返すことができない。この場合にはグラフィックバスのデータスループットが大幅に悪化する。
図20にはグラフィックモジュールの動作周波数がDDR−SDRAM61の動作周波数より高い場合にアクセス要求をマージする場合の動作タイミングが例示される。
ここではグラフィックモジュールの動作周波数はDDR−SDRAM61の動作周波数の2倍とされる。グラフィックモジュールがグラフィックバスを介してDDR−SDRAMコントローラ10に対し、C1のサイクルで、要求コマンド、アドレス、バースト長を発行する。このときのアクセスデータサイズは32ビットである。DDR−SDRAMコントローラ10はDDRメモリバス25を介してDDR−SDRAM61にリードコマンドを発行するが、図18の場合とは異なり、32ビットの8回リードというアクセス要求を64ビットの4回リードというアクセス要求にマージし、C’1からC’4のサイクルで4回だけリードコマンドを発行する。これに応答してDDR−SDRAM61からC’3〜C’6の4サイクルで32ビット単位の全データが出力される。DDR−SDRAMコントローラ10は、グラフィックバスを介してグラフィックモジュールにそのリードデータを返すが、DDR−SDRAM61からのリードデータの受信タイミングに律速されることなく連続してリードデータの応答を返すことができ、グラフィックバスのデータスループットが向上する。したがって、DDRメモリバス25とグラフィックバスの両方のデータスループットが向上し、システム全体のデータスループットを大幅に向上させることができる。
特に図示はしないが、DDR−SDRAM61へのアクセスを要求するモジュールが複数あり、且つ、モジュールの動作周波数がDDR−SDRAMの動作周波数より高い場合にも、上記と同じようにモジュールからのアクセス要求をマージすることによってバス及びシステムのデータスループットを向上させることができる。
また、前記SHB4、グラフィックバス20などの各バスにはバス毎にバスIDが与えられているが、バンクキャッシュの有効又は無効をバスIDによって設定するようにしてもよい。そのような設定は、バンクキャッシュ制御部86のロジックで固定的に行ってもよいし、また、コントロールレジスタでプログラマブルに行うようにしてもよい。バンクキャッシュによるキャッシュの対象をバス単位で決めることがバンクキャッシュのヒット率向上に望ましいという場合に対処するのが容易になる。
また、SHB4及びグラフィックバスは、パケット式のスプリットトランザクションバスを採用しており、アクセス要求時にアクセスサイズが決定している。アクセスサイズによってバンクキャッシュの有効または無効なアクセスサイズを設定するようにしてもよい。そのような設定は、バンクキャッシュ制御部86のロジックで固定的に行ってもよいし、また、コントロールレジスタでプログラマブルに行うようにしてもよい。バンクキャッシュによるキャッシュの対象をアクセスサイズで決めることがバンクキャッシュのヒット率向上に望ましいという場合に対処するのが容易になる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、本発明の半導体装置はカーナビゲーション用の画像処理プロセッサに限定されず、プリンタ用或いは携帯端末用の画像処理プロセッサに、通信制御用プロセッサ、エンジン制御用プロセッサ、汎用マイクロコンピュータ等、種々のデータ処理用の半導体装置に広く適用することができる。バスのビット、バスのデータ転送プロトコル、バスの本数、内蔵回路モジュールの種類についても種々変更可能である。複数バンクを持つメモリはDDR−SDRAMに限定されず、SDR−SDRAM、DDR−SRAM、SDR−SRAMなど、その他のクロック同期型メモリであってよい。
本発明の一例に係る画像処理プロセッサを例示するブロック図である。 DDR−SDRAMの概略ブロック図である。 DDR−SDRAMコントローラのブロック図である。 バンクキャッシュのキャッシュエントリのデータ構造を示す説明図である。 DDRコントローラによるバンクキャッシュのヒットとミス時の制御処理フローである。 DDR−SDRAMの代表的なアクセスタイミングを示すタイミングチャートである。 スーパーハイウェイバスからアクセスデータサイズ16ビットのリードアクセスが連続アドレスに対して3回要求されときのタイミングチャートである。 図7と同じアクセス要求に対してバンクキャッシュを用いないで動作させたときのタイミングチャートである。 スーパーハイウェイバスからのバーストリードとシングルリードのアクセス要求に対して、DDR−SDRAMコントローラがバンクキャッシュヒットのデータをリオーダリングしてアクセス要求元に返す動作を示すタイミングチャートである。 図9のS1に係るシングルリードもバンクキャッシュミスとされる比較例の動作を示すタイミングチャートである。 グラフィックモジュールからDDR−SDRAMへのリードアクセスフローを示すフローチャートである。 グラフィックモジュールからDDR−SDRAMへのリードアクセス動作を示すフローチャートである。 グラフィックモジュールからアクセスデータサイズ32ビットでバースト長8のリードアクセス要求が行なわれたときリードアクセス要求のマージを行わない場合の動作を示すタイミングチャートである。 図13に対して途中でDDR−SDRAMに対するリフレッシュサイクルが発生する場合のタイミングチャーチである。 アクセス要求のマージを行ってリードコマンドを発行する場合のタイミングチャートである。 2個のグラフィックモジュールからDDR−SDRAMにリードアクセス要求があった場合の動作を示すフローチャートである。 メモリアクセスを要求するモジュールが複数あるときアクセス要求をマージしない場合の動作タイミングを示すフローチャートである。 メモリアクセスを要求するモジュールが複数あるときアクセス要求をマージする場合の動作タイミングを示すフローチャートである。 グラフィックモジュールの動作周波数がDDR−SDRAMの動作周波数より高い場合にアクセス要求をマージしない場合の動作タイミングを示すフローチャートである。 グラフィックモジュールの動作周波数がDDR−SDRAMの動作周波数より高い場合にアクセス要求をマージする場合の動作タイミングを例示するフローチャートである。
符号の説明
1 画像処理プロセッサ
2 プロセッサコア
3 クロック発生回路
4 スーパーハイウェイバス
5 バスブリッジ回路
7 3Dエンジン
10 DDR−SDRAMコントローラ
11 CPU
13(CACH) CPUキャッシュメモリユニット
20 グラフィックバス
24 3Dバス
25 DDRメモリバス
30 2Dエンジン
31 表示制御回路
61 DDR−SDRAM
BNK0〜BNK3 メモリバンク
80 スーパハイウェイバスインタフェース
81 3Dバスインタフェース
82 グラフィックバスインタフェース
83 バスアービタ
84 DDRコントローラ
85 DDRアクセス制御部
86 キャッシュ制御部
CACHB0〜CACHB3 バンクキャッシュ

Claims (17)

  1. 各々独立に制御可能な複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続された複数のバスと、前記複数のバスの各々に対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、
    前記メモリ制御部は、前記外付けメモリのバンクに各々対応する記憶領域を有し、前記記憶領域は対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能であり、
    前記回路モジュールの一つとしてCPUを有し、前記CPUと一つのバスとの間に配置されたキャッシュメモリを有し、
    前記メモリ制御部は、前記キャッシュメモリのキャッシュ非対象領域に対するアクセス要求に対して前記記憶領域を有効とする、半導体装置。
  2. 前記外付けメモリは前記クロックに対してDDR動作されるメモリである請求項1記載の半導体装置。
  3. 前記記憶領域は、前記外付けメモリの1個のバンクに対して前記クロックの1サイクルでアクセス可能なデータサイズに対応されるデータ記憶部を有する請求項2記載の半導体装置。
  4. 前記外付けメモリに対する1回のリードアクセス指示によるアクセスデータサイズが前記データ記憶部のデータサイズを超えるリードアクセス指示に対して記憶領域を無効化する請求項3記載の半導体装置。
  5. 前記バスの並列データビット数は前記クロックの1サイクルでアクセス可能なデータサイズに等しい請求項記載の半導体装置。
  6. 複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続された複数のバスと、前記複数のバスの各々に対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、
    一つの回路モジュールとしてCPUを有し、前記CPUと一つのバスとの間に配置されたキャッシュメモリを有し、
    前記メモリ制御部は、前記外付けメモリのバンクに各々対応するバンクキャッシュを有し、前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能であり、前記キャッシュメモリのキャッシュ非対象領域に対するアクセス要求に対してバンクキャッシュを有効とし、前記回路モジュールから前記外付けメモリのリードアクセス要求に対してバンクキャッシュを有効としたとき、前記リードアクセス要求がバンクキャッシュに対して連想ミスの場合には当該連想ミスに係るデータを前記外付けメモリからリードするリードコマンドを発行し、これによりリードしたデータを対応するバンクキャッシュに格納すると共に前記リードアクセス要求元に対するデータとして出力する半導体装置。
  7. 前記メモリ制御部は、前記回路モジュールから前記外付けメモリのライトアクセス要求に対してバンクキャッシュを有効としたとき、前記ライトアクセス要求がバンクキャッシュに対して連想ヒットの場合には当該連想ヒットに係るキャッシュデータを無効化して、前記外付けメモリに当該連想ヒットに係るライトデータのライトコマンドを発行する請求項6記載の半導体装置。
  8. 前記ライトアクセス要求がバンクキャッシュに対して連想ミスの場合には、前記外付けメモリに当該連想ミスに係るデータのライトコマンドを発行する請求項7記載の半導体装置。
  9. 別の一つのバスには回路モジュールとして3次元描画用のグラフィックモジュールが接続され、更に別の一つのバスには回路モジュールとして2次元描画用のグラフィックモジュールが接続され、その他の一つのバスには回路モジュールとして表示コントローラが接続される請求項8記載の半導体装置。
  10. アクセス要求に対してバンクキャッシュが有効にされるバスと、アクセス要求に対してバンクキャッシュが無効にされるバスとが混在する請求項記載の半導体装置。
  11. 前記バス毎にバスIDが割当てられ、
    前記メモリ制御部は、アクセス要求に対してバンクキャッシュが有効にされるバスと無効にされるバスのバスIDを定義する回路を有する請求項記載の半導体装置。
  12. 前記メモリ制御部は、回路モジュールからアクセス要求があったとき、それに付随するアクセスデータサイズにしたがって前記バンクキャッシュの有効又は無効を決定する請求項記載の半導体装置。
  13. 前記メモリ制御部は、バンクキャッシュの有効又は無効を決定するためのアクセスデータサイズを定義する回路を有する請求項12記載の半導体装置。
  14. 複数バンクを持つ外付けメモリをクロックに同期して制御可能なメモリ制御部と、前記メモリ制御部に接続されたバスと、前記バスに対応して設けられメモリアクセスを指示することが可能な回路モジュールとを備え、
    前記メモリ制御部は、前記外付けメモリのバンクに各々対応するバンクキャッシュを有し、前記バンクキャッシュは対応するバンクのアドレスを連想キーとして当該バンクの一部のデータを記憶可能であり、
    前記バスはスプリットトランザクション型のバスであり、
    前記メモリ制御部は、前記回路モジュールから前記外付けメモリへの連続する複数のリードアクセスの指示に応答する複数のリードデータを前記バスに返すとき、前記回路モジュールからのリードアクセスの指示順に対してリードアクセス要求元へのリードデータの出力順を変更するリオーダリングが可能である半導体装置
  15. 前記リードデータの出力順変更は、前記回路モジュールからのリードアクセスの指示順に対して、連想ヒットしたバンクキャッシュからのリードデータを、バンクキャッシュの連想ミスに係る外付けメモリからのリードデータよりも先行させてリードアクセス要求元へのデータとして出力することである請求項14記載の半導体装置。
  16. 前記メモリ制御部は、回路モジュールから前記バスのビット数より小さいアクセスデータサイズでバーストリードが要求されたとき、前記要求されたバーストリードのバースト数より少ない回数で前記外付けメモリにリード要求を連続的に発行可能である請求項14記載の半導体装置。
  17. 前記メモリ制御部は、前記バスのビット数より小さいアクセスデータサイズでバースト数を指定した前記回路モジュールからのアクセス要求に応答して、外付けメモリに対し1回のリード要求で受信する全データを有効として連続的に複数回リード要求を発行する請求項14記載の半導体装置。
JP2004159510A 2004-05-28 2004-05-28 半導体装置 Expired - Fee Related JP4656862B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004159510A JP4656862B2 (ja) 2004-05-28 2004-05-28 半導体装置
US11/130,217 US7519774B2 (en) 2004-05-28 2005-05-17 Data processor having a memory control unit with cache memory
US12/410,437 US7783827B2 (en) 2004-05-28 2009-03-24 Data processor having a memory controller with cache memory
US12/848,777 US8032715B2 (en) 2004-05-28 2010-08-02 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004159510A JP4656862B2 (ja) 2004-05-28 2004-05-28 半導体装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010271404A Division JP2011090697A (ja) 2010-12-06 2010-12-06 半導体装置

Publications (2)

Publication Number Publication Date
JP2005339348A JP2005339348A (ja) 2005-12-08
JP4656862B2 true JP4656862B2 (ja) 2011-03-23

Family

ID=35426730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004159510A Expired - Fee Related JP4656862B2 (ja) 2004-05-28 2004-05-28 半導体装置

Country Status (2)

Country Link
US (3) US7519774B2 (ja)
JP (1) JP4656862B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4656862B2 (ja) * 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 半導体装置
US7836328B1 (en) * 2006-05-04 2010-11-16 Oracle America, Inc. Method and apparatus for recovering from system bus transaction errors
JP2008117109A (ja) * 2006-11-02 2008-05-22 Renesas Technology Corp 半導体集積回路装置
JP4979065B2 (ja) * 2006-11-16 2012-07-18 キヤノン株式会社 メモリ装置
US8907964B2 (en) * 2007-04-10 2014-12-09 Vivante Corporation System and method for dynamically reconfiguring a vertex cache
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
JP2009059190A (ja) * 2007-08-31 2009-03-19 Seiko Epson Corp キャッシュシステム、データ記録装置、プログラム及びキャッシュシステムの制御方法
JP2009289307A (ja) * 2008-05-28 2009-12-10 Toshiba Corp 半導体記憶装置
JP5195140B2 (ja) 2008-08-06 2013-05-08 富士通セミコンダクター株式会社 半導体メモリおよびメモリシステム
JP2010134628A (ja) * 2008-12-03 2010-06-17 Renesas Technology Corp メモリコントローラおよびデータ処理装置
JP5321189B2 (ja) * 2009-03-27 2013-10-23 ソニー株式会社 メモリ制御装置
US8352834B2 (en) * 2009-11-12 2013-01-08 Broadlogic Network Technologies Inc. High throughput interleaver / deinterleaver
JP5640204B2 (ja) * 2011-02-25 2014-12-17 高田 周一 メモリ制御装置
JP5920105B2 (ja) 2012-08-16 2016-05-18 富士通株式会社 演算処理装置および演算処理装置の制御方法
CN104111902B (zh) * 2013-04-19 2017-12-19 联芯科技有限公司 基于双倍速率同步动态随机存储器接口的通信系统及方法
US9792049B2 (en) 2014-02-24 2017-10-17 Cypress Semiconductor Corporation Memory subsystem with wrapped-to-continuous read
US20150248741A1 (en) * 2014-03-02 2015-09-03 Qualcomm Incorporated System and method for providing power-saving static image display refresh in a dram memory system
KR102346629B1 (ko) * 2014-12-05 2022-01-03 삼성전자주식회사 메모리 접근 제어 방법 및 장치
US20160342540A1 (en) * 2015-05-21 2016-11-24 Qualcomm Innovation Center, Inc. Low latency memory and bus frequency scaling based upon hardware monitoring
WO2017130983A1 (ja) * 2016-01-25 2017-08-03 アイシン・エィ・ダブリュ株式会社 メモリコントローラ
JP6763715B2 (ja) * 2016-07-11 2020-09-30 ローム株式会社 タイミングコントローラ、その制御方法、それを用いた電子機器
TWI611296B (zh) * 2017-04-13 2018-01-11 慧榮科技股份有限公司 記憶體控制器與資料儲存裝置
US10534731B2 (en) * 2018-03-19 2020-01-14 Micron Technology, Inc. Interface for memory having a cache and multiple independent arrays
US11003396B2 (en) * 2019-03-01 2021-05-11 Micron Technology, Inc. Dual speed memory
WO2023099796A1 (es) * 2021-12-03 2023-06-08 Barcelona Supercomputing Center - Centro Nacional De Supercomputación Método para almacenar y acceder a un operando de datos en una unidad de memoria

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011029A (ja) * 2003-06-18 2005-01-13 Matsushita Electric Ind Co Ltd メモリアクセス制御装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5971184A (ja) * 1982-10-15 1984-04-21 Nec Corp 記憶装置
US5193166A (en) * 1989-04-21 1993-03-09 Bell-Northern Research Ltd. Cache-memory architecture comprising a single address tag for each cache memory
US6253307B1 (en) * 1989-05-04 2001-06-26 Texas Instruments Incorporated Data processing device with mask and status bits for selecting a set of status conditions
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US5790839A (en) 1996-12-20 1998-08-04 International Business Machines Corporation System integration of DRAM macros and logic cores in a single chip architecture
JP3786521B2 (ja) * 1998-07-01 2006-06-14 株式会社日立製作所 半導体集積回路及びデータ処理システム
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6483516B1 (en) * 1998-10-09 2002-11-19 National Semiconductor Corporation Hierarchical texture cache
JP2000132503A (ja) 1998-10-23 2000-05-12 Victor Co Of Japan Ltd データ転送装置
US6859861B1 (en) * 1999-01-14 2005-02-22 The United States Of America As Represented By The Secretary Of The Army Space division within computer branch memories
US6885378B1 (en) * 2000-09-28 2005-04-26 Intel Corporation Method and apparatus for the implementation of full-scene anti-aliasing supersampling
US6587920B2 (en) * 2000-11-30 2003-07-01 Mosaid Technologies Incorporated Method and apparatus for reducing latency in a memory system
US6801208B2 (en) * 2000-12-27 2004-10-05 Intel Corporation System and method for cache sharing
WO2004001527A2 (en) * 2001-06-26 2003-12-31 Sun Microsystems, Inc. Method and apparatus for facilitating speculative loads in a multiprocessor system
JP3802411B2 (ja) * 2001-12-20 2006-07-26 株式会社東芝 不揮発性半導体記憶装置のデータコピー方法
US6842821B2 (en) * 2002-12-02 2005-01-11 Lsi Logic Corporation DDR SDRAM memory controller with multiple dependency request architecture and intelligent requestor interface
US20050050375A1 (en) * 2003-08-29 2005-03-03 Mark Novak Memory interface system and method
JP4624715B2 (ja) * 2004-05-13 2011-02-02 ルネサスエレクトロニクス株式会社 システムlsi
JP4656862B2 (ja) * 2004-05-28 2011-03-23 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011029A (ja) * 2003-06-18 2005-01-13 Matsushita Electric Ind Co Ltd メモリアクセス制御装置

Also Published As

Publication number Publication date
US20090182943A1 (en) 2009-07-16
US20050268027A1 (en) 2005-12-01
US7783827B2 (en) 2010-08-24
US20100318732A1 (en) 2010-12-16
US8032715B2 (en) 2011-10-04
JP2005339348A (ja) 2005-12-08
US7519774B2 (en) 2009-04-14

Similar Documents

Publication Publication Date Title
JP4656862B2 (ja) 半導体装置
US6272609B1 (en) Pipelined memory controller
US6295592B1 (en) Method of processing memory requests in a pipelined memory controller
US6173356B1 (en) Multi-port DRAM with integrated SRAM and systems and methods using the same
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
JP4786209B2 (ja) メモリアクセス装置
US5974514A (en) Controlling SDRAM memory by using truncated burst read-modify-write memory operations
US7707328B2 (en) Memory access control circuit
JP2002063069A (ja) メモリ制御装置、データ処理システム及び半導体装置
JP2002342159A (ja) メモリコントローラ
JP2003501747A (ja) プログラマブルsram及びdramキャッシュ・インタフェース
JPH09213070A (ja) 隠れプリチャージ式疑似キャッシュdram
US20050182908A1 (en) Method and apparatus of interleaving memory bank in multi-layer bus system
JP4250989B2 (ja) メモリアクセス制御装置
JP2011090697A (ja) 半導体装置
JP3967921B2 (ja) データ処理装置及びデータ処理システム
JP4220258B2 (ja) ノンキャッシュ領域内高速メモリアクセス方法
JP2000259497A (ja) メモリコントローラ
JPH03163638A (ja) バースト転送方式
JP4856373B2 (ja) メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法
JPH07230366A (ja) 画像処理装置
JP2000066946A (ja) メモリコントローラ
JPH06324940A (ja) メモリ制御方法および装置
JP2005332125A (ja) メモリコントローラ及び共有メモリシステム
JPH04199243A (ja) キャッシュ記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070507

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

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

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

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

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees