Nothing Special   »   [go: up one dir, main page]

JP2005011324A - データ処理装置を使用する場合のフレキシビリティの改善 - Google Patents

データ処理装置を使用する場合のフレキシビリティの改善 Download PDF

Info

Publication number
JP2005011324A
JP2005011324A JP2004146753A JP2004146753A JP2005011324A JP 2005011324 A JP2005011324 A JP 2005011324A JP 2004146753 A JP2004146753 A JP 2004146753A JP 2004146753 A JP2004146753 A JP 2004146753A JP 2005011324 A JP2005011324 A JP 2005011324A
Authority
JP
Japan
Prior art keywords
selectable
data
register
connections
path
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
JP2004146753A
Other languages
English (en)
Other versions
JP4076973B2 (ja
Inventor
Bruce James Mathewson
ジェームズ マシュウソン ブルース
Antony John Harris
ジョン ハリス アントニー
Dipesh Ishwerbhai Patel
イシュウェルブハイ ペタル デペシュ
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2005011324A publication Critical patent/JP2005011324A/ja
Application granted granted Critical
Publication of JP4076973B2 publication Critical patent/JP4076973B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Advance Control (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】動作条件の変化に容易に適応するフレキシビリティを備えたデータ処理装置と該装置を構成する方法を開示する。
【解決手段】データ処理装置は、データを処理する複数の論理素子と、論理素子の間でデータを転送し、各接続を論理素子で分離する1つ以上の部分経路を含む複数の接続と、1つ以上の接続内の部分経路の数を変更可能にするため、セットアップ情報に基づいて選択可能各記憶素子とそれに付随する迂回経路の選択を制御するコントローラとを含む。記憶素子は迂回経路が付随する選択可能記憶素子であり、コントローラはセットアップ情報に基づき、どの選択可能記憶素子を使用または迂回すべきかを決定し、セットアップ情報と、該情報を作る際検討した動作条件とそれに影響を与える他の態様とにより、生産後の装置の中で接続の構成変更が可能になる。
【選択図】図11

Description

本発明は、データ処理装置に関し、とくに使用中にこのようなデータ処理装置の構成を変更できるフレキシビリティを改善する手法に関する。
データを処理する複数の論理素子と複数の接続を有し、該複数の接続を介してこれら論理素子の間でデータを転送するデータ処理装置を提供することは公知である。通常、クロック信号を使用して装置の中の論理素子の動作を制御し、これらの論理素子の間の信号の転送を制御する。このような装置を設計する場合、走行するために装置が必要とするクロック速度、つまり、動作周波数に関心があつまるのが普通である。何故ならば、特定の論理素子が1クロックサイクルで実行できる処理量と、各クロックサイクルで接続に沿って信号が通過できる距離を最終的に限定するのは、クロック速度だからである。
接続を介して信号を転送することに注意しているので、目標クロック速度に関心のある設計者は、その接続を1つまたは複数の部分経路(path portions)に分離するため、特定の接続の経路に沿って1つまたは複数の記憶素子を追加することが適切であると決定することができる。信号はあらゆる1クロックサイクルで各部分経路の長さを横断する必要があるのみである。
特定の目標動作周波数に注意して、このような記憶素子を追加することが必要であるが、実際に必要な数より多い記憶素子を追加することは望ましくないことは理解されるであろう。何故ならば、信号が特定の接続を横断するために要するクロックサイクルの数が増加するから、このような記憶素子を追加すると処理速度に影響を及ぼすからである。
目標クロック速度に注意して装置が設計されるが、その設計に基づいて生産された装置の何らかの特定の一部は、必ずしも常にその目標クロック速度で動作する必要がないことが多い。たとえば、電力消費を少なくするためクロック速度が遅くなる待機動作モードにすることは公知である。装置は、目標クロック速度に対して設計されるのであるから、異なるクロック速度で動作する場合、常に効率的に動作する必要があるとはかぎらない。たとえば、実際にはクロック速度が遅い接続を介して信号が遠くに伝搬される場合、信号を一時的に記憶素子に格納してもよい。
異なる動作モードで各種電圧レベルを使用するように、変わりうる他の動作条件が存在していることと、たとえば、周囲の環境が暖かいか寒いかなどのような装置の動作環境によって、装置の動作速度が変わりうることも理解されるであろう。また製造公差のため、設計通りに生産された各装置の動作特性(たとえば、クロック速度、動作電圧など)が完全に同一になるということはない。
したがって、このような動作条件に適応できる改善されたデータ処理装置を提供することが望ましい。
第1の態様から見ると、本発明は、データを処理する複数の論理素子と、データを一時的に格納する複数の記憶素子と、各接続が前記記憶素子によって分離された1つまたは複数の部分経路を含み、各部分経路が、データによって1クロックサイクルで横断可能であるように記憶素子が配置された複数の接続であって、該複数の接続を介して前記論理素子の間でデータが転送される複数の接続と、迂回経路が付随する選択可能な記憶素子であるいくつかの前記記憶素子と、1つまたは複数の前記接続の中の部分経路の数の変化を可能にして、前記選択可能な記憶素子を迂回することによって生じる修正された部分経路が、前記データによって1クロックサイクルで横断可能な場合に、迂回経路が選択可能であるために、動作速度の表示から取り出されるセットアップ情報に基づいて、各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するコントローラとを含むデータ処理装置を提供することである。
本発明によれば、装置の中のいくつかの記憶素子は、迂回経路が付随する選択可能な記憶素子である。次にコントローラは、セットアップ情報に基づいて各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するために用意されており、これは1つまたは複数の接続の中の部分経路の数に変化をもたらす。これにより、動作条件と、コントローラによって使用され、どの選択可能な記憶素子を使用し、どの記憶素子を迂回するか決定するセットアップ情報を生成する場合に検討される動作速度に影響を及ぼす他の態様とにより、装置の製造後に接続の構成が可能となる。一例として、装置が設計されたときに検討された目標クロック速度より遅いクロック速度で使用されると、或る数の選択可能な記憶素子を迂回して特定の接続の中の部分経路の数を少なくして、これらの接続を横断する信号に要するクロックサイクルの数を減らすことが可能である。
装置の中の選択可能な記憶素子の制御を管理することができるいくつかの異なる方法があることは理解されるであろう。たとえば、1つの実施例におけるコントローラは、装置が初期化されるとき、各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するように動作可能であり、この選択は所定のセットアップ情報の通りに実行される。装置の設計は、装置が動作することを対象とした最高クロック速度を検討するのが普通であるが、装置が動作するのに必要な実際のクロック速度は、装置が使用される特定のデバイスに依存することは理解されるであろう。一例として、装置が、ラップトップコンピュータ、個人用情報端末(PDA)、あるいは移動電話機のいずれかで使用することができるプロセッサまたはその構成部品であるとすると、その装置が動作するのに必要とするクロック速度は、実施方法ごとに異なることになる。この場合、装置が初期化されるとき、つまり、起動時に適切な所定のセットアップ情報を使用して、特定の接続に関連するクロックサイクルの数を減らすために、不要な選択可能記憶素子をすべて迂回して、必要な数の選択可能記憶素子だけを使用するように、実施方法ごとに所定の異なるセットアップ情報を定義することが可能になる。
異なるデバイスで使用される装置と同様、装置が特定のデバイスの中に配置される場合、装置は複数の異なる動作条件で動作することは理解されるであろう。たとえば、正規の動作モードに加え、装置は、スタンバイのような、1つまたは複数の省電力モードで動作することができる。このような異なる動作条件は、信号が論理素子間の接続を横断することができる速度を変更することがありうる異なるクロック周波数、異なる供給電圧などを採用することができる。したがって、上記の起動時の方法の代替方法として、または上記方法に加えて、各動作条件には、動作条件に関連して対応する所定のセットアップ情報があり、動作条件が現在の条件から新しい条件に変更されるたびに、コントローラは新しい条件に適用可能な対応する所定のセットアップ情報にしたがって、各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するように動作可能である。したがって、コントローラが選択可能な記憶素子の選択を構成し直して、動作条件が変更されるとき新しい条件に適切な選択可能な記憶素子だけを選択することができるように、異なる動作条件ごとに異なる所定のセットアップ情報を用意することができる。
代替可能な実施例におけるコントローラは、装置が初期化されるとき、各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するように動作可能であるが、この実施例における選択はテスト手続きを実行することによって取得されるセットアップ情報にしたがって実行され、該テスト手続き中に前記選択可能記憶素子の1つまたは複数の選択構成(selection configurations)に対するいくつかの前記接続を介してテストデータが転送される。この実施例によれば、セットアップ情報は予め決定されてはいないが、その代わりとしてテスト手続きを実行して、前記選択可能記憶素子の適切な選択を決定する。この方法により、適切なセットアップ情報を用意する場合、検討中の実際の動作条件と装置の動作特性を検討に入れることができる。したがって、この方法の利点は、装置の動作環境と、どの選択可能記憶素子を使用するか、どの選択可能記憶素子を迂回するかに関する決定がなされることに装置が適応できるようにすることである。1つの実施例におけるこのテストは、装置が初期化されるとき、つまり起動するときに実行されるが、その代わりとして、つまりそれだけでなく、装置の動作中の他の時間、たとえば、その装置の動作条件が現在の条件から新しい条件に変わるときにこのテストを呼び出すことができる。この場合、テスト手続きは新しい条件に依存して決まるので、テスト手続きを実行しテスト結果を解析する場合、その新しい条件に適切なクロック速度と電圧レベル、またはそのいずれかのような態様に注意することができる。
1つの実施例におけるテスト手続きは、装置の動作環境の結果として発生することがある何らかの時間変動の余裕をみておくように選ばれる。装置が動作中の温度のような環境の問題は、信号が装置の中の経路を介して伝搬する速度の変化をもたらすが、このような変動は数パーセントのオーダである。したがって、一例を挙げると、新しい条件として装置が1MHzのクロック速度で動作しているとすれば、1MHzより若干速いクロック速度でテスト手続きを実行するのが適切であることが理解されるであろう。同様に、新しい条件が動作電圧の低下を表しているとすれば、テスト手続きを実行するときは、新しい条件によって指定される動作電圧より若干低い動作電圧を使用することが適切である。
コントローラは、様々な方法で選択可能記憶素子を制御するように配置されていることは理解されるであろう。しかし、1つの実施例における各選択可能記憶素子は、選択可能記憶素子に関連するとともに、選択可能記憶素子または該素子に付随する迂回経路のいずれかの選択を制御するコントローラによって制御されるマルチプレクサを備えている。
この装置がいろいろな形をとりうることは理解されるであろう。1つの実施例における複数の接続、複数の記憶素子およびコントローラは、前記論理素子間でデータを接続するように動作可能な相互接続ブロックの中に用意されている。当業者により理解されるように、一般に、相互接続ブロックは複数の接続を用意し、該複数の接続を介して、1つまたは複数のマスタ・デバイスが1つまたは複数のスレーブ・デバイスをアクセスすることができる。したがって、相互接続ブロックは、これらのマスタ・デバイスがスレーブ・デバイスにアクセスできるようにするバスのインフラストラクチャを定義する。
代替可能な実施例における装置は、パイプライン型データ処理ユニットであり、このユニットのコントローラは、パイプライン型データ処理ユニットのパイプライン・ステージの数を変更するためセットアップ情報に基づき各選択可能記憶素子または該素子に付随する迂回経路の選択を制御することができる。
パイプライン・ステージの数の変更を実行することができる、いくつかの方法があることは理解されるであろう。1つの実施例におけるパイプライン型データ処理装置は、まず命令を排出し、その後でパイプライン形データ処理装置がさらなる命令の受け取りを始める前に、パイプライン・ステージの数を変更する。代替可能な実施例では、パイプラインの中に特定の命令が送られると、この変更が呼び出される。
選択可能記憶素子がいろいろな形をとりうることは理解されるであろう。しかし、複数の単一信号を送る接続の場合、選択可能記憶素子はレジスタの形をとることができる。しかし、1つの実施例における信号のグループは、接続がバスである場合に起こりうるような接続を介して送信され、この実施例における選択可能記憶素子は、関連する部分経路を介して受信されるこれらの信号のグループを格納するように動作可能なレジスタ・スライスである。
第2の態様から見ると、本発明は、データを処理する複数の論理素子と、データを一時的に格納する複数の記憶素子と、各接続が前記記憶素子によって分離される1つまたは複数の部分経路を含み、各部分経路が前記データによって1クロックサイクルで横断可能であるように前記記憶素子が配置された複数の接続であって、該複数の接続を介して前記論理素子の間でデータが転送される複数の接続とを含むデータ処理装置を構成する方法を提供しており、この方法は、(a)いくつかの前記記憶素子を、迂回経路が関連する選択可能な記憶素子であるように配置するステップと、(b)1つまたは複数の前記接続の中の前記部分経路の数の変化を可能にして、前記選択可能な記憶素子を迂回することによって生じる修正された部分経路が、前記データによって1クロックサイクルで横断可能な場合に迂回経路が選択可能であるために、動作速度の表示から取り出されたセットアップ情報に基づいて、各選択可能な記憶素子または該素子に関連する迂回経路を制御するステップとを含む。
添付の図面に示す好適実施例を参照し、例示するのみの方法で本発明を詳細に説明する。
図1Aは、レジスタ・スライス記憶部10と、ある種の関連する制御論理20から構成されたレジスタ・スライス1を模式的に示すブロック図である。本明細書では信号グループと呼ばれる、点Aから点Bまで流れる情報のチャネルが与えられているので、チャネルの中の各情報信号の発信元と宛先の間にレジスタを挿入するためにレジスタ・スライス1を使用することができる。したがって、図1を参照すると、個々の信号のグループとしてアドレスを指定する転送要求、その要求が書き込み転送要求であることの表示、データのサイズ、およびバースト・サイズに関する情報が宛先に伝搬される前に、レジスタ・スライス記憶部10の中に一時的に格納される。上記信号のほか、他の信号が有効として処理すべきか否かを示す有効信号(valid signal)が発行されるのが普通である。この有効信号が制御論理20で受信されると、制御論理20は、たとえばスレーブ・デバイスのような宛先からレディ信号を受信する。このレディ信号は、レジスタ・スライス記憶部10の中に格納済みのどんな信号でも、とにかくその宛先が受信する準備ができていることを識別するように設定されている。したがって、レジスタ・スライス記憶部10に新しいデータを書き込んでも安全なことを示している。たとえば、特定のクロックサイクル中に新しい値をレジスタ・スライス記憶部10に格納しながら、レジスタ・スライス記憶部10の現在の内容を宛先に出力することができる。したがって、レジスタ・スライス記憶部10に既にデータが含まれている場合、制御論理20を使用してセット・レディ信号が受信されるときまで有効データがレジスタ・スライス記憶部10に対して伝搬されることを防止する。レジスタ・スライス記憶部10は有効信号が設定される場合には受信信号をレジスタ・スライス記憶部10の中に格納するためだけに配置される。しかし、レジスタ・スライス記憶部によって出力される有効信号の値が表示する有効データをレジスタ・スライス記憶部が1つも含んでいない場合、有効データをレジスタ・スライス記憶部10に伝搬する前に立ち上げられるセット・レディ信号を制御論理20が待ち合わせる必要はない。
図1Bは、レジスタ・スライスの代替可能な実施例を示している。この実施例におけるレジスタ・スライス2には、主経路の中に含まれる2セットのレジスタ・スライス記憶素子12、14がある。以下、詳細に説明するように、この方法によると、レジスタ・スライスを通じて利用可能な帯域幅に影響を及ぼさずに戻ってくるレディ信号の経路の中にレジスタ22を配置することが可能になる。
レディ信号の戻り経路が、1クロックサイクルで横断するには長すぎる状態のとき、図1Bのレジスタ・スライスの実施例を使用して戻り経路にレジスタ・スライスを挿入することができる。しかし、この条件以外でもこうむることがある性能の欠点を除く狙いから、制御論理20は、次のサイクルでレディ信号の値(つまり、設定されているか否か)を予測するように調整され、その予測値をレジスタ22に格納する。レジスタ・スライス記憶素子12、14の少なくとも1つが空きの状態のとき、制御論理は、レディ信号が次のサイクルで設定されることを予測するように調整される。何故ならば、その予測が間違っているとしても、レジスタ・スライス2には、予測値と関係なく動作する論理からそれに対して転送される信号をレジスタ・スライス記憶素子12、14のどちらか1つの中に格納する容量があるからである。現在、レジスタ・スライス記憶素子の両方に有効データ信号が含まれている場合に限り、制御論理は、レディ信号が次のサイクルで設定されないことを予測する。何故ならば、そのときレディ信号が実際に設定されていなかった場合、制御論理はいかなる入力信号も受信できないからである。
図1Aの例と同様、制御論理は、受信したレディ信号に関係なく、それぞれ経路13または15を介して、レジスタ・スライス記憶素子12、14の選択された1つに有効信号を伝搬するように調整され、たとえば、それぞれ連続する受信した信号セットが異なるレジスタ・スライス記憶素子に送られるラウンドロビン方式を利用することができる(たとえば、信号の第1のセットは記憶素子12に、第2のセットは記憶素子14に、第3のセットは記憶素子12にというように、以下同様に送られる)。さらに制御論理20は、レジスタ・スライス記憶素子12、14の適切な1つから信号が出力され、レジスタ・スライス2からの出力が、信号を受信した順序と同じ順序になることを保証するように、制御経路17を介してマルチプレクサ16を制御する。
図1Aおよび1Bに示すレジスタ・スライス1、2は、点Aから点Bまで信号を転送するために必要なサイクルの数を増やす効果を有しているが、1クロックサイクルでカバーしなければならない部分経路の最大の長さを減らすという利点により、設計した装置が動作する最高クロック周波数が上昇する。
レジスタ・スライスを使用する1つの特殊な利点は、図2、3を参照して示すように、バーストを使うシステムで発生する。最初に図2を検討すると、マスタ・デバイス30がちょうど1つのデータ項目を読み出すことを要求すると、この処理は、経路35を介してスレーブ・デバイス40にアドレスを送る1サイクルと、経路35を介して戻されるデータに対する第2のクロックサイクルと2サイクルを必要とする。図3に示すシステムのレジスタ・スライスは、アドレス経路とデータ経路の両方で使用され、この同じ処理に4クロックサイクルが必要である。すなわち、経路70を介してレジスタ・スライス50にアドレスを報知するマスタ・デバイス30のための1サイクル、経路75を介してスレーブ・デバイス40にアドレスを転送する第2のサイクル、データを発生し、そのデータを経路80を介してレジスタ・スライス60に出力するスレーブのための第3のサイクル、および経路85を介してマスタ・デバイス30に送り返されるデータのための第4のサイクルである。したがって、このような転送を実行するためにこのような時間を減らすため、レジスタ・スライスは、クロック周波数を100%以上、上昇させることを可能にしなければならない。
しかし、その代わりとして転送が8つのデータ項目のバーストを指定したとすれば、図2のシステムでは、このことは、経路35を介してアドレスを発行する1サイクルと、経路45を介して8個のデータを受信する8サイクルの、全部で9サイクルを必要とすることは明白である。図3のシステムにおける同じ処理は、11個のサイクル、すなわち、経路70、75を介してアドレスを発行する2サイクルと経路80、85を介してデータを受信する9サイクルを必要とする。このシナリオにおけるレジスタ・スライスは、必要とする時間を減らすためにクロック周波数を22%以上、上昇させる必要があるにすぎない。
上記考察は、伝統的にレジスタ・スライス、またはパイプライン型手法が今日まで使用されてきた場合の簡単なポイント・ツー・ポイント接続に注目してきた。しかし、すべてのシステムがこのような簡単なポイント・ツー・ポイント接続を採用するとは限らない。
たとえば、図4は、パーソナル・オーガナイザ、移動電話機、テレビ用セットトップボックスなどのようなシステム・オン・チップ(System-on-Chip:SoC)の形をしたデータ処理装置を示している。SoC設計100には、バスの配置によって相互接続された複数の構成要素120、130、140、160、170、180がある。これらのバスの実際の相互接続は、相互接続ブロック150の中で指定される。相互接続ブロック150は、複数のバス・マスタ・デバイスとバス・スレーブ・デバイスを相互接続する接続のマトリックスを含む。したがって、各種バスを相互接続する相互接続ブロック150によって、各マスタ・デバイス120、130、140は、それぞれ対応するバス125、135、145に接続され、各スレーブ・デバイス160、170、180も、それぞれ対応するバス165、175、185に接続されうる。
各種要素を相互接続するバスは、指定されたバスプロトコルによって動作するのが普通であるから、たとえば、ARM社によって開発された「高度マイクロコントローラ・バス・アーキテクチャ」(Advanced Microcontroller Bus Architecture:AMBA)にしたがって動作することができる。
したがって、相互接続ブロック150が、各種マスタ・デバイスとスレーブ・デバイス間の相互接続の複雑な配列を説明することは理解されるであろう。この複雑な配列は、情報のいくつかの一方向チャネルを含む。図5を参照して次に説明する1つの実施例によれば、タイミング特性の改善、電力消費特性の低減などのようなバス相互接続に選ばれた特性の要求に一致することを追求するため、相互接続ブロックの中でレジスタ・スライスを選択的に配置する方法論とツールが提供されている。
図5は、これらの間に相互接続ブロックがある2つのマスタ・システムと4つのスレーブ・システムを示している。図5の相互接続ブロックは、易しく示すために簡単にしてあるが、代表的な実施例における相互接続ブロックは、図5に示す配列よりもかなり複雑であることは理解されるであろう。図5から判るように、マスタ1 200またはマスタ2 210が4個のスレーブ・デバイス220、230、240、250のどれとでも接続できるように、バス相互接続ブロックによっていくつかの経路が与えられる。マスタ・デバイスによって転送要求が発行されると、通常、スレーブ・デバイスへのアクセスがどのマスタに許可されるべきかを決定するためアービタが使用され、そのアービタはマルチプレクサ260に制御信号を送って、どの転送要求がスレーブ・デバイスに対して出力されるかを制御する。簡単にするため、図5にはアドレスバスだけが示されているが、マスタ・デバイスとスレーブ・デバイスの間に双方向のデータ経路が与えられていることは理解されるであろう。
輪郭が点線になっているボックス205、215、225、235、245、255および265は、レジスタ・スライス用の潜在的な場所を示している。場所265はすべてのマスタ・デバイスとスレーブ・デバイスの間の経路を中断しているから、共通の場所であることが判る。この場所のレジスタ・スライスは、レジスタの後にバスレベルマルチプレクサ260の組み合わせ的遅れを効果的に置く。1つの実施例における処理は、場所265のような潜在的な場所を識別するために実行され、これらの場所にレジスタ・スライスを追加することが適切か否かを決定する。この方法は、マルチプレクサ260を通過する経路のような組み合わせ論理を組み込んだこれら経路を、1つまたは複数の候補経路として選択することを含む。このような候補経路がマスタとスレーブの間の接続の全体、または、たぶんその接続の一部を形成することは理解されるであろう。
候補経路が選択されてしまうと、組み合わせ論理によって信号を処理するためにかかる時間が所定の閾値を超えるか否かが決定される。特定のクロックサイクルで、組み合わせ論理によって処理される信号は、記憶素子から組み合わせ論理に送られ、組み合わせ論理によって処理された後、出力信号が他の記憶素子に送られることが必要であることは理解されるであろう。したがって、組み合わせ論理の時間は、必要な処理機能を実行するために使用可能なクロックサイクル周期のある一部分であるにすぎないことは明白であるから、その組み合わせ論理によって信号を処理するためにかかる時間が、使用可能な時間を超過するか、超過しそうであるか否かに関する決定を実行することができる。イエスであれば、その候補経路の部分経路の数を増加するために、候補経路の中に記憶素子を挿入するように処理を調整する。この処理は、たとえば、RTL定義段階のような設計段階中の何らかの適切な段階、で実行されうる。
バス相互接続ブロックの中の他の場所でレジスタ・スライスを使用することは、タイミング特性を改善することに役立つ。たとえば、相互接続ブロック内に用意されている記憶素子のどれかと、マスタ2 210との間の経路のような経路を候補経路として選択し、該経路を介してバス相互接続ブロックがマスタ・デバイスまたはスレーブ・デバイスから信号を受信するように処理を実行してもよい。つぎに信号を受信するために要するセットアップ時間が、所定の閾値を超過するか否かを決定することができる。マスタ・デバイスまたはスレーブ・デバイスが信号を有効に立ち上げるために、或る量のクロックサイクルが必要であり、このためにバス相互接続ブロックによる信号の受信に使用される使用可能なクロック周期の一部分だけが残ることは理解されるであろう。信号を受信するために要するセットアップ時間が使用可能な時間を超過する場合、処理を調整して候補経路にレジスタ・スライスを挿入することができるので、たとえば、場所215にレジスタ・スライスを導入することを決定することができる。場所215のレジスタ・スライスは、何らかの大きな出力遅れをマスタ2 210から隠すであろう。
それだけでなく、たとえば、相互接続ブロック内に用意されている記憶素子のどれかと、スレーブ・デバイス4 250との間の経路のような経路を候補経路として選択し、該経路を介して、バス相互接続ブロックがマスタ・デバイスまたはスレーブ・デバイスに対して信号を出力するように処理を調整してもよい。バス相互接続ブロックがマスタ・デバイスまたはスレーブ・デバイスに対して信号を出力する経路、たとえば、相互接続ブロックの中の内部記憶素子のどれかとスレーブ・デバイス4 250との間の経路のような経路を候補経路として選択することができる。つぎに処理を調整して、その候補経路に対してバス相互接続ブロックから有効な信号を出力するためにかかる時間が所定の閾値を超過するか否かを決定することができる。そのときこれらの信号を有効に受信している受信装置に対して十分な時間を残すために、出力信号を有効に立ち上げるクロック周期の一部分だけが相互接続ブロックに対して使用可能であることは理解されるであろう。したがって、有効信号を出力するためにかかる時間が使用可能な時間を超過することが決定されると、この処理を調整して候補経路の中にレジスタ・スライスを挿入し、その候補経路の中の部分経路の数を増加させることができる。したがって、一例として、この処理は、スレーブ・デバイス4 250の大きな入力セットアップ時間を隠すために場所255にレジスタ・スライスを挿入することを決定することができる。
特定のマスタ・デバイスまたはスレーブ・デバイスを備えたインタフェースに対してローカルにレジスタ・スライスを配置する利点は、すべてのアクセスに対して必要なサイクル数に大きな影響を与えないことである。たとえば、マスタ・デバイス2 210に関連して場所215にレジスタ・スライスを配置すれば、この配置は、スレーブ・デバイス220、230、240または250のどれかにアクセスするためにマスタ・デバイス1 200によって必要とされるサイクル数にまったく影響を与えない。さらにマスタ・デバイス1 200がバスのトラヒックの大部分、たとえば90%を担当しているとすれば、場所215のレジスタ・スライスは全システムのクロック周波数を10%以上上昇させて、アドレスを発行する総合速度に利点を生じることが必要であるにすぎない。
上に説明した手法によれば、レジスタの場所のいかなる組み合わせも適切であると思われるので、たとえは、レジスタ・スライスを場所205、265、235、および255に配置してもよい。
個々のマスタ・デバイスまたはスレーブ・デバイスが相互接続ブロックの中でレジスタ・スライスを使用することから得る利点の例は、次の通りである。
1.マスタまたはスレーブ構成要素の設計が、入力経路または出力経路で組み合わせ論理を含んでいる場合。
2.マスタ・デバイスまたはスレーブ・デバイスが、バスの他の構成要素から遠い距離に物理的に配置されている場合。
3.マスタ・デバイスまたはスレーブ・デバイスが異なる電力領域で動作中であり、デバイスとシステムの残り部分との間に電圧レベル・シフターが必要な場合。
4.マスタ・デバイスまたはスレーブ・デバイスが、出力デバイスの能力が固定された「ハードウエア化された」構成要素として供給される場合。
5.マスタまたはスレーブ構成要素が、クロックツリーの異なる分岐に配置され、クロック配分のアンバランスが、その構成要素の出力された有効時間または入力されたセットアップ時間(the output valid or input setup time of that component)を効率的に増加している場合。
バス相互接続ブロック内でレジスタ・スライスを使用する考えのさらなる拡張は、レジスタ・スライスのレイアウト段階の最適化を実行することである。1つの実施例では、このことは初期設計の中で、設計のレイアウト段階中に除去の候補となるいくつかの仮(provisional)レジスタ・スライスを含めることによって達成されるのであるが、これらのレジスタ・スライスを除去してもシステムのクロック周波数が所要速度に到達することを防止しないと決定されると、これらのレジスタ・スライスは除去される。
図6は、レイアウト段階で実行されるとともに、レイアウトツールで実行される処理を示している。
ステップ300で、レイアウトツールを使用し、設計処理の初期段階、たとえば、RTL段階で含まれる仮レジスタ・スライスを含めて現在のレイアウトが生成される。nMAXが、除去すると考慮(considered for removal)されている仮レジスタ・スライスの全数を表す場合、各仮レジスタ・スライスには、1からnMAXまでの関連番号が与えられる。この番号nMAXは、仮レジスタ・スライスの全数、またはその全数の何らかの部分集合を含むことができることは理解されるであろう。ステップ305で、nは1に設定された後、処理はステップ310に進み、試作レイアウトを作るために、ここでレジスタ・スライスnが除去される。
次にステップ315で、レジスタ・スライスnを除去した結果生じた新しい各部分経路に対して、クロックサイクル周期より短いかクロックサイクル周期に等しい時間でこの部分経路を信号が伝搬するか否かを決定するため、レジスタ・スライスnの周囲の経路でタイミング解析が実行される。本明細書ではこのクロックサイクル周期をTMAXと呼称する。部分経路でタイミング解析を実行するいくつかの既知の手法が存在しており、普通、このような処理は、識別した各部分経路でゲートによる遅れと配線遅れと配線による遅れ(wire delay)を計算し、対応する部分経路を介して信号が転送されることを決定することを含むことは理解されるであろう。
この後ステップ320で、レジスタ・スライスnの周囲のこれらの経路のタイミングがすべて、TMAXより小さいか、TMAXに等しいか否か決定され、イエスであれば、ステップ325で試作レイアウトが、新しい現在のレイアウトとして採用される。これ以外の場合、処理はステップ330に分岐し、ここで試作レイアウトが廃棄されその代わりに既存の現レイアウトが使用される。
次に処理はブロック325またはブロック330からブロック340に進み、ここでnがnMAXに等しいか否か決定され、イエスであれば、すべてのレジスタ・スライスを除去すると考えられていることを示しているので、処理はステップ345で終了する。しかし、nがnMAXに等しくなければ、ステップ350でnを1だけ増分した後、処理はステップ310に戻り、次のレジスタ・スライスの除去を考慮する。
各仮レジスタ・スライスに1とnMAXの間の番号を付与する方法は、いろいろな方法で調整され、たとえば、(たとえば、各種既存部分経路のタイミング情報に基づいて)除去される可能性が最も高い仮レジスタ・スライスが最初に考慮される。代替方法として、高帯域幅のマスタ・デバイスに関連するレジスタ・スライスを最初に除去すると考慮されるように、レジスタ・スライスに番号を付与することを決定してもよい。
図7A、7Bは、このような仮レジスタ・スライスの除去を実行する代替可能な処理を示しており、ここではいくつかのステップが平行して実行される。より詳細には、ステップ400で仮レジスタ・スライスを含む現レイアウトが生成され、その後、ステップ405で除去すると考慮されるnMAX個のレジスタ・スライスが選択されることは理解されるであろう。この番号nMAXは、仮レジスタ・スライスの全数または部分集合を含むことができることは理解されるであろう。たとえば、いくつかの候補経路は、該経路に沿って与えられ候補経路を複数の部分経路に分割する複数の仮レジスタ・スライスを有し、この処理の同じ繰り返し中に、これらの仮レジスタ・スライスのすべてを除去することを考えることは適切ではないであろう。
図7A、7Bの次の説明から、この実施例が繰り返し処理となるように意図されているので、nMAXの選択は、図6の実施例で実行されたnMAXの選択とはたぶん異なっていることは理解されるであろう。図6の実施例では、設計における各仮レジスタ・スライスには独自の番号が付与されると予見されたので、nMAXは、除去すると考慮された仮レジスタ・スライスの全数に等しく選択された。しかし、図7A、7Bにおける仮レジスタ・スライスのグループは、処理の異なる繰り返しの中にあると考慮することができるので、どの特定の繰り返しの中でも、nMAXは、その繰り返しの中で除去すると考慮されている仮レジスタ・スライスの全数に選ばれる。さらに仮レジスタ・スライスに割り当てられた番号はユニークではないが、その代わり、その繰り返しの中で考慮されているレジスタ・スライスは、1からnMAXの番号が割り当てられる。しかし、代替可能な実施例におけるユニークな番号は依然として全仮レジスタ・スライスに割り当てられ、特定のグループのレジスタ・スライスが各繰り返しで考慮されるように各繰り返しではnMIN値とnMAX値の両方が存在している。
ステップ405でレジスタ・スライスの番号nMAXが選択されていると、ステップ410でテストが実行され、nMAXがゼロに等しいか否かを決定する。普通、これは、図7A、7Bを通じて最初の繰り返し中のケースではないが、何らかの後続繰り返しの中のステップ405で現実に除去される仮レジスタ・スライスがもはや皆無であると決定されると、最終的に起こるケースにある。ステップ410でnMAXがゼロであると決定されると、処理はステップ415に進み、ここで、1クロックサイクル以内に信号が部分経路を横断することができる部分経路は存在しないことを保証するために、バス相互接続ブロックの経路のタイミングで最終のダブルチェックが実行される。これはそのケースであってはならない。何故ならば、当初、信号はクロックサイクルの周期を超過することなく、すべての部分経路を横断することができたからであり、図7A、7Bの処理を使用してレジスタ・スライスが除去されるたびに、影響を受ける部分経路でチェックが実行されるからである。設計で他の部分経路は影響されないのが普通である。何故ならば、レジスタ・スライスの除去には、残りの設計のレイアウトに、いかなる修正も含まれないからである。しかし、ステップ415でダブルチェックが実行されることによって現れるいかなるタイミングの問題も識別することができる。
MAXがゼロに等しくないと仮定すると、処理はステップ420に進み、ここでnは1に等しく設定された後、ステップ425でレジスタ・スライスnが設計から除去される。
この後ステップ430で、nがnMAXに等しいか否か決定され、ノーであれば、ステップ435でnが1だけ増分された後、次のレジスタ・スライスnがステップ425で除去される。
ステップ430でnがnMAXに等しいと決定されると、処理はステップ440に進み、ここで再びnが1に等しく設定された後、ステップ445でレジスタ・スライスnの周囲の経路でタイミング解析が実行される。この処理は、図6を参照して前に説明した処理315に似ている。この後で処理はステップ460に進み、ここでレジスタ・スライスnの周囲の経路のタイミングがTMAXより小さいかTMAXに等しいこと、つまり、信号が1クロックサイクルですべての影響を受けた部分経路を横断することができるか否か決定される。この処理は、図6を参照して前に説明した処理320に似ている。新しいタイミングのすべてがTMAXより小さいと仮定すると、処理はステップ470に進み、ここでレジスタ・スライスnを除去するとして予定に入れる。次に処理はステップ480に進み、影響を受けた部分経路のすべてのタイミングがTMAXより小さいとは限らない場合は、ステップ460からステップ480に直接進み、ステップ480でnがnMAXに等しいか否か決定される。ノーであれば、ステップ485でnが1だけ増分された後、処理はステップ445に戻る。
nがnMAXに等しいと決定されると、処理はステップ490に進み、ここで再びnが1に等しく設定された後、ステップ495でレジスタ・スライスnを除去する必要があるか否か決定される。このことは、スケジュールをつくるステップ470で格納された情報によって示されている。レジスタ・スライスnが除去されると、そのレジスタ・スライスはステップ500で除去されて、改訂されたレイアウトを生成し、その後でその改訂されたレイアウトはステップ505で新しい現用レイアウトになる。次に処理はステップ510に進むか、またはレジスタ・スライスnが除去されないと決定された場合はステップ510からステップ495に直接進む。ステップ510でnがnMAXに等しいか否か決定され、ノーであれば、ステップ515でnが1だけ増分された後、処理はステップ495に戻る。ステップ510でnがnMAX等しいと決定されると、処理はステップ405に戻り、処理の他の繰り返しで考慮される何らかの残りの仮レジスタ・スライスを選択が実行される。前述の通り、或る繰り返しで次の繰り返しのnMAXがゼロであると決定されると処理は終了し、ステップ415でバス相互接続ブロックのタイミングがダブルチェックされる。
上で説明した、設計の中で既に与えられている仮レジスタ・スライスを除去する方法には利点がある。何故ならば、上記方法は、空間が多く最適とはいえないレイアウトが得られるにすぎない結果となる設計の他の領域に混乱を与えることを必要とせずにレジスタ・スライスを除去できるからである。それだけでなく、レジスタ・スライスを除去するこの方法は、相互接続の性能として最悪ケースのモデルを仮定して、システムの性能に関する重要な解析を実施するこを可能にするとともに、この方法がシステム性能の総合特性の改善になるだけのはずであるということが判っているので、どのレジスタ・スライスを除去しても安全である。しかし、設計の中で仮レジスタ・スライスを追加するためと、これらのレジスタ・スライスをレイアウト段階中に除去することを追求するための代替方法として、レイアウト段階で処理を実行し、新しいレジスタ・スライスを導入すべきか否かを決定することが可能である。図8の流れ図を参照し、例を示してこのような処理を説明する。
ステップ600で、現在の設計に基づき現用レイアウトが生成される。次にステップ605でどの経路が許容不能であるか否か、つまり、信号がこれらの部分経路を横断するためにかかる時間がクロックサイクル周期TMAXより大きい部分経路がどの経路に含まれているか否か決定される、ノーであれば、訂正処置は不要であり、処理はステップ610で終了する。しかし、許容不能経路が存在していることが想定されると、処理はステップ615に進み、ここで選んだ基準が適用され許容不能経路を選択する。この処理を実行する方法がいくつかあることは理解されるであろう。たとえば、タイミングが最も長い、つまり、最も受け入れがたい許容不能経路を選択してもよいし、代替方法としてこの選択をランダムに実施してもよい。
この後で、処理はステップ620に進み、ここで経路にレジスタ・スライスが追加され試作レイアウトを生成した後、ステップ625でタイミング解析が実行され、相互接続ブロックの中に容認不能経路がいまも存在しているか否か決定する。ステップ615で選択された容認不能経路の中にレジスタ・スライスを追加することは、その経路のタイミング特性を改善することは明白であるが、その経路は依然として容認不能な経路である。さらにシステムの中には他の容認不能経路がたぶん存在しており、事実、レイアウト設計に付随する動きによって、このようなレジスタ・スライスを導入すると、いくつかの経路のタイミングに不都合な連鎖反応(knock-on adverse effect)が生じる可能性がある。ステップ625で相互接続ブロックの中に容認不能経路が1つも残っていないことが決定されると、処理はステップ630で終了するが、それ以外の場合、処理はステップ635に進み、ここで所定の基準が適用され、現用レイアウトに優先して試作レイアウトを受け入れるか否か決定する。いくつかの基準を使用してこの決定が実行されることは理解されるであろう。たとえば、試作レイアウトの中の最長容認不能経路(つまり、タイミングが最長の経路)のタイミングが、現用レイアウトの中の最長容認不能経路よりも小さい場合、試作レイアウトを受け入れると決定してもよい。代替方法として、またはそれに加えて、現用レイアウトの中の容認不能経路の総数に比較して試作レイアウトの中の容認不能経路の総数を検討してもよい。現用レイアウトと比較して試作レイアウトのタイミング特性が改善されているか否かを決定する場合、他の各種基準を検討してもよいことは理解されるであろう。
ステップ635で所定の基準を適用したことの次に、ステップ640で、所定の基準の適用の結果得られた決定に基づいて試作レイアウトを受け入れるか否か決定される。試作レイアウトを受け入れるべき場合、処理はステップ645に進み、ここで試作レイアウトが現用レイアウトになった後、処理はステップ615に戻って、さらなる容認不能経路を選択する。ステップ640で試作レイアウトを受け入れるべきではないと決定されると、処理はステップ650に分岐し、ここで試作レイアウトが廃棄され、かわりに以前の現用レイアウトが使用された後、処理はステップ615に進み異なる容認不能経路を選択する。ステップ615で適用された選んだ基準は、以前に選択されたが、バス相互接続ブロック全体のタイミング特性を改善しないと考えられる容認不能経路の記録をとっておくのが普通であることは理解されるであろう。
設計の中でレジスタ・スライスを追加する場合、レイアウトを修正してレジスタ・スライスを挿入する余地をつくらなければならないので、レジスタ・スライスを挿入すると、そのときレジスタ・スライスを選択的に除去した図6、7の代替的方法を使用していた設計の他の領域で連鎖反応が生じる可能性が大きいことは理解されるであろう。それにもかかわらず、どんな特定の実施例でも2つの方法を使用することができることは理解されるであろう。たとえば、設計のときに仮レジスタ・スライスを与え、後でこれらのレジスタ・スライスを選択的に除去する方法は、そのとき、必要なタイミング特性に合致するために必要と思われる何らかのレジスタ・スライスを選択的に挿入するために使用される図8の処理とともに、基本処理として使用されうる。
バス相互接続ブロックの中でレジスタ・スライスを使用する他の可能性は、システムの中のいくつかのマスタおよびスレーブ構成要素を分離することである。どの時点でどのマスタ・デバイスがスレーブ・デバイスにアクセスできるようにするかを制御するために使用されるマルチプレクサ720とともに、4個のスレーブ・デバイス730、740、750、760と相互接続される2つのマスタ・デバイス700、710を示す図9を参照して、この可能性をさらに考察する。ここでも判りやすくするため、図9にはアドレス経路だけが示されている。電力消費を改善することを追求するため、或る経路を候補経路として選択し、該経路を介してバス相互接続ブロックがマスタ・デバイスとスレーブ・デバイスのインタフェースをとることを含む処理を実行してもよい。つぎに所定の基準を適用し、その候補経路の中のレジスタ・スライスの存在(provision)によって関連するマスタ・デバイスまたはスレーブ・デバイスを他の構成要素から分離することが適切であるか否かを決定する。このステップでいくつかの基準を使用できることは理解されるであろう。通常、その経路に接続されたマスタ・デバイスまたはスレーブ・デバイスの数が多くなればなるほど、これらのマスタ・デバイスまたはスレーブ・デバイスによって使用される相互接続ブロックの帯域幅が小さくなって、電力消費のより大幅な節約が達成される。
一例として、図9のシステムを検討すると、システムの帯域幅の大部分はスレーブ・デバイス1 730に対するものであることが判る。次に、スレーブ・デバイス740、750および760に与えられた経路にレジスタ・スライス770を挿入することは利点があると考えられる。マスタ・デバイスから転送要求が発信されると、その転送要求は、マルチプレクサ720を介してスレーブ・デバイス1 730とレジスタ・スライス770の双方に接続される。バス相互接続ブロックの中の復号器によって何らかの初期アドレスの復号が実行され、その要求が、スレーブ・デバイス1またはスレーブ・デバイス2,3および4の1つに行くことになっているか否かを決定する。アクセス要求がスレーブ・デバイス2,3および4の1つに行くことになっている場合にのみ、レジスタ・スライス770はアドレスの有効信号(address valid signal)を受信して、受信した信号をレジスタ・スライスの中に格納する原因となる。したがって、レジスタ・スライスがなければ、その転送要求は、アドレス有効信号を受信するスレーブ・デバイスの1つがある4個のスレーブ・デバイスのすべてに対して伝搬してしまうであろうが、レジスタ・スライス770が存在すると、これらのスレーブ・デバイスの1つがアクセス要求の意図した受け手でない限り、スレーブ・デバイス2,3または4に対するアクセスをすべて回避することによって、電力消費が大幅に減少した。この利点の代償(trade-off)は、スレーブ・デバイス2,3または4にアクセスするためにより多くのクロックサイクルが必要なことであるが、これらのスレーブ・デバイスは比較的まれにアクセスされると仮定すると、電力節減の利点は、レジスタ・スライス770の存在を正当化することができることは理解されるであろう。
これまでに考察してきた実施例のすべては、設計の中でレジスタ・スライスを含めるか含めないかを設計時点で決定する手法に関連している。このような手法は、予見される(たとえば、動作条件、動作環境などの)動作特性の最悪ケースのセットを検討した設計をする場合に役立つが、その設計の通りにつくられた装置の1台1台は異なる動作条件で使われるとともに、異なる動作環境に置かれるので、装置は最適状態以下で使用されることになる。たとえば、特定のどの実施例における装置も、設計中に検討された目標クロック速度よりも遅いクロック速度で動作し、設計中に検討された電圧レベルとは異なる電圧レベルで使用される等々である。その上、製造公差は設計の通りにつくられた装置の1台1台の間の差異となり、このため各装置の動作環境と同様、動作特性の変動を発生させる。
このような異なる動作条件と動作特性にデータ処理装置が適応できるようにするため、1つの実施例におけるデータ処理装置は、図10に示すような、1つまたは複数の選択可能レジスタ・スライスを含む。図10から判るように、このような各選択可能レジスタ・スライス800には、選択可能レジスタ・スライス800を通る経路、または迂回経路810のいずれかの選択を可能にするために用意されているマルチプレクサ820とともに、迂回経路810が付随している。マルチプレクサ820は、セットアップ情報に基づき、選択可能レジスタ・スライス800または該レジスタ・スライスに付随する迂回経路810のいずれかの選択を制御するコントローラにより、コントローラから供給されるイネーブル信号によって駆動され、選択可能レジスタ・スライス800を使用すべきか否かについて、実行時に動的に決定することを可能にする。
レジスタ・スライス800を迂回することにより、信号が特定の接続を横断するために要するクロックサイクルの数を減らすことができるが、このことは、特定のクロックサイクル中に信号がさらに遠くまで横断することを必要とする。1つの動作モードにおけるデータ処理装置は、たとえば、リセットの後で各選択可能レジスタ・スライスを使用する初期設定になる。何故ならば、このことは、データ処理装置があらゆる条件で機能的に動作できることが保証されると、データ処理装置は、コントローラの制御のもとに動作を迂回モードへ切り替えて、その場合の動作条件が迂回モードの使用を可能にすると決定されると、選択可能レジスタ・スライス800は選択的に迂回されるからである。
図11は、データ処理装置がバス相互接続ブロックである状態における選択可能レジスタ・スライスの手法の代表的な実施例を示している。図11に示すように、2つのマスタ・デバイス830、840は、バス相互接続ブロックを介してそれぞれ4つのスレーブ・デバイス860、870、880、890と相互接続されている。基本的構造は、図5を参照して以前に説明した構造と同じであり、図5と同様、判りやすくするためにアドレス経路だけが示されている。しかしこの例では、選択可能レジスタ・スライス、835、845、855、865、875、885および895は、各マスタ・デバイスとスレーブ・デバイスに対するインタフェースとマルチプレクサ850の出力とに関連するバス相互接続ブロックの中に組み込まれている。コントローラ825は各選択可能レジスタ・スライスの一部を形成するマルチプレクサに対して必要な制御信号を発生するために用意されている。
選択可能レジスタ・スライスのすべてが使用されているので、信号がマスタ・デバイスからスレーブ・デバイスまで伝搬するために4クロックサイクル要することが図11から判る。しかし、一例として、コントローラによって使用されるセットアップ情報に基づいて、スレーブ・デバイス880に付随するレジスタ・スライス885を迂回できることが決定されると、これによってスレーブ・デバイス880に対するアクセスにかかる時間が1サイクルだけ少なくなる。同様に、マスタ・デバイス830に付随する選択可能レジスタ・スライス835を迂回できることをセットアップ情報が示していると、これによってそのスレーブ・デバイスからスレーブ・デバイスに転送要求を送るためにかかる時間が1サイクルだけ少なくなる。さらに選択可能レジスタ・スライス855を迂回できることをセットアップ情報が示していると、これによってスレーブ・デバイスからスレーブ・デバイスにあらゆる転送要求を送るためにかかる時間が、1サイクルだけ少なくなる。
図11に示すアドレス経路に加えて、マスタ・デバイスとスレーブ・デバイスの間に、上に説明したように両方向のデータ経路が用意されており、上に説明したような選択可能レジスタ・スライスがデータ経路に挿入されると、マスタ・デバイスからスレーブ・デバイスまで、またはスレーブ・デバイスからマスタ・デバイスまでの特定の接続の中の部分経路の数を変更できることは理解されるであろう。
したがって、このような設計により、実際の動作条件を検討してデータ処理装置の動作効率の改善を追求するために、生産後の装置に大幅なフレキシビリティが使用できることが判るであろう。
コントローラ825によるレジスタ・スライスの制御について、採用することができるいくつかの異なる方法がある。第1の実施例では、所定のセットアップ情報を使用するコントローラによって起動時のレジスタ・スライスの構成を実行することができる。この実施例におけるデータ処理装置、図11の例の中のバス相互接続ブロックは、その装置を使用する特定の実施例に注意して必要なレジスタ・スライスだけを含むように起動時に構成される。この所定のセットアップ情報は、各種実施例、たとえば、研究所の中の環境で特徴付けされたような(laboratory characterisation environment)実施例に対して決定されているのが普通である。したがって、図11の例を考えると、バス相互接続ブロックが移動電話機の中にあるシステムで使用され、比較的低クロック速度または比較的停電力で走行するとすれば、所定のセットアップ情報をその実施に対して使用することができ、起動時にコントローラを使用して選択すべき適切なレジスタ・スライスと、どのレジスタ・スライスを迂回すべきかを決定することができる。代替方法として、高速のクロック速度と大電力、またはそのいずれかで動作するコンピュータの中で実施されるシステムの中で同じバス相互接続ブロックが使用されることになっていると、選択可能レジスタ・スライスの適切な選択を決定するため、コントローラは、起動時に異なるセットの所定のセットアップ情報を参照することができる。
第2の実施例では、起動時にレジスタ・スライスの構成を再度実行することができるが、適切なセットアップ情報を決定するため実行する動的テストと一緒に実行される。この方法によれば、どの経路がレジスタ・スライスの使用を必要とするかを決定するために実行するテスト処理を起動シーケンスに含めることができる。普通、このテスト処理には、選択可能レジスタ・スライスを挿入するか除去するかによって影響を受ける経路を介して送られる各種信号の、タイミングテストの性能が含まれる。一例として図11を考えると、このテスト処理には、各種選択可能レジスタ・スライスのいくつかの異なる選択構成(たとえば、全レジスタ・スライスを選択する、いくつかのレジスタ・スライスを選択する、いくつかのレジスタ・スライスを迂回する、またはすべてのレジスタ・スライスを迂回する等々)を採用することと、選択構成ごとに、特定のレジスタ・スライスを迂回することによって影響を受ける経路を介して各種信号を送り、これらの信号が1クロックサイクル以内に影響を受けた部分経路を安全に横断することができるか否かを決定することを含むのが普通である。各選択構成は、データ処理装置のユニークな設計を効率的に定義し、特定の設計に関連するタイミングテストの性能は当業者によってよく理解されるであろうから、ここでさらに詳細に考察することはしない。テスト信号がそのレジスタ・スライスの迂回から生じる拡張された部分経路を1サイクル以内で横断できることをタイミングテストが確認すると、どの選択可能レジスタ・スライスも迂回できるにすぎないことは理解されるであろう。
動的テスト方法を使用する利点は、この方法によって各装置が、その動作環境に適応できるようになることである。しかし、1つの潜在的欠点は、動作温度や供給電圧のような動作特性の小さな変化でも機能的障害を発生させることができることである。しかし、これが発生する可能性は、テスト手続きを実行する場合にこのような変動を考慮することによって少なくなりうる。たとえば、データ処理装置が特定のクロック速度で動作することになっていると、テスト手続きを実行する場合、若干速くしたクロック速度を使用してもよいので、テスト手続きに合格したレジスタ・スライスの特定の構成が選択された場合、温度変化に起因するような動作特性の小変化によって生じる変動では機能的障害を発生しないと確信できるであろう。
たとえば、データ処理装置の製造前のタイミング特性の中に不確定性が存在する場合や、データ処理装置の信号完全性特性の中に不確定性が存在する場合のように、いくつかの異なるケースで、起動時の構成が適用可能なことは理解されるであろう。
第3の実施例では、第1の実施例を参照して以前に考察したように、所定のセットアップ情報を使用することができるが、動作条件が変化すると構成を動的に実行することができる。たとえば、各種クロック速度、各種供給電圧などに対して、異なる所定のセットアップを定義することができる。つぎに動作中に動作条件の変化が起こることになっていると、たとえば、正規の動作モードからスタンバイ動作モードに変化すると、コントローラを動的に呼び出し、新しい動作条件に適切な選択可能レジスタ・スライスだけを選択するために、新しい動作条件に適切な所定のセットアップ情報を適用する。この処理は、動作条件の変化がクロック速度の変化を含む場合の例を示す図12の流れ図によって模式的に示されている。
ステップ900でクロック速度の変化が必要か否かが決定され、イエスであれば、処理はステップ905に進み、ここでクロック速度が上昇しているか低下しているかが決定される。クロック速度が上昇していると、処理はステップ910に進み、ここでレジスタ・スライスコントローラ825が新しいクロック速度に適した新しい値でプログラムされる。これらの新しい値は、新しいクロック速度に適した所定のセットアップ情報から取り出される。これによって、コントローラが各種選択可能レジスタ・スライスに改訂したセットのイネーブル信号を出力し、これらの値に依存して各レジスタ・スライスを選択するか、迂回する。この後ステップ915で、クロック速度を新しいクロック速度に変更する。
クロック速度が上昇している時、クロック速度の変化に先立ち、レジスタ・スライスの選択を実行することが適切なことは明らかである。それ以外の場合はその間に機能的障害が発生するからである。しかし、クロック速度が低下している時、処理はステップ905からステップ920に分岐し、ここで第1にクロック速度が新しいクロック速度に変更される。いかなるクロック速度の低下も、信号が各部分経路を横断するために利用可能な時間を増やすので、この点でいかなる機能的障害にもならないから、クロック速度のこの変更を第1に実行することは安全である。この後ステップ925で、新しいクロック速度に用意された適切な所定のセットアップ情報から決定される新しいクロック速度に適した新しい値で、コントローラ825をプログラムすることができる。前に考察したように、これらの値は、改訂したイネーブル信号のセットになり選択可能レジスタ・スライスに送られると、これらの値によって定義されるとおり各レジスタ・スライスを選択するか、迂回する。
次に処理はステップ900に戻り、後に続くクロック速度の変化の検出を待つ。
図12は、クロック速度の変化について示しているが、同様なシーケンスの流れは、たとえば、供給電圧の変化のような他の動作条件の変化に対しても実行されうる。供給電圧が変化していれば、ステップ905に相当して実行する適切な決定は、供給電圧が低下しているか否かに関する決定であることは理解されるであろう。供給電圧が低下していると、これによって信号が特定の接続を横断する速度が遅くなるので、電圧が変化する前に新しい値でコントローラ825をプログラムしない限り、機能的障害が発生する可能性があることになる。
第4の実施例では、第2の実施例を参照して以前に説明したように、セットアップ情報を決定するため動的テスト手続きが実行されるが、この場合、動的テストは起動時にちょうど実行されるのではなく、動作条件が変化する場合と、動作条件を変更することになっている場合に動的に実行される。この方法の利点は、各装置が自装置の動作環境に適応できるようにするとともに、さらに異なる動作条件ごとに適切なセットアップを使用することを保証するため、動作条件の各種変化に注意することである。動的テスト手続きを使用して、このような動的構成を可能にするように実行することができる処理の例を、図13を参照してさらに考察する。
起動時に、あるいはクロック速度、供給電圧などのような動作条件の変更が要求されると、いつでも図13のテスト手続きが採用される。ステップ930でテスト手続きが開始すると、その後のステップ935で、すべての選択可能レジスタ・スライスに対して迂回経路がオフに切り替えられる。したがって、このため第1の繰り返しで構成はテスト手続きに合格することが保証される。何故ならば、選択可能レジスタ・スライスは設計の中で含まれており、たとえば、最高のクロック速度/最低の供給電圧の組み合わせのような信号タイミングに対して最悪の場合のシナリオが考慮されているからである。
ステップ940で変数nを1に等しく設定した後、ステップ945でレジスタ・スライスnの迂回経路をオンに切り替える。迂回することをテストすることが決まっている候補であるレジスタ・スライスの全数があり、ここではnMAXと呼ぶことにするが、このような各レジスタ・スライスの値は、nのユニークな値である。各レジスタ・スライスに付随するnの値は勝手に決めても良く、あるいは代替方法として、nが最低値のレジスタ・スライスが迂回の候補になる可能性が最も高いように選ぶことができることは理解されるであろう。
この後のステップ950で、レジスタ・スライスnの迂回経路を通過するすべての接続がタイミングテストを受ける。前に考察したように、普通、これには、これらの接続を介していろいろな信号を送信し、これらの信号が、1クロックサイクル以内に影響を受けた部分経路を安全に横断できる否かを決定することが含まれる。ステップ955で、すべての接続がテスト手続きに合格するか否か、つまり、すべての信号が1クロックサイクルで必要な部分経路を横断したか否かが決定される。イエスであれば、処理はステップ965に進み、ここでnがnMAXに等しいか否かが決定される。代替方法として、すべての接続がテスト手続きに合格するとは限らない場合、処理はステップ960を介してステップ965に進み、ここでレジスタ・スライスnの迂回経路をオフに切り替える。特定の接続に対するテストが失敗したとすれば、このことは、考慮中のレジスタ・スライスが迂回すべき適切なレジスタ・スライスではないことを示しているので、ステップ960で迂回経路をオフに切り替えることは、処置の適切な過程である。
ステップ965でnがnMAXに等しいことが決定されると、処理はステップ975で終了する。何故ならば、この場合、テストすることが適切であると考えられる選択可能レジスタ・スライスのすべては、テストが終わっているはずだからである。ステップ965でnがnMAXに等しくないことが決定されると、ステップ970でnが1だけ増分された後、処理はステップ945に戻る。
この方法により、特定の動作条件に適用できるレジスタ・スライスの適切な選択を決定するため、各レジスタ・スライスの迂回を順番にテストできることが判る。テスト手続きは遷移中の新しい条件に対して実行され、以前に説明したように、このテスト手続きを調整して、装置の動作環境の変動の結果として発生することがある何らかのタイミング変動の余裕をみておくことができることは理解されるであろう。
レジスタ・スライスまたは迂回経路のいずれかを動的に選択する考え方は、図11を参照して示したようなバス相互接続ブロックを組み込んだデータ処理装置に対してだけでなく、データ処理装置の他の構成要素に対しても適用可能である。たとえば、使う方法をパイプラインの各ステージで論理の量にアンバランスが存在するパイプライン型データ処理装置で、この選択可能レジスタ・スライスを使用することができる。このようなデータ処理装置が図14に示されており、この中で乗加算動作(multiply-accumulate operation)を実行するパイプラインが示されている。各パイプライン・ステージは、レジスタ・スライス1000、1010、1020、1030、1040によってそれぞれ区切られている。図から判るように、論理素子1005は、必要なオペランドの値をフェッチするために1つのパイプライン・ステージに用意されており、その後の論理素子1015および1025は乗算演算を実行するために用意されている。選択可能レジスタ・スライス1020が選択されると、この乗算は2つのパイプライン・ステージで実行される。しかし、選択可能レジスタ・スライス1020が迂回される場合、この乗算処理は1つのパイプライン・ステージで実行される。この後、論理素子1035は、さらにパイプライン・ステージで使用され累積演算を実行する。
図記14を参照して示すように選択可能なパイプライン・ステージを使用すると、パイプラインの深さがシステムの要求条件に合致するようになる。このような方法の利点は、この方法によると、1回の設計でいろいろな顧客の要求条件に合致するようになることである。たとえば、一人の顧客は「命令当たりのサイクル数(cycles per instruction:CPI)」を所望することがありうるが、低いクロック周波数を所望しているにすぎないこともありうる。つまり、この顧客は、完全な速度というよりもむしろ効率を所望しているのかもしれない。しかし、他の顧客は高いクロック周波数を所望することがあり、目標クロック速度を満足たすためCPIの増加を受け入れる準備がなされている。このような選択可能レジスタ・スライスの使用を通じて、両要求条件を満たすことができるので、要求条件に応じてこれらの選択可能レジスタ・スライスを選択してもよいし、迂回してもよい。
さらにこのような選択可能レジスタ・スライスを用意すると、動作条件にしたがってパイプラインの深さを動的に適応させることが可能になるが、とくに電圧とクロック速度に対するパイプラインの深さ(つまり、各演算を実行するためのクロックサイクルの数)の代償が不能される。動作条件を検討することが適切であると決定された場合は、このような変化が成立する方法がいくつか存在している。1つの実施例におけるパイプライン型データ処理装置は、最初に命令が排出された後、パイプライン型データ処理装置がさらに命令を受信する前に、選択可能レジスタ・スライスを適切に選択または迂回することによってステージの数を変えることができる。しかし、代替可能な実施例では、パイプラインの中に特定の命令が発行されると、変更を呼び出すことができる。
動作条件にしたがってパイプラインが動的に適応することが所望される2つの例は次の通りである。
1.システムが所定のクロック速度で動作することが必要であるが、(たとえば、完全な供給電圧を必要とするいくつかの構成要素が、現在電力消費量が下げられているため)電圧を下げることが所望される場合、パイプラインの深さを動的に大きくすると、プロセッサは、低下した電圧と同じクロック速度で動作できるようになる。
2.システムが一定の電圧で動作しているが、(たとえば、システムの現在の性能の要求条件が低くされているため)クロック周波数を下げることが可能になると、各サイクルで利用できる時間が増えるので、パイプラインの深さを動的に小さくすることが可能になり、したがってCPIを少なくしてシステムのエネルギ消費を改善する。
図15は、計算機プログラムを実行して上に説明した設計機能を実行するために使用される型式のコンピュータ2000を示している。コンピュータ2000は、中央処理装置2020、ランダム・アクセス・メモリ2040、読み取り専用メモリ2060、ハードディスクドライブ2080、ディスプレイドライバ2100とディスプレイ2120、ユーザ用入出力回路2140、キーボード2160、マウス2180およびネットワークインタフェース装置2200と、これらすべてを結合する共有バス2220を含む。動作する場合、中央処理装置2020は、自装置のワーキングメモリとしてランダム・アクセス・メモリ2040を使用して計算機プログラムを実行する。計算機プログラムは、読み取り専用メモリ2060、ハードディスクドライブ2080に格納されるか、あるいはネットワークインタフェース装置2200を介して遠隔発信元(remote source)から取り出される。コンピュータ2000はディスプレイドライバ2100とディスプレイ2120を介して、ユーザに処理動作の結果を表示する。コンピュータ2000は、ユーザ用入出力回路2140、キーボード2160およびマウス2180を介してユーザから制御入力を受信する。
本明細書で説明したバス相互接続ブロックの設計を修正するために使用するツールは、ハードディスクドライブ2080上のコンピュータシステム2000の中、ランダム・アクセス・メモリ2040の中、読み取り専用メモリ2060の中に格納された、あるいはネットワークインタフェース装置2200を介してダウンロードした1つまたは複数の計算機プログラムの形をとる。この計算機プログラムは、配布のために使用できるコンパクトディスクやフロッピー(登録商標)ディスクドライブのような記録媒体で提供される。上に説明した計算機プログラムに制御されて動作する場合、コンピュータ2000の各種構成要素は、上に説明した機能と動作を実行するための適切な回路と論理を提供する役目をする。図15に示すコンピュータ2000は、計算機プログラムと上に説明した方法を実行する型式のコンピュータの1つの例にすぎないことは理解されるであろう。
本明細書の中で特定の実施例を説明してきたが、本発明はこれらの実施例に限定されるものではなく、本発明の範囲内でこれらの実施例に対して修正や追加を実行できることは理解されるであろう。たとえば、本発明の範囲を逸脱することなく、独立請求項の特徴を用いて以下の従属請求項の特徴の各種組み合わせをつくることができるのである。
レジスタ・スライスの実施例を模式的に示す図である。 レジスタ・スライスを使用しないシステム例を示す図である。 レジスタ・スライスを組み込んだシステム例を示す図である。 データ処理装置の中でバス相互接続ブロックの使用を示すブロック図である。 1つの実施例にしたがってバス相互接続ブロックの使用を示すブロック図である。 1つの実施例にしたがって一時的レジスタ・スライスを除去するために使用する手法を示す流れ図である。 他の実施例にしたがって一時的レジスタ・スライスを除去するために実行する処理を示す流れ図である。 他の実施例にしたがって一時的レジスタ・スライスを除去するために実行する処理を示す流れ図である。 1つの実施例にしたがって特定の経路の中にレジスタ・スライスを挿入することが適切か否かを決定するために採用する手法を示す流れ図である。 電力消費を減らすため1つの実施例にしたがってバス相互接続ブロックの中のレジスタ・スライスの使用を模式的に示すブロック図である。 1つの実施例にしたがって選択可能レジスタ・スライスの実施を模式的に示す図である。 内部に選択可能レジスタ・スライスが使用されているバス相互接続ブロックの1つの実施例を示すブロック図である。 このような選択可能レジスタ・スライスを使用することが、図11のバス相互接続ブロックの動的構成を可能にして、動作条件の変化を検討できるようにする方法を示す流れ図である。 図11のバス相互接続ブロックの動的構成を可能にして、動作条件の変化を検討できるようにし、選択可能レジスタ・スライスの適切なセットアップを決定するため、その動作条件でテスト手続きを実行できるようにする代替方法を示す流れ図である。 内部に選択可能レジスタ・スライスが用意され、動作条件に依存するパイプライン・ステージの数の変更を可能にするパイプライン型データ処理装置を示す流れ図である。 内部で各種実施例の設計過程を実行することができるコンピュータシステムのブロック図である。
符号の説明
1、2、770、800 レジスタ・スライス
10、12、14 レジスタ・スライス記憶素子
835、845、855、865、875、885、895、1000、1010、1020、1030、1040 選択可能レジスタ・スライス
20、1005、1015、1025、1035 論理素子
810 迂回経路
22 レジスタ
205、215、225、235、245、255、265 レジスタ・スライスの潜在的設置場所
16、260、720、820、850 マルチプレクサ
825 コントローラ
13、15 経路
35、70 アドレス経路
45、80 データ経路
17 制御経路
100 シリコンオンチップ設計
30、120、130、140、200、210、700、710、830、840 マスタ・デバイス
40、160、170、180、220、230、240、250、730、740、750、760、860、870、880、890 スレーブ・デバイス
125、135、145、165、175、185 マスタ、スレーブ間のバス
150 相互接続ブロック
15 バス相互接続ブロック
2000 コンピュータ
2020 CPU
2040 RAM
2060 ROM
2080 HDD
2100 ディスプレイドライバ
2120 ディスプレイ
2140 ユーザ用入出力ユニット
2160 キーボード
2180 マウス
2200 ネットワークインタフェース
2200 共通バス

Claims (19)

  1. データを処理する複数の論理素子と、
    データを一時的に格納する複数の記憶素子と、
    各接続が前記記憶素子によって分離された1つまたは複数の部分経路を含み、各部分経路がデータによって1クロックサイクルで横断可能であるように前記記憶素子が配置された複数の接続であって、該複数の接続を介して前記論理素子の間でデータが転送される複数の接続と、
    迂回経路が付随する選択可能な記憶素子であるいくつかの前記記憶素子と、
    1つまたは複数の前記接続の中の前記部分経路の数の変化を可能にして、前記選択可能な記憶素子を迂回することによって生じる修正された部分経路が、前記データによって1クロックサイクルで横断可能な場合に迂回経路が選択可能であるために、動作速度の表示から取り出されたセットアップ情報に基づいて、各選択可能な記憶素子または該素子に付随する迂回経路を制御するコントローラと、
    を含むデータ処理装置。
  2. 請求項1に記載の装置において、前記コントローラは、前記装置が初期化されるとき、各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するように動作可能であり、前記選択は所定のセットアップ情報にしたがって実行される前記装置。
  3. 請求項1に記載の装置であって、各動作条件が該動作条件に付随して対応するセットアップ情報を有する、複数の異なる動作条件を有する前記装置において、前記コントローラは、前記動作条件が現在の条件から新しい条件に変化するたびに、新しい条件に適用可能な対応する所定のセットアップ情報にしたがって、各選択可能な記憶素子または該素子に付随する迂回経路の前記選択を制御するように動作可能である前記装置。
  4. 請求項1に記載の装置において、前記コントローラは、前記装置が初期化されるとき、各選択可能な記憶素子または該素子に付随する迂回経路の選択を制御するように動作可能であり、前記選択は、テスト手続きを実行することによって取得されたセットアップ情報にしたがって実行され、テスト手続きの実行中に、前記選択可能な記憶素子の1つまたは複数の選択構成に対するいくつかの前記接続を介してテストデータが転送される前記装置。
  5. 請求項1に記載の装置において、前記装置は、前記動作条件が現在の条件から新しい条件に変化するたびに、複数の異なる動作条件を有し、前記コントローラは、前記テスト手続きを実行することによって取得されたセットアップ情報にしたがって、各選択可能な記憶素子または該素子に付随する迂回経路の前記選択を制御するように動作可能であり、テスト手続きの実行中に、前記選択可能な記憶素子の1つまたは複数の選択構成に対するいくつかの前記接続を介してテストデータが転送され、前記テスト手続きは前記新しい条件に依存する前記装置。
  6. 請求項5に記載の装置において、前記テスト手続きは、前記装置の前記動作環境の結果として発生することがある何らかのタイミング変動の余裕をみておくように選ばれる前記装置。
  7. 請求項3に記載の装置において、前記各種動作条件は、各種クロック周波数または各種供給電圧を採用する前記装置。
  8. 請求項1に記載の装置において、各選択可能な記憶素子は、該素子に関連するマルチプレクサを有し、前記マルチプレクサは、前記選択可能な記憶素子または該素子に付随する迂回経路のいずれかの選択を制御する前記コントローラによって制御される前記装置。
  9. 請求項1に記載の装置において、前記複数の接続、前記複数の記憶素子および前記コントローラは、前記論理素子の間でデータを経路指定するように動作可能な相互接続ブロックの中に用意される前記装置。
  10. 請求項1に記載の装置であって、パイプライン型データ処理装置である前記装置において、前記コントローラは、前記パイプライン型データ処理装置のパイプライン・ステージの数を変更するため、セットアップ情報に基づいて各選択可能な記憶素子または該素子に付随する迂回経路の前記選択を制御することができる前記装置。
  11. 請求項1に記載の装置において、前記選択可能な記憶素子は、関連する部分経路を介して受信された信号のグループを格納するように動作可能なレジスタ・スライスである前記装置。
  12. データを処理する複数の論理素子と、データを一時的に格納する複数の記憶素子と、各接続が前記記憶素子によって分離される1つまたは複数の部分経路とを含み、各部分経路が前記データによって1クロックサイクルで横断可能であるように前記記憶素子が配置された複数の接続であって、該複数の接続を介して前記論理素子の間でデータが転送される複数の接続とを含むデータ処理装置を構成する方法であって、
    (a)いくつかの前記記憶素子を、迂回経路が付随する選択可能な記憶素子であるように配置するステップと、
    (b)1つまたは複数の前記接続の中の前記部分経路の数の変化を可能にして、前記選択可能な記憶素子を迂回することによって生じる修正された部分経路が、前記データによって1クロックサイクルで横断可能な場合に迂回経路が選択可能であるために、動作速度の表示から取り出されたセットアップ情報に基づいて、各選択可能な記憶素子または該素子に付随する迂回経路を制御するステップと、
    を含む方法。
  13. 請求項12に記載の方法において、前記ステップ(b)は、前記装置が初期化されるとき実行され、前記選択は所定のセットアップ情報にしたがって実行される前記方法。
  14. 請求項12に記載の方法において、前記装置は、各動作条件が、該動作条件に関連して対応する所定のセットアップ情報を有する複数の異なる動作条件を有し、前記ステップ(b)は、前記動作条件が現在の条件から新しい条件に変わることになるたびに実行され、各選択可能な記憶素子または該素子に付随する迂回経路の前記選択は、前記新しい条件に適用可能な対応する所定のセットアップ情報にしたがって実行される前記方法。
  15. 請求項12に記載の方法において、前記ステップ(b)は、前記装置が初期化されるときに実行され、
    前記ステップ(b)で使用される前記セットアップ情報を取得するために、テスト手続き中に前記選択可能な記憶素子の1つまたは複数の選択構成に対するいくつかの前記接続を介してテストデータが転送される前記テスト手続きを実行することを含む前記方法。
  16. 請求項12に記載の方法において、前記装置は複数の異なる動作条件を有し、前記ステップ(b)は、前記動作条件が現在の条件から新しい条件に変わることになるたびに実行される方法であって、
    前記ステップ(b)で使用される前記セットアップ情報を取得するために、前記選択可能な記憶素子の1つまたは複数の選択構成に対するいくつかの前記接続を介してテストデータが転送される前記テスト手続きを実行し、前記テスト手続きは、前記新しい条件に依存するステップと、
    を含む前記前記方法。
  17. 請求項16に記載の方法において、前記テスト手続きは、前記装置の前記動作環境の結果として発生することがある何らかのタイミング変動の余裕をみておくように選ばれる前記方法。
  18. 請求項14に記載の方法において、前記各種動作条件は、各種クロック周波数または各種供給電圧を採用する前記方法。
  19. 請求項12に記載の方法において、前記選択可能な記憶素子は、関連する部分経路を介して受信された信号のグループを格納するように動作可能なレジスタ・スライスである前記方法。
JP2004146753A 2003-06-12 2004-05-17 データ処理装置を使用する場合のフレキシビリティの改善 Expired - Fee Related JP4076973B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0313645A GB2402760B (en) 2003-06-12 2003-06-12 Improvements in flexibility of use of a data processing apparatus

Publications (2)

Publication Number Publication Date
JP2005011324A true JP2005011324A (ja) 2005-01-13
JP4076973B2 JP4076973B2 (ja) 2008-04-16

Family

ID=27589998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004146753A Expired - Fee Related JP4076973B2 (ja) 2003-06-12 2004-05-17 データ処理装置を使用する場合のフレキシビリティの改善

Country Status (3)

Country Link
US (1) US7069376B2 (ja)
JP (1) JP4076973B2 (ja)
GB (1) GB2402760B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018265A (ja) * 2005-07-07 2007-01-25 Canon Inc バスシステム及びその制御方法
JP2007140686A (ja) * 2005-11-15 2007-06-07 Canon Inc バスシステム及びその切替方法
JP2007219968A (ja) * 2006-02-20 2007-08-30 Fujitsu Ltd バスインタフェースラッパー回路
WO2008142750A1 (ja) * 2007-05-17 2008-11-27 Fujitsu Limited 演算ユニット、プロセッサ及びプロセッサアーキテクチャ

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618817B1 (ko) * 2003-12-17 2006-08-31 삼성전자주식회사 소비 전력을 절감시키는 amba 버스 구조 시스템 및 그방법
JP2006048530A (ja) * 2004-08-06 2006-02-16 Fujitsu Ltd バススイッチ回路及びバススイッチシステム
US7640383B2 (en) * 2004-11-05 2009-12-29 Via Technologies Inc. Method and related apparatus for configuring lanes to access ports
US7250784B2 (en) 2005-06-29 2007-07-31 Marvell International Ltd. Integrated systems testing
US7461187B2 (en) * 2005-07-07 2008-12-02 Canon Kabushiki Kaisha Bus system and data transfer method
US7253652B2 (en) * 2005-07-26 2007-08-07 Marvell International Ltd. Integrated systems testing
EP1830268B1 (en) * 2006-03-03 2019-05-08 STMicroelectronics (Research & Development) Limited Multiple purpose integrated circuit
US8619554B2 (en) * 2006-08-04 2013-12-31 Arm Limited Interconnecting initiator devices and recipient devices
GB0709911D0 (en) * 2007-05-23 2007-07-04 Advanced Risc Mach Ltd Data processing apparatus and method for controlling a transfer of payload data over a communication channel
JP5538838B2 (ja) * 2009-11-25 2014-07-02 ルネサスエレクトロニクス株式会社 半導体装置およびその製造方法
US9063734B2 (en) 2012-09-07 2015-06-23 Atmel Corporation Microcontroller input/output connector state retention in low-power modes
US9250690B2 (en) * 2012-09-10 2016-02-02 Atmel Corporation Low-power modes of microcontroller operation with access to configurable input/output connectors
US9519486B1 (en) * 2012-11-21 2016-12-13 Xilinx, Inc. Method of and device for processing data using a pipeline of processing blocks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2549622B1 (fr) * 1983-07-22 1985-10-04 Thomson Csf Cellule et circuit de calcul a architecture systolique utilisant de telles cellules
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
WO1993001546A1 (en) * 1991-07-08 1993-01-21 Seiko Epson Corporation Extensible risc microprocessor architecture
US5481736A (en) * 1993-02-17 1996-01-02 Hughes Aircraft Company Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
US5426379A (en) * 1994-07-29 1995-06-20 Xilinx, Inc. Field programmable gate array with built-in bitstream data expansion
US6107822A (en) * 1996-04-09 2000-08-22 Altera Corporation Logic element for a programmable logic integrated circuit
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6128749A (en) * 1998-11-03 2000-10-03 Intel Corporation Cross-clock domain data transfer method and apparatus
GB2402761B (en) * 2003-06-12 2006-02-22 Advanced Risc Mach Ltd Improvements in flexibility of a bus interconnect block for a data processing apparatus
US7132852B2 (en) * 2004-04-14 2006-11-07 Altera Corporation Routing architecture with high speed I/O bypass path

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007018265A (ja) * 2005-07-07 2007-01-25 Canon Inc バスシステム及びその制御方法
JP2007140686A (ja) * 2005-11-15 2007-06-07 Canon Inc バスシステム及びその切替方法
JP2007219968A (ja) * 2006-02-20 2007-08-30 Fujitsu Ltd バスインタフェースラッパー回路
WO2008142750A1 (ja) * 2007-05-17 2008-11-27 Fujitsu Limited 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
US8281113B2 (en) 2007-05-17 2012-10-02 Fujitsu Limited Processor having ALU with dynamically transparent pipeline stages
JP5126226B2 (ja) * 2007-05-17 2013-01-23 富士通株式会社 演算ユニット、プロセッサ及びプロセッサアーキテクチャ

Also Published As

Publication number Publication date
US7069376B2 (en) 2006-06-27
US20040251954A1 (en) 2004-12-16
GB0313645D0 (en) 2003-07-16
GB2402760B (en) 2006-01-11
GB2402760A (en) 2004-12-15
JP4076973B2 (ja) 2008-04-16

Similar Documents

Publication Publication Date Title
JP4272108B2 (ja) データ処理装置用バス相互接続ブロックの設計に関するフレキシビリティの改善
JP4076973B2 (ja) データ処理装置を使用する場合のフレキシビリティの改善
US7290075B2 (en) Performing arbitration in a data processing apparatus
JP3587256B2 (ja) コンピュータ装置
US7251803B2 (en) Memory re-implementation for field programmable gate arrays
JP4007483B2 (ja) 高位合成装置および高位合成方法
US20160042099A1 (en) Behavioral synthesis apparatus, behavioral synthesis method, data processing system including behavioral synthesis apparatus, and non-transitory computer readable medium storing behavioral synthesis program
US7606698B1 (en) Method and apparatus for sharing data between discrete clusters of processors
US20080235707A1 (en) Data processing apparatus and method for performing multi-cycle arbitration
US7415689B2 (en) Automatic configuration of a microprocessor influenced by an input program
US7216326B2 (en) Resource activity aware system for determining a resource interconnection pattern within an essentially digital device and devices created therewith
US6505340B2 (en) Circuit synthesis method
US6604163B1 (en) Interconnection of digital signal processor with program memory and external devices using a shared bus interface
JP2007183942A (ja) 非アクティブ動作状態を有するプロセッサ及びその方法
US7636817B1 (en) Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system
US8732368B1 (en) Control system for resource selection between or among conjoined-cores
JP5241218B2 (ja) 半導体集積回路設計支援システム並びに半導体集積回路設計支援プログラム
EP1550950A1 (en) Semiconductor device
JP5458622B2 (ja) 動作合成装置、動作合成方法、及び、プログラム
JPS6113607B2 (ja)
JP2002082829A (ja) 消費電力制御装置及び消費電力制御方法
JP2000137677A (ja) レジスタアクセス回路、及びこのレジスタアクセス回路を用いたデ―タ処理方法
JP2002229921A (ja) インタフェース回路、論理回路検証方法、論理装置、情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080130

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110208

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110208

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120208

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130208

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130208

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140208

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees