JP4621686B2 - パックワードをバスを介して送信する電子データ処理回路 - Google Patents

パックワードをバスを介して送信する電子データ処理回路 Download PDF

Info

Publication number
JP4621686B2
JP4621686B2 JP2006539021A JP2006539021A JP4621686B2 JP 4621686 B2 JP4621686 B2 JP 4621686B2 JP 2006539021 A JP2006539021 A JP 2006539021A JP 2006539021 A JP2006539021 A JP 2006539021A JP 4621686 B2 JP4621686 B2 JP 4621686B2
Authority
JP
Japan
Prior art keywords
data
bus
words
data processing
address
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
Application number
JP2006539021A
Other languages
English (en)
Other versions
JP2007511828A (ja
Inventor
ミリンド、エム.クルカーニ
ビジョー、トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007511828A publication Critical patent/JP2007511828A/ja
Application granted granted Critical
Publication of JP4621686B2 publication Critical patent/JP4621686B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、バスと、バスにアクセスできる複数のデータ処理ユニットとを備える電子データ処理回路に関する。
アドレス/データバスは、複数のデータ処理ユニットがメモリ等の共有リソースに対してアクセスできるようにするための良く知られた解決策である。従来は、データ及び対応するアドレスをバスのデータライン及びアドレスライン上にそれぞれ配置するために、一つのデータ処理ユニットが一時にバスにアクセスする。
最近のデータバスは、非常に幅広く、多くのビット(例えば64ビット又は128ビット)を有するワードを一つのバスサイクルにおいてバス上に配置することができる。データ処理回路は、これらの総てのビットを常に使用するとは限らない。これは、しばしば、書き込まれるべきワードのサイズが最大ワードサイズよりも小さいからである。例えば、しばしば、32ビットの数、又は、16ビットの数でさえ使用される。
米国特許第6,366,984号(特許文献1)は、この冗長性を使用してキャッシュメモリから隣接するアドレスの主メモリへと書き込まれるべき異なるワードをパックすることによりメモリ帯域幅を増大させることができる方法を開示している。パックワード(パックされたワード)は、同じバスサイクルにおいてデータバスのデータライン上に並列に配置される。米国特許第6,366,984号の回路は、データワードがバスの全幅よりも小さく広がっている場合、キャッシュメモリから更新されたデータワードを書き戻すまで待つ。回路は、アドレスを比較して、データワードのアドレスが隣接しているかどうかを決定する。そうである場合には、一つのバスサイクルにおいてデータワードがパックされて書き込まれる。同様に、欧州特許第465320号(特許文献2)は、書き込み要求を集めて、要求からのアドレスを比較することにより、異なる要求からのデータを一つのバスサイクルにパックできるかどうかを決定するライトパッカ(例えば、図19の要素301を参照)を開示している。
無論、この形式のパッキングは、バスの最大ワードサイズ(データラインの数)によって制限される。このワードサイズよりも大きく広がる所定の範囲のアドレスへの書き込みは一般に複数のバスサイクルを伴うが、この場合には、メモリ等のデータ受信デバイスが異なるバスサイクルからのデータのための関連するアドレスを内部において計算することができる長さコード及び開始アドレスを使用することにより、複数のアドレスの供給を避けることができる。
これらの文献は、最大長よりも短い複数のデータワードを書き込むために必要なバスサイクルの数を低減させることができる方法を示している。これにより、より多くのバスサイクルを他のデータ転送のために使用することができ、その結果、起こり得るバスの競合の数が減少し、全体の速度が増大する。サイクルの数の減少が、書き込み動作で使用されるアドレスの隣接性に依存していることは明らかである。アドレスが関与しない場合には、バスサイクルの数の減少は不可能である。この場合、これらの公報は、ワードを更に大きなワードへとパックするための理由を何ら与えない。
実行速度を低下させる潜在的アクセス競合を招くことに加えて、アドレス/データバスはまた、かなりの電力消費量をもたらす。バスデータライン及びアドレスラインは、回路の異なるユニットに接続するために、かなりの距離に亘って延在しなければならない。集積回路において、バスラインは、通常、チップサイズの大部分に亘って延在している。従って、バスラインは、一般に、回路のユニット内の内部ラインよりも十分に長い。バスラインが非常に長いことにより、強固なドライバ回路は、例えばバスラインに関連付けられたキャパシタンスを充電することが必要とされる。
米国特許第6,366,984号公報 欧州特許第465320号公報
特に、本発明の目的は、データバスを介した読み取りデータ及び/又は書き込みデータの送信に伴う電力消費量を低減することである。
特に、本発明の更なる目的は、新たなデータをバスのデータライン上に配置しなければならないバスサイクルの数を低減することにより電力消費量を減少させることである。
特に、本発明の目的は、電子回路内のバスを経由してデータを送るために利用できる有用な帯域幅を増大させることである。
本発明の第1の態様に係る電子回路が請求項1に示されている。この態様において、異なる書き込み要求又は読み取り要求からのデータワードは、これらのデータワードのサイズがバスにより供給される最大ワードサイズよりも小さい場合には、同一のサイクルにおいてバスのデータライン上に一緒に配置される。この態様において、書き込みデータに関連付けられる書き込みアドレスは、複数の異なるサイクルにおいてバス上に配置され、これにより、一つ又は複数のデータ受信回路は、異なるバスサイクルを使用して、バス上に並列に配置された異なるデータワードに関連する異なるアドレスを得ることができる。
通常、データを書き込む一つ又は複数のデータ処理ユニットは、異なるサイズのデータワードを書き込むことができる。同様に、メモリユニットは、異なるサイズの読み取りデータを戻してもよい。これらのユニットは、ワードのサイズを送信することができる。送信されたサイズに応じて、大きい又は小さいデータワードが一つのサイクルにおいて組み合わせられる。従って、データバス全体を満たすサイズ(例えば64ビット)を有するワードを一つのユニットが生成する場合には、新たなデータがデータバス上に配置される前に一つのアドレスが出力される。二つのデータ処理ユニットが半分のサイズのワード(例えばそれぞれが32ビット)を書き込む場合には、一つのバスサイクルにおいて二つのワードが一緒にデータライン上に配置され、これらのワードのためのアドレスを伴う二つのバスサイクルが使用される(これらのバスサイクルの一方は、データワードがバス上に配置されたバスサイクルと一致していてもよい)。同様に、四つのデータ処理ユニットが1/4サイズのワード(例えばそれぞれが16ビット)を書き込む場合には、一つのバスサイクルにおいて四つのワードが一緒にデータライン上に配置され、これらのワードのためのアドレスを伴う四つのバスサイクルが使用される。
実施の一形態においては、対応するワードの位置と所定の関係を有する順序で、アドレスがアドレスライン上に配置される。従って、例えば、データライン上の第1の位置にある1/4ワードのための書き込みアドレスが一つのバスサイクルにおいて出力され、その後、次のバスサイクルにおいて、データライン上の第2の位置にある1/4ワードのための書き込みアドレスが出力される。他の実施の形態においては、アドレスがどの位置に対応するのかを示す信号を送るために信号ラインが設けられてもよい。
本発明の他の態様において、バスコントローラは、ワードが出力されるデータライン及び/又はバスサイクル上におけるワードの位置を選択し、それにより、そのワードをデータライン上の前のデータと置き換えるために必要な論理レベル変化の数が最小限に抑制される。従って、電力消費量が最小限に抑制される。四つの1/4サイズのワードが一つのバスサイクルでデータライン上に配置される場合には、例えば24個のワード位置順序が可能である。バスコントローラは、論理レベルを変えなければならないビットの数に従って位置順序を選択することが好ましい。バスコントローラは、変化の絶対最小値(即ち、四つの1/4ワードを用いた全24個の可能性の中において)を必要とする位置順序を選択することが好ましいが、本発明から逸脱することなく、バスコントローラは、更に少ない可能性から選択してもよく、又は、単に、選択された位置順序が他の可能な順序よりも小さいレベル変化を伴うようにする一つの基準に従って選択してもよい。このようにすれば、絶対最小値は実現されないかもしれないが、電力消費量は減少する。同様に、バスコントローラは、必要な移行数を最小限に抑制するため、連続するバスサイクルにおいてワードがデータライン上に配置される時間的な順序を選択してもよい。
他の実施の形態において、組み合わせられた複合ワードのアドレスを供給するために使用される異なるバスサイクルの一部は、アドレスを必要としないデータ、例えば読み取りデータ又は最初に開始アドレスが供給されたデータブロックからのデータを供給するために使用され、それにより、データ受信回路は、連続するアドレスを内部で計算することができる。これにより、所定のアプリケーションプログラムの実行中にデータ及びアドレスの両方を供給するために必要とされるバスサイクルの数が減少し、その結果、プログラムに関連する電力消費量が減少する。
他の実施の形態において、読み取りデータワードは、書き込みデータワードと共にバス上でパックされてもよい。読み取りデータワードは、前の読み取りアドレスに応じて生成される。従って、この実施の形態では、一緒にパックされる総てのデータワードにおいて連続するアドレスを供給する必要がない。これは、アドレスを供給するためのバスサイクルの数を低減させて、例えば新たなデータをバス上により早く配置できるようにするために又は後の読み取り操作のためのアドレス等の他のアドレスを供給するために使用されてもよい。
以下、本発明のこれらの目的及び他の目的並びに特徴を図面を使用して非限定的な態様において説明する。
図1は、複数のプロセッサ10a−dと、バスインタフェース12と、バス14と、複数のメモリ16a,bとを有する電子回路を示している。各プロセッサ10a−dは、アドレス出力Aと、データ出力Dと、制御入力/出力とを有している。バスインタフェース12は、アドレス出力及びデータ出力をバス14に結合し、バス14には、アドレス及びデータ情報を受け取るためにメモリ16a,bが結合されている。バス14は、複数のアドレスラインと、複数のn個のデータライン(例えば、n=64又はn=128個のデータライン)と、制御ラインとを備えている。
例示のため、プロセッサ10a−dは、データ出力のみを有するように示されているが、これらのプロセッサがバスインタフェース12に結合されるデータ入力を有し又はデータ入力/出力を有していてもよいことが理解されるべきである。プロセッサ10a−dが図示されているが、任意の他の種類のデータ処理回路が使用されてもよいことが理解されるべきである。同様に、例示のため、二つのメモリがバス14に接続されるように示されているが、必ずしも総てがメモリではなく、多くの他の回路がバス14に接続されていてもよく、又は、一つの回路だけがバス14に接続されていてもよいことが理解されるべきである。
動作時、プロセッサ10a−dは、データを生成するとともに、このデータをメモリ16,bのロケーションに書き込む。このため、プロセッサ10a−dは、書き込み要求を生成し、その一環としてアドレス及びデータをバスインタフェース12に対して出力する。バスインタフェース12は、バスサイクルで動作する。各バスサイクルにおいて、バスインタフェースは、データビットをバス14のn個のデータラインに対して並列に送る。同様に、バスインタフェースは、各バスサイクルにおいて一つのアドレスを送る。メモリ16a,bは、バス14からアドレスを受け取るとともに、これらのアドレスを使用してデータが書き込まれるロケーションを選択する。必要に応じて、インタフェース12は、競合する書き込み要求同士の間で調整を行い、異なるプロセッサ10a−dからのデータ及びアドレスを順序付ける。
書き込まれるべきデータのタイプに応じて、より多い又はより少ないビットをプロセッサ10a−dからバス14へ送らなければならない。制御出力時、プロセッサ10a−dは、一つのコードを出力して、例えば8ビット、16ビット、32ビット又は64ビットといったワードの関連するデータビットの数を示す。バスインタフェース12は、これらのコードを検査して、可能であれば複数の異なるプロセッサ10a−dからの複数のデータワードをパックする。即ち、バスインタフェースは、同じバスサイクルにおいて、異なるプロセッサ10a−dからのデータワードをバス14のn個のデータラインにより並列に出力する。例えば、二つのn/2長のデータワードが並列に接続されてもよく、又は、四つのn/4長データワードが並列に出力されてもよい。連続するバスサイクルにおいて、異なるワードの対応するアドレスが出力される。これが表Iに示されている。
表I バス占有例
バスサイクル番号 アドレス データ
1 A1 Da1 Da2 Dd1 Dd2
2 A4
3 A1’ Da1’Db1’Dc1’Dd1’
4 A2’
5 A3’
6 A4’
7 A2” Db1”Db2”Db3”Db4”
表Iは、多くの連続する(1−8の番号が付せられた)バスサイクルと、これらのサイクルにおいてバス14により出力されるアドレスと、これらのサイクルにおいてバス14のデータラインにより出力されるデータとを示している。一つのバスサイクルにおいて使用することができる第1のプロセッサ10aから出力されるデータは、Da1,Da2,Da3,Da4(各部分は、例えば、16ビット長)のラベルが付された四つの部分からなっているものとする。同様に、一つのバスサイクルにおいて使用することができる第2、第3、第4のプロセッサ10b−dからの出力データもそれぞれ、Db1,Db2,Db3,Db4及びDc1,Dc2,Dc3,Dc4及びDd1,Dd2,Dd3,Dd4のラベルがそれぞれ付された四つの部分からなっているものとする。
最初に、第1及び第4のプロセッサ10a,dはこれらが半サイズのデータワード(n/2ビット)を出力することを示し、次に、四つのプロセッサ10a−dはこれらが1/4サイズのデータワード(n/4ビット)を出力することを示し、次に、第2のプロセッサ10dはそれがフルサイズのデータワード(nビット)を出力することを示すものと仮定する。
番号1が付されたバスサイクルにおいて、バスインタフェース12は、第1及び第4のプロセッサ10a,dからの二つの半サイズのデータワードからのデータビットをバス14のn個のデータライン上に並列に配置する。これは、バスサイクル番号1におけるエントリにおいて部分Da1,Da2,Dd1,Dd2により表される。バスインタフェースは、連続するバスサイクル1,2において、第1及び第4のプロセッサ10a,dからのこれらのデータワードにおけるアドレスA1,A4を出力する(一つのアドレスがデータと同一のバスサイクルにおいて出力されるように示されているが、パイプライン処理に起因して、アドレス及びデータタイミング間において他の関係が与えられてもよい)。
番号3が付されたバスサイクルにおいて、バスインタフェース12は、プロセッサ10a−dからの四つの1/4サイズのデータワードからのデータビットをバス14のn個のデータライン上に並列に配置する。これは、バスサイクル番号3におけるエントリにおいて部分Da1’,Db1’,Dc1’,Dd1’により表される。バスインタフェースは、連続するバスサイクル3−6において、プロセッサ10a−dからのこれらのデータワードにおけるアドレスA1’,A2’,A3’,A4’を出力する。
番号7が付されたバスサイクルにおいて、バスインタフェース12は、第2のプロセッサ10bからのデータワードからのデータビットをバス14のn個のデータライン上に並列に配置する。これは、バスサイクル番号7におけるエントリにおいて部分Db1”,Db2”,Db3”,Db4”により表される。バスインタフェースは、バスサイクル7において、第2のプロセッサ10bからのこのデータワードにおけるアドレスA2”を出力する。
新たなデータがバス上に配置された各バスサイクルにおいてデータラインの総ての占有が示されているが、プロセッサ10a−dが不十分なデータを出力する場合には、n個のデータラインの総てを使用する必要はない。例えば、三つのn/4ビットデータワードがバス14のデータライン上に配置されてもよく、又は、ただ一つ若しくは二つのn/4ビットデータワードがバス14のデータライン上に配置されてもよい。同様に、総てのデータワードが同じサイズを有するように示されているが、実際には、互いにサイズが異なるデータワードが同じバスサイクルにおいてバス14のデータライン上に並列に配置されてもよい。即ち、例えば一つの半サイズ(n/2ビット)のデータワード及び二つの1/4サイズ(n/4ビット)のデータワード、又は、一つの半サイズ(n/2ビット)のデータワード及び一つの1/4サイズ(n/4ビット)のデータワードが同じバスサイクルにおいてバス14のデータライン上に並列に配置されてもよい。
実施の一形態において、装置は、一つのバスサイクルにおいて読み取りデータを供給する。このバスサイクルでは、書き込みアドレスが供給されるが、書き込みデータは供給されない。前述したように、異なるアドレスにおけるフルサイズ未満の書き込みデータワードが、一つのバスサイクルにおいて同時にバス14のデータライン上に配置され、また、これらの複合データワードにおけるアドレスが複数のバスサイクルにおいて順次にアドレスライン上に配置される。従って、バスのデータラインは、アドレスのうちの一つが供給されるバスサイクルと特定の関係を有するバスサイクルでは占有されるが、複数のアドレスが供給される他の一つ又は複数のバスサイクルと同じ特定の関係を有する少なくとも一つのバスサイクルでは解放されている。この実施の形態において、(先の読み取りアドレスに応じて供給された)読み取りデータは、この他のバスサイクル又はこれらの他のバスサイクルにおいてデータラインにより供給される。これが表Iaに示されている。
表Ia 読み取りデータにおけるバスサイクルの再使用
バスサイクル番号 アドレス データ
1 A1 Da1 Da2 Dd1 Dd2
2 A4
3 A1’ Da1’Db1’Dc1’Dd1’
4 A2’ R1
5 A3’
6 A4’ R2
7 A2” Db1”Db2”Db3”Db4”
この例において、番号4及び6が付されたバスサイクルは、バスのデータラインによって読み取りデータワードR1,R2を供給するために使用される。
図2は、異なるプロセッサ10a−dからのデータワードをバス14のデータライン上に並列に配置するために使用され得るバスインタフェース12のデータ部分の一例を示している。インタフェースは、制御回路20と、第1、第2、第3のマルチプレクサ22,23,24とを有している。マルチプレクサ22,23,24は、制御回路20によって制御され、制御回路20は、プロセッサ10a−dから制御信号を受け取るとともに、この制御信号をバス14により出力する。第1のマルチプレクサは、プロセッサ10a−dからのデータラインの四つのグループDa,Db,Dc,Ddのそれぞれに結合された入力部を有している。データラインの各グループは、四つのサブグループを有している(それぞれのサブグループが一つのラインにより示されているが、各サブグループが複数のライン(例えば8本又は16本のライン)を並列に有していてもよいことが理解されるべきである)。三つのグループDa,Db,Dcのそれぞれの最初の二つのサブグループからのラインは、第2のマルチプレクサ23に結合される。第3のマルチプレクサ24は、第1のマルチプレクサ22により出力されるデータラインのグループに結合される第1の入力部25aと、データラインの第2のグループに結合される第2の入力部25bとを有しており、データラインの第2のグループは、第2のマルチプレクサ23により出力される二つのサブグループと、第1の入力部25aからの二つのサブグループとを含んでいる。また、第3のマルチプレクサ24は、データラインの第3のグループに結合された第3の入力部を有しており、データラインの第3のグループは、入力データラインの四つのグループDa,Db,Dc,Ddのそれぞれの第1のサブグループに結合されている。第3のマルチプレクサ24は、データバス14のデータラインに結合される出力ライン26のグループを有している。
動作時、第1のマルチプレクサ22は、選択された一つのプロセッサ10a−dからのデータビットラインのグループDa,Db,Dc,Ddを、ビットライン25aにおいてその出力に結合する。第2のマルチプレクサ23は、三つのプロセッサ10a−cのうちの選択された一つからのデータビットラインの二つのサブグループを、第3のアルチプレクサ24の第2の入力部25bの二つのサブグループに対して結合する。第3のマルチプレクサ24は、その入力部25a−cの選択された一つからのデータビットラインをその出力部26に結合する。制御回路20は、プロセッサ10a−dからの制御信号に応じて、マルチプレクサ22,23,24による選択を制御する。
プロセッサ10a−dのデータラインのグループDa,Db,Dc,Ddのうちの一つによりフルサイズ(nビット)のデータワードが供給されることをプロセッサ10a−dからの制御信号が示している場合、制御回路20は、データラインのそのグループからの信号を出力ライン25aへと送るように第1のマルチプレクサに信号を送る。この場合、制御回路20は、第1のマルチプレクサ22の出力部25aからの信号を出力ライン26へと送るように第3のマルチプレクサ24に信号を送る。
プロセッサ10a−dのデータラインのグループDa,Db,Dc,Ddのそれぞれにより四つの1/4サイズ(n/4ビット)のデータワードが供給されることをプロセッサ10a−dからの制御信号が示している場合、制御回路20は、総てのプロセッサからのデータラインの各グループDa,Db,Dc,Ddの一つの1/4ワードを含むサブグループに結合される第3の入力部25cからの信号を送るように第3のマルチプレクサ24に信号を送る。
プロセッサ10a−dのデータラインのグループDa,Db,Dc,Ddのうちの二つにより二つの半サイズ(n/2ビット)のデータワードが供給されることをプロセッサ10a−dからの制御信号が示している場合、制御回路20は、これらのグループのうちの一つ(それが二つのグループのうちの一方である場合には、第4のグループ10d)からの信号を送るように第1のマルチプレクサに信号を送る。また、制御回路20は、他の半分のワードを含むデータラインのサブグループからの信号を送るように第2のマルチプレクサ23に信号を送る。この場合、制御回路20は、第1及び第2のマルチプレクサ22,23の出力からの半サイズのワードを組み合わせるその第2の入力25bからの信号を送るように第3のマルチプレクサ24に信号を送る。
図3は、プロセッサ10a−dからのアドレスを送るバスインタフェース12の一部を示している。インタフェースは、プロセッサ10a−dによって出力されるアドレスを記憶するための領域30a−dと、領域30a−dからのアドレスのうちの選択された一つをデータバス14のアドレスラインへ送るためのアドレスマルチプレクサ32とを有している。プロセッサ10a−dのデータラインのグループDa,Db,Dc,Ddのうちの一つによりフルサイズ(nビット)のデータワードが供給されることをプロセッサ10a−dからの制御信号が示している場合、制御回路20は、そのプロセッサ10a−dからのアドレスA1,A2,A3,A4を送るようにアドレスマルチプレクサに信号を送る。プロセッサ10a−dのデータラインのグループDa,Db,Dc,Ddのうちの二つにより二つの半サイズ(n/2ビット)のデータワードが供給されることをプロセッサ10a−dからの制御信号が示している場合、制御回路20は、これらのプロセッサ10a−dからのアドレスA1,A2,A3,A4からの二つのアドレスを連続するバスサイクルにおいて連続的に送るようにアドレスマルチプレクサに信号を送る。プロセッサ10a−dのデータラインのグループDa,Db,Dc,Ddのうちの四つにより四つの1/4サイズ(n/4ビット)のデータワードが供給されることをプロセッサ10a−dからの制御信号が示している場合、制御回路20は、これらのプロセッサ10a−dからの四つのアドレスA1,A2,A3,A4を連続するバスサイクルにおいて連続的に送るようにアドレスマルチプレクサに信号を送る。
制御回路20は、一つのコードをバス14に対して出力することにより、パッキングの形態が使用されるメモリ16a,bに信号を送る。
バスからのデータに応じて、メモリは、このコードに従ってバス14からのデータをアンパックする。好ましくは、アドレスが送られる順序は、対応するデータワードがデータライン上に配置される位置に対応しており、そのため、メモリは、アドレスが適用できるデータがどれであるかが自動的に分かる。更なる実施の形態において、制御回路は、各バスサイクルにおいてそのバスサイクルでのアドレスを適用できるのがデータラインのどの部分であるかを示すために、バス14に対して信号を出力する。
これまでに説明してきた実施の形態では、どのプロセッサ10a−dからデータワードがデータバス14のデータラインのうちのどれに対して送られたかに関して特定の選択がなされなかった。本発明の一つの態様において、制御回路20は、どのプロセッサからデータワードがデータラインのうちのどれに対して送られるかを決定するための選択を行う。制御回路は、この選択を案内することにより、論理レベル変化を受けなければならないバス14のデータラインの数を最小にする。これによりエネルギが節約される。なぜなら、バス14のデータラインは一般的に非常に長く、そのため、論理レベル変化を実現するにはかなりの量のエネルギを必要とするからである。表IIは、二つの半サイズ(n/2ビットワード)の可能な配置を示している。
表II
第1のビットライン 第2のビットライン
W1 W2
W2 W1
前のバスサイクルにおいて、第1のビットラインがビットV1を伝え、第2のビットラインがビットV2を伝えた場合、第1の配置における論理レベル変化の数は、
h(W1,V1)+h(W2,V2)
であり(関数「h」はハミング距離を示している)、第2の配置における論理レベル変化の数は、
h(W2,V1)+h(W1,V2)
である。
制御回路20は、どの配置が最小論理レベル変化をもたらすのかを決定してデータ接続を制御し、それにより、最小の変化数を伴う配置に従ってワードW1,W2が配置される。それに応じて、ワードW1,W2のアドレスが供給される。
認識されるように、データワードの位置の選択は、ワードの「より良好な」配置の決定を伴っており、この決定は、バス14のデータラインにおけるより少ない論理レベル変化を伴っている。そのような決定は、様々な方法により行うことができる。
理想的には、可能な最良の配置が選択されるが、多くの異なるバスサイクルに亘って平均化されて論理レベル変化の数が減少されるように選択が行われる場合には、利得が既に実現される。最良の可能な配置は、例えばバスインタフェースの内部において連続的に総ての可能な配置を形成して、各配置と現在のバス上のデータとの間のハミング距離を決定するとともに、最小距離を有する配置に戻った後においてのみその配置をバスに対して出力することにより選択することができる。二つの半サイズのワードの場合には、二つ(2!)の配置が可能であり、四つの1/4サイズのワードの場合には、24個(4!)の配置が可能である。
尚、最小論理レベル変化を伴う配置を見つけるために、総ての可能な配置を試す必要はない。例えば、二つの特定のデータワードの交換のみが異なる第1及び第2の配置がバス14のデータライン上のデータと比較され且つ第1の配置が第2の配置よりも良好であることが分かった場合には、特定のデータワードを第2の配置と同じ場所に有する更なる配置を更に考慮する必要がなくなる。
(図2のインタフェースの場合のように)バスインタフェースが総ての可能な配置を生み出すことができない場合には、インタフェースが生み出すことができる総ての配置が試みられてもよい。見つけられる配置が最良の配置ではないと考えられる場合でも、見つけられる配置は、概して、インタフェースにより許可される配置の任意の固定された選択よりも少ない論理レベル変化を伴っている。
図4は、制御回路20が論理レベル変化の数を低減すべく配置を選択するようになっているデータインタフェースの一部を示している。この実施の形態において、入力部40a−dはプロセッサ(図示せず)からの情報を供給する。制御回路20は、その情報を受け取るとともに、それを使用することにより、各プロセッサからの情報が出力されるべき出力バス14の位置を計算する。その後、制御回路20は、計算された位置に従ってデータを出力するようにマルチプレクサ42,44,46,48を制御する。その後、制御回路20は、異なるプロセッサからのデータのアドレスを連続的に出力する。従って、最適な配置の検索においてマルチプレクサ42,44,46,48を使用する必要がない。マルチプレクサ42,44,46,48からのデータは、バスへ送られる前にレジスタに記憶されてもよく、これにより、制御回路20は、前のデータがバスへ出力される間に次の配置を選択することができる。
制御回路20は、例えば、多くの可能な配置に関与するレベル変化の数を連続的に計算して、最適なレベル変化数を選択することにより、最適な配置を計算してもよい。総ての可能な配置の一連の比較に代わる手段として、回路は、並列形式の比較を使用してもよい。この比較もまた、最良の可能な配置を見出すことを確実にするか、又は、見つけられる配置がどちらかと言えば他の配置よりも良好であるという意味においては不完全ともなり得る。
別個の態様として、図4の実施の形態では、各入力部40a−dは、各プロセッサ(図示せず)が総ての入力部に対して情報を供給し、異なる重要度レベルのビット群が異なる入力部に対して供給されるように編成される。即ち、入力部40a−dは、各プロセッサ(図示せず)が情報を入力部40a−dのうちの対応する一つに対して供給するようには構成されない。第1の入力部40aでは、各プロセッサは、情報の最小サブワード(例えば8ビット幅又は16ビット幅、この場合、それぞれの一つのラインは8ビット又は16ビットにおけるラインを示している)を供給し、この情報からサブワードがバス上に配置されてもよい。第2の入力部40bにおいて、各プロセッサは、次に大きなサブワードに含まれる更なるビット(例えば、第1の入力部40aからの情報と共に16ビットサブワードを形成する次の8ビット、又は、第1の入力部40aからの情報と共に32ビットサブワードを形成する次の16ビット)を供給してもよい。第3及び第4の入力部40c,dにおいて、プロセッサはワードの更なる部分を供給してもよい。
制御回路20は、必要とされるワードサイズに応じてマルチプレクサ42,44,46,48を制御する。フルワードサイズが必要とされる場合には、制御回路により、各マルチプレクサ42,44,46,48は、同じプロセッサからのデータを対応する入力部40a−dから送る。ワードサイズが半分の二つのワードが必要とされる場合には、制御回路20により、第1及び第2のマルチプレクサ42,44が第1の選択されたプロセッサからのデータを第1及び第2の入力40a,bから送り、また、制御回路20により、第3及び第4のマルチプレクサ46,48が第2の選択されたプロセッサからのデータを第1及び第2の入力40a,bから送る。1/4サイズの四つのワードが必要とされる場合には、制御回路20により、各マルチプレクサ42,44,46,48は、対応する選択されたプロセッサからのデータを対応する一つの入力部40a−dから送る。
図示の実施の形態は単なる一例であり、本発明の範囲を限定しないことが認識される。多くの他の実施の形態が可能である。例えば、一つ又は複数のプロセッサが他のタイプのデータ処理ユニット、例えばI/Oインタフェース、専用の処理ハードウェア(例えば、信号符号化ハードウェア若しくは信号復号化ハードウェア等)又はメモリに取って代えられてもよい。メモリ16a,bは、データ受信ユニットとしてのバスのみに結合されるように示されているが、メモリ16a,bは、データをバスに対して書き込むために接続されていてもよい。この場合、メモリは、プロセッサ10a−dに関して示されているように結合されてもよい。
同様に、本発明は、四つのデータ処理ユニットの使用に限定されず、また、データ処理ユニットの数は、必ずしもデータバス上に並列に配置することができるサブワードの最大数には一致しない。更に多くのデータ処理ユニットが存在していてもよい。この場合、制御回路20は、バスへのアクセスを調整し、それにより、最大数のプロセッサからのサブワードがバス上に並列に配置される場合であっても、データが一つ又は複数のプロセッサからバス上に全く配置されないようにしてもよい。
更なる実施の形態において、制御回路は、データ処理ユニットがデータを供給するときに用いるワードサイズに応じてこれらのデータ処理ユニットのうちのどれがバスにアクセスするのかを調整するようになっていてもよい。例えば、四つのデータ処理ユニットが1/4ワードを供給し且つ二つのデータ処理ユニットが1/2ワードを供給する場合、制御回路は、1/4ワードと一緒に四つのデータ処理ユニットへのアクセスを許可し、又は、1/2ワードと一緒に二つのデータ処理ユニットへのアクセスを許可することにより、パッキングを促進することが好ましい。即ち、調整中に、制御回路20は、ワードをデータバスに対して供給しようとするデータ処理ユニットのワードサイズから一つのワードサイズを選択するとともに、選択されたサイズのワードを供給するデータ処理ユニットへのアクセスを許可することが好ましい。
他の実施の形態において、回路は、バスのデータライン上の異なるサイズのワード、例えば、16ビットの二つのワードと32ビットの一つのワードとを組み合わせるようになっている。これには、更に複雑な多重化構造が必要であることが認識される。しかしながら、この場合、異なるデータ処理ユニット間での調整の一環として一つのワードサイズを選択する必要はない。
バスに結合された各データ処理ユニット(例えばプロセッサ10a−d又はメモリ)が異なるサイズのデータワードを出力できる機能を有していることが好ましいが、本発明から逸脱することなく、データ処理ユニットの一部若しくは全部が、それ自体の特定の予め決められたサイズのデータワード、又は、バス14によって処理できるサイズの所定のサブセットのデータワードのみを出力することができてもよいことが理解される。
データ処理ユニットがそれ自体の特定の予め決められたサイズのデータワードのみを出力できる場合、制御回路20は、データを一緒に出力するデータ処理ユニットのサブセットに従って(又は、特に、これらのデータ処理ユニットの特定のワードサイズに従って)パッキングを選択する。例えば、16ビットワードを出力する四つのデータ処理ユニットが共にアクティブ(稼動中)である場合、制御回路20は四つの16ビットワードのパッキングを選択してもよく、また、二つの他のデータ処理ユニットが32ビットワードを出力する場合、制御回路20は二つの32ビットワードのパッキングを選択してもよい。同様に、総てのメモリ16a,bが総てのワードサイズを処理できる必要はない。いくつかの実施の形態では、異なるサイズのワードが異なるメモリのみに対して書き込まれてもよく、又は、一部のメモリが複数サイズのワードを受け入れるのに対し、他のメモリが一つのサイズのみのワードを受け入れ、一つのサイズのみのワードだけがこれらのメモリに適合させられてもよい。
図5aは、一つのワードサイズのみを処理することができるメモリ16a,bの実施の一形態の一例を示している。メモリは、マルチプレクサ50と、メモリ回路52と、ワード選択回路54とを有している。バスからのデータラインは、マルチプレクサ50の入力部に結合されている(四つのラインが示されており、各ラインは例えば8データライン又は16データラインを表している)。マルチプレクサ50の出力部は、メモリ回路52のデータ入力部に結合されている。バスからのアドレスラインは、メモリ回路52のアドレス入力部に対して直接に(多重化を伴うことなく)結合されている。ワード選択回路54は、マルチプレクサ50を制御する。
動作時、ワード選択回路54は、データラインにより並列に供給されるデータのために四つの連続するアドレスが供給されることを示す信号を受け取る。この場合、ワード選択回路54により、マルチプレクサ50が異なるサブワードをデータラインからデータ入力部へと連続的に送り、それにより、これらのサブワードは、連続的に供給されるアドレスの影響下でメモリ回路52に書き込まれる。例えば、所定の一連のサブワード選択が使用されてもよく、これにより、バスクロックの影響下で選択回路54が周期動作する。しかし、異なる実施の形態においては、ワードをパックする回路から選択信号が供給されてもよい。
図5bは、複数のワードサイズを処理できるメモリ16a,bの実施の一形態の一例を示している。この実施の形態では、データ入力部の四つ(例えば、8ビット又は16ビット)のグループDa,Db,Dc,Ddを有するメモリ回路56が使用される。この場合、第1のグループDaは1/4ワードデータを受け取る機能を果たし、第1及び第2のグループDa,Dbは協働して1/2ワードデータを受け取る機能を果たし、総てのグループDa,Db,Dc,Ddは全ワードデータを受け取る機能を果たす。メモリ回路56の幅選択入力部Wは、1/4ワード、1/2ワード、全ワードのどれが書き込まれるのかを選択するために使用される。
バスのデータラインと第1及び第2のグループDa,Dbのそれぞれとの間には、二つのマルチプレクサ51a,bが設けられている。ワード選択回路54は、マルチプレクサ51a,bを制御する。バスからのデータラインの二つのグループ(これらのグループを象徴するように単一のラインが示されている)は、第3及び第4の入力部Dc,Ddのそれぞれに対して結合されている。
動作時、ワード選択回路54は、1/4ワード、1/2ワード又は全ワードのどれがバスにより供給されるのかを示す表示を受け取るとともに、それに応じてこの表示をメモリ回路56へ送信する。1/4ワードの場合、メモリ回路56は、その入力部の第1のグループDaのみから読み取りを行うとともに、ワード選択回路54は、入力部のこのグループに結合されたマルチプレクサ51aを制御して、バスのデータラインの異なるグループからのデータを連続的に送るようにする。1/2ワードの場合、メモリ回路56は、その入力部の第1及び第2のグループDa,Dbのみから読み取りを行うとともに、ワード選択回路54は、入力部のこれらのグループに結合されたマルチプレクサ51a,51bを制御して、バスのデータラインの異なるグループ対からのデータを連続的に送るようにする(例えば、最初に二つの所定のグループからのデータを送り、その後に残りのグループからのデータを送る)。全ワードの場合、メモリ回路56は、その入力部の総てのグループDa,Db,Dc,Ddの読み取りを行うとともに、ワード選択回路54は、マルチプレクサ51a,51bを制御して、バスのデータラインの異なるグループ対からのデータを入力部の対応するグループに対して送るようにする。
メモリの代わりに他のデータ受信回路をバスに結合してパックデータを受け取ってもよいことが理解される。また、データ受信回路は、バスとマルチプレクサ50又は51a,bとの間に結合されたレジスタ(図示せず)を有していてもよいことが理解される。この場合、バスインタフェース12は、パックされたデータがレジスタに記憶されるまでの間だけ、バスのデータラインを駆動するようになっており、その間に、複数のアドレスを使用して、そのサイクルにおいて供給されるデータのためのアドレスを供給してもよい。このようにすると、バスを駆動させるための電力消費量が減少する。
インタフェース12は、対応するデータ処理ユニットに関連付けられた対応するマルチプレクサ/バスドライバによって実現されてもよいことが理解される。
図6は、実施の一形態を示しており、この実施の形態において、データ処理ユニット10a,d(二つしか示されていないが、任意の数の同様に接続されたユニットが存在していてもよい)は、マルチプレクサ/バスドライバ60a,bを介してバス14のデータラインに結合されたデータ出力部と、アドレスドライバ62a,bを介してバス14のアドレスラインに結合されたアドレス出力部とを有している(導体のグループ、例えば8個又は16個のデータ導体からなる複数のグループ及び32個のアドレス導体からなる一つのグループを象徴するように単一のバスラインが示されている)。データ処理ユニット10a,dは、制御回路20に結合された制御接続部を有している。制御回路20は、様々なデータ処理ユニット10a,dのマルチプレクサ/バスドライバ60a,b及びアドレスドライバ62a,bに結合された制御接続部を有している。
図6aは、マルチプレクサ/バスドライバの実施の一形態の一例を示している。この図において、データ処理ユニット(図示せず)からのデータラインのグループ600a−dは、単一のラインとして示されている。同様に、バス(図示せず)に結合されたデータラインのグループ602a−dも、単一のラインとして示されている。マルチプレクサ/バスドライバは、一つのデータ処理ユニットからのデータラインの第1のグループ600aをバスからのデータラインの第1、第2、第3、第4のグループ602a−dのそれぞれに対して結合するトライステートドライバ604(出力状態が論理ハイ、論理ロー、ハイインピーダンスである)の四つのグループを有している。マルチプレクサ/バスドライバは、一つのデータ処理ユニットからのデータラインの第2のグループ600bをバスからのデータラインの第2、第4のグループ602b,dのそれぞれに対して結合するトライステートドライバ604の二つのグループを有している。マルチプレクサ/バスドライバは、一つのデータ処理ユニットからのデータラインの第3及び第4のグループ600c,dをバスからのデータラインの第3、第4のグループ602c,dのそれぞれに対して結合するトライステートドライバ604の二つのグループを有している。制御回路は、もしあるとすれば、トライステートドライバ604のうちのどれがアクティブになるのかを制御し、それにより、データ処理ユニットからのデータラインの第1のグループ600aからの1/4データワードをバスからのデータラインのグループ602a−dのうちの任意の選択された一つに対して送ることができるようにするとともに、データ処理ユニットからのデータラインの第1及び第2のグループ600a,bからの1/2データワードを、バスからのデータラインの第1及び第2のグループ602a,bに対して又はバスからのデータラインの第3及び第4のグループ602a,bに対して送ることができるようにし、また、データ処理ユニットからのデータラインの総てのグループ600a−dからのフルサイズデータワードを、バスからのデータラインの対応するグループ602a−dに対して送ることができるようにする。
動作時、制御回路20は、データ及び付随するアドレスをバス14へ書き込むためのアクセス要求をデータ処理ユニット10a,dから受け取る。制御回路20は、一つのデータワードをバス14上に配置するための一つのデータ処理ユニット、又は、フルサイズデータワードよりも少ない組み合わせをバス14上に配置するための複数のデータ処理ユニットを選択する。制御回路20は、マルチプレクサ/バスドライバ60a,bのうちのどれが関連するデータ処理ユニット10a,dからバス14のデータラインへとデータを駆動するべきかについての信号をマルチプレクサ/バスドライバ60a,bに対して送り、また、フルサイズよりも小さいワードの場合には、マルチプレクサ/バスドライバ60a,bのうちのどれが関連するデータ処理ユニット10a,dからバスのデータラインのグループのうちのいずれかへとデータを駆動するべきかについての信号をマルチプレクサ/バスドライバ60a,bに対して送る。データの組み合わせの場合、制御回路20は、バス14のデータラインのそれぞれの異なるグループに関して同時にそうするようにマルチプレクサ/バスドライバ60a,bに対して信号を送り、それにより、この場合には、異なるプロセッサからのフルサイズよりも小さいワードがバス14上において組み合わせられる。
また、制御回路20は、関連するデータ処理ユニット10a,dからバス14のアドレスラインへとアドレス情報を駆動するようにアドレスドライバ62a,bに対して信号を送る。制御回路は、バス上に一緒に配置されるデータワードのためのアドレス情報と連続してそうするようにマルチプレクサ/バスドライバ60a,bに対して信号を送る。
この実施の形態において、データバス上におけるワードの位置の選択は、レベル変化の数を最小限に抑制するように最適化されない。最適化が望ましい場合には、データ処理ユニット10a,dの少なくとも一部からのデータ、及び、バスラインからのデータも制御回路に対して供給され、また、制御回路は、レベル変化の数を低減させるように、データの組み合わせられた配置において位置を選択するようになっている。その後、制御回路20は、対応する制御信号をマルチプレクサ/バスドライバ60a,bに対して供給することにより、選択された組み合わせを達成する。
また、バスのデータラインへのアクセスを要求して読み取りデータを戻すために、メモリ16aが制御回路20に対して結合されていてもよい。この目的のため、制御回路20は、データラインが書き込みデータを含まないままに保たれているバスサイクルにおいて、データラインへのアクセスをメモリ16aに許可することが好ましい。これは、対応するアドレスが、フルサイズよりも小さい他のデータワードと共に供給されたフルサイズよりも小さいデータワードに対して適用されるからである。
一つの実施の形態において、データ処理ユニット10a,bからメモリ16aへの読み取り要求のそれぞれには、バス14上において、データ処理ユニット10a,b又は読み取り要求の識別表示が伴い、また、メモリ16aは、その識別表示を読み取りデータと共にバス14上に戻す。この場合、要求しているデータ処理ユニットは、その識別表示とそれ自体の読み取り要求からの識別情報とを比較して、その識別情報が一致する場合には読み取りデータを得る。あるいは、制御回路20は、今まで応答がない読み取り要求を発したデータ処理ユニット10a,bの識別表示のキュー(待ち行列)を維持し、読み取りデータをバス上に配置することができると、読み取りデータを供給するメモリユニットへ最も古い応答がない読み取り要求を発したデータ処理ユニット10a,bに対して信号を送信する。即ち、このデータ処理ユニットが、バス14から読み取りデータを読み取ることになる。
これまで、パッキング書き込みデータ、即ち、書き込み要求においてアドレスと共に供給されるデータに関して本発明を説明してきたが、本発明は、読み取りデータに対しても適用することができ(読み取り要求においてアドレスに応じて供給する)及び/又は読み取りデータと書き込みデータとの組み合わせに対しても適用することができる。無論、バスのフルサイズよりも小さい読み取りデータワードを書き込みデータ及び/又は単なる任意のデータとしての他の読み取りデータと共にパックすることもできる。違いは、読み取りアドレスを予めバスに対して供給しなければならず、また、当該読み取りアドレスを読み取りデータと共に供給する必要がないという点である。
図7は、更なる実施の形態を示しており、この実施の形態において、メモリ16a,bは、読み取りデータの利用可能性を示すためにインタフェース12に結合される制御出力部及びデータ出力部を有している。インタフェース12は、メモリ16a,bの制御出力部が制御回路20(別個に図示せず)に結合され且つメモリ16a,bのデータ出力部がマルチプレクサ(別個に図示せず)の入力部に結合されている点を除き、先に開示した任意の構造を有していてもよい。インタフェース12内において、メモリの出力部は、バス上に配置されるフルサイズよりも小さいワードの組み合わせを選択する制御回路(別個に図示せず)に対して結合されている。その後、制御回路により、選択された配置がバスのデータライン上において達成される。書き込みデータが関与している限り、制御回路により、関連するアドレスは、連続的に、例えば対応するデータがデータライン上に配置される順序に従って所定の順序で、バスのアドレスライン上に配置される。読み取りデータに対応するタイムスロットにおいては、アドレスをバス上に配置する必要がないが、無論、他の読み取り要求を発するためにアドレスラインが使用されてもよい。
表III は、書き込みデータWDのワード及び読み取りデータRDのワードがバス14上に配置される一例を示している。バスサイクル3において明らかなように、書き込みデータの二つの1/4ワードWDa1’,WDc1’及び読み取りデータの二つの1/4ワードRDb1’,RDd1’が共にバス14のデータライン上に配置される。バスサイクル3,5においては、書き込みデータのためのアドレスが供給される。
表III バス占有の更なる例
バスサイクル番号 アドレス データ
1 A1 WDa1 WDa2 WDd1 WDd2
2 A4
3 A1’ WDa1’RDb1’WDc1’RDd1’
4 X
5 A3’
6 X
7 A2” WDb1”WDb2”WDb3”WDb4”
尚、読み取りデータに関しては読み取りアドレスを供給する必要がない(番号4,6が付されたバスサイクルにおいてXで示されている)。これは、データを読み取る前に読み取りアドレスが前もって供給されているからである。制御回路は、例えば対応するメモリから今まで応答がない読み取り要求のキューからの最も古い読み取り要求に関する情報に基づいて、読み取りデータワードの対象がどのデータ処理ユニットであるかをデータ処理ユニットに対して知らせるようになっていてもよい。尚、上記キューにおいては、要求を発したデータ処理ユニットが記録される。
実施の一形態においては、新たな読み取り要求のために読み取りアドレスを供給するべく、アドレスを伴わないバスサイクルが使用されてもよい。他の実施の形態においては、これらのバスサイクルが省略される。例えば、表III においては、バスサイクル4,6が省略され、それにより、サイクル3とサイクル6との間には、データワードがバス上に配置される中間のバスサイクルが一つしか存在しない。この実施の形態において、制御回路20は、各アドレスごとに一つの信号をメモリ16a,bに対して供給し、また、パックされたデータワード中のフルサイズよりも小さいデータワードのうちのどれに対してアドレスが適用されるかを知らせるようになっていることが好ましい。パックされたデータワード中に読み取り結果が含まれている場合、制御回路20は、任意的に、パックされたデータワード中のフルサイズよりも小さいデータワードのうちのどれが読み取り要求の結果であるのかを示すための信号をプロセッサ10a−dに対して供給するようになっており、それにより、プロセッサは読み取り結果を選択することができるが、無論、回路にマルチプレクサを設け、このマルチプレクサにより、制御回路20は、パックされたワードからの読み取り結果が読み取り要求を発したプロセッサに対して供給され、その結果、読み取り結果が得られるようにすることができてもよい。
尚、前述した実施の形態は、例示的なものであり、本発明を限定するものではなく、また、当業者であれば、添付の請求項の範囲から逸脱することなく、多くの他の実施の形態を想起することができる。請求項において、括弧内の任意の参照符号は、請求項を限定するものと解釈されるべきではない。用語「備える(含む)(comprising)」は、請求項中に記載された要素又はステップ以外の要素又はステップの存在を排除しない。要素に先行する用語「一つの(a,an)」は、そのような要素の複数の存在を排除するものではない。いくつかの手段を列挙している装置の請求項において、これらの手段のうちのいくつかは、ハードウェアの一つの同じアイテムによって具現化することができる。特定の手段が互いに異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせを有利に使用できないことを示すものではない。
電子回路を示している。 バスインタフェースの一部を示している。 バスインタフェースの更なる一部を示している。 バス接続の一部を示している。 メモリを示している。 更なるメモリを示している。 更なる電子回路を示している。 マルチプレクサ/ドライバを示している。 更なる電子回路を示している。

Claims (13)

  1. データ出力部を有する複数のデータ処理ユニットであって、前記データ処理ユニットのうちの少なくとも一部がアドレス出力部を有している複数のデータ処理ユニットと、
    アドレスライン及びデータラインを有し、前記データラインが最大でバスサイクルの最大ビット数までの同時転送をサポートするバスと、
    前記データ処理ユニットに結合されるとともに、連続するアクセスサイクルにおいて前記バスへのアクセスを制御するように構成されているバスコントローラと、
    を備え、
    前記バスコントローラは、
    対応する前記データ処理ユニットからの前記最大ビット数よりも少ない複数のデータワードからのデータビットを同一のバスサイクルにおいて前記データライン上に組み合わせて配置するように構成されており、
    対応する前記データ処理ユニットが対応する複数の前記データワードのために供給する書き込みアドレスが、複数の各バスサイクルにおいてアドレスライン上に配置され、前記書き込みアドレスの各位置は、対応する前記データワードがデータライン上に配置される各位置に依存することを特徴とする電子データ処理回路。
  2. 前記データ処理ユニットは、可変ワードサイズをサポートし、前記バスコントローラは、前記データライン上に配置される前記複数のデータワードにおけるワードの数を、前記データ処理ユニットにより供給される一つ又は複数のワードサイズに適合させることを特徴とする請求項1に記載の電子データ処理回路。
  3. 前記バスコントローラは、複数のワードのビットを前記データライン上に配置する際に論理レベルを変化させるデータラインの数を考慮する評価に依存して、複数のワードのどのビットが前記同一のバスサイクルにおいてどのデータライン上に配置されるかについての配分を選択するように構成されており、前記バスコントローラは、少なくとも二つの可能な配分の中から、論理レベルを変化させるデータラインの数を最小にする配分を選択することを特徴とする請求項1に記載の電子データ処理回路。
  4. 前記バスコントローラは、前記データライン上の複数のワードの配置の組み合わせから前記配分を選択することを特徴とする請求項3に記載の電子データ処理回路。
  5. 前記バスコントローラにより、対応する前記データ処理ユニットが対応する前記複数のデータワードのために供給するアドレスは、連続するバスサイクルにおいて、対応するワードがデータライン上に配置される位置にアドレスの位置が依存する順序で前記アドレスライン上に配置されることを特徴とする請求項4に記載の電子データ処理回路。
  6. 前記データ処理ユニットのうちの少なくとも一つがメモリユニットであり、前記バスコントローラは、同一のバスサイクルにおいてデータライン上に組み合わせて配置される前記複数のデータワード間に、利用可能時に前記メモリユニットにより生成される読み取り結果を含めるように構成されていることを特徴とする請求項1に記載の電子データ処理回路。
  7. 前記コントローラは、対応する前記複数のデータワードのためにアドレスが前記アドレスライン上に配置される複数の各バスサイクルにおけるバスサイクルの数を調整するように構成されており、前記数は、前記複数のデータワード中に含められる読み取り結果の更なる数に依存して調整されることを特徴とする請求項6に記載の電子データ処理回路。
  8. 前記バスに結合されたデータ受信回路を備え、前記データ受信回路は、前記アドレスラインを介して供給される単一開始アドレスを使用した前記バスを介した複数のバスサイクルデータ転送を処理するように構成されており、前記バスコントローラは、対応する前記データ処理ユニットが対応する前記複数のデータワードのために供給するアドレスを、複数のバスサイクルデータ転送に対応するバスサイクルにおいて前記アドレスライン上に配置するように構成されており、前記複数のバスサイクルデータ転送がアドレス転送を伴わないことを特徴とする請求項1に記載の電子データ処理回路。
  9. 記バスコントローラは、ワードを前記データライン上に配置する際に論理レベルを変化させるデータラインの数を考慮する評価に依存して、前記データ処理ユニットからのワードが前記バスの前記データライン上に配置される時期及び/又は位置についての配分を選択するように構成されており、前記バスコントローラは、少なくとも二つの可能な配分の中から、論理レベルを変化させる前記データラインの数を最小にする配分を選択することを特徴とする請求項1に記載の電子データ処理回路。
  10. 前記バスコントローラは、前記データライン上に並列に配置される複数のワードの配分を選択するように構成されていることを特徴とする請求項9に記載の電子データ処理回路。
  11. 前記バスコントローラは、前記データライン又は前記データラインのサブセット上に直列に配置される複数のワードの順序を選択するように構成されていることを特徴とする請求項9に記載の電子データ処理回路。
  12. ワードサイズが可変な複数のデータワードとそれらのデータワードのためのアドレスとを供給するステップと
    前記複数のデータワードのうちの複数のデータワードが最大ワードサイズよりも小さいワードサイズを有している場合に、最大ワードサイズよりも小さい複数のデータワードからのデータビットを同一のバスサイクルにおいてバスのデータライン上に配置するステップと
    複数の各バスサイクルにおいて、対応する複数のデータワードのためのアドレスを前記バスのアドレスライン上に配置するステップであって、前記書き込みアドレスの各位置は、対応する前記データワードがデータライン上に配置される各位置に依存するステップと
    含むことを特徴とするデータ処理方法。
  13. ードを前記データライン上に配置する際にその論理レベルが変化するデータラインの数を考慮して、前記データラインに亘る及び/又は前記データワードが前記バス上に配置される時間シーケンスに亘るデータワードの配分を選択し、前記配分は、少なくとも二つの可能な配分の中から論理レベルを変化させるデータラインの数を最小にするように選択するステップと
    選択された配分に従って前記バスの前記データライン上にデータワードを配置するステップと
    を更に含むことを特徴とする請求項12に記載のデータ処理方法。
JP2006539021A 2003-11-13 2004-11-03 パックワードをバスを介して送信する電子データ処理回路 Expired - Fee Related JP4621686B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03104176 2003-11-13
PCT/IB2004/052281 WO2005048115A2 (en) 2003-11-13 2004-11-03 Electronic data processing circuit that transmits packed words via a bus

Publications (2)

Publication Number Publication Date
JP2007511828A JP2007511828A (ja) 2007-05-10
JP4621686B2 true JP4621686B2 (ja) 2011-01-26

Family

ID=34585891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006539021A Expired - Fee Related JP4621686B2 (ja) 2003-11-13 2004-11-03 パックワードをバスを介して送信する電子データ処理回路

Country Status (8)

Country Link
US (1) US7480756B2 (ja)
EP (1) EP1685495B1 (ja)
JP (1) JP4621686B2 (ja)
KR (1) KR101034514B1 (ja)
CN (1) CN100547569C (ja)
AT (1) ATE417318T1 (ja)
DE (1) DE602004018371D1 (ja)
WO (1) WO2005048115A2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100590612C (zh) * 2005-02-07 2010-02-17 Nxp股份有限公司 数据处理系统和高速缓存替换方法
CN101263465B (zh) 2005-09-14 2011-11-09 皇家飞利浦电子股份有限公司 用于总线仲裁的方法和系统
US7610417B2 (en) * 2005-11-30 2009-10-27 Rambus Inc. Data-width translator coupled between variable-width and fixed-width data ports and supporting multiple data-width configurations
US10394735B2 (en) * 2017-01-09 2019-08-27 Nanya Technology Corporation Comparative forwarding circuit providing first datum and second datum to one of first circuit and second circuit according to target address
CN114579491A (zh) * 2022-01-28 2022-06-03 新华三技术有限公司合肥分公司 一种集成电路总线复用装置以及网络设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4447878A (en) * 1978-05-30 1984-05-08 Intel Corporation Apparatus and method for providing byte and word compatible information transfers
JPS5727330A (en) * 1980-07-25 1982-02-13 Hitachi Ltd Process control device
US4667305A (en) 1982-06-30 1987-05-19 International Business Machines Corporation Circuits for accessing a variable width data bus with a variable width data field
US4841435A (en) * 1986-10-29 1989-06-20 Saxpy Computer Corporation Data alignment system for random and block transfers of embedded subarrays of an array onto a system bus
US4878166A (en) * 1987-12-15 1989-10-31 Advanced Micro Devices, Inc. Direct memory access apparatus and methods for transferring data between buses having different performance characteristics
EP0408810B1 (en) * 1989-07-20 1996-03-20 Kabushiki Kaisha Toshiba Multi processor computer system
CA2045756C (en) 1990-06-29 1996-08-20 Gregg Bouchard Combined queue for invalidates and return data in multiprocessor system
US5388227A (en) * 1990-08-14 1995-02-07 Nexgen Microsystems Transparent data bus sizing
JPH04225458A (ja) * 1990-12-27 1992-08-14 Nec Eng Ltd コンピュータ
JPH06161620A (ja) * 1992-11-20 1994-06-10 Hitachi Ltd 出力同時変化制御方式
US5561772A (en) * 1993-02-10 1996-10-01 Elonex Technologies, Inc. Expansion bus system for replicating an internal bus as an external bus with logical interrupts replacing physical interrupt lines
US5561780A (en) * 1993-12-30 1996-10-01 Intel Corporation Method and apparatus for combining uncacheable write data into cache-line-sized write buffers
US5790874A (en) * 1994-09-30 1998-08-04 Kabushiki Kaisha Toshiba Information processing apparatus for reducing power consumption by minimizing hamming distance between consecutive instruction
WO1997011420A1 (fr) * 1995-09-18 1997-03-27 Hitachi, Ltd. Procede de commande de bus, circuit de commande de bus et processeur utilisant ledit procede
JPH10177543A (ja) * 1996-12-18 1998-06-30 Matsushita Electric Ind Co Ltd バス制御回路
US5901294A (en) 1997-09-18 1999-05-04 International Business Machines Corporation Method and system for bus arbitration in a multiprocessor system utilizing simultaneous variable-width bus access
JPH11259417A (ja) * 1998-03-13 1999-09-24 Fujitsu Ltd バスアクセス方式およびバスアクセス制御装置
US6122715A (en) * 1998-03-31 2000-09-19 Intel Corporation Method and system for optimizing write combining performance in a shared buffer structure
US6618777B1 (en) * 1999-01-21 2003-09-09 Analog Devices, Inc. Method and apparatus for communicating between multiple functional units in a computer environment
US6366984B1 (en) * 1999-05-11 2002-04-02 Intel Corporation Write combining buffer that supports snoop request
US7085875B1 (en) * 2000-04-06 2006-08-01 Avaya Communication Israel Ltd. Modular switch with dynamic bus
GB2375695B (en) * 2001-05-19 2004-08-25 At & T Lab Cambridge Ltd Improved power efficency in microprocessors
US7257661B2 (en) * 2001-09-21 2007-08-14 Nxp B.V. Scalable home control platform and architecture

Also Published As

Publication number Publication date
JP2007511828A (ja) 2007-05-10
WO2005048115A3 (en) 2005-07-14
DE602004018371D1 (de) 2009-01-22
EP1685495A2 (en) 2006-08-02
US20070083693A1 (en) 2007-04-12
CN1879095A (zh) 2006-12-13
EP1685495B1 (en) 2008-12-10
KR101034514B1 (ko) 2011-05-17
KR20070007763A (ko) 2007-01-16
CN100547569C (zh) 2009-10-07
ATE417318T1 (de) 2008-12-15
WO2005048115A2 (en) 2005-05-26
US7480756B2 (en) 2009-01-20

Similar Documents

Publication Publication Date Title
US7127563B2 (en) Shared memory architecture
US7395364B2 (en) Data transfer control apparatus
US8069274B2 (en) System and method for serial data communications between host and communications devices, and communications device employed in the system and method
CN106021141B (zh) 半导体设备
CN114265872B (zh) 一种用于总线的互联装置
US20080082621A1 (en) Slave network interface circuit for improving parallelism of on-chip network and system thereof
US6457121B1 (en) Method and apparatus for reordering data in X86 ordering
US6782435B2 (en) Device for spatially and temporally reordering for data between a processor, memory and peripherals
JP4621686B2 (ja) パックワードをバスを介して送信する電子データ処理回路
CN112882986B (zh) 一种带有超节点以及超节点控制器的众核处理器的应用方法
US20080235707A1 (en) Data processing apparatus and method for performing multi-cycle arbitration
JP4902640B2 (ja) 集積回路、及び集積回路システム
US5327540A (en) Method and apparatus for decoding bus master arbitration levels to optimize memory transfers
CN116483259A (zh) 一种数据处理方法以及相关装置
US7206886B2 (en) Data ordering translation between linear and interleaved domains at a bus interface
JP2006518069A (ja) プロセッサアレイ
US6170041B1 (en) Integrated circuit memory with a bus transceiver
JPWO2004025478A1 (ja) メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
US8127108B2 (en) Apparatus, system and method for prefetching data in bus system
JP2004152312A (ja) 情報処理装置
JP2009042992A (ja) バス制御装置
JPH031261A (ja) 割込み通知方式
JP2000298642A (ja) 多チャンネル型メモリ・コントローラ
JP2006133904A (ja) 共有メモリシステム
JP2010079495A (ja) メモリアクセス制御装置

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070514

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100901

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101101

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4621686

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees