JPH0229849A - コンピュータ、メモリシステム、情報蓄積装置 - Google Patents
コンピュータ、メモリシステム、情報蓄積装置Info
- Publication number
- JPH0229849A JPH0229849A JP1117629A JP11762989A JPH0229849A JP H0229849 A JPH0229849 A JP H0229849A JP 1117629 A JP1117629 A JP 1117629A JP 11762989 A JP11762989 A JP 11762989A JP H0229849 A JPH0229849 A JP H0229849A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- cpu
- computer
- coder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Complex Calculations (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の属する技術分野]
本発明は、コンピュータシステムに関し、特に、コンピ
ュータシステムにおいて用いられるメモリシステムに関
する。
ュータシステムにおいて用いられるメモリシステムに関
する。
[従来技術の説明]
コンピュータシステムの重要な用途の1つは、データの
操作である。当該データ操作は、大量の情報を、人間が
容易に理解しうる表の形にまとめあげること等、ある場
合には、それ自体意味あることである。別な場合におい
ては、データは、リニアプログラミング最適化プロセス
等のコンピュータが実行しているタスクの一部として操
作される。
操作である。当該データ操作は、大量の情報を、人間が
容易に理解しうる表の形にまとめあげること等、ある場
合には、それ自体意味あることである。別な場合におい
ては、データは、リニアプログラミング最適化プロセス
等のコンピュータが実行しているタスクの一部として操
作される。
コンピュータのメモリにストアされたデータは、当該コ
ンピュータの制御及び操作回路によってアクセスされる
。従来技術に係るメモリは、その各々が情報をストアす
ることができる、複数個のロケーションを有している。
ンピュータの制御及び操作回路によってアクセスされる
。従来技術に係るメモリは、その各々が情報をストアす
ることができる、複数個のロケーションを有している。
当該ロケーションは、各々、郵便局の私書箱のようなも
のである。特定の私書箱の内容を用いるためには、特定
の識別番号すなわちアドレスを知っていることが必要と
なる。コンピュータが1つのデータを要求する場合には
いつでも、当該コンピュータは当該要求されたデータが
存在するメモリロケーションを知っていなければならな
い。その後、当該コンピュータは、当該メモリの適切な
ロケーションに対するアドレスを規定し、次いで、当該
アドレスにより、当該コンピュータに前記ロケーション
内に存在するデータが与えられる。すなわちメモリは、
コンピュータが配置しようとする全ての情報に対する受
動的倉庫として機能する。
のである。特定の私書箱の内容を用いるためには、特定
の識別番号すなわちアドレスを知っていることが必要と
なる。コンピュータが1つのデータを要求する場合には
いつでも、当該コンピュータは当該要求されたデータが
存在するメモリロケーションを知っていなければならな
い。その後、当該コンピュータは、当該メモリの適切な
ロケーションに対するアドレスを規定し、次いで、当該
アドレスにより、当該コンピュータに前記ロケーション
内に存在するデータが与えられる。すなわちメモリは、
コンピュータが配置しようとする全ての情報に対する受
動的倉庫として機能する。
コンピュータは、当該コンピュータに書込まれたプログ
ラムを実行することによって、有用なタスクを実行する
。これらのプログラムは、実行中のタスクの一部として
アクセスされ、操作させられるデータに関する知識を有
していなければならない。これらのプログラムを書く技
術者は、データに関する組織的な構成を考えているが、
しばしば、現時点で作成中のプログラムに関するデータ
の構成要素の各々に独自の名前あるいは番号を割当てる
ことが不便であることに気がつく。その代わりにブロク
ラマは、データをデータストラクチャと呼称されるグル
ープに組織することがままある。以下にデータストラク
チチャの例が示される。
ラムを実行することによって、有用なタスクを実行する
。これらのプログラムは、実行中のタスクの一部として
アクセスされ、操作させられるデータに関する知識を有
していなければならない。これらのプログラムを書く技
術者は、データに関する組織的な構成を考えているが、
しばしば、現時点で作成中のプログラムに関するデータ
の構成要素の各々に独自の名前あるいは番号を割当てる
ことが不便であることに気がつく。その代わりにブロク
ラマは、データをデータストラクチャと呼称されるグル
ープに組織することがままある。以下にデータストラク
チチャの例が示される。
−船釣なデータストラクチャの一例がスタックである。
スタックにおいては、アイテムは、カフェテリアにおけ
るトレーのように、他のものの“最上部”に積み重ねら
れる。スタックからアイテムが読み出される場合には、
当該アイテムは読み出されるスタックの必ず最上部にあ
るものである。同様に、アイテムが書込まれる場合には
、必ずスタックの最上部に“ブツシュ(push)”さ
れる。それゆえ、スタックは、′ラスト・インφファー
スト・アウト” (LIFO)型のデータストラクチャ
である。
るトレーのように、他のものの“最上部”に積み重ねら
れる。スタックからアイテムが読み出される場合には、
当該アイテムは読み出されるスタックの必ず最上部にあ
るものである。同様に、アイテムが書込まれる場合には
、必ずスタックの最上部に“ブツシュ(push)”さ
れる。それゆえ、スタックは、′ラスト・インφファー
スト・アウト” (LIFO)型のデータストラクチャ
である。
一般的なデータストラクチャの別な例はツリーである。
ツリーは家系図のようなものである。ツリーにおいては
、ヘッドを形成する単一の構造のデータが存在する。当
該単一構造データはルートと呼称される。ルートは第1
世代(ペアレント)であり、各ペアレントは1以上の“
子(チャイルド)”を有しく各チャイルドは、それ自体
−データである)、これらのチャイルドは、さらに複数
のチャイルドを有する、というように続いていく。
、ヘッドを形成する単一の構造のデータが存在する。当
該単一構造データはルートと呼称される。ルートは第1
世代(ペアレント)であり、各ペアレントは1以上の“
子(チャイルド)”を有しく各チャイルドは、それ自体
−データである)、これらのチャイルドは、さらに複数
のチャイルドを有する、というように続いていく。
勿論、これらのストラクチャは、プログラムによって、
当該データに関して課された実体を抽出するものである
が、ユーザに対する意義的重要性をも有している。
当該データに関して課された実体を抽出するものである
が、ユーザに対する意義的重要性をも有している。
コンピュータプログラムが、例えばスタックとして組織
されたデータを操作する場合には、スタックの概念をメ
モリが理解できるような形に、即ち、番号を付されたロ
ケーション即ちアドレスに翻訳することが必ず必要とさ
れる。スタックを実効的に実現するためには、プロセッ
サは、当該スタックの現時点における先頭がどこである
かを知っていることができなければならない。即ち、ス
タックの先頭のアドレスは、別なメモリロケーションに
ストアされている。スタックにおける先頭アイテムを読
み出すためには、コンピュータは、まず、スタックの先
頭を識別しているアドレスを得なければならない。当該
アドレスがロケーションされた後、当該アドレスに存在
する実際のデータが要求される。スタックの先頭にアイ
テムを追加する、アイテムを消去する等の動作は、同様
な複数回のメモリアクセスを必要とする。実際には、注
意深(書かれたプログラムは、スタックが当該プログラ
ムに対して割当てられたロケーション範囲内に存在する
か否か、あるいは、スタックが現時点で他のデータスト
ラグチャに対して割当てられたロケーションを操作する
ことになるポイントに近付きつつあるか否かを、当然チ
エツクするために、さらに多くのメモリアクセスが要求
されることとなる。明らかに、メモリがデータ倉庫とし
て取扱われる方法と、メモリロケーションが複数のプロ
グラムに対して分与される方法との間には差異が存在す
る。
されたデータを操作する場合には、スタックの概念をメ
モリが理解できるような形に、即ち、番号を付されたロ
ケーション即ちアドレスに翻訳することが必ず必要とさ
れる。スタックを実効的に実現するためには、プロセッ
サは、当該スタックの現時点における先頭がどこである
かを知っていることができなければならない。即ち、ス
タックの先頭のアドレスは、別なメモリロケーションに
ストアされている。スタックにおける先頭アイテムを読
み出すためには、コンピュータは、まず、スタックの先
頭を識別しているアドレスを得なければならない。当該
アドレスがロケーションされた後、当該アドレスに存在
する実際のデータが要求される。スタックの先頭にアイ
テムを追加する、アイテムを消去する等の動作は、同様
な複数回のメモリアクセスを必要とする。実際には、注
意深(書かれたプログラムは、スタックが当該プログラ
ムに対して割当てられたロケーション範囲内に存在する
か否か、あるいは、スタックが現時点で他のデータスト
ラグチャに対して割当てられたロケーションを操作する
ことになるポイントに近付きつつあるか否かを、当然チ
エツクするために、さらに多くのメモリアクセスが要求
されることとなる。明らかに、メモリがデータ倉庫とし
て取扱われる方法と、メモリロケーションが複数のプロ
グラムに対して分与される方法との間には差異が存在す
る。
プログラマは、通常、各データストラグチャに関係する
実際のメモリロケーションを見逃さないことに相当の努
力を払9ている。この作業は厄介で誤りやすいばかりで
なく、非常に非能率的である。スタックアクセス等の単
純なタスクは、理想的には単一メモリアクセスであるは
ずである。メモリ範囲チエツク及びストレージ管理のた
めこの単純なタスクに対してより多くのメモリアクセス
が必要となる。
実際のメモリロケーションを見逃さないことに相当の努
力を払9ている。この作業は厄介で誤りやすいばかりで
なく、非常に非能率的である。スタックアクセス等の単
純なタスクは、理想的には単一メモリアクセスであるは
ずである。メモリ範囲チエツク及びストレージ管理のた
めこの単純なタスクに対してより多くのメモリアクセス
が必要となる。
(発明の概要)
本発明は、コンピュータの動作をコンピュータの制御及
びデータ操作ユニットとのインターフェースを行なう、
−膜化されたプログラマブルメモリシステムを供給する
ことによって増強するものである。本発明に係るメモリ
システムは、通常コンピュータによって実行されるよう
な操作の実行、管理及びチエツクを行なうことが可能で
ある。当該システムは、ネットワーク状に相互に接続さ
れてメモリモジュールを形成している、任意側のアクテ
ィブストラクチャモジュール(ASE)を有している。
びデータ操作ユニットとのインターフェースを行なう、
−膜化されたプログラマブルメモリシステムを供給する
ことによって増強するものである。本発明に係るメモリ
システムは、通常コンピュータによって実行されるよう
な操作の実行、管理及びチエツクを行なうことが可能で
ある。当該システムは、ネットワーク状に相互に接続さ
れてメモリモジュールを形成している、任意側のアクテ
ィブストラクチャモジュール(ASE)を有している。
当該メモリモジュールは、相互に接続されて、返書結合
メモリシステムを有する。アグリゲートシステムを形成
する。当該アグリゲートメモリシステムがコンピユーラ
ダと接続される。各ASEはプロセッサ部及び通常のメ
モリ部を有している。当該プロセッサ部は、汎用プログ
ラマブルマイクロプロセッサあるいは当該メモリシステ
ムが実行することを期待されている特定の機能に適した
特別仕様のコントローラである。さらに、本発明に従っ
て、1つ以上のCPUが本発明に係るメモリシステムに
接続されることが可能であり、当該接続は、複数のポー
トを通じて効果的に実現される。
メモリシステムを有する。アグリゲートシステムを形成
する。当該アグリゲートメモリシステムがコンピユーラ
ダと接続される。各ASEはプロセッサ部及び通常のメ
モリ部を有している。当該プロセッサ部は、汎用プログ
ラマブルマイクロプロセッサあるいは当該メモリシステ
ムが実行することを期待されている特定の機能に適した
特別仕様のコントローラである。さらに、本発明に従っ
て、1つ以上のCPUが本発明に係るメモリシステムに
接続されることが可能であり、当該接続は、複数のポー
トを通じて効果的に実現される。
(実施例の説明)
データストラグチャエレメントをメモリにストアし、メ
モリ内でデータストラグチャエレメントを操作し、メモ
リからデータストラグチャエレメントを回復することに
係る概念は、これまでメモリシステム技術に関して応用
されてきていない。
モリ内でデータストラグチャエレメントを操作し、メモ
リからデータストラグチャエレメントを回復することに
係る概念は、これまでメモリシステム技術に関して応用
されてきていない。
選択されたあらゆるデータストラグチャエレメントを操
作するようにプログラムされることか可能なメモリシス
テムを有すること、及び、ストアされた情報に関する知
識ベースの管理をもはや要求されることのないCPUに
対して当該システムを接続することは、全く新しい概念
である。
作するようにプログラムされることか可能なメモリシス
テムを有すること、及び、ストアされた情報に関する知
識ベースの管理をもはや要求されることのないCPUに
対して当該システムを接続することは、全く新しい概念
である。
“データストラグチャ”の概念は、コンピュータサイエ
ンスの技術者には公知のものであるが、本明細書の理解
のためには、“データストラグチャ”が何であるか明言
しておくことが好ましい。
ンスの技術者には公知のものであるが、本明細書の理解
のためには、“データストラグチャ”が何であるか明言
しておくことが好ましい。
このため、以下に、カーニハン(Kernlgham)
らによる「プログラミング言語CJ (ブレンチエ・
ホール(Prentlee−Hat I)社、1978
年、第119頁)から、−節を引用するニ ストラクチャは、操作しやすいように1つの名前でまと
められた、1つまたはそれ以上の、おそらくは異なった
型の変数の集まりである。(ある種の言語、特にPa5
calにおいては、ストラクチャは“レコード°と呼称
される。) ストラクチャの伝統的な例は、給料支払いレコードであ
る: “従業員°は、名前、住所、社会保障番号、給料
等の属性の集合によって記述される。
らによる「プログラミング言語CJ (ブレンチエ・
ホール(Prentlee−Hat I)社、1978
年、第119頁)から、−節を引用するニ ストラクチャは、操作しやすいように1つの名前でまと
められた、1つまたはそれ以上の、おそらくは異なった
型の変数の集まりである。(ある種の言語、特にPa5
calにおいては、ストラクチャは“レコード°と呼称
される。) ストラクチャの伝統的な例は、給料支払いレコードであ
る: “従業員°は、名前、住所、社会保障番号、給料
等の属性の集合によって記述される。
これらの幾つかは、再びストラクチャであってもよい:
名前は幾つかの成分を持っており、住所もさらに給料も
そうである。
名前は幾つかの成分を持っており、住所もさらに給料も
そうである。
ストラクチャは、特に大規模なプログラムにおいて、複
雑なデータを組織化するのに役立つ。なぜなら、多くの
場合、ストラクチャを構成することによって、関連した
一群の変数が、個別の実体の代わりに1つのユニットと
して扱われうるからである。
雑なデータを組織化するのに役立つ。なぜなら、多くの
場合、ストラクチャを構成することによって、関連した
一群の変数が、個別の実体の代わりに1つのユニットと
して扱われうるからである。
本発明によれば、以下のメモリが供給される。
即ち、このメモリは、当該ユーザが操作することを希望
するデータストラクチャについて知らせ、かつ、当該メ
モリが認識されるべき基本操作について知らせるために
、当該ユーザが情報をダウンロードすることが充分可能
となる量の情報を保持する。その後、CPUが当該メモ
リと単に当該メモリに対してメモリスドラクチャエレメ
ント−即ちデーター及び/あるいは、どの操作を当該メ
モリが実行するべきかを知らせるコマンドを与えること
によって、相互作用する。このようにして、本発明に係
るメモリシステム、及び、本発明に係るメモリシステム
を有するように配置されたコンピュータは、選択された
データをストラクチャに対してメモリをプログラムする
能力及び、単なる“ワード”と比較して、データストラ
クチャエレメントを操作する能力を除いて、従来のメモ
リ操作を全く同様に機能する。
するデータストラクチャについて知らせ、かつ、当該メ
モリが認識されるべき基本操作について知らせるために
、当該ユーザが情報をダウンロードすることが充分可能
となる量の情報を保持する。その後、CPUが当該メモ
リと単に当該メモリに対してメモリスドラクチャエレメ
ント−即ちデーター及び/あるいは、どの操作を当該メ
モリが実行するべきかを知らせるコマンドを与えること
によって、相互作用する。このようにして、本発明に係
るメモリシステム、及び、本発明に係るメモリシステム
を有するように配置されたコンピュータは、選択された
データをストラクチャに対してメモリをプログラムする
能力及び、単なる“ワード”と比較して、データストラ
クチャエレメントを操作する能力を除いて、従来のメモ
リ操作を全く同様に機能する。
それゆえ、当業者が本発明を実現することを可能とする
ために、以下の記述は、使用法よりも本発明に係るメモ
リシステムの構造に対してその大部分をさいているもの
である。
ために、以下の記述は、使用法よりも本発明に係るメモ
リシステムの構造に対してその大部分をさいているもの
である。
第1図は、従来技術に係るマルチプロセッサ配置の一般
化された模式図である。当該配置は、プロセッサ1O1
11、当該プロセッサ10.11が接続されている共通
バス12、及び周辺デバイス13−18を有している。
化された模式図である。当該配置は、プロセッサ1O1
11、当該プロセッサ10.11が接続されている共通
バス12、及び周辺デバイス13−18を有している。
デバイス17.18はメモリである。その動作は、各プ
ロセッサがバス12の使用を競い、勝ち残ったプロセッ
サが当該バスに接続されたデバイスのいずれかに対する
アクセスが可能となる。
ロセッサがバス12の使用を競い、勝ち残ったプロセッ
サが当該バスに接続されたデバイスのいずれかに対する
アクセスが可能となる。
この様な配置においては、明らかにバス12が、プロセ
ッサ及びデバイス間の通信プロセスにおける潜在的なボ
ルトネックとなる。この問題を緩和するだめに、ある技
術者は、各プロセッサにキャッシュ(cache)メモ
リを含有させている。この方法は、バス競合の低減に役
立つが、プロセッサとメモリとの間の基本的な通信の問
題の解決とはならない。メモリアクセスは、依然として
、初歩的なフェッチ及びストアの形態である。
ッサ及びデバイス間の通信プロセスにおける潜在的なボ
ルトネックとなる。この問題を緩和するだめに、ある技
術者は、各プロセッサにキャッシュ(cache)メモ
リを含有させている。この方法は、バス競合の低減に役
立つが、プロセッサとメモリとの間の基本的な通信の問
題の解決とはならない。メモリアクセスは、依然として
、初歩的なフェッチ及びストアの形態である。
第2図は、本発明の原理に従うコンピュータシステムの
ブロック図である。当該システム例は、プロセッサ10
.11.及び周辺デバイス13.14.15.16を有
している。第2図においては、プロセッサはスイッチン
グネットワーク19に接続されている。
ブロック図である。当該システム例は、プロセッサ10
.11.及び周辺デバイス13.14.15.16を有
している。第2図においては、プロセッサはスイッチン
グネットワーク19に接続されている。
さらに、本発明の原理に従って、第2図のコンピュータ
システムは、ネットワーク19に対して接続されたメモ
リシステム20を有している。当該メモリシステム20
は、第1図におけるメモリとは異なり、制御されたプロ
セシング及び通信機能を有するメモリモジュールより成
り立っている。
システムは、ネットワーク19に対して接続されたメモ
リシステム20を有している。当該メモリシステム20
は、第1図におけるメモリとは異なり、制御されたプロ
セシング及び通信機能を有するメモリモジュールより成
り立っている。
ネットワーク19は、一方のCPUがメモリシステム2
0と通信している間に他方のCPUが別な周辺デバイス
と通信することを可能にしている。ネットワーク19は
、競合問題を解決するが、それは、メモリへの通信及び
メモリからの通信という低レベルの問題ではない。後者
は、メモリ内の知能によって解決される。勿論、競合問
題を有さないユーザ(例えば、競合が殆ど発生しそうに
ないようなアプリケーション)に対しては、ネットワー
ク19は除去されうる。またメモリシステム及び周辺デ
バイズ間での、CPUを全く介さない通信がしばしば行
なわれる。
0と通信している間に他方のCPUが別な周辺デバイス
と通信することを可能にしている。ネットワーク19は
、競合問題を解決するが、それは、メモリへの通信及び
メモリからの通信という低レベルの問題ではない。後者
は、メモリ内の知能によって解決される。勿論、競合問
題を有さないユーザ(例えば、競合が殆ど発生しそうに
ないようなアプリケーション)に対しては、ネットワー
ク19は除去されうる。またメモリシステム及び周辺デ
バイズ間での、CPUを全く介さない通信がしばしば行
なわれる。
第3図は、メモリ20をより詳細に示したものである。
当該メモリ20は、通信回線24.25.26からなる
ネットワークによっ相互に接続されたメモリモジュール
2L 22.23を有している。モジュール21−23
は、ネットワーク19に対しても接続されている。各モ
ジュールは、各々プロセッサエレメント30及びメモリ
31を有する複数個のASEを有している。ASEは、
回線67.6g、69よりなるネットワークによって相
互に接続され、メモリモジュールを形成している。
ネットワークによっ相互に接続されたメモリモジュール
2L 22.23を有している。モジュール21−23
は、ネットワーク19に対しても接続されている。各モ
ジュールは、各々プロセッサエレメント30及びメモリ
31を有する複数個のASEを有している。ASEは、
回線67.6g、69よりなるネットワークによって相
互に接続され、メモリモジュールを形成している。
第4図は、メモリモジュールのある具体例を示している
。当該具体例は、回線28.29によって列及び行の形
に配された双方向通信回線よりなるスイッチング構造を
有している。33で示されたASEモジュールは、各列
置線及び折回線間の“交点”を形成している。あらゆる
列及び行回線は他のASEとの通信に関して指定される
ことが可能であり、同様に、全ての列及び行回線は、ネ
ットワーク19との通信に関して指定されうる。1つの
メモリモジュール内のASE間での通信は、数多くの経
路の内のいずれかにある他のASEの通過を組み合わせ
て、列及び行回線によって実現される。
。当該具体例は、回線28.29によって列及び行の形
に配された双方向通信回線よりなるスイッチング構造を
有している。33で示されたASEモジュールは、各列
置線及び折回線間の“交点”を形成している。あらゆる
列及び行回線は他のASEとの通信に関して指定される
ことが可能であり、同様に、全ての列及び行回線は、ネ
ットワーク19との通信に関して指定されうる。1つの
メモリモジュール内のASE間での通信は、数多くの経
路の内のいずれかにある他のASEの通過を組み合わせ
て、列及び行回線によって実現される。
最も単純には、通信は、各々所定の手続きに従って、経
路に存在するASEに対して、当該ASEが列置線から
行回線へあるいはその逆に伝送すべきか否かを知らせる
ことを可能とするデスティネーションアドレスを有する
パケットの形態によって実現される。このような場合に
は、ASEは単なる交点交換器として機能する。
路に存在するASEに対して、当該ASEが列置線から
行回線へあるいはその逆に伝送すべきか否かを知らせる
ことを可能とするデスティネーションアドレスを有する
パケットの形態によって実現される。このような場合に
は、ASEは単なる交点交換器として機能する。
第5図は、第4図のスイッチング環境において動作する
ように適合されたASEにおけるプロセシングエレメン
トの一具体例を示したブローツク図である。当該具体例
は、プロセシングエレメントの2つのボートに接続され
た交換器34を有し、当該交換器は既に述べた交点交換
器として動作する。
ように適合されたASEにおけるプロセシングエレメン
トの一具体例を示したブローツク図である。当該具体例
は、プロセシングエレメントの2つのボートに接続され
た交換器34を有し、当該交換器は既に述べた交点交換
器として動作する。
当該具体例は、さらに、複数個のブロックが接続されて
いる共通バス35を有している。具体的には、バス35
は、マイクロプログラムメモリ3B、レジスタセット3
7、算術論理ユニット(ALU)38、マイクロプログ
ラムアドレスカウンタ39、及びメモリ制御ロジック2
7をインタヘフェースしている。
いる共通バス35を有している。具体的には、バス35
は、マイクロプログラムメモリ3B、レジスタセット3
7、算術論理ユニット(ALU)38、マイクロプログ
ラムアドレスカウンタ39、及びメモリ制御ロジック2
7をインタヘフェースしている。
動作に関しては、メモリシステム20は、2つの型式の
アクセスを受は入れる。1つは、メモリシステム全般、
及び特に必要とされるASEの各々をプログラムするこ
とである。プログラミングによって、当該メモリシステ
ムが取扱うことを要求される動作の実行方式が規定され
る。例えば、1つのプログラムモジュールは、ASEに
対して期待されるプロセシングを規定し、他のプログラ
ムモジュールは、特定のタスクに対して特定のプロセッ
サモジュールにおいて利用可能なもの以上のメモリある
いはデータ操作が要求される場合の相異なったASE間
での相互作用を規定する、等である。第2型式のアクセ
スは、当該メモリシステムに所定のタスクを実際に実行
するように指示することである。これは、例えば、°デ
ータワードをLIFOスタックにストアする、最後にア
クセスされた“子2の“ペアレンピをアクセスする等で
ある。
アクセスを受は入れる。1つは、メモリシステム全般、
及び特に必要とされるASEの各々をプログラムするこ
とである。プログラミングによって、当該メモリシステ
ムが取扱うことを要求される動作の実行方式が規定され
る。例えば、1つのプログラムモジュールは、ASEに
対して期待されるプロセシングを規定し、他のプログラ
ムモジュールは、特定のタスクに対して特定のプロセッ
サモジュールにおいて利用可能なもの以上のメモリある
いはデータ操作が要求される場合の相異なったASE間
での相互作用を規定する、等である。第2型式のアクセ
スは、当該メモリシステムに所定のタスクを実際に実行
するように指示することである。これは、例えば、°デ
ータワードをLIFOスタックにストアする、最後にア
クセスされた“子2の“ペアレンピをアクセスする等で
ある。
ASEが上述の型式のタスクを実行することを可能とす
る情報は、マイクロプログラム3B中に存在する。当該
メモリはマイクプログラムカウンタ39の制御下でアク
セスされ、ALU88、レジスタセット37及びメモリ
40における必要な動作を実行するために必要な制御信
号を生成する。メモリ3Bは従来技術に係るメモリであ
ってもよいが、好ましい具体例においては、第6図に示
されたように配置された、各々256ワードからなる4
組の32ビツトメモリモジユールより成立っている。こ
のようなデザインを用いた理由は、可変長インストラク
ションを効率的にストアし、同時にストアされた可変長
インストラクションを並列的にストアすることを可能に
したからである。
る情報は、マイクロプログラム3B中に存在する。当該
メモリはマイクプログラムカウンタ39の制御下でアク
セスされ、ALU88、レジスタセット37及びメモリ
40における必要な動作を実行するために必要な制御信
号を生成する。メモリ3Bは従来技術に係るメモリであ
ってもよいが、好ましい具体例においては、第6図に示
されたように配置された、各々256ワードからなる4
組の32ビツトメモリモジユールより成立っている。こ
のようなデザインを用いた理由は、可変長インストラク
ションを効率的にストアし、同時にストアされた可変長
インストラクションを並列的にストアすることを可能に
したからである。
可変長インストラクションをプログラムメモリにストア
するための従来技法に係る方式は、各々がインストラク
ションの一部分を保持する一連のロケーションを用いる
ことである。当該インストラクションが要求される場合
には、これら一連のロケーションが読み出され、当該イ
ンストラクションが連続読み出しによって“構築°され
る。あるいは、インストラクションは、最大長インスト
ラクションをストアするのに充分なビットを有するメモ
リにストアされ、短いインストラクションの場合にはい
くつかのビットが未使用となる。このような配置は、利
用可能なメモリを明らかに非効率的に用いるものであり
、それゆえ、ASEをVLSIとして実現する場合には
好ましくないものである。本発明に従うて、インストラ
クションがシーケンシャルロケーションにストアされる
ような仮想的メモリを4の倍数に0.1.2、及び3と
いうオフセットがついた(当該仮想メモリの)アドレス
に対応する4つのモジュールに分割する。
するための従来技法に係る方式は、各々がインストラク
ションの一部分を保持する一連のロケーションを用いる
ことである。当該インストラクションが要求される場合
には、これら一連のロケーションが読み出され、当該イ
ンストラクションが連続読み出しによって“構築°され
る。あるいは、インストラクションは、最大長インスト
ラクションをストアするのに充分なビットを有するメモ
リにストアされ、短いインストラクションの場合にはい
くつかのビットが未使用となる。このような配置は、利
用可能なメモリを明らかに非効率的に用いるものであり
、それゆえ、ASEをVLSIとして実現する場合には
好ましくないものである。本発明に従うて、インストラ
クションがシーケンシャルロケーションにストアされる
ような仮想的メモリを4の倍数に0.1.2、及び3と
いうオフセットがついた(当該仮想メモリの)アドレス
に対応する4つのモジュールに分割する。
よって、第6図においては、例えば、32ビツトよりな
る組3つよりなる第1インストラクシヨンは、モジュー
ル4L 42.43のロケーション0にストアされる。
る組3つよりなる第1インストラクシヨンは、モジュー
ル4L 42.43のロケーション0にストアされる。
32ビツトよりなる組2つよりなる次のインストラクシ
ョンは、モジュール44のロケーションO及びモジュー
ル41のロケーション1にストアされる、等である。(
前記仮想メモリの)実際のアドレスは、アドレスレジス
タ45に示されており、最下位の2ビツトが組合わせら
れて当該インストラクションの実際のスタートアドレス
が規定される;即ち、最下位2ビツトがメモリモジュー
ルを規定し、残りのビットが当該メモリモジュール内の
ロケーションを規定している。従って、第6図において
、レジスタ45は8本の入力バスリード線を有し、その
内の6本は、(加算器回路49.50.57を通じて)
メモリモジュールに達し、最下位2ビツトはデコーダ回
路に導かれる。必要なロジックを達成するために、デコ
ーダ46.47.48は、レジスタ45の最下位2ビツ
トに対応し、当該デコーダの出力は、各々モジュール4
1.42.43に接続された加算器49.50.57に
印加される。
ョンは、モジュール44のロケーションO及びモジュー
ル41のロケーション1にストアされる、等である。(
前記仮想メモリの)実際のアドレスは、アドレスレジス
タ45に示されており、最下位の2ビツトが組合わせら
れて当該インストラクションの実際のスタートアドレス
が規定される;即ち、最下位2ビツトがメモリモジュー
ルを規定し、残りのビットが当該メモリモジュール内の
ロケーションを規定している。従って、第6図において
、レジスタ45は8本の入力バスリード線を有し、その
内の6本は、(加算器回路49.50.57を通じて)
メモリモジュールに達し、最下位2ビツトはデコーダ回
路に導かれる。必要なロジックを達成するために、デコ
ーダ46.47.48は、レジスタ45の最下位2ビツ
トに対応し、当該デコーダの出力は、各々モジュール4
1.42.43に接続された加算器49.50.57に
印加される。
メモリモジュール41−44にストアされたインストラ
クションは、インストラクション長を規定する情報を有
している。従って、フォーマットデコーダ5■は、(メ
モリモジュール出力の対応するビット)及び、インスト
ラクション長を決定するためにレジスタ45の最下位2
ビツトに対して接続されている。当該情報は、交換器5
2及びインクリメント回路54に与えられる。回路54
は、レジスタ45の出力にも応答するようになっている
。レジスタ45の最下位の2ビツトの組合わせにより、
交換器52は、メモリモジュールの出力を、要求された
ように4つの出力に導き、単一の並列インストラクショ
ンワード(128ビツト長)を形成する。短いインスト
ラクションの場合に未使用ビットに論理0を出力するこ
とを可能にするために、交換器52には“0”入力が含
まれている。最後に、インクリメントプロセス以外、即
ち、メモリにインストラクションがロードされる場合あ
るいは“ブランチ(分岐)″インストラクションが実行
される場合等にメモリをアクセスすることを可能とする
ために、第6図には、インクリメント回路54とレジス
タ45の間に設置されたマルチプレクサ84が含まれて
いる。マルチプレクサ84は、回線55.5B、57.
58からの入力信号にも応答する。
クションは、インストラクション長を規定する情報を有
している。従って、フォーマットデコーダ5■は、(メ
モリモジュール出力の対応するビット)及び、インスト
ラクション長を決定するためにレジスタ45の最下位2
ビツトに対して接続されている。当該情報は、交換器5
2及びインクリメント回路54に与えられる。回路54
は、レジスタ45の出力にも応答するようになっている
。レジスタ45の最下位の2ビツトの組合わせにより、
交換器52は、メモリモジュールの出力を、要求された
ように4つの出力に導き、単一の並列インストラクショ
ンワード(128ビツト長)を形成する。短いインスト
ラクションの場合に未使用ビットに論理0を出力するこ
とを可能にするために、交換器52には“0”入力が含
まれている。最後に、インクリメントプロセス以外、即
ち、メモリにインストラクションがロードされる場合あ
るいは“ブランチ(分岐)″インストラクションが実行
される場合等にメモリをアクセスすることを可能とする
ために、第6図には、インクリメント回路54とレジス
タ45の間に設置されたマルチプレクサ84が含まれて
いる。マルチプレクサ84は、回線55.5B、57.
58からの入力信号にも応答する。
マイクロプログラムアドレス制御ロジック39(第5図
)は、トラップロジックブロック60及びブランチロジ
ック70を有している。双方ともバス35に対して接続
されており、双方が合わせて組となって第6図に示され
ているマイクロプログラムメモリに達している回線55
.5Bへ信号を与えている。当該トラップロジックブロ
ックは第7図に図示されている。
)は、トラップロジックブロック60及びブランチロジ
ック70を有している。双方ともバス35に対して接続
されており、双方が合わせて組となって第6図に示され
ているマイクロプログラムメモリに達している回線55
.5Bへ信号を与えている。当該トラップロジックブロ
ックは第7図に図示されている。
多くのアプリケーションにおいて、プロセッサ33のス
テートをテストし、当該プロセッサのステートに基づい
て相異なった動作を実行することが望ましい。この種の
テストは、レジスターセット、ALU、及びメモリ制御
ブロック等の相異なったロケーションでなされうる。こ
のような問題のある点の各々に、コンパレータ、値レジ
スタ、及びトラップアドレスレジスタ(例えば、81.
82.63)がプロセッサ33内に備えられる。この種
の組が数多くプロセッサ33内に設置されうるが、簡便
のため、第7図においては2組だけが示されている。
テートをテストし、当該プロセッサのステートに基づい
て相異なった動作を実行することが望ましい。この種の
テストは、レジスターセット、ALU、及びメモリ制御
ブロック等の相異なったロケーションでなされうる。こ
のような問題のある点の各々に、コンパレータ、値レジ
スタ、及びトラップアドレスレジスタ(例えば、81.
82.63)がプロセッサ33内に備えられる。この種
の組が数多くプロセッサ33内に設置されうるが、簡便
のため、第7図においては2組だけが示されている。
コンパレータは、観測された値を値レジスタにストアさ
れていた値と比較する。各々のコンパレータは“yes
/no“応答を生成し、その出力はトラップ制御ユニッ
ト85に導かれる。当該ユニット85は各々の応答を考
慮し、動作がなされるべきであるか、あるいはプロセシ
ングが割込みを許可することなく続行されるべきか、と
いう決定を行なう。
れていた値と比較する。各々のコンパレータは“yes
/no“応答を生成し、その出力はトラップ制御ユニッ
ト85に導かれる。当該ユニット85は各々の応答を考
慮し、動作がなされるべきであるか、あるいはプロセシ
ングが割込みを許可することなく続行されるべきか、と
いう決定を行なう。
代表的な動作は、マイクロプログラムメモリ上のトラッ
プアドレスレジスタに値を代入することである。ユニッ
ト85は、コンパレータ群(コンパレータ61.64の
み図示されている)の出力信号及・びトラップアドレス
レジスタ(レジスタ83.66のみ図示されている)中
の値に応答する。トラップイネーブル及びマスクロジッ
ク(トラップ制御ユニット)85は、種々のコンパレー
タ信号に対する固定された優先順位指定を有し、さらに
、“アクティブに設定されたコンパレータの識別を保持
しているプログラマブルマスクレジスタ(バス35に接
続されている)を有している。“インアクティブ1なコ
ンパレータは、トラップユニットによってマスクされ、
無視される。アクティビティマスキング及び固定優先順
位により、ブロック85は、応答さるべき最も優先トラ
ップを識別し、当該識別に基づいて、存在する場合には
、適切なトラップアドレスレジスタの値を、マルチプレ
クサ84を制御する回線5e上の信号と共に、回線55
に渡す。
プアドレスレジスタに値を代入することである。ユニッ
ト85は、コンパレータ群(コンパレータ61.64の
み図示されている)の出力信号及・びトラップアドレス
レジスタ(レジスタ83.66のみ図示されている)中
の値に応答する。トラップイネーブル及びマスクロジッ
ク(トラップ制御ユニット)85は、種々のコンパレー
タ信号に対する固定された優先順位指定を有し、さらに
、“アクティブに設定されたコンパレータの識別を保持
しているプログラマブルマスクレジスタ(バス35に接
続されている)を有している。“インアクティブ1なコ
ンパレータは、トラップユニットによってマスクされ、
無視される。アクティビティマスキング及び固定優先順
位により、ブロック85は、応答さるべき最も優先トラ
ップを識別し、当該識別に基づいて、存在する場合には
、適切なトラップアドレスレジスタの値を、マルチプレ
クサ84を制御する回線5e上の信号と共に、回線55
に渡す。
ブランチロジックブロック70は、現時点で実行中のマ
イクロインストラクションにおいて規定されたブランチ
アドレスをマイクロインストラクションにおいて規定さ
れたあらゆるALUコンデイション(例えばALU動作
の結果が正である、等)がALUの出力において満足さ
れている場合に、回線58上のマルチプレクサ84に対
して送出させる。
イクロインストラクションにおいて規定されたブランチ
アドレスをマイクロインストラクションにおいて規定さ
れたあらゆるALUコンデイション(例えばALU動作
の結果が正である、等)がALUの出力において満足さ
れている場合に、回線58上のマルチプレクサ84に対
して送出させる。
規定された条件が生じると、トラップがブロック60に
よって識別される場合以外は、マルチプレクサ84はア
ドレスレジスタ45に、旧アドレスを増加させるのでは
なく、前記ブランチアドレスを口iドする。ブランチロ
ジックブロックの詳細は、完全に従来技術に係るもので
あり、それゆえ、ここには、詳細については記述しない
。
よって識別される場合以外は、マルチプレクサ84はア
ドレスレジスタ45に、旧アドレスを増加させるのでは
なく、前記ブランチアドレスを口iドする。ブランチロ
ジックブロックの詳細は、完全に従来技術に係るもので
あり、それゆえ、ここには、詳細については記述しない
。
レジスタセット37は、ALU及びメモリの種々の一時
値をストアするために用いられるレジスタの集合である
。例えば、レジスタセット37は、マツチングパターン
をレジスタに保持しておき、当該ストアされている値を
ALU311内のメモリ40より得られたデータと比較
することによってパターンマツチングを実行する回路に
関係づけられている。
値をストアするために用いられるレジスタの集合である
。例えば、レジスタセット37は、マツチングパターン
をレジスタに保持しておき、当該ストアされている値を
ALU311内のメモリ40より得られたデータと比較
することによってパターンマツチングを実行する回路に
関係づけられている。
パターンマツチングは、既に述べたトラップ機能を用い
ることによって実行される。あるレジスタは、パターン
マツチングの間に、現時点のキャラクタと比較さるべき
値を保持している。レジスタは、クリーン(Kleen
e)のスターオペレータ(ワイルドカード)である“ス
ター 、新たなラインのキャラクタである“ニューライ
ン”、ファイルエンドを示すマーカーである。“エンド
・オブ・ファイル“等とマツチングさるべき値を保持し
ている。各サイクルにおいて、キャラクタが読み出され
、パターンメモリ中のキャラクタに対して比較される。
ることによって実行される。あるレジスタは、パターン
マツチングの間に、現時点のキャラクタと比較さるべき
値を保持している。レジスタは、クリーン(Kleen
e)のスターオペレータ(ワイルドカード)である“ス
ター 、新たなラインのキャラクタである“ニューライ
ン”、ファイルエンドを示すマーカーである。“エンド
・オブ・ファイル“等とマツチングさるべき値を保持し
ている。各サイクルにおいて、キャラクタが読み出され
、パターンメモリ中のキャラクタに対して比較される。
現時点のキャラクタが、特定の値のいずれかと一致した
場合には、トラップが生成され、適切なアドレスが採択
される。比較が成功した場合にはミパターンインデック
スがインクリメントされる。当該キャラクタがパターン
キャラクタと一致しない場合には、メモリアドレスがイ
ンクリメントされる。マツチングが不成功であった場合
には、パターンインデックスが当該パターンの初めにリ
セットされ、パターンメモリが再びロードされる。
場合には、トラップが生成され、適切なアドレスが採択
される。比較が成功した場合にはミパターンインデック
スがインクリメントされる。当該キャラクタがパターン
キャラクタと一致しない場合には、メモリアドレスがイ
ンクリメントされる。マツチングが不成功であった場合
には、パターンインデックスが当該パターンの初めにリ
セットされ、パターンメモリが再びロードされる。
メモリ制御は27は第8図に示されており、2組のアド
レスレジスタ81.82.1組のインクリメントレジス
タ83、及び2組のオフセットレジスタ8B。
レスレジスタ81.82.1組のインクリメントレジス
タ83、及び2組のオフセットレジスタ8B。
87を有している。当該メモリ制御ユニットは、メモリ
40にアドレスを与える。当該アドレスは、選択された
アドレスレジスタ及び選択されたオフセットの和として
計算される。オフセットは、オフセットレジスタもしく
は現時点のマイクロインストラクションより与えられる
。メモリ読み出しの結果はバス35上に出力され、レジ
スタセット37のうちのいずれかに記録される。同様に
メモリ書き出しのソースは、レジスタセット37の内の
いずれかであり、バス35を通じて実行される。メモリ
アドレスレジスタ8B及び87は、各々、現時点のマイ
クロインストラクションに規定された量だけインクリメ
ントあるいはデクリメントされる。この量は、0.1.
4、あるいはインクリメントレジスタ83の値である。
40にアドレスを与える。当該アドレスは、選択された
アドレスレジスタ及び選択されたオフセットの和として
計算される。オフセットは、オフセットレジスタもしく
は現時点のマイクロインストラクションより与えられる
。メモリ読み出しの結果はバス35上に出力され、レジ
スタセット37のうちのいずれかに記録される。同様に
メモリ書き出しのソースは、レジスタセット37の内の
いずれかであり、バス35を通じて実行される。メモリ
アドレスレジスタ8B及び87は、各々、現時点のマイ
クロインストラクションに規定された量だけインクリメ
ントあるいはデクリメントされる。この量は、0.1.
4、あるいはインクリメントレジスタ83の値である。
プロセッサの算術論理ユニットは、従来技術に係る設計
のいずれでも可能であり、ここには詳述されない。
のいずれでも可能であり、ここには詳述されない。
以下、上述の構造の、本発明のコンチクストに係る使用
の詳細について記述される。
の詳細について記述される。
前述のスタックデータストラクチャを考えると、スタッ
クを操作するためには2種類のプライマリコマンドが要
求されることが容易に理解される;即ち、スタックの先
頭に要素を追加するブツシュ(push)及びスタック
から先頭の要素を除去するポツプ(pop)である。2
種類のセコンダリコマンド、即ち、新たなスタックを生
成して初期化するもの、及び、既存のスタックを削除す
るもの、も必要である。
クを操作するためには2種類のプライマリコマンドが要
求されることが容易に理解される;即ち、スタックの先
頭に要素を追加するブツシュ(push)及びスタック
から先頭の要素を除去するポツプ(pop)である。2
種類のセコンダリコマンド、即ち、新たなスタックを生
成して初期化するもの、及び、既存のスタックを削除す
るもの、も必要である。
本発明に係るメモリシステムの使用に関して、現時点で
他の全てのタスクに用いられていない1つ以上のASE
が設置されていなければならない。
他の全てのタスクに用いられていない1つ以上のASE
が設置されていなければならない。
その後、所定のコマンドを処理するマイクロコードがダ
ウンロードされる。スタックポインタが、第1の利用可
能メモリロケーションにセットされる。当該メモリロケ
ーションはスタックの底として取扱われる。各々のスタ
ック要素の大きさもASEにダウンロードされるが、当
該情報は、マイクロコードプログラムに配線されていて
もよい。
ウンロードされる。スタックポインタが、第1の利用可
能メモリロケーションにセットされる。当該メモリロケ
ーションはスタックの底として取扱われる。各々のスタ
ック要素の大きさもASEにダウンロードされるが、当
該情報は、マイクロコードプログラムに配線されていて
もよい。
ダウンロードが完了すると、ASEは“コマンド受は付
け”状態となる。この状態においては、ASEは、ブツ
シュ、ポツプ削除を含む、スタック操作を受付ける。
け”状態となる。この状態においては、ASEは、ブツ
シュ、ポツプ削除を含む、スタック操作を受付ける。
これらのASEの内の1つが“ヘッド”と指定されて、
全てのコマンドは当該ヘッド宛に送出される。“テール
”と指定されるASEもある。各ASEは、当該ASE
自体が属する群における当該ASEの直前のASEの識
別及び直後のASEの識別を知らせれている(但し、前
記ヘッドには直前のASEはなく、テールには直後のA
SEはない)。ヘッドASEは、初期には現時点のスタ
ックポインタを所有している。スタックオーバーフロー
の場合、即ち、スタックが大きくなって、当該スタック
を保持する2つ以上のASEが必要とされる点に到達し
た場合には、ヘッドASEの後続のものの1つがスタッ
クポインタの所有者として指定される。
全てのコマンドは当該ヘッド宛に送出される。“テール
”と指定されるASEもある。各ASEは、当該ASE
自体が属する群における当該ASEの直前のASEの識
別及び直後のASEの識別を知らせれている(但し、前
記ヘッドには直前のASEはなく、テールには直後のA
SEはない)。ヘッドASEは、初期には現時点のスタ
ックポインタを所有している。スタックオーバーフロー
の場合、即ち、スタックが大きくなって、当該スタック
を保持する2つ以上のASEが必要とされる点に到達し
た場合には、ヘッドASEの後続のものの1つがスタッ
クポインタの所有者として指定される。
ASEが“ブツシュ”を実行することの要求を受信する
と、以下に示すようなことが生じる二第1に、ASEは
、当該ASE自体が現時点でのスタックポインタの所有
者であるか否かをチエツクし、そうでない場合には、当
該要求を後続のASEに中継する。最終的にコマンドは
、現時点でのスタックポインタの所有者であるASEに
到達する。その後、実際の処理が開始される。ブツシュ
さるべきアイテムがネットワーク・19からスタックへ
伝送される。その後、スタックポインタが再び当該アイ
テムの大きさだけインクリメントされ、スタックポイン
タは再び利用可能なロケーションを指し示す。最後に、
スタックポインタの指し示しているアドレスが、別のア
イテムをブツシュするのに充分なストレージ領域がある
か否かチエツクされる。当該充分なストレージ領域があ
る場合には、当該ASEは、ホストに対して、全て旨く
完了した旨を伝えるメツセージを返す。充分なスペース
が存在しない場合には、当該ASEは、当該ASE自体
が後続のASEを有するか否かをチエツクする。後続の
ASEが存在しない場合には、当該ASEは、ホストに
対して“さらにストレージ領域が必要1な旨を示すメツ
セージを返す。後続のASEが存在する場合には、当該
ASEは、当該後続のASEに対してスタックポインタ
の所有権を移行し、ホストに対して旨く完了した旨のメ
ツセージを返す。全ての場合において、当該ASEは、
コマンドの完了によってコマンド受付は状態に復帰する
。
と、以下に示すようなことが生じる二第1に、ASEは
、当該ASE自体が現時点でのスタックポインタの所有
者であるか否かをチエツクし、そうでない場合には、当
該要求を後続のASEに中継する。最終的にコマンドは
、現時点でのスタックポインタの所有者であるASEに
到達する。その後、実際の処理が開始される。ブツシュ
さるべきアイテムがネットワーク・19からスタックへ
伝送される。その後、スタックポインタが再び当該アイ
テムの大きさだけインクリメントされ、スタックポイン
タは再び利用可能なロケーションを指し示す。最後に、
スタックポインタの指し示しているアドレスが、別のア
イテムをブツシュするのに充分なストレージ領域がある
か否かチエツクされる。当該充分なストレージ領域があ
る場合には、当該ASEは、ホストに対して、全て旨く
完了した旨を伝えるメツセージを返す。充分なスペース
が存在しない場合には、当該ASEは、当該ASE自体
が後続のASEを有するか否かをチエツクする。後続の
ASEが存在しない場合には、当該ASEは、ホストに
対して“さらにストレージ領域が必要1な旨を示すメツ
セージを返す。後続のASEが存在する場合には、当該
ASEは、当該後続のASEに対してスタックポインタ
の所有権を移行し、ホストに対して旨く完了した旨のメ
ツセージを返す。全ての場合において、当該ASEは、
コマンドの完了によってコマンド受付は状態に復帰する
。
ASEが“ポツプ“実行要求を受信した場合には、以下
の状況が発生する:まず、ASEは、当該ASE自体が
現時点でのスタックポインタの所有者であるか否かをチ
エツクし、そうでない場合には、当該要求を後続のAS
Eに中継する。最終的に、コマンドは、現時点でのスタ
ックポインタの所有者であるASEに到達する。その後
、実際の処理が開始される。スタックポインタが、当該
スタックの先頭にあるアイテムを指し示しているように
デクリメントされる。このデクリメントによって、スタ
ックポインタがスタックの底より小さくなってしまう場
合には、当該要求が当該ASEの直前のASEに(それ
が存在する場合には)中継される。直前のASEが存在
しない場合には、当該ASEは、ホストに、アンダーフ
ローエラーメツセージを返す。最後に、ポツプさるべき
アイテムがスタックからネットワーク19に伝送され、
ホストへ伝達される。全ての場合に、当該ASEはコマ
ンドの完了によってコマンド受付は状態に復帰する。
の状況が発生する:まず、ASEは、当該ASE自体が
現時点でのスタックポインタの所有者であるか否かをチ
エツクし、そうでない場合には、当該要求を後続のAS
Eに中継する。最終的に、コマンドは、現時点でのスタ
ックポインタの所有者であるASEに到達する。その後
、実際の処理が開始される。スタックポインタが、当該
スタックの先頭にあるアイテムを指し示しているように
デクリメントされる。このデクリメントによって、スタ
ックポインタがスタックの底より小さくなってしまう場
合には、当該要求が当該ASEの直前のASEに(それ
が存在する場合には)中継される。直前のASEが存在
しない場合には、当該ASEは、ホストに、アンダーフ
ローエラーメツセージを返す。最後に、ポツプさるべき
アイテムがスタックからネットワーク19に伝送され、
ホストへ伝達される。全ての場合に、当該ASEはコマ
ンドの完了によってコマンド受付は状態に復帰する。
既存のスタックの削除は、割当てられていたASEを再
び利用可能にすることである。当該削除は単に各ASE
をフリーであるとすることを含むのみである。
び利用可能にすることである。当該削除は単に各ASE
をフリーであるとすることを含むのみである。
第1図は、2個のプロセッサ及びメモリを含む周辺装置
を有する従来技術に係る装置を示した図:第2図は、本
発明の原理に係るコンピュータシステムの一般化された
ブロック図; 第3図は、第2図におけるメモリシステムをより詳細に
示したブロック図; 第4図は、メモリシステム20のASEユニットを相互
に接続するネットワークに対する一具体例を示した図; 第5図は、ASEのユニットを示したブロック図; 第6図は、第5図のマイクロプログラムメモリを示した
図; 第7図は、第5図のマイクロプログラムアドレス制御ロ
ジック部を示した図;及び、 第8図は、メモリ制御ユニット27を示した図である。 出 願 人・:アメリカン テレフォン アンドFI0
. 1 FIG、 3 FIG、2 池のメモリモジニールへ FTo、 5 インストラクション FIG、 8
を有する従来技術に係る装置を示した図:第2図は、本
発明の原理に係るコンピュータシステムの一般化された
ブロック図; 第3図は、第2図におけるメモリシステムをより詳細に
示したブロック図; 第4図は、メモリシステム20のASEユニットを相互
に接続するネットワークに対する一具体例を示した図; 第5図は、ASEのユニットを示したブロック図; 第6図は、第5図のマイクロプログラムメモリを示した
図; 第7図は、第5図のマイクロプログラムアドレス制御ロ
ジック部を示した図;及び、 第8図は、メモリ制御ユニット27を示した図である。 出 願 人・:アメリカン テレフォン アンドFI0
. 1 FIG、 3 FIG、2 池のメモリモジニールへ FTo、 5 インストラクション FIG、 8
Claims (15)
- (1)CPU(中央演算処理装置)とメモリとを有する
コンピュータにおいて、 このメモリは、前記CPUに対する情報をストアするス
トレージ手段と、プロセッシング手段とを有し、 前記プロセッシング手段は、前記ストレージ手段に関連
し、前記CPUからのコマンドに応じて関連するメモリ
にストアされているデータを操作するように配置され、 前記プロセッシング手段により実行される操作が予め前
記CPUによりロードされていることを特徴とするコン
ピュータ。 - (2)前記メモリの内の第1メモリにストアされたデー
タが、前記メモリの内の他のメモリの少なくとも1つに
ストアされたデータと関連性を有し、前記関連性は、第
1メモリに関するプロセッシング手段により制御される
ことを特徴とする請求項1記載のコンピュータ。 - (3)メモリ素子と、関連するプロセッシング素子とを
有する複数個のメモリモジュールからなるメモリシステ
ムにおいて、 前記プロセッシング素子は、 関連するメモリ素子にストアされたデータに関する特定
のデータストラクチャ操作を実行する指示を受信する手
段と、 他のメモリモジュールのプロセッシング素子と、この他
のメモリモジュールのメモリ素子にストアされたデータ
に関する特定操作の実行に関して他のメモリモジュール
の協力を得る為に、通信する手段とを有する ことを特徴とする請求項1記載のメモリシステム。 - (4)データストラクチャをストアする複数個のストレ
ージ手段と、 関連するストレージ手段にストアされたデータにストラ
クチャを課す情報をストアし、前記ストアされたデータ
を操作する複数個のエンコーダ/デコーダ手段とを有し
、 前記エンコーダ/デコーダ手段によりストアされている
データの操作を要求するコマンドにより通信を可能とす
るよう前記エンコーダ/デコーダ手段は相互接続されて
いることを特徴とするメモリシステム。 - (5)通信ネットワークと、 前記通信ネットワークに接続され、前記通信ネットワー
クと情報を通信し、コマンド定義情報を受信する複数の
プログラマブルコータ手段と、前記各コーダ手段に関連
するストレージ手段とを有し、 ホストプロセッサに情報をストアすることを特徴とする
情報蓄積装置。 - (6)前記コーダ手段が、前記通信ネットワークに接続
される少なくとも2個のポートを有し、前記コーダ手段
により実行される通信が、前記通信ネットワーク上の情
報のスイッチングを含むことを特徴とする請求項5記載
の装置。 - (7)前記コマンドが所定のデータストラクチャ操作に
関連することを特徴とする請求項5記載の装置。 - (8)前記通信ネットワークが、ホストコンピュータへ
接続される複数のポートを有することを特徴とする請求
項5記載の装置。 - (9)前記通信ネットワークが、 複数のポートと、前記複数のポートに接続されたホスト
インターフェースネットワークとを有することを特徴と
する請求項5記載の装置。 - (10)CPUと前記CPUに対する情報をストアする
メモリとを有するコンピュータにおいて、このメモリは
、データストラクチャをストアする複数のストレージ手
段と、 関連するストレージ手段にストアされたデータにストラ
クチャを課す情報をストアし、前記ストアされたデータ
を操作する複数個のエンコーダ/デコーダ手段とを有し
、 前記エンコーダ/デコーダ手段によりストアされている
データの操作を要求するコマンドにより通信を可能とす
るよう前記エンコーダ/デコーダ手段が相互接続されて
いることを特徴とするコンピュータ。 - (11)前記コーダ手段が、 パターンマッチングされるべきパターンを保持するため
用いられるパターンメモリと、 パターンに対してパターンマッチングされるべきキャラ
クタ源と、 前記パターンメモリの内容を前記キャラクタ源に対して
パターンマッチングするコンパレータとを有することを
特徴とする請求項5記載の装置。 - (12)前記コーダ手段は、データ操作プログラムをス
トアするメモリを有することを特徴とする請求項5記載
の装置。 - (13)前記コーダ手段内での特定状況の発生により、
前記コーダ手段をこのコーダ手段に含まれるメモリ内の
所定の位置にブランチさせるプロセッシング手段を更に
有することを特徴とする請求項12記載の装置。 - (14)前記コーダ手段に含まれるメモリが、可変長イ
ンストラクションをストアし、 このメモリがバンクに分割されており、 このメモリバンクの各々が「読み出し」インストラクシ
ョンによりワードを生成し、 前記メモリバンクの出力が組合わされて前記コーダ手段
に対するインストラクションを形成することことを特徴
とする請求項12記載の装置。 - (15)データをメモリにストアし、このメモリ内のデ
ータを操作し、このメモリからデータを読み出すデータ
蓄積方法において、 メモリをメモリブロックに分割するプロセス、個別のプ
ロセッシング手段をメモリブロックに各々に関連させる
プロセス、 前記データの操作の所定の組を特徴づけるデータストラ
クチャコマンドを前記プロセッシング手段内にストアす
るプロセス、 前記ストアされたデータストラクチャコマンドの所定の
1つの実行を規定するコマンドを前記プロセッシング手
段へ送出するプロセス とを有することを特徴とするデータ蓄積方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/193,987 US5134711A (en) | 1988-05-13 | 1988-05-13 | Computer with intelligent memory system |
| US193987 | 1988-05-13 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0229849A true JPH0229849A (ja) | 1990-01-31 |
Family
ID=22715870
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1117629A Pending JPH0229849A (ja) | 1988-05-13 | 1989-05-12 | コンピュータ、メモリシステム、情報蓄積装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5134711A (ja) |
| EP (2) | EP0779584B1 (ja) |
| JP (1) | JPH0229849A (ja) |
| CA (1) | CA1326566C (ja) |
| DE (2) | DE68928759T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007312637A (ja) * | 2006-05-24 | 2007-12-06 | Honda Motor Co Ltd | 自走式芝刈機の電子制御装置の配置構造 |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5544347A (en) | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
| US5367637A (en) * | 1992-03-26 | 1994-11-22 | International Business Machines Corporation | Self-tuning virtual storage management for dedicated real-time computer system |
| CH683665B5 (fr) * | 1992-05-27 | 1994-10-31 | Ebauchesfabrik Eta Ag | Récepteur d'appel local. |
| KR940004434A (ko) * | 1992-08-25 | 1994-03-15 | 윌리엄 이. 힐러 | 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법 |
| AU673069B2 (en) * | 1993-03-23 | 1996-10-24 | David Siu Fu Chung | Intelligent memory architecture |
| WO1994022090A1 (en) * | 1993-03-23 | 1994-09-29 | David Siu Fu Chung | Intelligent memory architecture |
| CA2145106C (en) * | 1994-04-22 | 1999-08-24 | Abhaya Asthana | Intelligent memory-based input/output system |
| JP3658072B2 (ja) * | 1996-02-07 | 2005-06-08 | 株式会社ルネサステクノロジ | データ処理装置およびデータ処理方法 |
| US6052797A (en) * | 1996-05-28 | 2000-04-18 | Emc Corporation | Remotely mirrored data storage system with a count indicative of data consistency |
| US5901327A (en) * | 1996-05-28 | 1999-05-04 | Emc Corporation | Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring |
| US6658552B1 (en) * | 1998-10-23 | 2003-12-02 | Micron Technology, Inc. | Processing system with separate general purpose execution unit and data string manipulation unit |
| DE69923539T2 (de) * | 1999-05-03 | 2006-02-16 | Stmicroelectronics S.A. | Ein Mehrport-Speicher |
| WO2001088712A2 (en) * | 2000-05-19 | 2001-11-22 | Neale Bremner Smith | Distributed processing multi-processor computer |
| US20040252547A1 (en) * | 2003-06-06 | 2004-12-16 | Chengpu Wang | Concurrent Processing Memory |
| US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
| US8930618B2 (en) | 2010-08-24 | 2015-01-06 | Futurewei Technologies, Inc. | Smart memory |
| US10089043B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Apparatus and methods for a distributed memory system including memory nodes |
| US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
| US10003675B2 (en) | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6364178A (ja) * | 1986-08-29 | 1988-03-22 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | 画像処理システム |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1128576A (en) * | 1967-07-29 | 1968-09-25 | Ibm | Data store |
| US3609702A (en) * | 1967-10-05 | 1971-09-28 | Ibm | Associative memory |
| US3757312A (en) * | 1970-10-09 | 1973-09-04 | Us Navy | General purpose associative processor |
| US3699534A (en) * | 1970-12-15 | 1972-10-17 | Us Navy | Cellular arithmetic array |
| US3753238A (en) * | 1971-08-27 | 1973-08-14 | Bell Telephone Labor Inc | Distributed logic memory cell with source and result buses |
| US3787817A (en) * | 1972-06-21 | 1974-01-22 | Us Navy | Memory and logic module |
| US3962706A (en) * | 1974-03-29 | 1976-06-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
| US4149240A (en) * | 1974-03-29 | 1979-04-10 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of data structure operations |
| GB1540996A (en) * | 1975-05-12 | 1979-02-21 | Plessey Co Ltd | Associative processors |
| US4631666A (en) * | 1982-10-25 | 1986-12-23 | Burroughs Corporation | Data transfer network for variable protocol management |
| US4580215A (en) * | 1983-03-08 | 1986-04-01 | Itt Corporation | Associative array with five arithmetic paths |
| US4710868A (en) * | 1984-06-29 | 1987-12-01 | International Business Machines Corporation | Interconnect scheme for shared memory local networks |
| US4734848A (en) * | 1984-07-17 | 1988-03-29 | Hitachi, Ltd. | Combination reduction processing method and apparatus |
| US4819152A (en) * | 1985-04-05 | 1989-04-04 | Raytheon Company | Method and apparatus for addressing a memory by array transformations |
| CA1263760A (en) * | 1985-09-27 | 1989-12-05 | Alan L. Davis | Apparatus for multiprocessor communication |
| US4731737A (en) * | 1986-05-07 | 1988-03-15 | Advanced Micro Devices, Inc. | High speed intelligent distributed control memory system |
| US4959776A (en) * | 1987-12-21 | 1990-09-25 | Raytheon Company | Method and apparatus for addressing a memory by array transformations |
| JPH01261772A (ja) * | 1988-04-08 | 1989-10-18 | Cogent Res Inc | コンピュータ及びその動作方法 |
-
1988
- 1988-05-13 US US07/193,987 patent/US5134711A/en not_active Expired - Lifetime
-
1989
- 1989-05-04 EP EP97101575A patent/EP0779584B1/en not_active Expired - Lifetime
- 1989-05-04 DE DE68928759T patent/DE68928759T2/de not_active Expired - Fee Related
- 1989-05-04 DE DE68929080T patent/DE68929080T2/de not_active Expired - Fee Related
- 1989-05-04 EP EP89304503A patent/EP0341905B1/en not_active Expired - Lifetime
- 1989-05-11 CA CA000599426A patent/CA1326566C/en not_active Expired - Fee Related
- 1989-05-12 JP JP1117629A patent/JPH0229849A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6364178A (ja) * | 1986-08-29 | 1988-03-22 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | 画像処理システム |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007312637A (ja) * | 2006-05-24 | 2007-12-06 | Honda Motor Co Ltd | 自走式芝刈機の電子制御装置の配置構造 |
Also Published As
| Publication number | Publication date |
|---|---|
| DE68929080D1 (de) | 1999-11-04 |
| EP0341905B1 (en) | 1998-07-29 |
| DE68929080T2 (de) | 2000-05-25 |
| EP0341905A2 (en) | 1989-11-15 |
| EP0779584A1 (en) | 1997-06-18 |
| EP0779584B1 (en) | 1999-09-29 |
| CA1326566C (en) | 1994-01-25 |
| EP0341905A3 (en) | 1992-01-22 |
| DE68928759D1 (de) | 1998-09-03 |
| US5134711A (en) | 1992-07-28 |
| DE68928759T2 (de) | 1998-12-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0229849A (ja) | コンピュータ、メモリシステム、情報蓄積装置 | |
| US4128882A (en) | Packet memory system with hierarchical structure | |
| US4876643A (en) | Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests | |
| US5210828A (en) | Multiprocessing system with interprocessor communications facility | |
| JPH05508044A (ja) | 多重プロセッサシステム用通信交換システム | |
| US5590370A (en) | Intelligent memory system for processing varibable length I/O instructions | |
| US11061676B2 (en) | Scatter gather using key-value store | |
| JPH04246745A (ja) | 情報処理装置及びその方法 | |
| JPH01500377A (ja) | 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法 | |
| JPH0587854B2 (ja) | ||
| JPS6364133A (ja) | 情報処理システム | |
| JPH05224956A (ja) | プロセス間メッセージ通信方法 | |
| Browning et al. | Communication in a tree machine | |
| EP0376003A2 (en) | Multiprocessing system with interprocessor communications facility | |
| JP2602241B2 (ja) | 並列計算機 | |
| JPS592058B2 (ja) | 記憶装置 | |
| JPH01293456A (ja) | 共有メモリ装置 | |
| JPS6327740B2 (ja) | ||
| JP2624519B2 (ja) | 計算機システムにおける入出力装置の起動処理方法 | |
| Asthana et al. | An experimental active memory based I/O subsystem | |
| JPH069042B2 (ja) | 共用記憶媒体の順次アクセス制御装置 | |
| JPS6365977B2 (ja) | ||
| JPH10247182A (ja) | マルチプロセッサシステム | |
| Michel et al. | Microprocessor-based disc system | |
| JPH064464A (ja) | 周辺装置アクセス装置 |