JP2009527810A - 非同期コンピュータ通信 - Google Patents

非同期コンピュータ通信 Download PDF

Info

Publication number
JP2009527810A
JP2009527810A JP2008555355A JP2008555355A JP2009527810A JP 2009527810 A JP2009527810 A JP 2009527810A JP 2008555355 A JP2008555355 A JP 2008555355A JP 2008555355 A JP2008555355 A JP 2008555355A JP 2009527810 A JP2009527810 A JP 2009527810A
Authority
JP
Japan
Prior art keywords
computer
signal line
computers
read
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008555355A
Other languages
English (en)
Other versions
JP2009527810A5 (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
Priority claimed from US11/355,495 external-priority patent/US7904615B2/en
Priority claimed from US11/355,513 external-priority patent/US7904695B2/en
Application filed by ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー filed Critical ブイエヌエス ポートフォリオ リミテッド ライアビリティ カンパニー
Publication of JP2009527810A publication Critical patent/JP2009527810A/ja
Publication of JP2009527810A5 publication Critical patent/JP2009527810A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3246Power saving characterised by the action undertaken by software initiated power-off
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead

Abstract

コンピュータアレイ(10)が、複数のコンピュータ(12)を有する。コンピュータ(12)は、互いと非同期に通信し、コンピュータ(12)自体は、内部的に全般的に非同期の形で動作する。あるコンピュータ(12)は、別のコンピュータとの通信を試みるときに、他方のコンピュータ(12)がそのトランザクションを完了する準備ができるまで眠り、これによって、電力を節約し、熱発生量を減らす。複数の読取信号線(18)、書込信号線(20)、およびデータ信号線(22)が、コンピュータ(12)を相互接続する。一方のコンピュータ(12)が、読取信号線(18)をハイにセットし、他方のコンピュータが、対応する書込信号線(20)をセットするときに、データが、データ信号線(22)上で転送される。読取信号線(18)と対応する書込信号線(20)との両方がロウになるときに、これによって、両方の通信するコンピュータ(12)が、その通信が完了したことを知ることが可能になる。肯定応答信号線(72)は、コンピュータ(12)を再始動するためにハイになる。

Description

本発明は、コンピュータおよびコンピュータプロセッサの分野に関し、より具体的には、個々のコンピュータを構成する方法および手段、さらに、コンピュータ同士を接続し、全体的な速度および、より具体的には組合せの効率が、最適化されるようにする方法および手段に関する。本発明のコンピュータアレイの優勢な現在の用途は、計算能力と電力消費との両方が重要な考慮事項である、単一マイクロチップ上の複数のコンピュータの組合せにある。
コンピューティングの分野では、処理速度が、非常に望まれる品質の一つであり、より高速のコンピュータおよびプロセッサを作成するための探求が、進行中である。しかし、少なくとも現在既知のテクノロジを使用するならば、マイクロプロセッサにおける速度向上の限界にすぐに到達するということが、産業界で一般に認められている。したがって、プロセッサの間でコンピュータタスクを共用することによって全体的なコンピュータ速度を高めるために複数のプロセッサを使用することへの関心が高まっている。しかし、ほとんど不可避的に、ワークロードの共用に伴う全体的な効率のいくらかの劣化があることも、一般に認められている。すなわち、1人の人が門柱の穴を60分で掘ることができるからといって、必ずしも60人の人が1分で門柱の穴を掘ることができるということにはならない、という古い諺があてはまる。同一の原理が、タスクのほとんどすべての分割にあてはまり、プロセッサ間のタスクの分割は、例外ではない。
もちろん、コンピュータプロセッサの間でのタスクの共用をより効率的にするための努力が、行われつつある。正確にどのようにタスクを割り振らなければならないかという問題が、調べられつつあり、プロセスが、改善されつつある。しかし、実装がどれほど賢いものであろうとも、そのような配置で少なくともいくらかの「浪費される」プロセッサ能力がなくなると期待する人はいない。
複数プロセッサコンピュータでの高いレベルの効率の欠如は、必ずしも、コンピュータチップまたはコンピュータシステムの全体的な計算能力に対する大きい妨害ではない。効率の欠如は、一般に、使用可能なプロセッサおよび処理能力の完全に盲目的な増加によって簡単に克服することができる。しかし、この解決策は、もう1つの問題につながる。すなわち、非常に多数のプロセッサおよび関連する構成要素は、増え続ける熱量を生み出す。熱は、現在の高性能単一プロセッサコンピュータチップにおいてさえすでに問題である。これらのチップは、正常に動作するだけのために、ファンおよび水冷など、特別な冷却手段を必要とする。したがって、より強力な単一プロセッサを小型ハンドヘルドデバイス、小型特定用途向けディジタル機器、および類似物で使用することは、実用的に不可能になってきた。現在単一チップ上で通常使用されているタイプの複数のプロセッサを組み合わせるという発想は、これを支援する最も特別な手段を使用する場合であっても、生成される熱を発散するのに適したパッケージの物理的限界を超えると思われる。
上で述べた熱の問題は、産業界で周知である。多大な努力が、この問題に対処するために行われつつある。提案された解決策には、効率を改善し、これによって必要なプロセッサの個数およびサイズを減らす方法と、個々のプロセッサの電力消費を減らす方法とが含まれてきた。しかし、この問題に対する究極の解決策がまだ見つかっていないことが、一般に認められている。この問題は、そのようなプロセッサを小型ハンドヘルドデバイスに適用する、産業界における傾向によって、さらに複雑になる。熱発散問題は、より大きいコンピュータパッケージにおいて十分に難しいが、非常に小さいデバイスのサイズおよびその熱発散表面の固有の欠如を考慮するときには、ほとんど克服不能と思われる。また、電力消費の問題は、熱発生量の問題と関連して起こる。明らかに、浪費された熱発生量は、浪費された電力消費を意味する。これは、常に望ましくないが、小さい電池駆動デバイスにおいては、受け入れることができない。
明らかに、大量の電力を消費せず、大量の熱を生じずに、大量の計算能力を提供する形を見つけることが、有利であるはずである。しかし、本発明者の知る限り、満足な解決策は、本発明の前には知られていない。
したがって、本発明の目的は、コンピュータ処理速度を高める装置および方法を提供することである。
本発明のもう1つの目的は、多くの計算能力を安価に提供する装置および方法を提供することである。
本発明のもう1つの目的は、複数コンピュータアレイの動作速度を高める装置および方法を提供することである。
本発明のもう1つの目的は、コンピュータで集約的なタスクを達成するための装置および方法を提供することである。
本発明のもう1つの目的は、大量の電力を消費せずに大量の処理能力を生むコンピュータデバイスを提供することである。
本発明のもう1つの目的は、大量の熱を生じずに大量の処理能力を生むコンピュータデバイスを提供することである。
簡潔には、本発明の知り得る実施形態は、各コンピュータがそれ自体のメモリを有し独立の計算機能を有するコンピュータのアレイである。協力してタスクを達成するために、これらのコンピュータは、あるコンピュータから別のコンピュータにデータおよび/または命令を渡さなければならない。同時に働くコンピュータのすべてが、通常、ほとんどのタスクによって要求されるものよりもはるかに高い計算能力を備え、複数のコンピュータの間でタスクを分散するのに使用されるどのようなアルゴリズムまたは方法であっても、ほとんど確実に割り当ての不均等な分配をもたらすので、少なくともいくつかの、おそらくはほとんどの、コンピュータが、どの所与のときにもタスクの達成に能動的に参加しないであろうと予期される。不必要な電力の消費および不必要な熱の発生を防ぐために、コンピュータがその近傍のうちの1つまたは複数との通信を試みるときに、そのコンピュータは、近傍または近傍のうちの1つが通信を完了するために働くまで、本質的に電力を消費しない休眠モードになる。
本明細書で説明するように、コンピュータ間の通信は、クロックまたは類似物によって刻時されないという点で非同期である。刻時されるのではなく、通信は、リソースが使用可能になるときに、開始と完了との両方を行われる。すなわち、コンピュータは、データの送出を開始すること、あるいはそのプログラミングがそうするように指示するときにデータを受け取る準備ができている状態にそれ自体を置くことのいずれかを行う。その後、そのコンピュータまたはそのコンピュータが通信を試みている選択されたコンピュータのうちの1つが、その通信を完了する準備ができたときに、そのコンピュータはそれを行う。
所望の電力の節約および熱発散の減少を達成するためには、開始するコンピュータが、通信の完了を待っている間にその電力消費を止めるか、少なくとも大幅に減らすことが望ましい。これは、複数の形で達成できると考えられる。たとえば、そのコンピュータが、内部クロックまたは外部クロックのいずれかによって刻時される場合に、そのクロックを、その時間の期間中に低速化するか停止することができる。しかし、本明細書で説明される本発明の実施形態によれば、コンピュータは、それ自体が内部的に非同期に動作している。すなわち、コンピュータを駆動するクロックタイプの信号はない(本明細書で述べる1つの例外がある)。コンピュータが次の動作を待っている間に本質的に電力(少量の漏れ電流によって消費されるものを除く)が使用されない状態で停止することが、そのような非同期デバイスの自然な状態である。
本発明によれば、コンピュータ間の完全な非同期動作は、肯定応答動作の使用を介してもたらされる。すなわち、通信が刻時される従来技術では、デバイス間の通信は、一般に、刻時信号に対して相対的に特定の時刻に発生したと仮定される。送出側コンピュータは、一般に、そのデータが受取側コンピュータによって受け取られたことを確認する直接のポジティブフィードバックを一切有しないはずである。しかし、本発明によれば、あるコンピュータが、送出を試みることまたは受取を試みることのいずれかによって通信を試み、その後、もう1つのコンピュータが、受け取ることによってまたは送ることによってのいずれかでその動作を完了するときに、送出側コンピュータのアクションが、受取側コンピュータによって肯定応答され、両方のコンピュータが、そのトランザクションが完了したことを知るようになる。本発明の本実施形態では、この肯定応答は、この肯定応答動作を達成する際にデータサイクルまたは時間が浪費されないように、制御信号線をロウ(low)にすることによって達成される。しかし、本発明者は、通信の完了を肯定応答する動作が、デバイスが固有に内部的に非同期であるか否かにかかわりなく、さらに、デバイスが普通の電子回路、分子原理(molecular principles)、または現存するか将来に開発される他のすべての原理に基づく可能性があるかどうかにすらかかわりなく、本質的にデバイス間の任意の非同期通信に適用可能であると考える。
本発明の上記および他の目的は、本明細書で説明され、図面の複数の図に示された、本発明を実行する態様の説明およびその産業上の利用可能性に鑑みて、当業者に明白になるであろう。リストされた目的および利点は、本発明のすべての可能な利点の網羅的なリストではない。さらに、所期の目的および/または利点のうちの1つまたは複数が応用例に存在しないか不要である可能性がある場合であっても、本発明を実施することが可能である。
さらに、当業者は、本発明のさまざまな実施形態が、説明される目的および/または利点の、必ずしもすべてではなく1つまたは複数を達成できることを認めるであろう。したがって、本明細書に記載の目的および/または利点は、本発明の本質的要素ではなく、限定と解釈されてはならない。
本発明を、図面を参照して次の説明で説明するが、図面では、類似する符号が、同一の要素または類似する要素を表す。本発明を、本発明の目的を達成する態様に関して説明するが、当業者は、本発明の趣旨または範囲から逸脱せずにこれらの教示に鑑みて変形形態を達成できることを諒解するであろう。
本明細書で説明され、かつ/または図面に示された実施形態および変形形態は、例としてのみ提示されるものであって、本発明の範囲を限定するものではない。そうでないと特に述べられない限り、本発明の個々の態様および構成要素は、省略するか変更することができ、あるいは、それゆえに既知の同等物を置換することができ、または将来に開発され得るものなどもしくは将来に受け入れられる置換物であることがわかる可能性があるものなどの未知の置換物として存在することができる。本発明は、潜在的応用の範囲が非常に大きく、本発明が多数のそのような変形形態に適用可能であることが意図されているので、請求される発明の趣旨および範囲の中に留まりながら、さまざまな応用のために変更されることも可能である。
本発明を実施するための知り得る態様は、個々のコンピュータのアレイである。本発明のコンピュータアレイは、図1の概略図に示され、図1では全般的符号10によって指定されている。コンピュータアレイ10は、複数(図示の例では24個)のコンピュータ12(時々、アレイの例で「コア」または「ノード」とも称する)を有する。図示の例では、コンピュータ12のすべてが、単一のダイ14上に置かれている。本発明によれば、コンピュータ12のそれぞれは、後でより詳細に述べるように、一般に独立に機能するコンピュータである。コンピュータ12は、複数の(その量は、後で詳細に述べる)相互接続するデータバス16によって相互接続される。この例では、データバス16が、両方向非同期高速並列データバスであるが、他の相互接続する手段をこの目的に使用することは、本発明の範囲内である。アレイ10の本実施形態では、コンピュータ12間のデータ通信が非同期であるだけではなく、個々のコンピュータ12も、内部的に非同期モードで動作する。これは、本発明者によって、重要な利点をもたらすことが見つけられている。たとえば、クロック信号を、コンピュータアレイ10全体に分配する必要がないので、大量の電力が、節約される。さらに、クロック信号を分配する必要がないことは、アレイ10のサイズを制限し得る、または他の既知の問題を引き起こし得る多数のタイミング問題を除去する。
当業者は、図を明瞭にするために図1の図から省略されている、ダイ14上の追加構成要素があることを認めるであろう。そのような追加構成要素に、電力バス、外部接続パッド、およびマイクロプロセッサチップの他のそのような共通の態様が含まれる。
コンピュータ12eは、アレイ10の周囲部にあるのではないコンピュータ12のうちの1つの例である。すなわち、コンピュータ12eは、4つの直交に近接するコンピュータ12a、12b、12c、および12dを有する。コンピュータ12aから12eのこのグループ化は、下で、アレイ10のコンピュータ12の間の通信のより詳細な議論に関して使用される。図1の図からわかるように、コンピュータ12eなどの内側コンピュータは、4つの他のコンピュータ12を有し、この4つの他のコンピュータと、バス16を介して直接に通信することができる。次の議論では、述べられる原理は、アレイ10の周辺部にあるコンピュータ12が3つの他のコンピュータだけと直接に通信し、角のコンピュータ12の場合にはコンピュータ12のうちの他の2つだけと直接に通信することを除いて、コンピュータ12のすべてにあてはまる。
図2は、図1の一部のより詳細な図で、コンピュータ12のうちの一部だけを示し、具体的にはコンピュータ12aから12eまでを示す。図2の図には、それぞれが読取信号線18、書込信号線20、および複数の(この例では18本の)データ信号線22を有するデータバス16も示されている。データ信号線22は、1つの18ビット命令ワードの全ビットを全般的に同時に並列に転送することができる。本発明の一実施形態で、コンピュータ12のうちのいくつかが、近接するコンピュータのミラーイメージであることに留意されたい。しかし、コンピュータ12が、すべてが同一にまたは近接コンピュータのミラーイメージとして配置されているかどうかは、ここで説明されている発明の態様ではない。したがって、本発明をよりよく説明するために、この潜在的な複雑化は、本明細書ではこれ以上述べない。
本発明の方法によれば、コンピュータ12eなどのコンピュータ12は、その読取信号線18のうちの1つ、2つ、3つ、または4つすべてをセットし、各々の1つ、2つ、3つ、または4つすべての近接するコンピュータ12からデータを受け取る準備をすることができる。同様に、コンピュータ12が、その書込信号線20のうちの1つ、2つ、3つ、または4つすべてをハイ(high)にセットすることも可能である。本発明者は、コンピュータ12の書込信号線20のうちの複数を一時にハイにセットすることに現時点でなんらかの実用的価値があると考えてはいないが、そのような動作の使用が発生し得ると考えられるので、それを行うことは、本発明の範囲を逸脱しない。
近接するコンピュータ12a、12b、12c、または12dのうちの1つが、それ自体とコンピュータ12eとの間の書込信号線20をハイにセットしたときに、コンピュータ12eが対応する読取信号線18をすでにハイにセットしている場合には、ワードが、関連するデータ信号線22上でそのコンピュータ12a、12b、12c、または12dからコンピュータ12eに転送される。その後、送出側コンピュータ12は、書込信号線20を解放し、受取側コンピュータ(この例では12e)は、書込信号線20と読取信号線18との両方をロウにプルする。後者のアクションは、送出側コンピュータ12に、データが受け取られたことを肯定応答する。上の説明が、必ずしも順番のイベントのシーケンスを表すことを意図されていないことに留意されたい。実際の実装では、この例では受取側コンピュータが、送出側コンピュータ12がその書込信号線20を解放する(ハイにプルするのを止める)よりわずかに前に書込信号線20をロウにセットすることを試みる場合がある。そのような場合に、送出側コンピュータ12がその書込信号線20を解放するや否や、書込信号線20は、受取側コンピュータ12eによってロウにプルされる。
本例では、プログラミングエラーだけが、バス16のうちの1つの両端の両方のコンピュータ12がそれらの間の読取信号線18をハイにセットすることを試みることを引き起こすはずである。また、バス16のうちの1つの両端の両方のコンピュータ12が同時にそれらの間の読取信号線18をハイにセットすることを試みることは、エラーのはずである。同様に、上で述べたように、単一のコンピュータ12にその4つの書込信号線20のうちの複数をハイにセットさせることが望ましいことであるとは、現時点では予期されていない。しかし、ここでは、コンピュータ12のうちの1つが、その対応する書込信号線20をハイにセットするために選択されたコンピュータ12のうちの第1の1つからのデータを待つ待機状態であることができるように、読取信号線18の異なる組合せをハイにセットすることが望ましい状況があることが、予期される。
上で述べた例では、コンピュータ12eは、近接するコンピュータ(コンピュータ12a、12b、12c、または12dのうちの1つまたは複数から選択される)がその書込信号線20をハイにセットする前に、コンピュータ12eの読取信号線18のうちの1つまたは複数をハイにセットするものとして説明した。しかし、このプロセスは、確かに、反対の順序で発生することができる。たとえば、コンピュータ12eが、コンピュータ12aに書き込むことを試みている場合に、コンピュータ12eは、コンピュータ12eとコンピュータ12aとの間の書込信号線20をハイにセットする。コンピュータ12eとコンピュータ12aとの間の読取信号線18が、まだコンピュータ12aによってハイにセットされていない場合には、コンピュータ12eは、コンピュータ12aがその書込信号線20をハイにセットするまで単純に待つ。その後、上で述べたように、書込信号線18および読取信号線20の対応する対の両方がハイであるときに、データ信号線22での転送を待っているデータが、転送される。その後、受取側のコンピュータ12(この例ではコンピュータ12a)は、送出側コンピュータ12eが書込信号線20を解放するや否や、この2つのコンピュータ(この例では12eおよび12a)の間の読取信号線18と書込信号線20との両方をロウにセットする。
コンピュータ12eなどのコンピュータ12が、書込を予期してその書込信号線20のうちの1つをハイにセットしているときに、必ず、そのコンピュータ12は、データが送られるコンピュータ12がその読取信号線18をすでにハイにセットしている(この場合にはデータが即座に送られる)のでない限り、適当な近接するコンピュータ12から、上で説明したようにデータが「要求」されるまで、本質的に電力を使用せずに単純に待つ。同様に、コンピュータ12が、読取を予期してその読取信号線18のうちの1つまたは複数をハイにセットしているときには、必ず、そのコンピュータ12は、選択されたコンピュータ12に接続された書込信号線20がこの2つのコンピュータ12の間で命令ワードを転送するためにハイになるまで、本質的に電力を使用せずに単純に待つ。
上で述べたように、コンピュータ12に説明したように機能させる複数の潜在的な手段および/または方法が存在する可能性がある。しかし、本例では、(説明した非同期な形態でのそれらの間のデータの転送に加えて、)コンピュータ12は、単に全般的に非同期に内部的に動作しているので、そのように振る舞う。すなわち、命令は、順次式に完了される。書込命令または読取命令のいずれかが発生するときには、その命令が完了するまで(または、おそらくはその代わりに、「リセット」または類似物によってその命令が打ち切られるまで)、さらなるアクションはあり得ない。従来技術の意味での規則的なクロックパルスはない。そうではなく、パルスは、実行されている命令が読取タイプ命令もしくは書込タイプ命令ではない(読取タイプ命令または書込タイプ命令が、別の実体(entity)による、完了を必要とすると仮定して)ときまたは読取タイプ動作もしくは書込タイプ動作が実際に完了したときのいずれかのみに、次の命令を達成するために生成される。
図3は、図1および2のコンピュータ12のうちの1つの例の全般的レイアウトを示すブロック図である。図3の図からわかるように、コンピュータ12のそれぞれは、全般的に、それ自体のRAM 24およびROM 26を有する自己完結型のコンピュータである。前に述べたように、コンピュータ12は、本例においてこれらが単一チップ上で組み合わされる場合に、時々、個々の「ノード」とも称される。
コンピュータ12の他の基本的な構成要素は、リターンスタック28、命令エリア30、算術論理ユニット(「ALU」)32、データスタック34、および命令をデコードするデコード論理セクション36である。当業者は、一般に、本例のコンピュータ12などのスタックベースのコンピュータの動作に精通しているであろう。コンピュータ12は、データスタック34および別々のリターンスタック28を有するデュアルスタックコンピュータである。
本発明のこの実施形態では、コンピュータ12は、近接するコンピュータ12との通信用の4つの通信ポート38を有する。通信ポート38は、オフ状況、受取状況(コンピュータ12に信号を駆動するための)、および送出状況(コンピュータ12から信号を駆動するための)を有するトライステートドライバである。もちろん、特定のコンピュータ12が、コンピュータ12eの例のように、アレイ(図1)の内側にあるのではない場合に、通信ポートのうちの1つまたは複数が、少なくとも本明細書で説明した理由から、その特定のコンピュータ内では使用されない。命令エリア30には、複数のレジスタ40が含まれ、レジスタ40には、この例では、Aレジスタ40a、Bレジスタ40b、およびPレジスタ40cが含まれる。この例では、Aレジスタ40aは、完全な18ビットレジスタであるが、Bレジスタ40bおよびPレジスタ40cは、9ビットレジスタである。
本発明は、この例によって限定されないが、本コンピュータ12は、ネイティブForth言語命令を実行するように実施される。Forthコンピュータ言語に精通した者が諒解するであろうとおり、Forth「ワード」として知られる複雑なForth命令は、コンピュータに設計されたネイティブプロセッサ命令から構成される。Forthワードの集合は、「辞書」として知られる。他の言語では、これが、「ライブラリ」として知られる場合がある。後でより詳細に説明するように、コンピュータ12は、RAM 24から、ROM 26から、または直接にデータバス16(図2)のうちの1つから、一時に18ビットを読み取る。しかし、Forthでは、ほとんどの命令(オペランドレス命令として知られる)が、そのオペランドをスタック28および34から直接に入手するので、これらの命令は、長さにおいて一般に5ビットのみであり、グループ内の最後の命令が3ビットだけを必要とする命令の限られたセットから選択されるという条件付きで、4つまでの命令を、単一の18ビット命令ワードに含めることができる。やはり図3の図にブロック概略形式で示されているのが、スロットシーケンサ42である。本発明のこの実施形態では、データスタック34内の最上部の2つのレジスタが、Tレジスタ44およびSレジスタ46である。
図4は、命令ワード48の概略図である(命令ワード48が、実際には命令、データ、またはそのある組合せを含むことができることに留意されたい)。命令ワード48は、18個のビット50からなる。これはバイナリコンピュータなので、ビット50のそれぞれは、「1」または「0」になる。本明細書で前に述べたように、18ビット幅の命令ワード48は、スロット0 54a、スロット1 54b、スロット2 54c、およびスロット3 54dと呼ばれる4つのスロット54内に4つまでの命令52を含むことができる。本発明の好ましい実施形態では、18ビットの命令ワード48は、必ずまとめて読み取られる。したがって、命令ワード48に4つまでの命令を有する可能性が必ずあるので、no−op(ノーオペレーション)命令が、使用可能なスロット54のすべてを使用することが不必要または望ましくない場合を提供するために、コンピュータ12の命令セットに含まれる。本発明の一特定の実施形態によれば、1つおきのスロット(具体的には、スロット1 54bおよびスロット3 54c)内のビット50の極性(アクティブロウと比較してアクティブハイ)が、逆転される。しかし、これは、ここで説明されている発明の必要な態様ではなく、したがって、本発明をよりよく説明するために、この潜在的な複雑化を、次の議論では避ける。
図5は、図3のスロットシーケンサ42の概略図である。図5の図からわかるように、スロットシーケンサ42は、リングに配置された複数(この例では14個)のインバータ56および1つのNANDゲート58を有し、信号が、14個のインバータ56およびNANDゲート58を通って進むときに奇数回反転されるようになっている。信号は、ORゲート60への2つの入力のいずれかがハイになるときに、スロットシーケンサ42内で開始される。第1ORゲート入力62は、実行されている命令52のビットi4 66(図4)から導出される。ビットi4がハイの場合には、その特定の命令52は、ALU命令であり、i4ビット66は、「1」である。i4ビットが「1」のときには、第1ORゲート入力62は、ハイであり、スロットシーケンサ42は、パルスを開始するようにトリガされ、このパルスが、次の命令52の実行を引き起こす。
スロットシーケンサ42が、第1ORゲート入力62がハイになることによってまたは第2ORゲート入力64がハイになる(後で述べるように)ことによってのいずれかでトリガされるときに、信号が、2回スロットシーケンサ42を通って進み、そのたびにスロットシーケンサ出力68で出力が作られる。信号が初めてスロットシーケンサ出力68に進むときに、その信号は、ロウであり、2回目には、スロットシーケンサ出力68での出力は、ハイになる。スロットシーケンサ出力68からの比較的幅広い出力は、パルスジェネレータ70(ブロック概略形式で図示)に供給され、パルスジェネレータ70は、出力として狭いタイミングパルスを作る。当業者は、狭いタイミングパルスが、コンピュータ12の動作を正確に開始するのに望ましいことを認めるであろう。
実行されている特定の命令52が、読取命令または書込命令であるか、実行されている命令52がシーケンス内の次の命令52の即座の実行をトリガすることが望まれないすべての他の命令であるときには、i4ビット66は、「0」(ロウ)であり、したがって、第1ORゲート入力62は、やはりロウである。当業者は、コンピュータ12などのデバイス内のイベントのタイミングが、一般に非常にクリティカルであり、これに例外がないことを認めるであろう。スロットシーケンサ42を調べるときに、当業者は、リングの第2「ラップ」を開始するために、信号がNANDゲート58を過ぎて循環した後になるまで、ORゲート60からの出力が、ハイのままにならなければならないことを認めるであろう。その後、ORゲート60からの出力は、回路の望まれない継続される発振を防ぐために、その第2「ラップ」中にロウになる。
上の議論に鑑みて諒解できるとおり、i4ビット66が「0」のときには、後で述べる第2ORゲート入力66がハイではないと仮定すると、スロットシーケンサ42は、トリガされない。
上で述べたように、各命令52のi4ビット66は、その命令が読取タイプまたは書込タイプの命令であるか否かに従ってセットされる。命令52内の残りのビット50は、その命令の特定のオペコードの残りを提供する。読取タイプまたは書込タイプの命令の場合に、これらのビットのうちの1つまたは複数を使用して、データがその特定のコンピュータ12から読み取られるのかこれに書き込まれるのかを示すことができる。本発明の本例では、書き込まれるデータは、必ずTレジスタ44(データスタック34の最上部)から来るが、データを、Tレジスタ44またはそこからそのデータを実行できる命令エリア30のいずれかに選択的に読み込むことができる。これは、本発明のこの特定の実施形態で、データまたは命令のいずれかを、本明細書に記載の形態で通信することができ、したがって、命令をデータバス16から直接に実行できるからであるが、これは本発明の必要な態様ではない。さらに、ビット50のうちの1つまたは複数が、ポート38のいずれかが読取または書込のためにセットされる場合に、どのポート38がそれであるかを示すのに使用される。この後者の動作は、任意選択として、Aレジスタ40a、Bレジスタ、または類似物などのレジスタ40を指定するために1つまたは複数のビットを使用することによって達成される。そのような例では、指定されたレジスタ40は、ポート38のそれぞれ(および、メモリ、外部通信ポート、または類似物など、コンピュータ12が通信を試みることができるすべての他の潜在的な実体も)に対応するビットを有するデータを事前にロードされる。たとえば、特定のレジスタ40内の4つのビットのそれぞれが、上ポート38a、右ポート38b、左ポート38c、または下ポート38dのそれぞれに対応することができる。これらのビット位置のいずれかに「1」がある場合に、通信が、対応するポート38を介して進行するようにセットされる。本明細書で前に述べたように、本発明の本実施形態では、読取オペコードが、単一の命令で通信について複数のポート38をセットすることができると予期されているが、書込オペコードが、単一の命令で通信について複数のポート38をセットすることは、可能ではあるが、予期されてはいない。
直後の例では、コンピュータ12eがコンピュータ12cへの書込を試みる通信を仮定するが、この例は、すべての近接するコンピュータ12の間の通信に適用可能である。書込命令が、書き込むコンピュータ12e内で実行されるときに、選択された書込信号線20(この例では、コンピュータ12eと12cとの間の書込信号線20)が、ハイにセットされ、対応する読取信号線18がすでにハイである場合には、データが、選択された位置から選択された通信ポート38を介して即座に送られる。その代わりに、対応する読取信号線18がまだハイではない場合には、コンピュータ12eは、対応する読取信号線18がハイになるまで、単純に動作を停止する。読取タイプまたは書込タイプの命令があるときにコンピュータ12aを停止させる(または、より正確にはそのさらなる動作をイネーブルしない)機構は、本明細書で前に述べた。短く言うと、命令52のオペコードは、ビット位置i4 66に「0」を有し、したがって、ORゲート60の第1ORゲート入力62は、ロウであり、したがって、スロットシーケンサ42は、イネーブルするパルスを生成するためにトリガはされない。
読取タイプまたは書込タイプの命令が完了したときに、コンピュータ12eの動作がどのように再開されるかに関して、そのための機構は、次の通りである。コンピュータ12eと12cとの間の読取信号線18と対応する書込信号線20との両方がハイのときに、信号線18と20との両方が、それをハイに保持している各々のコンピュータ12のそれぞれによって解放される(この例では、送出側のコンピュータ12eが、書込信号線18をハイに保持しており、受取側のコンピュータ12cが、読取信号線20をハイに保持している)。次に、受取側のコンピュータ12cが、信号線18と20との両方をロウにプルする。実際の実装では、受取側のコンピュータ12cは、送出側のコンピュータ12eが書込信号線18を解放する前に、信号線18および20をロウにプルすることを試みることができる。しかし、信号線18および20は、ハイにプルされ、ロウには弱く保持される(ラッチされる)のみなので、信号線18または20をロウにプルするすべての試みは、その信号線18または20がそれをハイに保持しているコンピュータ12によって解放されるまでは、実際には成功しない。
データバス16内の信号線18と20との両方がロウにプルされるときには、これが、「肯定応答」状態である。コンピュータ12eおよびコンピュータ12cのそれぞれは、肯定応答状態の際に、それ自体の内部の肯定応答信号線72をハイにセットする。図5の図からわかるように、肯定応答信号線72は、第2ORゲート入力64に供給される。ORゲート60の入力62または64のいずれかへの入力は、ORゲート60の出力をハイにするので、これは、本明細書で前に説明した形態でのスロットシーケンサ42の動作を開始し、命令ワード48内の次のスロット54内の命令52が、実行される。肯定応答信号線72は、偽のアドレスがアドレスバスに達するのを防ぐために、次の命令52がデコードされるまで、ハイのままになる。
実行されている命令52が命令ワード48のスロット3の位置にあるすべての場合に、コンピュータ12は、もちろんビットi4 66が「0」でない限り、次の待っている18ビットの命令ワード48をフェッチする。実際の実装では、本発明的機構には、命令を「プリフェッチする」方法および装置が含まれ、命令ワード48内のすべての命令52の実行の終りの前に、フェッチを開始できるようになっている。しかし、これも、非同期のデータ通信のための本発明の方法および装置の必要な態様ではない。
コンピュータ12eがコンピュータ12cに書き込んでいる上の例を、詳細に説明した。上の議論に鑑みて諒解できるとおり、これらの動作は、コンピュータ12eがまずコンピュータ12cへの書込を試みているのか、コンピュータ12cがまずコンピュータ12eからの読取を試みているのかにかかわりなく、本質的に同一である。この動作は、両方のコンピュータ12eと12cとの準備ができるまで完了することができず、コンピュータ12eまたは12cのどちらが先に準備ができても、第1のコンピュータ12は、他方のコンピュータ12eまたは12cが転送を完了するまで、単純に「眠る」。上で説明したプロセスの見方のもう1つの形態は、実際に、書き込むコンピュータ12eと受け取るコンピュータ12cとの両方が、これらがそれぞれ書込命令および読取命令を実行するときに眠るが、このトランザクションに最後に入るコンピュータは、読取信号線18と書込信号線20との両方がハイであるときにほぼ瞬間的に再覚醒し、このトランザクションを開始した第1のコンピュータ12は、第2のコンピュータ12がこのプロセスを完了する準備ができるまで、ほぼ無期限に眠ったままになることができるということである。
本発明者は、デバイス間の効率的な非同期通信を可能にするための主要な特徴が、ある種の肯定応答信号または肯定応答状態であると考える。従来技術では、デバイス間のほとんどの通信が、刻時され、受取側デバイスがデータを正しく受け取ったことを送出側デバイスが知る直接の形はない。チェックサム動作などの方法が、データが正しく受け取られたことを保証することを試みるのに使用されてきた場合があるが、送出側デバイスは、動作が完了したことの直接の表示を有しない。本発明の方法は、本明細書で説明するように、デバイス間の非同期通信を可能にするか、少なくとも実用的にする、必要な肯定応答条件を提供する。さらに、この肯定応答条件は、デバイスのうちの1つまたは複数が、肯定応答条件が発生するまで「眠る」ことを可能にもする。もちろん、肯定応答条件は、コンピュータ12の間で送られる(相互接続するデータバス16上でまたは別々の信号線上でのいずれかで)別々の信号によってコンピュータ12の間で通信することができ、そのような肯定応答信号は、本発明のこの態様の範囲に含まれるはずである。しかし、本明細書で説明する発明の実施形態によれば、肯定応答の方法が、通信を実際にもたらすために、追加の信号、クロックサイクル、タイミングパルス、または説明されたものを超えるすべてのそのようなリソースを必要としないという点で、これに含まれるさらなる経済があることを諒解することができる。
これらの手順およびこれらの手順を達成する手段の上の議論に鑑みて、発明の方法の例の次の短い説明を、ここで理解することができる。図6は、この方法の例を示す、符号74によって指定される流れ図である。「通信を開始する」動作76で、1つのコンピュータ12が、そのコンピュータ12にもう1つのコンピュータ12との通信を試みさせる命令53を実行する。これは、書き込む試みまたは読み取る試みのいずれかとすることができる。「第1信号線をハイにセットする」動作78は、一般に「通信を開始する」動作76と同時に行われるが、この「第1信号線をハイにセットする」動作78で、(第1のコンピュータ12が読取または書込のどちらを試みているかに応じて)読取信号線18または書込信号線20のいずれかが、ハイにセットされる。「第1信号線をハイにセットする」動作の一部として、それを行うコンピュータ12は、ここで説明されている動作の実施形態に従って、本明細書で前に説明したように、動作を停止する。「第2信号線をハイにセットする」動作80で、第2信号線(書込信号線20または読取信号線18のいずれか)が、第2のコンピュータ12によってハイにセットされる。「データを通信する動作」で、データ(または命令あるいは類似物)が、データ信号線22上で送られ、受け取られる。「信号線をロウにプルする」動作84で、読取信号線18および書込信号線20が、解放され、その後、ロウにプルされる。「継続する」動作86で、肯定応答条件が、コンピュータ12にその動作を再開させる。本発明の例の場合に、肯定応答条件は、肯定応答信号86(図5)をもたらし、この肯定応答信号86は、この場合に、単純に肯定応答信号線72の「ハイ」状態である。
さまざまな変更を、本発明の価値または範囲を変更せずに本発明に対して行うことができる。たとえば、本発明を、読取命令および書込命令に関して本明細書で説明したが、実際の実装では、複数の読取タイプ命令および/または複数の書込タイプ命令がある場合がある。単に1つの例として、本発明の一実施形態には、レジスタを増分する書込命令と、それを行わない他の書込命令とがある。同様に、書込命令は、本明細書で前に述べたように、どのレジスタ40が通信ポート30の選択に使用されるかまたは類似物に従って変化することができる。コンピュータ12の設計者が代替の読取挙動の有用な選択とみなす変形だけに依存して、複数の異なる読取命令も存在し得る。
同様に、本発明を、本明細書では単一のダイ14上のアレイ10内のコンピュータ12間の通信に関して説明したが、同一の原理および方法を、コンピュータ12とその専用メモリとの間またはアレイ10内のコンピュータ12と外部デバイスとの間(入出力ポートまたは類似物を介する)の通信など、他のデバイス間通信を達成するのに使用するか、それに使用するために変更することができる。実際に、いくつかの応用例が、アレイの配列を必要とする場合があることが予想されており、ここで説明されているデバイス間通信方法は、潜在的に、アレイの配列の間の通信に適用される。
発明的なコンピュータアレイ10およびコンピュータ12をこの中で説明したが、まだ心に描かれたことがない、これらに関する非常に多数の応用例があると期待される。実際に、これらの発明的な方法および装置を非常にさまざまな用途に適合させることができることは、本発明の利点の1つである。
上記のすべてが、本発明の使用可能な実施形態の例の一部にすぎない。当業者は、多数の他の修正形態および代替形態を、本発明の趣旨および範囲から逸脱せずに作ることができることをたやすく観察するであろう。したがって、本明細書の開示は、限定的として意図されたものではなく、添付の特許請求の範囲は、本発明の範囲全体を含むものとして解釈されなければならない。
発明的なコンピュータアレイ10、コンピュータ12および関連する方法74は、非常にさまざまなコンピュータ応用例で幅広く使用されることが意図されている。これらは、かなりの計算能力が要求され、なおかつ電力消費および熱発生量が重要な考慮事項である応用例で特に有用であると期待される。
本明細書で前に述べたように、本発明の適用可能性は、多数のタイプのデバイス間コンピュータ通信をこれによって改善できるようになっている。いくつかのコンピュータが、使用されていないときに「眠る」ことを許可されることができる、この発明的方法は、非常にさまざまな応用例および実施態様で、電力消費を減らし、熱発生量を減らし、コンピュータおよびコンピュータ化されたデバイスの間の通信の効率を改善するのに使用される。
本発明のコンピュータアレイ10、コンピュータ12および方法74は、たやすく生産でき、既存のタスク、入出力デバイス、および類似物とたやすく一体化でき、本明細書で説明した利点が、もたらされるので、これらは、産業界ですぐに受け入れられると期待される。上記および他の理由から、本発明の有用性および産業上の利用可能性は、範囲において重要であると同時に持続期間において長続きするものになるであろう。
本発明の一実施形態によるコンピュータアレイを示す概略図である。 図1のコンピュータのサブセットと、図1の相互接続するデータバスのより詳細な図とを示す詳細図である。 図1および2のコンピュータのうちの1つの全般的レイアウトを示すブロック図である。 本発明的応用例による命令ワードを示す概略図である。 図3のスロットシーケンサ42を示す概略図である。 本発明の方法の例を示す流れ図である。
符号の説明
注:この対応チャートは、情報提供だけのために提供される。これは、公式の特許出願の一部ではない。
対応チャート
10 コンピュータアレイ
12 コンピュータ
14 ダイ
16 データバス
18 読取信号線
20 書込信号線
22 データ信号線
24 RAM
26 ROM
28 リターンスタック
30 命令エリア
32 ALU
34 データスタック
36 デコードセクション
38 内部通信ポート
38a 上ポート
38b 右ポート
38c 左ポート
38d 下ポート
40 レジスタ
40a Aレジスタ
40b Bレジスタ
40c Pレジスタ
42 スロットシーケンサ
44 Tレジスタ
46 Sレジスタ
48 命令ワード
50 ビット
52 命令
54 スロット
54a スロット0
54b スロット1
54c スロット2
54d スロット3
56 インバータ
58 NANDゲート
60 ORゲート
62 第1ORゲート入力
64 第2ORゲート入力
66 i4ビット
68 スロットシーケンサ出力
70 パルスジェネレータ
72 肯定応答信号線
74 方法
76 通信を開始する動作
78 第1信号線をハイにセットする動作
80 第2信号線をハイにセットする動作
82 データを通信する動作
84 継続する動作
86 肯定応答信号

Claims (25)

  1. 複数のコンピュータと、
    前記コンピュータを接続する複数のデータ経路と
    を含み、前記コンピュータのうちの第1のコンピュータが、前記コンピュータのうちの第2のコンピュータとの通信を試みるときに、前記コンピュータのうちの前記第1のコンピュータは、前記コンピュータのうちの前記第2のコンピュータが前記通信を完了する準備ができるまで動作を停止する
    ことを特徴とするコンピュータアレイ。
  2. 前記コンピュータのうちの前記第1のコンピュータは、書き込むことを試みており、
    前記コンピュータのうちの前記第2のコンピュータは、前記コンピュータのうちの前記第2のコンピュータから読み取ることによって前記通信を完了する
    ことを特徴とする請求項1に記載のコンピュータアレイ。
  3. 前記コンピュータのうちの前記第1のコンピュータは、読み取ることを試みており、
    前記コンピュータのうちの前記第2のコンピュータは、前記コンピュータのうちの前記第1のコンピュータに書き込むことによって前記通信を完了する
    ことを特徴とする請求項1に記載のコンピュータアレイ。
  4. 前記コンピュータのうちの前記第1のコンピュータは、複数の他のコンピュータから読み取るように構成される
    ことを特徴とする請求項3に記載のコンピュータアレイ。
  5. 前記コンピュータのうちの前記第1のコンピュータが前記コンピュータのうちの前記第2のコンピュータとの通信を試みるときに、前記第1のコンピュータは、書込信号線をハイにセットし、
    前記コンピュータのうちの前記第2のコンピュータが前記通信を完了する準備ができたときに、前記第2のコンピュータは、読取信号線をハイにセットする
    ことを特徴とする請求項1に記載のコンピュータアレイ。
  6. 前記読取信号線がハイであり、さらに、対応する書込信号線もハイであるときに、データは、前記コンピュータのうちの前記第1のコンピュータと前記コンピュータのうちの前記第2のコンピュータとの間で転送される
    ことを特徴とする請求項5に記載のコンピュータアレイ。
  7. データが前記コンピュータのうちの前記第1のコンピュータと前記コンピュータのうちの前記第2のコンピュータとの間で転送されるときに、前記読取信号線と前記書込信号線の両方は、ロウになる
    ことを特徴とする請求項6に記載のコンピュータアレイ。
  8. 前記読取信号線と前記書込信号線との両方がロウになるときに、前記コンピュータのうちの前記第1のコンピュータと前記コンピュータのうちの前記第2のコンピュータとの両方は、動作を再開する
    ことを特徴とする請求項7に記載のコンピュータアレイ。
  9. 第1のコンピュータデバイスと第2のコンピュータデバイスとの間で通信する方法であって、
    前記第1のコンピュータデバイスに、それが前記第2のコンピュータデバイスと通信する準備ができていることを示させることと、
    前記第2のコンピュータデバイスに、それが前記通信を完了する準備ができていることを示させることと、
    前記第1のコンピュータデバイスと前記第2のコンピュータデバイスとの間でデータを転送することと、
    前記第2のコンピュータデバイスに、前記通信が完了したことを前記第1のコンピュータデバイスに肯定応答させることと
    を含むことを特徴とする方法。
  10. 前記第1のコンピュータデバイスは、それが前記第2のコンピュータに書き込む準備ができていることを示す
    ことを特徴とする請求項9に記載の方法。
  11. 前記第1のコンピュータデバイスは、それと前記第2コンピュータとの間の書込信号線をハイにセットすることによって、それが前記第2のコンピュータに書き込む準備ができていることを示す
    ことを特徴とする請求項10に記載の方法。
  12. 前記第1のコンピュータデバイスは、それが前記第2のコンピュータから読み取る準備ができていることを示す
    ことを特徴とする請求項9に記載の方法。
  13. 前記第1のコンピュータデバイスは、それと前記第2のコンピュータデバイスとの間の読取信号線をハイにセットすることによって、それが前記第2コンピュータから読み取る準備ができていることを示す
    ことを特徴とする請求項12に記載の方法。
  14. 前記第1のコンピュータデバイスは、読取信号線または書込信号線のうちの一方をハイにセットすることによって、それが前記第2のコンピュータデバイスと通信する準備ができていることを示し、
    前記第2のコンピュータデバイスは、前記読取信号線または前記書込信号線のうちの他方をハイにセットすることによって、それが前記第1のコンピュータデバイスと通信する準備ができていることを示し、
    前記読取信号線と前記書込信号線との両方がハイであるときに、データは、前記第1のコンピュータデバイスと前記第2のコンピュータデバイスとの間で転送される
    ことを特徴とする請求項9に記載の方法。
  15. 前記第2のコンピュータデバイスは、前記読取信号線と前記書込信号線との両方をロウにプルすることによって、前記通信が完了したことを肯定応答する
    ことを特徴とする請求項9に記載の方法。
  16. 前記読取信号線と前記書込信号線との両方がロウにプルされることを可能にするために、前記第1のコンピュータデバイスは、読取信号線または書込信号線のうちの一方を解放し、
    前記第2のコンピュータデバイスは、前記読取信号線または前記書込信号線のうちの他方を解放する
    ことを特徴とする請求項15に記載の方法。
  17. コンピュータの間で通信する方法であって、
    (a)第1のコンピュータに、それが通信する準備ができていることを示させることと、
    (b)前記第1のコンピュータに、その後に動作を停止させることと、
    (c)第2のコンピュータに、それが前記第1のコンピュータと通信する準備ができていることを示させることと、
    (d)前記第1のコンピュータと前記第2コンピュータとの間でデータを転送することと、
    (e)前記第1のコンピュータに、動作を再開させることと
    を含むことを特徴とする方法。
  18. 前記第1のコンピュータは、前記通信が達成されることを前記第2のコンピュータが肯定応答するときに、動作を再開させられる
    ことを特徴とする請求項17に記載の方法。
  19. 前記第1のコンピュータは、前記第1のコンピュータと前記第2のコンピュータとの間の書込信号線をセットし、
    前記第2のコンピュータは、前記第1のコンピュータと前記第2のコンピュータとの間の読取信号線をセットし、
    前記第1のコンピュータは、前記読取信号線と前記書込信号線との両方がセットされた後に、動作を再開させられる
    ことを特徴とする請求項17に記載の方法。
  20. 前記読取信号線と前記書込信号線との両方がセットされているときに、データは、前記第1のコンピュータと前記第2のコンピュータとの間で転送される
    ことを特徴とする請求項19に記載の方法。
  21. 前記読取信号線と前記書込信号線との両方がセットされているときに、前記読取信号線と前記書込信号線との両方は、データが転送されたことを示すためにアンセットされる
    ことを特徴とする請求項19に記載の方法。
  22. 前記第1のコンピュータは、前記書込信号線にハイにならせることによって前記書込信号線をセットし、
    前記第2のコンピュータは、前記読取信号線にハイにならせることによって前記読取信号線をセットし、
    前記読取信号線および前記書込信号線は、前記読取信号線および前記書込信号線にロウにならせることによってアンセットされる
    ことを特徴とする請求項21に記載の方法。
  23. 動作ステップ(a)および(b)の順番は、請求項17で提示された順番と比較して逆転される
    ことを特徴とする請求項17に記載の方法。
  24. 第1のコンピュータと第2のコンピュータとの間の通信のための少なくとも1つのデータ伝送手段と、
    前記第1のコンピュータにそれが通信する準備ができていることを示させる手段と、
    前記第2のコンピュータにそれが通信する準備ができていることを示させる手段と、
    通信が達成されたことを肯定応答する手段と
    を含むことを特徴とするコンピュータ。
  25. 通信が達成されたことを肯定応答する前記手段がそのように示すまで、前記第1のコンピュータを停止する手段
    をさらに含むことを特徴とする請求項24に記載のコンピュータ。
JP2008555355A 2006-02-16 2007-02-16 非同期コンピュータ通信 Pending JP2009527810A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/355,495 US7904615B2 (en) 2006-02-16 2006-02-16 Asynchronous computer communication
US11/355,513 US7904695B2 (en) 2006-02-16 2006-02-16 Asynchronous power saving computer
PCT/US2007/004031 WO2007098007A2 (en) 2006-02-16 2007-02-16 Asynchronous computer communication

Publications (2)

Publication Number Publication Date
JP2009527810A true JP2009527810A (ja) 2009-07-30
JP2009527810A5 JP2009527810A5 (ja) 2010-04-08

Family

ID=37965009

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008555369A Pending JP2009527813A (ja) 2006-02-16 2007-02-16 非同期電力節約コンピュータ
JP2008555355A Pending JP2009527810A (ja) 2006-02-16 2007-02-16 非同期コンピュータ通信

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2008555369A Pending JP2009527813A (ja) 2006-02-16 2007-02-16 非同期電力節約コンピュータ

Country Status (7)

Country Link
EP (2) EP1821174B9 (ja)
JP (2) JP2009527813A (ja)
KR (2) KR20090016642A (ja)
AT (2) ATE475927T1 (ja)
DE (1) DE602007007999D1 (ja)
TW (2) TW200813744A (ja)
WO (2) WO2007098023A2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3731201B1 (en) 2019-04-24 2022-11-09 ABB Schweiz AG A support system for an operator

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997128A (ja) * 1995-09-26 1997-04-08 Internatl Business Mach Corp <Ibm> 情報処理システム
JP2004326222A (ja) * 2003-04-22 2004-11-18 Renesas Technology Corp データ処理システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589067A (en) * 1983-05-27 1986-05-13 Analogic Corporation Full floating point vector processor with dynamically configurable multifunction pipelined ALU
JPS60204149A (ja) 1984-03-29 1985-10-15 Mitsubishi Electric Corp デ−タ伝送装置
DE3937807C2 (de) 1988-11-19 1995-04-06 Vaillant Joh Gmbh & Co Verfahren zum Übertragen von Daten zwischen zwei sendenden und empfangenden Stationen
JPH03136136A (ja) * 1989-10-23 1991-06-10 Fujitsu Ltd 命令実行時刻制御方式
EP0428770B1 (de) * 1989-11-21 1995-02-01 Deutsche ITT Industries GmbH Datengesteuerter Arrayprozessor
US5218682A (en) 1991-05-10 1993-06-08 Chrysler Corporation Two-way handshake circuit and method for communication between processors
JP2723712B2 (ja) * 1991-08-30 1998-03-09 茨城日本電気株式会社 マイクロプログラム制御回路
US5692197A (en) * 1995-03-31 1997-11-25 Sun Microsystems, Inc. Method and apparatus for reducing power consumption in a computer network without sacrificing performance
GB9704068D0 (en) * 1997-02-27 1997-04-16 Sgs Thomson Microelectronics Trigger sequencing controller
FR2789501B1 (fr) 1999-02-09 2001-04-13 St Microelectronics Sa Procede et dispositif de reduction de la consommation d'un microcontroleur
US6937538B2 (en) * 2000-02-02 2005-08-30 Broadcom Corporation Asynchronously resettable decoder for a semiconductor memory
GB2370381B (en) * 2000-12-19 2003-12-24 Picochip Designs Ltd Processor architecture
JP4412905B2 (ja) * 2003-01-28 2010-02-10 パナソニック株式会社 低電力動作制御装置、およびプログラム最適化装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997128A (ja) * 1995-09-26 1997-04-08 Internatl Business Mach Corp <Ibm> 情報処理システム
JP2004326222A (ja) * 2003-04-22 2004-11-18 Renesas Technology Corp データ処理システム

Also Published As

Publication number Publication date
EP1821174B9 (en) 2010-10-27
JP2009527813A (ja) 2009-07-30
WO2007098007A3 (en) 2008-08-28
WO2007098023A3 (en) 2008-07-03
EP1821217B1 (en) 2011-06-08
ATE512409T1 (de) 2011-06-15
TW200809530A (en) 2008-02-16
DE602007007999D1 (de) 2010-09-09
ATE475927T1 (de) 2010-08-15
KR20090016643A (ko) 2009-02-17
EP1821174B1 (en) 2010-07-28
WO2007098023A2 (en) 2007-08-30
EP1821217A1 (en) 2007-08-22
KR20090016642A (ko) 2009-02-17
EP1821174A1 (en) 2007-08-22
TW200813744A (en) 2008-03-16
WO2007098007A2 (en) 2007-08-30

Similar Documents

Publication Publication Date Title
US8825924B2 (en) Asynchronous computer communication
US7904695B2 (en) Asynchronous power saving computer
JP2009064411A (ja) データおよび命令をコンピュータにロードするための方法および装置
JP2009527815A (ja) 高められた動作効率を有するコンピュータシステム
JP2009009550A (ja) データの通信
US8468323B2 (en) Clockless computer using a pulse generator that is triggered by an event other than a read or write instruction in place of a clock
US7966481B2 (en) Computer system and method for executing port communications without interrupting the receiving computer
JP2009009549A (ja) 一連のコンピュータでデータを処理するシステムおよび方法
JP2009527810A (ja) 非同期コンピュータ通信
US7934075B2 (en) Method and apparatus for monitoring inputs to an asyncrhonous, homogenous, reconfigurable computer array
JP2009527816A (ja) コンピュータへの入力を監視する方法および装置
JP2009527814A (ja) コンピュータのアレイ間でのリソースの割り当て
JPS60218152A (ja) マイクロ・プロセツサ
TW200809529A (en) Computer system with increased operating efficiency

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120302

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120309

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120329

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120608