JP3612186B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP3612186B2 JP3612186B2 JP25517397A JP25517397A JP3612186B2 JP 3612186 B2 JP3612186 B2 JP 3612186B2 JP 25517397 A JP25517397 A JP 25517397A JP 25517397 A JP25517397 A JP 25517397A JP 3612186 B2 JP3612186 B2 JP 3612186B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- bit
- cpus
- bit width
- units
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
- Dram (AREA)
- Static Random-Access Memory (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
この発明は、データ処理装置に関し、特に、処理速度の向上と、必要とされる半導体メモリの記憶容量の確保とを、両立的に実現するための改良に関する。
【0002】
【従来の技術】
図13は、この発明の背景となる従来のデータ処理装置の構成を示すブロック図である。この従来装置151では、マイクロコンピュータ(以下において、CPUと略記する)を内蔵する演算部161が、バスライン163を通じて、メモリ部162へ接続されている。メモリ部162には、例えばDRAM(ダイナミックラム)が備わっている。各装置部161,162の各々は、それぞれ個別の半導体チップ(半導体基板)で構成されている。
【0003】
この装置151では、演算部161は、Nビットの単位で、メモリ部162からのデータ信号の読出し、および、メモリ部162へのデータ信号の書込みを行う。バスライン163には、メモリ部162を複数個接続することによって、演算部161がアクセスするメモリ空間を、自由に拡張することができるという利点がある。
【0004】
しかしながら、装置151では、各半導体チップの外に配設された配線163を通じて、データ信号の読出しおよび書込みが行われるために、データ信号の伝送に、無視できないほどの遅延が生じるという問題点があった。また、一つの半導体チップに備えることのできるピン(端子)の個数には限度があるために、並列に書き込みおよび読出しが可能なビット数Nが制限される。
【0005】
データ信号の遅延に加えて、並列ビット数Nに対するこの制約のために、演算部161が単位時間に読出しおよび書込みできるデータ信号の量、すなわちデータ信号の伝送速度を高くすることができないという問題点があった。データ信号の伝送速度の遅れは、装置151の処理速度の遅れとなって現れる。
【0006】
図14は、この問題を解消することを主眼として登場した別の従来装置を示すブロック図である。この装置152では、演算部166とメモリ部167の双方が、単一半導体チップ、いわゆるシングルチップの中に作り込まれている。したがって、演算部166とメモリ部167との間のNビット単位のデータ信号の伝送は、単一半導体チップの中で行われる。
【0007】
このため、データ信号の伝送にともなう遅延が低く抑えられる。また、N個のピンを単一半導体チップに設ける必要がないので、ピンの個数の制約条件によって、並列に伝送される信号の個数Nが制限されない。このことも、演算部166が読出しおよび書込みするデータ信号の伝送速度の向上をもたらしている。
【0008】
【発明が解決しようとする課題】
しかしながら、装置152では、単一半導体チップの中に、演算部166とメモリ部167とが組み込まれるために、メモリ部167の記憶容量の大きさが制限されるという別の問題点がある。通常において、マイクロコンピュータが必要とする半導体メモリの記憶容量は、単一半導体チップの中に組み込み可能な半導体メモリの容量を遙かに上回っている。
【0009】
例えば、現状のDRAM製造技術では、単一半導体チップの中に組み込み可能なDRAMの記憶容量は、16メガビット(=2メガバイト)である。これに対して、現状において通常性能のCPUが必要とする半導体メモリの記憶容量は、8〜16メガバイト程度の大きさである。パーソナルコンピュータのユーザが、DRAMを増設することによって、必要な記憶容量を確保していることは、よく知られるところである。
【0010】
半導体技術の進歩の過程で、CPUの性能と、そのCPUが必要とする半導体メモリの記憶容量との間には、比例関係が成り立つことが、「アムダールの法則」の名で、経験的に知られている。したがって、CPUを備える演算部166とDRAMを備えるメモリ部167とを、単一半導体チップの中に組み込んだ装置152の形態では、半導体技術が今後進歩しても、記憶容量の不足は、未解決の問題としていつまでも残されることとなる。
【0011】
この発明は、従来の装置における上記した問題点を解消するためになされたもので、処理速度の向上と、必要とされる半導体メモリの記憶容量の確保とを、両立的に実現するデータ処理装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
第1の発明の装置は、データ処理装置において、m(m≧2)個の演算部と、m個のメモリ部と、前記m個の演算部およびメモリ部の間を結合する配線と、を備え、前記m個の演算部は、m個のCPUをそれぞれ備え、前記m個のメモリ部は、m個の半導体メモリをそれぞれ備えている。
そして、前記m個の半導体メモリは、前記m個のCPUの動作を規定するプログラムを含む、N(N≧2)ビット幅のデータ信号の列が、L1,L2,・・・・,Lm(ここで、L1,L2,・・・・,Lm≧1、しかも、L1+L2+・・・・+Lm=N)ビット幅にビットスライスされたものを、それぞれ分担して格納可能であり、前記m個のCPUは、前記m個の半導体メモリの全体で記憶されるNビット幅のデータ信号を順次読み出して、Nビット幅のデータ信号にもとづく処理を順次実行し、前記m個の演算部と前記m個のメモリ部とは、一対ごとに、別個の単一半導体チップの中に、形成されている。
【0013】
第2の発明の装置では、第1の発明のデータ処理装置において、前記m個のCPUの各々が、前記m個の半導体メモリの全体で記憶される前記Nビット幅のデータ信号を読み取り、当該Nビット幅のデータ信号にもとづく処理を順次実行し、その結果、前記m個のCPUは、互いに同一の処理を実行する。
【0014】
第3の発明の装置では、第2の発明のデータ処理装置において、前記m個の演算部が、前記m個のCPUにそれぞれ結合したm個の第1インタフェースをさらに備え、前記m個のメモリ部は、前記m個の半導体メモリにそれぞれ結合したm個の第2インタフェースをさらに備え、前記配線は、前記m個の第1および第2インタフェースを中継することによって、前記m個のCPUの各々を前記m個の半導体メモリのすべてに結合している。
そして、前記m個の第2インタフェースは、前記m個の半導体メモリから、それぞれ、前記L1,L2,・・・・,Lmビット幅のデータ信号を読み出し、前記m個の第1インタフェースの各々は、前記m個の第2インタフェースが読み出した前記L1,L2,・・・・,Lmビット幅のデータ信号のすべてを受け取り、前記Nビット幅のデータ信号を再構成した上で、前記m個のCPUの中の同一の演算部に属するCPUへと入力し、しかも、前記第1および第2インタフェースは、外部から入力される選択信号に応じて、前記ビット幅の大きさL1,L2,・・・・,Lmを変更可能に設定する。
【0015】
第4の発明の装置では、第3の発明のデータ処理装置において、前記m個の半導体メモリの各々が、読み書き自在であり、前記m個の第1インタフェースは、前記m個のCPUから出力されるm個のNビット幅のデータ信号から、変更可能に設定された前記L1,L2,・・・・,Lmビット幅ずつを、ビットスライスに対応するように、それぞれ切り出して、前記m個の第2インタフェースへと、それぞれ受け渡す動作をさらに行う。
また、前記m個の第2インタフェースは、受け渡された前記L1,L2,・・・・,Lmビット幅のデータ信号を、前記m個の半導体メモリへと、それぞれ書き込む動作をさらに行い、しかも、前記m個の第1インタフェースから、前記m個の第2インタフェースを通じ、前記m個の半導体メモリへ至る前記L1,L2,・・・・,Lmビット幅のデータ信号の受け渡しは、それぞれ同一の単一半導体チップの中で行われる。
【0016】
第5の発明の装置では、第1または第2の発明のデータ処理装置において、前記m個の半導体メモリの各々が読み書き自在であり、前記m個のCPUは、Nビット幅のデータ信号を前記m個の半導体メモリへ書き込む際に、前記データ信号ごとに、L1,L2,・・・・,Lmビット幅にビットスライスしたものを、それぞれ書き込み、しかも、前記m個のCPUから前記m個の半導体メモリへ至る前記L1,L2,・・・・,Lmビット幅のデータ信号の受け渡しは、それぞれ同一の単一半導体チップの中で行われる。
【0017】
第6の発明の装置では、第1の発明のデータ処理装置において、前記m個のCPUの各々が、前記m個の半導体メモリの中で、前記単一半導体チップの中に共通に形成されている一つに記憶されるLi(ここで、iは1,2,・・・・,mのいずれか一つ)ビット幅のデータ信号のみを読み取り、少なくとも前記m個のCPUの全体で、前記Nビット幅のデータ信号にもとづく処理を順次実行する。
【0018】
第7の発明の装置では、第6の発明のデータ処理装置において、前記m個のCPUの各々が、デコード部と実行部とを備え、前記デコード部は、前記Liビット幅のデータ信号をデコードするごとに、得られたデコード情報信号を、他のすべてのCPUへ供給するとともに、他のすべてのCPUが得たデコード情報信号を受け取ることによって、前記Nビット幅のデータ信号のデコードを完成し、前記実行部は、前記デコード部でなされた前記Nビット幅のデータ信号のデコードの結果を入力することによって、前記Nビット幅のデータ信号にもとづく処理を実行する。
【0019】
第8の発明の装置では、第6の発明のデータ処理装置において、前記m個のCPUの各々は、フェッチ部と実行部とを備え、前記フェッチ部は、前記Liビット幅のデータ信号をフェッチするごとに、得られたフェッチ情報信号を、他のすべてのCPUへ供給し、前記実行部は、前記フェッチ部および前記他のすべてのCPUからのフェッチ情報信号を通じて、前記Nビット幅のデータ信号にもとづく処理を実行する。
【0020】
第9の発明の装置では、第1ないし第8のいずれかの発明のデータ処理装置において、前記ビット幅の大きさL1,L2,・・・・,Lmが、L1=L2=・・・・=Lmである。
【0021】
第10の発明の装置は、データ処理装置において、m(m≧2)個の演算部と、m個のメモリ部と、前記m個の演算部およびメモリ部の間を結合する配線と、を備え、前記m個の演算部は、m個の論理回路をそれぞれ備え、前記m個のメモリ部は、m個の半導体メモリをそれぞれ備え、前記m個の半導体メモリは、1メガビット以上の記憶容量を有し、N(N≧2)ビット幅のデータ信号の列が、L1,L2,・・・・,Lm(L1,L2,・・・・,Lm≧1;L1+L2+・・・・+Lm=N)ビット幅にビットスライスされたものを、それぞれ分担して格納可能である。
そして、前記m個の論理回路は、前記m個の半導体メモリの全体で記憶されるNビット幅のデータ信号の供給を順次受けて、当該Nビット幅のデータ信号にもとづく処理を順次実行し、前記m個の演算部と前記m個のメモリ部とは、一対ごとに、別個の単一半導体チップの中に、形成されている。
【0022】
【発明の実施の形態】
<1.実施の形態1>
はじめに、実施の形態1のデータ処理装置について説明する。
【0023】
<1−1.概略構成>
図1は、実施の形態1のデータ処理装置の概略構成を示すブロック図である。この装置101には、基板9が備わっており、この基板9の上に、互いに並列に接続された2個のデータ処理ユニット10a,10bが配設されている。ユニット10aは単一半導体チップで構成され、ユニット10bも別の単一半導体チップで構成されている。ユニット10a,10bの各々は、演算部11とメモリ部12とを備えている。
【0024】
演算部11は、32ビット単位でデータ信号の演算処理を実行するCPUを備えている。そして、演算部11には、ポートR0〜R31を通じて32ビット単位で、データ信号が入力される。一方、出力に関しては、演算部11は、ポートW0〜W15、または、ポートW16〜W31を通じて、32ビットの半分である16ビットの単位で、データ信号を出力する。
【0025】
メモリ部12は、1メガビットを超える記憶容量を有するDRAMを備えている。そして、メモリ部12では、ポートW0〜W15を通じて、16ビット単位でデータ信号が書き込まれ、ポートR0〜R15を通じて、16ビット単位でデータ信号が読み出される。なお、ここで、ポートとは、半導体チップに配設される配線の中の一点を、便宜上称しているのであって、信号を外部と中継するためのピンとは異なり、特別に大きな面積を占めない。したがって、ポートの個数には、ピンほどの制約は存在しない。
【0026】
ユニット10a,10bの各々には、配線20〜23が備わっている。そして、ユニット10a,10bのいずれにおいても、演算部11のポートA0〜A15から出力されるアドレス信号が、配線20によってメモリ部12のA0〜A15へと伝送される。アドレス信号は、メモリ部12に備わるDRAMのメモリセルを指定するための信号である。また、演算部11のW0〜W15、または、ポートW16〜W31から出力されるデータ信号が、配線21を通じて、メモリ部12のW0〜W15へと伝送される。
【0027】
さらに、ユニット10aのメモリ部12のポートR0〜R15から読み出されたデータ信号は、配線22を通じて、ユニット10a,10bの各々に属する演算部11のポートR0〜R15へと伝送される。他方のユニット10bのメモリ部12のポートR0〜R15から読み出されたデータ信号は、配線23を通じて、ユニット10a,10bの各々に属する演算部11のポートR16〜R31へと伝送される。
【0028】
メモリ部12に備わるDRAMには、演算部11に備わるCPUが演算処理を行うのに必要なプログラムおよびデータが格納されている。そして、二つのユニット10a,10bのそれぞれに属するメモリ部12には、演算部11が読出しおよび書込みを行う32ビット幅の単位データ信号を構成する下位16ビット、および、上位16ビットが格納される。すなわち、演算部11が読出しおよび書込を行うデータ信号は、「ビットスライス」されて、各メモリ部12に分担して記憶される。
【0029】
各演算部11には、配線22,23を通じて32ビット幅のデータ信号が、共通に入力される。このため、演算部11に備わるCPUは、ユニット10a,10bの双方において、全く同一の演算処理を実行する。そして、同一の演算処理の結果得られたデータ信号の中で、例えば下位16ビットは、ユニット10aにおいて演算部11のポートW0〜W15からメモリ部12へと書き込まれ、上位16ビットは、ユニット10bにおいて演算部11のポートW16〜W31からメモリ部12へと書き込まれる。
【0030】
すなわち、ユニット10a,10bに属する演算部11の各々は、二つのメモリ部12を共有している。したがって、各演算部11は、単一のメモリ部12が有するメモリ空間の2倍の大きさのメモリ空間を利用することが可能である。言い換えると、演算部11がアクセスし得る半導体メモリのメモリ空間を、単一半導体チップの制約を超えて確保することができる。
【0031】
また、演算部11とメモリ部12の間でやり取りされるデータ信号の中で、演算部11からメモリ部12へと書き込まれるデータ信号は、単一半導体チップの中でのみ伝送され、単一半導体チップの外部に配設される配線によって中継される必要がない。したがって、書込みのデータ信号については、伝送の遅延の問題が生じない。さらに、アドレス信号も、単一半導体チップの内部に配設される配線20によって伝送されるので、アドレス信号についても、伝送の遅延の問題が生じない。
【0032】
また、書込みのデータ信号を単一半導体チップの外部に出力する必要がないのに加えて、アドレス信号を伝送する配線20も、外部へと配設する必要がないので、単一半導体チップに備えることのできるピンを、演算部11のポートR0〜R31へ入力されるデータ信号を中継するピンのために、専ら使用することが可能となる。したがって、演算部11へ同時並列に入力可能なデータ信号のビット数、すなわち、入力されるデータ信号のビット幅を高くすることが可能である。
【0033】
このことによって、データ信号の伝送速度の向上がもたらされるだけでなく、CPUが処理の単位とするビット幅を、例えば64ビット幅、128ビット幅などへと拡大することが可能となる。それによって、装置の処理速度を一層向上させることが可能となる。
【0034】
すなわち、装置101では、装置の処理速度を高く維持しつつ、演算部11が必要とする記憶容量を、単一半導体チップの制約を超えて確保することが可能となる。すなわち、従来装置151,152においては、同時に回避することのできなかった二つの問題点が、同時に緩和ないし解消される。
【0035】
<1−2.詳細構成>
図2は、装置101の構成を詳細に示すブロック図である。図2に示すように、演算部11には、CPU1の他に、入出力インタフェース2、および、CPUバスインタフェース3が備わっている。また、メモリ部12には、DRAM4に加えて、メモリバスインタフェース5、および、キャッシュメモリ6が備わっている。ユニット10a,10bに属するCPU1の各々には、クロック生成部25で生成されるクロック信号が、クロック配線27を通じて共通に供給されている。CPU1は、このクロック信号に同期して、演算処理を段階的に実行する。
【0036】
ユニット10a,10bに属する演算部11の各々は、基板9に取り付けられた端子26を通じて、装置101の外部に準備される外部バスライン29へと接続されている。これによって、演算部11と外部バスライン29との間で、データ信号がやり取りされる。
【0037】
演算部11に備わる入出力インタフェース2は、CPU1と外部バスライン29との間のインタフェースとして機能する装置部分である。入出力インタフェース2の構成自体は従来周知であるので、その構成に関する詳細な説明は略する。CPU1は、既に述べたように、32ビット単位で演算を実行する、いわゆる32ビット型のCPUである。このとき、CPU1、入出力インタフェース2、端子26、および、外部バスライン29の間では、32ビット単位で、データ信号が伝送される。すなわち、32ビット幅のデータ信号が伝送される。CPU1の構成も従来周知である。
【0038】
演算部11に備わるもう一つのインタフェースであるCPUバスインタフェース3は、CPU1とメモリ部12との間のインタフェースとして機能する。CPUバスインタフェース3は、CPU1が出力した32ビット幅のデータ信号の中の上位16ビットまたは下位16ビットのみを選択的に配線21へと出力する。すなわち、ユニット10aに属するCPUバスインタフェース3は、下位16ビットを選択し、ユニット10aに属するCPUバスインタフェース3は、上位16ビットを選択する。
【0039】
CPUバスインタフェース3は、さらに、配線22,23を通じて入力された32ビット幅のデータ信号を、32ビット幅のままで、CPU1へと伝える。ビット幅を選択して(切り出して)出力する点を除けば、CPUバスインタフェース3は、従来周知のCPUバスインタフェースと同一に構成される。
【0040】
メモリ部12の主要部をなすDRAM4には、CPU1が演算処理を実行するための命令の群、すなわちプログラムが格納されている。DRAM4は、さらに、CPU1が演算処理を行って得られたデータも、必要に応じて格納することができる。したがって、DRAM4から読み出されるデータ信号には、プログラムを構成する命令が含まれている。
【0041】
このため、DRAM4は、少なくとも1メガビットの記憶容量を有しており、代表的には、16メガビット(=2メガバイト)の容量を有している。すなわち、DRAM4は、データ信号を一時的に保持する目的でCPU1の内部に備わるレジスタとは、同じ揮発性の半導体記憶装置ではありながら、その役割、および、必要とされる記憶容量において、明瞭に区別される。
【0042】
キャッシュメモリ6は、DRAM4からデータ信号を読出す際の、読出し速度を速める目的で設けられる。また、メモリバスインタフェース5は、DRAM4と演算部11との間のインタフェースとして機能する装置部分である。DRAM4、キャッシュメモリ6、および、メモリバスインタフェース5は、いずれも、従来周知の装置部分であるため、それらの構成についての詳細な説明は略する。
【0043】
メモリバスインタフェース5、キャッシュメモリ6、および、DRAM4の間では、16ビット幅のデータ信号がやり取りされる。ユニット10aに属するCPUバスインタフェース3から配線21へと出力される下位16ビットのデータ信号は、メモリバスインタフェース5へと入力される。この信号は、その後、キャッシュメモリ6を経て、DRAM4へと書き込まれる。
【0044】
ユニット10aに属するDRAM4には、プログラムを構成する32ビット幅の命令の中の下位16ビットが、あらかじめ格納される。同様に、ユニット10bに属するDRAM4には、32ビット幅の命令の中の上位16ビットが、あらかじめ格納される。
【0045】
そして、下位16ビットの命令は、ユニット10aに属するメモリ部12からキャッシュメモリ6、メモリバスインタフェース5を経て、配線22を通じて、ユニット10a,10bの双方のCPUバスインタフェース3へと入力される。同様に、上位16ビットの命令は、ユニット10bに属するメモリ部12からキャッシュメモリ6、メモリバスインタフェース5を経て、配線23を通じて、ユニット10a,10bの双方のCPUバスインタフェース3へと入力される。
【0046】
このようにして、CPU1が読出しおよび書込みを行う32ビット幅のデータ信号が、二つのDRAM4に、重複しないように分担して記憶される。すなわち、複数のDRAM4は、ビット幅を複数の群に分割(いわゆる、ビットスライス)して、データ信号を記憶する。
【0047】
ユニット10a,10bに属するCPU1の双方には、同一の32ビット幅の命令が共通に入力される。したがって、双方のCPU1は、共通のクロック信号に同期して、全く同一の演算処理を、同時に実行する。その結果、双方のCPU1からは、全く同一のデータ信号が同時に出力される。CPU1からCPUバスインタフェース3へと出力されたデータ信号は、既述したようにビットスライスされた上で、メモリ部12へと送られる。
【0048】
一方、CPU1から入出力インタフェース2へと出力されたデータ信号は、32ビット幅のままで、外部バスライン29へと送られる。したがって、ユニット10a,10bからは、同時に同一のデータ信号が、外部バスライン29へと出力される。あるいは、ユニット10a,10bのいずれか一方のみが、データ信号を外部バスライン29へと出力するように、入出力インタフェース2が構成されてもよい。
【0049】
さらに、CPUバスインタフェース3と同様に、CPU1から出力されたデータ信号がビットスライスされて、外部バスライン29へと出力されるように、入出力インタフェース2が構成されてもよい。例えば、ユニット10aの入出力インタフェース2からは、下位16ビット、ユニット10bの入出力インタフェース2からは上位16ビットが、外部バスライン29へと出力されるように、入出力インタフェース2が構成されてもよい。
【0050】
ただし、外部バスライン29からCPU1へと入力されるデータ信号は、32ビット幅で、ユニット10a,10bの双方に、同時に入力される。そうすることによって、ユニット10a,10bに属する二つのCPU1は、つねに同一の演算処理を同時に実行することが可能となる。
【0051】
以上のように、装置101は、CPUバスインタフェース3に対して簡単な変更を加えた上で、複数の演算部11と複数のメモリ部12とを、配線21〜23によって特徴的に結合する点を除けば、従来周知の装置部分の組み合わせによって、構成可能である。すなわち、装置101は、従来装置151,152に比べて、格別に複雑な構成を要することなく、装置の処理速度の改善と、記憶容量の改善とを両立的に実現する。
【0052】
<1−3.装置101の拡張>
図1、図2に示した装置101では、32ビット幅のデータ信号が、各々16ビット幅の2群の信号にビットスライスされて、DRAM4へ記憶される例を示した。一般に、CPU1がN(>2)ビット単位で演算処理を行うときに、各々がLビット(1≦L≦N/2)幅のN/L群の信号にビットスライスされて、N/L個のDRAM4へ記憶されるように、装置101を拡張することが可能である。図1、図2の装置101は、N=32,L=16の例、すなわち群の個数が最小(=2)である例に相当する。
【0053】
一般に、群の個数(=N/L)が大きいほど、CPU1がアクセスできるメモリ空間の広さ(すなわち記憶容量)が拡大する。図3に、N=32,L=8の例を示す。この装置102には、4個のユニット10e〜10hが備わっている。そして、ユニット10e〜10hの各々には、演算部13およびメモリ部14が備わっている。
【0054】
メモリ部14では、8ビット単位でデータ信号の読出し、および、書込みが可能である。一つの演算部13からは、CPU1(図示を略する)が演算処理を行うことによって得られた32ビット幅のデータ信号の中から、8ビットが切り出されて、配線41を通じて、同じユニット10e〜10hに属するメモリ部14へと書き込まれる。また、一つの演算部13へは、各メモリ部14から8ビット幅ずつ読み出されたデータ信号が、配線42〜45を通じて集められ、32ビット幅のデータ信号として入力される。
【0055】
この装置102では、単一半導体チップの面積と素子の集積度とが、装置101と同等であるとすれば、CPU1がアクセスし得るメモリ空間の広さは、装置101の2倍となる。メモリ部14から読み出されたデータ信号を各演算部13へと伝えるために各半導体チップに必要とされるピンの個数は、装置101と装置102との間で差異がない。
【0056】
したがって、装置102は、装置101と同等程度に、演算部13へ入力されるデータ信号のビット幅を高くすることが可能である。すなわち、装置102では、データ信号の伝送速度を、装置101に比べて遜色ない程度に高く維持しつつ、演算部がアクセスし得るメモリ空間を、装置101よりも拡大することが可能である。
【0057】
なお、図1〜図3では、Nビット幅のデータ信号が、同一のデータ幅L(<N/2)へと、均等にビットスライスされる例を示したが、ビットスライスを不均等に行うように、装置を構成することも可能である。すなわち、一般に、データ幅L1,L2,・・・・,Lmへと、Nビット幅のデータ信号がm(>2)群にビットスライスされるように、装置を構成することが可能である。このとき、
L1+L2+・・・・+Lm=N、の関係が成立する。
【0058】
しかしながら、L1=L2=・・・・=Lm=Lであるとき、すなわち、均等にビットスライスが行われるときには、各半導体チップ(例えば、ユニット10a,10bなど)が、CPUバスインタフェース3(図2)を除いた主要部において、互いに同一に構成可能であるという利点が得られる。すなわち、製造コストを節減することができる。
【0059】
<2.実施の形態2>
図4は、実施の形態2のデータ処理装置の構成を示すブロック図である。この装置103では、ユニット50a〜50dの各々に備わるCPU61が、互いに完全に同一の演算処理を行うのではなく、少なくとも演算処理の一部を分担し合っている点において、実施の形態1の装置101〜103とは特徴的に異なっている。
【0060】
基板9の上に設置されるユニット50a〜50dは、それぞれ個別に、単一半導体チップで構成されている。そして、単一半導体チップのそれぞれには、演算部51およびメモリ部14が作り込まれている。メモリ部14には、その主要部をなすDRAM64に加えて、メモリバスインタフェース65、および、キャッシュメモリ66が備わっている。これらのDRAM64、キャッシュメモリ66、および、メモリバスインタフェース65は、取り扱いの対象とするデータ信号のビット幅が異なる点を除けば、図1に示したDRAM4、キャッシュメモリ6、および、メモリバスインタフェース5と同等に構成され、同等に機能する。
【0061】
他方の演算部51には、その主要部をなすCPU61の他に、入出力インタフェース2、および、CPUバスインタフェース63,67が備わっている。ユニット50a〜50dに属するCPU61の各々には、クロック生成部25で生成されるクロック信号が、図示しないクロック配線を通じて共通に供給されている。各CPU61は、このクロック信号に同期して、演算処理を段階的に実行する。ユニット50a〜50dに属する演算部51の各々は、基板9に取り付けられた端子77を通じて、装置103の外部に準備される外部バスライン(図示を略する)へと接続することが可能である。
【0062】
CPU61は、32ビット型のCPUであり、CPU61、入出力インタフェース2、端子77、および、外部バスラインの間では、32ビット幅のデータ信号がやり取りされる。一方、ユニット50a〜50dの各々の中で、CPU61とメモリ部14との間では、ビットスライスされた8ビット幅のデータ信号が、CPUバスインタフェース63および配線71,72,81,82を通じて、やり取りされる。
【0063】
さらに、ユニット50a〜50dに属する各CPU61は、内部バスライン75、CPUバスインタフェース67、および、配線83,84を通じて、互いにデコード情報信号またはフェッチ情報信号をやり取りする。また、DRAM64のアドレスの指定は、配線70を通じてCPU61から送られるアドレス信号によって行われる。
【0064】
図5は、CPU61の内部構造を示すブロック図である。従来周知のCPUと同様に、CPU61には、実行部90と制御部91とが備わっている。制御部91には、フェッチ部92およびデコード部93が備わっており、実行部90には実行演算部95およびライト部94が備わっている。フェッチ部92は、配線82を通じて、DRAM64に記憶される命令を取り込む装置部である。取り込まれる命令は、32ビット幅の命令そのものではなく、命令の一部をなし、ビットスライスされた8ビット幅の部分命令である。
【0065】
取り込まれた部分命令は、デコード部93によって、単独でデコード情報信号に変換される。部分命令は、命令の一部にしか過ぎないので、このデコード情報信号だけでは、実行部90は正常な実行処理を行うことができない。そこで、デコード部93は、デコード情報信号を、配線83を通じて、CPUバスインタフェース67へと送出する。
【0066】
CPUバスインタフェース67は、デコード部93から送られたデコード情報信号を、配線73を通じて、内部バスライン75へと送出する。この動作は、すべてのユニット50a〜50dにおいて、同様に行われる。すなわち、内部バスライン75には、4個の演算部51の各々から、デコード情報信号が、同時に供給される。
【0067】
デコード部93は、他の3個のデコード部93から内部バスライン75に供給されているデコード情報信号を、CPUバスインタフェース67および配線84を通じて受け取る。これによって、デコード部93は、受け取ったデコード情報信号を参照することによって、最終的に32ビット幅の命令のデコードを完遂する。その結果得られたデコード信号が、実行部90へと受け渡される。
【0068】
実行部90は、デコード信号にもとづいて、実行処理を行う。したがって、ユニット50a〜50dに属する実行部90のそれぞれは、互いに同一のデコード信号にもとづいて、同一の処理を実行する。しかも、実行処理は、クロック生成部25が供給するクロック信号に同期して、互いに同時に行われる。実行処理は、実行部90に備わる演算実行部95によって行われる。そして、実行処理によって得られたデータ信号は、演算実行部95からライト部94へと受け渡される。
【0069】
ライト部94は、受け渡された32ビット幅のデータ信号を8ビット幅に切り出した上で、配線81を通じてCPUバスインタフェース63へと出力する。あるいは、ライト部94では、32ビット幅のままでデータ信号が出力され、CPUバスインタフェース63によって、8ビット幅への切り出しが行われてもよい。以上のように、ユニット50a〜50dに属するCPU61の各々では、CPU1(図2)とは異なり、すべての処理が同一に行われるわけではなく、一部の処理は互いに分担される。
【0070】
以上のフェッチからライトまでの一連の処理は、クロック生成部25が供給するクロック信号に同期して、いわゆるパイプライン処理の形式で反復的に実行される。図6は、CPU61におけるパイプライン処理を説明するタイミングチャートである。図6に示すように、フェッチ部92は、クロック信号のパルスに同期して、DRAM64から命令1,2,3,・・・・を、順次取り込む。より正確には、先に述べたように、一つのCPU61に属するフェッチ部92は、これらの命令の一部を構成する部分命令を取り込む。
【0071】
一つの命令、例えば命令1に対する処理の流れに注目すると、クロック信号のパルスごとに、フェッチ部92によるフェッチ、デコード部93によるデコード、演算実行部95による実行処理、そして、ライト部94によるライトが、逐次的に行われる。すなわち、一つの命令1に対する一連の処理が、各装置部によって、クロック信号のパルスごとに順次実行される。
【0072】
そして、つぎの命令2に対する同様の一連の処理が、クロック信号の1パルス後に、同様に順次実行される。したがって、一つの装置部、例えば、デコード部93に注目すると、クロック信号のパルスごとに、命令1,2,3・・・・の順で、それらの命令のデコードが休みなく行われる。CPU61は、このような「パイプライン処理」と称される形式にしたがって、命令を次々に処理して行く。
【0073】
図7は、一つの命令に対するフェッチからライトまでの処理の流れを、より詳細に示すタイミングチャートである。この例では、クロック信号の周期は、25nsecに設定されている。フェッチが行われるクロック周期では、その開始直後に所定のアドレス信号が出力される。アドレス信号の出力が開始された後に、DRAM64に記憶される命令(図7の読出しデータ)がフェッチ部92へと到達するまでには、通常において相当の遅延が生じる。図7の例では、この遅延は20nsecである。
【0074】
つぎのクロック周期では、デコードが行われる。デコードの周期が開始された後に、デコード情報信号が出力されるまでには、わずかに4nsec程度しか要しない。フェッチに比べてデコードは、短時間で遂行される。デコード情報信号は、4個のデコード部93の間で互いに交換される。その後、最終的に実行部90が実行可能なデコード信号が出力される。デコード情報信号が、4nsec程度と、短時間で得られるために、25nsecの周期の間に、十分な余裕を持って、最終的なデコード信号を得ることが可能である。
【0075】
つぎのクロック周期では、演算実行部95による実行処理が行われる。実行処理についても、通常において相当な時間が必要とされる。図7の例では、実行の周期が開始された後に、実行処理の結果としての実行データ信号が出力されるまでに、20nsecを要している。つづくクロック周期では、実行データ信号が、ライト部94によって、書込データ信号として出力される。
【0076】
以上のように、装置103では、メモリ部14から演算部51へのデータ信号の伝送が、単一半導体チップの内部に配設される配線72を通じてのみ行われるので、データ信号の伝送遅延の問題が解消される。しかも、単一半導体チップを超えて、ユニット50a〜50dの間で信号をやり取りする動作、すなわち無視できない大きさの遅延時間をともなう動作が、時間的に最も余裕のあるクロック周期であるデコード周期の中で行われる。したがって、データ信号の伝送遅延が解消されたことが、処理速度の向上へと有効に寄与する。
【0077】
さらに、単一半導体チップに備えることのできるピンを、内部バスライン75を通じて伝送されるデコード情報信号を中継するピンのために、専ら使用することが可能となる。したがって、内部バスライン75を通じて交換されるデコード情報信号のビット幅を高くすることによって、デコード情報信号の伝送速度を向上させ得るだけでなく、CPU61が処理の単位とするビット幅を、例えば64ビット幅、128ビット幅などへと、容易に拡大することが可能となる。それによって、装置の処理速度を一層向上させることが可能となる。
【0078】
図8は、CPU61の内部構造のもう一つの例を示すブロック図である。この例は、配線83が、デコード部93の出力の代わりに、フェッチ部92の出力に接続されている点において、図5の例とは特徴的に異なっている。フェッチ部92は、DRAM64に記憶される命令の一部をなす8ビット幅の部分命令を、配線82を通じて取り込んだ後、フェッチ情報信号を出力する。フェッチ部92は、例えばラッチ回路を備えており、フェッチされた部分命令と同一の信号を、フェッチ情報信号として出力に保持する。
【0079】
このフェッチ情報信号は、デコード部93へと供給されるとともに、配線83を通じて、CPUバスインタフェース67へと送出される。CPUバスインタフェース67は、フェッチ部92から送られたフェッチ情報信号を、配線73を通じて、内部バスライン75へと送出する。この動作は、すべてのユニット50a〜50dにおいて、同様に行われる。すなわち、内部バスライン75には、4個の演算部51の各々から、フェッチ情報信号が、同時に供給される。
【0080】
デコード部93は、他の3個のフェッチ部92から内部バスライン75に供給されているフェッチ情報信号を、CPUバスインタフェース67および配線84を通じて受け取る。その結果、デコード部93は、4個の演算部51に属する4個すべてのフェッチ部92から、フェッチ情報信号の供給を受けることとなる。デコード部93は、受け取ったフェッチ情報信号を参照することによって、32ビット幅の命令のデコードを実行する。その結果得られたデコード信号が、実行部90へと受け渡される。実行部90における動作は、図5の例と同様である。
【0081】
図8の例では、4個のCPU61の間で、デコードが加えられていないフェッチ情報信号そのものを交換すればよいので、装置の構成が簡単であるという利点がある。また、デコード部93が、フェッチ情報信号の取り込みを、時間的に最も余裕のあるクロック周期であるデコード周期の中で行うことも可能である。このときには、図5の例と同様に、データ信号の伝送遅延が解消されたことが、処理速度の向上へと有効に寄与する。
【0082】
なお、フェッチ部92においてフェッチされたデータ信号が、プログラムを構成する命令ではなく、演算用のデータ信号(例えば、数値データ、論理値データなど)である場合には、実行部90では、演算用のデータ信号にもとづく演算(例えば、加算、論理演算など)が実行される。このときには、デコード部93では、命令に対するデコードが行われる必要がないので、例えば、フェッチ情報信号がそのまま実行部90へと受け渡される。
【0083】
また、以上の説明では、複数のユニット50a〜50dの各々に備わるCPU61の中で、制御部91のみが、演算処理を分担し合っている例を示したが、実行部90も含めて、演算処理を分担するように装置を構成することも可能である。このとき、CPU61として、8ビット単位で処理を行う8ビット型のCPUを用いることが可能となる。
【0084】
このときには、例えば、32ビットのデータ信号の加算が行われる際に、各実行部90は、32ビットを4等分にビットスライスして成る8ビットの加算のみを実行する。加算にともなうキャリー信号を各実行部90の間で交換する必要があるため、各デコード部93どうしを結合する配線83,84だけでなく、各実行部90どうしを結合する配線が別途必要となる。
【0085】
<3.実施の形態3>
以上に説明した実施の形態1および2の装置では、メモリ部12(,14)に対して書込みおよび読出しが行われるデータ信号のビット幅と、メモリ部12(,14)に内蔵されるDRAM4(,64)に対して書込みおよび読出しが行われるデータ信号のビット幅とは一致していた。
【0086】
例えば、図2の例では、CPUバスインタフェース3とメモリバスインタフェース5との間では、16ビット幅のデータ信号がやり取りされ、メモリバスインタフェース5、キャッシュメモリ6、および、DRAM4の間でも、同じ16ビット幅のデータ信号がやり取りされていた。しかしながら、一般には、これらの間で、データ信号のビット幅が異なっていてもよい。図9は、そのように構成されたユニットの一例を示すブロック図である。
【0087】
図9に示すユニット130には、図2に示した演算部11とともに、メモリ部132が備わっている。ユニット130は、単一半導体チップで構成されており、図2に示したユニット10a,10bと同様に、他のユニット130と並列に接続されることによって、データ処理装置を構成することが可能である。
【0088】
メモリ部132では、DRAM4(図2)とは異なり、メモリバスインタフェース135、キャッシュメモリ136、および、DRAM134の間では、128ビット幅のデータ信号がやり取りされる。すなわち、データ信号は、DRAM134に対して、128ビット幅で、書込みおよび読出しが行われる。このユニット130では、DRAM134に対して同時に書き込みおよび読出しが行われるデータ信号のビット数がユニット10a,10bよりも高いので、処理の速度をさらに向上させることができる。
【0089】
<4.実施の形態4>
図10は、実施の形態4のユニットの構成を示すブロック図である。このユニット140には、演算部141およびメモリ部142が備わっている。ユニット140は、単一半導体チップで構成されており、ユニット10a,10b(図2)あるいはユニット50a〜50d(図4)と同様に、他の単数または複数のユニット140と並列に接続されることによって、データ処理装置を構成することが可能である。
【0090】
このユニット140では、メモリ部142に対して書込みおよび読出しが行われるデータ信号のビット幅が可変である点において、実施の形態1〜3に示したユニットとは特徴的に異なっている。演算部141には、CPU1、および、入出力インタフェース2に加えて、CPUバスインタフェース113が備わっている。このCPUバスインタフェース113は、メモリ部142に対して読み出しおよび書込みを行うデータ信号のビット幅Ljを、配線133を通じて外部から入力される選択信号に応答して、自在に設定する。
【0091】
メモリ部142には、DRAM134、および、キャッシュメモリ136に加えて、メモリバスインタフェース115が備わっている。このメモリバスインタフェース115は、CPUバスインタフェース113とやり取りするデータ信号のビット幅Ljを、選択信号に応答して自在に設定する。すなわち、CPUバスインタフェース113とメモリバスインタフェース115は、共通に入力される選択信号に応答して、互いに連動してビット幅Ljを設定する。
【0092】
すなわち、ビット幅Ljを選択信号にもとづいた変数として、CPUバスインタフェース113からメモリバスインタフェース115へと配線121を通じて、ビット幅Ljのデータ信号が書き込まれ、メモリバスインタフェース115からCPUバスインタフェース113へと配線122を通じて、ビット幅Ljのデータ信号が読み出される。
【0093】
また、CPUバスインタフェース113へは、他の単数または複数のユニット140に属するメモリバスインタフェース115から、それぞれビット幅Ljのデータ信号が、他の配線122を通じて入力される。ビット幅Ljのデータ信号を伝送する配線122は、バスライン123に属しており、選択信号に応じてバスライン123を分担する。
【0094】
図10の例では、CPU1が32ビット型のCPUであるため、バスライン123は、32ビット幅に対応して、32本の配線を有している。ビット幅Ljが、例えば8ビットであれば、バスライン123は、各々が8本の配線を有する4つの配線122で構成される。メモリバスインタフェース115は、バスライン123を構成するすべての配線に接続されており、それらの中で、選択信号が指示するビット幅Ljに対応した配線122以外の配線に対しては、ハイインピーダンスとなって、図10に点線で示すように、接続状態が解除される。
【0095】
配線121も、バスライン123と同様に、最大32ビット幅のデータ信号を伝送可能なように、32本の配線を有している。そして、それらの中で、選択信号が指示するビット幅Ljに対応して、Lj本の配線のみが、CPUバスインタフェース113とメモリバスインタフェース115とに接続され、ビット幅Ljのデータ信号の伝送のために使用される。
【0096】
DRAM134に対するアドレスの指定は、実施の形態1〜3と同様に、配線120を通じてCPU1からDRAM134へと送出されるアドレス信号によって行われる。そして、演算部141に対しては、メモリ部142はあたかも、選択信号が指示するビット幅Ljに対応したLjビットのビット線を有するDRAMとして機能する。
【0097】
図11および図12は、4個のユニット140を並列に接続することによって構成されたデータ処理装置を例として、メモリ部142のビット・ワード構成を示す説明図である。図11の例では、4個のユニット140の間で、ビット幅Ljが同一ではない。ただし、ビット幅Lj(j=1〜4)の総和は、32に一致し、ワード線の数Wjとの積Lj×Wjは、すべてのユニット140の間で共通となる。
【0098】
これに対して、図12の例では、4個のユニット140の間で、ビット幅Ljが同一となっている。図11の一般の例に比べて図12の例の方が、より好ましい。ビット幅Ljの設定が容易であるのに加えて、各ユニット140の間で、データ信号の伝送速度等の特性が揃うという利点がある。
【0099】
<5.変形例>
(1)以上の各実施の形態では、メモリ部にDRAMが備わる例を示したが、本発明では、DRAMだけでなく、SRAM(スタティックRAM)、あるいは、読出し専用の半導体ROMなど、一般の半導体メモリを用いることも可能である。また、一般の半導体メモリを用いても、各実施の形態で述べた効果は、同様に得られる。ただし、一般の半導体メモリの中で、DRAMは最も高い集積度を有しており、この発明への使用に最も適している。また、半導体ROMが用いられるときには、例えば図2において、演算部11からメモリ部12へとデータ信号を伝送する配線21は不要となる。
【0100】
(2)以上の各実施の形態では、演算部がCPUを備え、メモリ部に備わるDRAM等の半導体メモリには、CPUの演算処理の手順を規定するプログラムがあらかじめ格納される例を示したが、一般には、演算部は、論理回路(例えば論理素子の組み合わせ)で構成されてもよい。このとき、半導体メモリには、プログラムは格納されず、論理回路に供給されるデータ信号が、あらかじめ格納される。この場合には、大規模のデータ量のデータ信号にもとづいて論理回路が動作するとき、すなわち、半導体メモリのメモリ空間が、代表的には1メガビット以上の記憶容量を有するときに、本発明は特に有用性を発揮する。
【0101】
【発明の効果】
第1の発明の装置では、m個(複数個)の半導体メモリに、データ信号がビットスライスされた形式で分担して記憶され、m個(複数個)のCPUは、全体として、あるいは、各個それぞれごとに、m個の半導体メモリの全体に記憶されるNビット幅のデータ信号を、配線を通じて利用することが可能である。このため、m個のCPUが利用できる半導体メモリの記憶容量として、単一半導体チップに形成される1個の半導体メモリの記憶容量のm倍に拡張された大きさが確保される。
【0102】
しかも、各単一半導体チップごとにCPUが備わるので、各単一半導体チップの間を結合する配線として、m個の半導体メモリからm個のCPUへとデータ信号を伝送する配線、あるいは、m個のCPUの間で情報信号を交換するための配線のいずれかが配設されれば足りる。したがって、これらの信号以外の信号、例えばアドレス信号などに関しては、伝送にともなう遅延の問題が生じない。さらに、各単一半導体チップに備えられるべきピンを、上記のデータ信号または情報信号を伝送する配線のために、専ら使用することができるので、これらの信号のビット幅を拡大することが可能となる。それによって、装置の処理速度が向上する。
【0103】
第2の発明の装置では、m個のCPUのそれぞれが、m個の半導体メモリの全体で記憶されるNビット幅のデータ信号にもとづいて、処理を実行する。このため、m個のCPUの間での情報信号の受け渡しが不要であり、装置の構成が単純であるので、装置の設計が容易となる。
【0104】
第3の発明の装置では、第1および第2インタフェースが、選択信号に応じて、ビット幅の大きさL1,L2,・・・・,Lmを変更可能であるため、演算部とメモリ部が作り込まれている単一半導体チップを用いて、ビット幅の大きさL1,L2,・・・・,Lmの異なる複数種類のデータ処理装置を構成することが可能である。したがって、データ処理装置を低廉なコストで製造することが可能となる。
【0105】
第4の発明の装置では、m個の半導体メモリの各々が、例えばDRAMなどの読み書き自在のメモリであり、書き込まれるデータ信号のビット幅は、読出しのビット幅L1,L2,・・・・,Lmと一致し、しかも、可変である。このため、m個のCPUは、演算処理によって得られたデータ信号を、m個の半導体メモリに記憶し、さらに、m個の半導体メモリから読み出して演算に利用することが可能となる。しかも、書込みの際のデータ信号の受け渡しは、同一の半導体チップの中で行われるので、書込みの際に、データ信号の伝送遅延の問題が生じない。すなわち、処理速度が高く、しかも、利用価値の高いデータ処理装置が、低廉なコストで製造可能となる。
【0106】
第5の発明の装置では、m個の半導体メモリの各々が、例えばDRAMなどの読み書き自在のメモリであり、書き込まれるデータ信号のビット幅は、読出しのビット幅L1,L2,・・・・,Lmと一致する。このため、m個のCPUは、演算処理によって得られたデータ信号を、m個の半導体メモリに記憶し、さらに、m個の半導体メモリから読み出して演算に利用することが可能となる。しかも、書込みの際のデータ信号の受け渡しは、同一の半導体チップの中で行われるので、書込みの際に、データ信号の伝送遅延の問題が生じない。すなわち、処理速度が高く、しかも、利用価値の高いデータ処理装置が実現する。
【0107】
第6の発明の装置では、m個のCPUの各々は、同一の単一半導体チップに形成される半導体メモリに記憶されるデータ信号のみを読み取るので、半導体メモリからCPUへと伝送されるデータ信号の伝送速度が高められる。このため、CPUの処理のサイクルの中で、長い時間を要するサイクルの一つであるフェッチに要する時間が短縮される。
【0108】
第7の発明の装置では、m個のCPUは、時間を要する実行部による処理の過程では情報信号の交換を行わなくてもよいように、短時間での処理が可能なデコードの過程で、必要な情報信号の交換を行う。このため、フェッチに要する時間を短縮したことが、実行部の処理の時間を増大させることなく、CPUの処理の速度の向上へと、有効に生かされる。
【0109】
第8の発明の装置では、m個のCPUは、フェッチ部が出力するフェッチ情報信号を交換するので、装置の構成が簡単である。また、フェッチ情報信号の交換を、短時間での処理が可能なデコードの過程で終了させることが可能であり、このときには、フェッチに要する時間を短縮したことが、実行部の処理の時間を増大させることなく、CPUの処理の速度の向上へと、有効に生かされる。
【0110】
第9の発明の装置では、ビットスライスが均等に行われるので、m個の単一半導体チップが、その主要部において、互いに同一に構成可能である。したがって、データ処理装置の製造に要するコストを、節減することが可能となる。
【0111】
第10の発明の装置では、m個(複数個)の半導体メモリに、データ信号がビットスライスされた形式で分担して記憶され、m個(複数個)の論理回路は、全体として、あるいは、各個それぞれごとに、m個の半導体メモリの全体に記憶されるNビット幅のデータ信号を、配線を通じて利用することが可能である。このため、m個の論理回路が利用できる半導体メモリの記憶容量として、単一半導体チップに形成される1個の半導体メモリの記憶容量のm倍に拡張された大きさが確保される。
【0112】
しかも、各単一半導体チップごとに論理回路が備わるので、各半導体チップの間を結合する配線として、m個の半導体メモリからm個の論理回路へとデータ信号を伝送する配線のみが配設されれば足りる。したがって、このデータ信号以外の信号に関しては、伝送にともなう遅延の問題が生じない。さらに、各単一半導体チップに備えられるべきピンを、m個の半導体メモリからm個の論理回路へとデータ信号を伝送する配線のために、専ら使用することが可能となるので、このデータ信号のビット幅を広げることが可能である。したがって、このデータ信号の伝送速度を高め、装置の処理速度を向上させることが可能となる。
【図面の簡単な説明】
【図1】実施の形態1の装置の概略ブロック図である。
【図2】実施の形態1の装置の詳細ブロック図である。
【図3】実施の形態1の装置の別の例を示すブロック図である。
【図4】実施の形態2の装置のブロック図である。
【図5】実施の形態2のCPUのブロック図である。
【図6】実施の形態2のCPUのパイプライン処理の動作説明図である。
【図7】実施の形態2のCPUの一つの命令サイクルの動作説明図である。
【図8】実施の形態2のCPUの別の例のブロック図である。
【図9】実施の形態3のユニットのブロック図である。
【図10】実施の形態4のユニットのブロック図である。
【図11】実施の形態4の装置のビット・ワード構成例を示す図である。
【図12】実施の形態4の装置のより望ましいビット・ワード構成例を示す図である。
【図13】従来の装置の構成を示すブロック図である。
【図14】従来の装置の別の構成例を示すブロック図である。
【符号の説明】
1,61 CPU、3,113 第1インタフェース、4,64,134 半導体メモリ、5,135,115 第2インタフェース、6,66,136 キャッシュメモリ、11,13,51,141 演算部、12,14,132,142 メモリ部、20〜23,41〜45,70〜73,75,120〜123 配線、25 クロック生成部、93 デコード部、90 実行部。
Claims (10)
- データ処理装置において、
m(m≧2)個の演算部と、
m個のメモリ部と、
前記m個の演算部およびメモリ部の間を結合する配線と、を備え、
前記m個の演算部は、m個のCPUをそれぞれ備え、
前記m個のメモリ部は、m個の半導体メモリをそれぞれ備え、
前記m個の半導体メモリは、前記m個のCPUの動作を規定するプログラムを含む、N(N≧2)ビット幅のデータ信号の列が、L1,L2,・・・・,Lm(ここで、L1,L2,・・・・,Lm≧1、しかも、L1+L2+・・・・+Lm=N)ビット幅にビットスライスされたものを、それぞれ分担して格納可能であり、
前記m個のCPUは、前記m個の半導体メモリの全体で記憶されるNビット幅のデータ信号を順次読み出して、Nビット幅のデータ信号にもとづく処理を順次実行し、
前記m個の演算部と前記m個のメモリ部とは、一対ごとに、別個の単一半導体チップの中に、形成されているデータ処理装置。 - 請求項1に記載のデータ処理装置において、
前記m個のCPUの各々が、前記m個の半導体メモリの全体で記憶される前記Nビット幅のデータ信号を読み取り、当該Nビット幅のデータ信号にもとづく処理を順次実行し、その結果、前記m個のCPUは、互いに同一の処理を実行するデータ処理装置。 - 請求項2に記載のデータ処理装置において、
前記m個の演算部は、前記m個のCPUにそれぞれ結合したm個の第1インタフェースをさらに備え、
前記m個のメモリ部は、前記m個の半導体メモリにそれぞれ結合したm個の第2インタフェースをさらに備え、
前記配線は、前記m個の第1および第2インタフェースを中継することによって、前記m個のCPUの各々を前記m個の半導体メモリのすべてに結合しており、
前記m個の第2インタフェースは、前記m個の半導体メモリから、それぞれ、前記L1,L2,・・・・,Lmビット幅のデータ信号を読み出し、
前記m個の第1インタフェースの各々は、前記m個の第2インタフェースが読み出した前記L1,L2,・・・・,Lmビット幅のデータ信号のすべてを受け取り、前記Nビット幅のデータ信号を再構成した上で、前記m個のCPUの中の同一の演算部に属するCPUへと入力し、
しかも、前記第1および第2インタフェースは、外部から入力される選択信号に応じて、前記ビット幅の大きさL1,L2,・・・・,Lmを変更可能に設定するデータ処理装置。 - 請求項3に記載のデータ処理装置において、
前記m個の半導体メモリの各々は、読み書き自在であり、
前記m個の第1インタフェースは、前記m個のCPUから出力されるm個のNビット幅のデータ信号から、変更可能に設定された前記L1,L2,・・・・,Lmビット幅ずつを、ビットスライスに対応するように、それぞれ切り出して、前記m個の第2インタフェースへと、それぞれ受け渡す動作をさらに行い、
前記m個の第2インタフェースは、受け渡された前記L1,L2,・・・・,Lmビット幅のデータ信号を、前記m個の半導体メモリへと、それぞれ書き込む動作をさらに行い、
しかも、前記m個の第1インタフェースから、前記m個の第2インタフェースを通じ、前記m個の半導体メモリへ至る前記L1,L2,・・・・,Lmビット幅のデータ信号の受け渡しは、それぞれ同一の単一半導体チップの中で行われるデータ処理装置。 - 請求項1または請求項2に記載のデータ処理装置において、
前記m個の半導体メモリの各々は、読み書き自在であり、
前記m個のCPUは、Nビット幅のデータ信号を前記m個の半導体メモリへ書き込む際に、前記データ信号ごとに、L1,L2,・・・・,Lmビット幅にビットスライスしたものを、それぞれ書き込み、
しかも、前記m個のCPUから前記m個の半導体メモリへ至る前記L1,L2,・・・・,Lmビット幅のデータ信号の受け渡しは、それぞれ同一の単一半導体チップの中で行われるデータ処理装置。 - 請求項1に記載のデータ処理装置において、
前記m個のCPUの各々は、前記m個の半導体メモリの中で、前記単一半導体チップの中に共通に形成されている一つに記憶されるLi(ここで、iは1,2,・・・・,mのいずれか一つ)ビット幅のデータ信号のみを読み取り、少なくとも前記m個のCPUの全体で、前記Nビット幅のデータ信号にもとづく処理を順次実行するデータ処理装置。 - 請求項6に記載のデータ処理装置において、
前記m個のCPUの各々は、デコード部と実行部とを備え、
前記デコード部は、前記Liビット幅のデータ信号をデコードするごとに、得られたデコード情報信号を、他のすべてのCPUへ供給するとともに、他のすべてのCPUが得たデコード情報信号を受け取ることによって、前記Nビット幅のデータ信号のデコードを完成し、
前記実行部は、前記デコード部でなされた前記Nビット幅のデータ信号のデコードの結果を入力することによって、前記Nビット幅のデータ信号にもとづく処理を実行するデータ処理装置。 - 請求項6に記載のデータ処理装置において、
前記m個のCPUの各々は、フェッチ部と実行部とを備え、
前記フェッチ部は、前記Liビット幅のデータ信号をフェッチするごとに、得られたフェッチ情報信号を、他のすべてのCPUへ供給し、
前記実行部は、前記フェッチ部および前記他のすべてのCPUからのフェッチ情報信号を通じて、前記Nビット幅のデータ信号にもとづく処理を実行するデータ処理装置。 - 請求項1ないし請求項8のいずれかに記載のデータ処理装置において、
前記ビット幅の大きさL1,L2,・・・・,Lmが、L1=L2=・・・・=Lmであるデータ処理装置。 - データ処理装置において、
m(m≧2)個の演算部と、
m個のメモリ部と、
前記m個の演算部およびメモリ部の間を結合する配線と、を備え、
前記m個の演算部は、m個の論理回路をそれぞれ備え、
前記m個のメモリ部は、m個の半導体メモリをそれぞれ備え、
前記m個の半導体メモリは、1メガビット以上の記憶容量を有し、N(N≧2)ビット幅のデータ信号の列が、L1,L2,・・・・,Lm(L1,L2,・・・・,Lm≧1;L1+L2+・・・・+Lm=N)ビット幅にビットスライスされたものを、それぞれ分担して格納可能であり、
前記m個の論理回路は、前記m個の半導体メモリの全体で記憶されるNビット幅のデータ信号の供給を順次受けて、当該Nビット幅のデータ信号にもとづく処理を順次実行し、
前記m個の演算部と前記m個のメモリ部とは、一対ごとに、別個の単一半導体チップの中に、形成されているデータ処理装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25517397A JP3612186B2 (ja) | 1997-09-19 | 1997-09-19 | データ処理装置 |
US09/045,863 US6032246A (en) | 1997-09-19 | 1998-03-23 | Bit-slice processing unit having M CPU's reading an N-bit width data element stored bit-sliced across M memories |
TW087106024A TW376581B (en) | 1997-09-19 | 1998-04-20 | Data processor |
DE19822776A DE19822776A1 (de) | 1997-09-19 | 1998-05-20 | Datenverarbeitungsvorrichtung |
CN98108341A CN1212400A (zh) | 1997-09-19 | 1998-05-21 | 数据处理装置 |
KR1019980018519A KR100268747B1 (ko) | 1997-09-19 | 1998-05-22 | 데이터 처리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25517397A JP3612186B2 (ja) | 1997-09-19 | 1997-09-19 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1196123A JPH1196123A (ja) | 1999-04-09 |
JP3612186B2 true JP3612186B2 (ja) | 2005-01-19 |
Family
ID=17275068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25517397A Expired - Fee Related JP3612186B2 (ja) | 1997-09-19 | 1997-09-19 | データ処理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6032246A (ja) |
JP (1) | JP3612186B2 (ja) |
KR (1) | KR100268747B1 (ja) |
CN (1) | CN1212400A (ja) |
DE (1) | DE19822776A1 (ja) |
TW (1) | TW376581B (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
ATE243390T1 (de) | 1996-12-27 | 2003-07-15 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.) |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
WO2002013000A2 (de) | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
US8230411B1 (en) | 1999-06-10 | 2012-07-24 | Martin Vorbach | Method for interleaving a program over a plurality of cells |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
ATE557344T1 (de) | 2001-06-20 | 2012-05-15 | Krass Maren | Verfahren und gerät zum partitionieren von grossen rechnerprogrammen |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
EP1483682A2 (de) | 2002-01-19 | 2004-12-08 | PACT XPP Technologies AG | Reconfigurierbarer prozessor |
ATE538439T1 (de) | 2002-02-18 | 2012-01-15 | Richter Thomas | Bussysteme und rekonfigurationsverfahren |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
JP4388895B2 (ja) | 2002-09-06 | 2009-12-24 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | リコンフィギュアラブルなシーケンサ構造 |
WO2007082730A1 (de) | 2006-01-18 | 2007-07-26 | Pact Xpp Technologies Ag | Hardwaredefinitionsverfahren |
US20100199067A1 (en) * | 2009-02-02 | 2010-08-05 | International Business Machines Corporation | Split Vector Loads and Stores with Stride Separated Words |
JP5359603B2 (ja) * | 2009-06-25 | 2013-12-04 | セイコーエプソン株式会社 | 集積回路システム、データ書き込み方法、データ読み出し方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4418383A (en) * | 1980-06-30 | 1983-11-29 | International Business Machines Corporation | Data flow component for processor and microprocessor systems |
US4393468A (en) * | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
JPS6111873A (ja) * | 1984-06-28 | 1986-01-20 | Kokusai Electric Co Ltd | 16ビツトマイクロプロセツサによる8ビツトおよび16ビツトの各周辺装置へのアクセス方法 |
US4760517A (en) * | 1986-10-17 | 1988-07-26 | Integrated Device Technology, Inc. | Thirty-two bit, bit slice processor |
JPS63261445A (ja) * | 1987-04-20 | 1988-10-28 | Hitachi Ltd | メモリ制御方式 |
US5903772A (en) * | 1993-10-29 | 1999-05-11 | Advanced Micro Devices, Inc. | Plural operand buses of intermediate widths coupling to narrower width integer and wider width floating point superscalar processing core |
JP3599368B2 (ja) * | 1994-05-20 | 2004-12-08 | 株式会社ルネサステクノロジ | 並列処理マイクロプロセッサ |
WO1996007143A1 (en) * | 1994-08-30 | 1996-03-07 | Micromodule Systems | Dual-microprocessor module having two microprocessors each capable of operating in independent mode and cooperative mode |
US5931941A (en) * | 1995-04-28 | 1999-08-03 | Lsi Logic Corporation | Interface for a modularized computational unit to a CPU |
US5911082A (en) * | 1997-02-25 | 1999-06-08 | Audio Digitalimaging Inc. | Parallel processing building block chip |
-
1997
- 1997-09-19 JP JP25517397A patent/JP3612186B2/ja not_active Expired - Fee Related
-
1998
- 1998-03-23 US US09/045,863 patent/US6032246A/en not_active Expired - Fee Related
- 1998-04-20 TW TW087106024A patent/TW376581B/zh not_active IP Right Cessation
- 1998-05-20 DE DE19822776A patent/DE19822776A1/de not_active Ceased
- 1998-05-21 CN CN98108341A patent/CN1212400A/zh active Pending
- 1998-05-22 KR KR1019980018519A patent/KR100268747B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US6032246A (en) | 2000-02-29 |
TW376581B (en) | 1999-12-11 |
JPH1196123A (ja) | 1999-04-09 |
DE19822776A1 (de) | 1999-03-25 |
KR19990029204A (ko) | 1999-04-26 |
KR100268747B1 (ko) | 2000-10-16 |
CN1212400A (zh) | 1999-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3612186B2 (ja) | データ処理装置 | |
US6510510B1 (en) | Digital signal processor having distributed register file | |
US6185703B1 (en) | Method and apparatus for direct access test of embedded memory | |
US4654781A (en) | Byte addressable memory for variable length instructions and data | |
US5761478A (en) | Programmable memory interface for efficient transfer of different size data | |
EP0507209A2 (en) | A data processor with concurrent independent static and dynamic masking of operand information | |
JPH01226066A (ja) | ディジタル信号処理プロセッサ | |
CN113495861A (zh) | 用于计算的系统和方法 | |
JPH08500687A (ja) | ウェハ規模の集積化のためのフォルトトレラントな高速度のバス装置及びバスインタフェース | |
JP2005527035A (ja) | 幅の広いメモリへのアクセス | |
EP0178163B1 (en) | A dual access digital storage device | |
JPS58501560A (ja) | マイクロプロセツサ | |
JPS638490B2 (ja) | ||
CA2324219A1 (en) | A digital signal processor reducing access contention | |
JP2004501470A (ja) | スキームレジスタを用いたメモリアドレスの生成 | |
US6754760B1 (en) | Programmable interface for a configurable system bus | |
US20040153586A1 (en) | Apparatus and method to receive and decode incoming data and to handle repeated simultaneous small fragments | |
JPH09198862A (ja) | 半導体メモリ | |
CA1183275A (en) | Byte addressable memory for variable length instructions and data | |
US6567320B2 (en) | Data write circuit | |
US6219740B1 (en) | Information processing device | |
JP3206960B2 (ja) | 拡張中央演算処理装置 | |
JPH0646413B2 (ja) | デ−タ処理プロセッサ | |
JPS6339945B2 (ja) | ||
CN116069389A (zh) | 一种mcu访问系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041008 |
|
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: 20041019 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041022 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |