JP2017517065A - 再構成可能フェッチパイプライン - Google Patents

再構成可能フェッチパイプライン Download PDF

Info

Publication number
JP2017517065A
JP2017517065A JP2016568837A JP2016568837A JP2017517065A JP 2017517065 A JP2017517065 A JP 2017517065A JP 2016568837 A JP2016568837 A JP 2016568837A JP 2016568837 A JP2016568837 A JP 2016568837A JP 2017517065 A JP2017517065 A JP 2017517065A
Authority
JP
Japan
Prior art keywords
access
tag
data
cache
cache access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016568837A
Other languages
English (en)
Other versions
JP6258525B2 (ja
Inventor
スレッシュ・クマール・ヴェンクマハンティ
スティーヴン・ロバート・シャノン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2017517065A publication Critical patent/JP2017517065A/ja
Application granted granted Critical
Publication of JP6258525B2 publication Critical patent/JP6258525B2/ja
Active 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/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0877Cache access modes
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • 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 or look ahead
    • G06F9/3824Operand accessing
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • G06F2212/6012Reconfiguration of cache memory of operating mode, e.g. cache mode or local memory mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/603Details of cache memory of operating mode, e.g. cache mode or local memory mode
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

特定の方法は、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップを含む。本方法は、第1のキャッシュアクセスを実行するステップをさらに含む。第1のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行することは、タグアクセスを実行するステップと、およびタグアクセスを実行した後にデータアレイアクセスを実行するステップとを含む。第2のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行するステップは、データアレイアクセスと並行してタグアクセスを実行するステップを含む。

Description

関連出願の相互参照
本出願は、参照によりその内容全体が本明細書に明確に組み込まれる、同一出願人が所有する2014年5月27日に出願の米国非仮特許出願第14/287,331号の優先権を主張する。
本開示は、一般に、再構成可能フェッチパイプラインに関する。
技術が進歩した結果、コンピューティングデバイスがより小型に、そしてより高性能になった。たとえば、小型で軽量であり、ユーザによって容易に携帯されるポータブルワイヤレス電話およびタブレットコンピュータなどのワイヤレスコンピューティングデバイスを含む、様々なポータブルパーソナルコンピューティングデバイスが現存している。多くのそのようなコンピューティングデバイスは、その中に組み込まれる他のデバイスを含む。たとえば、ワイヤレス電話は、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダー、およびオーディオファイルプレーヤも含むことができる。また、そのようなコンピューティングデバイスは、インターネットにアクセスするために使用することができるウェブブラウザアプリケーション、および、スチルカメラまたはビデオカメラを利用しマルチメディア再生機能を提供するマルチメディアアプリケーションなどのソフトウェアアプリケーションを含む、実行可能命令を処理することができる。
コンピューティングデバイスは、プロセッサおよびキャッシュを含んでもよい。キャッシュは、実行中にプロセッサによって使用される情報(たとえば、命令またはデータ)を記憶するために使用されてもよい。キャッシュにおいて情報にアクセスすることは、プロセッサの複数のクロックサイクルを要する場合がある。キャッシュにおける情報がより迅速にアクセスされてもよい1つの方法は、キャッシュのデータアレイにアクセスすることと並行してキャッシュのタグアレイにアクセスすることによる。しかしながら、並行してタグアレイおよびデータアレイにアクセスすることは、タグアレイおよびデータアレイに連続的にアクセスすることよりも多くの電力を消費する場合がある。
本開示は、再構成可能フェッチパイプラインの態様を提示する。再構成可能フェッチパイプラインは、たとえば、発行キューに記憶されている命令の数、実行ユニットのアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、パラレルロード動作とシリアルロード動作との間で動的に切り替わってもよい。特定の態様では、要求されたデータを実行ユニットが発行キューに要求することになる前に、要求されたデータを再構成可能フェッチパイプラインが発行キューに提供できるような特定の数の命令を、発行キューが記憶しているとき、再構成可能フェッチパイプラインは、(たとえば、電力を節約するために)シリアルロード動作を実行する。したがって、再構成可能フェッチパイプラインがシリアル動作モードで動作するとき、再構成可能フェッチパイプラインを含む電子デバイスは、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。要求されたデータを実行ユニットが発行キューに要求する前に、要求されたデータを再構成可能フェッチパイプラインが発行キューに提供できないような数の命令を、発行キューが記憶しているとき(たとえば、発行キューが空であり実行ユニットが命令を待っている場合、または要求されたデータをシリアルロード動作が発行キューに提供することになる前に、要求されたデータを発行キューが要求することになる場合)、再構成可能フェッチパイプラインは、(たとえば、データを迅速にフェッチするために)パラレルロード動作を実行する。したがって、再構成可能フェッチパイプラインがパラレル動作モードで動作するとき、再構成可能フェッチパイプラインを含む電子デバイスは、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。さらに、再構成可能フェッチパイプラインは、発行キューの中の命令の数、実行ユニットにおけるアクティブスレッドの数、または現在の必要性(たとえば、速度または電力節約)に基づく他の要因に基づいて、シリアル動作モードとパラレル動作モードとの間で動的に切り替わってもよい。
特定の態様では、本方法は、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップを含む。本方法は、第1のキャッシュアクセスを実行するステップをさらに含む。第1のキャッシュアクセスモード(たとえば、シリアル動作モード)が選択されているとき、第1のキャッシュアクセスを実行するステップは、タグアクセスを実行するステップと、タグアクセスを実行した後にデータアレイアクセスを実行するステップを含む。第2のキャッシュアクセスモード(たとえば、パラレル動作モード)が選択されているとき、第1のキャッシュアクセスを実行するステップは、データアレイアクセスと並行してタグアクセスを実行するステップを含む。
別の特定の態様では、本装置は、アクセスモード選択回路、タグアレイ、データアレイ、およびアドレス生成ユニットを含む。アクセスモード選択回路は、発行キューにおいて記憶されている命令の数、キャッシュに結合される実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択し、選択に基づいてアクセスモード信号を生成するように構成される。アドレス生成ユニットは、第1のキャッシュアクセスモード(たとえば、シリアル動作モード)が選択されているとアクセスモード信号が示すことに応答して、タグアドレスをタグアレイへ送信し、タグアドレスに対応するタグデータをタグアレイから受信し、データ要求をデータアレイへ送信するように構成される。データ要求は、タグデータおよびデータアドレスを含む。アドレス生成ユニットは、第2のキャッシュアクセスモード(たとえば、パラレル動作モード)が選択されているとアクセスモード信号が示すことに応答して、データアドレスをデータアレイへ送信することと並行して、タグアドレスをタグアレイへ送信するようにさらに構成される。
別の特定の態様では、非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間での選択を実行させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、第1のキャッシュアクセスを実行させる命令をさらに記憶する。第1のキャッシュアクセスモード(たとえば、シリアル動作モード)が選択されているとき、第1のキャッシュアクセスは、タグアクセスを実行すること、およびタグアクセスを実行した後にデータアレイアクセスを実行することを含む。第2のキャッシュアクセスモード(たとえば、パラレル動作モード)が選択されているとき、第1のキャッシュアクセスは、データアレイアクセスと並行してタグアクセスを実行することを含む。
別の特定の態様では、本装置は、発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するための手段を含む。本装置は、第1のキャッシュアクセス中に、第1のキャッシュアクセスモードが選択されているときは、タグアクセスを実行すること、およびタグアクセスを実行した後にデータアレイアクセスを実行することによって、第2のキャッシュアクセスモードが選択されているときは、データアレイアクセスと並行してタグアクセスを実行することによって、キャッシュアクセスを実行するための手段をさらに含む。
開示される態様のうちの少なくとも1つによって提供される1つの特定の利点は、再構成可能フェッチパイプラインを含む電子デバイスが、動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニットのアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、シリアル動作モードとパラレル動作モードとの間で切り替わってもよいことである。再構成可能フェッチパイプラインがシリアル動作モードで動作するとき、再構成可能フェッチパイプラインは、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。再構成可能フェッチパイプラインがパラレル動作モードで動作するとき、再構成可能フェッチパイプラインは、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
以下の節、すなわち、図面の簡単な説明、発明を実施するための形態、および特許請求の範囲を含む、本出願全体を検討した後、本開示の他の態様、利点、および特徴が明らかとなるであろう。
再構成可能フェッチパイプラインの特定の態様を示す図である。 再構成可能フェッチパイプラインの別の特定の態様を示す図である。 再構成可能フェッチパイプラインを動作させる方法を示すフローチャートである。 再構成可能フェッチパイプラインを含む通信デバイスを示すブロック図である。
図1を参照すると、再構成可能フェッチパイプラインの特定の例示的な態様が開示され、全体が100と称される。再構成可能フェッチパイプラインは、キャッシュ150および実行ユニット144を含む。キャッシュ150(たとえば、データキャッシュまたは命令キャッシュ)は、コントローラ102、アドレス生成ユニット(AGU)104、タグアレイ106、データアレイ108、タグ論理126、および選択論理128を含んでもよい。AGU104は、AGUメモリ132を含んでもよい。データアレイ108は、複数のセット110〜116を含んでもよい。各セット(たとえば、セット114)は、複数のウェイ(たとえば、ウェイ118〜124)を含んでもよい。
コントローラ102は、制御データ142に基づいて、第1のキャッシュアクセスモード(たとえば、パラレル動作モード)と第2のキャッシュアクセスモード(たとえば、シリアル動作モード)との間で選択するように構成されてもよい。特定の態様では、制御データ142は、発行キューに記憶されている命令の数、実行ユニット(たとえば、実行ユニット144または別の実行ユニット)のアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せを示す。たとえば、発行キューが、いくつかのシーケンシャルな命令を記憶してもよい。この例では、実行ユニット144が、発行キューに命令を周期的に要求してもよい(たとえば、クロックサイクルごとに1つの命令)。発行キューに記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キューにおいて受信されることになる前に(たとえば、実行ユニット144によって、または別の実行ユニットによって)要求されることになる命令の数以上である場合、実行時間は、パラレル動作モードではなくシリアル動作モードを使用することによって増大されない場合がある。したがって、コントローラ102は、より多くの命令が発行キューにおいて記憶される(たとえば、発行キューにおいて記憶されている命令の数がしきい値を超える)ときはキャッシュ150のためにシリアル動作モードを、より少ない命令が発行キューにおいて記憶される(たとえば、発行キューにおいて記憶されている命令の数がしきい値を上回らない)ときはパラレル動作モードを選択してもよい。
別の例として、実行ユニット144は、マルチスレッド動作向けに構成されてもよい。この例では、各スレッドは、キャッシュ150に結合されるメモリデバイス(たとえば、発行キューまたはレジスタファイル)からデータを読み取ってもよい。複数のスレッドがアクティブであるとき、各スレッドは、より低いレートでメモリデバイスからデータを読み取る場合がある(たとえば、他のスレッドがアクティブである間、現在のスレッドがアイドルである場合があるため)。したがって、コントローラ102は、より多くのスレッドがアクティブである(たとえば、アクティブスレッドの数がしきい値を超える)ときはキャッシュ150のためにシリアル動作モードを、より少ないスレッドがアクティブである(たとえば、アクティブスレッドの数がしきい値を超えない)ときはパラレル動作モードを選択してもよい。別の例として、電子デバイスは、キャッシュ150および実行ユニット144を含んでもよい。(たとえば、低バッテリー状態に起因して、ユーザアクティビティがないことに起因して、またはユーザ指定の電力設定に起因して、)電子デバイスは、電力節約モードに入るように構成されてもよい。以下で説明するように、シリアルロード動作は、パラレルロード動作よりも少ない電力しか消費しない場合がある。したがって、コントローラ102は、電子デバイスが電力節約モードにあるとき、キャッシュ150のためにシリアル動作モードを選択してもよい。別の例として、ユーザは、シリアル動作モードとパラレル動作モードとの間で選択してもよい。(たとえば、静的モード入力(たとえば、ユーザ指定のキャッシュ構成設定)を使用することによって、)ユーザは、選択結果をコントローラ102に提供してもよい。この例では、制御データ142は、選択結果を示す1つまたは複数のビットを含んでもよい。したがって、コントローラ102は、選択結果によって示されるユーザ選好に基づいて、キャッシュ150のためにシリアル動作モードまたはパラレル動作モードのいずれかを選択してもよい。
例示的な態様では、コントローラ102は、キャッシュ150における複数のキャッシュアクセスのうちの各キャッシュアクセスを実行する前に、パラレル動作モードとシリアル動作モードとの間で動的に選択するように構成されてもよい。たとえば、以下で説明するように、第1のキャッシュアクセスがパラレル動作モードで実行されてもよく、第2のキャッシュアクセスがシリアル動作モードで実行されてもよい。別の例として、以下で説明するように、第1のキャッシュアクセスがシリアル動作モードで実行されてもよく、第2のキャッシュアクセスがパラレル動作モードで実行されてもよい。コントローラ102がパラレル動作モードとシリアル動作モードとの間で選択した後、コントローラ102は、選択された動作モード(たとえば、パラレル動作モードまたはシリアル動作モード)を示す制御信号を、AGU104およびタグ論理126へ送信してもよい。特定の態様では、コントローラ102は、第1のキャッシュアクセスの動作モードを決定するために、第1の動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で選択してもよい。コントローラ102は、第2のキャッシュアクセスの動作モードを決定するために、第2の動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で選択してもよい。第1の動作条件は、第2の動作条件と同じであってもよく、または第2の動作条件と異なってもよい。
パラレル動作モードを示す制御信号をコントローラ102から受信することに応答して、またキャッシュ要求138(たとえば、実行ユニット144によって生成されるキャッシュ要求)を受信することに応答して、AGU104は、(たとえば、第1のクロックサイクル中に、)データアドレスを生成してもよい。AGU104は、(たとえば、データアドレスのいくつかの最下位ビットに対応する)タグ要求134をタグアレイ106へ、(たとえば、データアドレスのいくつかの最上位ビットに対応する)データ要求136をデータアレイ108へ、(たとえば、第2のクロックサイクル中に)並行して送信してもよい。データ要求136は、データアレイ108の特定のセット(たとえば、セット114)を識別してもよい。タグ要求134を受信することに応答して、タグアレイ106は、(たとえば、第2のクロックサイクル中に)要求されるデータを含むデータアレイ108の特定のセットの特定のウェイ(たとえば、ウェイ120)を識別してもよい。タグアレイ106は、(たとえば、第2のクロックサイクル中に)特定のウェイに対応する信号をタグ論理126へ送信してもよい。タグアレイ106からの信号、およびコントローラ102からのパラレル動作モードを示す制御信号を受信することに応答して、タグ論理126は、(たとえば、第2のクロックサイクル中に、)タグ信号を選択論理128へ送信してもよい。タグ信号は、特定のウェイを示してもよい。データ要求136を受信することに応答して、データアレイ108は、(たとえば、第2のクロックサイクル中に、)識別されたセットの各ウェイ(たとえば、セット114のウェイ118〜124)において記憶されているデータを、選択論理128へ送信してもよい。選択論理128は、(たとえば、第2のクロックサイクル中に、)タグ信号および特定のセットに基づいて、特定のウェイ(たとえば、ウェイ120)に対応する選択されたデータ130を出力してもよい。選択論理128は、実行ユニット144へ、発行キューへ、または別のデバイスへ、選択されたデータ130を出力してもよい。特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令を含む。別の特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令の実行中に実行ユニット(たとえば、実行ユニット144)によって使用されるべきデータを含む。
シリアル動作モードを示す制御信号をコントローラ102から受信することに応答して、またキャッシュ要求138を受信することに応答して、AGU104は、(たとえば、第1のクロックサイクル中に、)データアドレスを生成してもよい。AGU104は、(たとえば、第2のクロックサイクル中に、)タグ要求134をタグアレイ106へ送信してもよい。タグ要求134を受信することに応答して、タグアレイ106は、(たとえば、第2のクロックサイクル中に、)タグデータ140をAGU104へ送信してもよく、信号をタグ論理126へ送信してもよい。タグデータ140および信号は、特定のウェイ(たとえば、ウェイ120)を識別してもよい。タグアレイ106からの信号およびコントローラ102からのシリアル動作モードを示す制御信号を受信することに応答して、タグ論理126は、(たとえば、第3のクロックサイクル中に、)特定のウェイを示すタグ信号を選択論理128へ送信してもよい。AGU104は、(たとえば、第3のクロックサイクル中に、)データ要求136をデータアレイ108へ送信してもよい。データ要求136は、特定のセット(たとえば、特定のセット114)および特定のウェイ(たとえば、ウェイ120)を識別してもよい。データアレイ108は、特定のセットの特定のウェイに対応するデータを選択論理128へ送信してもよい。データアレイ108は、(たとえば、特定のセット以外のセットに関連するプリチャージを妨げることによって、)特定のセット以外のデータアレイ108のセット(たとえば、セット110、112、および116)が、データ信号を選択論理128へ送信することを妨げる場合がある。選択論理128は、(たとえば、第3のクロックサイクル中に、)特定のウェイに対応するデータをデータアレイ108から、かつ特定のウェイに対応する入力ラインを識別するタグ信号をタグ論理126から受信してもよい。選択論理128は、(たとえば、第3のクロックサイクル中に、)識別されたウェイに対応する選択されたデータ130を出力してもよい。特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令を含む。別の特定の態様では、選択されたデータ130は、少なくとも1つのプロセッサ命令の実行中に実行ユニット(たとえば、実行ユニット144)によって使用されるべきデータを含む。シリアル動作モードは、(たとえば、特定のセット以外のセットに関連するプリチャージを妨げることによって、)パラレル動作モードよりも少ない電力を使用してデータをロードしてもよい。
完了するために2つのクロックサイクルを要するものとしてパラレルロード動作が説明されるが、パラレルロード動作は、完了するために2つよりも短いクロックサイクル、または完了するために2つよりも長いクロックサイクルを要する場合がある。完了するために3つのクロックサイクルを要するものとしてシリアルロード動作が説明されるが、シリアルロード動作は、完了するために3つよりも短いクロックサイクル、または完了するために3つよりも長いクロックサイクルを要する場合がある。シリアルロード動作は、完了するためにパラレルロード動作よりも多くのクロックサイクルを要する場合がある。
上述のように、コントローラ102は、キャッシュ150における複数のキャッシュアクセスのうちの各キャッシュアクセスを実行する前に、パラレル動作モードとシリアル動作モードとの間で動的に選択するように構成されてもよい。キャッシュ150がシリアル動作モードからパラレル動作モードへ切り替わるとき、データアレイ108においてデータ衝突が起こる場合がある。説明のために、上述のように、シリアル動作モードでは、AGU104は、第1のクロックサイクル中に(たとえば、シリアル動作モード要求に対応する)第1のデータアドレスを生成するように構成されてもよい。タグアレイ106は、第2のクロックサイクル中にアクセスされてもよい。データアレイ108は、第3のクロックサイクル中にアクセスされてもよい。パラレル動作モード要求がシリアル動作モード要求の直後にくるとき、AGU104は、(たとえば、パラレル動作モード要求に対応する)第2のデータアドレスを第2のクロックサイクル中に生成するように構成されてもよい。パラレル動作モードでは、タグアレイ106およびデータアレイ108は、(たとえば、第3のクロックサイクル中に)同時にアクセスされてもよい。したがって、第3のクロックサイクル中に、シリアル動作モード要求およびパラレル動作モード要求は、データアレイ108を使用するための複数の試行をもたらしてデータ衝突を引き起こす場合がある。
データ衝突を回避する2つの方法が、以下で説明される。データ衝突を回避する第1の方法では、パラレル動作モード要求が、(たとえば、AGU104において)少なくとも1つのクロックサイクルの間、遅延されてもよい。データ衝突を回避する第2の方法では、シリアル動作モード要求(たとえば、データアレイ108アクセス)が、(たとえば、AGU104において)少なくとも1つのクロックサイクルの間遅延されてもよい。
たとえば、データ衝突を回避する第1の方法を実行するとき、AGU104は、(たとえば、第2のクロックサイクル中に、)第1のキャッシュアクセスに関連するタグデータ140を、タグアレイ106からシリアル動作モードに従って受信してもよく、(たとえば、やはり第2のクロックサイクル中に、)第2のキャッシュアクセスに関連するパラレル動作モードに従ってデータアドレスを生成してもよい。AGU104は、パラレル動作モード要求のタグ要求134およびデータ要求136を送信することを(たとえば、パラレル動作モード要求に対応する生成されたアドレスをAGUメモリ132に記憶することによって)(たとえば、第4のクロックサイクルまで)遅延させてもよい。したがって、シリアル動作モードのデータ要求136が特定のクロックサイクル(たとえば、第3のクロックサイクル)中に送信され、パラレル動作モードのデータ要求136が別のクロックサイクル(たとえば、第4のクロックサイクル)中に送信されるため、(たとえば、第3のクロックサイクル中の)データアレイ108における潜在的なデータ衝突は回避されてもよい。
別の例として、データ衝突を回避する第2の方法を実行するとき、AGU104は、(たとえば、第2のクロックサイクル中に、)第1のキャッシュアクセスに関連するタグデータ140を、タグアレイ106からシリアル動作モードに従って受信してもよく、AGU104は、(たとえば、やはり第2のクロックサイクル中に、)第2のキャッシュアクセスに関連するパラレル動作モードに従って、アドレスを生成してもよい。AGU104は、シリアル動作モード要求のデータ要求136を送信することを(たとえば、シリアル動作モード要求に対応するタグデータ140をAGUメモリ132に記憶することによって) (たとえば、第4のクロックサイクルまで)遅延させてもよい。したがって、パラレル動作モードのデータ要求136が特定のクロックサイクル(たとえば、第3のクロックサイクル)中に送信され、シリアル動作モードのデータ要求136が別のクロックサイクル(たとえば、第4のクロックサイクル)中に送信されるため、(たとえば、第3のクロックサイクル中の)潜在的なデータ衝突はデータアレイ108において回避されてもよい。
キャッシュ150がパラレル動作モードからシリアル動作モードへ切り替わるとき、キャッシュ150は、パラレル動作要求およびシリアル動作要求を普通に処理してもよい。たとえば、第1のクロックサイクル中に、タグアクセス(たとえば、タグ要求134を送信し、選択論理128においてタグ信号を受信すること)を、第2のキャッシュアクセスモード(たとえば、パラレル動作モード)に従って実行した後、タグアレイ106は、第1のクロックサイクルの直後にくる第2のクロックサイクルの中で、第2のキャッシュアクセスに対応する第2のタグアクセスを、第1のキャッシュアクセスモード(たとえば、シリアル動作モード)に従って実行してもよい。この例では、タグアレイ106は、第1のクロックサイクル中に、パラレル動作モードに対応する第1のタグアクセスを実行するように構成されてもよく、タグアレイ106は、第1のクロックサイクルの直後にくる第2のクロックサイクル中に、シリアル動作モードに対応する第2のタグアクセスを実行するように構成されてもよい。
図1は、選択論理128に結合されている共通入力ラインに結合されるセット114および116のウェイを示すが、セット110〜116のウェイの各々が共通入力ラインに結合されてもよく、または選択論理128に別々に結合されてもよい。図1は、選択論理128が、選択されたデータ130を実行ユニット144へ直接送信することを示すが、他の態様では、1つまたは複数の論理要素(たとえば、バッファ、レジスタファイル、または発行キュー)が選択論理128と実行ユニット144との間に配置されてもよい。
再構成可能フェッチパイプライン100を含む電子デバイスは、動作条件(たとえば、発行キューに記憶されている命令の数、実行ユニット144におけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で切り替わってもよい。再構成可能フェッチパイプライン100がパラレル動作モードで動作するとき、再構成可能フェッチパイプライン100は、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。再構成可能フェッチパイプライン100がシリアル動作モードで動作するとき、再構成可能フェッチパイプライン100は、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。発行キューにおいて記憶されている命令の数がしきい値を超えるとき、または実行ユニット(たとえば、実行ユニット144または別の実行ユニット)におけるアクティブスレッドの数がしきい値を超えるとき、(たとえば、データは、データが要求されることになる前にロードされてもよいため)シリアルロード動作を使用してロードされるデータは、実行時間を増大させることなく送信されてもよい。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
図2は、図1のキャッシュ150および実行ユニット144を含む再構成可能フェッチパイプライン200の特定の態様を示す。再構成可能フェッチパイプライン200はまた、発行キュー202を含む。発行キュー202は、キャッシュ150の一部であってもよく、またはキャッシュ150と別個であってもよい。再構成可能フェッチパイプライン200は、図1の再構成可能フェッチパイプライン100と同様に動作してもよい。ただし、選択されたデータ130は発行キュー202に提供される。制御データ142は、発行キュー202の中の命令の数の表示を含んでもよい。たとえば、少なくとも特定の数(たとえば、4個)の命令が発行キュー202において記憶されているとき、キャッシュ150は、パラレル動作モードで動作するように構成されてもよい。特定の数よりも少ない命令が発行キュー202において記憶されているとき、キャッシュ150は、シリアル動作モードで動作してもよい。特定の態様では、パラレル動作モードとシリアル動作モードとの間での選択は、追加または代替として、実行ユニット(たとえば、実行ユニット144または別の実行ユニット)のアクティブスレッドの数、電力節約モードインジケータ(たとえば、デバイスが電力節約モードに入るべきかどうかを規定する、キャッシュの外部のデバイスによって設定されるインジケータ)、静的モード入力(たとえば、パラレル動作モードまたはシリアル動作モードを識別する、ユーザ指定の選択)、または(たとえば、図1を参照しながら上記で説明したような)それらの組合せに基づく。
再構成可能フェッチパイプライン200を含む電子デバイスは、動作条件(たとえば、発行キュー202において記憶されている命令の数、実行ユニット144におけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で切り替わってもよい。再構成可能フェッチパイプライン200がパラレル動作モードで動作するとき、再構成可能フェッチパイプライン200は、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。再構成可能フェッチパイプライン200がシリアル動作モードで動作するとき、再構成可能フェッチパイプライン200は、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。発行キュー202において記憶されている命令の数がしきい値を超えるとき、または実行ユニット(たとえば、実行ユニット144または別の実行ユニット)におけるアクティブスレッドの数がしきい値を超えるとき、(たとえば、データは、データが要求されることになる前にロードされてもよいため)シリアルロード動作を使用してロードされるデータは、実行時間を増大させることなく送信されてもよい。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
図3は、再構成可能フェッチパイプラインを動作させる方法300の特定の態様を示すフローチャートである。方法300は、302において、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップを含む。様々な態様では、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップは、発行キューにおいて記憶されている命令の数に基づき、実行ユニットにおけるアクティブスレッドの数に基づき、電力節約モードインジケータに基づき、静的モード入力に基づき、またはそれらの組合せである。
第1の態様では、データがシリアル動作モードを使用して提供され得る前に、データを要求している実行ユニット144のスレッドが実行時間を受け取ることになるかどうかに基づいて(たとえば、実行ユニットにおける他のアクティブスレッドの数に起因して)、図1のコントローラ102はシリアル動作モードとパラレル動作モードとの間で選択する。他のアクティブスレッドの数がしきい値以上であるとき(たとえば、シリアル動作モードを使用してデータをロードすることに関連するクロックサイクルの数を超えるとき)、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されない。上記で説明したように、シリアルロード動作は、パラレルロード動作よりも少ない電力しか消費しない場合がある。
たとえば、シリアルロード動作の場合、3つのスレッドが図1の実行ユニット144においてアクティブであってもよい。この例では、アクティブスレッドは交代してもよい(たとえば、各スレッドは、3つのクロックサイクルごとに1回、実行ユニット144を制御してもよい)。この例では、シリアルロード動作は、データを提供するために3つのクロックサイクルを要する。データを要求しているスレッドは、第1のクロックサイクル中にデータを要求することになり、第4のクロックサイクルまで実行ユニット144を再び制御しないことになる。この例では、(たとえば、データを要求しているスレッドが実行ユニット144の制御を取り戻す前に)、シリアルロード動作は、要求されるデータを第3のクロックサイクル中に提供する。したがって、シリアルロード動作を使用することは、データを要求しているスレッドを遅延させず、図1を参照しながら上記で説明したように、パラレルロード動作よりも少ない電力しか使用しない。アクティブスレッドの数がしきい値以上でないとき(たとえば、シリアル動作モードを使用してデータをロードすることに関連するクロックサイクルの数以上でないとき)、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されることになる。したがって、この場合、データを要求しているスレッドにデータをより迅速に提供するために、(シリアルロード動作の代わりに)パラレルロード動作が使用されてもよい。
第2の態様では、発行キュー202において記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キュー202において受信されることになる前に(たとえば、実行ユニット144によって)要求されることになる命令の数以上であるかどうかに基づいて、図2のコントローラ102はシリアル動作モードとパラレル動作モードとの間で選択してもよい。発行キュー202において記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キュー202において受信されることになる前に要求されることになる命令の数以上であるとき、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されない。図1を参照しながら上記で説明したように、シリアルロード動作は、パラレルロード動作よりも少ない電力しか消費しない場合がある。したがって、シリアルロード動作を使用することは、性能の低減を伴わず、より少ない電力しか消費しない場合がある。あるいは、発行キュー202において記憶されている命令の数が、シリアル動作モードを使用してロードされるデータが発行キュー202において受信されることになる前に要求されることになる命令の数以上でないとき、実行時間は、パラレルロード動作ではなくシリアルロード動作を使用することによって増大されることになる。したがって、この場合、発行キュー202にデータをより迅速に提供するために、(シリアルロード動作の代わりに)パラレルロード動作が使用されてもよい。
方法300はまた、304において、第1のキャッシュアクセスを実行するステップを含む。第1のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行するステップは、タグアクセスを実行するステップ、およびタグアクセスを実行した後にデータアレイアクセスを実行するステップを含む。第2のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行するステップは、データアレイアクセスと並行してタグアクセスを実行するステップを含む。たとえば、シリアル動作モードが選択されているとき、図1のAGU104または図2のAGU104は、第2のクロックサイクル中に、タグ要求134をタグアレイ106へ送信してもよく、タグデータ140を受信してもよい。この例では、AGU104は、第3のクロックサイクル中に、データ要求136をデータアレイ108へ送信してもよい。別の例として、パラレル動作モードが選択されているとき、図1のAGU104または図2のAGU104は、第2のクロックサイクル中に、タグ要求134をタグアレイ106へ送信してもよく、データ要求136をデータアレイ108へ送信してもよい。方法300は、1つまたは複数の追加のキャッシュアクセスを実行するステップと、各キャッシュアクセスの前に、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップとを含んでもよい。
図3の方法300は、中央処理ユニット(CPU)、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、コントローラ、別のハードウェアデバイス、ファームウェアデバイス、またはそれらの任意の組合せなどの、処理ユニットによって開始および/または実行されてもよい。一例として、図3の方法300は、図1、図2、および図4を参照しながらさらに説明するように、命令を実行する1つまたは複数のプロセッサまたは実行ユニットによって実行することができる。
方法300に従って動作する電子デバイスは、動作条件(たとえば、発行キューの中の命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、パラレル動作モードとシリアル動作モードとの間で切り替わってもよい。電子デバイスがパラレル動作モードで動作するとき、電子デバイスは、シリアルロード動作と比較して、より迅速にデータをロードしてもよい。電子デバイスがシリアル動作モードで動作するとき、電子デバイスは、パラレルロード動作と比較して、より少ない電力を使用してデータをロードしてもよい。発行キューに記憶されている命令の数がしきい値を超えるとき、または実行ユニットにおけるアクティブスレッドの数がしきい値を超えるとき、シリアルロード動作を使用してロードされるデータは、実行時間を増大させることなく送信されてもよい(たとえば、データは、データが要求されることになる前にロードされてもよいので)。したがって、電子デバイスは、シリアルロード動作を実行するように構成されるパイプラインに関連するとともに、パラレルロード動作を実行するように構成されるパイプラインに関連する利益を得てもよい。
図4を参照すると、ブロック図が、再構成可能フェッチパイプライン464を含むモバイルデバイス400の特定の例示的な態様を示す。モバイルデバイス400、またはそれの構成要素は、通信デバイス、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、タブレット、アクセスポイント、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定位置データユニット、移動体位置データユニット、デスクトップコンピュータ、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、ビデオプレーヤ、デジタルビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、またはポータブルデジタルビデオプレーヤなどのデバイスを含んでもよく、そうしたデバイスを実装してもよく、またはそうしたデバイス内に含まれてもよい。
モバイルデバイス400は、デジタル信号プロセッサ(DSP)などのプロセッサ410を含んでもよい。プロセッサ410は、再構成可能フェッチパイプライン464を含んでもよく、または再構成可能フェッチパイプライン464と別個であってもよい。再構成可能フェッチパイプライン464は、図1〜図3を参照しながら上記で説明したように、第1のキャッシュアクセスモード(たとえば、シリアル動作モード)で動作することと、第2のキャッシュアクセスモード(たとえば、パラレル動作モード)で動作することとの間で動的に選択するように構成されてもよい。再構成可能フェッチパイプライン464は、図1の再構成可能フェッチパイプライン100または図2の再構成可能フェッチパイプライン200に相当してもよい。プロセッサ410は、メモリ432(たとえば、非一時的コンピュータ可読媒体)に結合されてもよい。
図4はまた、プロセッサ410に、またディスプレイ428に結合されているディスプレイコントローラ426を示す。コーダ/デコーダ(コーデック)434も、プロセッサ410に結合されてもよい。スピーカー436およびマイクロフォン438が、コーデック434に結合されてもよい。ワイヤレスコントローラ440がプロセッサ410に結合されてもよく、さらにアンテナ442に結合されてもよい。
特定の態様では、プロセッサ410、ディスプレイコントローラ426、メモリ432、コーデック434、ワイヤレスコントローラ440、および再構成可能フェッチパイプライン464は、システムインパッケージデバイスまたはシステムオンチップデバイス422の中に含まれる。入力デバイス430および電源444が、システムオンチップデバイス422に結合されてもよい。その上、特定の態様では、図4に示すように、ディスプレイ428、入力デバイス430、スピーカー436、マイクロフォン438、アンテナ442、および電源444が、システムオンチップデバイス422の外部にある。しかしながら、ディスプレイ428、入力デバイス430、スピーカー436、マイクロフォン438、アンテナ442、および電源444の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス422の構成要素に結合されてもよい。再構成可能フェッチパイプライン464は、図4に示すようにシステムオンチップデバイス422の中に含まれてもよく、または1つまたは複数の別個の構成要素の中に含まれてもよい。
説明される態様に関連して、本装置(モバイルデバイス400などの)は、データを取り出すための手段(たとえば、図1または図2のキャッシュ150)に結合される、命令を実行するための手段(たとえば、図1または図2の実行ユニット144)を含んでもよい。データを取り出すための手段は、アクセスモードを選択するための手段(たとえば、図1または図2のコントローラ102)、タグデータを記憶するための手段(たとえば、図1または図2のタグアレイ106)、データを記憶するための手段(たとえば、図1または図2のデータアレイ108)、およびアドレスを生成するための手段(たとえば、図1または図2のアドレス生成ユニット(AGU)104)を含んでもよい。アクセスモードを選択するための手段は、命令を記憶するための手段(たとえば、図2の発行キュー202)に記憶されている命令の数、命令を実行するための手段のアクティブスレッドの数、または両方に基づいて、第1のアクセスモードと第2のアクセスモードとの間で選択し、選択に基づいてアクセスモード信号を生成するように構成されてもよい。アドレスを生成するための手段は、第1のアクセスモードが選択されているとアクセスモード信号が示すことに応答して、タグデータを記憶するための手段へタグアドレス(たとえば、図1または図2のタグ要求134)を送信し、タグデータを記憶するための手段からタグデータ(たとえば、図1または図2のタグデータ140)を受信し、データを記憶するための手段へデータ要求(たとえば、図1または図2のデータ要求136)を送信するように構成されてもよい。データ要求は、タグデータおよびデータアドレスを含んでもよい。アドレスを生成するための手段は、第2のアクセスモードが選択されているとアクセスモード信号が示すことに応答して、データを記憶するための手段へデータアドレスを送信することと並行して、タグデータを記憶するための手段へタグアドレスを送信するようにさらに構成されてもよい。
説明される態様に関連して、非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、動作条件(たとえば、発行キューにおいて記憶されている命令の数、実行ユニットにおけるアクティブスレッドの数、電力節約モードインジケータ、静的モード入力、またはそれらの組合せ)に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間での選択を開始または実行させる命令を記憶する。非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、第1のキャッシュアクセスを開始または実行させる命令をさらに記憶してもよい。第1のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行することは、タグアクセスを実行すること、およびタグアクセスを実行した後にデータアレイアクセスを実行することを含んでもよい。第2のキャッシュアクセスモードが選択されているとき、第1のキャッシュアクセスを実行することは、データアレイアクセスと並行してタグアクセスを実行することを含んでもよい。
非一時的コンピュータ可読媒体は、図4のメモリ432に相当してもよい。プロセッサは、図1のコントローラ102もしくは実行ユニット144、図2のコントローラ102もしくは実行ユニット144、または図4のプロセッサ410に相当してもよい。発行キューは、図2の発行キュー202に相当してもよい。非一時的コンピュータ可読媒体は、プロセッサによって実行されたとき、プロセッサに、図3を参照しながら上記で説明した動作を実行させる命令を記憶してもよい。
当業者には、本明細書で開示する態様に関して説明する様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことがさらに了解されよう。上記において、様々な例示的な構成要素、ブロック、構成、モジュール、回路、およびステップが、それらの機能の観点から概略的に説明された。そのような機能が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方式で実装してもよいが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示する態様に関して説明される方法またはアルゴリズムのステップは、ハードウェアで直接具現されるか、プロセッサによって実行されるソフトウェアモジュールで具現されるか、またはその2つの組合せで具現されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読取り専用メモリ(CD-ROM)、または当技術分野で知られている任意の他の形態の記憶媒体の中に存在してもよい。例示的な非一時的(たとえば、有形)記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサに一体化されてもよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)の中に存在してもよい。ASICは、コンピューティングデバイスまたはユーザ端末の中に存在してもよい。代替として、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末の中で個別の構成要素として存在してもよい。
開示された態様の前の説明は、開示された態様を当業者が作成または使用することを可能にするために提供される。これらの態様への様々な変更は当業者にはすぐに明らかになり、本明細書で定義される原理は本開示の範囲から逸脱することなく他の態様に適用されてもよい。したがって、本開示は、本明細書において示される態様に限定されるものではなく、以下の特許請求の範囲によって定義されるような原理および新規の特徴と一致する可能な最も広い範囲を与えられるべきである。
100 再構成可能フェッチパイプライン
102 コントローラ
104 アドレス生成ユニット(AGU)
106 タグアレイ
108 データアレイ
118 ウェイ
124 ウェイ
126 タグ論理
128 選択論理
130 選択されたデータ
132 AGUメモリ
134 タグ要求
136 データ要求
138 キャッシュ要求
140 タグデータ
142 制御データ
144 実行ユニット
150 キャッシュ
200 再構成可能フェッチパイプライン
202 発行キュー
400 モバイルデバイス
410 プロセッサ
422 システムオンチップデバイス
426 ディスプレイコントローラ
428 ディスプレイ
430 入力デバイス
432 メモリ
434 コーデック
436 スピーカー
438 マイクロフォン
440 ワイヤレスコントローラ
442 アンテナ
444 電源
464 再構成可能フェッチパイプライン

Claims (30)

  1. 発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するステップと、
    前記第1のキャッシュアクセスモードが選択されているときは、
    タグアクセスを実行するステップと、
    前記タグアクセスを実行した後にデータアレイアクセスを実行するステップと
    によって、
    前記第2のキャッシュアクセスモードが選択されているときは、前記データアレイアクセスと並行して前記タグアクセスを実行するステップによって、
    第1のキャッシュアクセスを実行するステップと
    を備える、方法。
  2. 前記第1のキャッシュアクセスの前記タグアクセスを、前記第1のキャッシュアクセスモードに従って実行した後、
    前記第1のキャッシュアクセスの前記データアレイアクセスを、前記第1のキャッシュアクセスモードに従って実行しながら、前記第2のキャッシュアクセスモードによる第2のキャッシュアクセスの実行を遅延させるステップをさらに備える、請求項1に記載の方法。
  3. 前記第1のキャッシュアクセスの前記タグアクセスを、前記第1のキャッシュアクセスモードに従って実行した後、
    前記タグアクセスに対応するタグデータを記憶するステップと、
    第2のキャッシュアクセスを実行するステップと
    をさらに備え、前記第1のキャッシュアクセスモードによる前記タグデータに対応する前記データアレイアクセスが、前記第2のキャッシュアクセスの後に実行される、請求項1に記載の方法。
  4. 前記第2のキャッシュアクセスが、前記第2のキャッシュアクセスモードに従って実行される、請求項3に記載の方法。
  5. 前記第1のキャッシュアクセスの前記タグアクセスを、第1のクロックサイクル中に前記第2のキャッシュアクセスモードに従って実行した後、
    前記第1のクロックサイクルの直後にくる第2のクロックサイクル中に、第2のキャッシュアクセスに対応する第2のタグアクセスを、前記第1のキャッシュアクセスモードに従って実行するステップ
    をさらに備える、請求項1に記載の方法。
  6. 前記データアレイアクセスを、前記第1のキャッシュアクセスモードに従って実行するステップが、
    前記タグアクセスに基づいて決定されたタグ信号に基づいて、データアレイの複数のウェイのうちの特定のウェイに対応する特定のデータを選択するステップと、
    前記特定のデータをデータ信号選択回路へ送信するステップと
    をさらに備える、請求項1に記載の方法。
  7. 前記データアレイアクセスを、前記第1のキャッシュアクセスモードに従って実行するステップが、
    前記特定のデータが前記データ信号選択回路へ送信された後、前記データ信号選択回路において、前記タグ信号に基づいて前記特定のデータを選択するステップ
    をさらに備える、請求項6に記載の方法。
  8. 前記データアレイアクセスを、前記第1のキャッシュアクセスモードに従って実行するステップが、
    前記データ信号選択回路において前記特定のデータを選択した後、前記特定のデータを前記発行キューへ送信するステップ
    をさらに備える、請求項7に記載の方法。
  9. 前記データアレイアクセスを、前記第2のキャッシュアクセスモードに従って実行するステップが、
    前記データアレイアクセスによってアクセスされるデータアレイの複数のウェイに対応するデータを、データ信号選択回路へ送信するステップ
    をさらに備える、請求項1に記載の方法。
  10. 前記データアレイアクセスを、前記第2のキャッシュアクセスモードに従って実行するステップが、
    前記データが前記データ信号選択回路へ送信された後、前記データ信号選択回路において、前記複数のウェイのうちの特定のウェイに対応する特定のデータを、前記タグアクセスに基づいて選択するステップ
    をさらに備える、請求項9に記載の方法。
  11. 前記データアレイアクセスを、前記第2のキャッシュアクセスモードに従って実行するステップが、
    前記特定のデータを選択した後、前記特定のデータを前記発行キューへ送信するステップ
    をさらに備える、請求項10に記載の方法。
  12. 電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、前記第1のキャッシュアクセスモードと前記第2のキャッシュアクセスモードとの間での第2の選択を実行するステップと、
    前記第2の選択に基づいて第2のキャッシュアクセスを実行するステップと
    をさらに備える、請求項1に記載の方法。
  13. 複数のキャッシュアクセスのうちの各キャッシュアクセスを実行する前に、前記発行キューの中の命令の前記数、前記実行ユニットにおけるアクティブスレッドの前記数、または両方に基づいて、前記第1のキャッシュアクセスモードと前記第2のキャッシュアクセスモードとの間で動的に選択するステップをさらに備える、請求項1に記載の方法。
  14. アクセスモード選択回路であって、
    発行キューにおいて記憶されている命令の数、キャッシュに結合される実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択することと、
    前記選択に基づいてアクセスモード信号を生成することと
    を行うように構成されるアクセスモード選択回路と、
    アドレス生成ユニットであって、
    タグアレイと、
    データアレイと、
    前記第1のキャッシュアクセスモードが選択されていると前記アクセスモード信号が示すことに応答して、
    タグアドレスを前記タグアレイへ送信することと、
    前記タグアドレスに対応するタグデータを前記タグアレイから受信することと、
    データ要求を前記データアレイへ送信することであって、前記データ要求が、前記タグデータおよびデータアドレスを含む、送信することと、
    前記第2のキャッシュアクセスモードが選択されていると前記アクセスモード信号が示すことに応答して、前記データアドレスを前記データアレイへ送信することと並行して、前記タグアドレスを前記タグアレイへ送信することと
    を行うように構成されるアドレス生成ユニットと
    を備える、装置。
  15. 前記データアレイの複数の出力に結合され、
    前記タグデータに対応するタグ信号を受信することと、
    前記タグ信号に基づいて、前記データアレイの出力に対応する特定のデータ信号を選択することと、
    前記特定のデータ信号を前記発行キューへ送信することと
    を行うように構成されるデータ信号選択回路をさらに備える、請求項14に記載の装置。
  16. 前記タグデータに基づいて前記タグ信号を出力することと、
    前記タグデータに対応する前記特定のデータ信号がその中で前記データ信号選択回路へ送信されるクロックサイクル中に、前記タグ信号を前記データ信号選択回路へ送信することと
    を行うように構成されるタグ論理をさらに備える、請求項15に記載の装置。
  17. 前記発行キューが、前記タグアドレスに対応するデータを受信するように構成される、請求項14に記載の装置。
  18. 前記タグアドレスに対応する前記データが、前記発行キューにおいて記憶されるべき少なくとも1つの命令を含む、請求項17に記載の装置。
  19. 前記キャッシュが命令キャッシュを備える、請求項14に記載の装置。
  20. 前記キャッシュが前記発行キューを備える、請求項14に記載の装置。
  21. 前記キャッシュがデータキャッシュを備える、請求項14に記載の装置。
  22. 前記アクセスモード選択回路が、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、前記第1のキャッシュアクセスモードと前記第2のキャッシュアクセスモードとの間で選択するようにさらに構成される、請求項14に記載の装置。
  23. 命令を記憶する非一時的コンピュータ可読記録媒体であって、前記命令が、プロセッサによって実行されたとき、前記プロセッサに、
    発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間での選択を実行することと、
    第1のキャッシュアクセスを実行することと、
    前記第1のキャッシュアクセスモードが選択されているときは、前記第1のキャッシュアクセスが、
    タグアクセスを実行することと、
    前記タグアクセスを実行した後にデータアレイアクセスを実行することと
    を備える、実行することと、
    前記第2のキャッシュアクセスモードが選択されているときは、前記第1のキャッシュアクセスが、前記データアレイアクセスと並行して前記タグアクセスを実行することを備える、実行することとを行わせる、非一時的コンピュータ可読記録媒体。
  24. 前記命令が、前記プロセッサによって実行されたとき、前記プロセッサに、
    前記第1のキャッシュアクセスの前記タグアクセスが、前記第1のキャッシュアクセスモードに従って実行された後、
    前記第1のキャッシュアクセスの前記データアレイアクセスが、前記第1のキャッシュアクセスモードに従って実行されながら、前記第2のキャッシュアクセスモードによる第2のキャッシュアクセスの実行を遅延させる、
    請求項23に記載の非一時的コンピュータ可読記録媒体。
  25. 前記命令が、前記プロセッサによって実行されたとき、前記プロセッサに、
    前記第1のキャッシュアクセスの前記タグアクセスが、前記第1のキャッシュアクセスモードに従って実行された後、
    前記タグアクセスに対応するタグデータを記憶することと、
    第2のキャッシュアクセスを実行することと
    を行わせ、前記第1のキャッシュアクセスモードによる前記タグデータに対応する前記データアレイアクセスが、前記第2のキャッシュアクセスの後に実行される、
    請求項23に記載の非一時的コンピュータ可読記録媒体。
  26. 前記命令が、前記プロセッサによって実行されたとき、前記プロセッサに、
    第1のクロックサイクル中に、前記第1のキャッシュアクセスの前記タグアクセスが、前記第2のキャッシュアクセスモードに従って実行された後、
    前記第1のクロックサイクルの直後にくる第2のクロックサイクル中に、第2のキャッシュアクセスに対応する第2のタグアクセスを、前記第1のキャッシュアクセスモードに従って実行させる、
    請求項23に記載の非一時的コンピュータ可読記録媒体。
  27. 発行キューにおいて記憶されている命令の数、実行ユニットのアクティブスレッドの数、または両方に基づいて、第1のキャッシュアクセスモードと第2のキャッシュアクセスモードとの間で選択するための手段と、
    第1のキャッシュアクセス中に、
    前記第1のキャッシュアクセスモードが選択されているときは、
    タグアクセスを実行することと、
    前記タグアクセスを実行した後にデータアレイアクセスを実行することによって、
    前記第2のキャッシュアクセスモードが選択されているときは、前記データアレイアクセスと並行して前記タグアクセスを実行することと
    によってキャッシュアクセスを実行するための手段と
    を備える、装置。
  28. キャッシュアクセスを実行するための前記手段が、前記第1のキャッシュアクセス中に、前記タグアクセスを、前記第1のキャッシュアクセスモードに従って実行した後、前記第1のキャッシュアクセスの前記データアレイアクセスを、前記第1のキャッシュアクセスモードに従って実行しながら、前記第2のキャッシュアクセスモードによる第2のキャッシュアクセスの実行を遅延させるように構成される、請求項27に記載の装置。
  29. キャッシュアクセスを実行するための前記手段が、前記第1のキャッシュアクセス中に、前記タグアクセスを、前記第1のキャッシュアクセスモードに従って実行した後、
    前記タグアクセスに対応するタグデータを記憶し、
    第2のキャッシュアクセスを実行する
    ように構成され、前記第1のキャッシュアクセスモードによる前記タグデータに対応する前記データアレイアクセスが、前記第2のキャッシュアクセスの後に実行される、
    請求項27に記載の装置。
  30. 前記第1のキャッシュアクセスモードと前記第2のキャッシュアクセスモードとの間で選択するための前記手段が、電力節約モードインジケータ、静的モード入力、またはそれらの組合せに基づいて、前記第1のキャッシュアクセスモードと前記第2のキャッシュアクセスモードとの間で選択するようにさらに構成される、請求項27に記載の装置。
JP2016568837A 2014-05-27 2015-05-01 再構成可能フェッチパイプライン Active JP6258525B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/287,331 2014-05-27
US14/287,331 US9529727B2 (en) 2014-05-27 2014-05-27 Reconfigurable fetch pipeline
PCT/US2015/028720 WO2015183467A1 (en) 2014-05-27 2015-05-01 Method and apparatus for cache access mode selection

Publications (2)

Publication Number Publication Date
JP2017517065A true JP2017517065A (ja) 2017-06-22
JP6258525B2 JP6258525B2 (ja) 2018-01-10

Family

ID=53274794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016568837A Active JP6258525B2 (ja) 2014-05-27 2015-05-01 再構成可能フェッチパイプライン

Country Status (6)

Country Link
US (2) US9529727B2 (ja)
EP (2) EP3629184A1 (ja)
JP (1) JP6258525B2 (ja)
KR (2) KR20170081275A (ja)
CN (1) CN106462392B (ja)
WO (1) WO2015183467A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095345A (ja) * 2018-12-10 2020-06-18 富士通株式会社 演算処理装置、メモリ装置、及び演算処理装置の制御方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529727B2 (en) 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline
US10705987B2 (en) * 2016-05-12 2020-07-07 Lg Electronics Inc. Autonomous prefetch engine
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10896044B2 (en) 2018-06-21 2021-01-19 Advanced Micro Devices, Inc. Low latency synchronization for operation cache and instruction cache fetching and decoding instructions
US11436144B2 (en) 2020-04-10 2022-09-06 Micron Technology, Inc. Cache memory addressing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717892A (en) * 1995-01-17 1998-02-10 Advanced Risc Machines Limited Selectively operable cache memory
JP2003242029A (ja) * 2002-02-15 2003-08-29 Hitachi Ltd 半導体集積回路
JP2004252987A (ja) * 2003-02-20 2004-09-09 Samsung Electronics Co Ltd 同時多重スレッディングプロセッサ回路、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム製品及びこれらを動作させる方法
GB2410584A (en) * 2003-02-20 2005-08-03 Samsung Electronics Co Ltd A simultaneous multi-threading processor accessing a cache in different power modes according to a number of threads
US8458404B1 (en) * 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684298B1 (en) * 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
US6604174B1 (en) * 2000-11-10 2003-08-05 International Business Machines Corporation Performance based system and method for dynamic allocation of a unified multiport cache
US6452823B1 (en) * 2001-01-31 2002-09-17 Motorola, Inc. Non-volatile magnetic cache memory and method of use
JP2004171177A (ja) 2002-11-19 2004-06-17 Renesas Technology Corp キャッシュシステムおよびキャッシュメモリ制御装置
US20050268022A1 (en) 2004-05-26 2005-12-01 Pelley Perry H Cache line memory and method therefor
JP2006059068A (ja) 2004-08-19 2006-03-02 Matsushita Electric Ind Co Ltd プロセッサ装置
US7751269B2 (en) 2006-09-28 2010-07-06 Infineon Technologies Ag Coupling device for transmitting data
US8667225B2 (en) 2009-09-11 2014-03-04 Advanced Micro Devices, Inc. Store aware prefetching for a datastream
US8762644B2 (en) * 2010-10-15 2014-06-24 Qualcomm Incorporated Low-power audio decoding and playback using cached images
US9442732B2 (en) 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
JP5591969B1 (ja) * 2013-03-27 2014-09-17 株式会社東芝 マルチコアプロセッサおよび制御方法
US9734080B2 (en) * 2013-08-08 2017-08-15 Nxp Usa, Inc. Cache organization and method
US9529727B2 (en) 2014-05-27 2016-12-27 Qualcomm Incorporated Reconfigurable fetch pipeline

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5717892A (en) * 1995-01-17 1998-02-10 Advanced Risc Machines Limited Selectively operable cache memory
JP2003242029A (ja) * 2002-02-15 2003-08-29 Hitachi Ltd 半導体集積回路
JP2004252987A (ja) * 2003-02-20 2004-09-09 Samsung Electronics Co Ltd 同時多重スレッディングプロセッサ回路、動作するスレッドの数に基づいて相異なる性能レベルで動作するように構成されるコンピュータプログラム製品及びこれらを動作させる方法
GB2410584A (en) * 2003-02-20 2005-08-03 Samsung Electronics Co Ltd A simultaneous multi-threading processor accessing a cache in different power modes according to a number of threads
US8458404B1 (en) * 2008-08-14 2013-06-04 Marvell International Ltd. Programmable cache access protocol to optimize power consumption and performance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020095345A (ja) * 2018-12-10 2020-06-18 富士通株式会社 演算処理装置、メモリ装置、及び演算処理装置の制御方法
JP7070384B2 (ja) 2018-12-10 2022-05-18 富士通株式会社 演算処理装置、メモリ装置、及び演算処理装置の制御方法

Also Published As

Publication number Publication date
EP3149594A1 (en) 2017-04-05
EP3629184A1 (en) 2020-04-01
US20150347308A1 (en) 2015-12-03
US20160328325A1 (en) 2016-11-10
KR101757355B1 (ko) 2017-07-12
JP6258525B2 (ja) 2018-01-10
EP3149594B1 (en) 2019-11-27
WO2015183467A1 (en) 2015-12-03
KR20170081275A (ko) 2017-07-11
KR20170012254A (ko) 2017-02-02
US9529727B2 (en) 2016-12-27
CN106462392B (zh) 2018-07-17
CN106462392A (zh) 2017-02-22
US10007613B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
JP6258525B2 (ja) 再構成可能フェッチパイプライン
JP5329563B2 (ja) マルチスレッド・プロセッサのための共有割込みコントローラ
US20170199814A1 (en) Non-volatile random access system memory with dram program caching
KR101503623B1 (ko) 캐싱된 이미지들을 이용하는 저전력 오디오 디코딩 및 재생
JP2014116017A (ja) モバイル装置とアプリケーションプロセッサ及びそのデータ管理方法
US9043806B2 (en) Information processing device and task switching method
US20170168727A1 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US8996788B2 (en) Configurable flash interface
US9747038B2 (en) Systems and methods for a hybrid parallel-serial memory access
US8843709B2 (en) Method and apparatus for performing dynamic configuration
JP2013093026A (ja) デジタル信号処理のデータ転送
JP2013156984A (ja) 割り込みスプレッド方法、割り込み要求信号スプレッダ回路、及びそれを備えるシステムオンチップ
US10061644B2 (en) Systems and methods for implementing error correcting code in a memory
KR102588408B1 (ko) 적응형 메모리 트랜잭션 스케줄링
CN110928574A (zh) 微控制器、中断处理芯片、设备及中断处理方法
CN110168644B (zh) 用于在存储体存储器单元阵列中提供行篡改保护的系统、方法和计算机程序
US20150261616A1 (en) Method of controlling memory swap operation and data processing system using same
US11636056B1 (en) Hierarchical arbitration structure
JP6212133B2 (ja) マルチビットウェイ予測マスクを有する命令キャッシュ
KR101862799B1 (ko) 메모리 컨트롤러 및 메모리 컨트롤 방법
US9368162B2 (en) Integrated circuit device, power management module and method for providing power management
KR20040067063A (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
KR101866681B1 (ko) 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치
JP2008129851A (ja) 演算処理装置
KR20170140230A (ko) 적응적 압축-기반 페이징

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170221

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170221

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170221

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170804

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171206

R150 Certificate of patent or registration of utility model

Ref document number: 6258525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250