JP6005392B2 - ルーティングのための方法及び装置 - Google Patents

ルーティングのための方法及び装置 Download PDF

Info

Publication number
JP6005392B2
JP6005392B2 JP2012107015A JP2012107015A JP6005392B2 JP 6005392 B2 JP6005392 B2 JP 6005392B2 JP 2012107015 A JP2012107015 A JP 2012107015A JP 2012107015 A JP2012107015 A JP 2012107015A JP 6005392 B2 JP6005392 B2 JP 6005392B2
Authority
JP
Japan
Prior art keywords
data processor
access
processor core
instruction
local 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.)
Active
Application number
JP2012107015A
Other languages
English (en)
Other versions
JP2012238306A (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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2012238306A publication Critical patent/JP2012238306A/ja
Application granted granted Critical
Publication of JP6005392B2 publication Critical patent/JP6005392B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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
    • G06F9/3834Maintaining memory consistency
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般的には電子デバイスに関するものであり、さらに詳しくはデータプロセッサデバイスのメモリのアクセスに関するものである。
データプロセッサコアは一般に命令の実行を制御する様々な段階を含む命令実行パイプラインを含む。命令実行パイプラインの1つの段階は、有効なアドレス入力オペランドのような命令情報を、アクセスされるターゲットのメモリ位置を決定するために命令情報を用いるロード/格納ユニットへ与える。ロード要求に応答して情報はターゲットメモリから検索され(読み取られ)、格納要求に応答してターゲットのメモリ位置に与えられる(書き込まれる)。
本明細書において特定命令と呼ばれる特定のタイプの命令は、特定の方法で処理された関連するロードおよび格納要求を必要とし、その方法は、ロードおよび格納要求それぞれの主要な読み取りおよび書き込み機能を実行するだけでなく、要求の特殊な処理も実行する。特定命令の2つの例は、中断されずに完了する1つまたは複数のメモリアクセスを要するアトミック命令(atomic instruction)と、自身の主要な機能を実行することに加えてデータアクセスが特定の方法で処理されるようにする修飾命令(decorated instruction)を含む。アトミック命令の実行はロード/格納ユニットに与えられる対応するアトミックアクセス要求となり、修飾アクセス命令(decorated access instruction)の実行はロード/格納ユニットに与えられる対応するアトミックアクセス要求となる。特定命令が要する特定処理を実行するためのデータプロセッサが必要な追加的ハードウェアオーバーヘッドは、データプロセッサコアのサイズを増やす。また、データプロセッサコアにおけるアトミック要求のような特定要求の実行は、メモリ位置に以後にアクセスすることになるバスロック動作または他の遅延を生じるおそれがある。他の命令の実行完了に必要なデータプロセッサコアのローカルメモリに格納される情報へのアクセスが妨げられる場合、この遅延は特に問題となる。
本発明の課題は、データプロセッサコアのサイズ及び遅延を小さくすることである。
一実施形態による方法は、
データプロセッサコアで実行されるアクセス命令が特定のアクセス命令であるか否かを決定するステップと、
前記アクセス命令が前記特定のアクセス命令であったことに応答して、前記データプロセッサコア外部のトランザクションを用いてデータプロセッサコアのローカルメモリにアクセスするためのアクセス命令に基づいて、アクセス情報を選択的にルーティングするステップと
を有し、前記特定のアクセス命令はアトミックアクセス命令または修飾アクセス命令の内の少なくとも一方である、方法である。
データ処理システムを示すブロック図。 図1のデータ処理システムの一部に関する特定の実施形態を示すブロック図。 本明細書の特定の実施形態によるフローチャート。 本明細書の特定の実施形態によるフローチャート。 本明細書の特定の実施形態による制御レジスターのブロック図。
添付の図面を参照することによって、本発明はよりよく理解され、その多くの目的、特徴および利点が当業者に明らかになる。
本明細書においては、1つまたは複数のデータプロセッサコアを有するデータ処理システムが記載され、各データプロセッサコアが命令パイプライン、ロード/格納ユニットおよびローカルメモリを有する。データプロセッサコアのローカルメモリに格納されるデータをアクセスする必要なデータプロセッサコアによって命令の実行に応答する可能であるデータプロセッサのロード/格納ユニットが、ローカルメモリへローカルアクセス要求または外部アクセス要求の1つを選択的にルーティングする。特に、現在命令は通常な命令である時、ローカルアクセス要求はローカルメモリへルーティングされ、現在命令が特定命令として実行される時ローカルメモリをアクセスするために外部アクセス要求が使用される。
本明細書において、「ローカルアクセス」という用語およびその派生語は、共通なデータプロセッサコアの2つのリソースの間におけるアクセス情報の流れに対して使用される場合(例えばロード/格納要求の場合)、情報の流れが完全にデータプロセッサコアの中で生じることを意味することが意図されている。また、「外部アクセス」という用語およびその派生語は、2つのリソースの間におけるアクセス情報の流れに対して使用される時(例えば、ロード/格納要求の場合)は、情報の流れの少なくとも一部分がデータプロセッサに対して外部で生じることを意味することが意図されている。例えば、データプロセッサコアによるデータプロセッサコアのローカルメモリへのローカルアクセス要求は、データプロセッサコアに対して完全にローカルな回路を用いてローカルメモリへルーティングされるアクセス要求である。データプロセッサコアによるそのローカルメモリに対する外部アクセス要求は、データプロセッサコアに対して完全に外部にある回路を用いてローカルメモリへルーティングされるアクセス要求である。
ローカルメモリへルーティングすることに先立って、処理を行う外部リソースへローカルメモリアクセス要求をルーティングすることは、データプロセッサコア外部のリソースが特定のアクセス要求に関連する特定の処理を実行できるようにす。外部リソースによるアクセス要求の特定の処理を実行する能力は、本発明が使用されなかったならば特殊な処理を実行するためにデータプロセッサコアに必要となる、データプロセッサコアに必要なハードウェアオーバヘッドを減らす。本明細書の特定の実施形態は図1〜5に関連して説明される。
図1は、1つまたは複数のデータプロセッサコア101〜102、バス131〜137、システム相互接続部103、および1つまたは複数の周辺部又はペリフェラル104〜106を含むデータ処理システム100を示す。図1に示される素子の各々は、半導体基板の一部、共通なパッケージの一部、共通な回路板の一部、など、またはこれらのものの組み合わせであってよい。例えば、メモリ106はデータプロセッサコア101〜102、メモリコントローラ105、およびシステム相互接続部103と同一半導体基板に集積されてもよいが、他の周辺装置は同一半導体基板に集積されていなくてもよい。
1つまたは複数のバス131〜136はデータプロセッサコア101〜102および周辺部104〜106の各々をシステム相互接続部103に接続する。システム相互接続部103は、アドレス情報に基づいてデータプロセッサコア101〜102および周辺部104〜106の各々の情報の通信を補助するクロスポイントスイッチまたは他の相互接続モジュール等であってもよい。周辺部104は、システム相互接続部103を介して情報を受信または与えるようにアクセスされ得るメモリまたは他のデバイスのようなスレーブデバイスとして示される。
周辺部106はメモリ106として呼ばれ、アクセス要求に応答して情報を受信または与える可能である揮発性または不揮発性メモリデバイスのようなメモリデバイスである。メモリ106へアクセス要求は、図示すように、システム相互接続部103およびメモリコントローラ105の両方を介してルーティングされてもよいし、或いはメモリ106へのアクセス要求はシステム相互接続部103を介するがメモリコントローラ105(図示せず)を介さずにメモリ106にルーティングされてもよい。特定の実施形態において、メモリコントローラ105は、データプロセッサシステム100のアドレスマップの所定範囲に関連するアクセス要求を受信および管理し得る周辺部である。例えば、通常のアクセス要求であるか又は特定のアクセス要求であるかによらず、すべての通常アクセス要求がシステム相互接続部103によってメモリコントローラ105にルーティングされるように、メモリ106のアドレスはデータプロセッサシステム100のアドレス空間にマッピングされてもよい。あるいは、通常のアクセス要求がメモリコントローラ105を介することなくシステム相互接続部103によってメモリ106に直接的にルーティングされ、かつメモリ106に対する特定のアクセス要求(例えば、データプロセッサコア101によって特殊なもの又は特定のものであるとしてタグが付されている要求)が、メモリ106へのアクセスに先立って、特殊な処理のためにシステム相互接続部103がメモリコントローラ105へルーティングされるように、メモリ106のアドレスがシステム100にマッピングされてもよい。
特定の実施形態において、データプロセッサコアは、ローカルメモリを識別する例えばアドレスのようなアクセス情報を有するアクセス要求をシステム相互接続部103へ与えることによって、データプロセッサのローカルメモリ内の情報を要求してもよい。それに応答して、相互接続部103が処理のために要求をメモリコントローラ105にルーティングする。例えば、データプロセッサコア101のローカルメモリに格納された情報を抽出又は検索するアクセス要求が、データプロセッサコア101からシステム相互接続部103へ与えられてもよく、追加的な処理のためにシステム相互接続部103が該アクセス要求をメモリコントローラ105に与えてもよい。必要であれば、メモリコントローラ105は該要求に関連する何らかの特定の処理を実行する。要求が受信され、何らかの必要な特定の処理が実行された後、メモリコントローラ105は、データプロセッサコア101のローカルメモリのターゲット位置を識別するアクセス要求をシステム相互接続部103に与える。システム相互接続部103は、データプロセッサコア101のローカルメモリが要求のターゲット又は目標であることを確認し、該アクセス要求をデータプロセッサコア101のポート101にルーティングする。データプロセッサコア101のローカルメモリから取得されたデータは逆向きの同一データ経路を用いて、例えば、データプロセッサコア101のポート120から相互接続部103を介してメモリコントローラ105(必要に応じて)へ、相互接続部103を介してシステムバスインタフェースユニット118への経路を用いて、ロード/格納ユニットにルーティングする。データプロセッサ101が、データプロセッサ101のローカルメモリから情報を取得するためにローカルアクセスまたは外部アクセスの何れを使用するかを決定する方法は、特定のデータプロセッサコアの説明を参照することで更に理解できる。
図1のデータプロセッサコア101〜102はいかなる種類のデータプロセッサコアであってもよい。データプロセッサコアは同一または異なる種類であってよい。説明の便宜上、複数のデータプロセッサコア101〜102の各々は同一の種類であり、データプロセッサコア101に関して詳細に示すように、各データプロセッサコアは各自のローカルリソースを含む。ローカルリソースは、例えば、データプロセッサコア101は、実行パイプライン111、命令キャッシュ114、データキャッシュ116、ローカルメモリ117、システムバスインタフェースユニット118、ロード/格納ユニット115、レジスタ104、および様々なローカルバス(データプロセッサコア101のリソースを互いに接続する)を含むように示されている。データプロセッサコア101外部のリソースは、バス131〜137、システム相互接続部103、周辺部又はペリフェラル、およびメモリ104〜106を含む。
レジスタ104はユーザがプログラムすることが可能なプログラマブルレジスタであり、アドレスレジスタ、データレジスタ、ベースアドレスレジスタ141、制御情報等を含む。
パイプライン111は命令キャッシュ114、ロード/格納ユニット115、および一群のレジスタ140に接続される。パイプライン111は、命令オペランドを格納するメモリ位置又はその実行結果が格納されているメモリ位置にアクセスするためにロード/格納ユニット115と通信する。一例として、本明細書におけるアクセス要求は典型的にはロード要求として説明されているが、本願で説明される発明は要求を格納することにも適用可能である。
ローカルバス119はロード/格納ユニット115、ローカルデータメモリ117のポート121およびデータキャッシュ116に接続されている。データプロセッサコア101のシステムバスインタフェースユニット(BIU)118は、システム相互接続部103(バス131を介して)に接続されるポート、命令キャッシュ114に接続されるポート、ロード/格納ユニット115に接続されるポートおよびデータキャッシュ116に接続されるポートを含む複数のポートを有する。ポート121を加えて、ローカルデータメモリ117は追加的ポート120を含み、該追加的ポート120は、データプロセッサコア101外部のバス132を介してシステム相互接続部103に接続されるスレーブバスインタフェースユニットとすることができる。ローカルバス119はデータプロセッサコア101にとってローカルであるので(内部にあるので)、ローカルバス119はシステム相互接続部103に接続されるバス131〜136から独立している。この独立性により、ローカルバス119を介してデータプロセッサコア101の素子同士の間で情報が送受信されると共に、相互接続部103を介してバス131および132の少なくとも1つを介してデータプロセッサコア101と別の外部リソースとの間で情報が送受信できるようになる。
データプロセッサコア101の動作の間に、実行パイプライン111が、命令の実行に関連する様々な処理機能を制御する。これらの様々な処理機能は、命令を要求するために命令フェッチ要求を命令キャッシュ114に与えること、フェッチされた命令をデコードすること、メモリから命令オペランドを要求するためにデータアクセス要求を決定して提供すること、デコードされた命令に基づいて、整数または浮動小数点方式の少なくとも1つの演算ロジックユニット(ALU)へ演算命令を決定して提供すること、及びメモリに結果を格納するデータアクセス要求を決定および提供すること等を含む。
命令キャッシュ114は、実行パイプライン111からフェッチ要求を受信し、キャッシュアレイから要求された命令を提供し又は可能であれば必要な命令のためのアクセス要求をシステムBIU118に提供する。同様に、実行パイプライン111は、パイプライン111によって使用される命令オペランドを取得するために実行される命令(現在アクセス命令)に関連する1つまたは複数の有効アドレス入力オペランド及びロードアクセス要求を含むことが可能であるロードアクセス要求を、ロード/格納ユニット115に与える。
ロード/格納ユニット115は、ロード要求およびロード/格納ユニット115の有効アドレス入力オペランドをデコードし、ターゲットのデバイスにアクセスするために必要に応じて他のアクセス情報と共にロード/格納ユニット115により与えられるターゲットアドレスを決定する。ロード/格納ユニット115は、ローカルアクセス要求または外部アクセス要求によりローカルメモリ117内の情報にアクセスできる。例えば、ロード/格納ユニット115は、ローカルバス119を介してローカルメモリ117のポート121にローカルにアクセス要求をルーティングすることができ、或いはシステムバスインタフェースユニット118、システム相互接続部103およびメモリコントローラ105を含むデータ経路を介してデータプロセッサコア外部へのアクセス要求をローカルメモリ117のポート120にルーティングすることができる。
本明細書に記載されている特定の実施形態において、ロード/格納ユニット115がローカルアクセス要求または外部アクセス要求によりローカルメモリ117へアクセス要求をルーティングするか否かは、命令デコードの間にパイプライン111によって決定されるアクセス要求が通常のデータアクセス要求であるか又は特定のデータアクセス要求であるかに基づく。例えば、アトミックアクセス命令が実行されるように決定されている場合、パイプライン111は処理を行うためにアトミックアクセス要求をロード/格納ユニット115に与える。同様に、パイプライン111は、修飾アクセス命令が実行されている時を決定し、それに応じて、どのようにアクセス要求に関連するアクセス情報が修飾コントローラ107によって処理されることになっているかを示す修飾値を与え、一実施形態においてそれはメモリコントローラ105の一部分に含まれる。修飾値は修飾要求の処理の間に修飾コントローラによってアクセスされる汎用レジスタに格納されてもよい。代替実施形態において、修飾値は、外部アクセスを実行するために使用されるアクセス情報の一部としてロード/格納ユニット115により修飾コントローラに以後転送される修飾アクセス要求(decorated access request)の一部としてロード/格納ユニット115に与えられる。修飾要求の処理は、リードモディファイライト処理(読み込み・変更・書き込み処理)または他のタイプの特定の一連のメモリ処理を実行する要求を与える動作となる。このような一連のシーケンス処理がそのような不可分セットの動作により構成され、メモリコントローラ105がこのような分割できないシーケンスをデータプロセッサコア101の便宜を図るために透明に実行されるようにする。このようなシーケンスは、テスト・セット処理、比較・交換処理、テスト・インクリメント/デクリメント処理その他の処理(本明細書にさらに説明され、ロード/格納ユニット115によって直接的には行われない処理)を含んでもよい。
ロード/格納ユニット115の動作は、図2を参照することでよく理解することができ、図2はローカルメモリ217、データキャッシュ216、ロード/格納ユニット215の具体的な要素及びローカルバス219を含むデータプロセッサコア101の一部を示し、これらの各々は図1に示されているものに類似する符号(117、116、115および119)と共に示されている。
バス219は、部分211および部分212を含むように示されている。部分211は制御およびアドレス情報をロード/格納ユニット215とローカルメモリ217との間で通信するバス219の一部である。部分212は、制御およびアドレス情報をロード/格納ユニット215とデータキャッシュ216との間で通信するバス219の一部である。
ロード/格納ユニット205は、アドレス計算モジュール201およびルーティングモジュール202を含むように詳細に示されている。アドレス計算モジュール201は、ターゲットメモリデバイスのMEM_ADDというラベルが付されたターゲットアドレスを決定するために、パイプライン111から受信したアクセス情報をデコードする。ルーティングモジュール202は命令パイプライン111からターゲットアドレスおよび他の情報を使用して、アクセス要求がターゲットメモリデバイスにどのようにルーティングされるかを決定する。ルーティングモジュール202によるアクセス要求のルーティングは図2のロード/格納ユニット205の詳細な機能的ブロック図によってよく理解できる。
ロード/格納ユニット205はローカルメモリ検出モジュール331およびデマルチプレクサ332、333を含むように示されている。また、ロード/格納ユニット205は、ローカルメモリ217のベースアドレスを指示するLM_BR値を格納し、ユーザプログラマブルレジスタ341にアクセスする。ローカルメモリ217のベースアドレスおよびサイズに基づいて、ローカルメモリ検出モジュール201は、デコードされるアドレスMEM_ADDがローカルメモリ217のアドレスに関連するか或いは外部メモリのアドレスに関連するかを決定する。デコードされるアドレスがローカルメモリ217アドレスに関連していた場合、信号LM_ACCESSがアサートされ、そうでない場合、信号LM_ACCESSはネゲートされる。
LM_ACCESSがネゲートされたことに応答して、データプロセッサコア101外部のリソースへアクセス要求としてさらにルーティングするために、デマルチプレクサ332を介する経路が、現在の命令のアクセス情報をバスインタフェースユニット118に与えるために選択される。簡明化のために、本説明はデータキャッシュ116が情報のアクセスと共に含まれるようには記述されていない。しかしながら、実際には、データキャッシュ116はロード/格納ユニット115によってアクセスされてもよく、キャッシュミスーの場合、バスインタフェースユニット118はデータアクセスを外部に進めてもよい。例えば、バスインタフェースユニット118はアクセス情報に基づいて相互接続部103にアクセス要求を与えてもよい。相互接続部103はアクセス要求をメモリコントローラ105へルーティングしてもよいし、或いはデータプロセッサコア101外部の別の宛先へルーティングしてもよい。或いは、LM_ACCESSがアサートされたことに応答して、デマルチプレクサ333にアクセス情報を与えるようにデマルチプレクサ332を介した経路が選択されてもよい。
パイプライン111における情報が現在の命令は特定の命令であることを示していた場合にアサートされ、かつパイプライン111における情報が現在の命令は通常の命令であることを示していた場合にネゲートされるSPのラベルが付された信号によって、デマルチプレクサ333は制御される。現在の命令が通常の命令であったことに応答して、ローカルメモリ217へローカルアクセス要求を提供するために、例えば、バス219を介してローカルメモリ217のポート221へアクセス要求を与えるために、デマルチプレクサ333を介する経路が選択される。あるいは、現在の命令が特定の命令であったことに応答して、ローカルメモリ217へ外部アクセス要求を与えるためにデマルチプレクサ333を介する経路が選択される。例えば、外部アクセス要求はアクセス情報に基づいてバスインターフェースユニット218を介して相互接続部103に与えられる。相互接続部103は、さらにアクセス要求をメモリコントローラ105へルーティングする。メモリコントローラ105は、特定処理を実行し、必要に応じてターゲットメモリ位置の情報を要求するためにシステム相互接続部103を介してローカルメモリ217のポート222にアクセス要求を与える。
ターゲットメモリ位置に格納される情報はシステムバス103を介してデータプロセッサコア101のバスインタフェースユニット218へルーティングされる。戻りルートがメモリコントローラ105を含んでもよく、特定のアクセス要求のタイプに依存して、メモリコントローラ105がアクセス要求に応答してメモリアクセス及び変更処理のシーケンスを実行してもよいことが、理解されるべきである。
主要な機能ではない特定のアクセス要求は、予約/修飾コントローラ107によってメモリコントローラ105において処理され、アトミックアクセス要求および修飾アクセス要求とともに以下において詳細に説明される。
アトミックアクセス要求は、そのリクエスト(要求)によってアクセスされるメモリ位置が中断することなく、例えば他の装置によってアクセスされることなくアクセスされることを保証する要求である。アトミックアクセスが実行されている特定のメモリ位置をモニタし、メモリ位置がアトミック要求以外の要求によってアクセスされた場合に、要求しているデバイス(例えば、データプロセッサコア101)に通知することによって、アトミック要求の原子性(Atomicity)を保障することができる。例えば、メモリコントローラ105がアトミックロードおよび予約要求を処理する場合、予約/修飾コントローラ107は、ターゲットのメモリ位置に対応する予約を実行するために使用される。一実施形態において、予約/修飾コントローラ107は、アトミックにアクセスされるメモリ位置のアドレスをラッチ(保持)し、予約が要求されるマスタを識別するインジケータをラッチ(保持)することによって、予約を設定する。別のマスタがメモリ位置の情報を変更しようとする場合またはアトミックロードおよび予約動作によりメモリ位置の予約を行おうとする場合、予約は予約/修飾コントローラ107によってクリアされる(失われる)。その結果、予約/修飾コントローラ107は、予約がクリアされたことを検出し、後の予約の格納(reservation store)(格納状態(conditional store))が不具合になる。一実施形態において、格納の失敗は、失敗が生じたことをデータプロセッサコア101に通知するために設定された状態コードをもたらす。ソフトウェアは状態コードを問い合わせることができ、成功しなかった場合には再試行することができる。このように、原子性(atomicity)を保証するためにセマフォ(semaphore)を利用し、バスロック動作を必要としないようにすることができる。アクセス要求の原子性を保障する別の方法は、メモリが第1のアクセス要求によって解放されるまで、同一のメモリ位置への他のアクセスが一切生じないことを保証するものであり、例えばいずれのリソースについても、現在アトミックアクセスの対象となっているメモリ位置に同時にアクセスすることを禁止するように、システムが設計される。
別のタイプの特定の命令は修飾アクセス命令(decorated access instruction)である。パイプライン111による修飾アクセス命令の実行は、ロード/格納ユニット115に通知される修飾値(decoration value)を生じる。修飾値は、ターゲットデバイスに与える又はターゲットデバイスから要求される情報をどのように処理すべきかを、予約/修飾コントローラ107に通知するために使用される情報である。一実施形態において、修飾命令の実行は、修飾要求の処理の間に予約/修飾コントローラ107によってアクセスされる汎用レジスタに格納される修飾値をもたらす。代替実施形態において、修飾値は、ロード/格納ユニット115によって搬送され、例えば、汎用または他のレジスタから修飾コントローラに、処理のためのアクセスされるメモリアドレスのような他のアクセス情報と共に搬送される。
主要なアクセス機能(例えば、アクセス命令の読み込みまたは書き込み)に加えて、実行される修飾要求に応じて、メモリコントローラ105は、アクセス要求の実行の間に特定の機能を実行するために予約/修飾コントローラ107を使用する。例えば、実行される修飾要求の主要な機能はロード要求であってもよい。しかしながら、修飾要求の修飾機能はそれが取得された後であるが要求している装置に戻される前に読み取った値を修正することでもよいし、或いは読み取った値を修正してターゲット位置に修正された値を格納し直すことでもよい。例えば、アクセスされる情報は、要求している装置に戻される前に(読取りアクセスの間)又はメモリに保存される前に(読取りまたは書込みアクセスの間)或る値だけ乗算又は加算されてもよい。別の実施形態において、修飾機能は情報が格納されている位置を制御することができる。例えば、修飾値は、与えられたデータ値が或るデータワードの中に格納されている特定のビット位置を示してもよいし、またはデータ値が要求しているデバイスに戻される特定ビット位置を指示する特定ビット位置を示すことができる。
任意の数の様々な追加的な又は代替的な処理機能が実行される修飾命令に応じて実行されてもよく、修飾値はデータプロセッサコアのパイプラインによって一般的には解釈されないことが理解される。上述に記載されるように修飾要求もアトミック要求であってよいことに留意を要する。予約/修飾コントローラ107は修飾を実行するために使用されるので、修飾の機能は、要求データプロセッサコアとともに長い待ち時間を必要とすることなくおよびメモリ位置の予約を取得する必要なしに、予約/修飾コントローラ107によって不可分に行われてもよい。
図3は、データプロセッサコアにとってローカルな1つのデータ経路およびデータプロセッサコアにとって外部のリソース(外部リソース)を含む他の代替データ経路という2つの経路の内の1つを介して、アクセス情報をローカルメモリへ選択的にルーティングする特定の方法を表現するフローチャートを示す。処理301において、フェッチされた命令の実行が、データプロセッサコアの実行パイプラインにおいて開始され、そこで命令がデコードされる。デコードされた情報に基づいてロード/格納要求がロード/格納ユニットに与えられてもよい。ロード/格納ユニットに与えられる要求は、要求が特定の要求であることを示す埋め込まれた情報を含んでいてもよい。例えば、埋め込まれた情報は、オプコードまたは他のインジケータ(指示子)のような要求の命令部分に固有であってもよく、また要求に関連するデータフィールド情報として含まれてもよい。或いは、要求は、レジスタに格納された値に依存して、通常の又は特定の要求として処理される一般的な要求であってよい。処理302において、アクセスされる情報を含むターゲット装置のメモリ位置を示す現在の命令からのアクセス情報に基づいて、アドレスデコード処理がロード/格納ユニットにおいて行われる。
処理303において、処理302で認識されるターゲットメモリがデータプロセッサコアのローカルメモリに対応するか否かが決定される。ターゲットメモリがデータプロセッサコアのローカルメモリであることがデコード処理において確認されたことに応答して、フローは処理305に進む。そうでなかった場合、フローは処理304に進み、非局所的メモリ(ローカルでないメモリ)にアクセスするためにアクセス情報がデータプロセッサコア外部に選択的にルーティングされる。例えば、図1において、アクセス情報は、メモリコントローラ105にルーティングされ、メモリコントローラ105は、命令が特定のアクセス命令であるか否かに応じて通常の方法又は特定の方法でメモリ106内の情報にアクセスする。
処理305において、現在アクセスがローカルメモリに対するものであることが処理303において判定された後に、ローカルメモリへのアクセスが、アトミックアクセス要求または修飾アクセス要求のような特定のアクセス要求に対応するか否かが判定される。アクセス要求がアトミックアクセス要求であるか否かは、処理301においてデコードされる間に決定されたアクセス情報に基づいて決定され、命令デコードの間にレジスタ位置に格納される。例えば、現在のアクセス要求が特定のアクセス要求であることを示す命令デコードの間に、インジケータ(指示子)がレジスタ位置に設定されてもよい。或いは、指示子はロード/格納ユニットに直接的に通知されてもよい。アクセス要求が通常の要求であることがデコード工程において判定されたことに応答して、フローは処理306に進み、アクセス情報はデータプロセッサコアの内部に選択的にルーティングされ、例えば、データプロセッサコアの外部の如何なるトランザクションも使用せずに、アクセス要求はローカルメモリへ選択的にルーティングされ、外部のトランザクションは外部のリソースによって実行される処理または機能である。そうでなかった場合、フローは特定の処理を行うために処理307に進む。
処理307において、アクセス要求は特定の要求であることがデコード工程において判定されたことに応答して、アクセス情報は、ロード/格納ユニットからデータプロセッサコアのバスインタフェースユニットへ与えることによって、データプロセッサコア外部の1つまたは複数のリソースに選択的にルーティングされる。1つまたは複数の外部リソースは、アクセス情報に基づいてローカルメモリにアクセスする1つまたは複数の外部トランザクションを実行する。処理308において、データプロセッサコアのローカルメモリへアクセス要求を送信する前に、外部リソースが必要な任意の特定の処理を実行する。例えば、特定の処理は、アクセスされるメモリ位置に関連する予約を設定し、メモリのアトミックアクセスが最中であることを表現し、あるいはローカルメモリに保存されるアクセス情報が保存される前に処理されてもよい。特定の処理が完了した後、アクセス情報は、データプロセッサコアのローカルメモリへアクセス要求を与えるために使用される。一実施形態において、アクセス要求は、バスインターフェースユニットによっては制御されないローカルメモリのスレーブポートに与えられる。或いは、外部リソースがデータプロセッサコアのバスインターフェースユニットを介してローカルメモリへアクセス要求を与えてもよい。
処理309において、ローカルメモリに格納される情報にアクセスした後であってアクセスの完了前に、外部リソースは必要な任意の特定の処理を実行する。例えば、データがローカルメモリにおいてアクセスされた後の特定の処理は、特定のアドレスに対する予約をクリアすること、または予約がもはや有効ではないと判定された場合、要求している装置へ予約の無効を報告することを含んでもよい。別の実施形態において、アクセスは、メモリアクセスおよびデータ処理動作の一連の処理シーケンスを用いて、メモリコントローラによる追加的処理のためにデータプロセッサコアからの修飾動作情報(decoration operation information)を利用することで完了されてもよい。さらなる別の実施形態において、外部リソースは、ローカルメモリに修飾情報を格納することによって完了してもよく、例えば、完了する前に読取り・変更・書き込み要求の一部として格納することによって完了してもよい。修飾アクセスの間に取得された情報は、命令オペランドとして使用するために、要求している装置(例えば、データプロセッサコアのパイプライン)へ戻される。
図4は、本発明の実施形態にしたがう特定の方法を示すフローチャートを示し、図3と同様な符号を有する処理ブロックは図3と同様な処理を行う。図4の方法は、ローカルメモリへのアクセスが特定のアクセス情報であると決定したことに応答して、処理305から処理307へ直接的に進むのではなく、処理311に進む点で図3のフローと異なっている。処理311においては、特定の処理がイネーブルされるか否かが判定される。例えば、プログラマブルレジスタのインジケータ(指示子)が、特定のタイプの特定の処理が利用可能であることを示するように設定できる。図5を参照するに、プログラマブルレジスタ位置402は、ATOM_ENというラベルが付されたビットがイネーブルされている場合に特定の処理によってアトミックアクセスが処理されることになっていることを示すビットを含み、かつDEC_ENというラベルが付されたビットがイネーブルされている場合に特定の処理によって修飾アクセスが処理されることになっていることを示すビットを含む。データプロセッサコア101の内部のローカルメモリへ至る際にローカルアクセス経路をバイパス(迂回)しかつデータプロセッサコア外部のメモリコントローラ105のようなリソースを利用するために、或いはロード/格納動作を処理するのみの内部経路を利用するかためにロード/格納ユニット115によって生成される特定アクセス要求のルーティングおよび動作を制御するために、上記のようなプログラマブルレジスタがロード/格納ユニット115により生成される特定のアクセス要求のルーティング及び処理に使用される。このような選択肢は、データプロセッサコア101の動作について、より大きな自由度および効率を可能にする。
従ってビットフィールドATOM_ENがイネーブルにされていることに応答して、アトミックアクセス要求は(フローチャートにおいて処理307に進み)、上述したようにデータプロセッサコアの外部のリソースにより、要求された情報へのアクセスを促す。ビットフィールドATOM_ENがネゲートされていた場合、アトミックアクセス要求は(フローチャートにおいて処理306に進み)、データプロセッサコアの外部の如何なるトランザクションも行うことなしに、ローカルメモリの中の要求された情報への通常のアクセスを促す。同様に、ビットフィールドDEC_ENがイネーブルにされていた場合、修飾アクセス要求は(フローチャートにおいて処理307に進み)、上述したようにデータプロセッサコアの外部のリソースにより、要求された情報へのアクセスを促す。ビットフィールドDEC_ENがネゲートされていた場合、修飾アクセス要求は(フローチャートにおいて処理306に進み)、データプロセッサコアの外部の如何なるトランザクションも行うことなしに、ローカルメモリの中の要求された情報への通常のアクセスを促す。代替的な実施形態において、全ての特定のアクセスをイネーブル/ディセーブルにするために単独のレジスタビットが使用されてもよく、例えば、アトミックアクセス要求及び修飾アクセス要求の双方について1ビットでイネーブル/ディセーブルを示してもよい。
一般的な説明における上記の処理又は要素の全てが必ずしも必要ではなく、特定の処理又は装置の一部分が必要とされなくてもよく、1つ以上の更なる処理が実行されてもよく、あるいは上記の説明に加えて要素が含められてもよいことに留意を要する。更に、処理手順が列挙されている順序は、それらが実行される順序でなくてもよい。
以上、本発明の概念が具体的な実施形態を参照しながら説明されてきた。しかしながら、当業者は、特許請求の範囲に記載されているような本願の範囲から逸脱することなく、様々な修正例及び変形例が可能であることを認めるであろう。従って上記の説明及び図面は限定的な意味ではなく例示的な意味に解釈される必要があり、そのような全ての変形例は本願により開示される範囲に包含されるように意図されている。例えば、上記の実施形態において、データプロセッサ101は、通常の方法で、例えばDEC_ENインジケータがディセーブルである場合に如何なる処理もなされずに、修飾要求(declaration requests)を実行するように説明されている。しかしながら代替実施形態において、DEC_ENビットがディセーブルであった場合に、パイプライン111により決定される修飾値は、データプロセッサコア101にとってローカルな修飾コントローラ(declaration controller)(図示せず)において行われるローカルなメモリアクセスの修飾をもたらし、DEC_ENがイネーブルであった場合に修飾値は外部の修飾コントローラにおいて行われるローカルメモリアクセスの修飾をもたらしてもよい。この場合、DEC_ENビットの値に応じて2つの修飾機能のうちの一方を実行するために同じ修飾値(declaration value)が使用可能である。
別の例として、他のアクセスにより自動的にアクセスされるメモリ位置に対する介在アクセス(intervening access)は、その介在アクセスが同じマスタからの保存であった場合又は介在アクセスが同じマスタからのロードであった場合に、生成された予約インジケータをもたらしてもよい。
また、他の利点及び課題を解決するための手段が特定の実施形態に関連して説明されてきた。しかしながら、利点、効果、課題解決手段及び任意の特徴(何らかの利点、効果又は手段をもたらす又は顕著にする任意の特徴)は、特許請求の範囲における請求項の全部又は一部に対する必須の、不可欠な又は本質的な特徴と解釈されてはならない。

Claims (15)

  1. データプロセッサコアで実行されるアクセス命令が特定のアクセス命令であるか否かを決定するステップと、
    前記アクセス命令が前記特定のアクセス命令であったことに応答して、前記データプロセッサコア外部のトランザクションを用いて、データプロセッサコアのローカルメモリにアクセスするためのアクセス命令に基づくアクセス情報を、選択的にルーティングするステップと
    を有し、前記特定のアクセス命令は修飾アクセス命令である、方法。
  2. 前記アクセス命令が特定のアクセス命令ではなかったことに応答して、前記データプロセッサコア内部のトランザクションを用いて前記データプロセッサコアの前記ローカルメモリにアクセスするためにアクセス情報を選択的にルーティングするステップをさらに含む、請求項1に記載の方法。
  3. 前記決定するステップが前記アクセス情報に埋め込まれている情報に基づいて行われる、請求項2に記載の方法。
  4. 前記決定するステップがレジスタ情報に基づいて行われる、請求項2に記載の方法。
  5. 前記データプロセッサコア外部のトランザクションを用いることは、前記データプロセッサコアのポートから、前記データプロセッサコア外部のシステムリソースへ、前記アクセス情報をルーティングすることを含み、前記システムリソースは、前記ローカルメモリにアクセスするために、前記アクセス情報を前記データプロセッサコアへルーティングすることに用いられる、請求項1に記載の方法。
  6. 前記ローカルメモリへアクセス情報を選択的にルーティングしたことに応答して、前記アクセス情報に基づいてアクセスされるデータを前記システムリソースにおいて前記ローカルメモリから受信するステップをさらに含む、請求項5に記載の方法。
  7. 前記データプロセッサコア外部のトランザクションを用いことは、前記データプロセッサコアの第1ポートから、前記ローカルメモリにアクセスするために前記データプロセッサコアの第2ポートを介して前記データプロセッサコアへ前記アクセス情報をルーティングするために使用される前記データプロセッサコア外部のシステムリソースへ、前記アクセス情報をルーティングすることを含む、請求項2に記載の方法。
  8. 前記システムリソースにおいて、前記アクセス命令が修飾アクセス命令であったことに応答して、前記ローカルメモリに格納されるアクセス情報を処理するステップをさらに含む、請求項5に記載の方法。
  9. プログラマブル指示子が、前記データプロセッサコア外部のトランザクションの使用が可能であることを示す第1状態であるか又は前記データプロセッサコア外部のトランザクションの使用が可能でないことを示す第2状態であるかを決定するステップと、
    前記プログラマブル指示子が前記第1状態にある旨の判断に応答して、前記データプロセッサコア外部のトランザクションを用いて前記選択的なルーティングを実行するステップと、
    前記プログラマブル指示子が前記第2状態にある旨の判断に応答して、前記データプロセッサコア外部のいかなるトランザクションも使用せずに、前記特定のアクセス命令による前記アクセス情報を前記ローカルメモリへ選択的にルーティングするステップと
    をさらに含む、請求項1に記載の方法。
  10. 第1のローカルメモリを有する第1のデータプロセッサコアを含む複数のデータプロセッサコアと、
    前記データプロセッサコア外部のシステムリソースモジュールと、
    前記システムリソースモジュール及び前記第1のローカルメモリに結合されたシステム相互接続部と
    を有する装置であって、前記第1のデータプロセッサコアの命令プロセッサパイプラインにおいて実行されるアクセス命令が、アトミックアクセス命令または修飾アクセス命令の少なくとも1つを含む特定のアクセス命令であったことに応答して、前記第1のデータプロセッサコアは、前記第1のローカルメモリにアクセスするために、前記アクセス命令に関連するアクセス情報を、前記システムリソースモジュールへ選択的にルーティングし、
    前記第1のデータプロセッサコアは、前記システム相互接続部に接続された第1のポートと前記システム相互接続部に接続された第2のポートとをさらに備え、前記第1のデータプロセッサコアは、前記アクセス命令が前記特定のアクセス命令として認識されたことに応答して、前記アクセス情報を前記第1のポートを介して前記システムリソースモジュールへ選択的にルーティングし、前記システムリソースモジュールは、前記第1のデータプロセッサコアの前記第2のポートを介して前記アクセス情報を前記第1のローカルメモリへ与える、装置。
  11. 前記システムリソースモジュールは、前記アクセス命令が前記特定のアクセス命令として確認されたことに応答して、前記第1のローカルメモリにアクセスするために前記アクセス情報を前記第1のデータプロセッサコアにルーティングする、請求項10に記載の装置。
  12. 前記命令プロセッサパイプラインは、前記アクセス命令が前記特定のアクセス命令であるか否かを決定し、前記命令プロセッサパイプラインはさらに、前記アクセス命令が前記特定のアクセス命令ではなかったことに応答して、前記システムリソースモジュールを使用せずに、前記アクセス命令に関連する前記アクセス情報を前記第1のローカルメモリへ選択的にルーティングし、前記第1のローカルメモリが前記第1のデータプロセッサコアに対してローカルにアクセスできるようにする、請求項10に記載の装置。
  13. 前記複数のデータプロセッサコアが前記システム相互接続部に接続された第2のデータプロセッサコアをさらに含み、
    前記第2のデータプロセッサコアは第2のローカルメモリを備え、
    前記第2のデータプロセッサコアの命令プロセッサパイプラインで実行される第2のアクセス命令が前記特定のアクセス命令として認識されたことに応答して、前記第2のデータプロセッサコアは、前記第2のアクセス命令に関連するアクセス情報を、前記システムリソースモジュールへ選択的にルーティングし、
    前記システムリソースモジュールはさらに、前記第2のローカルメモリにアクセスするために、前記第2のアクセス命令に関連する前記アクセス情報を前記第2のデータプロセッサコアにルーティングする、請求項10に記載の装置。
  14. 前記システムリソースモジュールは、格納または取得された情報を処理するメモリコントローラである、請求項13に記載の装置。
  15. 前記装置はイネーブル指示子を格納する格納場所をさらに有し、前記第1のデータプロセッサコアは、アサートされたイネーブル指示子に応答して、前記システムリソースモジュールに前記アクセス情報を選択的にルーティングし、ネゲートされた前記イネーブル指示子に応答して、前記システムリソースモジュールを使用せずに前記第1のローカルメモリへ前記アクセス情報を選択的にルーティングする、請求項10に記載の装置。
JP2012107015A 2011-05-09 2012-05-08 ルーティングのための方法及び装置 Active JP6005392B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/103,609 US8756405B2 (en) 2011-05-09 2011-05-09 Selective routing of local memory accesses and device thereof
US13/103,609 2011-05-09

Publications (2)

Publication Number Publication Date
JP2012238306A JP2012238306A (ja) 2012-12-06
JP6005392B2 true JP6005392B2 (ja) 2016-10-12

Family

ID=46045823

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012107015A Active JP6005392B2 (ja) 2011-05-09 2012-05-08 ルーティングのための方法及び装置

Country Status (3)

Country Link
US (1) US8756405B2 (ja)
EP (1) EP2523099B1 (ja)
JP (1) JP6005392B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101777512B1 (ko) * 2016-05-04 2017-09-11 한국기초과학지원연구원 애쉬트레이-프리 가스화기

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
US8904109B2 (en) 2011-01-28 2014-12-02 Freescale Semiconductor, Inc. Selective cache access control apparatus and method thereof
US8533400B2 (en) 2011-01-28 2013-09-10 Freescale Semiconductor, Inc. Selective memory access to different local memory ports and method thereof
WO2015024532A1 (zh) * 2013-08-23 2015-02-26 上海芯豪微电子有限公司 高性能指令缓存系统和方法
US20160217079A1 (en) 2013-02-08 2016-07-28 Shanghai Xinhao Microelectronics Co., Ltd. High-Performance Instruction Cache System and Method
US10003675B2 (en) * 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
CN104765699B (zh) * 2014-01-02 2018-03-27 光宝科技股份有限公司 处理系统及其操作方法
US9710273B2 (en) * 2014-11-21 2017-07-18 Oracle International Corporation Method for migrating CPU state from an inoperable core to a spare core

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410669A (en) 1993-04-05 1995-04-25 Motorola, Inc. Data processor having a cache memory capable of being used as a linear ram bank
US5532947A (en) 1995-01-25 1996-07-02 International Business Machines Corporation Combined decoder/adder circuit which provides improved access speed to a cache
US5966734A (en) 1996-10-18 1999-10-12 Samsung Electronics Co., Ltd. Resizable and relocatable memory scratch pad as a cache slice
JPH10134008A (ja) * 1996-11-05 1998-05-22 Mitsubishi Electric Corp 半導体装置およびコンピュータシステム
US6016533A (en) 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
US6138223A (en) 1998-04-30 2000-10-24 International Business Machines Corporation Absolute address history table index generation for predicting instruction and operand cache accesses
US6636950B1 (en) * 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
US6438671B1 (en) 1999-07-01 2002-08-20 International Business Machines Corporation Generating partition corresponding real address in partitioned mode supporting system
US6484237B1 (en) 1999-07-15 2002-11-19 Texas Instruments Incorporated Unified multilevel memory system architecture which supports both cache and addressable SRAM
US6963965B1 (en) 1999-11-30 2005-11-08 Texas Instruments Incorporated Instruction-programmable processor with instruction loop cache
US6748498B2 (en) * 2000-06-10 2004-06-08 Hewlett-Packard Development Company, L.P. Scalable multiprocessor system and cache coherence method implementing store-conditional memory transactions while an associated directory entry is encoded as a coarse bit vector
US7437535B1 (en) 2002-04-04 2008-10-14 Applied Micro Circuits Corporation Method and apparatus for issuing a command to store an instruction and load resultant data in a microcontroller
US6941421B2 (en) 2002-10-29 2005-09-06 International Business Machines Corporation Zero delay data cache effective address generation
US6976126B2 (en) 2003-03-11 2005-12-13 Arm Limited Accessing data values in a cache
US7237065B2 (en) * 2005-05-24 2007-06-26 Texas Instruments Incorporated Configurable cache system depending on instruction type
US7882339B2 (en) * 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
US7283418B2 (en) 2005-07-26 2007-10-16 Micron Technology, Inc. Memory device and method having multiple address, data and command buses
US20070150671A1 (en) 2005-12-23 2007-06-28 Boston Circuits, Inc. Supporting macro memory instructions
US7529889B2 (en) 2006-08-14 2009-05-05 Arm Limited Data processing apparatus and method for performing a cache lookup in an energy efficient manner
US7657708B2 (en) 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
JP4476267B2 (ja) * 2006-10-06 2010-06-09 株式会社日立製作所 プロセッサ及びデータ転送ユニット
US8627471B2 (en) 2008-10-28 2014-01-07 Freescale Semiconductor, Inc. Permissions checking for data processing instructions
US9213665B2 (en) 2008-10-28 2015-12-15 Freescale Semiconductor, Inc. Data processor for processing a decorated storage notify
US8166276B2 (en) 2009-02-27 2012-04-24 Advanced Micro Devices, Inc. Translate and verify instruction for a processor
JP2011221931A (ja) * 2010-04-14 2011-11-04 Renesas Electronics Corp データプロセッサ
US20120290780A1 (en) 2011-01-27 2012-11-15 Mips Technologies Inc. Multithreaded Operation of A Microprocessor Cache
US8904109B2 (en) 2011-01-28 2014-12-02 Freescale Semiconductor, Inc. Selective cache access control apparatus and method thereof
US8533400B2 (en) 2011-01-28 2013-09-10 Freescale Semiconductor, Inc. Selective memory access to different local memory ports and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101777512B1 (ko) * 2016-05-04 2017-09-11 한국기초과학지원연구원 애쉬트레이-프리 가스화기

Also Published As

Publication number Publication date
JP2012238306A (ja) 2012-12-06
EP2523099B1 (en) 2018-12-19
EP2523099A3 (en) 2013-01-23
US8756405B2 (en) 2014-06-17
EP2523099A2 (en) 2012-11-14
US20120290806A1 (en) 2012-11-15

Similar Documents

Publication Publication Date Title
JP6005392B2 (ja) ルーティングのための方法及び装置
JP5876458B2 (ja) Simdベクトルの同期
TWI260541B (en) System and method for linking speculative results of load operations to register values
EP1008053B1 (en) Controlling memory access ordering in a multi-processing system
KR101642646B1 (ko) 인터럽트가능 저장 익스클루시브
US20080005504A1 (en) Global overflow method for virtualized transactional memory
US20070050563A1 (en) Synchronization arbiter for proactive synchronization within a multiprocessor computer system
JP5703378B2 (ja) アラインメント制御
JP4874165B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
JP5451579B2 (ja) 適応的最適化された比較/交換オペレーション
KR20190033084A (ko) 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
US6374338B1 (en) Method for performing configuration tasks prior to and including memory configuration within a processor-based system
US7536694B2 (en) Exception handling in a multiprocessor system
US9330024B1 (en) Processing device and method thereof
TW201729084A (zh) 在處理器中具有基於方塊儲存的介面
JP5289688B2 (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
KR102658600B1 (ko) 디바이스를 디버깅할 때 메타데이터에 액세스하기 위한 장치 및 방법
US20120254552A1 (en) Memory access remapping
JP2006221606A (ja) データプロセッサ
US11656796B2 (en) Adaptive memory consistency in disaggregated datacenters
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
EP4052121A1 (en) Shadow latches in a shadow-latch configured register file for thread storage
JP2009098819A (ja) メモリシステム、メモリシステムの制御方法、及びコンピュータシステム
JP2005259051A (ja) プロセッシングユニットおよびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150501

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160907

R150 Certificate of patent or registration of utility model

Ref document number: 6005392

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

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