JP2010532905A

Thread optimized multiprocessor architecture

Abstract

In one aspect, the invention is a system comprising (a) multiple parallel processors on a single chip and (b) computer memory located on the chip and accessible by each of the processors. Each of the processors can operate to handle the de minimis instruction set, and each of the processors has its own local cache for each of at least three specific registers in the processor. In another aspect, the invention is a system comprising (a) multiple parallel processors on a single chip and (b) computer memory located on the chip and accessible by each of the processors. Each processor can operate to process an instruction set optimized for thread-level parallelism, and each processor accesses the internal data bus of computer memory on the chip and is internal. The data bus is the width of one line of memory.

JP2010532905A, drawing sheet 1
Sheet 1 of 39

Term

Projected expiry 27 June 2028.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

74 claims: 10 independent, 64 dependent

  1. 1
    メモリモジュール上に搭載された複数の並列プロセッサと、 外部メモリコントローラと、 汎用中央演算処理装置とを備えていて、 前記並列プロセッサの各々は、スレッドレベルの並列処理のために最適化された命令セットを処理するように動作可能であることを特徴とするシステム。
  2. 2
    前記並列プロセッサの各々は、de minimis命令セットを処理するように動作可能であることを特徴とする請求項1に記載のシステム。
  3. 3
    メモリモードレジスタに割り当てられる1以上のビットは、前記並列プロセッサのうちの1つ以上をイネーブルまたはディスエーブルにするように動作可能であることを特徴とする請求項1に記載のシステム。
  4. 4
    前記メモリモジュールは、デュアルインラインメモリモジュールであることを特徴とする請求項1に記載のシステム。
  5. 5
    前記プロセッサの各々は、単一のスレッドを処理するように動作可能であることを特徴とする請求項1に記載のシステム。
  6. 6
    複数のスレッドが、共有メモリを通してデータを共有することを特徴とする請求項5に記載のシステム。
  7. 7
    複数のスレッドが、1つ以上の共有変数を通してデータを共有することを特徴とする請求項5に記載のシステム。
  8. 8
    前記メモリモジュールは、DRAM、SRAM、およびフラッシュメモリのうちの1つ以上であることを特徴とする請求項1に記載のシステム。
  9. 9
    少なくとも一つの前記並列プロセッサがマスタプロセッサとみなされ、他の前記並列プロセッサはスレーブプロセッサとみなされることを特徴とする請求項1に記載のシステム。
  10. 10
    各プロセッサは、クロック速度を有していて、前記マスタプロセッサ以外の各プロセッサは、性能または電力消費を最適化するように調整された前記プロセッサのクロック速度を有するように動作可能であることを特徴とする請求項9に記載のシステム。
  11. 11
    各プロセッサは、マスタプロセッサまたはスレーブプロセッサとみなされるように動作可能であることを特徴とする請求項9に記載のシステム。
  12. 12
    前記マスタプロセッサは、いくつかのスレーブプロセッサによる処理を要求し、前記いくつかのスレーブプロセッサからの出力を待ち、かつ前記出力を結合することを特徴とする請求項9に記載のシステム。
  13. 13
    前記マスタプロセッサは、前記出力が前記いくつかのプロセッサの各々から受信されるとき、前記いくつかのプロセッサからの出力を結合することを特徴とする請求項12に記載のシステム。
  14. 14
    停止されるべき前記並列プロセッサのうちの1つ以上をイネーブルにすることによって、低電力消費が提供されることを特徴とする請求項1に記載のシステム。
  15. 15
    前記並列プロセッサの各々は、プログラムカウンタを伴っていて、前記並列プロセッサが伴っているプログラムカウンタに全て1を書き込むことによって停止されるように動作可能であることを特徴とする請求項14に記載のシステム。
  16. 16
    ダイナミックランダムアクセスメモリ(DRAM)のダイに埋め込まれた複数の並列プロセッサを備えていて、 前記複数の並列プロセッサは、外部メモリコントローラおよび外部プロセッサと通信し、 前記並列プロセッサの各々は、スレッドレベルの並列処理のために最適化された命令セットを処理するように動作可能であることを特徴とするシステム。
  17. 17
    前記ダイは、DRAMピン配列を有するパッケージに入れられていることを特徴とする請求項16に記載のシステム。
  18. 18
    前記並列プロセッサは、デュアルインラインメモリモジュール上に搭載されていることを特徴とする請求項16に記載のシステム。
  19. 19
    前記システムは、前記プロセッサがDRAMモードレジスタを通してイネーブルにされる時以外は、DRAMとして動作することを特徴とする請求項16に記載のシステム。
  20. 20
    前記外部プロセッサは、関連する永久記憶装置から前記DRAMにデータおよび命令を転送するように動作可能であることを特徴とする請求項16に記載のシステム。
  21. 21
    前記永久記憶装置は、フラッシュメモリであることを特徴とする請求項20に記載のシステム。
  22. 22
    前記外部プロセッサは、前記並列プロセッサと外部装置との間の入出力インターフェースを提供するように動作可能であることを特徴とする請求項16に記載のシステム。
  23. 23
    単一のチップ上の複数のプロセッサと、 前記チップ上に配置されていて、前記プロセッサの各々によってアクセス可能なコンピュータメモリとを備えていて、 前記プロセッサの各々は、de minimis命令セットを処理するように動作可能であり、かつ 前記プロセッサの各々は、前記プロセッサ内の少なくとも3つの特定のレジスタの各々専用のローカルキャッシュを有していることを特徴とするシステム。
  24. 24
    前記ローカルキャッシュの各々のサイズは、前記チップ上のランダムアクセスメモリの1行に等しいことを特徴とする請求項23に記載のシステム。
  25. 25
    各前記プロセッサは、前記チップ上のランダムアクセスメモリの内部データバスにアクセスし、前記内部データバスは、ランダムアクセスメモリの1行の幅を有していることを特徴とする請求項23に記載のシステム。
  26. 26
    前記内部データバスの幅は、1024、2048、4096、8192、16328、または32656ビットであることを特徴とする請求項25に記載のシステム。
  27. 27
    前記内部データバスの幅は、1024ビットの整数倍であることを特徴とする請求項25に記載のシステム。
  28. 28
    前記プロセッサ内の少なくとも3つの特定のレジスタの各々専用のローカルキャッシュは、1メモリ読出し又は書込みサイクルの中で満たされるか又は消去されるように動作可能であることを特徴とする請求項23に記載のシステム。
  29. 29
    前記de minimis命令セットは、基本的に7つの基本命令から成ることを特徴とする請求項23に記載のシステム。
  30. 30
    前記基本命令セットは、ADD、XOR、INC、AND、STOREACC、LOADACC、およびLOADI命令を含むことを特徴とする請求項29に記載のシステム。
  31. 31
    前記de minimis命令セット内の各命令は、長さが最長でも8ビットであることを特徴とする請求項23に記載のシステム。
  32. 32
    前記de minimis命令セットは、プロセッサ上での命令シーケンスの実行を最適化するための複数の命令拡張を有していて、更に、このような命令拡張は、基本的に20未満の命令から成ることを特徴とする請求項23に記載のシステム。
  33. 33
    各命令拡張は、長さが最長でも8ビットであることを特徴とする請求項23に記載のシステム。
  34. 34
    前記de minimis命令セットは、前記チップ上の複数のプロセッサを選択的に制御するための一組の命令を有していることを特徴とする請求項23に記載のシステム。
  35. 35
    各プロセッサ制御命令は、長さが最長でも8ビットであることを特徴とする請求項34に記載のシステム。
  36. 36
    複数のプロセッサは、モノリシックメモリデバイスのために設計された半導体製造プロセスを用いて前記チップ上に配置されるコンピュータメモリと共に前記チップ上に製造されることを特徴とする請求項23に記載のシステム。
  37. 37
    半導体製造プロセスは、4層未満のメタル相互接続を用いることを特徴とする請求項36に記載のシステム。
  38. 38
    半導体製造プロセスは、3層未満のメタル相互接続を用いることを特徴とする請求項36に記載のシステム。
  39. 39
    複数のプロセッサのコンピュータメモリ回路内への集積化は、チップダイサイズの30%未満の増加という結果をもたらすことを特徴とする請求項23に記載のシステム。
  40. 40
    複数のプロセッサのコンピュータメモリ回路内への集積化は、チップダイサイズの20%未満の増加という結果をもたらすことを特徴とする請求項23に記載のシステム。
  41. 41
    複数のプロセッサのコンピュータメモリ回路内への集積化は、チップダイサイズの10%未満の増加という結果をもたらすことを特徴とする請求項23に記載のシステム。
  42. 42
    複数のプロセッサのコンピュータメモリ回路内への集積化は、チップダイサイズの5%未満の増加という結果をもたらすことを特徴とする請求項23に記載のシステム。
  43. 43
    250,000個未満のトランジスタが、前記チップ上の各プロセッサを作成するために用いられることを特徴とする請求項23に記載のシステム。
  44. 44
    チップは、4層未満のメタル相互接続を用いる半導体製造プロセスを用いて製造されることを特徴とする請求項23に記載のシステム。
  45. 45
    前記プロセッサの各々は、単一のスレッドを処理するように動作可能であることを特徴とする請求項23に記載のシステム。
  46. 46
    アキュムレータは、インクリメント命令を除く、あらゆる基本命令のためのオペランドであることを特徴とする請求項29に記載のシステム。
  47. 47
    各基本命令のための宛先は、常にオペランドレジスタであることを特徴とする請求項29に記載のシステム。
  48. 48
    3つのレジスタは自動インクリメントであり、かつ3つのレジスタは自動デクリメントであることを特徴とする請求項23に記載のシステム。
  49. 49
    各基本命令は、完了するために1クロックサイクルのみを必要とすることを特徴とする請求項29に記載のシステム。
  50. 50
    前記命令セットは、分岐命令およびジャンプ命令を有していないことを特徴とする請求項29に記載のシステム。
  51. 51
    単一のマスタプロセッサが、前記並列プロセッサの各々を管理する役割を担っていることを特徴とする請求項23に記載のシステム。
  52. 52
    単一のチップ上の複数の並列プロセッサと、 前記チップ上に配置されていて、前記プロセッサの各々によってアクセス可能なコンピュータメモリとを備えていて、 前記プロセッサの各々は、スレッドレベルの並列処理のために最適化された命令セットを処理するように動作可能であり、かつ 各前記プロセッサは、前記チップ上のコンピュータメモリの内部データバスにアクセスし、前記内部データバスは、メモリの1行より幅が広くないことを特徴とするシステム。
  53. 53
    前記プロセッサの各々は、de minimis命令セットを処理するように動作可能であることを特徴とする請求項52に記載のシステム。
  54. 54
    前記プロセッサの各々は、前記プロセッサ内の少なくとも3つの特定のレジスタの各々専用のローカルキャッシュを有していることを特徴とする請求項52に記載のシステム。
  55. 55
    前記ローカルキャッシュの各々のサイズは、前記チップ上のコンピュータメモリの1行に等しいことを特徴とする請求項54に記載のシステム。
  56. 56
    少なくとも3つの特定のレジスタは、命令レジスタ、ソースレジスタ、および宛先レジスタを含むことを特徴とする請求項54に記載のシステム。
  57. 57
    前記de minimis命令セットは、基本的に7つの基本命令から成ることを特徴とする請求項53に記載のシステム。
  58. 58
    前記基本命令セットは、ADD、XOR、INC、AND、STOREACC、LOADACC、およびLOADI命令を含むことを特徴とする請求項57に記載のシステム。
  59. 59
    前記命令セット内の各命令は、長さが最長でも8ビットであることを特徴とする請求項52に記載のシステム。
  60. 60
    前記プロセッサの各々は、単一のスレッドを処理するように動作可能であることを特徴とする請求項52に記載のシステム。
  61. 61
    単一のマスタプロセッサが、前記並列プロセッサの各々を管理する役割を担っていることを特徴とする請求項52に記載のシステム。
  62. 62
    前記de minimis命令セットは、プロセッサ上での命令シーケンスの実行を最適化するための複数の命令拡張を有していて、更に、このような命令拡張は、20未満の命令を有していることを特徴とする請求項53に記載のシステム。
  63. 63
    各命令拡張は、長さが最長でも8ビットであることを特徴とする請求項62に記載のシステム。
  64. 64
    前記de minimis命令セットは、前記チップ上の複数のプロセッサを選択的に制御するための一組の命令を有していることを特徴とする請求項53に記載のシステム。
  65. 65
    各プロセッサ制御命令は、長さが最長でも8ビットであることを特徴とする請求項64に記載のシステム。
  66. 66
    複数のプロセッサは、モノリシックメモリデバイスのために設計された半導体製造プロセスを用いて前記チップ上に配置されるコンピュータメモリと共に前記チップ上に製造されることが可能であることを特徴とする請求項52に記載のシステム。
  67. 67
    単一のチップ上の複数の並列プロセッサ、マスタプロセッサ、およびコンピュータメモリを利用するスレッドレベルの並列処理の方法において、前記複数のプロセッサの各々は、de minimis命令セットを処理し、かつ単一のスレッドを処理するように動作可能であり、(a)ローカルキャッシュを前記複数のプロセッサの各々の中の3つの特定のレジスタの各々に割り当てるステップと、(b)単一のスレッドを処理するために複数のプロセッサのうちの1つを割り当てるステップと、(c)前記プロセッサによって各々の割り当てられたスレッドを処理するステップと、(d)前記プロセッサによって処理された各スレッドからの結果を処理するステップと、(e)スレッドが処理された後に、前記複数のプロセッサのうちの1つの割り当てを解除するステップとを有していることを特徴とする方法。
  68. 68
    de minimis命令セットは、基本的に7つの基本命令から成ることを特徴とする請求項67に記載の方法。
  69. 69
    前記基本命令は、ADD、XOR、INC、AND、STOREACC、LOADACC、およびLOADI命令を有していることを特徴とする請求項68に記載の方法。
  70. 70
    de minimis命令セットは、複数のプロセッサを選択的に制御するための一組の命令を有していることを特徴とする請求項67に記載の方法。
  71. 71
    各プロセッサ制御命令は、長さが最長でも8ビットであることを特徴とする請求項70に記載の方法。
  72. 72
    各プロセッサが前記メモリの内部データバスを用いてコンピュータメモリにアクセスするステップを更に有していて、内部データバスは、前記チップ上のメモリの1行の幅であることを特徴とする請求項52に記載の方法。
  73. 73
    de minimis命令セット内の各命令は、長さが最長でも8ビットであることを特徴とする請求項67に記載の方法。
  74. 74
    メモリデバイスのための電子工業規格デバイスのパッケージングおよびピンレイアウトと互換性があるメモリチップの中に埋め込まれた複数のプロセッサを備えていて、 プロセッサのうちの1つ以上は、メモリチップのメモリモードレジスタに送信される情報によって起動することができ、メモリチップは、プロセッサのうちの1つ以上が前記メモリモードレジスタによって起動する場合を除き、工業規格メモリデバイスの動作と機能的に互換性があることを特徴とするシステム。
Independent claims74