(57)【要約】ＭＰＰアレイのプロセッサアレイをメモリに接続する方法及び装置であって、ソフトウェアによるデータ変換が不要であり、かつ、データがノーマルモードまたは垂直モードのいずれかのモードによりメモリに直接格納される方法及び装置が開示されている。接続回路は、多数のＰＥがメモリアレイの複数のデータビットへのそれらの接続を共有することにより提供される。各ＰＥは、複数のメモリバッファレジスタに関連し、１つまたは２つのメモリデータビットから読み出される（または書き込まれる）データを格納する。水平（ノーマル）モード接続では、メモリビットは、与えられる１バイトの全ビットが同じＰＥに格納されるように選択され、すなわち、対応するＰＥに関連するバッファレジスタの各組は、外部のデバイスによって扱われる１バイトを包含する。垂直（ビットシリアル）モードでは、バッファレジスタの各組は、順次のビットをメモリワードのそのＰＥの位置に対応するメモリの順次の位置に包含する。その選択は、レジスタへの入力としてのマルチプレクサと各データラインを動作させる１組のトライステートドライバとを利用することによってなされる。
2004507836.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリと、
複数の処理素子であって、該複数の処理素子の各々は、前記メインメモリの各部分に単一ビット接続によって結合される複数の処理素子と、
前記メインメモリと前記複数の処理素子との間に結合され、前記複数の処理素子からのデータを前記メインメモリに水平モードで書き込むと共に、前記メインメモリに水平モードで格納されたデータを前記メインメモリから前記複数の処理素子に読み出す回路と、を具える能動メモリデバイス。
【請求項２】
請求項１に記載の能動メモリデバイスにおいて、前記回路は、さらに、前記複数の処理素子からのデータを前記メモリに垂直モードで書き込み、前記メインメモリに垂直モードで格納されたデータを前記メインメモリから前記複数の処理素子に読み出す、ように構成した能動メモリデバイス。
【請求項３】
請求項１に記載の能動メモリデバイスにおいて、第１のグループの複数の処理素子は、前記メインメモリの複数のデータバスに結合し、前記複数のデータバスの各々が前記メインメモリの複数のアドレスのうちの対応するアドレスに関連する能動メモリデバイス。
【請求項４】
請求項３に記載の能動メモリデバイスにおいて、前記第１のグループは、８つの処理素子を含む能動メモリデバイス。
【請求項５】
請求項１の能動メモリデバイスにおいて、前記回路は、さらに、
複数の回路素子であって、該複数の回路素子の各々が前記複数の処理素子のうちの対応する処理素子に関連し、前記複数の回路素子の各々が前記複数の処理素子のうちのそれに関連して対応する処理素子と前記メインメモリとの間でデータを転送する複数の回路素子を具える能動メモリデバイス。
【請求項６】
請求項５の能動メモリデバイスにおいて、前記複数の回路素子の各々は、さらに、
複数の論理回路であって、該複数の論理回路の各々が第１の入力と出力を有し、該第１の入力は複数のデータバスのうちの対応するデータバスに結合し、該複数のデータバスの各々は前記メインメモリに結合した複数の論理回路と、
複数の入力、及び前記複数の処理素子のうちそれに関連して対応する処理素子に結合した出力を有する第１のマルチプレクサであって、前記複数の入力の各々が、前記複数の論理回路のうちの対応する論理回路の出力に結合した第１のマルチプレクサと、を具える能動メモリデバイス。
【請求項７】
請求項６に記載の能動メモリデバイスにおいて、複数の論理回路の各々は、さらに、
前記複数の処理素子のうちの関連して対応する処理素子に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び前記論理回路の前記出力に結合した出力を有する第１のレジスタと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える能動メモリデバイス。
【請求項８】
請求項７に記載の能動メモリデバイスにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合した能動メモリデバイス。
【請求項９】
請求項６に記載の能動メモリデバイスにおいて、前記複数の論理回路の各々は、さらに、
前記複数の処理素子のうち前記関連するそれぞれの処理素子に結合された第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び出力を有する第１のレジスタと、
前記第２のマルチプレクサの前記出力に結合した入力、及び出力を有する第２のレジスタと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び前記論理回路の前記出力に結合した出力を有する第３のマルチプレクサと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び出力を有する第４のマルチプレクサと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える能動メモリデバイス。
【請求項１０】
請求項９に記載の能動メモリデバイスにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合した能動メモリデバイス。
【請求項１１】
メインメモリと、
複数の処理素子であって、該複数の処理素子の各々は前記メインメモリの各部分に関連し、前記複数の処理素子の各々は単一ビットデータ出力及び単一ビットデータ入力を有する複数の処理素子と、
複数のデータパス回路であって、該複数のデータパス回路の各々は、前記メインメモリと前記複数の処理素子との間で結合し、前記複数のデータパス回路の各々は、前記複数の処理素子のうちの前記対応する処理素子における前記単一ビット出力に結合した前記複数の入力のうちの第１の入力と、前記メインメモリの複数のデータバスのうちの対応するデータバスに結合した前記複数の入力のうちの少なくとも第２の入力を含む複数の入力、及び前記複数の処理素子のうちの対応する処理素子における前記単一ビット入力に結合した出力を有する複数のデータパス回路とを具え、
前記データパス回路の各々は、前記複数の処理素子のうちの前記対応する処理素子からデータを一度に１ビットづつ受け取るとともに、前記データを前記メインメモリに水平モードで書き込み、前記メインメモリに水平モードで格納されたデータを受け取ると共に、前記複数の処理素子のうち前記対応する処理素子に前記データを一度に１ビットづつ出力する、ように構成したメモリデバイス。
【請求項１２】
請求項１１に記載のメモリデバイスにおいて、前記データパス回路の各々は、さらに、前記複数の処理素子からのデータを前記メインメモリに垂直モードで書き込み、前記メインメモリに垂直モードで格納されたデータを前記メインメモリから前記複数の処理素子に読み出す、ように構成したメモリデバイス。
【請求項１３】
請求項１１に記載のメモリデバイスにおいて、前記複数のデータパス回路の各々は、さらに、
複数の論理回路であって、該複数の論理回路の各々が第１の入力及び出力を有し、前記第１の入力が前記データパス回路の前記複数の入力のうち前記少なくとも第２の入力に結合した複数の論理回路と、
複数の入力、及び前記データパス回路の前記出力に結合した出力を有し、前記複数の入力の各々が前記複数の論理回路のうち対応する論理回路の出力に結合した第１のマルチプレクサと、を具えたメモリデバイス。
【請求項１４】
請求項１３に記載のメモリデバイスにおいて、前記複数の論理回路の各々は、さらに、
前記データパス回路の前記第１の入力に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び前記論理回路の前記出力に結合した出力を有する第１のレジスタと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスのうちの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具えるメモリデバイス。
【請求項１５】
請求項１４に記載のメモリデバイスにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合したメモリデバイス。
【請求項１６】
請求項１３のメモリデバイスにおいて、前記複数の論理回路の各々は、さらに、
前記データパス回路の前記第１の入力に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び出力を有する第１のレジスタと、
前記第２のマルチプレクサの前記出力に結合した入力、及び出力を有する第２のレジスタと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び前記論理回路の前記出力に結合した出力を有する第３のマルチプレクサと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び出力を有する第４のマルチプレクサと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具えるメモリデバイス。
【請求項１７】
請求項１６に記載のメモリデバイスにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合したメモリデバイス。
【請求項１８】
能動メモリにおけるメモリデバイスと処理素子を接続する回路において、
前記処理素子に結合した第１の入力、及び前記メモリデバイスのデータバスに結合した第２の入力を有する第１のマルチプレクサと、
入力と出力を有する第１のレジスタであって、前記入力は前記第１のマルチプレクサの出力に結合した第１のレジスタと、
前記第１のレジスタの前記出力に結合した入力、及び前記処理素子に結合した出力を有する第２のマルチプレクサと、
前記第１のレジスタの前記出力に結合した入力、及び前記データバスに結合した出力を有する第１のトライステートデバイスと、
前記第１のレジスタの前記出力に結合した入力、及び前記データバスと前記第１のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える回路。
【請求項１９】
請求項１８に記載の回路において、前記第２のトライステートデバイスの前記出力は、前記第１のトライステートデバイスの前記出力とは異なるデータバスに結合した回路。
【請求項２０】
請求項１８に記載の回路において、さらに、
前記第１のマルチプレクサの前記出力に結合した入力を有する第２のレジスタと、
第１の入力、第２の入力、及び出力を有する第３のマルチプレクサであって、前記第１の入力は前記第２のレジスタの出力に結合し、前記第１のレジスタからの前記出力は前記第２の入力に結合し、前記出力は前記第２のマルチプレクサの前記入力に結合した第３のマルチプレクサと、
第１の入力、第２の入力、及び出力を有する第４のマルチプレクサであって、前記第１の入力は前記第１のレジスタの出力に結合し、前記第２の入力は前記第２のレジスタの前記出力に結合し、前記出力は前記第１及び第２のトライステートデバイスの前記入力に結合した第４のマルチプレクサと、を具える回路。
【請求項２１】
請求項２０に記載の回路において、前記第２のトライステートデバイスの前記出力は、前記第１のトライステートデバイスの前記出力とは異なるデータバスに結合した回路。
【請求項２２】
処理装置と、
該処理装置に結合した能動メモリデバイスと、を具える処理システムであって、前記能動メモリデバイスは、
メインメモリと、
複数の処理素子であって、該複数の処理素子の各々は、前記メインメモリの各部分に単一ビット接続によって結合した複数の処理素子と、
前記メインメモリと前記複数の処理素子との間を結合した回路であって、前記複数の処理素子からのデータを前記メモリに水平モードで書き込み、前記メインメモリに水平モードで格納されたデータを前記メインメモリから前記複数の処理素子に読み出す回路と、を具える処理システム。
【請求項２３】
請求項２２に記載の処理システムにおいて、前記回路は、さらに、前記複数の処理素子からのデータを前記メモリに垂直モードで書き込み、前記メインメモリに垂直モードで格納されたデータを前記メインメモリから前記複数の処理素子に読み出す、ように構成した処理システム。
【請求項２４】
請求項２２に記載の処理システムにおいて、第１のグループの複数の処理素子は、前記メインメモリの複数のデータバスに結合し、前記複数のデータバスの各々が前記メインメモリの複数のアドレスのうちの対応するアドレスに結合した処理システム。
【請求項２５】
請求項２４に記載の処理システムにおいて、前記第１のグループは、８つの処理素子を含む処理システム。
【請求項２６】
請求項２２に記載の処理システムにおいて、前記回路は、さらに、
複数の回路であって、該複数の回路の各々が前記複数の処理素子のうちの対応する処理素子に関連し、前記複数の回路の各々が前記複数の処理素子のうちの県連して対応する処理素子と前記メインメモリとの間でデータを転送する複数の回路を具える処理システム。
【請求項２７】
請求項２６に記載の処理システムにおいて、前記複数の回路の各々は、さらに、
複数の論理回路であって、該複数の論理回路の各々が第１の入力と出力を有し、該第１の入力が複数のデータバスのうちの対応するデータバスに結合し、該複数のデータバスの各々が前記メインメモリに結合した複数の論理回路と、
複数の入力、及び前記複数の処理素子のうちそれに関連して対応する処理措置に結合した出力を有する第１のマルチプレクサであって、前記複数の入力の各々が、前記複数の論理回路のうちの対応する論理回路の出力に結合した第１のマルチプレクサと、を具える処理システム。
【請求項２８】
請求項２７に記載の処理システムにおいて、複数の論理回路の各々は、さらに、
前記複数の処理素子のうちの前記対応する処理素子に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び前記論理回路の前記出力に結合した出力を有する第１のレジスタと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える処理システム。
【請求項２９】
請求項２８に記載の処理システムにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合した処理システム。
【請求項３０】
請求項２７に記載の処理システムにおいて、前記複数の論理回路の各々は、さらに、
前記複数の処理素子のうちの前記関連して対応する処理素子に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び出力を有する第１のレジスタと、
前記第２のマルチプレクサの前記出力に結合した入力、及び出力を有する第２のレジスタと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び前記論理回路の前記出力に結合した出力を有する第３のマルチプレクサと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び出力を有する第４のマルチプレクサと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える処理システム。
【請求項３１】
請求項３０に記載の処理システムにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合した処理システム。
【請求項３２】
請求項２２に記載の処理システムにおいて、前記処理装置及び前記能動メモリデバイスは同じチップに搭載されている処理システム。
【請求項３３】
処理装置と、
前記処理装置に結合したメモリデバイスと、を具える処理システムであって、前記メモリデバイスは、
メインメモリと、
複数の処理素子であって、該複数の処理素子の各々が前記メインメモリの各部分に関連し、前記複数の処理素子の各々が、単一ビットデータ出力及び単一ビットデータ入力を有する複数の処理素子と、
複数のデータパス回路であって、該複数のデータ回路の各々が、前記メインメモリと前記複数の処理素子との間で結合し、前記複数のデータパス回路の各々が、前記複数の処理素子のうちの対応する処理素子における前記単一ビット出力に結合した前記複数の入力のうちの第１の入力と、前記メインメモリの複数のデータバスのうちの対応するデータバスに結合した前記複数の入力のうちの少なくとも第２の入力を含む複数の入力、及び前記複数の処理素子のうちの対応する処理素子における前記単一ビット入力に結合した出力を有する複数のデータパス回路とを具え、
前記データパス回路の各々は、前記複数の処理素子のうちの前記対応する処理素子からデータを一度に１ビットづつ受け取ると共に、前記データを前記メインメモリに水平モードで書き込み、前記メインメモリに水平モードで格納されたデータを受け取ると共に、前記複数の処理素子のうちの前記対応する処理素子に前記データを一度に１ビットづつ出力する、ように構成した処理システム。
【請求項３４】
請求項３３に記載の処理システムにおいて、前記データパス回路の各々は、さらに、前記複数の処理素子からのデータを前記メインメモリに垂直モードで書き込み、前記メインメモリに垂直モードで格納されたデータを前記メインメモリから前記複数の処理素子に読み出す、ように構成した処理システム。
【請求項３５】
請求項３３に記載の処理システムにおいて、前記複数のデータパス回路の各々は、さらに、
複数の論理回路であって、該複数の論理回路の各々が第１の入力及び出力を有し、前記第１の入力が前記データパス回路の前記複数の入力のうち前記少なくとも第２の入力に結合した複数の論理回路と、
複数の入力、及び前記データパス回路の前記出力に結合した出力を有する第１のマルチプレクサであって、前記複数の入力の各々が前記複数の論理回路のうちの対応する論理回路の出力に結合した第１のマルチプレクサと、を具える処理システム。
【請求項３６】
請求項３５に記載の処理システムにおいて、前記複数の論理回路の各々は、さらに、
前記データパス回路の前記第１の入力に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び前記論理回路の前記出力に結合した出力を有する第１のレジスタと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第１のレジスタの前記出力に結合した入力、及び前記複数のデータバスのうちの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える処理システム。
【請求項３７】
請求項３６に記載の処理システムにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合した処理システム。
【請求項３８】
請求項３５に記載の処理システムにおいて、前記複数の論理回路の各々は、さらに、
前記データパス回路の前記第１の入力に結合した第１の入力、及び前記論理回路の前記入力に結合した第２の入力を有する第２のマルチプレクサと、
前記第２のマルチプレクサの出力に結合した入力、及び出力を有する第１のレジスタと、
前記第２のマルチプレクサの前記出力に結合した入力、及び出力を有する第２のレジスタと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び前記論理回路の前記出力に結合した出力を有する第３のマルチプレクサと、
前記第１のレジスタの前記出力に結合した第１の入力、前記第２のレジスタの前記出力に結合した第２の入力、及び出力を有する第４のマルチプレクサと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの前記対応するデータバスに結合した出力を有する第１のトライステートデバイスと、
前記第４のマルチプレクサの前記出力に結合した入力、及び前記複数のデータバスのうちの一つのデータバスと前記第２のマルチプレクサの第３の入力に結合した出力を有する第２のトライステートデバイスと、を具える処理システム。
【請求項３９】
請求項３８に記載の処理システムにおいて、前記第２のトライステートデバイスの前記出力は、前記複数のデータバスのうちの前記対応するデータバスに結合した処理システム。
【請求項４０】
請求項３３に記載の処理システムにおいて、前記処理装置及び前記メモリデバイスは同じチップに搭載されている処理システム。
【請求項４１】
処理素子からのデータをメモリデバイスに書き込む方法において、
前記処理素子からの複数のデータビットを順次手法でデータ回路に提供するステップと、
前記データ回路を介して前記データを転送するステップと、
前記データを前記メモリデバイスに書き込むステップとを具え、
前記データ回路は、前記データを直接前記メモリデバイスに水平モードで転送する方法。
【請求項４２】
請求項４１に記載の方法において、前記データを転送する前記ステップは、さらに、
前記複数のデータビットの各ビットを前記メモリデバイスに関連する異なるデータバスにおける前記データ回路から出力することを具え、
前記データを書き込む前記ステップは、さらに、前記複数のビットデータのビットの前記各ビットを異なるアドレスに関連する前記メモリデバイスの位置に書き込むことを具える方法。
【請求項４３】
請求項４２に記載の方法において、前記出力するステップは、さらに、
前記複数のデータビットの各ビットを対応するレジスタを介して転送することを具える方法。
【請求項４４】
請求項４２に記載の方法において、各々の異なるメモリアドレスは関連する複数のビットを有し、各々の前記データビットを書き込む前記ステップは、さらに、
前記各ビットを各々の前記異なるメモリアドレスの前記関連する複数のビットの同じビットに書き込むことを具える方法。
【請求項４５】
請求項４１に記載の方法において、前記回路は、さらに、前記データの少なくとも一部分を前記メモリデバイスに垂直モードで転送する、ように構成した方法。
【請求項４６】
請求項４５に記載の方法において、前記データの少なくとも一部分を転送する前記ステップは、さらに、
前記複数のデータビットの各ビットを前記メモリデバイスに関連する単一データバスの異なるデータラインにおける前記データ回路から出力することを具え、
前記データを書き込む前記ステップは、さらに、前記複数のビットデータのビットの前記各ビットを単一のアドレスに関連する順次のビット位置に書き込むことを具える方法。
【請求項４７】
請求項４６に記載の方法において、前記出力するステップは、さらに、
前記複数のデータビットの各ビットを対応するレジスタを介して転送することを具える方法。
【請求項４８】
メモリデバイスに格納されたデータを読み出し、該データを処理素子に提供する方法において、該方法は、
複数のデータビットを前記メモリデバイスからデータ回路に提供するステップと、
前記データを前記データ回路を介して転送するステップと、
前記データを前記処理素子に順次手法で出力するステップとを具え、
前記データは、前記メモリデバイスに水平モードで格納される方法。
【請求項４９】
請求項４８に記載の方法において、前記データを転送する前記ステップは、さらに、
単一のアドレスに関連するデータの各ビットを対応するレジスタを介して転送し、
前記単一アドレスに関連する前記データの各ビットをマルチプレクサに入力することを具え、
前記マルチプレクサは、データの前記各ビットを順次手法で前記処理素子に出力する方法。
【請求項５０】
請求項４８に記載の方法において、前記データの少なくとも一部分は、前記メモリデバイスに垂直モードでに格納される方法。
【請求項５１】
請求項５０に記載の方法において、前記データの少なくとも一部分を転送する前記ステップは、さらに、
異なるアドレスに関連するデータに対応するビットを対応するレジスタを介して転送し、
前記異なるアドレスに関連するデータの前記対応するビットの各々をマルチプレクサに入力することを具え、
前記マルチプレクサは、データの前記対応するビットの各々を順次手法で前記処理素子に出力する方法。
【発明の詳細な説明】
【０００１】
発明の背景
１．発明の分野
本発明は、コンピュータメモリデバイスの技術分野に関し、特に、バイト長のデータに再配置させるために、ビット順次手法により大容量並列プロセッサアレイをメモリアレイに接続する技術に関するものである。
【０００２】
２．関連技術の説明
全てのパーソナルコンピュータ（ＰＣ）やワークステーションに用いられる基本アーキテクチャは、図１のブロック図に示すように、一般にフォンノイマンアーキテクチャとして知られている。フォンノイマンアーキテクチャでは、主中央処理装置（ＣＰＵ）１０が、それ自体の演算をメモリ１２に格納されたプログラムを用いて順次実行するものである。そして、メモリ１２は、ここでは“メインメモリ”と呼ばれ、ＣＰＵ１０が演算するデータを有する。現代のコンピュータシステムにおいて、キャッシュメモリの階層は、通常、ＣＰＵ１０とメインメモリ１２との間のトラヒック量を減少させるために、システムに組み込まれる。
【０００３】
フォンノイマン手法は、低性能の用途から中性能の用途まで適用され、特に、いくつかのシステムファンクションが特別な目的のハードウェア（例えば、３Ｄグラフィックスアクセラレータ、デジタルシグナルプロセッサ（ＤＳＰ）、ビデオエンコーダまたはデコーダ、オーディオまたはミュージックプロセッサなど）によって加速される際に適用される。しかしながら、アクセラレータ機器を付加する手法は、システムのＣＰＵ／メモリ側からアクセラレータへのリンクの帯域幅によって制限される。その手法は、帯域幅が１よりも多いアクセラレータによって共有されると、さらに制限される。このように、大容量データの集合の処理要求は、一般に広く知られているように、フォンノイマンアーキテクチャによっては十分に満たされない。同様に、処理がさらに複雑になりデータが大容量になると、その処理要求は一般的なアクセラレータによっては適合しなくなってしまう。
【０００４】
しかしながら、フォンノイマンアーキテクチャにはいくつかの利点がある点に留意すべきである。例えば、そのアーキテクチャは同質のメモリ構造を含んでいるので、多数の小容量標準ユニットから大容量メモリを構成することができる。さらに、処理が集中するので、データ（またはプログラム）がメモリのどこにあるかについては問題にならない。最後に、その順次実行モデルは制御しやすく利用しやすい。現在の処理システムは、システムメモリと他のリソースの割り当てをこれらの属性を利用して制御する。問題は、複数の用途がシステムリソース、特にメインメモリを共有し分割する一般的な処理システム環境において、処理能力をいかに高めるかにある。
【０００５】
１つの解決手段は、図２に示すように、コンピュータシステムにおいて、能動メモリデバイスを利用することである。要するに、能動メモリは、データの記憶よりも多くを実現することができるメモリ、すなわち、記憶データを処理することもできるメモリである。能動メモリは、ＣＰＵまたはシステムの他の部分にデータを（システムバスを介して）転送することなく、データコンテンツを用いて何らかのことを実行させることを除き、ＣＰＵ１０に対して通常に動作する。これは、メモリの局所的な一部分として並列に全て動作する処理素子（ＰＥ）をメモリ構造全体にわたってアレイ１４に分配することにより達成される。さらに、ＰＥアレイ１４の各ＰＥ１６は、一般に、図３に示すように、データを交換するため相互に通信を行う。このように、能動メモリは、コンピュータアーキテクチャとは少し異なる概念を有しているといえ、すなわち、プロセッサというよりもむしろデータ的にみて、“メモリを主体にしたもの”といえる。
【０００６】
能動メモリを有するコンピュータシステムでは、図２に示すように、ＣＰＵ１０の仕事は、スケジューリング処理及びシステムリソースや時間を割り当てるような処理システムのタスクについては軽減されている。データ処理のほとんどは、メモリ１２で実行される。メインメモリ１２と処理リソースすなわち、ＰＥアレイ１４との間を多数接続することによって、メモリに向かってまたメモリから外部に向かってデータを移動させる帯域幅は、極めて増大する。多くのパラレルプロセッサはメモリ１２に接続され、メモリ上でそれら自身の領域において独立して動作することができる。これらの２つの構成が一緒になって極めて高い性能が実現される。
【０００７】
パラレルプロセッサには、いくつかの異なるトポロジーがある。１つのトポロジー例は、一般に、ＳＩＭＤ（単一命令、複数データ）と呼ばれるものである。そのＳＩＭＤトポロジーは多くのプロセッサを含み、同じ流れの指示をそれら自体の（局所的に記憶された）データを用いて同時に全て実行する。能動メモリ手法は、ＳＩＭＤ大容量並列プロセッサ（ＭＰＰ）アーキテクチャによって特徴付けられる。ＳＩＭＤ　ＭＰＰにおいて、比較的簡単なＰＥによる極めて多数のプロセッサ（通常、１０００またはそれ以上）は、メモリに接近して接続され、各ＰＥがそれ自身のメモリの部分にアクセスするように構成される。全てのＰＥは、異なるデータについて同一の指示を一緒に実行する。指示の流れは、制御シーケンサまたはプロセッサによって生成される。
【０００８】
ＳＩＭＤ　ＭＰＰは、システムにおける制御のオーバーヘッドが最小に維持されるとともに、処理及びメモリアクセスの帯域幅を最大化するように維持されるという長所がある。従って、ＳＩＭＤ　ＭＰＰは、非常に効率的に高性能を実現する潜在能力を有している。さらに、そのハードウェアは、多くのかなり簡単なリピート素子から構成される。ＰＥは縮小命令セットコンピュータ（ＲＩＳＣ）に比べてかなり小型であるから、迅速にシステム設計を行うことができ、最適化に関する利点は処理素子の数に従って大きくなる。加えて、ＰＥは簡単な構成であるから、極端なパイプラインに頼ることなく、迅速にそれらをクロックさせることができる。
【０００９】
ある典型的な大容量並列プロセッサアレイにおいて、ＰＥアレイ１４の各ＰＥ１６は単一のピンのみを使用し、メモリ１２に接続する。これにより、１ビット長データの接続が行われる。このようにして、バイナリ値の順次ビットはメモリ１２の順次の位置に格納されるから、データは“ビット順次で”格納される。この格納方式は、“垂直な”格納と呼ばれる。このように、各ＰＥから読み出され各ＰＥに書き込まれるデータは、図４に示すように、メモリ１２の順次の位置において、それぞれ、“垂直に”読み出され格納される。このように、図４において、ＰＥアレイ１４の列２２における各ＰＥ１６ａ−１６ｎが８ビットＰＥである場合、すなわち、一度に８ビットのデータを処理する場合、図示したように、メモリ内のそのデータは、８つの順次の垂直位置に格納される。上述したように、各ＰＥは、１ビット長データの接続２４によってメモリ１２に接続される。このように、ＰＥ１６ｃからのデータは、領域２０の順次の位置である、メモリ１２における１バイトサイズの領域２０に格納され、すなわち、そのデータは、矢印３０に示したように、垂直に格納される。ビット順次でデータを格納することについては、多数の利点がある。まず第１に、メモリ１２に対するＰＥ１６毎のデータ線の数が最小限で済むことである。第２に、より以上に簡単にかつ効率的に正確な可変計算を実行させることを可能にする。例えば、１０，１２または１４ビット数は、効率的に格納されかつ処理される。第３に、ある場合には、ＰＥサイクルタイムに対するメモリアクセス速度の違いは、データアクセスを順番に行うことによって整合させることができる。
【００１０】
しかしながら、ＰＥアレイ１４からのデータをビット順次で格納することについては、いくつかの欠点がある。例えば、多くの用途において、ＳＩＭＤ　ＭＰＰアレイ１４とそれに関連するメモリ１２を含むチップは、図２に示した例えばＣＰＵ１０のような外部デバイスに、オンチップメモリ１２とのアクセスを可能にするオフチップインタフェースの形態をとる。ＣＰＵ１０は、ワード長に、すなわち、図４の矢印３２に示すように、ノーマルモードと称する“水平に”格納されたデータを扱う。このように、外部デバイスが垂直に格納されたデータにアクセスするには、データを再配置する必要があり、すなわちメモリから外部デバイスに転送される前にノーマルモードに変換され、あるいはデータを用いる前に外部デバイスにより変換する必要がある。
【００１１】
２つのフォーマット、すなわち、ノーマルモードと垂直モードと間の変換は、ＰＥアレイ１４において、または、データへのアクセスが必要な外部のデバイスにおいて実行されるが、単一のフォーマットにおいてデータを格納することがより以上に効率的であり、１つのフォーマットでデータを格納し他の方式に切り替える必要がなくなる。その単一のフォーマットは、外部のデバイスによって使用されるノーマルフォーマットであることが望ましい。
【００１２】
このように、ＭＰＰ内のＰＥアレイとメインメモリとの間の接続に関し、ソフトウェアによるデータ変換が必要とされず、かつ、データがノーマルモードまたは垂直モードでメモリに格納されることができる必要性が存在する。
【００１３】
発明の概要
本発明は、ＭＰＰアレイのプロセッサアレイをメモリに接続する方法および装置であって、ソフトウェアによるデータ変換が不要であり、かつ、データがノーマルモードまたは垂直モードのいずれかのモードによりメモリに直接格納される方法及び装置を提供する。
【００１４】
本発明の上述した特徴及び他の特徴や長所は、複数のＰＥがメモリアレイ内で複数のデータビットへの接続を共有する接続回路によってもたらされる。各ＰＥは、複数のメモリバッファレジスタに関連し、１または２のメモリデータビットから読み出される（または書き込まれる）データを格納する。水平（ノーマル）モードの接続において、与えられる１バイトのビット全てが同じＰＥに格納されるようにするために、メモリビットが選択され、すなわち、それぞれのＰＥに関連するバッファレジスタのそれぞれの組は、外部のレジスタによって扱われる１バイトを包含する。垂直（ビットシリアル）モードにおいて、バッファレジスタの各組は、メモリワードにおけるそのＰＥの位置に対応するメモリの順次の位置に順次のビットを包含する。その選択は、レジスタへの入力としてのマルチプレクサと各データラインを動作させる１組のトライステートドライバとを使用することによってなされる。
【００１５】
本発明のこれらや他の特徴や長所を、添付した図面を参照にして発明の詳細な説明により、さらに明らかにする。
【００１６】
好適実施例の詳細な説明
図５から７に示す実施例を用いて、本発明を具体的に説明する。他の実施例にも適用され、また、本発明の精神や範囲から逸脱しない限り、構成的な変更や論理的な変更が可能である。同一の構成要素には同じ番号を付す。
【００１７】
本発明によれば、ソフトウェアによるデータ変換が不要であり、かつ、データがノーマルモードまたは垂直モードのいずれかのモードによりメモリに直接格納される、ＭＰＰのプロセッサアレイをメモリに接続する方法および装置が提供される。
【００１８】
図５は、本発明による、ＭＰＰのプロセッサアレイのメモリへの接続を示している。本発明によれば、８つの８ビットＰＥであるＰＥ０−ＰＥ７は、メモリアレイにおける６４データビットへの接続を分担している。接続回路４０ａ−４０ｈは、各ＰＥ、すなわち、ＰＥ０からＰＥ７にそれぞれ関連している。図５に示すように、例えば図２のメモリ１２のようなメモリからの各アドレスであるアドレス０−アドレス７は８ビットアドレスであり、関連する８ビットデータラインバス５０ａ−５０ｈを有する。図５の説明は８ビットＰＥ及び８ビットデータバスに関するものであるが、本発明はそれに限定されるものでなく、例えば、１０ビット，１２ビット，１４ビットなどのあらゆるデータ長に適用可能である。
【００１９】
図５に示すように、データバス５０ａ−５０ｈの各データビットラインは、各ＰＥであるＰＥ０−ＰＥ７に関連する各接続回路４０ａ−４０ｈのそれぞれのマルチプレクサ５２ａ−５２ｈの第２の入力に接続される。このように、データの第１のビット、すなわちビット０に関するデータビットラインは、ＰＥ０に関連する回路４０ａ内のマルチプレクサ５２ａ−５２ｈにおける第２の入力に接続され、データの第２のビット、すなわちビット１に関するデータビットラインは、ＰＥ１に関連する回路４０ｂ内のマルチプレクサ５２ａ−５２ｈにおける第２の入力に接続される。同様にして、データの最後のビット、すなわちビット７に関するデータビットラインまで接続され、ビット７に関するデータビットラインは、ＰＥ７に関連する回路４０ｈ内のマルチプレクサ５２ａ−５２ｈにおける第２の入力に接続される。
【００２０】
図５のＰＥ０に関連する回路４０ａを再度参照すると、各マルチプレクサ５２ａ−５２ｈの出力は、各バッファレジスタ５４ａ−５４ｈに接続される。バッファジスタ５４ａ−５４ｈの出力は、８入力マルチプレクサ６０ａのそれぞれの入力＜０＞−＜７＞に接続される。各バッファレジスタ５４ａ−５４ｈの出力も同様に、それぞれ１組のトライステートドライバ５６ａ−５６ｈの入力に接続される。マルチプレクサ６０の出力ＰＥ０Ｄｉｎ６２ａは、データをメモリすなわちアドレス０−アドレス７からＰＥ０へ転送する単一ビット接続によって、８個のＰＥグループの第１のＰＥすなわちＰＥ０に接続される。第２のデータラインＰＥＤｏｕｔ６４ａも同様に、ＰＥ０からデータを受信する単一ビットラインに接続されて、アドレス０−アドレス７を介してメモリにデータを書き込む。データラインＰＥＤｏｕｔ６４ａは、各マルチプレクサ５２ａ−５２ｈの第１の入力に接続される。
【００２１】
組５６ａにおける第１のトライステートドライバ及び第２のトライステートドライバの出力は、データバス５０ａのそれぞれのビットデータライン、すなわち、アドレス０におけるデータの第１のビットであるビット０に関連するデータビットラインに接続される。そして、組５６ａにおける第２のトライステートドライバからの出力は、マルチプレクサ５２ａの第３の入力に接続される。組５６ｂにおける第１のトライステートドライバの出力は、データバス５０ｂのそれぞれのデータビットライン、すなわち、アドレス１におけるデータの第１のビットであるビット０に関連するデータビットラインに接続され、また、組５６ｂにおける第２のトライステートドライバの出力は、データバス５０ａの第２のデータビットライン、及びマルチプレクサ５２ｂの第３の入力に接続される。残りのトライステートドライバの組５６ｃ−５６ｈの出力は、同様に接続され、すなわち、各組５６ｃ−５６ｈにおける第１のトライステートドライバの出力は、データバス５０ｃ−５０ｈのデータの第１のビットであるビット０に関連するビットデータラインに接続され、また、各組５６ｃ−５６ｈにおける第２のトライステートドライバの出力は、それぞれのマルチプレクサ５２ｃ−５２ｈの第３の入力に接続され、データバス５０ａのそれぞれのビットデータラインにも接続される。
【００２２】
上述した回路４０ａは、以下に示す例外があるものの、そのグループにおけるそれぞれのＰＥ、すなわち、ＰＥ１−ＰＥ７に関連するそれぞれの残りの回路４０ｂ−４０ｈと本質的に同様の構成をなす。ＰＥ１に関連する回路４０ｂにおいて、組５６ｂにおける第１のトライステートドライバ及び第２のトライステートドライバの出力は、データバス５０ｂのそれぞれのビットデータバス、すなわち、アドレス１におけるデータの第２のビットに関連するビットデータラインに接続され、また、残りトライステートドライバの組５６ａ及び５６ｃ−５６ｈは、それに関連するデータバス５０ａ及び５０ｃ−５０ｈのデータの第２のビットであるビット１に関連するビットデータラインに接続された第１のトライステートドライバの出力をそれぞれ有し、第２のトライステートドライバからの出力は、データバス５０ｂのそれぞれのビットデータライン、及び、それぞれのマルチプレクサ５２ａ及び５２ｃ−５２ｈへの第３の入力にそれぞれ接続される。（図示しない）ＰＥ２に関連する回路において、組５６ｃにおける第１のトライステートドライバ及び第２のトライステートドライバからの出力は、データバス５０ｃのデータの第３のビットであるビット２に関連するビットデータラインに接続され、また、残りのトライステートドライバの組５６ａ，５６ｂ及び５６ｄ−５６ｈは、それに関連するデータバス５０ａ，５０ｂ及び５０ｄ−５０ｈのデータの第３のビットであるビット２に関連するビットデータラインに接続された第１のトライステートドライバの出力をそれぞれ有し、第２のトライステートドライバの出力は、データバス５０ｃのそれぞれのビットデータライン、及び、それぞれのマルチプレクサ５２ａ，５２ｂ及び５２ｄ−５２ｈへの第３の入力にそれぞれ接続される。このように、８つのＰＥのグループにおける最後のＰＥ、すなわちＰＥ７に関連する回路４０ｈまで、同様の構成をなし、回路４０ｈにおいて、組５６ｈにおける第１のトライステートドライバ及び第２のトライステートドライバの出力は、データバス５０ｈのアドレス７におけるデータの最後のビットであるビット７に関連するデータビットラインに接続され、残りのトライステートドライバの組５６ａ−５６ｇは、それに関連するデータバス５０ａ−５０ｇの最後のビットであるビット７に関連するデータビットラインに接続された第１のトライステートドライバからの出力をそれぞれ有し、第２のトライステートドライバからの出力は、データバス５０ｈのそれぞれのビットデータライン、及び、それぞれのマルチプレクサ５２ａ−５２ｇへの第３の入力にそれぞれ接続される。
【００２３】
次に、図５に示す回路の動作について詳細に説明する。例えば、データの読み出しが要求され、データが垂直モードによりメモリに格納されている場合、すなわち、データが、図４に示すように、垂直モードによりメモリ１２から各ＰＥに読み出される場合を想定する。つまり、アドレス０からアドレス７におけるそれぞれのビットをそれぞれのＰＥに入力する場合である。例えば、アドレス０からアドレス７までの各アドレスから第１のビット、すなわちビット０がＰＥ０に入力され、アドレス０からアドレス７までの各アドレスから第２のビット、すなわちビット１がＰＥ１に入力され、同様にして、最後のビットまで、すなわち、アドレス０からアドレス７までの各アドレスからビット７がＰＥ７に入力される。データがデータバス５０ａ−５０ｈに出力されると、各マルチプレクサ５２ａ−５２ｈは、その第２の入力のデータ、すなわち、それぞれのデータバス５０ａ−５０ｈからのデータを、それぞれのレジスタ５４ａ−５４ｈに転送する。このように、回路４０ａにおいて、データの第１のビット、すなわちビット０は、マルチプレクサ５２ａ−５２ｈを介してレジスタ５４ａ−５４ｈに転送され、さらにマルチプレクサ６０ａに転送される。マルチプレクサ６０ａは、データの各ビットであるビット０を順次に、すなわち、入力＜０＞から入力＜７＞まで、出力６２ａを介してＰＥ０に順番に送出する。このように、マルチプレクサ６０ａからＰＥ０への出力は、順次手法によりアドレス０−アドレス７のそれぞれのアドレスから出力されるビット０となる。
【００２４】
同様に、回路４０ｂにおいて、データの第２のビット、すなわちビット１は、マルチプレクサ５２ａ−５２ｈを介してレジスタ５４ａ−５４ｈに転送され、さらにマルチプレクサ６０ｂに転送される。マルチプレクサ６０ｂは、データの各ビットを順次に、すなわち、入力＜０＞から入力＜７＞まで、出力６２ｂを介してＰＥ１に順番に送出する。それぞれ残りのＰＥに関連する回路は、回路４０ｈまで同様に動作し、回路４０ｈにおいて、データの最後のビット、すなわちビット７は、マルチプレクサ５２ａ−５２ｈを介してレジスタ５４ａ−５４ｈに転送され、さらに、マルチプレクサ６０ｈに転送される。マルチプレクサ６０ｈは、データの各ビットを順次に、すなわち、入力＜０＞から入力＜７＞まで、出力６２ｈを介してＰＥ７に順番に送出する。以上のように、データは、垂直方法によりアドレス０−アドレス７のメモリアドレスから各ＰＥに出力される。
【００２５】
次に、例えば、データが水平モードでメモリに格納されているときに読み出しが要求される場合、すなわち、図４に示すように、ノーマルモード（水平モード）でメモリに格納されたデータが、メモリから読み出されそれぞれのＰＥに入力される場合を想定する。このように、アドレス０からの各ビットデータは、ビット０からビット７まで順次手法によりＰＥ０に入力され、アドレス１からの各ビットデータは、ビット０からビット７まで順次手法によりＰＥ１に入力されなければならず、その他も同様である。回路４０ａを参照して、アドレス０からのビット０からビット７までのデータがバス５０ａに提供されるので、バス５０ａのデータビットライン０のビット０は、マルチプレスサ５２ａの第３の入力に入力され、バス５０ａのデータビットライン１のビット１は、マルチプレスサ５２ｂの第３の入力に入力され、バス５０ａのデータビットライン２のビット２は、マルチプレスサ５２ｃの第３の入力に入力され、同様にして、バス５０ａのデータビットライン７のビット７まで入力され、つまり、ビット７は、マルチプレスサ５２ｈの第３の入力に入力される。マルチプレクサ５２ａ−５２ｈは、その第３の入力をそれぞれのレジスタ５４ａ−５４ｈに転送する。レジスタ５４ａ−５４ｈのデータは、マルチプレクサ６０ａに送出される。マルチプレクサ６０ａは、データの各ビットを順次に、すなわち、入力＜０＞から入力＜７＞まで、出力６２ａを経由してＰＥ０に順番に送出する。このように、ＰＥ０は、アドレス０のビット０からビット７を、一度に１ビットづつ受信する。
【００２６】
同様に、回路４０ｂにおいて、アドレス１からのビット０からビット７までのデータがバス５０ｂに提供されるので、バス５０ｂのデータビットライン０のビット０は、マルチプレスサ５２ａの第３の入力に入力され、バス５０ｂのデータビットライン１のビット１は、マルチプレスサ５２ｂの第３の入力に入力され、バス５０ｂのデータビットライン２のビット２は、マルチプレスサ５２ｃの第３の入力に入力され、同様にして、バス５０ｂのデータビットライン７のビット７まで入力され、つまり、ビット７は、マルチプレスサ５２ｈの第３の入力に入力される。マルチプレクサ５２ａ−５２ｈは、その第３の入力をそれぞれのレジスタ５４ａ−５４ｈに転送する。レジスタ５４ａ−５４ｈのデータは、マルチプレクサ６０ｂに送出される。マルチプレクサ６０ｂは、データの各ビットを順次に、すなわち、入力＜０＞から入力＜７＞まで、出力６２ｂを経由してＰＥ１に順番に送出する。このように、ＰＥ１は、アドレス１のビット０からビット７を、一度に１ビットづつ受信する。
【００２７】
それぞれの残りのＰＥに関連する回路は、回路４０ｈまで同様に動作し、つまり、回路４０ｈにおいて、アドレス１からのビット０からビット７までのデータがバス５０ｈに出力されるので、バス５０ｈのデータビットライン０のビット０は、マルチプレスサ５２ａの第３の入力に入力され、バス５０ｈのデータビットライン１のビット１は、マルチプレスサ５２ｂの第３の入力に入力され、バス５０ｈのデータビットライン２のビット２は、マルチプレスサ５２ｃの第３の入力に入力され、同様にして、バス５０ｈのデータビットライン７のビット７まで入力され、つまり、ビット７は、マルチプレスサ５２ｈの第３の入力に入力される。マルチプレクサ５２ａ−５２ｈは、その第３の入力をそれぞれのレジスタ５４ａ−５４ｈに転送する。レジスタ５４ａ−５４ｈのデータは、マルチプレクサ６０ｈに送出される。マルチプレクサ６０ｈは、データの各ビットを順次に、すなわち、入力＜０＞から入力＜７＞まで、出力６２ｈを経由してＰＥ７に順番に送出する。このように、ＰＥ７は、アドレス７のビット０からビット７を、一度に１ビットづつ受信する。以上のように、データは、水平モードによりメモリから読み出される。
【００２８】
次に、例えば、図４に示すように、各ＰＥからのデータが、垂直モードによりメモリに格納されるときの書き込みが要求される場合を想定する。これは、アドレス０−アドレス７のそれぞれのメモリアドレスにおいて同じ位置に、ＰＥから８ビットのそれぞれを入力する場合である。図５の回路４０ａを参照して、データは、各マルチプレクサ５２ａ−５２ｈの第１の入力に接続されているＰＥＤｏｕｔ６４のラインに、ＰＥ０から順次に出力される。ＰＥ０から出力されたデータの第１のビットは、マルチプレクサ５２ａによってレジスタ５４ａに転送され、さらにトライステートドライバの組５６ａに転送される。組５６ａの第１のトライステートドライバは、データバス５０ａのデータビットライン０にデータを転送し、アドレス０における第１のビットであるビット０にそのデータを書き込む。同様に、ＰＥ０から出力されたデータの第２のビットは、マルチプレクサ５２ｂによってレジスタ５４ｂに転送され、さらにトライステートドライバの組５６ｂの入力に転送される。組５６ｂの第１のトライステートドライバは、データバス５０ｂのデータビットライン０にデータを転送し、アドレス１における第１のビットであるビット０にそのデータを書き込む。このように、ＰＥ０からのデータの各ビットは最後のビットまで、同様に転送され、最後のビットは、マルチプレクサ５２ｈによってレジスタ５４ｈに転送され、さらにトライステートドライバの組５６ｈの入力に転送される。組５６ｈの第１のトライステートドライバは、データバス５０ｈのデータビットライン０にデータを転送し、アドレス７における第１のビットであるビット０にそのデータを書き込む。
【００２９】
残りの回路４０ｂ−４０ｈも同様に、アドレス０−アドレス７における各アドレスのそれぞれの位置にデータを格納するために動作する。例えば、回路４０ｂにおいて、ＰＥ１から出力されたデータの第１のビットは、マルチプレクサ５２ａによってレジスタ５４ａに転送され、さらにトライステートドライバの組５６ａの入力に転送される。組５６ａの第１のトライステートドライバは、データバス５０ａのデータビットライン１にデータを転送し、アドレス０における第２のビットであるビット１にそのデータを書き込む。同様に、ＰＥ１から出力されたデータの第２のビットは、マルチプレクサ５２ｂによってレジスタ５４ｂに転送され、さらにトライステートドライバの組５６ｂの入力に転送される。組５６ｂの第１のトライステートドライバは、データバス５０ｂのデータビットライン１にデータを転送し、アドレス１における第２のビットであるビット１にそのデータを書き込む。この処理は、アドレス０−アドレス７の各アドレスにおける第２のデータビットであるビット１について完了するまで、ＰＥ１からのデータの各ビットに対して行われる。
【００３０】
次に、回路４０ｈを参照して、ＰＥ７から出力されたデータの第１のビットは、マルチプレクサ５２ａによってレジスタ５４ａに転送され、さらにトライステートドライバの組５６ａの入力に転送される。組５６ａの第１のトライステートドライバは、データバス５０ａのデータビットライン７にデータを転送し、アドレス０における最後のビットであるビット７にそのデータを書き込む。同様に、ＰＥ７から出力されたデータの第２のビットは、マルチプレクサ５２ｂによってレジスタ５４ｂに転送され、さらにトライステートドライバの組５６ｂの入力に転送される。組５６ｂの第１のトライステートドライバは、データバス５０ｂのデータビットライン７にデータを転送し、アドレス１における最後のビットであるビット７にそのデータを書き込む。この処理は、アドレス０−アドレス７の各アドレスにおける最後のデータビットであるビット７について完了するまで、ＰＥ７からのデータの各ビットに対して行われる。
【００３１】
次に、例えば、図４に示すように、各ＰＥからのデータが、ノーマルモード（水平モード）によりメモリに格納されるときの書き込みが要求される場合を想定する。これは、同じアドレス位置のそれぞれのビットに順番に、ＰＥから８ビットのそれぞれを入力する場合である。図５の回路４０ａを参照して、データは、ラインＰＥＤｏｕｔ６４ａにＰＥ０から順次に出力され、ラインＰＥＤｏｕｔ６４ａは、各マルチプレクサ５２ａ−５２ｈの第１の入力に続される。ＰＥ０から出力されたデータの第１のビットは、マルチプレクサ５２ａによってレジスタ５４ａに転送され、さらにトライステートドライバの組５６ａの入力に転送される。組５６ａの第２のトライステートドライバは、データバス５０ａのデータビットライン０にデータを転送し、アドレス０における第１のビットであるビット０にそのデータを書き込む。同様に、ＰＥ０から出力されたデータの第２のビットは、マルチプレクサ５２ｂによってレジスタ５４ｂに転送され、さらにトライステートドライバの組５６ｂの入力に転送される。組５６ｂの第２のトライステートドライバは、データバス５０ａのデータビットライン１にデータを転送し、アドレス０における第２のビットであるビット１にそのデータを書き込む。このように、ＰＥ０からのデータの各ビットは最後のビットまで、同様に転送され、最後のビットは、マルチプレクサ５２ｈによってレジスタ５４ｈに転送され、さらにトライステートドライバの組５６ｈの入力に転送される。組５６ｈの第２のトライステートドライバは、データバス５０ａのデータビットライン７にデータを転送し、アドレス０における最後のビットであるビット７にそのデータを書き込む。このように、ＰＥ０からのデータの８ビットは、アドレス０のビット０からビット７に書き込まれる。
【００３２】
残りの回路４０ｂ−４０ｈも同様に、アドレス１−アドレス７における各アドレスのそれぞれの位置にデータを格納するために動作する。例えば、回路４０ｂにおいて、ＰＥ１から出力されたデータの第１のビットは、マルチプレクサ５２ａによってレジスタ５４ａに転送され、さらにトライステートドライバの組５６ａの入力に転送される。組５６ａの第２のトライステートドライバは、データバス５０ｂのデータビットライン０にデータを転送し、アドレス１における第１のビットであるビット０にそのデータを書き込む。同様に、ＰＥ１から出力されたデータの第２のビットは、マルチプレクサ５２ｂによってレジスタ５４ｂに転送され、さらにトライステートドライバの組５６ｂの入力に転送される。組５６ｂの第２のトライステートドライバは、データバス５０ｂのデータビットライン１にデータを転送し、アドレス１における第２のビットであるビット１にそのデータを書き込む。この処理は、ＰＥ１からのデータの最後のビットがアドレス１のビット７に書き込まれるまで、ＰＥ１からのデータの各ビットに対して行われる。
【００３３】
次に、回路４０ｈを参照して、ＰＥ７から出力されたデータの第１のビットは、マルチプレクサ５２ａによってレジスタ５４ａに転送され、さらにトライステートドライバの組５６ａの入力に転送される。組５６ａの第２のトライステートドライバは、データバス５０ｈのデータビットライン０にデータを転送し、アドレス７における第１のビットであるビット０にそのデータを書き込む。同様に、ＰＥ７から出力されたデータの第２のビットは、マルチプレクサ５２ｂによってレジスタ５４ｂに転送され、さらにトライステートドライバの組５６ｂの入力に転送される。組５６ｂの第２のトライステートドライバは、データバス５０ｈのデータビットライン１にデータを転送し、アドレス７における第２のビットであるビット１にそのデータを書き込む。この処理は、最後のデータビットであるビット７がアドレス７の最後のビットであるビット７に書き込まれるまで、ＰＥ７からのデータの各ビットに対して行われる。このように、データは、水平モードによりメモリに書き込まれる。
【００３４】
このように、本発明によれば、データは、垂直モードまたは水平モードのいずれかにより、単一ビット接続を介して、メモリからＰＥに読み出され、ＰＥからメモリに書き込まれる。
【００３５】
各回路４０ａ−４０ｈにおいて、例えば５４ａ−５４ｈのような単一のレジスタ５４は、読み出しまたは書き込みのいずれかの動作のために、メモリバッファとしてＰＥ毎に１バイトのみを保持することに使用される。第２に、そのレジスタは、１つには書き込みデータを保持することに、他には読み出しのために使用され、または読み出しや書き込みのために行われるデータのパイプライン処理のために使用される。図６は、図５の代替実施例を示す概略図であり、図５の各レジスタ５４ａ−５４ｈは、１組のレジスタ８０ａ及び８０ｂに置き換えられている。すなわち、対応するマルチプレクサ５２の出力、すなわち、図５の回路４０ａ−４０ｈにおけるマルチプレクサ５２ａ−５２ｈが、レジスタ８０ａ及びレジスタ８０ｂに入力される。各レジスタ８０ａ及び８０ｂの出力は、マルチプレクサ８２に入力される。マルチプレクサ８２の出力は、それぞれのマルチプレクサ６０、すなわち、図５のマルチプレクサ６０ａ−６０ｈに送出される。さらに、レジスタ８０ａ及び８０ｂの出力は、第２のマルチプレクサ８４に入力され、その出力は、それぞれのトライステートドライバの組５６、すなわち、図５のトライステートドライバ５６ａ−５６ｈに接続される。図６に示す回路の動作は、マルチプレクサ８２及び８４が、レジスタ８０ａ及び８０ｂからのデータをトライステートドライバの組５６またはマルチプレクサ６０の入力のいずれかに転送することを決定する点を除いて、図５に示した動作と同様である。すなわち、２つのレジスタ８０ａ，８０ｂは、一つには書き込みデータを保持することに、他には読み出しのため使用され、または読み出しや書き込みのために行われるデータのパイプライン処理のために使用される。
【００３６】
本発明の接続回路４０ａ−４０ｈを有する能動メモリデバイスは、図７に示すタイプのプロセッサを基本とするシステム３００に用いられる。プロセッサを基本とするシステム３００は、バス３２０を介して、メモリデバイス３１２及びＩ／Ｏデバイス３０８と通信するプロセッサ３０２を備えている。バス３２０は、プロセッサを基本とするシステムに共通して用いられる一連のバス及びブリッジであるが、バス３２０は、説明の都合を考慮して単一バスとして示されていることに注意しなければならない。メモリデバイス３１２は、図５及び６を用いて前述したように、接続回路４０ａ−４０ｈを含む。メモリデバイス３１２は、複数のＰＥを利用したＳＩＭＤ　ＭＰＰまたは他の種類のＤＲＡＭやＳＲＡＭである。また、プロセッサ３０２は、それ自体、本発明の回路要素を含むオンチップメモリデバイスを利用する集積プロセッサである。
【００３７】
プロセッサを基本とするシステム３００は、コンピュータシステム、プロセス制御システム、または、プロセッサ及び関連するメモリを使用する他のシステムである。また、プロセッサを基本とするシステム３００は、読み込み専用メモリ（ＲＯＭ）３１０、及び、バス３２０を介して同様にプロセッサ３０２と通信するフロッピディスクドライブ３０４やコンパクトディスク（ＣＤ）ＲＯＭドライブ３０６のように、技術として良く知られている周辺デバイスを備えている。
【００３８】
以上、発明時に知られていた好適な実施例を用いて、本発明を詳細に説明したが、本発明はこのような開示した実施例に制限されるものではない。むしろ、本発明は、その精神及び範囲に合致する限り、前述した説明に含まれない、あらゆる変形、交替、置換または同等の組み合わせに変更することが可能である。従って、本発明は、前述した説明によって制限されるものではなく、付記した請求の範囲によってのみ制限される。
【図面の簡単な説明】
【図１】一般的なコンピュータアーキテクチャを示すブロック図である。
【図２】能動メモリのアーキテクチャを示すブロック図である。
【図３】一般的なＰＥの内部接続アーキテクチャを示すブロック図である。
【図４】メモリ内の垂直及び水平方向におけるデータの格納を示す図である。
【図５】本発明によるＰＥアレイとメモリとの間の接続を示す概略図である。
【図６】図５における、ＰＥアレイとメモリとの間の接続に関する代替実施例を示す概略図である。
【図７】本発明が用いられる、プロセッサを基本としたシステムを示すブロック図である。
【図１】
2004507836.tif 000003
【図２】
2004507836.tif 000004
【図３】
2004507836.tif 000005
【図４】
2004507836.tif 000006
【図５】
2004507836.tif 000007
【図６】
2004507836.tif 000008
【図７】
2004507836.tif 000009
【国際公開パンフレット】
2004507836.tif 000010
2004507836.tif 000011
2004507836.tif 000012
2004507836.tif 000013
2004507836.tif 000014
2004507836.tif 000015
2004507836.tif 000016
2004507836.tif 000017
2004507836.tif 000018
2004507836.tif 000019
2004507836.tif 000020
2004507836.tif 000021
2004507836.tif 000022
2004507836.tif 000023
2004507836.tif 000024
2004507836.tif 000025
2004507836.tif 000026
2004507836.tif 000027
2004507836.tif 000028
2004507836.tif 000029
2004507836.tif 000030
2004507836.tif 000031
2004507836.tif 000032
2004507836.tif 000033
2004507836.tif 000034
2004507836.tif 000035
2004507836.tif 000036
2004507836.tif 000037
2004507836.tif 000038
2004507836.tif 000039
2004507836.tif 000040
2004507836.tif 000041
2004507836.tif 000042
2004507836.tif 000043
2004507836.tif 000044
2004507836.tif 000045
2004507836.tif 000046
2004507836.tif 000047
2004507836.tif 000048
2004507836.tif 000049
2004507836.tif 000050
2004507836.tif 000051
2004507836.tif 000052
2004507836.tif 000053
2004507836.tif 000054
2004507836.tif 000055
2004507836.tif 000056
2004507836.tif 000057
2004507836.tif 000058
2004507836.tif 000059
2004507836.tif 000060
【国際公開パンフレット（コレクトバージョン）】
2004507836.tif 000061
2004507836.tif 000062
【国際調査報告】
2004507836.tif 000063
2004507836.tif 000064