【手続補正書】
【提出日】平成22年5月25日(2010.5.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スタックコンピュータであって、
データ及びコードを記憶するメモリと、
前記データ及び前記コードを処理するプロセッサと、
前記プロセッサによってスタックとして使用可能な複数の固定配線のレジスタと
を備えることを特徴とするコンピュータ。
【請求項２】
前記複数のレジスタは、所定の反復シーケンスに従って正順又は逆順でアクセスされることを特徴とする、請求項１に記載のコンピュータ。
【請求項３】
前記複数のレジスタが前記正順にてアクセスされる場合には、前記レジスタのうちの最終のレジスタが前記シーケンスにおいてアクセスされた後に、前記レジスタのうちの最初のレジスタが前記シーケンスにおいてアクセスされ、
前記複数のレジスタが前記逆順にてアクセスされる場合には、前記レジスタのうちの最初のレジスタがアクセスされた後に、前記レジスタのうちの最終のレジスタがアクセスされることを特徴とする、請求項２に記載のコンピュータ。
【請求項４】
複数の単一ビットレジスタを含む双方向シフトレジスタをさらに含み、各単一ビットレジスタの出力は、前記レジスタのうちの関連する１つに至る少なくとも部分的な制御アクセスに接続され、これによって前記双方向シフトレジスタは、前記単一ビットレジスタに沿ってビットをシフトするスタックポインタとして機能することを特徴とする、請求項１に記載のコンピュータ。
【請求項５】
前記複数の単一ビットレジスタの最終のものが前記複数の単一ビットレジスタの最初のものに接続されていることによって、前記複数の単一ビットレジスタは、それら自体に沿ってシフトされるビットに対して円環経路を提供することを特徴とする、請求項４に記載のコンピュータ。
【請求項６】
スタックコンピュータのプロセッサであって、
円環状パターンで機能するハードウェアデータレジスタの配列を有するデータスタックと、
円環状のパターンで機能するハードウェアリターンレジスタの配列を有するリターンスタックと、
を備え、前記データスタック内のデータレジスタのそれぞれ及び前記リターンスタック内の前記リターンレジスタのそれぞれは、１８ビット命令ワードを収容し得、
前記コンピュータは、前記データスタックの第１のデータレジスタが上書きされるように前記データスタック内の前記データレジスタが充たされた後に前記データスタック内に追加のデータを入力するようプログラムされており、
前記コンピュータは、前記リターンスタックの第１のリターンレジスタ内のデータが上書きされるように前記リターンスタック内の前記リターンレジスタが充たされた後、前記リターンスタック内に追加のデータを入力するようプログラムされており、
前記コンピュータは、前記データスタック内の前記データレジスタにデータをロードすることなく前記データスタックからデータを反復してリードするようプログラムされており、
前記コンピュータは、前記リターンスタック内の前記リターンレジスタ内にデータをリローディングすることなく前記リターンスタックからデータを反復してリードするようプログラムされていることを特徴とするプロセッサ。
【請求項７】
前記データスタックはさらに、トップ側スタック（Ｔ）レジスタを有することを特徴とする、請求項６に記載のプロセッサ。
【請求項８】
前記データスタックはさらに、スタック（Ｓ）レジスタに第２のポジションを有することを特徴とする、請求項７に記載のプロセッサ。
【請求項９】
前記リターンスタックはさらに、トップ側レジスタ（Ｒ）を有することを特徴とする、請求項６に記載のプロセッサ。
【請求項１０】
コンピュータプロセッサを動作させる方法であって、
複数の命令ワードを前記プロセッサ内の対応する複数命令セルに入力する入力ステップと、
前記複数の命令ワードを処理する処理ステップとを含み、
前記入力ステップ及び処理ステップの結果として、命令のオーバーフロー又はアンダーフローがなく、
前記処理するステップは、前記複数の命令ワードをリロードすることなく、前記複数の命令ワードを反復して再使用することを含む、ことを特徴とする方法。
【請求項１１】
前記入力ステップは、全ての使用可能な命令セルを充たすことを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記入力ステップは、以前に充たされた命令セルが上書きされるように全ての使用可能な命令セルが充たされた後に、付加的命令をさらに入力することを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記入力ステップ及び前記処理ステップは、ソフトウェア実現されたポインタを用いることなく、起きることを特徴とする、請求項１２に記載の方法。
【請求項１４】
コンピュータプロセッサであって、
レジスタ配列と、
シフトレジスタと、
を備え、前記シフトレジスタは、電気配線によって相互接続されている複数の１ビットシフトレジスタを有し、前記複数の１ビットシフトレジスタの数は、前記レジスタ配列におけるレジスタの数に等しく、
前記コンピュータプロセッサは、前記配列の第１のレジスタ内のデータが上書きされるように前記レジスタの全てが充たされた後に、レジスタの前記配列内に追加のデータを入力するようプログラムされ、
前記プロセッサは、レジスタの前記配列内にデータをリロードすることなく、レジスタの前記配列からデータを反復してリードするようプログラムされていることを特徴とするプロセッサ。
【請求項１５】
前記レジスタ配列の上に配置された少なくとも１つのレジスタをさらに備えることを特徴とする、請求項１４に記載のプロセッサ。
【請求項１６】
前記レジスタ配列は、該配列を相互接続するリードバス及びライトバスを有することを特徴とする、請求項１４に記載のプロセッサ。
【請求項１７】
前記レジスタ配列は、円環パターン状に機能することを特徴とする、請求項１４に記載のプロセッサ。
【請求項１８】
前記レジスタ配列はスタック化されていることを特徴とする、請求項１４に記載のプロセッサ。
【請求項１９】
前記１ビットシフトレジスタは、前記電気配線によって１つおきパターン状に相互接続されていることを特徴とする、請求項１８に記載のプロセッサ。
【請求項２０】
前記プロセッサはデータスタックであることを特徴とする、請求項１４に記載のプロセッサ。
【請求項２１】
前記レジスタ配列は、８つのデータレジスタを有することを特徴とする、請求項２０に記載のプロセッサ。
【請求項２２】
前記レジスタ配列は、４の倍数個のデータレジスタを有することを特徴とする、請求項２０に記載のプロセッサ。
【請求項２３】
前記プロセッサはリターンスタックであることを特徴とする、請求項１４に記載のプロセッサ。
【請求項２４】
前記レジスタ配列は８つのリターンレジスタを有することを特徴とする、請求項２３に記載のプロセッサ。
【請求項２５】
前記レジスタ配列は、４の倍数個のリターンレジスタを有することを特徴とする、請求項２３に記載のプロセッサ。
【請求項２６】
コンピュータプロセッサであって、
レジスタ配列と、
前記レジスタ配列に固定配線された双方向シフトレジスタと、
を含み、
電気配線によって相互接続された複数の１ビットシフトレジスタをさらに含み、前記複数の１ビットシフトレジスタの数は、前記レジスタ配列におけるレジスタの数に等しく、
前記コンピュータプロセッサは、前記配列の第１のレジスタ内のデータが上書きされるように前記レジスタの全てが充たされた後に、レジスタの前記配列内に追加のデータを入力するようプログラムされ、
前記プロセッサは、レジスタの前記配列内にデータをリロードすることなく、レジスタの前記配列からデータを反復してリードするようプログラムされていることを特徴とするプロセッサ。
【請求項２７】
前記レジスタ配列の上に配置された少なくとも１つのレジスタをさらに備えることを特徴とする、請求項２６に記載のプロセッサ。
【請求項２８】
前記シフトレジスタは、前記レジスタ配列に対してハードウェアポインタとして機能することを特徴とする、請求項２６に記載のプロセッサ。
【請求項２９】
リードバス及びライトバスをさらに含むことを特徴とする、請求項２６に記載のプロセッサ。
【請求項３０】
前記複数の１ビットシフトレジスタの各々は、前記レジスタ配列のうちの専用のレジスタに対応することを特徴とする、請求項２６に記載のプロセッサ。
【請求項３１】
前記複数の１ビットシフトレジスタのうちの１つのシフトレジスタのみが１度に活性化されることを特徴とする、請求項３０に記載のプロセッサ。
【請求項３２】
前記レジスタ配列は、該配列を相互接続するリードバス及びライトバスを有することを特徴とする、請求項２６に記載のプロセッサ。
【請求項３３】
前記複数の１ビットシフトレジスタは、電気配線で相互接続されることによってドライバのサイズ及びバッファリングが最小化されていることを特徴とする、請求項２６に記載のプロセッサ。
【請求項３４】
前記電気配線の全てが近接する３つの１ビットシフトレジスタ間に伸張していることを特徴とする、請求項２６に記載のプロセッサ。
【請求項３５】
前記レジスタ配列は８つのレジスタを有することを特徴とする、請求項３４に記載のプロセッサ。
【請求項３６】
前記プロセッサはデータスタックを有することを特徴とする、請求項２６に記載のプロセッサ。
【請求項３７】
前記プロセッサはリターンスタックを有することを特徴とする、請求項２６に記載のプロセッサ。
【請求項３８】
前記データスタックのハードウェアデータレジスタの前記配列に対するハードウェアポインタと、
前記リターンスタックのハードウェアリターンレジスタの前記配列に対するハードウェアポインタとをさらに有することを特徴とする、請求項６記載のプロセッサ。
【請求項３９】
前記データスタックについての前記ハードウェアポインタは、シフトレジスタの円環状配列を含み、前記シフトレジスタのそれぞれは前記データスタック内の前記データレジスタのうちの１つに接続され、
前記リターンスタックについての前記ハードウェアポインタは、シフトレジスタの円環状配列を含み、前記シフトレジスタのそれぞれは前記リターンスタック内の前記リターンレジスタのうちの１つに接続されることを特徴とする請求項２８に記載のプロセッサ。
【請求項４０】
前記データスタックについてのシフトレジスタの前記円環状の配列は、１ビットシフトレジスタであり、
前記リターンスタックについてのシフトレジスタの前記円環状の配列は、１ビットシフトレジスタであることを特徴とする請求項３９に記載のプロセッサ。
【請求項４１】
前記データスタックのための唯一の前記１ビットシフトレジスタは、１つの時点でアクティブであり、
前記リターンスタックのための唯一の前記１ビットシフトレジスタは、１つの時点でアクティブであることを特徴とする請求項４０に記載のプロセッサ。
【請求項４２】
前記データスタックおよび前記リターンスタックのうちの少なくとも１つのためのシフトレジスタは電気配線で互い違いのパターンで相互接続されていることを特徴とする請求項３９に記載のプロセッサ。
【請求項４３】
前記データスタックおよび前記リターンスタック内へデータをローディングすることは、アンダーフローまたはオーバーフローを発生しないことを特徴とする請求項６に記載のプロセッサ。
【請求項４４】
前記データスタックおよび前記リターンスタックの少なくとも１つの前記ハードウェアレジスタを相互接続するリードバスおよびライトバスをさらに有することを特徴とする請求項６に記載のプロセッサ。
【請求項４５】
前記データスタックおよび前記リターンスタックの少なくとも１つのハードウェアレジスタの前記配列は、４つのレジスタの複数を有することを特徴とする請求項６に記載のプロセッサ。
【請求項４６】
前記ハードウェアレジスタの数は８つであることを特徴とする請求項４５に記載のプロセッサ。
【請求項４７】
前記命令セルはハードウェアレジスタの配列であることを特徴とする請求項１０に記載の方法。
【請求項４８】
前記処理するステップは、ハードウェアポインタを使用してハードウェアレジスタの前記配列にアクセスすることを含むことを特徴とする請求項４７に記載の方法。
【請求項４９】
前記ハードウェアポインタはシフトレジスタの円環状配列を含み、前記シフトレジスタの各々は、前記ハードウェアレジスタのうちの１つに結合されることを特徴とする請求項４８に記載の方法。
【請求項５０】
前記シフトレジスタの円環状の配列は、１ビットシフトレジスタの円環状配列であることを特徴とする請求項４９に記載の方法。
【請求項５１】
唯一の前記１ビットシフトレジスタは１つの時点でアクティブであることを特徴とする請求項５０に記載の方法。
【請求項５２】
前記シフトレスタは、互い違いのパターンで電気配線によって相互接続されていることを特徴とする請求項４９に記載の方法。
【請求項５３】
前記電気配線は３つの隣接したシフトレジスタの最大のものの間に亘っていることを特徴とする請求項５２に記載の方法。
【請求項５４】
前記データスタックについての前記シフトレジスタは動作しているときに双方向であり、
前記リターンスタックについての前記シフトレジスタは動作しているときに双方向であることを特徴とする請求項４９に記載の方法。
【請求項５５】
前記命令セルの数が４の倍数であることを特徴とする請求項１０に記載の方法。
【請求項５６】
前記命令セルの数は８つであることを特徴とする請求項５５に記載の方法。
【請求項５７】
リードバスおよびライトバスは前記複数の命令セルに相互接続されていることを特徴とする請求項１０に記載の方法。
【請求項５８】
前記命令セルのうちの１つはトップ（Ｔ）命令セルであることを特徴とする請求項１４に記載の方法。
【請求項５９】
前記命令セルのうちの１つは第２のポジション（Ｓ）命令セルであることを特徴とする請求項１０に記載の方法。
【請求項６０】
前記命令セルのうちの１つはトップ命令セル（Ｒ）であることを特徴とする請求項１０に記載の方法。
【請求項６１】
前記電気配線は、３つの隣接したシフトレジスタの最大のものの間に亘っていることを特徴とする請求項１９に記載のプロセッサ。
【請求項６２】
前記１ビットシフトレジスタの唯一のものは、１つの時点でアクティブであることを特徴とする請求項１４に記載のプロセッサ。
【請求項６３】
前記レジスタの配列および前記シフトレジスタはハードウェアとして実装されていることを特徴とする請求項１４に記載のプロセッサ。
【請求項６４】
前記レジスタの配列内でオーバーフロー又はアンダーフローが発生しないことを特徴とする請求項１４に記載のプロセッサ。
【請求項６５】
レジスタの前記配列は、４つのレジスタの倍数であることを特徴とする請求項３４に記載のプロセッサ。
【請求項６６】
前記１ビットシフトレジスタは円環状のパターンで相互接続されることを特徴とする請求項２６に記載のプロセッサ。
【請求項６７】
レジスタの前記配列内で、オーバーフロー又はアンダーフローを発生しないことを特徴とする請求項２６に記載のプロセッサ。
【請求項６８】
レジスタの前記配列および前記シフトレジスタはハードウェアとして実装されていることを特徴とする請求項２６に記載のプロセッサ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
本出願は２００６年６月３０日付け仮出願第６０／８１８，０８４号に対して優先権を主張すると共に、「非同期省力化コンピュータ」と題する２００６年２月１６日付け第１１／３５５，５１３号の継続部分である「コンピュータへの入力をモニタする方法及び装置」と題する２００６年５月２６日付け第１１／４４１，８１８号の継続部分である。本出願は、また、２００６年３月３１日付け仮出願第６０／７８８，２６５号に対して優先権を主張し、さらに２００６年５月３日付け仮出願第６０／７９７，３４５号に対して優先権を主張する。上記引用された開示の内容は全て本願明細書に組み込まれている。
スタックマシンは、複合命令セットコンピュータ（ＣＩＳＣ）よりも低いプロセッサ複雑性を与えると共に、縮小命令セットコンピュータ（ＲＩＳＣ）又はＣＩＳＣマシンの何れよりも低い全体システム複雑性を与える。従って、良好な性能のために複雑化されたコンパイラ又はキャシュ制御ハードウェアを要求することがない。また、競争力ある未加工の性能を達成すると共に、ほとんどのプログラミング環境において所与の価格で優れた性能を達成する。それらの最初に成功した応用分野は、リアルタイム埋込型制御環境においてであり、広範な利点によって他のシステムデザインアプローチを凌駕している。以前ではスタックはメモリ内にほとんど保持されていたが、新しいスタックマシンでは、スタック毎に別々のメモリチップ又はオンチップメモリのエリアにも保持されている。これらのスタックマシンは、きわめて高速のサブルーチンコール能力及び割り込みハンドリング及びタスク切替における優れた性能を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
図２は、また、Ｔレジスタ及びＳレジスタと同様に、レジスタＳ２〜Ｓ９を相互接続するリードバス及びライトバスを開示している。双方向シフトレジスタの各１ビットシフトレジスタは、Ｓ２〜Ｓ９配列内で対応するボトム側スタックレジスタに接続され、そこでは、シフトレジスタの１ビットのみが１つの時点でオンとなる一方、他の全てのビットはゼロとリードされる。電源投入時、シフトレジスタは初期化され、正確に１つのビットが１にセットされ且つ他のビットがゼロにセットされなければならない。所与の実施例において、シフトレジスタのトップ側ビットは、レジスタＳ２リードを指示し、相互接続された隣接したレジスタＳ４のライトを指示する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
図３は、データ又はリターンスタック内の各レジスタの拡大図である。各１８ビットレジスタは０〜１７と番号が付与された１８個のラッチを含む。１組で１８個の入力パスゲート（０〜１７と番号付け）があって、それら各々は１８個のラッチにライトバス及びリードバスを通して接続される。１組で１８個の出力パスゲート（０〜１７と番号付け）があって、それら各々は１８個のラッチにライトバス及びリードバスを通して接続される。入力パスゲートは反転アンプのライト制御によって制御され、出力パスゲートは反転アンプのリード制御によって制御される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
上記した円環状のレジスタ配列は、単一のデュアルスタックプロセッサに関して記載された。しかし、上記した円環状のレジスタ配列は、図５に示されるコンピュータ配列１０の如き自己内蔵型のいくつかのコンピュータの配列においても用いられ得る。コンピュータ配列１０は、複数（例示では２４個）のコンピュータ１２（配列の例では、しばしば「コア」又は「ノード」とも称される）を有する。示される実施例において、コンピュータ１２の全ては単一のダイ１４に配置される。本発明によれば、コンピュータ１２の各々は通常独立して機能するコンピュータである。コンピュータ１２は、複数の相互接続データバス１６によって相互接続される。他の相互接続手段がその目的のために使用されてもよいことは本発明の範囲内であるが、この実施例においてデータバス１６は双方向、非同期及び高速パラレルデータバスである。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
本発明が、ここでは主に単一ダイ１４上の配列１０内の複数コンピュータ１２間の通信に関連して開示されたが、同一の原則及び方法が用いられ、又は使用毎に変形されて、コンピュータ１２とその専用メモリとの間の通信又は配列１０内のコンピュータ１２と外部装置との間の通信の如き他の装置間通信を達成することができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
【図１】スタックコンピュータの概略レイアウトを示すブロック図である。
【図２】本発明によるデータスタックを示す図である。
【図３】スタックの単一レジスタのより詳細を示す図である。
【図４】本発明によるリターンスタックを示す図である。
【図５】本発明によるコンピュータ配列を示す図である。
【図６】図５のコンピュータの部分を示すと共に、図５の相互接続用データバスのより詳細を示す図である。