JP2005524170A - 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 - Google Patents

不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 Download PDF

Info

Publication number
JP2005524170A
JP2005524170A JP2004502136A JP2004502136A JP2005524170A JP 2005524170 A JP2005524170 A JP 2005524170A JP 2004502136 A JP2004502136 A JP 2004502136A JP 2004502136 A JP2004502136 A JP 2004502136A JP 2005524170 A JP2005524170 A JP 2005524170A
Authority
JP
Japan
Prior art keywords
memory
data
address
integrated circuit
cache 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
JP2004502136A
Other languages
English (en)
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2005524170A publication Critical patent/JP2005524170A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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

Abstract

本発明による集積回路は、プロセッサ(603)と、不揮発性メモリ(602)と、インタフェイス部(605)とを有し、前記インタフェイス部(605)は、第一のキャッシュメモリ(601.1)及び第二のキャッシュメモリ(601.2)を含むと共にプロセッサ(603)を不揮発性メモリ(602)に接続する。インタフェイス部(605)は、不揮発性メモリ(602)からデータを取得すると共に即座にそれらを前記第一の又は前記第二のキャッシュメモリ(601.1、601.2)に記憶し、要求されたデータがどこに記憶されるかに依存して、プロセッサ(603)に前記第一のキャッシュメモリ(601.1)又は前記第二のキャッシュメモリ(601.2)からのデータを供給する。

Description

本発明は、集積回路及び集積回路に組み込まれている不揮発性メモリからデータをフェッチするための方法に関する。
この種の集積回路は、ポータブルデバイス、例えば無線モジュール(wireless module)、ブルートゥースデバイス(Bluetooth device)、モバイル電話(mobile phone)、ディジタルコードレスデバイス(digital cordless device)、又は個人用携帯型情報端末(PDA(personal digital assistant))において広範に使用されている。この市場において、サイズ及び消費電力は決定的なファクタ(要因(factor))となり、それ故に小さな面積ファクタが最も重要な要求となる。従ってベースバンド(基底帯域)システム(baseband system)のメモリ制御ユニット(MCU(memory control unit))のダイ(die)上に不揮発性メモリを集積させる可能性(chance)は、低減されたコンポーネント数、低いピンの引き出し(pinout)数、配線可能性(ルータビリティ(routability))、及び低減されたシステム費用の点から最良の選択になると考えられる。
他方、いくつかの他の態様が、ベースバンドシステムオンチップ(baseband SOC(system on chip))の動作性能/費用(performance/cost)の比率を改善することに寄与している。
構造的な特徴にいくらか依存しているが、最も効果的な特徴のうちの一つは、適切に選択されたメモリ階層(memory hierarcy)にある。異なるアクセス性能(access capability)と異なる費用及びサイズを備える階層を介してメモリリソースを分散させることにより、システム動作特性の全体的な改善がもたらされる。
代表的ないわゆるハーバードアーキテクチャ(Harvard Architecture)が図1に示されている。ブリッジ101が、32ビットバス104を介して、高度システムバス(ASB(advanced system bus))モジュール105、メモリ管理ユニット(MMU(memory management unit))106、RAM107、及びフラッシュメモリ102に接続されている。高度RISCマシン(ARM(advanced RISC machine))103が、MMU106に接続されている。16ビットバス108を介してブリッジ101が高度周辺バス(APB(advanced peripheral bus))モジュール109に接続されている。これらは例えばユニバーサルシリアルバス(USB(universal serial bus))モジュールに接続され得る。面積に関する主な犠牲がメモリ階層内にあることは明らかである。従って、必要とされる動作特性に厳格に依存している、メモリの型式及びサイズの賢明な選択は設計の成功の基礎となる。
アプリケーションがハーバードアーキテクチャ内のマイクロコントローラのためのソフトウエアのある層を必要とする場合、通常リードオンリメモリ(ROM(read only memory))は命令メモリ(IMEM(instruction memory))に対して使用される一方、データメモリに対しては揮発性メモリ(volatile memory)、例えばDRAM又はSRAMが最良の選択となる。これの利点は、更に命令メモリとしてダイ(die)上のブートコードメモリスペース(bootcode memory space)を使用する可能性(chance)にあり、それ故にスペースが節減され、システムの安全性及びロバスト性(robustness)が増大されることにある。利点は、基準プロセス(baseline process)で集積されるエンベデッドROMが特別な技術オプションを必要としていないことにある。
不都合なことにこのような解決策は、安定なソフトウエアを必要としており、それ故に最終的な製造の場合に対してしか適してない。他方で、ほとんどのアプリケーションはいくつかのソフトウエアの改良(software refinement)を必要としており、それによって、IMEMに対するROM解決策は好適とならない。従ってIMEMとして使用されるエンベデッドフラッシュメモリがサイズ及び動作特性の点で最良の解決策をもたらし得る。
Figure 2005524170
氏他による米国特許第5802554号公報において、フラッシュメモリからのブロック転送に並行してフラッシュメモリに対する精度の高い直接アクセス(fine grain direct access)をもたらすことによってメモリアクセスレイテンシ(memory access latency)を低減するためのシステム及び方法が記載されている。メモリ管理ユニットは、第一のレベルのメモリ階層からのデータ、又は第二のレベルのメモリ階層からのデータの何れかを備えるキャッシュのコンテンツを制御する。しかしながらこの解決策はIMEMとしてフラッシュメモリを使用し得ない。
本発明の第一の目的は、集積回路及び集積回路に組み込まれている不揮発性メモリからのデータをフェッチするための方法を提供することにある。当該集積回路及び方法によって、ミス(失敗)率(ミスレート(miss rate))は、特に当該ミスが予測され得る場合、低減され得る。例えばコードが規則正しい(regular)場合にそうなる。このことは、コードが、離れたアドレスへのあまり多くの分岐(branch)又はジャンプ(jump)を含まないが、命令メモリのスループットが制約になることを意味する。
本発明の他の目的は、高速アクセス期間を得ること、及び同時にシリコン面積を低減することにある。
前記課題は、請求項1による特徴を備える集積回路によって、及び請求項9による特徴を備える集積回路に組み込まれている不揮発性メモリからデータをフェッチするための方法によって解決される。
本発明の利点は、不揮発性メモリが命令メモリとして使用され得ると共にARM又は他のマイクロプロセッサによるサブシステム(subsystem)に適していることにある。
本発明による集積回路は、プロセッサと、不揮発性メモリと、第一のキャッシュメモリ及び第二のキャッシュメモリを含むと共に前記プロセッサを前記不揮発性メモリに接続するインタフェイス部とを有する。前記インタフェイス部は、前記不揮発性メモリから所定のアドレスに対応するデータを取得すると共に即座にそれらを第一の又は第二のキャッシュメモリに記憶する。前記インタフェイス部は、要求されたデータがどこに記憶されるか、及び次の所定のアドレスに対応する不揮発性メモリからのデータをどこに自発的にフェッチするかに依存して、前記プロセッサに第一のキャッシュ又は第二のキャッシュからのデータも供給する。
本発明による集積回路に組み込まれている不揮発性メモリからのデータをフェッチするための方法は複数のステップ、すなわち、
前記不揮発性メモリからのデータの一部が、第一及び第二のタグアドレス(tag address)のもとで(に従って)二つのキャッシュメモリにバッファされるステップと、
データが(要求手段によって)不揮発性メモリから要求される場合、前記データに対応するアドレスは二つのタグアドレスと比較されるステップと、
データアドレスが二つのタグアドレスのうちの一つに等しい場合、前記キャッシュメモリにおけるデータは要求手段にもたらされると共に他のキャッシュにおけるデータは更新されるステップと、
それ以外では、両方のキャッシュメモリが同時に更新されると共に要求されたデータが要求手段にもたらされるステップと
を有している。
本発明の有利な更なる展開が、従属請求項において特定される特徴及び特性からもたらされる。
有利なことに実現の簡単な態様のために、前記インタフェイス部(605)は、後続するアドレス(succeeding address)となる次の所定のアドレスをもたらすアドレス予測器(address predictor)(610,611)を含む。
本発明の第一の実施例において、不揮発性メモリはフラッシュメモリである。
第二の実施例において前記インタフェイス部は、プロセッサからアドレスを取得し、そのアドレスを、第一及び第二のキャッシュメモリに記憶されるデータに対応する二つのアドレスと比較するアドレス比較器(address comparator)を含む。
有利なことに前記アドレス比較器は、プロセッサからのアドレスが、第一のキャッシュに記憶されるデータに対応するアドレスに等しくなるとき第一の出力信号をもたらし、プロセッサからのアドレスが、第二のキャッシュにおけるデータに対応するアドレスに等しくなるとき第二の出力信号をもたらす固定(永久)アドレス比較器(permanent address comparator)となる。
第一及び第二のキャッシュメモリに記憶されるデータに対応する二つのアドレスが第一及び第二のタグとなる場合、アドレス間の比較は簡単な態様で行われ得る。
データがキャッシュメモリにバッファされない場合、前記インタフェイス部がデータを直接不揮発性メモリからプロセッサにもたらすことも可能である。これにより、キャッシュメモリのうちの一つにおけるいかなる中間記憶(intermediate storage)も回避される。
有利なことに、第一及び第二のキャッシュメモリの各々におけるデータワード幅と不揮発性メモリにおけるデータワード幅とは同じになる。
本発明の更なる利点は、不揮発性メモリが命令メモリとしても使用され得ることにある。
本発明による方法の実施例において、データ更新は不揮発性メモリの予測読み出し(predictive reading)によって行われる。
本発明による方法の更なる実施例において、前記キャッシュメモリは、後続するアドレスに対応するデータで更新される。
続いて本発明は11個の図面で更に説明される。
マイクロプロセッサが集積されている同じダイ上にフラッシュメモリを集積させることは、技術的な観点から、例えば消費電力、リーク、又は性能(qualification)のためにいくつかの問題をもたらすと共に、アーキテクチャの観点から、例えばテスタビリティ(testability)又はシステムの書き込み動作(programming operation)ためのインタフェイスのためにいくつかの問題をもたらす。更にフラッシュメモリがプロセッサのための直接IMEMとして使用される場合、優れた動作特性を得る困難性が増大する。実際読み出しアクセスにおけるフラッシュメモリの絶対速度(absolute speed)は、ROM又はRAMの読み出しアクセスにおける速度よりも遅くなる。このことは、適用例のクリティカルデータパスにおいてフラッシュメモリを使用することが全システムのボトルネックになることを示唆している。
前記のように、エンベデッドフラッシュメモリアクセス期間は、所要のプロセッサ動作特性を実現させるためにマイクロプロセッサのクロックレートに追従しなければならない。当該問題を解決するための解決策は、図2に示されているように、フラッシュメモリ202とプロセッサ203との間のメモリ階層における更なる揮発性メモリ層(volatile memory layer)にある。コントローラを備えるいわゆるラインキャッシュメモリ201が、フラッシュメモリ202を高速マイクロコントローラバスシステム204にインタフェイスさせている。当該サブシステムは、マルチプロセッサ、フラッシュメモリ以外のいくつかの揮発性キャッシュメモリ、及びいくつかのクロックドメインを備える複雑なシステム(complex system)を管理するのに非常に適しているが、メモリの読み出し動作特性に高い重点が置かれる場合IMEMとしてフラッシュメモリしか備えていない通常の単一のプロセッサシステムにおいて当該システムは非効率となる。
図2において、代表的な高度RISCマシン(ARM)によるバスサブシステム(AMBA bus)が示されている。通常の用途において、システムクロック周期が達成可能なフラッシュメモリサイクル期間よりも短くなる場合、フラッシュメモリ202はIMEMとして使用されるにはあまりに低速である。この場合可能な解決策は、フラッシュメモリ202のデータワード幅を増大させると共に、キャッシュメモリとして中間データ記憶レジスタを使用することを可能にするアドレスタグレジスタをもたらす役割を果たすフラッシュメモリ202とインタフェイス部201を一体化することにある。このようなシステムは、いくつかのマスタ又はARM203及びクロックドメインの間の調停(arbitration)の必要性のために、データスループットに対してフラッシュメモリ202と異なる、更なるボトルネックをもたらす。
当然のことながら、この場合IMEMとして不揮発性メモリを使用することに利点はないはずなので、このような解決策がメモリ階層において完全に新たなレベル(new level)としてもたらされるべきではない。その理由は、キャッシュメモリのサイズが、帯域幅とスループットとの両方の点から最良の特性を得るために可能な限り小さくされなければならないことにある。システムの動作特性は、最も可能性の高いレートでIMEMから命令をフェッチする能力(ability)に極めて強く関係しているため、マイクロプロセッサとフラッシュメモリとの間の揮発性インタフェイス部(volatile interface)における全てのミスは動作特性の漏れ(leak)を表している。通常のキャッシュメモリシステムにおいてミスの可能性は、主に
1.動作の開始時点における有効データ(valid data)が使用可能でないことを意味するコールドスタート(cold start)
2.キャッシュメモリスペースからのジャンプ
3.非常に規則正しく且つシーケンシャルなコードに対しても不十分なキャッシュメモリ容量
に対するミスに分割される。
最初の二つの可能性の場合、プロセッサパイプライン制御ユニット(processor pipeline control unit)においてアーキテクチャ解決策が見つけられ得る。第三の可能性の場合、アプリケーションコードに関してまさにキャッシュメモリの効率的なサイジング(sizing)の問題にはならない。前記メモリがIMEMの場合、前記特性はフラッシュメモリの制限された帯域幅及び遅いアクセス速度に常に起因する。
前記のように、この種のシステムの手法(approach)は、フラッシュメモリとプロセッサとの間にnライン揮発性レジスタ(n−line volatile register)とのインタフェイス部を組み込むことにある。当該レジスタからプロセッサは高いヒットのレートで命令をフェッチし得る。自身のレジスタにおけるデータのミス(miss)の間、インタフェイス部はフラッシュメモリ上で読み出し動作を開始し、プロセッサを待機状態(wait state)に保持し、レジスタを、すぐにフラッシュメモリから読み出され得る最大量のデータで満たす。このように、非常に規則正しいコード(レギュラコード(regular code))の場合、マイクロプロセッサによってフェッチされる次の命令は、フラッシュメモリにおいてシリアル(直列)に位置され、それから最初のミス後、ラインキャッシュメモリにも既にもたらされているべきである。プロセッサが、キャッシュにもたらされている全てのワードを読み出したとき、ラインキャッシュメモリにおける制限された数のワードに起因する決定的なミス例(deterministic miss case)がもたらされるであろう。不都合なことに、キャッシュメモリサイズを拡張することは、一度にフラッシュメモリから読み出され得る固定された数のワードのために役立たない。そのためここでもこのようなシステムにおける主な制限はフラッシュメモリの帯域幅にある。更にnラインキャッシュメモリがインタフェイス部に組み込まれる場合、nラインキャッシュメモリは、単一のフラッシュメモリ読み出しアクセスで達成され得るデータの最大値よりも大きな複数のデータで満たされ得ない。
以下、本発明によるアーキテクチャが記載される。
図3は、本発明によるアーキテクチャのブロック図を示している。
フラッシュメモリ602への第一のミスサイクルアクセス(miss cycle access)の後、例えばxワード(x word)のようなある数のワード又は命令がキャッシュメモリ601.1及び601.2において使用可能になる。この時点で当該ワードを、それらが使用可能になるとすぐにマイクロプロセッサ603にもたらすことは必要となる。当該プロセッサは待機状態から出て、全てのクロックサイクルで新たな命令を照会(query)し続けるであろう。インタフェイス部における第一のレベルの自動化(automation)は、第一のxワードが使用可能になった後、フラッシュメモリ602を照会することをすぐに再開することにあり、アドレスが自発的にインクリメントされる。
問題は、システムクロック周波数について先験的に知られていないことに、ラインキャッシュメモリ601.1及び601.2から全てのx命令をフェッチするためにプロセッサ603によって必要とされる期間を予測することが不可能であることにある。このことは、前記期間がフラッシュメモリ602の他の非同期アクセス期間よりも長くなるか、又は短くなるかは予測不可能であることを意味する。実際フラッシュメモリ602への第二の自動的なアクセスが完了させられる前に、周波数が、キャッシュメモリ601.1及び601.2はワード毎に完全に読み出されるようにもたらされる場合、フラッシュメモリ602上の進行中の読み出し動作に加えてプロセッサミス要求がもたらされるため、競合(conflict)が発生するであろう。更にキャッシュメモリ601.1及び601.2のコンテンツを無効化すると共に自発的な読み出しが進行している間にここでもミス要求を発生させる、第一のxワードにおけるコードがジャンプを含む場合、同じ現象が発生するであろう。従っていわゆる予測手法はフラッシュメモリ602の読み出し動作を予測するための好ましい概念(winning idea)となるが、次のxワードのためのフラッシュメモリ602を自発的に照会し始めるインタフェイス部に対しては直接的でない。前記システムに対する改善を得ると共に、前記競合及び読み出しレイテンシを増大させないため、前記制御において注意が払われなければならない。第一の考慮すべき点は、読み出し動作が、中止(abort)することに適しているべきことにある。この場合、実際フラッシュメモリ602において、予測される新たな読み出しを自発的に開始させ、当該読み出しを最終的に中止させると共に、他のアドレス上で再開させることが動的に決定され得る。
図4a及び4bにおいて、図3に示されているアーキテクチャによって行われる動作の流れ図がもたらされている。この実施例において、以下両方ともフラッシュメモリの帯域幅(xワード)と同じサイズである、Aラインキャッシュメモリ601.1及びBラインキャッシュメモリ601.2と称される2ラインキャッシュメモリを使用することが仮定されている。
以下のように、本発明によるアルゴリズムが記載されている。
図3に示されているアーキテクチャによって行われる動作のシーケンスが、図4a及び図4bに示されている流れ図に記載されている。図の二つの部分が接続点I、II、及びIIIを介して互いに接続されている。
1.マイクロプロセッサ603からの要求が正常なキャッシュメモリにおいて開始させられると仮定されると、インタフェイス部605は比較器(コンパレータ)606でアドレスを二つのタグTag A及びTag Bと比較するであろう。二つのライン、Aラインキャッシュメモリ601.1又はBラインキャッシュメモリ601.2のうちの一つの上でヒットが発生するときはいつでも、他のラインキャッシュメモリは予測読み出しを介して満たされるであろう。ラインキャッシュメモリ601.1と601.2との両方におけるミスの場合(これはHit A=0及びHit B=0を意味する)、Aラインキャッシュメモリ601.1を満たすためにフラッシュメモリ602における読み出し動作が開始させられる。
2.フラッシュメモリ602からxワードを読み出した後、インタフェイス部605はAラインキャッシュメモリ601.1を満たすと共に有効化し、プロセッサ603によって必要とされるワードをもたらす。これはいわゆる書き込みを介した手法(ライトスルーアプローチ(write through approach))である。
3.同時にインタフェイス部605は次の新たな予測読み出しを開始させる(これは、Bラインキャッシュメモリ601.2を満たすためのフラッシュメモリのx+1アドレスを意味する)。
4.予測読み出しの間、インタフェイス部605はマイクロプロセッサ603からの要求を依然モニタしている。三つの例は、予測読み出しの終了前に可能となる。
a)プロセッサ603は内部動作を行っており、他の命令をフェッチすることを停止する。この場合、予測読み出しの終了の際にBラインキャッシュメモリ601.2が満たされ、第二のタグTag Bが有効化される。
b)プロセッサ603はAラインキャッシュメモリ601.1から他のワードを要求する(これは、Hit A=1を意味する)。予測読み出しワードは終了まで進み、Bラインキャッシュメモリ601.2を満たし、第二のタグTag Bを有効化する。
c)プロセッサ603は、Aラインキャッシュメモリ601.1にもたらされていないワードを要求する(これは、Hit A=0を意味する)。プロセッサ603は既にAラインキャッシュメモリ601.1に全ての命令をフェッチしているため、この例はジャンプに対して発生し得る。インタフェイス部605はこの場合、予測読み出しのアドレスが依然走っている間、要求されるアドレスを第二のタグTag Bと比較するであろう。この場合二つの例が発生し得る。
c.1)アドレスが等しくない。この場合、予測は正しくなかったことになる。ラインキャッシュメモリAライン601.1とBライン601.2との両方は有効にならず、実行されている読み出し動作は、正しいアドレスで新たな読み出しを開始するために中止させられなければならない。コールドスタートについては、新たな読み出しワードがAラインキャッシュメモリ601.1を満たし、それからBラインキャッシュメモリ601.2を満たす新たな予測読み出しが開始させられるであろう。
c.2)アドレスが等しい。従ってBライン601.2はまだ動作可能状態でない(準備されていない)ためそれが真のヒット(real hit)でない場合も、予測は正しかったことになる。この場合大きな利点は、当該アドレス上の読み出しが既に開始させられており、これによりマイクロプロセッサ603に対する待機状態の数、及びそれからレイテンシが低減させられるであろうことにある。それ故に予測読み出し動作は効果的であり、自身の終了の際、新たな予測読み出しがAラインキャッシュメモリ601.1を満たすために開始させられるであろう。
アドレスは第一の予測器(predictor)610及び第二の予測器611によって増加させられる。第一の予測器610は、Tag Bを使用すると共に、それをある第一の値、例えば4でインクリメントする。第二の予測器611はTag Aを使用すると共にそれを、通常第一の値と同じ第二の値でインクリメントする。
図5、6、及び7において、主な動作のタイミング図が示されている。この例において、フラッシュメモリアクセス期間は、プロセッサクロック速度の約3倍と仮定され、読み出しモードにおけるフラッシュメモリのワード幅は二つのラインキャッシュ、Aライン601.1及びBライン601.2と同様4ワードと仮定される。
図5に示されている例において、ミスサイクルの後、キャッシュメモリBライン601.2に対する予測読み出しにより、最初の4ワード後の無待機読み出し(no−wait reading)が可能になる。
図6に示されている例において、ミスサイクル及び更なるヒットサイクルの後、ジャンプが前記コードにおいて発生するが、ジャンプされたアドレスは予測されたアドレスと等しくなり、そのときミス読み出し動作は既に開始させられている。これにより、待機状態の数が2から1に低減させられ得る。この場合も、クロック速度がより速く、Aラインキャッシュメモリ601.1がBラインキャッシュメモリ601.2に対するフラッシュメモリ上の予測アクセス以外で完全に読み出されるであろう。
図7に示されている例において、ミスサイクル及び更なるヒットサイクルの後、ジャンプが前記コードにおいて発生するが、この場合ジャンプされたアドレスは予測された アドレスと異なっており、そのときBラインキャッシュメモリ601.2に対する予測読み出しは中止させられなければならず、新たなミス読み出しが開始させらなければならない。この場合、予測読み出し動作を通じた改善(gain)はもたらされていないが、更なるレイテンシがコントローラによって追加されていない。
アーキテクチャの記載から、本発明のいくつかの利点が明らかとなる。インタフェイス部605は、制御論理部に対して更なる待機状態をもたらすことなく完全に明らかな態様で、ラインキャッシュメモリ601.1及び601.2においてミス率を低減させ得るか、又は予測されたミスに対して待機状態の数を低減させ得る。これらの結果は完全な連想キャッシュ(associative cache)として使用されるレジスタバンク(register bank)を制御するための効率的なハードウエアアルゴリズムによって達成される。
新規性は、小さなキャッシュ容量のためにミス率を激減させることを目的とするハードウエアアルゴリズムにあり、規則的なシリアルコードを備える全てのこのような用途におけるシステム特性を改善するのに非常に適している。自身の構造的な実現を伴う本発明は、マスタとしての単一のマイクロプロセッサが、異なるワード幅を備える命令メモリとして低速アクセスエンベデッドフラッシュメモリを使用する全ての用途に非常に適している。この場合でも、命令毎のシステムサイクル(CPI(cycle per instruction))及び毎秒百万命令(MIPS(million instructions per second))の演算性能はメモリのスループットに極めて依存している。従ってインタフェイス部がフラッシュメモリを照会することについてより高速になれば、性能はより高くなる。
本発明が二つのラインキャッシュメモリを備えるインタフェイス部に限定されることはない。キャッシュメモリに対するいくつのラインが選択されるべきかは技術目的に依存する。例えばときには三つ又は四つのラインキャッシュメモリが有用となり得る。
最新技術によるエンベデッドフラッシュメモリを備える高度RISCマシンによるサブシステムを示す。 バス幅よりも広いフラッシュメモリワード幅を備えるフラッシュメモリとシステムバスとの間のラインキャッシュメモリを示す。 本発明によるアーキテクチャのブロック図を示す。 メモリを読み出す際に本発明によるアーキテクチャによって行われる動作の流れ図の第一の部分を示す。 メモリを読み出す際に本発明によるアーキテクチャによって行われる動作の流れ図の第二の部分を示す。 本発明によるアーキテクチャでのジャンプなしで六つの命令をフェッチするための読み出し動作に含まれる主な信号のタイミング図を示す。 本発明によるアーキテクチャでのクローズワードへの一つのジャンプで五つの命令をフェッチするための読み出し動作に含まれる主な信号のタイミング図を示す。 本発明によるアーキテクチャでのミス命令への一つのジャンプで五つの命令をフェッチするための読み出し動作に含まれる主な信号のタイミング図を示す。

Claims (12)

  1. プロセッサと、不揮発性メモリと、前記プロセッサを前記不揮発性メモリに接続するインタフェイス部とを備える集積回路であって、前記インタフェイス部は、第一のキャッシュメモリ及び第二のキャッシュメモリを含み、前記第一及び/又は前記第二のキャッシュメモリは、前記不揮発性メモリの所定のアドレスに対応するデータを記憶するために備えられ、前記インタフェイス部は、前記プロセッサに前記第一のキャッシュメモリ又は前記第二のキャッシュメモリから選択的にデータをもたらすと共に次の所定のアドレスに対応する前記不揮発性メモリからのデータをフェッチする集積回路。
  2. 前記インタフェイス部が、後続するアドレスになる前記次の所定のアドレスをもたらすアドレス予測器を含む請求項1に記載の集積回路。
  3. 前記不揮発性メモリがフラッシュメモリである請求項1又は2に記載の集積回路。
  4. 前記インタフェイス部が、前記プロセッサからアドレスを得ると共に当該アドレスを前記第一及び前記第二のキャッシュメモリに記憶される前記データに対応する二つのアドレスと比較するアドレス比較器を含む請求項1、2、又は3に記載の集積回路。
  5. 前記アドレス比較器は、前記プロセッサからの前記アドレスが、前記第一のキャッシュメモリに記憶される前記データに対応する前記アドレスに等しくなるとき第一の出力信号をもたらし、前記プロセッサからの前記アドレスが、前記第二のキャッシュメモリに記憶される前記データに対応する前記アドレスに等しくなるとき第二の出力信号をもたらす固定アドレス比較器である請求項4に記載の集積回路。
  6. 前記第一及び第二のキャッシュメモリに記憶される前記データに対応する前記二つのアドレスが第一及び第二のタグである請求項4又は5に記載の集積回路。
  7. 前記データが前記第一又は前記第二のキャッシュメモリにバッファされないとき、前記インタフェイス部は前記不揮発性メモリから直接前記プロセッサに前記データをもたらす請求項1乃至6の何れか一項に記載の集積回路。
  8. 前記第一及び前記第二のキャッシュメモリの各々の前記データワード幅が前記不揮発性メモリと同じデータワード幅を有する請求項1乃至7の何れか一項に記載の集積回路。
  9. 前記不揮発性メモリが命令メモリとして使用される請求項1乃至7の何れか一項に記載の集積回路。
  10. 集積回路に組み込まれている不揮発性メモリからのデータをフェッチするための方法であって、
    a)前記不揮発性メモリからの前記データの一部が、第一及び第二のタグアドレスのもとで二つのキャッシュメモリにバッファされるステップと、
    b)データが、要求手段によって前記不揮発性メモリから要求される場合、前記データに対応する前記アドレスは前記二つのタグアドレスと比較されるステップと、
    c)前記データアドレスが前記二つのタグアドレスのうちの一つに等しい場合、前記キャッシュメモリにおける前記データは前記要求手段にもたらされると共に前記他のキャッシュメモリにおける前記データは更新され、それ以外では、両方の前記キャッシュメモリが同時に更新されると共に前記要求されたデータが前記要求手段にもたらされるステップと
    を有する方法。
  11. 前記データ更新は前記不揮発性メモリの予測読み出しによって行われる請求項10に記載の方法。
  12. 前記キャッシュメモリは、前記後続するアドレスに対応する前記データで更新される請求項10に記載の方法。
JP2004502136A 2002-04-30 2003-04-22 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 Pending JP2005524170A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02009726 2002-04-30
PCT/IB2003/001613 WO2003093980A2 (en) 2002-04-30 2003-04-22 Apparatus and method for fetching data from memory

Publications (1)

Publication Number Publication Date
JP2005524170A true JP2005524170A (ja) 2005-08-11

Family

ID=29286103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004502136A Pending JP2005524170A (ja) 2002-04-30 2003-04-22 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法

Country Status (6)

Country Link
US (1) US7389384B2 (ja)
EP (1) EP1499961A2 (ja)
JP (1) JP2005524170A (ja)
CN (1) CN100378656C (ja)
AU (1) AU2003219414A1 (ja)
WO (1) WO2003093980A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100541642B1 (ko) * 2004-03-11 2006-01-10 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
US20070204102A1 (en) * 2006-02-28 2007-08-30 Nokia Corporation Cache feature in electronic devices
JP2010134983A (ja) * 2008-12-03 2010-06-17 Toshiba Corp デプレッションタイプnandフラッシュメモリ
US8914568B2 (en) * 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US8868852B2 (en) * 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US9135168B2 (en) * 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US9141538B2 (en) * 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
WO2012061048A1 (en) 2010-11-04 2012-05-10 Rambus Inc. Techniques for storing data and tags in different memory arrays
GB2493340A (en) * 2011-07-28 2013-02-06 St Microelectronics Res & Dev Address mapping of boot transactions between dies in a system in package
US8898426B2 (en) 2012-06-11 2014-11-25 International Business Machines Corporation Target buffer address region tracking
CN104834483B (zh) * 2015-05-11 2018-02-27 江苏宏云技术有限公司 一种提升嵌入式mcu性能的实现方法
EP3093761A1 (en) * 2015-05-13 2016-11-16 Gemalto Sa Integrated circuit card adapted to transfer first data from a first application for use by a second application
IT201700115266A1 (it) * 2017-10-12 2019-04-12 St Microelectronics Rousset Dispositivo elettronico comprendente un modulo digitale per accedere a dati cifrati in una memoria e corrispondente metodo per accedere a dati cifrati in una memoria
CN113687791B (zh) * 2021-09-07 2023-09-26 天津津航计算技术研究所 基于预读取和分支判断机制的存储器数据快速读取装置
CN113687792B (zh) * 2021-09-07 2023-09-26 天津津航计算技术研究所 一种存储器数据快速读取方法

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01230153A (ja) * 1988-03-10 1989-09-13 Matsushita Electric Ind Co Ltd データ処理装置
JPH01286058A (ja) * 1988-05-13 1989-11-17 Nec Corp キャッシュメモリ装置
JPH03116345A (ja) * 1989-09-29 1991-05-17 Nec Ibaraki Ltd データ処理装置
JPH03132852A (ja) * 1989-10-19 1991-06-06 Pfu Ltd バス非同期制御方式
JPH05143455A (ja) * 1991-11-19 1993-06-11 Fujitsu Ltd キヤツシユメモリ制御方式
JPH07182234A (ja) * 1993-12-22 1995-07-21 Kawasaki Steel Corp プログラム記憶装置
JPH0950399A (ja) * 1995-08-10 1997-02-18 Fujitsu Ltd 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム
JPH0981454A (ja) * 1995-09-20 1997-03-28 Hitachi Ltd キャッシュ記憶装置
US5706466A (en) * 1995-01-13 1998-01-06 Vlsi Technology, Inc. Von Neumann system with harvard processor and instruction buffer
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
JPH11175311A (ja) * 1997-12-05 1999-07-02 Tdk Corp フラッシュメモリシステム
JP2000306389A (ja) * 1999-04-21 2000-11-02 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置
WO2002001375A1 (en) * 2000-06-27 2002-01-03 Koninklijke Philips Electronics N.V. Integrated circuit with flash
JP2002073537A (ja) * 2000-08-30 2002-03-12 Matsushita Electric Ind Co Ltd バッファ制御装置
JP2002109895A (ja) * 1996-02-29 2002-04-12 Hitachi Ltd 半導体記憶装置
JP2003242027A (ja) * 2002-02-13 2003-08-29 Sony Corp インタフェース装置、データ処理システム、及びデータ処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497355A (en) * 1994-06-03 1996-03-05 Intel Corporation Synchronous address latching for memory arrays
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
DE19713178A1 (de) * 1997-03-27 1998-10-01 Siemens Ag Schaltungsanordnung mit einem Prozessor und einem Datenspeicher
US6263398B1 (en) * 1998-02-10 2001-07-17 Ramtron International Corporation Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache
US6609170B1 (en) * 1999-12-29 2003-08-19 Intel Corporation Method and apparatus for BIOS control of electrical device address/identification assignments
JP2002063069A (ja) * 2000-08-21 2002-02-28 Hitachi Ltd メモリ制御装置、データ処理システム及び半導体装置
US6836816B2 (en) * 2001-03-28 2004-12-28 Intel Corporation Flash memory low-latency cache

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01230153A (ja) * 1988-03-10 1989-09-13 Matsushita Electric Ind Co Ltd データ処理装置
JPH01286058A (ja) * 1988-05-13 1989-11-17 Nec Corp キャッシュメモリ装置
JPH03116345A (ja) * 1989-09-29 1991-05-17 Nec Ibaraki Ltd データ処理装置
JPH03132852A (ja) * 1989-10-19 1991-06-06 Pfu Ltd バス非同期制御方式
JPH05143455A (ja) * 1991-11-19 1993-06-11 Fujitsu Ltd キヤツシユメモリ制御方式
JPH07182234A (ja) * 1993-12-22 1995-07-21 Kawasaki Steel Corp プログラム記憶装置
US5706466A (en) * 1995-01-13 1998-01-06 Vlsi Technology, Inc. Von Neumann system with harvard processor and instruction buffer
JPH0950399A (ja) * 1995-08-10 1997-02-18 Fujitsu Ltd 多次元空間に配列されたデータの処理に適したキャッシュメモリシステム
JPH0981454A (ja) * 1995-09-20 1997-03-28 Hitachi Ltd キャッシュ記憶装置
JP2002109895A (ja) * 1996-02-29 2002-04-12 Hitachi Ltd 半導体記憶装置
JPH11175311A (ja) * 1997-12-05 1999-07-02 Tdk Corp フラッシュメモリシステム
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
JP2000306389A (ja) * 1999-04-21 2000-11-02 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置
WO2002001375A1 (en) * 2000-06-27 2002-01-03 Koninklijke Philips Electronics N.V. Integrated circuit with flash
JP2002073537A (ja) * 2000-08-30 2002-03-12 Matsushita Electric Ind Co Ltd バッファ制御装置
JP2003242027A (ja) * 2002-02-13 2003-08-29 Sony Corp インタフェース装置、データ処理システム、及びデータ処理方法

Also Published As

Publication number Publication date
EP1499961A2 (en) 2005-01-26
US7389384B2 (en) 2008-06-17
WO2003093980A2 (en) 2003-11-13
CN100378656C (zh) 2008-04-02
CN1650259A (zh) 2005-08-03
AU2003219414A1 (en) 2003-11-17
AU2003219414A8 (en) 2003-11-17
US20060004949A1 (en) 2006-01-05
WO2003093980A3 (en) 2004-04-08

Similar Documents

Publication Publication Date Title
US6574142B2 (en) Integrated circuit with flash memory
US7620748B1 (en) Hardware assisted non-volatile memory-to-input/output direct memory access (DMA) transfer
US20050086435A1 (en) Cache memory controlling apparatus, information processing apparatus and method for control of cache memory
US6782454B1 (en) System and method for pre-fetching for pointer linked data structures
JP2005524170A (ja) 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
JP2005502120A (ja) キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
TWI236591B (en) Method and apparatus for determining a dynamic random access memory page management implementation
JP2002140289A (ja) 調整可能ワード・サイズ転送とアドレス配列/増加を備えたマイクロコントローラdmaオペレーション
CN105765541A (zh) 用于机动车的控制器
US5784711A (en) Data cache prefetching under control of instruction cache
EP4158486A1 (en) Computer memory expansion device and method of operation
CN101504567B (zh) 一种cpu、cpu指令系统及降低cpu功耗的方法
KR100710922B1 (ko) 캐시 관리 방법
US6801982B2 (en) Read prediction algorithm to provide low latency reads with SDRAM cache
JP4520847B2 (ja) 集積回路における不揮発性メモリからのデータをフェッチするための方法及び対応する集積回路
US20090271590A1 (en) Method and system for latency optimized ats usage
US7788448B2 (en) Sequencer cache and method for operating the same
US10120819B2 (en) System and method for cache memory line fill using interrupt indication
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
JPH11184752A (ja) データ処理装置及びデータ処理システム
US7249223B2 (en) Prefetching in a data processing system
JP2002049607A (ja) キャッシュ内蔵マイクロコンピュータ
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JP4307604B2 (ja) 部分キャッシュ・クリーニングを用いるコンピュータ回路システムと方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060421

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080125

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20081110

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090911

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091211

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100112

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100119

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100212

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100330