JP5417674B2 - 計算機システム及び主記憶装置 - Google Patents

計算機システム及び主記憶装置 Download PDF

Info

Publication number
JP5417674B2
JP5417674B2 JP2012503797A JP2012503797A JP5417674B2 JP 5417674 B2 JP5417674 B2 JP 5417674B2 JP 2012503797 A JP2012503797 A JP 2012503797A JP 2012503797 A JP2012503797 A JP 2012503797A JP 5417674 B2 JP5417674 B2 JP 5417674B2
Authority
JP
Japan
Prior art keywords
marching
array
information
storage device
computer system
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
JP2012503797A
Other languages
English (en)
Other versions
JP2012533784A (ja
Inventor
維男 中村
ジェイ フリン マイケル
Original Assignee
維男 中村
ジェイ フリン マイケル
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 維男 中村, ジェイ フリン マイケル filed Critical 維男 中村
Publication of JP2012533784A publication Critical patent/JP2012533784A/ja
Application granted granted Critical
Publication of JP5417674B2 publication Critical patent/JP5417674B2/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • G11C19/18Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages
    • G11C19/182Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages in combination with semiconductor elements, e.g. bipolar transistors, diodes
    • G11C19/184Digital stores in which the information is moved stepwise, e.g. shift registers using capacitors as main elements of the stages in combination with semiconductor elements, e.g. bipolar transistors, diodes with field-effect transistors, e.g. MOS-FET
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Description

本発明は、低エネルギー消費で高速で動作する、計算機システムに関する。
フォン・ノイマンなどが60年以上も前にプログラム内蔵電子計算機を開発したとき以来、根本的なメモリ・アクセス法の原理は変わっていない。計算機の処理速度は高性能計算(HPC)アプリケーションの全体的な範囲において年を追って益々高まってきたが、それは、メモリ・アクセスを回避する(キャッシュの使用など)デバイス技術またはスキームの何れかによって実現したものである。しかし、メモリ・アクセス時間が電子計算機の性能を制限する。現在、計算機システムは、図1に示すように、多数のプロセッサ11と大規模な主記憶装置331とを使用している。
図1に示す計算機システムは、プロセッサ11とキャッシュメモリ(321a、321b)と主記憶装置331とを含む。プロセッサ11は、クロック信号を生成するクロック発生回路113を有する制御装置111と、クロック信号に同期して演算論理動作を実行する演算論理装置(ALU)112と、制御装置111に接続された命令レジスタファイル(RF)322aと、ALU112に接続されたデータ・レジスタファイル(RF)322bとを含む。キャッシュメモリ(321a、321b)は、命令キャッシュメモリ321aとデータ・キャッシュメモリ321bとを有する。主記憶装置331の一部と命令キャッシュメモリ321aとは、メモリ・アクセス時間を制限する(又は、フォン・ノイマン・ボトルネックを有する)配線及び/又はバス351により電気的に接続されている。主記憶装置331の残部と、データ・キャッシュメモリ321bとは、同様のメモリ・アクセス351を可能にするように電気的に接続されている。更に、メモリ・アクセスを実現する配線及び/又はバス352は、データ・キャッシュメモリ321bとメモリ・キャッシュメモリ321aと、命令レジスタファイル322aとデータ・レジスタファイル322bとの間を電気的に接続している。
HPCシステムは高速で低エネルギー消費で動作することが期待されているが、メモリ・アクセスのボトルネック351、352のために、速度制限がある。ボトルネック351、352はプロセッサ11と主記憶装置331との間の配線に起因する。何故ならば、配線長が計算機に対するアクセスを遅延し、且つ、配線間に存在する浮遊容量が更なる遅延を招くからである。このような容量が、プロセッサ11のプロセッサ・クロック周波数に比例する、更なる電力消費を必要とさせる。
現在、一部のHPCプロセッサは、幾つかのベクトル演算パイプラインを用いて形成されている。このベクトル・プロセッサは、メモリの帯域幅を巧みに用いているので、ベクトル表記法で表現できるHPCアプリケーションに適した、優れたマシンになる。ベクトル命令は、ソース・プログラムのループから作られ、これらのベクトル命令のそれぞれ、ベクトル・プロセッサ又は並列プロセッサにおいて対応するユニットの演算パイプラインで実行される。これらの処理スキームの結果は、同じ結果を与えている。
しかし、ベクトル・プロセッサ・ベースのシステムも、メモリ・ボトルネック351、352をすべてのユニット間で有する。広いメモリと大きな帯域幅をもつ単一システムでも、同じボトルネック351、352が現れる。なおかつ、システムが並列プロセッサとして多数の同じユニットから成る場合、ボトルネック351、352は回避が難しくなる。
従来の計算機システムには、2つの本質的なメモリ・アクセスの問題がある。第1の問題は、メモリ・チップとキャッシュの間またはチップ上のこれらの2つのユニットの間だけでなくメモリ・システムの内部に存在する配線である。チップ間において、これらの2つのチップ/ユニット間の配線は、結果として、容量に起因する大きな動的電力消費と配線信号の時間遅延になる。これは、アクセス・ラインと残りの読出/書込ラインとに関連してメモリ・チップ内の内部配線の問題に進展する。したがって、メモリ・チップ間及びメモリ・チップ内の配線の両方に、これらの配線がもつ静電容量に起因するエネルギー消費が存在する。
第2の問題は、プロセッサ・チップとキャッシュとメモリ・チップとの間のメモリ・ボトルネック351、352である。ALUはキャッシュ又はメモリの任意の部分にアクセスできるので、アクセス経路351、352は、長い長さのグローバル配線から成る。これらのパスは、使用可能な配線の数にも制限がある。特に、高速のCPUと大容量のメモリがある時に、見かけのボトルネックが、これらの2つの間に基本的に存在する。
ボトルネックを除去する鍵は、CPUと同じメモリ・クロック・サイクルを有することである。第1に、アドレス指定手順を作成して、メモリ・アクセスを改善しなければならない。第2に、より長い配線に起因する時間的な遅延を、メモリの内部とメモリの外部の両方で大幅に減少しなければならない。
これらの2つの課題を解決することによって、メモリとCPUの間の高速結合が成されるので、メモリ・ボトルネックの無い計算機が実際に可能になる。
プロセッサは、これらの問題のために総エネルギーの70%を費やしており、これは、図32に示すように、命令供給用の42%とデータ用の28%とに分割される。配線の問題は、電力消費だけでなく信号の時間的な遅延も誘発する。配線の問題を克服することは、データ/命令の流れを制限する、ボトルネック351、352の消滅を意味する。我々がチップ間及びチップ内の配線を除去できれば、電力消費と時間的な遅延とメモリ・ボトルネック351、352の問題が解決できることになる。
本発明の特徴は(a)クロック信号を生成するクロック発生回路を有する制御装置、及び、クロック信号に同期した演算論理動作を実行する演算論理装置を含むプロセッサと、(b)それぞれ一組の情報群を格納したメモリユニットのアレイ、このアレイの入力端子及び出力端子を有し、情報をメモリユニットのそれぞれに格納し、且つ、クロック信号に同期して、ステップごとに、出力端子の方向に転送し、格納された情報をプロセッサに能動的に逐次出力し、演算論理装置が演算論理動作を、格納された情報により実行可能であり、更に、命令の転送の場合には、プロセッサに向かう命令の流れのみを一方向に規定して、演算論理装置の処理の結果が入力されるマーチング主記憶装置とを備える計算機システムことである。
従来の計算機システムの構成を示す概略的なブロック図である。 本発明の第1の実施の形態に係る計算機システムの基本構成を示す概略的なブロック図である。 本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成するメモリユニットのアレイと、マーチング主記憶装置における情報の転送とを示す図である。 本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のセル・レベルにおける表現を示す図である。 本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置に適用されるように構成されたクロック信号の波形の一例を示す図である。 本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のセル・レベルにおける表現におけるセルのそれぞれのANDゲートの回路構成の一例を示す図である。 本発明の第1の実施の形態に係る計算機システムに用いる逆方向マーチング主記憶装置を形成するメモリユニットのアレイと、逆方向マーチング主記憶装置における情報の逆方向の転送とを示す図である。 図8(a)は、図7で示した逆方向マーチング主記憶装置のセル・レベルにおける表現においてi番目の行を形成するアレイ上のセルのそれぞれのANDゲートの回路構成の一例を示し、図8(b)は、図7で示した逆方向マーチング主記憶装置に適用されるように構成されたクロック信号の波形の一例を示す図である。 本発明の第1の実施の形態に係る計算機システムにおいて、マーチング主記憶装置のメモリユニット・ストリーミング時間とプロセッサ(CPU)のクロック・サイクルとの間の時間領域での関係を示す図である。 本発明の第1の実施の形態に係る計算機システムの構成を概略的に示す。図10では、メモリ・ボトルネックが、本発明の第1の実施の形態に係る計算機システムにおいて、プロセッサ(CPU)とマーチング主記憶装置を含めたマーチング記憶装置構造との間で消滅している。 図11(a)は、本発明の第1の実施の形態に係る計算機システムにおいて、マーチング主記憶装置を含むマーチング記憶装置構造からプロセッサ(CPU)に流れる前方向に移動するデータ流と、プロセッサ(CPU)からマーチング記憶装置構造に流れる後方向に移動するデータ流とを示し、図11(b)は、マーチング記憶装置構造のメモリユニット・ストリーミング時間がプロセッサ(CPU)のクロック・サイクルと等しいという理想的な条件のもとで、マーチング記憶装置構造とプロセッサ(CPU)との間で作られた帯域幅を示す図である。 図12(a)は、情報の隊列進行状況(前方向に向かう隊列進行状況)の具体的なイメージを示す。図12(a)では、情報は1次元のマーチング主記憶装置の右手方向に向けて隊列進行(シフト)する。図12(b)は1次元のマーチング主記憶装置の漂遊状態を示し、図12(c)は、情報が逆方向に向かって隊列進行する状況(後方向に向かう隊列進行状況)の具体的なイメージを示す。図12(c)では、情報は、本発明の第1の実施の形態に係る計算機システムにおいて、1次元のマーチング主記憶装置の左手方向に向けて隊列進行(シフト)している。 本発明の第1の実施の形態に係る計算機システムにおいて、命令またはスカラデータを格納して双方向に転送する、図12(a)〜(c)に示した双方向の転送状況を達成できる、1次元のマーチング主記憶装置の回路構成の一例を示す図である。 図14(a)は、プロセッサに隣接した1次元のマーチング主記憶装置における命令の双方向転送モードを示し、命令は、プロセッサの方向に向けて移動し、且つ左手側に配置された次段のメモリから、又は次段のメモリに向けて移動する。図14(b)は、ALUに隣接した1次元のマーチング主記憶装置におけるスカラデータの双方向転送モードを示し、スカラデータは、ALUに向けて移動し、且つ次段のメモリから、又は次段のメモリに向けて移動する。図14(c)は、パイプラインに隣接した1次元のマーチング主記憶装置におけるベクトルデータ又はストリーミングデータの単一方向転送モードを示し、ベクトルデータ又はストリーミングデータは、パイプラインに向けて移動し、且つ次段のメモリから移動する。 図15(a)は、図15(b)と比較するものであり、各メモリユニットがアドレスでラベル表示されている現行の記憶装置の内部構成を示し、図15(b)は、本発明の1次元のマーチング主記憶装置の内部構成を示す。図15(b)では、それぞれのメモリユニットの位置指定が、ベクトルデータ又はストリーミングデータで連続するメモリユニットの配列の開始ポイントと終了ポイントとを識別するために少なくとも必要である。 図16(a)は、本発明の1次元のマーチング主記憶装置の内部構成を示す。図16(a)では、それぞれのメモリユニットの位置指定が、ベクトル命令で連続するメモリユニットの配列の開始ポイントと終了ポイントとを識別するために少なくとも必要である。図16(b)は、スカラデータ用の本発明の1次元のマーチング主記憶装置の内部構成を示す図である。図16(c)は、本発明の1次元のマーチング主記憶装置の内部構成を示す。図16(c)では、位置インデックスが、ベクトルデータ又はストリーミングデータで連続するメモリユニットの配列の開始ポイントと終了ポイントとを識別するために少なくとも必要である。 図17(a)は、ベクトルデータ又はストリーミングデータの場合の複数のページによって形成された、本発明のマーチング主記憶装置の全体的な構成の一例を概略的に示し、図17(b)は、ページの一つの構成の一例を概略的に示し、ページのそれぞれはベクトルデータ又はストリーミングデータの場合の複数のファイルで形成され、図17(c)は、ファイルの一つの構成の一例を概略的に示し、ファイルのそれぞれは、本発明の第1の実施の形態に係る計算機システムにおいて、ベクトルデータ又はストリーミングデータの場合の複数のメモリユニットで形成されている。 図18(a)は、プログラム/スカラデータの場合の複数のページで形成された、本発明のマーチング主記憶装置の全体的な構成の一例を概略的に示す。図18(a)では、それぞれのページは、それ自体の位置インデックスをアドレスとして有し、図18(b)は、2進法のデジットを用いて、ページの一つの構成とページの駆動位置との一例を概略的に示し、ページのそれぞれは、プログラム/スカラデータの場合の複数のファイルで形成され、それぞれファイルは、それ自体の位置インデックスをアドレスとして有し、図18(c)は、2進法のデジットを用いて、ファイルの一つの構成とファイルの駆動位置との一例を概略的に示し、ファイルのそれぞれは、プログラム/スカラデータの場合の複数のメモリユニットで形成される。図18(c)では、それぞれメモリユニットは、本発明の第1の実施の形態に係る計算機システムにおいて、それ自体の位置インデックスをアドレスとして有している。 図19(a)は、現行の記憶装置の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のものと比較して、概略的に示し、図19(b)は、マーチング主記憶装置の速度/処理能力を、図19(a)に示した現行の記憶装置のものと比較して、概略的に示す図である。 図20(a)は、スカラ命令用の現行の記憶装置の最悪の場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のものと比較して、概略的に示し、図20(b)は、マーチング主記憶装置の速度/処理能力を、図20(a)に示した現行の記憶装置の最悪の場合のものと比較して、概略的に示す図である。 図21(a)は、スカラ命令用の現行の記憶装置における中程度に適度な場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のものと比較して、概略的に示し、図21(b)は、マーチング主記憶装置の速度/処理能力を、図21(a)に示した現行の記憶装置における中程度に適度な場合のものと比較して、概略的に示す図である。 図22(a)は、スカラデータの場合の、現行の記憶装置における中程度に適度な場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のものと比較して、概略的に示し、図22(b)は、マーチング主記憶装置の速度/処理能力を、図22(a)に示した現行の記憶装置のものと比較して、概略的に示す図である。 図23(a)は、ストリーミングデータとデータ・パラレルの場合用の現行の記憶装置における最良の場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置のものと比較して、概略的に示し、図23(b)は、マーチング主記憶装置の速度/処理能力を、図23(a)に示した現行の記憶装置における最良の場合のものと比較して、概略的に示す図である。 2次元のメモリユニットのアレイの一例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 2次元のメモリユニットのアレイの他の例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 2次元のメモリユニットのアレイの更に他の例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 2次元のメモリユニットのアレイの更に他の例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 2次元のメモリユニットのアレイの更に他の例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 2次元のメモリユニットのアレイの更に他の例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 2次元のメモリユニットのアレイの更に他の例を示し、メモリユニットのそれぞれ、データ又は命令を格納し転送し、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置を形成する。 図31(a)は、現行のマイクロプロセッサのデバイス・レベル・エネルギー消費を、静的と動的なエネルギー消費に分解して示し、図31(b)は、図31(a)に示した動的なエネルギー消費の電力消費のネットとオーバーヘッドを示し、図31(c)は現行のマイクロプロセッサの正味のエネルギー消費を示す図である。 ダリが評価した、従来のアーキテクチュアのレジスタとキャッシュとを含んでいる、プロセッサ上の実際のエネルギー消費分布を示す図である。 図33(a)は、従来のキャッシュを基礎としたアーキテクチュアのエネルギー消費を、キャッシュメモリのエネルギー消費を静的と動的なエネルギー消費に分解して示し、図33(b)は、本発明の第3の実施の形態に係る計算機システムにおけるエネルギー消費を、マーチング・キャッシュメモリのエネルギー消費を静的と動的なエネルギー消費に分解して示す図である。 本発明の第2の実施の形態に係る計算機システムの構成を示す概略的なブロック図である。 本発明の第3の実施の形態に係る計算機システムの構成を示す概略的なブロック図である。 図36(a)は、本発明の第3の実施の形態に係る計算機システムにおける演算パイプラインとマーチング・レジスタユニットの組み合わせを示し、図36(b)は本発明の第3の実施の形態に係る計算機システムにおけるマーチング・キャッシュユニットのアレイを示す図である。 本発明の第3の実施の形態の変形例に従って、単一のプロセッサコアとマーチング・キャッシュメモリとマーチング・レジスタファイルとの組み合わせによって形成された計算機システムの構成の概略的なブロック図である。 本発明の第3の実施の形態の他の変形例に従って、単一の演算パイプラインとマーチング・キャッシュメモリとマーチング・ベクトルレジスタファイルとの組み合わせによって形成された計算機システムの構成の概略的なブロック図である。 本発明の第3の実施の形態の更に他の変形例に従って、複数のプロセッサコアとマーチング・キャッシュメモリとマーチング・レジスタファイルとの組み合わせによって形成された計算機システムの構成の概略的なブロック図である。 本発明の第3の実施の形態の更に他の変形例に従って、複数の演算パイプラインとマーチング・キャッシュメモリとマーチング・ベクトルレジスタファイルとの組み合わせにより形成された計算機システムの構成の概略的なブロック図である。 図41(a)は、複数の演算パイプラインと複数の従来のキャッシュメモリと複数の従来のベクトルレジスタファイル(RFs)と従来の主記憶装置との組み合わせによって形成され、そこにはボトルネックが従来のキャッシュメモリと従来の主記憶装置との間に発生している、従来の計算機システムの構成の概略的なブロック図を示し、図41(b)は、本発明の第3の実施の形態の更に他の変形例に従って、ボトルネックが作られない、複数の演算パイプラインと複数のマーチング・キャッシュメモリと複数のマーチング・ベクトルレジスタファイルとマーチング主記憶装置との組み合わせによって形成された、計算機システムの構成の概略的なブロック図である。 本発明の第4の実施の形態に係る高性能のコンピューティング(HPC)システムの構成を示す概略的なブロック図である。 本発明の第5の実施の形態に係る計算機システムの構成を示す概略的なブロック図である。 図44(a)は、本発明の第5の実施の形態に係る計算機システムに用いる3次元のマーチング主記憶装置の断面図を示し、図44(b)は本発明の第5の実施の形態に係る計算機システムに用いる3次元のマーチング・キャッシュの断面図を示し、図44(c)は本発明の第5の実施の形態に係る計算機システムに用いる3次元のマーチング・レジスタファイルの断面図である。 本発明の第5の実施の形態に係る計算機システムに用いる3次元構成の斜視図である。 本発明の第5の実施の形態に係る計算機システムに用いる他の3次元構成の斜視図である。 図46に示した3次元構成の断面図である。 本発明の第5の実施の形態に係る計算機システムに用いる他の3次元構成の断面図である。 本発明の第5の実施の形態に係る計算機システムにおいて制御パスを表すことによって、制御処理を実行する計算機システムの基本的なコアの3次元構成の断面図を概略的に示す図である。 本発明の第5の実施の形態に係る計算機システムにおいてスカラデータ用のデータ経路を表すことによって、スカラデータ処理を実行する計算機システムの基本的なコアの3次元構成の断面図を概略的に示す図である。 本発明の第5の実施の形態に係る計算機システムにおいてベクトルデータ又はストリーミングデータ用のデータ経路を表すことによって、ベクトルデータ又はストリーミングデータ処理を実行する計算機システムの基本的なコアの3次元構成の断面図を概略的に示す図である。 計算機システムのスカラデータ部を実行する、計算機システムの基本的なコアの3次元構成の断面図を概略的に示す。図52では、複数の処理装置(CPU)が、スカラデータだけでなくベクトルデータ又はストリーミングデータも実行し、パイプラインのALUが、本発明の第5の実施の形態に係る計算機システム用の制御パスとスカラデータ経路との組み合わせを表すことによって、処理装置に含まれている。 MISDアーキテクチュアのスカラ/ベクトルデータのビット・レベル並列処理を示す図である。 SIMDアーキテクチュアのベクトルデータの並列処理を示す図である。 ベクトル処理における一般的なチェイニングを示す図である。 MISDアーキテクチュアのスカラ/ベクトルデータの並列処理を示す図である。 MISDアーキテクチュアのスカラ/ベクトルデータの並列処理を示す図である。
本発明の様々な実施の形態を、添付の図面を参照して説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付し、同一又は類似の部分の説明は省略または単純化されていることに注意すべきである。一般に、半導体装置の表現では普通のことであるが、厚みと平面寸法との関係、各層の厚みの比率等は現実のものとは異なることに留意すべきである。又、同一の図面内及び図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。以降の説明では、本発明を十分に理解できるように、特定の材料や処理を用いて、具体的に説明されている。しかし、本発明は、これらの特定の詳細な説明が無くても、実施できることは、当業者には自明のこととである。言い換えれば、周知の製造材料や処理や装置は、本発明を不要に曖昧にしないように細々と説明されていない。「上に」、「上方に」、「下に」、「下方に」、「垂直に」のような前置詞は、基板が実際に保持されている方向と関係無しに、基板の平面を基準にして定められている。層は、介在層がある場合でも、他の層上にあると表現される。
− 第1の実施の形態 −
(計算機システムの基本構成)
図2に示すように、本発明の第1の実施の形態に係る計算機システムは、プロセッサ11とマーチング主記憶装置31とを備えている。プロセッサ11は、クロック信号を生成するクロック発生回路113を有する制御装置111と、クロック信号に同期して演算論理動作を実行する演算論理装置(ALU)112とを含む。図3に示すように、マーチング主記憶装置31は、複数のメモリユニットU、U、U、…….、Un−1、Uにおいて、それぞれワード・サイズのデータ又は命令を含んだ一組の情報群を格納した、複数のメモリユニットU、U、U、…….、Un−1、Uのアレイと、アレイの入力端子と、アレイの出力端子とを有している。図3に示すように、マーチング主記憶装置31は、情報を複数のメモリユニットU、U、U、…….、Un−1、Uのそれぞれに格納し、情報をクロック信号に同期して、ステップごとに、出力端子の方向に転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は、格納された情報により演算論理動作を実行する。
図2に示すように、マーチング主記憶装置31とプロセッサ11は、複数の接合部材54により電気的に接続されている。例えば、接合部材54のそれぞれは、マーチング主記憶装置31に取り付けられた第1のターミナル・ピンと、プロセッサ11に取り付けられた第2のターミナル・ピンと、第1と第2のターミナル・ピンの間に差し挟まれた導電性バンプとで形成されている。導電性バンプの材料として、半田ボール、金(Au)バンプ、銀(Ag)バンプ、銅(Cu)バンプ、ニッケル−金(Ni−Au)合金バンプ、又はニッケル−金−インジウム(Ni−Au−In)合金バンプなどが使用可能である。ALU112の処理の最終データはマーチング主記憶装置31に接合部材54を介して出力される。したがって、双方向矢印Φ12で表されるように、データは接合部材54を介してマーチング主記憶装置31とプロセッサ11との間で双方向に転送される。逆に、単一方向矢印η11で表されるように、命令の転送については、マーチング主記憶装置31からプロセッサ11に向かう一方向のみに、命令の流れが制限される。
図2に示すように、本発明の第1の実施の形態に係る計算機システムの構成は、ディスクのような外部2次記憶装置41と、入力装置61と、出力装置62と、入力/出力(I/O)インタフェース回路63とを更に備えている。従来のフォン・ノイマン型計算機と同様に、信号またはデータを入力装置61が入力し、信号またはデータを出力装置62が出力している。例えば、周知のキーボードや周知のマウスは、入力装置61と見なすことができ、周知のモニターやプリンターは出力装置62と見なすことができる。計算機間の通信用の周知のデバイスは、モデムやネットワーク・カードのように、入力装置61と出力装置62の両方で一般的に機能する。入力装置61又は出力装置62としてのデバイスの呼称は、全体像に依存することに注意すべきである。入力装置61は、人間のユーザが呈する物理的な移動を入力し、それを第1の実施の形態に係る計算機システムが理解できる信号に変換する。例えば、入力装置61は、入力したデータと命令とを、第1の実施の形態に係る計算機システムが識別可能な2進コードの電気信号のパターンに変換し、入力装置61からの出力は、マーチング主記憶装置31にI/Oインタフェース回路63を介して出力される。出力装置62には、マーチング主記憶装置31がI/Oインタフェース回路63を介して出力する信号が入力される。出力装置62は、次に、これらの信号を、人間のユーザが見る又は読むことができる表現方式に変換し、入力装置61の処理と逆の処理を行って、デジタル信号を、ユーザが判読可能な形式に変換する。I/Oインタフェース回路63は、プロセッサ11が入力装置61と出力装置62とを駆動する時に必ず必要になる。プロセッサ11は、I/Oインタフェース回路63を介して入力装置61と出力装置62とに通信できる。異なるデータ形式で交換された場合、I/Oインタフェース回路63はシリアル・データをパラレル形式に且つ逆方向に変換する。必要に応じて、プロセッサ11による更なる処理のために、インタラプト及び対応する形式番号を生成する方式もある。
2次記憶装置41は、マーチング主記憶装置31より更に長い時間的な基準でデータと情報とを格納する。マーチング主記憶装置31は、いま実行中のプログラムと、いま採用されているデータの格納を主に対象としているが、2次記憶装置41は、計算機がオフに切り替えられている、又はプログラムがいま実行していない場合でも、維持される必要のある任意のデータと情報を格納するように全体的に意図されている。2次記憶装置41の例は、周知のハードディスク(又はハードドライブ)と周知の(CD−ROMドライブのような)外部メデイア−ドライブである。これらの格納方法は、計算機のオペレーティング・システムと、ソフトウェアのユーザのコレクションと、ユーザが望む任意の他のデータとを格納するために最も広く用いられている。ハードドライブは半永久的な基準でデータとソフトウェアとを格納するために用いられ、外部メディア・ドライブは他のデータを保持するために用いられるが、このセットアップは、入手可能な記憶装置の異なる形式とそれぞれを利用する際の便宜性に基づいて大きく変わる。双方向矢印Φで表されるように、データは、現行の接続配線53を介して2次記憶装置41とマーチング主記憶装置31とプロセッサ11との間で双方向で転送される。
図示を省略しているが、図2に示す第1の実施の形態に係る計算機システムでは、プロセッサ11は、マーチング主記憶装置31から出力端子を介して格納された情報を入力する複数の演算パイプラインを含むことができ、双方向矢印Φ12で表されるように、データは、接合部材54を介してマーチング主記憶装置31と複数の演算パイプラインとの間で双方向に転送される。
図2に示す第1の実施の形態に係る計算機システムには、データバスとアドレスバスとから成るバスが無い。計算機システム全体には、プロセッサ11とマーチング主記憶装置31との間における任意のデータ交換でもグローバル配線を必要としないからである。一方、従来の計算機システムでは、配線又はバスがボトルネックを形成する。マーチング主記憶装置31、又は対応するALU112とマーチング主記憶装置31との接続部分の内部に短い局部的な配線が存在するだけである。時間的な遅延と浮遊容量とを生成するグローバル配線が存在しないので、第1の実施の形態に係る計算機システムは、更に高速の処理速度と小電力消費とを達成できる。
(マーチング主記憶装置のセル・レベル表現)
最も一般的な従来の計算機では、アドレス決定の単位は、文字(character)(例えば、バイト)又はワードである。単位がワードの場合、大量のメモリに、あるサイズのアドレスを用いてアクセスできる。他方で、単位がバイトの場合、それぞれの文字をアドレスできる(すなわち、メモリ動作中に選択できる)。マシン命令は、通常は、アーキテクチュアのワード・サイズの分数または倍数である。これは、命令とデータが通常は同じメモリ・サブシステムを共有するので、自然な選定である。
図4は、図3に示すマーチング主記憶装置31のセル・レベルにおける表現に対応している。図4で、m×nマトリクスの第1のカラムは、セルM11、M21、M31、……、Mm−1,1、Mm1の垂直方向のアレイで形成され、図3に示す第1のメモリユニットUを表す。ここで、”m”は、ワード・サイズで決まる整数である。ワード・サイズの選定は実質的に重要であるが、計算機アーキテクチュアを設計する時に、ワード・サイズは、8ビットの倍数に自然になり、16、32、64ビットが広く用いられている。同様に、m×nマトリクスの第2のカラムは、セルM12、M22、M32、……、Mm−1,2、Mm2の垂直方向のアレイで形成され、第2のメモリユニットUを表し、m×nマトリクスの第3のカラムは、セルM13、M23、M33、……、Mm−1,3、Mm3の垂直方向のアレイで形成され、第3のメモリユニットUを表し、……、m×nマトリクスの(n−1)番目のカラムは、セルM1,n−1、M2,n−1、M3,n−1、……、Mm−1,n−1、Mm,n−1の垂直方向のアレイでて形成され、(n−1)番目のメモリユニットUn−1を表し、m×nマトリクスのn番目のカラムは、セルM1,n、M2,n、M3,n、……、Mm−1,n、Mm,nの垂直方向のアレイで形成され、n番目のメモリユニットUnを表す。
図4に示すマーチング主記憶装置31のセル・レベルにおける表現で、第1の行で最左端に配置され且つ入力端子Iに接続された第1のセルM11は、情報を格納するコンデンサC11と、コンデンサC11に接続された一方の入力、クロック信号が入力する他方の入力、及び第1の行において隣接する第2のセルM21に設けられた次段のANDゲートG21の一方の入力に接続された出力を有するANDゲートG11とを備えている。クロック信号の波形の一例が図5に図示されている。クロック信号の”1”の論理値がANDゲートG11の他方の入力に出力されると、コンデンサC11に格納された情報が、隣接する第2のセルM12に設けられたコンデンサC12に転送され、コンデンサC12が情報を格納する。すなわち、マーチング主記憶装置31のセル・レベルにおける表現の第1の行の第2のセルM12は、コンデンサC12と、コンデンサC12に接続された一方の入力、クロック信号が入力する他方の入力、及び第1の行において隣接する第3のセルM13に設けられた次段のANDゲートG13の一方の入力に接続された出力を有する、ANDゲートG12とを具備している。同様に、マーチング主記憶装置31のセル・レベルにおける表現の第1の行の第3のセルM13は、情報を格納するコンデンサC13と、コンデンサC13に接続された一方の入力、クロック信号が入力する他方の入力、隣接する第4のセルに設けられた次段のANDゲートの一方の入力に接続された出力を有する、ANDゲートG13とを備えている。但し、第4のセルの図示は省略されている。したがって、”1”の論理値がANDゲートG12の他方の入力に出力されると、コンデンサC12に格納された情報が第3のセルM13に設けられたコンデンサC13に転送され、コンデンサC13が情報を格納する。”1”の論理値がANDゲートG13の他方の入力に出力されると、コンデンサC13に格納された情報が第4のセルに設けられたコンデンサに転送される。更に、マーチング主記憶装置31のセル・レベルにおける表現の第1の行の(n−1)番目のセルM1、n−1は、情報を格納するコンデンサC1、n−1と、コンデンサC1、n−1に接続された一方の入力、クロック信号が入力する他方の入力、及び第1の行の最右端に配置され且つ出力端子Oに接続されている、隣接するn番目のセ
ルM1nに設けられた次段のANDゲートG1nの一方の入力に接続された出力を有するANDゲートG1、n−1とを備えている。したがって、セルM11、M12、M13、……、M1、n−1、M1nのそれぞれは、情報を格納し、情報をクロック信号と同期して、ステップごとに、出力端子Oの方向に向けて転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は、格納された情報により演算論理動作を実行する。
同様に、図4に示すマーチング主記憶装置31のセル・レベルにおける表現で、第2の行で最左端に配置され且つ入力端子Iに接続された第2のセルM21は、コンデンサC21と、コンデンサC21に接続された一方の入力、クロック信号が入力する他方の入力、及び第2の行において隣接する第2のセルM21に設けられた次段のANDゲートG21の一方の入力に接続された出力を有する、ANDゲートG21とを備えている。マーチング主記憶装置31のセル・レベルにおける表現の第2の行の第2のセルM22は、コンデンサC22と、コンデンサC22に接続された一方の入力、クロック信号が入力する他方の入力、及び第2の行において隣接する第3のセルM23に設けられた次段のANDゲートG23の一方の入力に接続された出力を有する、ANDゲートG22とを備えている。同様に、マーチング主記憶装置31のセル・レベルにおける表現の第2の行の第3のセルM23は、コンデンサC23と、コンデンサC23に接続された一方の入力、クロック信号が入力する他方の入力、隣接する第4のセルに設けられた次段のANDゲートの一方の入力に接続された出力を有するANDゲートG23とを備えている。更に、マーチング主記憶装置31のセル・レベルにおける表現の第2の行の(n−1)番目のセルM2、n−1は、コンデンサC2、n−1と、コンデンサC2、n−1に接続された一方の入力、クロック信号が入力する他方の入力、及び第2の行の最右端に配置され且つ出力端子Oに接続されている、隣接するn番目のセルM1nに設けられた次段のANDゲートG1nの一方の入力に接続された出力を有するANDゲートG2、n−1とを備えている。したがって、第2の行のセルM21、M22、M23、……、M2、n−1、M1nのそれぞれは、情報を格納し、情報をクロック信号と同期して、ステップごとに、出力端子Oの方向に向けて転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は、格納された情報により演算論理動作を実行する。
第3の行には、最左端に配置され且つ入力端子Iに接続された第1のセルM31と、第1のセルM31に隣接した第2のセルM32と、第2のセルM32に隣接した第3のセルM33と、……、(n−1)番目のセルM3、n−1と、第3の行で最右端に配置され且つ出力端子Oに接続されているn番目のセルM3nが配列されている。そして、第3の行のセルM31、M32、M33、……、M3、n−1、M3nのそれぞれは、情報を格納し、情報をクロック信号と同期して、ステップごとに、出力端子Oの方向に向けて転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は格納された情報により演算論理動作を実行する。
(m−1)番目の行には、最左端に配置され且つ入力端子Im−1に接続された、第1のセルM(m−1)、1と、第1のセルM(m−1)、1に隣接した第2のセルM(m−1)、2と、第2のセルM(m−1)、2に隣接した第3のセルM(m−1)、3と、……、(n−1)番目のセルM(m−1)、n−1と、(m−1)番目の行で最右端に配置され且つ出力端子Om−1に接続されているn番目のセルM(m−1)、nが配列されている。そして、(m−1)番目の行のセルM(m−1)、1、M(m−1)、2、M(m−1)、3、……、M(m−1)、n−1、M(m−1)、nのそれぞれは、情報を格納し、情報をクロック信号と同期して、ステップごとに、出力端子Om−1に転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は格納された情報により演算論理動作を実行する。
m番目の行には、最左端に配置され且つ入力端子I に接続された第1のセルMm1と、第1のセルMm1に隣接した第2のセルMm2と、第2のセルMm2に隣接した第3のセルMm3と、……、(n−1)番目のセルMm(n-1)と、m番目の行で最右端に配置され且つ出力端子Oに接続されているn番目のセルMmnが配列されている。そして、m番目の行のセルMm1、Mm2、Mm3、……、Mm(n-1)、Mmnのそれぞれは、情報を格納し、情報をクロック信号と同期して、ステップごとに出力端子Oに転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は格納された情報により演算論理動作を実行する。
本発明のANDゲートを形成する様々な回路構成があるが、第1の実施の形態に係るマーチング主記憶装置31のセル・レベルにおける表現において、i番目の行のj番目のセルMij、i番目の行の(j+1)番目のセルMij+1、(i+1)番目の行のj番目のセルMi+1、j+1、(i+1)番目の行の(j+1)番目のセルMi+1、j+1に使用できる、ANDゲートGij、Gi、j+1、Gi+1、j、Gi+1、j+1の回路構成の一例が、図6に図示されている。
i番目の行のj番目のセルMijは、情報を格納するj番目のコンデンサCijと、j番目のコンデンサCijに接続された一方の入力、クロック信号が入力する他方の入力、i番目の行の隣接する(j+1)番目のセルMi、j+1に設けられた次段の(j+1)番目のANDゲートGi、j+1の一方の入力に接続された出力を有するj番目のANDゲートGijとを備えている。j番目のANDゲートGijは、電源配線VDDに接続されたソース電極とクロック信号供給配線に接続されたゲート電極とを有する第1のpMOSトランジスタQij1と、第1のpMOSトランジスタQij1と並列に接続されると共に、電源配線VDDに接続されたソース電極とコンデンサCijの電極の一方と前段の(j−1)番目のANDゲートGi、j−1の出力との両方に接続されたゲート電極と第1のpMOSトランジスタQij1のドレイン電極に接続されたドレイン電極とを有する、第2のpMOSトランジスタQij2と、第1と第2のpMOSトランジスタQij1、Qij2のドレイン電極を接合する共通ノードに接続されたソース電極とクロック信号供給配線に接続されたゲート電極とを有する第1のnMOSトランジスタQij3と、第1のnMOSトランジスタQij3と直列に接続されると共に、第1のnMOSトランジスタQij3のドレイン電極に接続されたソース電極と第2のpMOSトランジスタQij2のゲート電極に接続されたゲート電極と、j番目のコンデンサCijの電極と前段の(j−1)番目のANDゲートGi、j−1の出力の一方と、接地電位に接続されたドレイン電極とを有する、第2のnMOSトランジスタQij4と、電源配線VDDに接続されたソース電極と第1と第2のpMOSトランジスタQij1、Qij2のドレイン電極を接合する共通ノードに接続されたゲート電極とを有する第3のpMOSトランジスタQij5と、第3のpMOSトランジスタQij5に直列に接続されると共に、第3のnMOSトランジスタQij5のドレイン電極に接続されたソース電極と第3のpMOSトランジスタQij5のゲート電極と第1と第2のpMOSトランジスタQij1、Qij2のドレイン電極を接合する共通ノードとに接続されたゲート電極と、接地電位に接続されたドレイン電極とを有する、第3のnMOSトランジスタQij6とを含む。ここで、
第1のpMOSトランジスタQij1と、第2のpMOSトランジスタQij2と、第1のnMOSトランジスタQij3と、第2のnMOSトランジスタQij4は、j番目のコンデンサCijに接続された一方の入力、クロック信号供給配線に接続された他方の入力、を有するNANDゲートを形成する。そして、第3のpMOSトランジスタQij5と第3のnMOSトランジスタQij6は、j番目のセルMijのNANDゲートの出力に接続された入力と、隣接する(j+1)番目のセルMi、j+1に設けられた次段の(j+1)番目のANDゲートGi、j+1の一方の入力に接続された出力を有するインバータを形成する。
図6に示すように、他のANDゲートGi、j+1、Gi+1、j、Gi+1、j+1の回路構成も、それぞれ、6個のMOSトランジスタで形成される。ANDゲートGi、j+1、Gi+1、j、i+1、j+1の回路構成はANDゲートGijの構成とほぼ似ているので、ANDゲートGi、j+1、Gi+1、j、Gi+1、j+1の回路構成の詳細な説明は、重複した又は余分な説明を避けるために省略する。なお、ANDゲートGij、Gi、j+1、Gi+1、j、Gi+1、j+1は、抵抗−トランジスタ・ロジックのような他の回路構成によって、又はANDロジックの機能を有する、様々な半導体素子、磁気素子、超電導体素子、又は単一の量子素子などで形成できる。
図6に示すように、マーチング主記憶装置31のセル・レベルにおける表現は、メモリ・セルのそれぞれ1個のコンデンサと1個のANDゲートとから成る、DRAMのセル・レベル構成と同様に単純な構成である。ANDゲートGij、Gi、j+1、Gi+1、j、Gi+1、j+1のそれぞれは、図3に示すように、クロックに基づいて信号を左から右にシフトする。特に、ANDゲートGij、Gi、j+1、Gi+1、j、Gi+1、j+1のそれぞれの時間的な遅延τは有意な値を有するので、マーチング主記憶装置31のすべてのメモリユニットの連続したシフト動作を適正に実施できる。
(逆方向マーチング主記憶装置)
図3〜6では、情報を複数のメモリユニットU、U、U、……、Un−1、Uのそれぞれに格納し、情報をクロック信号と同期して、ステップごとに、入力端子から出力端子の方向に転送する、マーチング主記憶装置を示したが、図7では、これらとは異なる他のマーチング主記憶装置を示す。
図7において、複数のメモリユニットU、U、U、……、Un−1、Uのそれぞれは、ワード・サイズのデータ又は命令を含む情報を格納し、プロセッサ11から供給された情報を、ALU112で実行された最終データと共にステップごとに、クロック信号と同期して、図7の出力端子の方向となる逆方向に転送する。
図8(a)は、図7に示した他のマーチング主記憶装置のセル・レベルにおける表現におけるm×nマトリクス(ここで、mはワード・サイズで決まる整数である)のi番目の行のアレイを示していて、このアレイは、ビット・レベルの情報をセルMi1、Mi2、Mi3、……、Mi、n−1、Mi、nに格納し、情報をクロック信号と同期して、ステップごとに、図3〜6に示したマーチング主記憶装置と逆の方向に、すなわち、図3〜6の出力端子OUTから入力端子INの方向に沿って転送する。
図8(a)に示すように、逆方向マーチング主記憶装置では、i番目の行の最右端に配置され且つ入力端子INに接続されたn番目のセルMi、nは、情報を格納するコンデンサCinと、コンデンサCinに接続された一方の入力、クロック信号が入力する他方の入力、i番目の行の隣接する(n−1)番目のセルMi、n−1に設けられた前段のANDゲートGi、n−1の一方の入力に接続された出力を有するANDゲートGinとを備えている。図8(b)に示すように、クロック信号は”1”と”0”の論理値を有し、”1”の論理値が時刻”t”から時刻”t+1”にかけて維持されている。”1”の論理値がANDゲートGの他方の入力に出力されると、コンデンサCinに格納された情報は、i番目の行の隣接する(n−1)番目のセルMi、n−1に設けられたコンデンサCi、n−1に転送され、コンデンサCi、n−1が情報を格納する。すなわち、逆方向マーチング主記憶装置のi番目の行の(n−1)番目のセルMi、n−1は、コンデンサCi、n−1と、コンデンサCi、n−1に接続された一方の入力、クロック信号が入力する他方の入力、隣接するセルMi、n−2(図示省略。)に設けられた前段のANDゲートGi、n−2の一方の入力に接続された出力を有する、ANDゲートGi、n−1とを備えている。
同様に、逆方向マーチング主記憶装置のi番目の行の第3のセルMi3は、情報を格納するコンデンサCi3と、コンデンサCi3に接続された一方の入力、クロック信号が入力する他方の入力、隣接する第2のセルMi2に設けられた前段のANDゲートGi2の一方の入力に接続された出力を有するANDゲートGi3とを備えている。したがって、”1”の論理値がANDゲートGi3の他方の入力に出力されると、コンデンサCi3に格納された情報は、第2のセルMi2に設けられたコンデンサCi2に転送され、コンデンサCi2が情報を格納する。
更に、 逆方向マーチング主記憶装置のi番目の行の第2のセルMi2は、情報を格納するコンデンサCi2と、コンデンサCi2に接続された一方の入力と、クロック信号が入力する他方の入力、i番目の行の最左端に配置され且つ出力端子OUTに接続されている、隣接する第1のセルMi1に設けられた前段のANDゲートGi1の一方の入力に接続された出力を有するANDゲートGi2とを備えている。
図7、8(a)、8(b)に示した第1の実施の形態に係る1次元の逆方向マーチング主記憶装置31によれば、複数のメモリユニットU、U、U、……、Un−1、Uはリフレッシュが要求されない。何故ならば、複数のメモリユニットU、U、U、……、Un−1、Uのすべてが情報移動スキーム(情報の隊列進行スキーム)により通常は自動的にリフレッシュされるからである。そこで、複数のメモリユニットU、U、U、……、Un−1、Uのそれぞれに対するアドレス指定が消滅し、要求された情報は、メモリの端部に設けられた、その宛先ユニットに向かう。第1の実施の形態に係る1次元の逆方向マーチング主記憶装置31にアクセスするメカニズムは、読出/書込情報に対するアドレス指定モードから始まる現行の記憶装置スキームの真の代わりとなるものである。したがって、第1の実施の形態に係る1次元の逆方向マーチング主記憶装置31によれば、アドレス指定モードのないメモリ−アクセスが、従来のメモリ・スキームより遙かに単純になる。
本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置31の概念が、図9に図示されている。これは、マーチング主記憶装置31がマーチング主記憶装置31の複数のメモリユニットU1、U、U、……、Un−1、Uのすべてを介して情報/データを格納し伝送する機能を備えることを意図して設計されているので、従来の計算機用記憶装置と異なる。マーチング記憶装置は、情報/データをプロセッサ(CPU)11に、プロセッサ11と同じ速度で供給する。図9の時間領域での関係に図示されるように、マーチング主記憶装置31の一つの複数のメモリユニットU、U、U、……、Un−1、Uを介して情報/データを転送するために要求されるメモリユニット・ストリーミング時間Tmusは、プロセッサ11のクロック・サイクルTccと等しい。マーチング主記憶装置31は、情報/データを複数のメモリユニットU、U、U、……、Un−1、Uのそれぞれに格納し、クロック信号と同期して、ステップごとに、出力端子の方向に転送し、格納された情報/データをプロセッサ11に出力し、演算論理装置112は、格納された情報/データにより演算論理動作を実行する。
したがって、図10に示すように、マーチング記憶装置構造3は、本発明の第1の実施の形態に係るマーチング主記憶装置31を含む。「マーチング記憶装置構造3」という用語は、次の第2の実施の形態で更に説明される、ALU112に接続されたマーチング命令レジスタファイル(RF)22aとマーチング・データ・レジスタファイル(RF)22bと、後述する第3の実施の形態で更に説明される、マーチング命令キャッシュメモリ21aとマーチング・データ・キャッシュメモリ21bとを、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置31に加えて含む、メモリ構造の総称的な概念を意味する。
図11(a)は、マーチング記憶装置構造3からプロセッサ11に流れる前方進行データ流Sと、プロセッサ11からマーチング記憶装置構造3に流れる後方進行データ流(逆方向データ流)Sとを示し、図11(a)は、マーチング記憶装置構造3のメモリユニット・ストリーミング時間Tmusがプロセッサ11のクロック・サイクルTccと等しいと想定した場合に、マーチング記憶装置構造3とプロセッサ11との間に作られる帯域幅を示す。
(双方向マーチング主記憶装置)
図12(a)〜(c)に示すように、本発明の第1の実施の形態に係るマーチング主記憶装置31は、情報/データの双方向の転送を実現できる。即ち、図12(a)は、情報/データが前方に隊列進行する状況を示しており、情報/データが1次元のマーチング主記憶装置31において右手方向(前方)に隊列進行(シフト)している。図12(b)は、1次元のマーチング主記憶装置31の漂遊状態を示す。図12(c)は、情報/データが逆方向に隊列進行する状況(後方に隊列進行する状況)を示しており、情報/データが1次元のマーチング主記憶装置31の左手方向(逆方向)に隊列進行(シフト)している。
図13は、図12(a)〜(c)に示した双方向の状況を実現できる、双方向マーチング主記憶装置31のセル・レベルにおける表現におけるm×nマトリクス(ここで、”m”はワード・サイズで決まる整数)のi番目の行のアレイを示す。
図13に示すように、2種類のANDゲートが、情報/データの双方向転送を構築するように、i番目の行のセルMi1、Mi2、Mi3、……、Mi、n−1、Mi、nのそれぞれに割り当てられている。双方向マーチング主記憶装置31は、ビット・レベルの情報/データをセルMi1、Mi2、Mi3、……、Mi、n−1、Mi、nのそれぞれに格納し、情報/データをクロック信号と同期して、ステップごとに、前方向及び/又は逆方向(後方向)に、第1のI/Oセレクタ512と第2のI/Oセレクタ513との間で双方向で転送する。
図13に示すマーチング主記憶装置31のセル・レベルにおける表現では、i番目の行の最左端に配置され且つ第1のI/Oセレクタ512に接続された第1のセルMi1は、情報/データを格納するコンデンサCi1と、コンデンサCi1に接続された一方の入力、第1のクロック信号CL1が供給される他方の入力、i番目の行の隣接する第2のセルM(i+1)1に設けられた次段の前方進行用ANDゲートG(i+1)1fの一方の入力に接続された出力を有する前方進行用ANDゲートGi1fと、コンデンサCi1に接続された一方の入力、第2のクロック信号CL2が供給される他方の入力、及び第1のI/Oセレクタ512に接続された出力を有する後方進行用ANDゲートGi1bとを備えている。
前方に進行するデータ流を駆動する第1のクロック信号CL1と後方に進行するデータ流を駆動する第2のクロック信号CL2は、クロック・セレクタ511により、それぞれ、選択され、第1のクロック信号CL1と第2のクロック信号CL2のそれぞれは、”1”と”0”の論理値を有し、”1”の論理値が時刻”t”から時刻”t+1”にかけて維持される。第1のクロック信号CL1の”1”の論理値が前方進行用ANDゲートGi1の他方の入力に出力されると、コンデンサCi1に格納されていた情報/データが、隣接する第2のセルMi2に設けられたコンデンサCi2に転送され、コンデンサCi2が情報/データを格納する。
双方向マーチング主記憶装置31のi番目の行の第2のセルMi2は、情報/データを格納するコンデンサCi2と、コンデンサCi2に接続された一方の入力、第1のクロック信号CL1が供給される他方の入力、i番目の行の隣接する第3のセルMi3に設けられた次段の前方進行用ANDゲートGi3の一方の入力に接続された出力を有する前方進行用ANDゲートGi2fと、コンデンサCi2に接続された一方の入力、第2のクロック信号CL2が供給される他方の入力、前段の後方進行用ANDゲートGi1の一方の入力に接続された出力を有する後方進行用ANDゲートGi2bとを備えている。
同様に、i番目の行の第3のセルMi3は、情報/データを格納するコンデンサCi3と、コンデンサCi3に接続された一方の入力、第1のクロック信号CL1が供給される他方の入力、及び第4のセルの図示を省略するが、隣接する第4のセルに設けられた次段の前方進行用ANDゲートの一方の入力に接続された出力を有する前方進行用ANDゲートGi3fと、コンデンサCi3に接続された一方の入力、第2のクロック信号CL2が供給される他方の入力、隣接する第2のセルMi2に設けられた前段の後方進行用ANDゲートGi2bの一方の入力に接続された出力を有する後方進行用ANDゲートGi3bとを備えている。したがって、第1のクロック信号CL1の”1”の論理値が前方進行用ANDゲートGi2fの他方の入力に出力されると、コンデンサCi2に格納された情報/データが、第3のセルMi3に設けられたコンデンサCi3に転送され、コンデンサCi3が情報/データを格納する。第1のクロック信号CL1の”1”の論理値が前方進行用ANDゲートGi3fの他方の入力に出力されると、コンデンサCi3に格納された情報/データが、第4のセルに設けられたコンデンサに転送される。
更に、i番目の行の(n−1)番目のセルMi、(n−1)は、情報/データを格納するコンデンサCi、(n−1)と、コンデンサCi、(n−1)に接続された一方の入力、第1のクロック信号CL1が供給される他方の入力、i番目の行の最右端に配置され且つ第2のI/Oセレクタ513に接続され、隣接するn番目のセルMi、nに設けられた次段の前方進行用ANDゲートGi、nfの一方の入力に接続された出力を有する前方進行用ANDゲートGi、(n−1)fと、コンデンサCi、(n−1)に接続された一方の入力、第2のクロック信号CL2が供給される他方の入力側に隣接する第3のセルMi、(n−2)b(図示省略。)に設けられた前段の後方進行用ANDゲートGi、(n−2)bの一方の入力に接続された出力を有する後方進行用ANDゲートGi、(n−1)bとを備えている。
最後に、i番目の行の最右端に配置され且つ第2のI/Oセレクタ513に接続されたn番目のセルMi、nは、情報/データを格納するコンデンサCi、nと、コンデンサCinに接続された一方の入力、第2のクロック信号CL2が入力する他方の入力、i番目の行の隣接する(n−1)番目のセルMi、n−1に設けられた前段の後方進行用ANDゲートGi(n−1)bの一方の入力に接続された出力を有する後方進行用ANDゲートGinbと、コンデンサCi、nに接続された一方の入力、第1のクロック信号CL1が供給される他方の入力、及び第2のI/Oセレクタ513に接続された出力を有する前方進行用ANDゲートGi、nfとを備えている。
第2のクロック信号CL2の”1”の論理値が後方進行用ANDゲートGinbの他方の入力に出力されると、コンデンサCinに格納された情報/データは、i番目の行の隣接する(n−1)番目のセルMi、(n−1)に設けられたコンデンサCi、(n−1)に転送され、コンデンサCi、(n−1)が情報/データを格納する。すると、第2のクロック信号CL2の”1”の論理値が後方進行用ANDゲートGi3bの他方の入力に送られ、コンデンサCi3に格納された情報/データが第2のセルMi2に設けられたコンデンサCi2に転送され、コンデンサCi2が情報/データを格納する。更に、第2のクロック信号CL2の”1”の論理値が後方進行用ANDゲートGi2bの他方の入力に出力されると、コンデンサCi2に格納された情報/データが、第2のセルMi1に設けられたコンデンサCi1に転送され、コンデンサCi1が情報/データを格納する。第2のクロック信号CL2の”1”の論理値がANDゲートGi1bの他方の入力に出力されると、コンデンサCi1に格納された情報/データが第1のI/Oセレクタ512に転送される。
したがって、双方向マーチング主記憶装置のi番目の行のセルMi1、Mi2、Mi3、……、Mi、(n−1)、Mi、nのそれぞれ、情報/データを格納し、情報/データを第1のクロック信号CL1と第2のクロック信号CL2とに同期して、ステップごとに、第1のI/Oセレクタ512と第2のI/Oセレクタ513との間で、双方向に転送し、格納された情報/データをプロセッサ11に能動的に逐次出力し、ALU112は、演算論理動作を格納された情報/データを用いて実行する。
(位置指定法)
図14(a)は、プロセッサに隣接する1次元のマーチング主記憶装置の命令の双方向転送モードを示す。図14(a)では、命令が、プロセッサの方向に向けて移動し且つ次段へ、又は次段から移動している。図14(b)は、ALU112に隣接する1次元のマーチング主記憶装置のスカラデータの双方向転送モードを示す。図14(b)では、スカラデータはALUに向けて移動し且つ次段へ、又は次段から移動している。図14(c)は、後述する第3の実施の形態で説明される、パイプライン117に隣接する1次元のマーチング主記憶装置におけるベクトルデータ又はストリーミングデータの単一方向転送モードを示す。図14(c)では、ベクトルデータ又はストリーミングデータは、パイプライン117に向けて移動し且つ次段のメモリから移動する。
第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置31は、ベクトルデータ又はストリーミングデータにおいて、連続する複数のメモリユニットU、U、U、……、Un−1、Uのセットの開始ポイントと終了ポイントとを識別するために、位置指定機能を用いる。他方で、プログラムとスカラデータとに対して、各アイテムは、従来のアドレスと同様の位置指標を有していなければならない。図15(a)は、すべてのメモリユニットU、U、U、……、Un−1、Uが、アドレスA、A、A、……、An−1、Aによりラベル表示されている、従来の主記憶装置の構成を示す。図15(b)は、1次元のマーチング主記憶装置の構成を示す。図15(b)では、それぞれの複数のメモリユニットU、U、U、……、Un−1、Uの位置指定は必ずしも必要でないが、それぞれの複数のメモリユニットU、U、U、……、Un−1、Uの位置指定は、ベクトルデータ又はストリーミングデータにおいて連続するメモリユニットの配列の開始ポイントと終了ポイントとを識別するために少なくとも必要である。
図16(a)は、本発明の1次元のマーチング主記憶装置の内部構成を示す。図16(a)では、現行のアドレスのような位置指標はスカラ命令Iに対して必要でないが、それぞれのメモリユニットの位置指定は、斜線を付した円で示すように、ベクトル命令Iにおいて連続するメモリユニットの配列の開始ポイントと終了ポイントとを識別するために少なくとも必要である。図16(b)は、本発明の1次元のマーチング主記憶装置の内部構成を示す。図16(b)では、位置指標はスカラデータ”b”と”a”に対して必要でない。しかし、図16(c)に示すように、位置指標は、斜線を付した円で示すように、ベクトルデータ又はストリーミングデータ”o”、”p”、”q”、”r”、”s”、”t”、……において連続するメモリユニットの配列の開始ポイントと終了ポイントとを識別するために少なくとも必要である。
次の第2の実施の形態で説明される、ALU112に接続されたマーチング命令レジスタファイル22aとマーチング・データ・レジスタファイル22bと、後述する第3の実施の形態で説明される、マーチング命令キャッシュメモリ21aとマーチング・データ・キャッシュメモリ21bとを、本発明の第1の実施の形態に係る計算機システムに用いるマーチング主記憶装置31に加えて含む、マーチング記憶装置ファミリでは、主記憶装置とレジスタファイルとキャッシュメモリとの間の関係には、基準となる局所の特性に基づいて、それら自体の位置指定法がある。
図17(a)は、ベクトルデータ又はストリーミングデータの場合に対して複数のページPi−1、j−1、Pi、j−1、Pi+1、j−1、Pi+2、j−1、Pi−1、j、Pi、j、Pi+1、j、Pi+2、jで形成される本発明のマーチング主記憶装置の全体的な構成の一例を概略的に示す。図17(b)は、ベクトルデータ又はストリーミングデータの場合に対して複数のファイルF、F、F、Fにより形成される、斜線を付して示したページPi,jの構成の一例を概略的に示し、ページPi−1、j−1、Pi、j−1、Pi+1、j−1、Pi+2、j−1、Pi−1、j、Pi、j、Pi+1、j、Pi+2、jのそれぞれは、第3の実施の形態に係るマーチング・キャッシュメモリ21aと21bに対して使用できる。図17(c)は、斜線を付して示したファイルFの構成の一例を概略的に示し、ファイルF、F、F、Fのそれぞれは、ベクトルデータ又はストリーミングデータの場合に対して複数のメモリユニットU、U、U、……、Un−1、Uにより形成され、ファイルF、F、F、Fのそれぞれは、第2の実施の形態に係るマーチング・レジスタファイル22aと22bに対して使用できる。
同様に、図18(a)は、プログラム/スカラデータの場合に対して複数のページPr−1、s−1、Pr、s−1、Pr+1、s−1、Pr+2、s−1、Pr−1、s、Pr、s、Pr+1、s、Pr+2、sにより形成される本発明のマーチング主記憶装置の全体的な構成の一例を概略的に示す。図18(a)では、各ページはそれ自体の位置指標をアドレスとして有している。図18(b)は、2進法のデジットを用いて、斜線を付して示したページPr−1、sの構成とページPr−1、sの駆動位置の一例を概略的に示し、ページPr−1、s−1、Pr、s−1、Pr+1、s−1、Pr+2、s−1、Pr−1、s、Pr、s、Pr+1、s、Pr+2、sのそれぞれは、プログラム/スカラデータの場合に対して複数のファイルF、F、F、Fで形成されている。ページPr−1、s−1、Pr、s−1、Pr+1、s−1、Pr+2、s−1、Pr−1、s、Pr、s、Pr+1、s、Pr+2、sのそれぞれは、第3の実施の形態に係るマーチング・キャッシュメモリ21aと21bに対して使用できる。図18(b)では、ファイルF、F、F、Fのそれぞれそれ自体の位置指標をアドレスとして有している。図18(c)は、2進法のデジット0、1、2、3を用いて、斜線を付して示したファイルFの構成とファイルFの駆動位置の一例を概略的に示し、ファイルF、F、F、Fのそれぞれは、プログラム/スカラデータの場合に対して複数のメモリユニットU、U、U、……、U、Un+1、Un+2、Un+3、Un+4、Un+5により形成されている。ファイルF、F、F、Fのそれぞれは、第2の実施の形態に係るマーチング・レジスタファイル22aと22bに対して使用でき、図18(b)では、それぞれメモリユニットU、U、U、……、U、Un+1、Un+2、Un+3、Un+4、Un+5は、それ自体の位置指標n+4、n+3、n+2、……、5、4、3、2、1、0をアドレスとして有している。図18(c)は、2進法のデジットによる場合のすべてに対する位置指定法を表している。
図18(c)に示すように、nの2進数は、マーチング・レジスタファイルのサイズに対応する等価サイズを有するメモリ構造において、それぞれ、2のメモリユニットのなかで単一のメモリユニットを識別する。そして、図18(b)に示すように、一枚のページの構造は、4つのファイルF、F、F、Fを識別する2桁で表される、マーチング・キャッシュメモリのサイズに対応する等価サイズを有し、一つのマーチング主記憶装置の構造は、図18(a)に示すように、マーチング主記憶装置の8枚のページPr−1、s−1、Pr、s−1、Pr+1、s−1、Pr+2、s−1、Pr−1、s、Pr、s、Pr+1、s、Pr+2、sを識別する、3桁で表される。
(速度/処理能力)
従来の計算機システムにおけるメモリ・アクセス時間とCPUサイクル時間との間の速度ギャップは、例えば、1:100である。しかし、マーチング記憶装置アクセス時間の速度は、第1の実施の形態に係る計算機システムのCPUサイクル時間と等しい。図19は、キャッシュの無い従来の計算機システムの速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるように構成されたマーチング主記憶装置31のものとを比較したものである。即ち、図19(b)は、100個のメモリユニットU、U、U、……、U100で形成されたマーチング主記憶装置31の速度/処理能力を概略的に示して、図19(a)に示した現行の記憶装置の速度/処理能力と比較している。我々がマーチング主記憶装置31からデータを使用するために必要な処理装置を有するという条件において、更に、マーチング主記憶装置31の99個の同時に動作するメモリユニットも駆動できる。したがって、従来の計算機システムの一つのメモリユニット時間Tmueは、本発明の第1の実施の形態に係るマーチング主記憶装置31の100個のメモリユニット・ストリーミング時間Tmusに等しいと評価される。
そして、図20は、スカラデータ又はプログラム命令に対して現行の記憶装置の最悪の場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるように構成されたマーチング主記憶装置31の速度/処理能力と比較したものである。すなわち、図20(b)の斜線部分は、100個のメモリユニットU、U、U、……、U100で形成されたマーチング主記憶装置31の速度/処理能力を概略的に示し、図20(a)に示した現行の記憶装置の最悪の場合の速度/処理能力と比較したものである。最悪の場合で、我々は、マーチング主記憶装置31の99個のメモリユニットを読み出すことができるが、それらはスカラプログラムの規定により使用できない。
更に、図21は、スカラデータ又はプログラム命令に対して現行の記憶装置における中程度に適度な場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるように構成されたマーチング主記憶装置31の速度/処理能力と比較したものである。すなわち、図21(b)は、100個のメモリユニットU、U、U、……、U100で形成されたマーチング主記憶装置31の速度/処理能力を概略的に示し、図21(a)に示した現行の記憶装置における中程度に適度な場合の速度/処理能力と比較したものである。中程度に適度な場合で、我々は、99個のメモリユニットを読み出すことができる。しかし、幾つかのメモリユニットだけが、スカラプログラムの推測的なデータ作成により、現行の記憶装置の斜線を付して特定したメモリユニットで示すように使用できる。
図22は、スカラデータの場合に対して現行の記憶装置における中程度に適度な場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるように構成されたマーチング主記憶装置31の速度/処理能力と比較したものである。すなわち、図22(b)は、100個のメモリユニットU、U、U、……、U100で形成されたマーチング主記憶装置31の速度/処理能力を概略的に示し、図22(a)に示した現行の記憶装置における中程度に適度な場合の速度/処理能力と比較したものである。図21(a)〜(b)で示した場合と同様に、中程度に適度な場合で、我々は、99個のメモリユニットを読み出すことができる。しかし、幾つかのメモリユニットだけが、マルチ・スレッド並列処理におけるスカラデータ又はプログラム命令の推測的なデータ作成により、現行の記憶装置の、斜線を付して特定したメモリユニットで示すように使用できる。
図23は、ストリーミングデータ、ベクトルデータ又はプログラム命令の場合に対して現行の記憶装置における最良の場合の速度/処理能力を、本発明の第1の実施の形態に係る計算機システムに用いるように構成されたマーチング主記憶装置31の速度/処理能力と比較したものである。すなわち、図23(b)は、100個のメモリユニットU、U、U、……、U100で形成されたマーチング主記憶装置31の速度/処理能力を概略的に示し、図23(a)に示した現行の記憶装置における最良の場合の速度/処理能力と比較したものである。最良の場合において、我々は、マーチング主記憶装置31の100個のメモリユニットが、ストリーミングデータとデータ・パラレルとに対して使用できることが理解できる。
(2次元のマーチング主記憶装置)
メモリユニットは図24〜30に示すように2次元で配置できるので、様々なモードの動作が、スイッチ/ネットワークなしに実現できる。図24〜30に示す第1の実施の形態に係る2次元のマーチング主記憶装置31によれば、複数のメモリユニットU11、U12、U13、……、U1、v−1、U1v; U22、U22、U23、……、U2、v−2、U2v; ……; Uu1、Uu2、Uu3、……、Uu、v−1、Uuvはリフレッシュが要求されない。何故ならば、複数のメモリユニットU11、U12、U13、……、U1、v−1、U1v; U22、U22、U23、……、U2、v−2、U2v; ……; Uu1、Uu2、Uu3、……、Uu、v−1、Uuvのすべては、通常は、情報移動スキーム(情報の隊列進行スキーム)により自動的にリフレッシュされるからである。そして、複数のメモリユニットU11、U12、U13、……、U1、v−1、U1v; U22、U22、U23、……、U2、v−2、U2v; ……; Uu1、Uu2、Uu3、……、Uu、v−1、Uuvのそれぞれに対するアドレス指定が消滅し、要求される情報は、メモリの端部に設けられた、その宛先ユニットに向かう。第1の実施の形態に係る2次元のマーチング主記憶装置31にアクセスするメカニズムは、従来の計算機システムで情報の読み出し及び書き込みを行うためのアドレス指定モードから始まる、現行の記憶装置スキームの真の代わりとなるものである。したがって、第1の実施の形態に係る2次元のマーチング主記憶装置31によれば、第1の実施の形態に係る計算機システムでアドレス指定モードのないメモリ−アクセス・処理が、従来の計算機システムの現行の記憶装置スキームより遙かに単純になる。
(エネルギー消費)
本発明の第1の実施の形態に係る計算機システムのアーキテクチュア、設計及び実現に関する改点善を明確にするために、エネルギー消費の改善を説明する。図31(a)は、マイクロプロセッサのエネルギー消費が、静的な電力消費と動的電力消費に分割できることを示す。図31(a)に示す動的電力消費において、電力消費のネット(正味)とオーバーヘッドが図31(b)で著しい。図31(c)に示すように、正味のエネルギー部分だけが、計算機システムの或るジョブを動作させるために実際に必要になるので、これらの純粋なエネルギー部分が、計算機システムを実施するうえでの最小のエネルギー消費になる。これは、最短の処理時間が、図31(c)に示す正味のエネルギー消費によって実現されることを意味する。
いくつかの試みが構造化、設計及び実現のためのプロセッサに導入されているが、図1に示した従来のアーキテクチュアにはボトルネックがある。従来のアーキテクチュアでは、下記のように、フォン・ノイマン型計算機の様々な課題がある。
1)プログラムが、メモリのデータのように格納される。
2)すべての処理が、単一のプロセッサにおいて基本的に逐次的である。
3)プログラムの動作は、命令の逐次的な実行である。
4)ベクトルデータは、ベクトル命令によりCPUで逐次的に処理される。
5)ストリーミングデータは、スレッドで逐次的に処理される。
6)プログラムには、スレッドが逐次的に配置されている。
7)データ・パラレルは、ベクトルとしてのデータの配置から成る。
8)ストリーミングデータは、データの流れである。
従来の計算機の特性から、本発明者らは、プログラムとデータの格納は基本的に逐次的に配置された形式になると結論づけた。この事実は、命令の規則的な配置が、プログラム及び対応するデータとに存在することを意味する。
図2に示す本発明の第1の実施の形態に係る計算機システムでは、マーチング主記憶装置31における命令のアクセスは必要でない。何故ならば、命令がそれら自体によりプロセッサ11に能動的にアクセスするからである。同様に、マーチング主記憶装置31におけるデータのアクセスは、データがそれら自体によってプロセッサ11に能動的にアクセスするので必要でない。
図32は、ウィリアム(William)J.ダリ(Dally)らが『効率の良い埋め込み型コンピューティング(Efficient Embedded Computing)』、計算機(Computer)、第41巻、第7号,2008年,pp27〜32で評価した、従来のアーキテクチュアにおけるレジスタとキャッシュを含めた。プロセッサ全体での実際のエネルギー消費分布を示す。図32には、チップ間の配線を除いた、チップ全体上だけの電力消費分布の評価が開示されている。ダリらにより、命令供給の電力消費は42%と評価され、データ供給の電力消費は28%と評価され、クロックと制御ロジックの電力消費は24%と評価され、演算電力消費は6%と評価される。したがって、我々は、命令供給とデータ供給の電力消費はクロック/制御ロジックの電力消費と演算の電力消費より比較的大きく、これは、メモリとキャッシュとレジスタのすべてがリフレッシュされないことに加えて、これらのキャッシュとレジスタのアクセス方式に起因して大量の配線と一部のソフトウェアのオーバーヘッドによるキャッシュ/レジスタ・アクセスの非効率性に起因すると理解できる。
命令供給の電力消費とデータ供給の電力消費の比は3:2であり、クロックと制御ロジックの電力消費と演算の電力消費の比は4:1なので、図2に示す本発明の第1の実施の形態に係る計算機システムに従って、我々は、マーチング主記憶装置31を少なくとも部分的に用いることにより、データ供給の電力消費を20%に容易に減少できるので、命令供給の電力消費が30%になり、我々は演算の電力消費を10%に増加できるので、クロックと制御ロジックの電力消費が40%になり、これは、命令供給の電力消費とデータ供給の電力消費の合計を50%にでき、クロックと制御ロジックの電力消費と演算の電力消費の合計を50%にできることを意味する。
我々がデータ供給の電力消費を10%に減らすと、命令供給の電力消費が15%になり、我々が演算の電力消費を15%に増加すると、クロックと制御ロジックの電力消費が60%になる。これは、命令供給の電力消費とデータ供給の電力消費の合計を35%にでき、クロックと制御ロジックの電力消費と演算の電力消費の合計を75%にできることを意味する。
従来の計算機システムは、図33(a)に示すようにエネルギーを消耗し、メモリユニットをアドレス指定して読み取り/書き込むために比較的大きな平均活性動作時間が配線遅延時間により生じるが、本発明の実施の形態に係る計算機システムは図33(b)に示すように、より僅かなエネルギーを消耗するだけである。何故ならば、本発明の実施の形態に係る計算機システムは、マーチング記憶装置により、より短い平均した滑らかな活性動作時間になるからである。我々は、僅かなエネルギーで、従来の計算機システムより迅速に同じデータを処理できた。
− 第2の実施の形態 −
図34に示すように、本発明の第2の実施の形態に係る計算機システムは、プロセッサ11とマーチング主記憶装置31とを備えている。プロセッサ11は、クロック信号を生成するクロック発生回路113を有する制御装置111と、クロック信号に同期して演算論理動作を実行する演算論理装置(ALU)112と、制御装置111に接続されたマーチング命令レジスタファイル(RF)22aと、ALU112に接続されたマーチング・データ・レジスタファイル(RF)22bとを含む。
図示を省略しているが、図3〜7、8(a)、8(b)、24〜30に示したマーチング主記憶装置31と非常に類似して、マーチング命令レジスタファイル22aは、命令レジスタユニットのアレイと、マーチング主記憶装置31から格納された命令を入力する第3のアレイの命令レジスタ入力端子と、第3のアレイの命令レジスタ出力端子とを有する。マーチング命令レジスタファイル22aは、命令を命令レジスタユニットのそれぞれに格納し、命令レジスタ入力端子側に隣接する命令レジスタユニットから命令レジスタユニットのそれぞれに格納された命令を隣接する命令レジスタユニットに、命令レジスタ出力端子側に隣接する命令レジスタユニットに向かう方向に沿って、クロック信号に同期して、連続して且つ定期的に転送し、格納された命令による命令を、命令レジスタ出力端子を介して、制御装置111に能動的に逐次出力し、制御装置111は命令により動作を実行する。
更に図3〜7、8(a)、8(b)、24〜30に示したマーチング主記憶装置31と同様に、マーチング・データ・レジスタファイル22bは、データ・レジスタユニットのアレイと、マーチング主記憶装置31から格納されたデータを入力する第4のアレイのデータレジスタ入力端子と、第4のアレイのデータレジスタ出力端子とを有し、データをデータ・レジスタユニットのそれぞれに格納し、データ・レジスタユニットのそれぞれに格納されたデータを、データレジスタ入力端子側に隣接するデータ・レジスタユニットから隣接するデータ・レジスタユニットに、データレジスタ出力端子側に隣接するデータ・レジスタユニットに向かう方向に沿って、クロック信号に同期して連続して定期的に転送し、データをデータレジスタ出力端子を介して能動的にALU112に逐次出力し、マーチング・データ・レジスタファイル22bの詳細な図示は省かれているが、ALU112はデータによって動作を実行する。
図34に示すように、マーチング主記憶装置31の一部とマーチング命令レジスタファイル22aは複数の接合部材54で電気的に接続され、マーチング主記憶装置31の残部とマーチング・データ・レジスタファイル22bは他の複数の接合部材54で電気的に接続されている。
ALU112の処理の最終データはマーチング・データ・レジスタファイル22bに出力される。したがって、双方向矢印Φ24で表されるように、データは、マーチング・データ・レジスタファイル22bとALU112との間で双方向に転送される。更に、マーチング・データ・レジスタファイル22bに格納されたデータは、マーチング主記憶装置31に接合部材54を介して出力される。したがって、双方向矢印Φ23で表されるように、データは、マーチング主記憶装置31とマーチング・データ・レジスタファイル22bとの間を接合部材54を介して双方向に転送される。
逆に、単一方向矢印η22とη23とで表されるように、命令の転送については、マーチング主記憶装置31からマーチング命令レジスタファイル22aに、及びマーチング命令レジスタファイル22aから制御装置111に向かう一方向の命令の流れだけである。
従来の計算機システムでは配線又はバスがボトルネックを形成しているが、図34に示す第2の実施の形態に係る計算機システムには、データバスとアドレスバスとから成るバスは無い。何故ならば、全体的な計算機システムは、マーチング主記憶装置31とマーチング命令レジスタファイル22aの間、マーチング主記憶装置31とマーチング・データ・レジスタファイル22bの間、マーチング命令レジスタファイル22aと制御装置111の間、マーチング・データ・レジスタファイル22bとALU112の間における、任意のデータ交換でも配線を有していないからである。従来の計算機システムではボトルネックを形成しているこれらの配線間で、時間的な遅延と浮遊静電容量とを生成するグローバル配線が無いので、第2の実施の形態に係る計算機システムは、非常に高速の処理速度と低い電力消費とを達成できる。
第2の実施の形態に係る計算機システムの他の機能、構成や動作方法は、第1の実施の形態で既に説明した機能、構成や動作方法と実質的に類似しているので、重複した又は余分な説明は省略する。
− 第3の実施の形態 −
図35に示すように、本発明の第3の実施の形態に係る計算機システムは、プロセッサ11とマーチング・キャッシュメモリ(21a、21b)とマーチング主記憶装置31とを備えている。第2の実施の形態と同様に、プロセッサ11は、クロック信号を生成するクロック発生回路113を有する制御装置111と、クロック信号と同期して演算論理動作を実行する、演算論理装置(ALU)112と、制御装置111に接続されたマーチング命令レジスタファイル(RF)22aと、ALU112に接続されたマーチング・データ・レジスタファイル(RF)22bとを含む。
マーチング・キャッシュメモリ(21a、21b)は、マーチング命令キャッシュメモリ21aとマーチング・データ・キャッシュメモリ21bとを備えている。図示を省略しているが、図3〜7,8(a)、8(b)、24〜30と非常に類似して、マーチング命令キャッシュメモリ21aとマーチング・データ・キャッシュメモリ21bのそれぞれは、一組の情報群に対応する位置にキャッシュメモリユニットのアレイと、マーチング主記憶装置31から格納された情報を入力するアレイのキャッシュ入力端子と、アレイのキャッシュ出力端子とを有し、情報をキャッシュメモリユニットのそれぞれに格納し、クロック信号と同期して、ステップごとに、情報を隣接するキャッシュメモリユニットにそれぞれ転送し、格納された情報をプロセッサ11に能動的に逐次出力し、ALU112は演算論理動作を格納された情報により実行できる。
図35に示すように、マーチング主記憶装置31の一部とマーチング命令キャッシュメモリ21aは複数の接合部材52で電気的に接続され、マーチング主記憶装置31の残部とマーチング・データ・キャッシュメモリ21bは、他の複数の接合部材52で電気的に接続されている。更に、マーチング命令キャッシュメモリ21aとマーチング命令レジスタファイル22aは複数の接合部材51で電気的に接続され、マーチング・データ・キャッシュメモリ21bとマーチング・データ・レジスタファイル22bは他の複数の接合部材51で電気的に接続されている。
ALU112の最終データはマーチング・データ・レジスタファイル22bに出力され、双方向矢印Φ34で表されるように、データは、マーチング・データ・レジスタファイル22bとALU112との間で双方向に転送される。更に、マーチング・データ・レジスタファイル22bに格納されたデータは、マーチング・データ・キャッシュメモリ21bに接合部材51を介して出力され、双方向矢印Φ33で表されるように、データは、マーチング・データ・キャッシュメモリ21bとマーチング・データ・レジスタファイル22bとの間で接合部材51を介して双方向に転送される。更に、マーチング・データ・キャッシュメモリ21bに格納されたデータは、マーチング主記憶装置31に接合部材52を介して出力され、双方向矢印Φ32で表されるように、データは、マーチング主記憶装置31とマーチング・データ・キャッシュメモリ21bとの間で接合部材52を介して双方向に転送される。
逆に、単一方向矢印η31とη32とで表されるように、命令の転送については、マーチング主記憶装置31からマーチング命令キャッシュメモリ21aに、マーチング命令キャッシュメモリ21aからマーチング命令レジスタファイル22aに、及びマーチング命令レジスタファイル22aから制御装置111に向かう一方向の命令の流れだけである。
従来の計算機システムでは配線又はバスがボトルネックを形成しているが、図35に示す第3の実施の形態に係る計算機システムには、データバスとアドレスバスとから成るバスは無い。何故ならば、全体的な計算機システムは、マーチング主記憶装置31とマーチング命令キャッシュメモリ21aの間、マーチング命令キャッシュメモリ21aとマーチング命令レジスタファイル22aの間、マーチング主記憶装置31とマーチング・データ・キャッシュメモリ21bの間、マーチング・データ・キャッシュメモリ21bとマーチング・データ・レジスタファイル22bの間、マーチング命令レジスタファイル22aと制御装置111の間、及びマーチング・データ・レジスタファイル22bとALU112の間における、任意のデータ交換でもグローバル配線を有していないからである。従来の計算機システムではボトルネックを形成しているこれらの配線間で、時間的な遅延と浮遊静電容量とを生成するグローバル配線が無いので、第3の実施の形態に係る計算機システムは、非常に高速の処理速度と低い電力消費とを達成できる。
第3の実施の形態に係る計算機システムの他の機能、構成や動作方法は、第1と第2の実施の形態で既に説明した機能、構成や動作方法と実質的に類似しているので、重複した又は余分な説明は省略する。
図36(a)に示すように、第3の実施の形態に係る計算機システムを構成するALU112は、マーチング・レジスタユニットR11、R12、R13、……、R1n; R22、R22、R23、……、Rnを介して、格納された情報を入力する複数の演算パイプラインP、P、P、……、Pを含む。図36(a)では、データは演算パイプラインP、P、P、……、Pの配列方向と平行に移動する。ベクトルデータが格納されている場合に、マーチング・レジスタユニットR11、R12、R13、……、R1n; R22、R22、R23、……、R2nを使用できる。
更に、図36(b)に示すように、複数のマーチング・キャッシュユニットC11、C12、C13、……、C1n; C21、C22、C23、……、C2n; C31、C32、C33、……、C3nを平行に配列できる。
図37に示すように、第3の実施の形態に係る計算機システムを構成するALU112は、単一のプロセッサコア116を含む。横方向の矢印で表されるように、情報は、マーチング・キャッシュメモリ21からマーチング・レジスタファイル22に及びマーチング・レジスタファイル22からプロセッサコア116に移動できる。プロセッサコア116の最終データはマーチング・レジスタファイル22に出力されるので、データはマーチング・レジスタファイル22とプロセッサコア116の間で双方向に転送される。更に、マーチング・レジスタファイル22に格納されたデータはマーチング・キャッシュメモリ21に出力されるので、データはマーチング・キャッシュメモリ21とマーチング・レジスタファイル22の間で双方向に転送される。命令の転送の場合、処理されるべき情報の反対方向に向かう流れは無い。
図38に示すように、第3の実施の形態に係る計算機システムを構成するALU112は単一の演算パイプライン117を含む。横方向の矢印で表されるように、情報は、マーチング・キャッシュメモリ21からマーチング・ベクトルレジスタファイル22vに及びマーチング・ベクトルレジスタファイル22vから演算パイプライン117に移動できる。演算パイプライン117の最終データはマーチング・ベクトルレジスタファイル22vに出力されるので、データは、マーチング・ベクトルレジスタファイル22vと演算パイプライン117の間で双方向に転送される。更に、マーチング・ベクトルレジスタファイル22vに格納されたデータはマーチング・キャッシュメモリ21に出力されるので、データは、マーチング・キャッシュメモリ21とマーチング・ベクトルレジスタファイル22vの間で双方向に転送される。命令の転送の場合、処理されるべき情報の反対方向に向かう流れは無い。
図39に示すように、第3の実施の形態に係る計算機システムを構成するALU112は、複数のプロセッサコア116−1、116−2、116−3、116−4、……、116−mを含む。横方向の矢印で表されるように、情報は、マーチング・キャッシュメモリ21からマーチング・レジスタファイル22に及びマーチング・レジスタファイル22からプロセッサコア116−1、116−2、116−3、116−4、……、116−mに移動できる。プロセッサコア116−1、116−2、116−3、116−4、……、116−mの最終データはマーチング・レジスタファイル22に出力されるので、データは、マーチング・レジスタファイル22とプロセッサコア116−1、116−2、116−3、116−4、……、116−mとの間で双方向に転送される。更に、マーチング・レジスタファイル22に格納されたデータはマーチング・キャッシュメモリ21に出力されるので、データは、マーチング・キャッシュメモリ21とマーチング・レジスタファイル22との間で双方向に転送される。命令の転送の場合、処理されるべき情報の反対方向に向かう流れは無い。
図40に示すように、第3の実施の形態に係る計算機システムを構成するALU112は、複数の演算パイプライン117−1、117−2、117−3、117−4、……、117−mを含む。横方向の矢印で表されるように、情報は、マーチング・キャッシュメモリ21からマーチング・ベクトルレジスタファイル22vに及びマーチング・ベクトルレジスタファイル22vから演算パイプライン117−1、117−2、117−3、117−4、……、117−mに移動できる。演算パイプライン117−1、117−2、117−3、117−4、……、117−mの最終データは、マーチング・ベクトルレジスタファイル22vに出力されるので、データは、マーチング・ベクトルレジスタファイル22vと演算パイプライン117−1、117−2、117−3、117−4、……、117−mとの間で双方向に転送される。更に、マーチング・ベクトルレジスタファイル22vに格納されたデータはマーチング・キャッシュメモリ21に出力されるので、データは、マーチング・キャッシュメモリ21とマーチング・ベクトルレジスタファイル22vとの間で双方向に転送される。命令の転送の場合、処理されるべき情報の反対方向に向かう流れは無い。
図41(b)に示すように、第3の実施の形態に係る計算機システムを構成するALU112は、複数の演算パイプライン117−1、117−2、117−3、117−4、……、117−mを含んでいて、複数のマーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mは、マーチング主記憶装置31に電気的に接続されている。ここで、第1のマーチング・ベクトルレジスタファイル22v−1は、第1のマーチング・キャッシュメモリ21−1に接続され、第1の演算パイプライン117−1は第1のマーチング・ベクトルレジスタファイル22v−1に接続されている。そして、第2のマーチング・ベクトルレジスタファイル22v−2は第2のマーチング・キャッシュメモリ21−2に接続され、第2の演算パイプライン117−2は第2のマーチング・ベクトルレジスタファイル22v−2に接続されている。第3のマーチング・ベクトルレジスタファイル22v−3は第3のマーチング・キャッシュメモリ21−3に接続され、第3の演算パイプライン117−3は第3のマーチング・ベクトルレジスタファイル22v−3に接続されている、……。m番目のマーチング・ベクトルレジスタファイル22v−mはm番目のマーチング・キャッシュメモリ21−mに接続され、m番目の演算パイプライン117−mはm番目のマーチング・ベクトルレジスタファイル22v−mに接続されている。
情報は、マーチング主記憶装置31からマーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mに並列に、マーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mからマーチング・ベクトルレジスタファイル22v−1、22v−2、22v−3、22v−4、……、22v−mに並列に、及びマーチング・ベクトルレジスタファイル22v−1、22v−2、22v−3、22v−4、……、22v−mから演算パイプライン117−1、117−2、117−3、117−4、……、117−mに並列に移動する。演算パイプライン117−1、117−2、117−3、117−4、……、117−mの最終データはマーチング・ベクトルレジスタファイル22v−1、22v−2、22v−3、22v−4、……、22v−mに出力されるので、データは、マーチング・ベクトルレジスタファイル22v−1、22v−2、22v−3、22v−4、……、22v−mと演算パイプライン117−1、117−2、117−3、117−4、……、117−mとの間で双方向に転送される。更に、マーチング・ベクトルレジスタファイル22v−1、22v−2、22v−3、22v−4、……、22v−mに格納されたデータはマーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mに出力されるので、データは、マーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mとマーチング・ベクトルレジスタファイル22v−1、22v−2、22v−3、22v−4、……、22v−mとの間で双方向に転送され、マーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mに格納されたデータはマーチング主記憶装置31に出力されるので、データは、マーチング主記憶装置31とマーチング・キャッシュメモリ21−1、21−2、21−3、……、21−mとの間で双方向に転送される。命令の転送の場合、処理されるべき情報の反対方向に向かう流れは無い。
逆に、図41(a)に示すように、複数の演算パイプライン117−1、117−2、117−3、117−4、……、117−mを含む従来の計算機システムを構成するALU112では、複数の従来のキャッシュメモリ321−1、321−2、321−3、321−4、……、321−mが、フォン・ノイマン・ボトルネック325を形成する配線及び/又はバスを介して従来の主記憶装置331に電気的に接続されている。そこで、情報は、従来の主記憶装置331から従来のキャッシュメモリ321−1、321−2、321−3、321−4、……、321−mに並列にフォン・ノイマン・ボトルネック325を介して、従来のキャッシュメモリ321−1、321−2、321−3、321−4、……、321−mから従来のベクトルレジスタファイル(RFs)322v−1、322v−2、322v−3、322v−4、……、322v−mに並列に、及び従来のベクトルレジスタファイル322v−1、322v−2、322v−3、322v−4、……、322v−mから演算パイプライン117−1、117−2、117−3、117−4、……、117−mに並列に移動する。
図41(b)に示す第3の実施の形態に係る計算機システムには、データバスとアドレスバスとから成るバスは無い。何故ならば、全体的なシステムは、演算パイプライン117−1、117−2、117−3、117−4、……、117−mとマーチング主記憶装置31との間における、任意のデータ交換でもグローバル配線を有していないからである。ところが、図41(a)に示す従来の計算機システムでは配線又はバスがボトルネックを形成している。これらの配線間には時間的な遅延と浮遊静電容量とを生成するグローバル配線が無いので、図41(b)に示す計算機システムは、非常に高速の処理速度と低い電力消費とを達成できる。
− 第4の実施の形態 −
図42に示すように、第4の実施の形態に係る計算機システムは、従来の主記憶装置31sと、従来の主記憶装置31sに接続されたマザー・マーチング主記憶装置31−0と、グラフィック処理装置(GPU)を基礎とした汎用計算に使用できる、高性能コンピューティング(HPC)システムを形成するためにマザー・マーチング主記憶装置31−0と通信する複数の処理装置12−1、12−2、12−3、……とを備えている。図示を省略しているが、第4の実施の形態に係るHPCシステムは、クロック信号を生成するクロック発生回路113を有する制御装置111と、複数の処理装置12−1、12−2、12−3、……の動作を切り替え及び制御をするフィールド・プログラマブル・ゲートアレイ(FPGA)とを含んでおり、平行で作動することにより高速処理計算の流れを最適化して、帯域幅消費の管理と運営を支援することを意図している。FPGAは、あるタスクのために自らを書き換えることができる、本質的には、計算機チップである。FPGAは、VHDL又はヴェリログ(Verilog)のようなハードウェア記述言語でプログラム化できる。
第1の処理装置12−1は、第1の分岐マーチング主記憶装置31−1と、第1の分岐マーチング主記憶装置31−1に、それぞれ、電気的に接続された複数の第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pと、第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pに、それぞれ、電気的に接続された複数の第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pと、第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pに、それぞれ、電気的にされた複数の第1の演算パイプライン117−11、117−12、……、117−1pとを備えている。
図3〜7,8(a)、8(b)、24〜30などに示した構成と同様に、マザー・マーチング主記憶装置31−0と第1の分岐マーチング主記憶装置31−1と第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pと第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pのそれぞれは、メモリユニットのアレイとアレイの入力端子とアレイの出力端子とを備え、それは、情報をメモリユニットのそれぞれに格納し且つクロック信号と同期して、ステップごとに、入力端子側から出力端子側の方向に転送するように構成されている。
マザー・マーチング主記憶装置31−0と第1の分岐マーチング主記憶装置31−1と第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pと第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pの動作はFPGAで制御されるので、情報は、マザー・マーチング主記憶装置31−0から第1の分岐マーチング主記憶装置31−1に、第1の分岐マーチング主記憶装置31−1から第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pに並列に、第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pから第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pに並列に、及び第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pから第1の演算パイプライン117−11、117−12、……、117−1pに並列に移動する。第1の演算パイプライン117−11、117−12、……、117−1pの最終データは、第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pに出力されるので、データは第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pと第1の演算パイプライン117−11、117−12、……、117−1pとの間で双方向に転送される。更に、第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pに格納されたデータが第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pに出力されるので、データは第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pと第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pとの間で双方向で転送され、第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pに格納されたデータは第1の分岐マーチング主記憶装置31−1に出力されるので、データは第1の分岐マーチング主記憶装置31−1と第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pとの間で双方向に転送される。しかし、FPGAは、第1の処理装置12−1で処理されるべき情報の反対方向に向かう流れが無いように、命令の移動を制御する。
第2の処理装置12−2は、第2の分岐マーチング主記憶装置31−2と、第2の分岐マーチング主記憶装置31−2に、それぞれ、電気的に接続された複数の第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2pと、第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2pに、それぞれ、電気的に接続された複数の第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qと、第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qに、それぞれ、電気的にされた複数の第2の演算パイプライン117−21、117−22、……、117−2pとを備えている。第1の処理装置12−1と同様に、マザー・マーチング主記憶装置31−0と第2の分岐マーチング主記憶装置31−2と第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2pと第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2pのそれぞれは、メモリユニットのアレイとアレイの入力端子とアレイの出力端子とを備え、それは、情報をメモリユニットのそれぞれに格納し且つクロック信号と同期して、ステップごとに、入力端子側から出力端子側の方向に転送するように構成されている。マザー・マーチング主記憶装置31−0と第2の分岐マーチング主記憶装置31−2と第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2pと第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2pの動作はFPGAで制御されるので、情報は、マザー・マーチング主記憶装置31−0から第2の分岐マーチング主記憶装置31−2に、第2の分岐マーチング主記憶装置31−2から第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qに並列に、第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qから第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qに並列に、及び第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qから第2の演算パイプライン117−21、117−22、……、117−2qに並列に移動する。第2の演算パイプライン117−21、117−22、……、117−2qの最終データは、第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qに出力されるので、データは第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qと第2の演算パイプライン117−21、117−22、……、117−2qとの間で双方向に転送される。更に、第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qに格納されたデータが第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qに出力されるので、データは第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qと第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qとの間で双方向で転送され、第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qに格納されたデータは第2の分岐マーチング主記憶装置31−2に出力されるので、データは第2の分岐マーチング主記憶装置31−2と第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qとの間で双方向に転送される。しかし、FPGAは、第2の処理装置12−2で処理されるべき情報の反対方向に向かう流れが無いように、命令の移動を制御する。
例えば、ソース・プログラムのループから生成されたベクトル命令は、マザー・マーチング主記憶装置31−0から第1の処理装置12−1と第2の処理装置12−2と第3の処理装置12−3、……、とに並列に転送されるので、これらのベクトル命令の並列処理は、第1の処理装置12−1と第2の処理装置12−2と第3の処理装置12−3、……のそれぞれで演算パイプライン117−11、117−12、……、117−1p、117−21、117−22、……、117−2q、……によって実行できる。
現行のFPGA制御のHPCシステムは大量の配線資源を必要とするので、時間的な遅延と浮遊静電容量がこれらの配線間で発生し、ボトルネックが、図42に示す第4の実施の形態に係るHPCシステムに発生する。何故ならば、任意のデータ交換のためのデータバスやアドレスバスのようなバスが、第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pと第1の演算パイプライン117−11、117−12、……、117−1pとの間、第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pと第1のマーチング・ベクトルレジスタファイル22v−11、22v−12、……、22v−1pとの間、第1の分岐マーチング主記憶装置31−1と第1のマーチング・キャッシュメモリ21−11、21−12、……、21−1pとの間、第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qと第2の演算パイプライン117−21、117−22、……、117−2qとの間、第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qと第2のマーチング・ベクトルレジスタファイル22v−21、22v−22、……、22v−2qとの間、第2の分岐マーチング主記憶装置31−2と第2のマーチング・キャッシュメモリ21−21、21−22、……、21−2qとの間、マザー・マーチング主記憶装置31−0と第1の分岐マーチング主記憶装置31−1との間、及びマザー・マーチング主記憶装置31−0と第2の分岐マーチング主記憶装置31−2との間に無いので、図42に示したFPGA制御のHPCシステムは、現行のFPGA制御のHPCシステムより、非常に高速の処理と低い電力消費とを実現できる。処理装置12−1、12−2、12−3、……の数を増やすと、第4の実施の形態に係るFPGA制御のHPCシステムは、例えば、数千以上のスレッドを同時に非常に高速で実行できるので、高い計算機計算のスループットを大量のデータに対して可能になる。
− 第5の実施の形態 −
図43に示すように、本発明の第5の実施の形態に係る計算機システムは、プロセッサ11と、プロセッサ11に接続された3次元のマーチング・レジスタファイルを形成するマーチング・レジスタファイル22−1、22−2、22−3、……のスタックと、3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)に接続された3次元のマーチング・キャッシュメモリを形成するマーチング・キャッシュメモリ21−1、21−2、21−3、……のスタックと、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)に接続された3次元のマーチング主記憶装置を形成するマーチング主記憶装置31−1、31−2、31−3、……のスタックとを備えている。プロセッサ11は、クロック信号を生成するクロック発生回路113を有する制御装置111と、クロック信号と同期して演算論理動作を実行する演算論理装置(ALU)112とを含む。
3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)において、第1のマーチング・レジスタファイル22−1は、制御装置111に接続された第1のマーチング命令レジスタファイル22a−1とALU112に接続された第1のマーチング・データ・レジスタファイル22b−1とを含み、第2のマーチング・レジスタファイル22−2は、制御装置111に接続された第2のマーチング命令レジスタファイルとALU112に接続された第2のマーチング・データ・レジスタファイルとを含み、第3のマーチング・レジスタファイル22−3は、制御装置111に接続された第3のマーチング命令レジスタファイルとALU112に接続された第3のマーチング・データ・レジスタファイルとを含み、以下同様である。3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)において、第1のマーチング・キャッシュメモリ21−1は、第1のマーチング命令キャッシュメモリ21a−1と第1のマーチング・データ・キャッシュメモリ21b−1とを含み、第2のマーチング・キャッシュメモリ21−2は、第2のマーチング命令キャッシュメモリと第2のマーチング・データ・キャッシュメモリとを含み、第3のマーチング・キャッシュメモリ21−3は、第3のマーチング命令キャッシュメモリと第3のマーチング・データ・キャッシュメモリとを含み、以下同様である。
図示を省略しているが、図24〜30に示したマーチング主記憶装置31と非常に類似して、マーチング主記憶装置21−1、21−2、21−3、……のそれぞれは、それぞれに一組の情報群を格納したメモリユニットの2次元アレイと、主記憶装置・アレイの入力端子と、主記憶装置・アレイの出力端子とを有し、マーチング主記憶装置21−1、21−2、21−3、……のそれぞれ、情報をメモリユニットのそれぞれに格納し、クロック信号に同期して、ステップごとに、主記憶装置・アレイの出力端子の方向に転送し、格納された情報を3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)に能動的に逐次、出力し、マーチング・キャッシュメモリ21−1,21−2、21−3、……のそれぞれは、キャッシュメモリユニットの2次元アレイと、3次元のマーチング主記憶装置(31−1、31−2、31−3、……)から格納された情報を入力するマーチング・キャッシュアレイのキャッシュ入力端子と、マーチング・キャッシュアレイのキャッシュ出力端子とを有し、マーチング・キャッシュメモリ21−1、21−2、21−3、……のそれぞれは情報をキャッシュメモリユニットのそれぞれに格納し、クロック信号に同期して、ステップごとに、情報を隣接するキャッシュメモリユニットに転送し、格納された情報を3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)に能動的に逐次、出力し、マーチング・レジスタファイル22−1、22−2、22−3、……のそれぞれは、それぞれに一組の情報群を格納したレジスタユニットの2次元のアレイと、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)から格納された情報を入力するレジスタ・アレイの入力端子と、レジスタ・アレイの出力端子とを有し、マーチング・レジスタファイル22−1、22−2、22−3、……のそれぞれは、情報をレジスタユニットのそれぞれに格納し、クロック信号に同期して、ステップごとに、レジスタ・アレイの出力端子の方向に転送し、格納された情報をプロセッサ11に能動的に逐次出力し、プロセッサ11は、格納された情報により演算論理動作を実行する。
マーチング主記憶装置31−1,31−2、31−3、……のそれぞれは、半導体チップの表面に描画されたメモリユニットの2次元アレイで形成され、複数の半導体チップが、図27Aに示すように垂直に積層され、3次元のマーチング主記憶装置(31−1,31−2、31−3、……)を形成するように、複数の半導体チップの間に放熱板58m−1、58m−2、58m−3、……を挟んでいる。放熱板58m−1、58m−2、58m−3、……は、ダイアモンドのように高い熱伝導率を有する材料から作られることが好ましい。同様に、マーチング・キャッシュメモリ21−1、21−2、21−3、……のそれぞれは、半導体チップの表面に描画されたメモリユニットの2次元アレイで形成され、複数の半導体チップが、図27Bに示すように垂直に積層され、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)を形成するように、複数の半導体チップの間に放熱板58c−1、58c−2、58c−3、……を挟んでおり、マーチング・レジスタファイル22−1、22−2、22−3、……のそれぞれは、半導体チップの表面に描画されたメモリユニットの2次元アレイで形成され、複数の半導体チップが、図27Cに示すように垂直に積層され、3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)を形成するように、複数の半導体チップの間に放熱板58r−1、58r−2、58r−3、……を挟んでいる。放熱板58c−1、58c−2、58c−3、……、58r−1、58r−2、58r−3、……は、ダイアモンドのような高い熱伝導率を有する材料から作られることが好ましい。図44(a)〜45(c)に示す3次元構成では、半導体チップの表面の内部に接続配線が無いので、放熱板58c−1、58c−2、58c−3、……、58c−1、58c−2、58c−3、……、58r−1、58r−2、58r−3、……を半導体チップ間に挿入することが容易になる。また、 図44(a)〜45(c)に示す構成は、任意の数の半導体チップをもつ積層構造に拡大できる。従来のアーキテクチュアでは、基本的に、従来の半導体チップを直接的に重ねる時に、熱の問題のために、重ねる半導体チップの数に限界がある。第5の実施の形態に係る計算機システムでは、図44(a)〜45(c)に示すサンドイッチ構造は、
熱の流れを、能動的なコンピューティング半導体チップから、放熱板58c−1、58c−2、58c−3、……、58c−1、58c−2、58c−3、……、58r−1、58r−2、58r−3、……を介してシステムの外部に向けて、より効率的に作るのに適している。したがって、第5の実施の形態に係る計算機システムでは、これらの半導体チップを、システムの規模に応じて重ねることができる。また、図44(a)〜45(c)に示すように、マーチング主記憶装置31−1、31−2、31−3、……と、マーチング・キャッシュメモリ21−1、21−2、21−3、……とマーチング・レジスタファイル22−1、22−2、22−3、……とを含む複数の半導体チップを容易に重ねて3次元構成を形成できるので、拡張性のある計算機システムを容易に編成して、システムの温度をより低温に維持できる。
図示を省略しているが、3次元のマーチング主記憶装置(31−1,31−2、31−3、……)と3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)は複数の接合部材で電気的に接続され、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)と3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)は複数の接合部材で電気的に接続され、3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)とプロセッサ11は他の複数の接合部材で電気的に接続されている。
ALU112の最終データは、3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)に接合部材を介して出力されるので、データは、3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)とALU112との間で双方向に転送される。更に、3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)に格納されたデータは、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)に接合部材を介して出力されるので、データは、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)と3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)との間で双方向に転送される。更に、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)に格納されたデータは、3次元のマーチング主記憶装置(31−1,31−2、31−3、……)に接合部材を介して出力されるので、データは、3次元のマーチング主記憶装置(31−1,31−2、31−3、……)と3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)との間で双方向に転送される。
逆に、3次元のマーチング主記憶装置(31−1,31−2、31−3、……)から3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)に、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)から3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)に、及び3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)から制御装置111に向かう一方向のみに、命令の流れが制限される。例えば、ソース・プログラムのループから生成されたベクトル命令は、3次元のマーチング主記憶装置(31−1、31−2、31−3、……)から制御装置111に3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)を介して3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)と3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)とを介して転送されるので、これらのベクトル命令のそれぞれを、制御装置111の演算パイプラインで実行できる。
図43に示す第5の実施の形態に係る計算機システムには、任意のデータ交換におけるデータバスとアドレスバスのようなバスが、3次元のマーチング主記憶装置(31−1,31−2、31−3、……)と3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)との間に、3次元のマーチング・キャッシュ(21−1、21−2、21−3、……)と3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)との間に、及び3次元のマーチング・レジスタファイル(22−1、22−2、22−3、……)とプロセッサ11との間に無い。配線又はバスは、従来の計算機システムではボトルネックを形成している。これらのバス間で時間的な遅延と浮遊静電容量とを生成するグローバル配線が無いので、第5の実施の形態に係る計算機システムは従来の計算機システムより遙かに高速の処理と低い電力消費とを実現し、計算機システムの温度を従来の計算機システムより低い温度に維持できるので、ダイアモンドのように高い熱伝導率を有する材料から製造され且つ半導体チップ間に設けられた、放熱板58c−1、58c−2、58c−3、……、58c−1、58c−2、58c−3、……、58r−1、58r−2、58r−3、……を採用することにより、「クールな(冷却された)計算機」を構築できる。第5の実施の形態に係るクールな計算機は現行の計算機と異なるものである。何故ならば、クールな計算機は、平均すると、30%もエネルギー消費が少なく且つ10000%もサイズが小さく、例えば、100倍の速度を得るように考慮され設計されているからである。
第5の実施の形態に係る計算機システムの他の機能、構成や動作方法は、第1〜第3の実施の形態で既に説明した機能、構成や動作方法と実質的に類似しているので、重複した又は余分な説明は省略する。
(種々の3次元構成)
図43、44(a)、44(b)、44(c)に示す3次元構成は単なる例であり、拡張性のある計算機システムの編成を進めるために3次元構成を形成する方法として、種々の方式と組み合わせがある。
例えば、図45に示すように、複数の演算パイプライン117と複数のマーチング・レジスタファイル22とを含む第1のチップ(最上部のチップ)と、マーチング・キャッシュメモリ21を含む第2のチップ(中間部のチップ)と、マーチング主記憶装置31を含む第3のチップ(最下部のチップ)とを垂直に重ねることができる。演算パイプライン117のそれぞれはベクトル処理装置を含むことができ、マーチング・レジスタファイル22のそれぞれはマーチング・ベクトルレジスタを含むことができる。第1と第2のチップ間に、複数の接合部材55aが挿入され、第2と第3のチップ間に、複数の接合部材55bが挿入されている。例えば、接合部材55aと55bのそれぞれは、半田ボール、金(Au)バンプ、銀(Ag)バンプ、銅(Cu)バンプ、ニッケル−金(Ni−Au)合金バンプ、又はニッケル−金−インジウム(Ni−Au−In)合金バンプなどのような導電性バンプで形成できる。図示を省略しているが、放熱板は、図44(a)〜45(c)に示す構成と同様に、「クールなチップ」を実現するように、第1と第2のチップ間に及び第2と第3のチップ間に挿入できる。
或いは、図46及び図47に示すように、第1の最上部チップと第1の中間部チップと第1の最下部チップとを含む第1の3次元(3D)スタックと、第2の最上部チップと第2の中間部チップと第2の最下部チップとを含む第2の3Dスタックは、同じ基板または同じ回路ボード上に2次元状に設けて、マルチプル・プロセッサとの並列計算を形成できる。図46及び図47では、第1の3Dスタックと第2の3Dスタックがブリッジ59aと59bとで接続されている。
第1の3Dスタックでは、複数の第1の演算パイプライン117−1と複数の第1のマーチング・レジスタファイル22−1とを含む第1の最上部チップと、第1のマーチング・キャッシュメモリ21−1を含む第1の中間部チップと、第1のマーチング主記憶装置31−1を含む第1の最下部チップが、垂直に3Dで積層されている。第1の演算パイプライン117−1のそれぞれはベクトル処理装置を含み、第1のマーチング・キャッシュ・ファイル22−1のそれぞれはマーチング・ベクトルレジスタを含む。第1の最上部と第1の中間部とのチップの間に、複数の接合部材55a−1が挿入され、第1の中間部と第1の最下部とのチップの間に、複数の接合部材55b−1が挿入されている。例えば、例えば、接合部材55a−1と55b−1のそれぞれは、半田ボール、金(Au)バンプ、銀(Ag)バンプ、銅(Cu)バンプ、ニッケル−金(Ni−Au)合金バンプ、又はニッケル−金−インジウム(Ni−Au−In)合金バンプなどのような導電性バンプで形成できる。同様に、第2の3Dスタックでは、複数の第2の演算パイプライン117−2と複数の第2のマーチング・レジスタファイル22−2とを含む第2の最上部チップと、第2のマーチング・キャッシュメモリ21−2を含む第2の中間部チップと、第2のマーチング主記憶装置31−2を含む第2の最下部チップが、垂直に3Dで積層されている。第2の演算パイプライン117−2のそれぞれはベクトル処理装置を含み、第2のマーチング・キャッシュ・ファイル22−2のそれぞれはマーチング・ベクトルレジスタを含む。第2の最上部と第2の中間部のチップの間に、複数の接合部材55a−2が挿入され、第2の中間部と第2の最下部のチップの間に、複数の接合部材55b−2が挿入されている。例えば、例えば、接合部材55a−2と55b−2のそれぞれは、半田ボール、金(Au)バンプ、銀(Ag)バンプ、銅(Cu)バンプ、ニッケル−金(Ni−Au)合金バンプ、又はニッケル−金−インジウム(Ni−Au−In)合金バンプなどのような導電性バンプで形成できる。図示を省略しているが、放熱板は、第1の最上部と第1の中間部のチップの間、第1の中間部と第1の最下部のチップの間、第2の最上部と第2の中間部のチップの間、及び第2の中間部と第2の最下部のチップの間に、図44(a)〜45(c)に示した構成と同様に挿入して、「クールなチップ」を実現できる。
第4の実施の形態に係る計算機システムと同様に、フィールド・プログラマブル・ゲートアレイ(FPGA)は、ベクトル処理のスレッド又はチェイニングを第1の演算パイプライン117−1と第2の演算パイプライン117−2上で移行して、HPCシステムを形成することにより、第1と第2の3Dスタックの動作を切り替えて処理できるので、これはGPUを基礎とした汎用計算に使用できる。
更に代わりに、図48に示すように、複数の演算パイプライン117を含む第1のチップ(最上部チップ)と、複数のマーチング・レジスタファイル22を含む第2のチップと、マーチング・キャッシュメモリ21を含む第3のチップと、第1のマーチング主記憶装置31−1を含む第4のチップと、マーチング主記憶装置31−2を含む第5のチップと、第3のマーチング主記憶装置31−3を含む第6のチップ(最下部チップ)とを、垂直に重ねることができる。演算パイプライン117のそれぞれはベクトル処理装置を含み、マーチング・レジスタファイル22のそれぞれはマーチング・ベクトルレジスタを含むので、ソース・プログラムのループから生成されたベクトル命令は、ベクトル処理装置で実行できる。第1の放熱板58−1が第1と第2のチップ間に挿入され、第2の放熱板58−2が第2と第3のチップ間に挿入され、第3の放熱板58−1が第3と第4のチップ間に挿入され、第4の放熱板58−4が第4と第5のチップ間に挿入され、第5の放熱板58−5が第5と第6のチップ間に挿入され、「クールなチップ」を実現する。図48に示す3次元構成のこれらのクールなチップの表面の内部に接続配線が無いので、ダイアモンド・チップのような放熱板58−1、58−2、58−3、58−4、58−5を、これらの6個のチップ間に交互に挿入することが容易になる。
図48に示すクール−チップの構成は、6個のチップの場合に限定されないし、任意の数のチップをもつ3次元の積層構造に拡大できる。何故ならば、図48に示す挟装構造は、熱の流れを、能動的なコンピューティング・チップから、放熱板58−1、58−2、58−3、58−4、58−5を介してクールな計算機システムの外部に向けて、より効果的に作るのに適しているからである。したがって、第5の実施の形態に係る計算機システムにおけるクールなチップの数は、計算機システムの規模に比例して増加できる。
図49〜51は、本発明の第5の実施の形態に係る計算機システムの基本的なコアの一部を形成する、3次元(3D)スタックの様々な例を示す。3Dスタックのそれぞれ、半導体メモリ・チップ3aと3bの間に挿入されたダイアモンド板のような放熱板58を持つ冷却機能を含む。図49〜51では、マーチング記憶装置ファミリで区分けされたマーチング記憶装置の少なくとも一つが含まれている。「マーチング記憶装置ファミリ」という用語は、第2の実施の形態で説明されたALU112に接続されたマーチング命令レジスタファイル22aとマーチング・データ・レジスタファイル22bと、第3の実施の形態で説明されたマーチング命令キャッシュメモリ21aとマーチング・データ・キャッシュメモリ21bとを、本発明の第1の実施の形態で説明されたマーチング主記憶装置31に加えて含む。
即ち、図49に示すように、本発明の第5の実施の形態に係る計算機システムの基本的なコアの一部を形成する3Dスタックは、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第1の半導体メモリ・チップ3aと、第1の半導体メモリ・チップ3aの下に設けられた放熱板58と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む放熱板58の下に設けられた第2の半導体メモリ・チップ3bと、放熱板58側に設けられたプロセッサ11とを備えている。ここで、図49では、プロセッサ11の位置が一例として図示してあるので、プロセッサ11は、3Dスタックの設計選択に基づいて、3Dスタックの構成内の又は3Dスタックの外部の任意の必要な又は適当な場所に設けることができる。例えば、プロセッサ11は、第1の半導体メモリ・チップ3aの同じ水平レベル又は第2の半導体メモリ・チップ3bのレベルで置くことができる。第1の半導体メモリ・チップ3a上に集積化されたマーチング記憶装置と第2の半導体メモリ・チップ3b上に集積化されたマーチング記憶装置は、それぞれ、プログラム命令を格納している。第1の半導体メモリ・チップ3aと放熱板58と第2の半導体メモリ・チップ3bが垂直に積層されている図49に示す3D構成では、第1の制御パスが第1の半導体メモリ・チップ3aとプロセッサ11との間に設けられ、第2の制御パスが第2の半導体メモリ・チップ3bとプロセッサ11の間に設けられているので、プロセッサ11による制御処理の実行を促進できる。更なるデータ経路が、第1の半導体メモリ・チップ3aと第2の半導体メモリ・チップ3bとの間に設けられているので、第1の半導体メモリ・チップ3aと第2の半導体メモリ・チップ3bとの間におけるプログラム命令の直接な通信を促進できる。
そして、図50に示すように、本発明の第5の実施の形態に係る計算機システムの基本的なコアの一部を形成する他の3Dスタックは、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第1の半導体メモリ・チップ3aと、第1の半導体メモリ・チップ3aの下に設けられた放熱板58と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む放熱板58の下に設けられた第2の半導体メモリ・チップ3bと、放熱板58側に設けられたALU112とを備えている。ALU112の位置は図50に示した場所に限定されない、そして、ALU112は、3Dスタックの設計選択に基づいて、第1の半導体メモリ・チップ3aの同じ水平レベルで又は第2の半導体メモリ・チップ3bのレベルで置かれた場所のように、3Dスタックの構成内で又は3Dスタックの外部で、任意の必要な又は適当な場所に設けることができる。第1の半導体メモリ・チップ3a上に集積化されたマーチング記憶装置と第2の半導体メモリ・チップ3b上に集積化されたマーチング記憶装置は、それぞれ、スカラデータの読み出し及び書き込みを行う。第1の半導体メモリ・チップ3aと放熱板58と第2の半導体メモリ・チップ3bが垂直に積層されている、図50に示す3D構成では、第1のデータ経路が第1の半導体メモリ・チップ3aとALU112との間に設けられ、第2のデータ経路が第2の半導体メモリ・チップ3bとALU112の間に設けられているので、ALU112によるスカラデータ処理の実行を促進できる。更なるデータ経路が、第1の半導体メモリ・チップ3aと第2の半導体メモリ・チップ3bとの間に設けられているので、第1の半導体メモリ・チップ3aと第2の半導体メモリ・チップ3bとの間におけるスカラデータの直接な通信を促進できる。
更に、図51に示すように、本発明の第5の実施の形態に係る計算機システムの基本的なコアの一部を構成する更に他の3Dスタックは、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第1の半導体メモリ・チップ3aと、第1の半導体メモリ・チップ3aの下に設けられた放熱板58と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む放熱板58の下に設けられた第2の半導体メモリ・チップ3bと、放熱板58側に設けられた演算パイプライン117とを備えている。図49と50に示した形状と同様に、演算パイプライン117の位置は図51に示した場所に限定されない、そして、演算パイプライン117は、任意の必要な又は適当な場所に設けられることができる。第1の半導体メモリ・チップ3a上に集積化されたマーチング記憶装置と第2の半導体メモリ・チップ3b上に集積化されたマーチング記憶装置は、それぞれ、ベクトルデータ又はストリーミングデータの読み出し及び書き込みを行う。第1の半導体メモリ・チップ3aと放熱板58と第2の半導体メモリ・チップ3bが垂直に積層されている、図51に示す3D構成では、第1のデータ経路が第1の半導体メモリ・チップ3aと演算パイプライン117との間に設けられ、第2のデータ経路が第2の半導体メモリ・チップ3bと演算パイプライン117との間に設けられているので、演算パイプライン117によるベクトルデータ又はストリーミングデータ処理の実行を促進できる。更なるデータ経路が、第1の半導体メモリ・チップ3aと第2の半導体メモリ・チップ3bとの間に設けられているので、第1の半導体メモリ・チップ3aと第2の半導体メモリ・チップ3bとの間におけるベクトルデータ又はストリーミングデータの直接な通信を促進できる。
図52に示すように、第5の実施の形態に係る3Dハイブリッド・計算機システムは、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第1の左側チップ(最上部の左側チップ)3p−1と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第2の左側チップ3p−2と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第3の左側チップ3p−3と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第4の左側チップ3p−4と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第5の左側チップ3p−5と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第6の左側チップ(最下部の左側チップ)3p−6とを備えていて、それらは垂直に積層されている。第1の左放熱板58a−1は第1の左側チップ3p−1と第2の左側チップ3p−2との間に挿入され、第2の左放熱板58a−2は第2の左側チップ3p−2と第3の左側チップ3p−3との間に挿入され、第3の左放熱板58a−1は第3の左側チップ3p−3と第4の左側チップ3p−4との間に挿入され、第4の左放熱板58a−4は第4の左側チップ3p−4と第5の左側チップ3p−5との間に挿入され、第5の左放熱板58a−5は第5の左側チップ3p−5と第6の左側チップ3p−6との間に挿入されているので、「クールな左側チップ」を実現できる。
そして、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第1の右側チップ(最上部の右側チップ)3q−1と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第2の右側チップ3q−2と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第3の右側チップ3q−3と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第4の右側チップ3q−4と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第5の右側チップ3q−5と、マーチング記憶装置ファミリを構成するマーチング記憶装置の少なくとも一つを含む第6の右側チップ(最下部の右側チップ)3q−6とが、垂直に積層されている。第1の右放熱板58b−1は第1の右側チップ3q−1と第2の右側チップ3q−2との間に挿入され、第2の右放熱板58b−2は第2の右側チップ3q−2と第3の右側チップ3q−3との間に挿入され、第3の右放熱板58b−1は第3の右側チップ3q−3と第4の右側チップ3q−4との間に挿入され、第4の右放熱板58b−4は第4の右側チップ3q−4と第5の右側チップ3q−5との間に挿入され、第5の右放熱板58b−5は第5の右側チップ3q−5と第6の右側チップ3q−6との間に挿入されているので、「クールな右側チップ」を実現できる。
第1の処理装置11aは第1の左放熱板58a−1と第1の右放熱板58b−1との間に設けられ、第2の処理装置11bは第3の左放熱板58a−3と第3の右放熱板58b−3との間に設けられ、第3の処理装置11cは第5の左放熱板58a−5と第5の右放熱板58b−5との間に設けられ、そして、パイプラインのALUは、処理装置11a、11b、11cに、それぞれ、含まれている。
スカラデータ経路と制御パスは第1の左側チップ3p−1と第2の左側チップ3p−2との間に設定され、スカラデータ経路と制御パスは第2の左側チップ3p−2と第3の左側チップ3p−3との間に設定され、スカラデータ経路と制御パスは第3の左側チップ3p−3と第4の左側チップ3p−4との間に設定され、スカラデータ経路と制御パスは第4の左側チップ3p−4と第5の左側チップ3p−5との間に設定され、スカラデータ経路と制御パスは第5の左側チップ3p−5と第6の左側チップ3p−6との間に設定され、スカラデータ経路と制御パスは第1の右側チップ3q−1と第2の右側チップ3q−2との間に設定され、スカラデータ経路と制御パスは第2の右側チップ3q−2と第3の右側チップ3q−3との間に設定され、スカラデータ経路と制御パスは第3の右側チップ3q−3と第4の右側チップ3q−4との間に設定され、スカラデータ経路と制御パスは第4の右側チップ3q−4と第5の右側チップ3q−5との間に設定され、スカラデータ経路と制御パスは第5の右側チップ3q−5と第6の右側チップ3q−6との間に設定される。図52に示す3D計算機システムは、スカラデータだけでなくベクトルデータ又はストリーミングデータも、計算機システムのためにスカラデータ経路と制御パスの組み合わせにより実行できる。
図52に示す3D構成では、これらのクールなチップの表面の内部に接続配線が無いので、ダイアモンド左側チップのような放熱板58a−1、58a−2、58a−3、58a−4、58a−5を、これらの6個の左側チップの間に交互に挿入することが容易になり、且つダイアモンド右側チップのような放熱板58b−1、58b−2、58b−3、58b−4、58b−5を、これらの6個の右側チップの間に交互に挿入することが容易になる。
−その他の実施の形態 −
様々な変形例が、本明細書及び図面の開示から、本発明の趣旨から逸脱せずに、当業者に明らかとなろう。
ビット・レベル、命令レベル、データ、タスクの並列処理のような並列計算に関して様々な異なる形態がある。「フラインの分類法」として知られているように、プログラムと計算機は、それらが命令の単一セット又は多重セットを用いて動作しているかについて、これらの命令がデータの単一または多重セットを用いているかどうかにかかわらず区分けされている。
例えば、図53に示すように、マーチング・レジスタファイルとマーチング・キャッシュメモリとマーチング主記憶装置とを既に第1〜第5の実施の形態で述べたように含む、マーチング記憶装置は、多重命令単一データ流(MISD)アーキテクチュアにおけるスカラ/ベクトルデータのビット・レベル並列処理を実施できる。それにより、第1のプロセッサ11−1、第2のプロセッサ11−2、第3のプロセッサ11−3、第4のプロセッサ11−4、……に対して垂直に設けられた多数の独立した命令流が、プロセッサ11−1、11−2、11−3、11−4のシストリック・アレイにより一度でデータの単一な水平流上で平行に動作する。
或いは、図54に示すように、演算レベル並列処理は、マーチング・レジスタファイルとマーチング・キャッシュメモリとマーチング主記憶装置とを、既に第1〜第5の実施の形態で述べたように、単一命令多重データ流(SIMD)アーキテクチュアで含む、マーチング記憶装置により実現できる。そこで、単一命令流が第1のプロセッサ11−1と第2のプロセッサ11−2と第3のプロセッサ11−3と第4のプロセッサ11−4とに呈せられるので、単一命令流は、プロセッサ11−1、11−2、11−3、11−4のアレイにより、一度にデータの多重垂直流上で動作できる。
更に代わりに、図55に示すように、マーチング・レジスタファイルとマーチング・キャッシュメモリとマーチング主記憶装置とを、既に第1〜第5の実施の形態で述べたように含むマーチング記憶装置は、第1の命令Iと第2の命令Iと第3の命令Iと第4の命令Iが、それぞれ出力される、第1のプロセッサ11−1と第2のプロセッサ11−2と第3のプロセッサ11−3と第4のプロセッサ11−4とによるベクトル処理における一般的なチェイニングを形成できる。
更に、図56に示すように、マーチング・レジスタファイルとマーチング・キャッシュメモリとマーチング主記憶装置とを、既に第1〜第5の実施の形態で述べたように含んでいるマーチング記憶装置は、第1のプロセッサ11−1と第2のプロセッサ11−2と第3のプロセッサ11−3と第4のプロセッサ11−4とにより、MISDアーキテクチュアにおけるスカラ/ベクトルデータの単一の水平流の並列処理を実施できる。
更に、図57に示すように、マーチング・レジスタファイルとマーチング・キャッシュメモリとマーチング主記憶装置とを、既に第1〜第5の実施の形態で述べたように含んでいるマーチング記憶装置は、乗算を実行する第1のプロセッサ11−1と、加算を実行する第2のプロセッサ11−2と、乗算を実行する第3のプロセッサ11−3と、加算を実行する第4のプロセッサ11−4とにより、MISDアーキテクチュアにおけるスカラ/ベクトルデータの単一の水平流の並列処理を実施できる。
更に、処理レベル並列処理については、単一スレッド流及び単一データ流アーキテクチュアと、単一スレッド流及び多重データ流アーキテクチュアと、多重スレッド流及び単一データ流アーキテクチュアと、多重スレッド流及び多重データ流アーキテクチュアは、マーチング・レジスタファイルとマーチング・キャッシュメモリとマーチング主記憶装置とを、既に第1〜第5の実施の形態で述べたように含んでいる、マーチング記憶装置により実現できる。
したがって、本発明は、上記の説明で詳述してない様々な実施の形態と変形例など含むことは勿論である。よって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明は、計算機システムの産業分野に適用できる。

Claims (24)

  1. クロック信号を生成するクロック発生回路を有する制御装置、及び、前記クロック信号に同期した演算論理動作を実行する演算論理装置を含むプロセッサと、
    複数のセルの列方向の配列からなるメモリユニットを複数個、前記列方向に更に配列し、それぞれのメモリユニットに対しそれぞれ一組の情報群を前記列方向の配列に沿って前記複数のセルに格納し、前記メモリユニットの複数個を前記列方向に配列した構成を、複数個、更に行方向に配列したアレイを含むマーチング主記憶装置と、
    える計算機システムであって、
    前記マーチング主記憶装置が、前記列方向に配列されたそれぞれのメモリユニットのそれぞれの前記複数のセルの配列に対応して設けられた、前記アレイの入力端子及び出力端子更に有し、
    前記出力端子列の少なくとも一部を前記演算論理装置に接続し、
    前記入力端子列を介して、前記列方向に配列された複数のメモリユニットのそれぞれの前記複数のセルに、一組の情報群が入力され、
    前記クロック信号に同期して、前記列方向に配列された複数のメモリユニットのそれぞれに格納された情報群を、前記出力端子の方向に前記アレイの内部において隊列進行させ該隊列進行された前記複数のメモリユニットのそれぞれに格納された情報群前記出力端子列の前記少なくとも一部を介して前記プロセッサにパラレルに出力し、
    前記演算論理装置が、前記出力端子列の前記少なくとも一部を介して逐次入力された前記情報群を用いた演算論理動作を、前記クロック信号に同期して逐次実行可能であることを特徴とする計算機システム。
  2. 前記出力端子列の他の一部が、前記制御装置に接続され、
    前記列方向に配列された複数のメモリユニットの内の、前記出力端子列の前記他の一部に対応する行上のメモリユニットのそれぞれのセルに一組の命令群が前記列方向に格納され、
    前記クロック信号に同期して、前記出力端子列の前記他の一部方向に向かう一組の命令群が隊列進行し、
    前記出力端子列の前記他の一部から、前記一組の命令群の流れが前記制御装置に入力し、
    該入力された前記一組の命令群の流れを用いて、前記演算論理装置が、前記演算論理動作を実行することを特徴とする請求項1に記載の計算機システム。
  3. 前記列方向に配列された複数のメモリユニットのそれぞれが、
    前記クロック信号に同期して、前記一組の情報群を前記出力端子列方向に隊列進行させるために用いる第1のセルの配列と、
    第2のクロック信号に同期して、一組の情報群を前記入力端子列方向に隊列進行させるために用いる第2のセルの配列とを有することを特徴とする請求項1又は2に記載の計算機システム。
  4. 前記列方向に配列された複数のメモリユニットの一部が、前記クロック信号に同期して、前記一組の情報群を前記出力端子列方向に隊列進行させるために用いる複数の第1のセルの配列からなる第1のメモリユニットを含み、
    前記列方向に配列された複数のメモリユニットの他の一部が、第2のクロック信号に同期して、一組の情報群を前記入力端子列方向に隊列進行させるために用いる第2のセルの配列からなる第2のメモリユニットを含むことを特徴とする請求項1又は2に記載の計算機システム。
  5. 前記クロック信号と前記第2のクロック信号を選択するクロック・セレクタを更に備え、
    前記制御装置が前記クロック・セレクタに前記第2のクロック信号を選択させることにより、前記演算論理装置の処理の結果が一組の情報群として前記出力端子列の前記少なくとも一部を介して前記マーチング主記憶装置に逐次入力され、前記アレイの内部を前記入力端子列方向に隊列進行されることを特徴とする請求項3又は4に記載の計算機システム。
  6. 前記複数のメモリユニットがチップ上で2次元で配置されて前記アレイを構成していることを特徴とする請求項1〜5のいずれか1項に記載の計算機システム。
  7. 複数の前記チップが、3次元の前記メモリユニット・アレイを形成するように、放熱板をそれぞれの間に挟んで、垂直に積層されていることを特徴とする請求項に記載の計算機システム。
  8. 前記プロセッサが、前記一組の情報群の流れを前記出力端子列の前記少なくとも一部を介して前記マーチング主記憶装置から前記クロック信号に同期して逐次入力する、複数の演算パイプラインを更に含むことを特徴とする請求項1〜7のいずれか1項に記載の計算機システム。
  9. クロック信号を生成するクロック発生回路を有する制御装置、及び、前記クロック信号に同期した演算論理動作を実行する演算論理装置を含むプロセッサと、
    複数のセルの列方向の配列からなるメモリユニットを複数個、前記列方向に更に配列し、それぞれのメモリユニットに対しそれぞれ一組の情報群を前記列方向の配列に沿って前記複数のセルに格納し、前記メモリユニットの複数個を前記列方向に配列した構成を、複数個、更に行方向に配列したアレイを含むマーチング主記憶装置と、
    前記列方向に配列された複数のメモリユニットの少なくとも一部のメモリユニットのそれぞれの配列位置に対応して、前記列方向に一組の情報群をそれぞれ格納するように配置されたキャッシュメモリユニットを複数個、前記列方向に更に配列し、前記キャッシュメモリユニットの複数個が前記列方向に配列された構成を、複数個、更に行方向に配列したマーチングキャッシュアレイを有するマーチング・キャッシュメモリと、
    を備える計算機システムであって、
    前記マーチング主記憶装置が、前記複数のセルの列方向の配列に対応して設けられた前記アレイの入力端子列及び出力端子列を更に有し、
    前記マーチング・キャッシュメモリが、前記マーチング主記憶装置の前記出力端子列に接続されて前記マーチング主記憶装置に格納された前記一組の情報群を入力する前記マーチングキャッシュアレイのキャッシュ入力端子と、前記マーチングキャッシュアレイのキャッシュ出力端子列を更に有し、前記キャッシュ出力端子列を前記演算論理装置に接続し、
    前記入力端子列を介して前記マーチング主記憶装置に前記列方向の配列を一組とする情報群が逐次入力され、前記クロック信号に同期して、前記列方向に配列された前記一組の情報群を前記出力端子列の方向に前記アレイの内部において隊列進行させ、該隊列進行された前記一組の情報群を、前記出力端子列と前キャッシュ入力端子列を介して前記マーチングキャッシュアレイに転送し、
    該転送された前記一組の情報群を前記キャッシュメモリユニットのそれぞれに列方向に逐次格納し、前記クロック信号と同期して、前記一組の情報群を隣接するキャッシュメモリユニットにそれぞれ隊列進行させ該隊列進行された前記一組の情報群を、前記キャッシュ出力端子列を介して前記プロセッサにパラレルに出力し、
    前記演算論理装置が、前記キャッシュ出力端子列を介して逐次入力された前記一組の情報群の流れにより演算論理動作を、前記クロック信号に同期して逐次実行可能であることを特徴とする計算機システム。
  10. 前記演算論理装置が、それぞれベクトル処理装置を有する複数の演算パイプラインを更に含むがことを特徴とする請求項に記載の計算機システム。
  11. クロック信号を生成するクロック発生回路を有する制御装置、及び、前記クロック信号に同期した演算論理動作を実行する演算論理装置を含むプロセッサと、
    複数のセルの列方向の配列からなるメモリユニットを複数個、前記列方向に更に配列し、それぞれのメモリユニットに対しそれぞれ一組の情報群を前記列方向の配列に沿って前記複数のセルに格納し、前記メモリユニットの複数個を前記列方向に配列した構成を、複数個、更に行方向に配列したアレイを含むマーチング主記憶装置と、
    前記列方向に配列された複数のメモリユニットの少なくとも一部のメモリユニットのそれぞれの列上の配列位置に対応して、前記一組の情報群をそれぞれ格納するように配置されたキャッシュメモリユニットを複数個、前記列方向に更に配列し、前記キャッシュメモリユニットの複数個が前記列方向に配列された構成を、複数個、更に行方向に配列したマーチングキャッシュアレイを有するマーチング・キャッシュメモリと、
    前記キャッシュメモリユニットの列方向の配列位置に対応して配置されたベクトルレジスタユニットを複数個、行方向に配列して有するマーチング・ベクトルレジスタのアレイと、
    を備える計算機システムであって、
    前記マーチング主記憶装置が、前記複数のセルの列方向の配列に対応して設けられた前記アレイの入力端子列及び出力端子列を更に有し、
    前記マーチング・キャッシュメモリが、前記マーチング主記憶装置の前記出力端子列に接続されて前記マーチング主記憶装置に格納された前記一組の情報群をベクトル情報として入力する前記マーチングキャッシュアレイのキャッシュ入力端子列と、前記ベクトル情報を出力する前記マーチングキャッシュアレイのキャッシュ出力端子列を更に有し、
    前記複数のマーチング・ベクトルレジスタが、前記マーチング・ベクトルレジスタのアレイのベクトルレジスタ入力端子とを有し、
    前記キャッシュ出力端子列を前記ベクトルレジスタ入力端子列に接続し、
    前記複数の前記マーチング・ベクトルレジスタを前記演算論理装置に接続し、
    前記入力端子列を介して前記マーチング主記憶装置に前記列方向の配列を一組とする情報群が逐次入力され、前記クロック信号に同期して、前記列方向に配列された前記一組の情報群を前記出力端子列の方向にベクトル情報として前記アレイの内部において隊列進行させ、該隊列進行された前記ベクトル情報を、前記出力端子列と前キャッシュ入力端子列を介して前記マーチングキャッシュアレイに転送し、
    該転送された前記ベクトル情報を構成する前記一組の情報群を、前記キャッシュメモリユニットのそれぞれに列方向に逐次格納し、前記クロック信号と同期して、前記一組の情報群を隣接するキャッシュメモリユニットにベクトル情報としてそれぞれ逐次転送し、該逐次転送された前記ベクトル情報を、前記マーチング・キャッシュメモリが、前記キャッシュ出力端子列を介して前記マーチング・ベクトルレジスタのアレイに出力し、
    前記マーチング・ベクトルレジスタのアレイが、前記ベクトル情報を前記ベクトルレジスタユニットのそれぞれに格納し、
    前記マーチング・ベクトルレジスタのアレイが、前記ベクトル情報逐次、前記演算論理装置パラレルに出力し、前記演算論理装置前記ベクトル情報、前記クロック信号に同期して逐次実行可能であることを特徴とする計算機システム。
  12. 前記一組の情報群のそれぞれの列上の配列位置に対応して配置された、スカラレジスタユニットの複数個を行方向に配列したスカラレジスタユニットのアレイと、
    該アレイのスカラレジスタ入力端子
    とを更に有し、前記スカラレジスタユニットのアレイが格納されるべきスカラ情報を前記マーチング・キャッシュメモリから前記スカラレジスタ入力端子列を介して入力するように構成され、前記スカラ情報を前記スカラレジスタユニット格納し、前記クロック信号に同期して、格納された前記スカラ情報を前記演算論理装置に転送し、前記スカラ情報を前記演算論理装置が実行可能なように構成したことを特徴とする請求項11に記載の計算機システム。
  13. 前記制御装置が、前記マーチング主記憶装置と前記マーチング・キャッシュメモリと前記マーチング・ベクトルレジスタ又は前記マーチング・スカラレジスタとの動作を切り替え、制御するフィールド・プログラマブル・ゲートアレイを更に有していることを特徴とする請求項12に記載の計算機システム。
  14. 前記マーチング主記憶装置と前記マーチング・キャッシュメモリが同じ前記チップ上に集積化されていることを特徴とする請求項11〜13のいずれか1項に記載の計算機システム。
  15. 前記演算論理装置を構成するベクトル処理装置の少なくとも一つとマーチング・ベクトルレジスタの少なくとも一つが、同一チップ上に集積化されていることを特徴とする請求項11〜14のいずれか1項に記載の計算機システム。
  16. 前記演算論理装置を構成するベクトル処理装置とマーチング・ベクトルレジスタとを集積化した第1のチップと、
    前記マーチング・キャッシュメモリを集積化した第2のチップと、
    前記マーチング主記憶装置を集積化した第3のチップ
    とが、垂直に積層され、それぞれの間に放熱板を挟んでいることを特徴とする請求項11〜15のいずれか1項に記載の計算機システム。
  17. 前記演算論理装置がプロセッサコアを形成していることを特徴とする請求項11〜16のいずれか1項に記載の計算機システム。
  18. 前記プロセッサが複数の前記プロセッサコアを含むことを特徴とする請求項17に記載の計算機システム。
  19. 複数のキャッシュメモリユニットの第2のアレイと、
    前記マーチング主記憶装置から、格納された前記ベクトル情報を入力する該第2のアレイのキャッシュ入力端子と、
    該第2のアレイのキャッシュ出力端子
    とを有し、前記ベクトル情報を、該第2のアレイの前記複数のキャッシュメモリユニットのそれぞれに前記一組の情報群毎に格納し、前記第2のアレイの前記複数のキャッシュメモリユニットのそれぞれに格納された前記一組の情報群情報を、前記クロック信号に同期して、前記第2のアレイの前記キャッシュ入力端子側に隣接する前記キャッシュメモリユニットから、前記第2のアレイの前記キャッシュ出力端子側に隣接する前記キャッシュメモリユニットに向かう方向に、前記クロック信号と同期して、連続的に転送し、前記第2のアレイに格納された前記ベクトル情報を、前記プロセッサに前記第2のアレイの前記キャッシュ出力端子を介して能動的に逐次出力し、前記プロセッサコアが前記第2のアレイに格納された前記ベクトル情報により動作できる、第2のマーチング・キャッシュメモリを更に備えることを特徴とする請求項18に記載の計算機システム。
  20. 複数のレジスタファイル・セルのアレイと、
    前記マーチング・キャッシュメモリから、格納された前記ベクトル情報を入力する該アレイのレジスタファイル入力端子と、
    該アレイのレジスタファイル出力端子
    とを有し、前記ベクトル情報を前記複数のレジスタファイル・セルのそれぞれに格納し、前記クロック信号に同期して、前記複数のレジスタファイル・セルのそれぞれに格納された前記ベクトル情報を、前記レジスタファイル・入力端子側に隣接するレジスタファイル・セルから、前記レジスタファイル出力端子側に隣接するレジスタファイル・セルに向かう方向に、前記クロック信号に同期して転送し、格納された前記ベクトル情報を前記プロセッサコアに前記レジスタファイル出力端子を介して能動的に逐次出力する、マーチング・レジスタファイルを更に備えることを特徴とする請求項18に記載の計算機システム。
  21. 前記制御装置が、前記マーチング主記憶装置と前記マーチング・キャッシュメモリと前記マーチング・レジスタファイルとの動作を切り替え、制御するフィールド・プログラマブル・ゲートアレイを更に有していることを特徴とする請求項20に記載の計算機システム。
  22. 前記マーチング主記憶装置と前記マーチング・キャッシュメモリが同一のチップ上に集積化されていることを特徴とする請求項11〜21のいずれか1項に記載の計算機システム。
  23. 前記マーチング・レジスタファイルと前記プロセッサコアの少なくとも一つとが、同一のチップ上に集積化されていることを特徴とする請求項18に記載の計算機システム。
  24. クロック信号を生成するクロック発生回路を有する制御装置、及び、前記クロック信号に同期した演算論理動作を実行する演算論理装置を含むプロセッサと、主記憶装置とを備える計算機システムに用いる前記主記憶装置であって、
    複数のセルの列方向の配列からなるメモリユニットを複数個、前記列方向に更に配列し、前記メモリユニットの複数個の前記列方向の配列を、複数個、更に行方向に配列したアレイと、
    前記列方向に配列されたそれぞれのメモリユニットのそれぞれの前記複数のセルの配列に対応して前記アレイに設けられた、入力端子列及び出力端子列とを備え、
    前記出力端子列の少なくとも一部を前記演算論理装置に接続し、
    前記入力端子列を介して、前記列方向に配列された複数のメモリユニットのそれぞれの前記複数のセルに、一組の情報群が入力され、
    前記クロック信号に同期して、前記列方向に配列された複数のメモリユニットのそれぞれに格納された情報群を前記出力端子列の方向に前記アレイの内部において隊列進行させ、該隊列進行された前記複数のメモリユニットのそれぞれに格納された情報群を前記出力端子列の前記少なくとも一部を介して前記プロセッサにパラレルに出力し、
    前記演算論理装置が、前記出力端子列の前記少なくとも一部を介して逐次入力された、前記情報群を用いた演算論理動作を、前記クロック信号に同期して逐次実行可能であることを特徴とする主記憶装置。
JP2012503797A 2009-07-21 2010-07-20 計算機システム及び主記憶装置 Active JP5417674B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22732509P 2009-07-21 2009-07-21
US61/227,325 2009-07-21
PCT/JP2010/004642 WO2011010445A1 (en) 2009-07-21 2010-07-20 A lower energy comsumption and high speed computer without the memory bottleneck

Publications (2)

Publication Number Publication Date
JP2012533784A JP2012533784A (ja) 2012-12-27
JP5417674B2 true JP5417674B2 (ja) 2014-02-19

Family

ID=43498927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012503797A Active JP5417674B2 (ja) 2009-07-21 2010-07-20 計算機システム及び主記憶装置

Country Status (6)

Country Link
US (2) US8949650B2 (ja)
EP (2) EP3255555B1 (ja)
JP (1) JP5417674B2 (ja)
KR (1) KR101424020B1 (ja)
CN (1) CN102483697B (ja)
WO (1) WO2011010445A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102483697B (zh) * 2009-07-21 2015-06-10 中村维男 无存储器瓶颈的低能耗高速计算机
TWI607454B (zh) * 2012-02-13 2017-12-01 中村維男 無記憶體瓶頸的行進記憶體,雙向行進記憶體,複雜行進記憶體,及計算機系統
KR20130010915A (ko) * 2012-10-23 2013-01-29 김성동 챕터 데이터가 저장될 수 있는 캐쉬 메모리 어레이를 구비하는 3차원 반도체 장치 및 그 동작 방법
TWI557749B (zh) * 2013-06-13 2016-11-11 中村維男 直接轉移跨步記憶體及使用該記憶體之電腦系統
WO2015125960A1 (ja) * 2014-02-24 2015-08-27 株式会社ニコン 情報処理装置、デジタルカメラおよびプロセッサ
US9513921B2 (en) * 2014-06-23 2016-12-06 Mill Computing, Inc. Computer processor employing temporal addressing for storage of transient operands
CN104777936B (zh) * 2015-04-16 2016-08-24 京东方科技集团股份有限公司 触控驱动单元和电路、显示面板及显示装置
CN108352837A (zh) * 2015-11-13 2018-07-31 株式会社半导体能源研究所 半导体装置、电子构件及电子设备
CN111651206B (zh) * 2016-04-26 2024-05-07 中科寒武纪科技股份有限公司 一种用于执行向量外积运算的装置和方法
US10909037B2 (en) * 2017-04-21 2021-02-02 Intel Corpor Ation Optimizing memory address compression
CN109426518B (zh) * 2017-08-29 2021-02-19 杭州旗捷科技有限公司 单核处理器设备的并行写码方法、电子设备、存储介质
JP7228590B2 (ja) 2017-11-24 2023-02-24 フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ データバス
WO2019146623A1 (en) * 2018-01-23 2019-08-01 Tadao Nakamura Marching memory and computer system
KR102543177B1 (ko) 2018-03-12 2023-06-14 삼성전자주식회사 고 대역폭 메모리 장치 및 이 장치를 포함하는 시스템 장치
US10996885B2 (en) 2018-03-12 2021-05-04 Samsung Electronics Co., Ltd. High bandwidth memory device and system device having the same
CN115794730A (zh) * 2018-12-10 2023-03-14 杭州海存信息技术有限公司 分离的三维处理器
US11853758B2 (en) * 2019-09-27 2023-12-26 Intel Corporation Techniques for decoupled access-execute near-memory processing
US11442890B1 (en) 2020-11-06 2022-09-13 Amazon Technologies, Inc. On-circuit data activity monitoring for a systolic array
US11520731B1 (en) 2020-11-06 2022-12-06 Amazon Technologies, Inc. Arbitrating throttling recommendations for a systolic array

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3975712A (en) * 1975-02-18 1976-08-17 Motorola, Inc. Asynchronous communication interface adaptor
JPS61165137A (ja) * 1985-01-17 1986-07-25 Nec Corp デ−タフロ−処理装置
US4833655A (en) * 1985-06-28 1989-05-23 Wang Laboratories, Inc. FIFO memory with decreased fall-through delay
JPH0761017B2 (ja) * 1985-09-25 1995-06-28 株式会社日立製作所 A/d変換器
US4805133A (en) * 1985-12-20 1989-02-14 Greenfield S Edmund Processor memory element and a new computer architecture
US5475631A (en) 1989-03-09 1995-12-12 Micron Technology, Inc. Multiport RAM based multiprocessor
US5418933A (en) * 1990-02-20 1995-05-23 Sharp Kabushiki Kaisha Bidirectional tri-state data bus buffer control circuit for delaying direction switching at I/O pins of semiconductor integrated circuit
EP0463721A3 (en) * 1990-04-30 1993-06-16 Gennum Corporation Digital signal processing device
DE59010847D1 (de) * 1990-12-11 1998-09-24 Siemens Ag Schaltungsanordnung zur digitalen Bit-seriellen Signalverarbeitung
JPH04293151A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
JPH05128898A (ja) * 1991-11-05 1993-05-25 Oki Electric Ind Co Ltd 半導体記憶装置
JP3243920B2 (ja) * 1994-03-07 2002-01-07 株式会社日立製作所 半導体装置
US5790879A (en) 1994-06-15 1998-08-04 Wu; Chen-Mie Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same
US6496926B1 (en) * 1997-05-06 2002-12-17 Microsoft Corporation Computer-implemented paramaterless language with exception handler
FR2777370B1 (fr) * 1998-04-09 2000-06-23 Sgs Thomson Microelectronics Architecture de dsp optimisee pour les acces memoire
US20020184381A1 (en) * 2001-05-30 2002-12-05 Celox Networks, Inc. Method and apparatus for dynamically controlling data flow on a bi-directional data bus
US7062636B2 (en) * 2002-09-19 2006-06-13 Intel Corporation Ordering scheme with architectural operation decomposed into result producing speculative micro-operation and exception producing architectural micro-operation
US7617356B2 (en) * 2002-12-31 2009-11-10 Intel Corporation Refresh port for a dynamic memory
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
KR100585227B1 (ko) 2004-03-12 2006-06-01 삼성전자주식회사 열 방출 특성이 개선된 반도체 적층 패키지 및 이를이용한 메모리 모듈
JP4654389B2 (ja) * 2006-01-16 2011-03-16 株式会社ムサシノエンジニアリング ダイヤモンドヒートスプレッダの常温接合方法,及び半導体デバイスの放熱部
KR101414774B1 (ko) * 2007-08-29 2014-08-07 삼성전자주식회사 멀티포트 반도체 메모리 장치
JP5035349B2 (ja) * 2007-09-14 2012-09-26 富士通株式会社 回路、その制御方法
JP5194302B2 (ja) * 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
CN102483697B (zh) * 2009-07-21 2015-06-10 中村维男 无存储器瓶颈的低能耗高速计算机

Also Published As

Publication number Publication date
US20150149718A1 (en) 2015-05-28
US9361957B2 (en) 2016-06-07
JP2012533784A (ja) 2012-12-27
KR101424020B1 (ko) 2014-07-28
EP3255555B1 (en) 2020-01-29
US8949650B2 (en) 2015-02-03
KR20120048596A (ko) 2012-05-15
WO2011010445A1 (en) 2011-01-27
EP2457155A1 (en) 2012-05-30
EP2457155B1 (en) 2017-10-11
CN102483697B (zh) 2015-06-10
EP3255555A1 (en) 2017-12-13
US20120117412A1 (en) 2012-05-10
EP2457155A4 (en) 2014-07-23
CN102483697A (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
JP5417674B2 (ja) 計算機システム及び主記憶装置
TWI714806B (zh) 動態隨機存取記憶體處理單元架構
TWI640003B (zh) 用於邏輯/記憶體器件之裝置及方法
JP6218294B2 (ja) 複合マーチングメモリ、計算機システム及びマーチングメモリ用セル配列
CN109147842B (zh) 同时进行数据路径中计算操作的设备及方法
Talati et al. mmpu—a real processing-in-memory architecture to combat the von neumann bottleneck
TWI659427B (zh) 用於資料路徑內計算操作之裝置及方法
TWI718336B (zh) Dpu操作用的系統
TWI671744B (zh) 用於在記憶體中資料切換網路的裝置及方法
TW201835906A (zh) 用於在資料路徑中計算之裝置及方法
Bottleneck mMPU—A Real Processing-in-Memory Architecture to Combat the von
Xie Microprocessor design using 3D integration technology

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130906

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

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131018

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131101

R150 Certificate of patent or registration of utility model

Ref document number: 5417674

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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