JPH05298060A - フォーマットを変換する回路 - Google Patents

フォーマットを変換する回路

Info

Publication number
JPH05298060A
JPH05298060A JP4357319A JP35731992A JPH05298060A JP H05298060 A JPH05298060 A JP H05298060A JP 4357319 A JP4357319 A JP 4357319A JP 35731992 A JP35731992 A JP 35731992A JP H05298060 A JPH05298060 A JP H05298060A
Authority
JP
Japan
Prior art keywords
data
bytes
register
byte
format
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.)
Withdrawn
Application number
JP4357319A
Other languages
English (en)
Inventor
Steven G Roskowski
スティーブン・ジイ・ロスコウスキイ
Charles M Flaig
チャールズ・エム・フレイグ
Dean M Drako
ディーン・エム・ドラコ
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of JPH05298060A publication Critical patent/JPH05298060A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/762Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data having at least two separately controlled rearrangement levels, e.g. multistage interconnection networks
    • 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
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 【目的】 情報フォーマットの異なるI/Oを使用でき
るようにする。 【構成】 複数のデータフォーマットの中の1つのフォ
ーマットをとるデータをそれら複数のデータフォーマッ
トのうち残るフォーマットのいずれかをとるデータに変
換する回路であって、第1の数の入力データバイトから
取ったデータを記憶する装置と、データを記憶する装置
により記憶された第1の数のデータバイトと、第2の数
の入力データバイトとから未使用のバイトを選択する装
置と、選択した未使用のバイトを数値バイト順に配列す
る装置と、数値バイト順のデータを宛先装置のフォーマ
ットへ転送するためのバイト位置に配列する装置とを含
む回路。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータインタフェ
ース回路に関し、特に、コンピュータを複数の異なるフ
ォーマットで情報を処理する複数の異なる周辺装置のい
ずれにも接続できるような単一のインタフェースを構成
する方法及び装置に関する。
【0002】
【従来の技術】コンピュータはデータを利用するときに
データがとりうる数多くのフォーマットを提供する。た
とえば、初期のパーソナルコンピュータプロセッサの中
には、8ビット単位で提示されるデータしか処理できな
いものがあった。後のコンピュータプロセッサは16ビ
ット単位でデータを処理することが可能であった。さら
に最近になって設計されたコンピュータプロセッサは3
2ビット単位でデータを処理でき、一層進んだ型のコン
ピュータは64ビット単位で供給されるデータを処理す
ることができる。多くの場合、それらのフォーマットは
特定の情報の自然の副産物又はその情報が処理される方
式である。たとえば、業界の規格はいくつかのフォーマ
ットで情報を利用可能であると保証している。浮動小数
点数に関わるIEEE規格は32ビット又は64ビット
であり、一方、ASCII文字は、通常、8ビットであ
る。
【0003】コンピュータを周辺装置に接続した場合、
コンピュータはその装置により提供されるデータを利用
することができなければならない。このため、通常は1
つの特定のフォーマットのデータを処理するコンピュー
タを別のフォーマットでデータを処理する周辺装置と通
信させることが必要である。一般的には、コンピュータ
はそのメーカーの生産ラインの初期モデルで使用されて
いる全てのフォーマットで通信することが可能であるべ
きであろう。このようにすれば、能力の劣る生産ライン
の初期モデルと共に使用するものとして設計されたソフ
トウェア及びハードウェアを生産ラインの改良型コンピ
ュータによりランさせることができるであろう。
【0004】通常、別のフォーマットで動作している周
辺装置と通信する能力は、周辺装置に組込まれて、固有
フォーマットで供給された情報をコンピュータのフォー
マットに変換する特殊な回路構成により与えられる。そ
のような構成は、それぞれ、特定のフォーマット変換を
処理するのに適している。従って、特定の1つのフォー
マットで動作している周辺機器の部分を異なるフォーマ
ットを利用する特定のコンピュータシステムと共に使用
すべき場合には、機器を利用可能とするために、フォー
マット間で変換を実行する回路を設けなければならな
い。そのような変換回路は非常に高価な設計となってい
るので、それら2つの機器部分を一緒に使用することは
決してない。
【0005】周辺装置の一部としてフォーマット変換回
路を設けたとしても、その変換回路は特殊なものである
ので、コンピュータシステムのコストは全体として上が
ってしまう。あらゆる周辺装置に同じ変換回路を使用
し、その設計と製造コストをはるかに広い範囲に分散さ
せるようにすれば、コスト面でははるかに有益である。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、コンピュータがそのコンピュータと共に使用される
機器に現れると思われる多数の情報フォーマットを利用
できるようにするインタフェース回路を提供することで
ある。本発明の別の目的は、コンピュータシステムの総
コストを引下げることである。本発明の別のより特定し
た目的は、コンピュータの構成要素間で情報を転送する
ポリモーフィックインタフェースを提供することであ
る。
【0007】
【課題を解決するための手段】本発明の上記の目的及び
その他の目的は、複数のデータフォーマットの中の1つ
のフォーマットをとるデータを複数の他のデータフォー
マットの中のいずれかのフォーマットをとるデータに変
換するインタフェース回路であって、第1のフォーマッ
トで現れるデータをそれぞれが第2のフォーマットにお
けるデータのバイト数に等しい複数のグループとして記
憶する手段と、そのデータを記憶する手段により記憶さ
れたグループの中の第1のグループと、データを記憶す
る手段により記憶されたグループの中の第2のグループ
とから未使用バイトを選択する手段と、選択された未使
用バイトを数値バイト順に配列する手段と、数値バイト
順のデータを宛先装置のフォーマットへの転送のための
バイト位置に配置する手段とを具備するインタフェース
回路により実現される。本発明の上記の目的及び特徴並
びにその他の目的及び特徴は、以下の詳細な説明を図面
と共に参照することによりさらに良く理解されるであろ
う。図面中、いくつかの図を通して、同じ素子は同じ図
中符号により指示される。
【0008】〔表記法及び用語〕以下の詳細な説明の中
には、コンピュータメモリ内部にあるデータビットに対
する演算の表現によって提示される部分がある。そのよ
うな説明と表現は、データ処理技術に熟達する人がその
作業の内容を他の当業者に最も有効に伝達するために使
用する手段である。その演算は物理的量の物理的操作を
要求する演算である。通常、それらの量は記憶、転送、
組合わせ、比較及びその他の方法による操作が可能な電
気信号又は磁気信号の形態をとるが、必ずそうであると
は限らない。時によっては、主に一般に使用されている
用語であるという理由により、それらの信号をビット、
値、要素、記号、文字、項、数などと呼ぶと好都合であ
ることがわかっている。ただし、それらの用語及びそれ
に類する用語は全て適切な物理的量と関連させるべきも
のであり、単にそれらの量に便宜上付されたラベルであ
るにすぎないということに留意すべきである。
【0009】さらに、実行される動作を、一般にはオペ
レータが実行する知的動作と関連している加算又は比較
などの用語で呼ぶことが多いが、ここで説明する、本発
明の一部を成す動作のどれをとっても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。あらゆる場合に、コンピ
ュータを動作させる際の方法動作と、計算それ自体の方
法との明確な区別を心に留めておくべきである。本発明
は、電気信号又は他の物理的(たとえば、機械的、化学
的)信号を処理して、他の所望の物理的信号を発生させ
るときにコンピュータを動作させる装置に関する。
【0010】
【実施例】そこで図1を参照すると、典型的なコンピュ
ータシステムの構成要素を一般的に詳細に表わすブロッ
ク線図が示されている。システムは中央処理装置1と、
ランダムアクセスメモリ2と、フレームバッファメモリ
3と、出力制御及びタイミング回路4と、出力表示装置
5と、入出力回路6とを含む。一般に、中央処理装置
1、ランダムアクセスメモリ2、フレームバッファメモ
リ3及び入出力回路6などの主要な構成要素はそれぞれ
システムバスに接続することにより互いに結合されてい
る。典型的なシステムバスはアドレスバス8と、データ
バス9とを含むものと考えられる。アドレスバス8とデ
ータバス9は、それぞれがバスに沿って位置する全ての
構成要素に並列して接続する複数本の導体を含む。今日
では、共通システムバスはシステムの個々の構成要素を
接続するためにデータ線、アドレス線のそれぞれについ
て32本の独立した回線を使用している。
【0011】中央処理装置1のような構成要素は、デー
タが導かれてゆくアドレスをシステムアドレスバス8に
乗せ且つデータをシステムデータバス9に乗せることに
より別の構成要素へ伝送する。アドレスは32ビットの
2進コード化情報により表わされれば良く、それら全て
のビットはアドレスバス8の導体に供給される2状態信
号により表わされる。同様に、データバス9のデータは
データバス9に供給される2進コード化2状態信号によ
り表わされる。通常、アドレスとデータはアドレスバス
とデータバスの、制御信号用の導体を除く全ての導体を
使用する。データの宛先である構成要素と関連する回路
はそのアドレスの範囲内でアドレスバス8のアドレスを
認識し、自在にデータを受信できる状態であれば、デー
タバス9において使用可能であるデータを受け入れる。
【0012】バスに結合する構成要素のいくつかは様々
に異なるフォーマットで提示される情報を利用して動作
することがある。たとえば、中央処理装置1が1つのフ
ォーマットのデータを利用するのに対し、入出力回路6
は外部回路からの情報を全く異なるフォーマットで提示
することもある。どの構成要素も転送されて来る情報を
理解できるようにするために、その情報をその構成要素
が理解しうるフォーマットに変えなければならない。
【0013】そこで、図2を参照すると、例として、コ
ンピュータで使用しうる5種類のフォーマットが示され
ている。それらのフォーマットはパーソナルコンピュー
タにおいて一般的に使用されている多くのフォーマット
のうちの一部である。図の一番上にはデータビットがと
りうる64ビット位置(右側の0から左側の63まで番
号付けしてある)が示されている。これらのビット位置
は8つのバイトに分割されている。。どのフォーマット
においても、ビット位置32〜63は図の一番下の行に
示す通り32ビットのアドレス情報として利用される。
【0014】5つのフォーマットの名前を図の左側に指
示してある。一番上の行から始めると、図示した最初の
フォーマットは64ビット多重化(64Mxd)と呼ば
れている。このフォーマットでは、32ビットのアドレ
スは第1のクロックサイクルの間にビット位置32〜6
3に現れ、次のクロックサイクルに際しては64ビット
のデータをビット位置0〜63で搬送する。上から2番
目のフォーマットは32ビット分離フォーマット(32
Sep)と呼ばれている。このフォーマットでは、アド
レスは同じようにビット位置32〜63に現れ、データ
は同じクロックサイクルの間にビット位置0〜31に現
れる。上から3番目のフォーマットは16ビット分離フ
ォーマット(16Sep)と呼ばれている。このフォー
マットでは、アドレスはビット位置32〜63に現れ、
データは同じクロックサイクルの間にビット位置0〜1
5に現れる。上から4番目のフォーマットは8ビット分
離フォーマット(8Sep)と呼ばれている。このフォ
ーマットでは、アドレスはビット位置32〜63に現
れ、データは同じクロックサイクルの間にビット位置0
〜7に現れる。最後のフォーマットは32ビット多重化
フォーマット(32Mxd)と呼ばれている。このフォ
ーマットでは、アドレスは第1のクロックサイクルの間
にビット位置32〜63に現れ、続く次のクロックサイ
クルに際して32ビットのデータは同じビット位置に現
れる。これらのどのフォーマットにおいても、32ビッ
トのアドレスは同じビット位置に現れる。
【0015】図2では、フォーマットごとにどのデータ
のバイトが特定のバイト位置にあるかを指示する一連の
番号によってデータを示している。すなわち、64ビッ
ト多重化フォーマットの場合、データは0〜7とラベル
付けされた8つのバイトから構成される。その最上位の
バイトであるバイト0はこのフォーマットのビット位置
56〜63を占め、最下位バイトであるバイト7はビッ
ト位置0〜7を占める。ここに図示したフォーマットに
関わる特定のビット位置は、1つの数の最大値の部分が
最初に現れるいわゆる「ビッグエンジアン」フォーマッ
トで情報を処理するコンピュータ構成要素が利用してい
るビット位置であることは当業者により認められるであ
ろう。この種の装置は、たとえば、Motorola
Corporationにより製造されている。このフ
ォーマット構造は単に図示の便宜上使用したものである
にすぎない。言うまでもなく、ビット位置を変えれば、
「リトルエンジアン」フォーマットのデータを処理する
システムでも本発明を同様に採用できるであろう。
【0016】本発明の回路は、インタフェースに接続す
るある特定の構成要素がその構成要素によるその必要条
件の指示に応答して要求するフォーマットを提供する。
たとえば、インタフェースと関連する1つの特定の構成
要素がフォーマットの中の1つで情報を提供すると仮定
すると、本発明の回路はその情報を受信する装置の必要
条件に応じて他のいずれかのフォーマットへと情報を変
換する。本発明の好ましい実施例では、インタフェース
は中央処理装置を含む複数の装置をシステムバスなどの
相互接続部に接続するために利用される。そのような相
互接続部(又は何らかの単一の装置)は通常は単一のフ
ォーマットで動作するので、相互接続部に供給されてゆ
く情報は常にその相互接続部が使用する単一のフォーマ
ットに変換される。そのように変換されたデータは、そ
の後、相互接続部(又は他の装置)により無制限に使用
可能であろう。
【0017】受信側の構成要素(相互接続部)が、実
際、全構成要素が同一のフォーマットを使用する完全シ
ステムの一部である場合には、そのシステムにデータを
書込んだならば、あらゆる構成要素はこのフォーマット
を見ることになると予測される。データをシステム外の
装置又はシステム内の、異なるフォーマットを利用する
構成要素へ送信することが望まれるならば、ほぼ同一の
インタフェース回路を使用して、内部フォーマットから
装置が希望するフォーマットへのフォーマット変換を起
こさせることができるであろう。事実、好ましい実施例
では、いくつかのフォーマットの中の1つと内部フォー
マットとの間で容易に変換を実行できるように、インタ
フェース回路を中央相互接続部から各方向へ複製され
る。そのような2方向変換回路を含む構成を図5に示
す。図5に関しては後に詳細に説明する。
【0018】図3は、本発明に従って構成された、構成
要素間にポリモーフィックインタフェースを形成する回
路10を示す。この回路10は第1のレジスタ12を含
む。好ましい実施例では、レジスタ12はその入力端子
で64ビット(8バイト)の有効(まだ未使用の)デー
タを受信できる。いずれにせよ、レジスタ12はインタ
フェースが処理すべき最大のフォーマットの中に存在し
ている数のバイトを十分に受け入れられる大きさでなけ
ればならない。従って、好ましい実施例のレジスタ12
は64ビット、すなわち、8バイト分の情報を記憶す
る。第2のレジスタ11は、転送すべき8つのバイト全
てに関して32ビットのアドレス情報を受信する。
【0019】情報はデータ源14からレジスタ12に供
給される。この説明では、便宜上、データ源14は一度
に8バイトのデータを提供すると仮定する。データ源1
4は先に説明した好ましい実施例において他の構成要素
が接続している相互接続部であると考えても良い。マル
チプレクサ13はレジスタ12とデータ源14とに接続
され、それらから来たデータを選択的に転送する。マル
チプレクサ13は、転送に備えて提示された8バイト
(64ビット)の情報の中から1バイトを増分単位とし
て1つ又は複数の個別バイトを選択することができる。
マルチプレクサ13はレジスタ12又はデータ源14の
いずれかから情報を受け入れれば良い。
【0020】マルチプレクサ13は、常に8バイトの有
効データを利用できるように、データ源14により供給
されるデータのバイトと、レジスタ12に保持されてい
るデータのバイトとを選択的に転送させる。たとえば、
データが一度に2バイトずつ変換されており、レジスタ
12に保持されている2バイトのデータが先のデータ転
送中に既にインタフェースにより変換されていた場合、
マルチプレクサ13が次のクロック期間中にデータを転
送するときに、レジスタ12に保持されている「使用済
の」バイトを転送中にデータ源14により供給される次
の8バイトのデータから取った初めの2バイトのデータ
と置き換える。その結果、マルチプレクサ13による転
送のために常に合わせて8バイトの有効データを利用で
きる。
【0021】マルチプレクサ13は8バイトの有効デー
タをロテータ回路15へ転送する。ただし、この情報は
ねじれバイト順であっても良い。たとえば、8バイトよ
り小さいデータの一部分が既にインタフェースの他方の
側へ転送されてしまっている場合には、その情報はマル
チプレクサ13によりレジスタ12からの後続する有効
情報と置き換えられているであろう。そのような場合、
8つの有効バイトのバイト順は受信側の回路が期待する
順序からは外れている。ロテータ回路15は8バイト全
ての情報を再方向付けして、情報を正しいバイト順にす
る。ロテータ回路はこの動作を実行するために、各サイ
クルで利用可能な合わせて8つのバイトのうちどれほど
の量の情報(バイト単位)が消費されたかを表わす宛先
構成要素からの情報を利用する。この値は、カウンタ回
路16により、特定のフォーマット変換に際してインタ
フェースを通過するたびに転送されるバイトの数と、発
生したパスの回数とから確定される。図5のはるかに詳
細な回路の説明においては、この情報を「長さ」情報と
いう。ロテータ回路15はマルチプレクサ13により供
給された情報を、次に転送すべき有効バイトを次のレジ
スタ17に関する0と1のバイトレーンに配列させるた
めに費やされるバイトの数だけ回転させる。好ましい実
施例では、ロテータ回路15は、1バイトを増分単位と
して64ビットのデータを回転させるバレルシフタ(従
来の技術では良く知られている多重化回路のアレイ)で
あっても良い。レジスタ17はパイプライン化のみを目
的として回路内に配置されており、データに対して論理
演算を実行しない。
【0022】データはレジスタ17から第2のロテータ
回路18へ転送され、ロテータ回路18は宛先構成要素
からの制御回路19での情報を利用して、宛先構成要素
が使用するフォーマットについて情報がどのバイトレー
ンに現れるべきかを確定する。たとえば、図2に示すよ
うに、宛先構成要素が16ビット分離フォーマットで動
作している場合にはバイト0はバイトレーン1(フォー
マット中の第2のバイトレーン)に現れることになる。
バイト0はデータ源14によりバイトレーン7で供給さ
れ、また、バイト7はバイトレーン0で供給されること
がわかるであろう。従って、16ビット分離フォーマッ
トへの変換に際しては、ロテータ回路18は、バイト0
がバイトレーン1のその位置に自動的に現れるように、
にじり情報を使用してデータを回転させる。
【0023】情報のバイトをロテータ回路18により回
転させるべきときの回転バイトの数を確定するために宛
先構成要素から制御回路19に提供される情報をねじり
情報と呼ぶ。変換を制御するためにこの情報を利用する
方式及びその方式を実行する装置については、図5の回
路を参照しながら詳細に説明する。ねじり値を提供する
ために利用する論理回路は、好ましい実施例では、組合
わせ論理として選択されている。組合わせ論理は、ねじ
り値が変化したとき、ねじり論理回路が提供する信号出
力はシステムクロックと無関係に変化するように動作す
る。従って、これは、低速及び高速転送の双方に使用さ
れる。
【0024】ねじり値として戻される値を確定するため
に、データが変換されようとしているバイトレーンアド
レスを利用するならば、データは同じ動作サイクルの間
に自動的に正しいバイトレーン位置へ転送される。本発
明ではアドレスが一貫しており(アドレスは常に同じ3
2のビット位置に現れる)且つねじり回路に組合わせ論
理を使用しているので、フォーマットがどのようなサイ
ズであっても、データをそれ専用の回路をもたない単純
な周辺装置へバイト整合転送することができる。インタ
フェースは、転送ごとに、有効であるバイトの数を指示
するためのサイズ情報を宛先に提供する。好ましい実施
例はバスラッピングを支援しないため、この情報は8か
らねじりの値を減じた最大値を有する。ロテータ回路1
5の場合と同様に、ロテータ回路18は1バイトを増分
単位として64ビットのデータを回転させるバレルシフ
タであっても良い。ロテータ回路18が提供したデータ
はマルチプレクサ20によりレジスタ11からのアドレ
ス情報と共に宛先構成要素へ転送され、そこで宛先構成
要素により規定されたフォーマットで現れる。
【0025】図4は、図3の回路10の特定の定義済素
子の出力端子で供給されるデータのバイトを示す一連の
図であり、回路10の動作を理解する上でこの図を参照
するのは有用であろう。第1列のバイトパターンは回路
10を通過する1回目の転送動作を示し、第2列のバイ
トパターンは2回目の動作を示し、第3列のバイトパタ
ーンは3回目の動作を示す。図の左側から見てゆくと、
初めの8つのバイトはデータ源14からレジスタ12及
びマルチプレクサ13に至る入力線路に現れるバイトで
ある。これらのバイトは全て有効である(すなわち、イ
ンタフェースを介して宛先構成要素へ既に転送されたバ
イトはない)ので、マルチプレクサ13はデータ源14
からの入力情報の初めの8つのバイトの全バイトをロテ
ータ回路15へ転送する。それと同じ8つのバイトはレ
ジスタ12にも記憶される。バイトが有効であるという
指示は宛先構成要素から到来し、宛先は0の長さ値を戻
すことにより転送済のバイトが存在しないことをカウン
タ回路16に指示する。さらに、初めの8つのバイトの
中で宛先構成要素へ転送されてしまったバイトはないた
め、それらのバイトはマルチプレクサ13により転送さ
れる際に宛先構成要素に関して正しいバイト順に並んで
おり、従って、ロテータ回路15により回転されること
なくレジスタ17へ転送される。図4のバイトパターン
の各バイトの中に記されている番号1からわかる通り、
マルチプレクサ13により転送されるバイトと、ロテー
タ回路15が供給するバイトは、それぞれ、初めの8つ
のデータのバイトから取ったものである。
【0026】たとえば、データが転送されようとしてい
るフォーマットが16ビット分離フォーマットであると
仮定すると、入力64ビット語の中の初めの2バイトの
情報のみを使用することになる。図2に示すように、6
4ビット多重化フォーマットでデータ源14によりバイ
トレーン6及び7に提示される2つのバイトを16ビッ
ト分離フォーマットに変換した場合、それらのバイトは
宛先構成要素ではバイトレーン1及び0に現れるべきで
ある。宛先構成要素について情報を転送すべき位置を指
定する制御装置19のねじり情報を使用して、このデー
タの回転を実行するためにロテータ回路18を制御す
る。次に、ロテータ回路18からのデータをマルチプレ
クサ20によりインタフェースを経て宛先構成要素(図
示せず)へ、所望の出力フォーマットとして使用するの
に適するバイト順序で正しいバイトレーンをとって転送
する。宛先構成要素が使用する16ビット分離フォーマ
ットに関する規定の時間シーケンスによって、データの
宛先を指示するために、レジスタ11からデータのアド
レスを転送する。
【0027】次の変換サイクルでも、レジスタ12は入
力情報の初めの8つのバイトから取ったデータをまだ保
持している。ところが、このデータのうち初めの2つの
バイトは既にインタフェース回路10を経て転送されて
しまっている。このことは、転送のサイズと、転送の回
転とを記録しているカウンタ16によりマルチプレクサ
13に指示される。このカウントに応答して、マルチプ
レクサ13は8バイトの情報を図示するようにロテータ
回路15へ転送し、そのとき、バイトレーン0及び1の
2つのバイトはデータ源14からの入力データの2回目
の8つのバイトから取ったものである(図4の図では、
このことをバイト位置の番号2により指示してある)。
【0028】この時点でマルチプレクサ13によりロテ
ータ回路15へ送信されるデータがその適正なバイト逐
次順から外れており、第1の8バイトパケットは第2の
8バイトパケットの後に現れることは当業者には認めら
れるであろう。ロテータ回路15を制御するのは、レジ
スタ17が2回目の8バイトから取ったバイトを番号の
小さなバイトレーンへ転送するという正しいバイト順で
それらのバイトを受信するように、出力フォーマットを
表わす宛先構成要素からの情報と、入力データの8つの
バイトを回転させるための転送の回数とを使用して転送
される長さを要約するカウンタ16である。
【0029】図2に示すように、どのフォーマットのど
のデータについてもアドレスビットは同じ32ビット位
置に常に提示されることに注意すべきである。このよう
にアドレス位置が一貫しているために、本発明の装置
は、様々に異なるフォーマットの個々の転送についてバ
イトアドレスの相違を心にかける必要なく、パケット形
情報を使用して機能することができるのである。たとえ
ば、データ源14がアドレスと、8つのデータバイトか
ら成るパケットとをインタフェースに提示したとき、そ
のパケット中のデータを16ビット分離フォーマットで
一度に2バイトずつ利用することが望まれるならば、そ
の情報を提示又は受信する回路の助けを要することな
く、変換のためのアドレスは初期アドレスから自動的に
与えられる。これを実行するのは、8つのバイトのうち
第1のバイトについて提示されたアドレスをフォーマッ
ト変換に際して実行されているデータ転送のサイズだけ
増分する回路23である。従って、16ビット分離フォ
ーマットの場合のように2バイトのデータを転送する場
合、次の2つのバイトに関わるアドレスは、それらの次
の2バイトについて正しいアドレスとなるように、自動
的に2バイトだけ増分される。32ビット分離フォーマ
ットの場合には、1回の転送につき増分は4バイトであ
る。一方、8ビット分離フォーマットでは、各転送の増
分は1バイトである。この機能があるため、本発明のイ
ンタフェースは最も単純な型の周辺構成要素と関連して
動作できるのである。
【0030】8つのバイトをロテータ回路15により正
しいバイト逐次順に回転させ、レジスタ17に供給した
ならば、次にそれらのバイトをロテータ回路18に供給
する。制御回路19は、逐次順で次に来るデータのバイ
トを宛先構成要素が16ビット分離フォーマットでデー
タが現れると期待しているバイトレーン0及び1に配置
するために、宛先構成要素により意味付けられたねじり
値を使用してロテータ回路18を制御する。この結果、
データは、図2に示すように16ビット分離フォーマッ
トと、64ビット多重化フォーマットで0と1のバイト
が現れるバイトレーンの差である6つのバイトレーンだ
けシフトする。尚、宛先構成要素の特質上、宛先構成要
素がデータは他のいずれかのバイトレーンに現れると期
待したならば、このねじり値はデータの正しいバイトレ
ーンへの正しい変換を保証するために供給されるであろ
う。このことについては図5に関連してさらに詳細に説
明する。
【0031】その後、それらのデータのバイトをマルチ
プレクサ20によりアドレスビットと共に、宛先構成要
素が使用するフォーマットに関する適切な時間シーケン
スで宛先構成要素へ転送する。尚、クロックごとにデー
タ源から送信されてゆくデータのパケットのサイズはデ
ータ自体と共に宛先構成要素へ転送されることに注意す
べきである。最後の1パケットの転送が期待バイト数よ
り少ないバイトを含むために宛先へのクロックごとの転
送サイズがデータ源サイズに均等に分割されないときに
は、データ源サイズ値は重要である。
【0032】3回目の変換サイクルでは、レジスタ12
は入力情報の初めの8つのバイトから取ったデータを保
持している。ところが、このデータのうち初めの4つの
バイトは既にインタフェース回路10を経て転送されて
しまっている。このことは、転送のサイズと、転送の回
数とを記録しているカウンタ回路16によりマルチプレ
クサ13に指示される。このカウントに応答して、マル
チプレクサ13は図示するように8バイトの情報をロテ
ータ回路15へ転送し、そのとき、バイトレーン0〜3
にある4つのバイトはデータ源14からの入力データの
2回目の8つのバイトから取ったものである(図4で
は、このことをバイト位置の番号2により指示してあ
る)。
【0033】マルチプレクサ13によりロテータ回路1
5へ送信されるデータは、この場合にも、適正なバイト
逐次順から外れており、第1の8バイトのパケットから
のバイトは第2の8バイトのパケットからのバイトの後
に現れることが当業者には認められるであろう。ロテー
タ回路15を制御するのは、レジスタ17がそれらのバ
イトを正しいバイト順で受信し、2回目の8つのバイト
から取ったバイトは番号の小さいバイトレーン0〜3へ
転送されるように、出力フォーマットを表す宛先構成要
素からの情報と、入力データの8つのバイトを4バイト
だけ回転させるための転送の回数とを使用して転送され
る長さを要約するカウンタ16である。
【0034】8つのバイトをロテータ回路15により正
しいバイト逐次順に回転させ、レジスタ17に配置した
ならば、それらのバイトをロテータ回路18に供給す
る。制御回路19は、逐次順では次に来るデータのバイ
トを宛先構成要素が16ビット分離フォーマットでデー
タが現れると期待するバイトレーン0及び1に配置する
ために、宛先構成要素により意味を与えられたねじり値
の6を使用してロテータ回路18を制御する。その結
果、データはバイトレーン6つだけシフトする。その
後、それらのデータのバイトをマルチプレクサ20によ
りアドレスビットと共に宛先構成要素へ転送する。この
ため、宛先入力端子に現れる情報は、出力構成要素がど
のようなフォーマットで動作するかにかかわらず、宛先
構成要素が使用すべき適切な位置へ既に移行しているの
である。
【0035】先に詳細に説明したように、以上図示し、
説明した1つのフォーマットから別のフォーマットへの
変換を実行する回路を複製し、その構成要素を反転させ
て、宛先構成要素から源構成要素への変換を実行しても
良い。このことは図3に第2の変換チャネル25により
示されている。変換チャネル25は逆の順序で配置され
たほぼ同一の構成要素を含んでおり、それにより、宛先
構成要素のフォーマットから源構成要素のフォーマット
への変換を実行することができる。さらに、先に論じた
通り、好ましい実施例では、データ源14はコンピュー
タシステムが使用する複数の異なる構成要素に複数の同
様のインタフェース10により接続できる相互接続部で
ある。そのような構成においては、ある特定の構成要素
で使用するフォーマットのデータをインタフェース回路
10により相互接続部が使用するフォーマットに変換
し、次に、別のインタフェース回路10により、相互接
続部に結合している別の構成要素が使用する別のフォー
マットに変換するものと考えられる。相互接続部などの
源から変換を実行する場合、源は源転送サイズ(源が宛
先であったときに先に源に供給されている)を供給しな
ければならない。このサイズは最大値の8からねじり値
を減じたものであり、このため、パケットは宛先転送サ
イズの偶数倍ではない長さを有することもある。
【0036】そこで図5を参照すると、ランダムアクセ
スメモリ31などの中央バッファに記憶するための第1
のフォーマットからの情報の変換及び中央処理装置、す
なわち、ランダムアクセスメモリ31から出力のための
他の何らかのフォーマットへの変換のためのより特定し
た構成であるポリモーフィックインタフェース30のブ
ロック線図が示されている。この構成では、入力端子3
3の64本の入力回線に情報を提示する。提示される情
報は、特定のフォーマットと、そのフォーマットにおけ
る転送の箇所とに応じて、アドレス又はデータのどちら
であっても良い。アドレス情報は32本の回線34を介
して送り出されて、ランダムアクセスメモリ31に記憶
される。これに対し、データは64本の入力回線を介し
てロテータ35に供給される。
【0037】図5のロテータ35は図3に示す2つのロ
テータ回路15及び18の目的を果たし、それら2つの
回路の機能を実行する。このために、サイズ値を加算器
回路37に供給し、既にレジスタ38に記憶されている
何らかの情報に加算して、レジスタ38に記憶する。サ
イズ値は、源(ソース)構成要素が一度に供給している
バイトの数を指示する。たとえば、情報が32ビット分
離フォーマットで現れている場合、一度に4つのバイト
を供給することになる。そこで、サイズは通常は4にな
るであろう。これに対し、16ビット分離フォーマット
では、一度に2つのデータバイトしか供給しないので、
サイズは2になるであろう。尚、サイズは、何らかの宛
先構成要素への転送のためにランダムアクセスメモリ3
1に情報を書込んでいる源構成要素により供給されても
良く、あるいは、源構成要素により読取るべき情報を提
供している宛先構成要素により供給されても良い。いず
れの場合にも、サイズを加算器回路37に供給して、レ
ジスタ38に記憶する。
【0038】そこで、レジスタ38の値は、データ入力
端子33で与えられる次の情報と共に供給される次のサ
イズ値に加算して利用できる状態となる。従って、レジ
スタ38はデータ源により既に提供されている特定の語
の中のバイトの数と等価の長さ値を記憶するのである。
たとえば、情報が16ビット分離フォーマットで供給さ
れている場合、初めの2つのバイトが提示されていると
きに長さレジスタに記憶される量は0になる。この値に
2バイトのサイズ量を加算して、レジスタ38に2の値
を記憶することになる。入力回線33に次の2バイトの
データが供給されると、サイズ値をレジスタの長さ値に
加算して、4の値を得る。この動作は2バイトの入力デ
ータごとに、64ビット語、すなわち、8バイト語の全
体が累積されるまで続く。この時点でレジスタ38は0
に復元し、8つのバイトを受信し終わるまで次の情報の
グループの長さをカウントする。これは、8つのバイト
を受信し終わったときにレジスタ38は0に戻るよう
に、レジスタ38に既にモジュロ8フォーマットで記憶
されている長さと共に供給されるサイズの値を記憶させ
ることにより実行されても良い。
【0039】第2の加算器39はデータ源からねじり値
を受信する。バイトをランダムアクセスメモリ31に記
憶するための適切な位置に提供するために、このねじり
値と、レジスタ38に記憶されている長さ値とを組合わ
せて、ロテータ35がデータ回線に現れる情報をシフト
する量を制御する。図5に示す特定の実施例では、64
ビット幅で合わせて64バイトまでの情報のパケットを
記憶することが望ましい。従って、ランダムアクセスメ
モリ31への記憶は図2の第1列に示すパケット形64
ビット多重化フォーマットで実行されるのである。入力
回線33の情報が、たとえば、16ビット分離フォーマ
ットで現れると仮定すれば、バイトレーン1及び0に0
と1のバイトが現れる。64ビット多重化フォーマット
に当てはめるためには、ランダムアクセスメモリ31を
64ビット多重化フォーマットに適切に当てはめるよう
に、それら初めの2つのバイトをバイトレーン6及び7
までバイト6つだけシフト、すなわち、ねじらなければ
ならない。この6つのバイトのねじりが加算器39に供
給されるねじり値である。
【0040】同時に、既に転送されたバイトの数を指示
する長さ値をねじり値から減算して、後に入力データ回
線33に現れる情報が確実に正しい量だけシフトされる
ように保証する。すなわち、特定の語の中にまだ情報が
現れておらず、そのために、レジスタ38に長さ値0が
記憶されており、また、ねじり値は6である場合に、1
6ビット分離フォーマットから64ビット多重化フォー
マットに変換するためには、0の長さ値をねじり値から
減じるのである。そして、ロテータ35は2つの入力バ
イトを正しい6バイトだけ回転させて、情報を正しいデ
ータ回線に供給する。これに対し、2つのバイトが既に
受信されており、長さレジスタ38は2つの値を記憶し
ている場合には、入力情報の次の2つのバイトはねじり
値6を受け取り、そのねじり値から既に転送された長さ
2を減じることになるので、ロテータ35が実行する回
転の最終的な量は4バイトになる。そこで、それら2回
目の2つのバイトはバイトレーン4及び5へ転送され
る。
【0041】ロテータ35の情報をレジスタ41に供給
すると共に、マルチプレクサ42に直接供給する。レジ
スタ41の出力はマルチプレクサ42に供給されて、マ
ルチプレクサ42はランダムアクセスメモリ31に記憶
するためのデータを供給するためにレジスタ41の内容
又はロテータ35の出力のいずれかを選択できる。
【0042】図5に示す構成30のランダムアクセスメ
モリ31の入力の動作を説明するために、一連のデータ
入力を回路の入力部分のそれぞれの段階におけるデータ
と共に図6に示す。図示した特定の動作では、各データ
入力端子で5バイトのサイズの情報を供給する。図5に
示すポリモーフィックインタフェース30の一般的な性
質を表わすために5バイトのサイズを選択した。先に図
2に示したフォーマットは従来の技術で知られているコ
ンピュータシステムで利用するより標準的なフォーマッ
トであるが、本発明のインタフェースは入力経路の任意
のバイトレーンに現れる明らかに任意のサイズのフォー
マットを処理することができる。入力情報は5つのデー
タバイトを増分単位とする4回の独立した増分を経て供
給され、そのうち第1回の増分はバイトレーン1〜5に
有効データを提供し、第2回、第3回及び第4回の増分
はバイトレーン3〜7に有効データを供給する。そのよ
うなデータの提示は、ランダムアクセスメモリ31など
の単一のバッファへの転送のために特定の入力源からデ
ータを選択することが必要である場合に行われるであろ
う。第1回のデータの増分がバイトレーン1〜5に現れ
るということはデータをランダムアクセスメモリ31の
正しいバイトレーンに出現させるためにはデータを右へ
データレーン2つ分回転させなければならないので、そ
のデータの増分における情報は2のねじり値を有するこ
とを意味している。一方、入力回線33の第2、第3及
び第4の入力端子で利用可能であるデータの増分はねじ
り値0を有するが、これは、そのデータの最上位バイト
が正しいバイトレーン7に現れるからである。5つの有
効バイトが現れるので、データの各有効パケットのサイ
ズは言うまでもなく5である。
【0043】第1回のデータの増分が現れると、入力情
報は5バイトの長さであることを指示するために、加算
器37にサイズ5を供給する。このサイズ値はレジスタ
38に供給される。ところが、レジスタ38は既に供給
された情報の長さとして0の値を保持している。レジス
タ38はこの長さを加算器39に供給し、加算器39で
はこの長さを2のねじり値と組合わせて、ロテータ35
を制御する。その結果、ロテータ35は第1回のデータ
の増分を取り、5つのバイトを右へ2バイト移動させる
ので、それらのバイトはロテータ35では、8つのバイ
トスペースの中で右に向かってバイトレーン3〜7に現
れる。この時点で、レジスタ41は有効データを全く保
持しておらず、デコーダ43に供給される長さ値は0で
ある。本質的には、ロテータ35からのレジスタ41の
入力端子の値をレジスタ41の出力端子へ転送できるよ
うに、デコーダ43はレジスタ41にイネーブル信号を
供給する。デコーダ43の値はマルチプレクサ42によ
る選択をも制御する。デコーダ43に供給される長さ値
の0は、レジスタ41により有効ビットが供給されない
ことを指示し、そのため、ロテータ35の出力端子にお
ける64本の回路の全てのビットはマルチプレクサ42
によりランダムアクセスメモリ31への記憶のために供
給される。
【0044】次の、すなわち、第2回の情報の増分がデ
ータ入力回線33に現れると、加算器39に0のねじり
値を与えると共に、加算器37にはサイズ値5を供給す
る。レジスタ38にある長さ値の5をねじり値0から減
算し、ロテータ35に供給する。ロテータ35は、図6
のロテータ35に関する第2の位置に示すように、入力
回線のデータを左へ5バイトだけ回転させることによ
り、加算器39により供給された−5に応答する。これ
により、第2回のデータの増分における最上位バイトは
バイトレーン2に現れ、最下位のバイトはバイトレーン
6に現れる結果となる。
【0045】この情報をレジスタ41と、マルチプレク
サ42の入力端子に供給する。レジスタ38が供給した
長さ値5はレジスタ41をイネーブルするので、レジス
タ41の第1の語から取った5つのバイトが出力端子に
現れる。同時に、デコーダ43は5の長さ値5をマルチ
プレクサ42に供給するので、レジスタ41からの5つ
のバイトは有効であると指示されて、選択される。同時
に、ロテータ35の出力端子のバイトレーン0,1及び
2に現れる3つのバイトはマルチプレクサ42によって
ランダムアクセスメモリ31に供給されるので、ランダ
ムアクセスメモリ31の初めの64ビット語位置には完
全な1語が記憶されることになる。
【0046】初期長さ値である5が2回目のデータ転送
サイクルの間にレジスタ41のイネーブルと、マルチプ
レクサ42による選択とを制御したならば、データ入力
回線におけるデータの第2回の増分からのサイズ量を長
さ値に加算して、長さ値10を得るために、レジスタ3
8の長さ値を増分する。レジスタ38は情報をモジュロ
8フォーマットで情報を記憶するので、記憶された実際
の長さは2バイトの有効情報が既に転送されたことを指
示する。このようなことが起こるのは、実際には10個
のバイトがカウントされているが、記憶されたのは8バ
イト語1つであり、入力端子からランダムアクセスメモ
リ31へ転送すべきものとして残るのは初めの2回のデ
ータ増分の2つのバイトのみであるためである。
【0047】第3回の入力データの増分がねじり値0、
サイズ値5をもって現れると、レジスタ38に記憶され
ている長さ値2をねじり値から減算して、−2の値を得
る。この値によって、ロテータ35は図6にロテータ3
5に関するサイクル3として示すように入力データを左
へバイトレーン2本分シフトする。ここで、レジスタ4
1はロテータ35が先に供給した値を保持している。こ
の長さ値2はデコーダ43へ転送されて、レジスタ41
のバイトレーン6及び7にある2つのバイトは有効であ
り、それらのバイトを転送すべきであることを指示す
る。この同じ長さ情報はデコーダ43によりマルチプレ
クサ42の選択端子へ転送されるので、レジスタ41の
バイトレーン6及び7から2つの有効バイトを選択し、
残る6つのバイトをロテータ35のレーン1〜5から選
択することになる。
【0048】長さ値の10(モジュロ8演算を使用する
と2)を入力回路により処理した後、レジスタ41へ既
に7つの有効バイトを転送したことを指示するために、
レジスタ38の値を5だけ増分する。データ入力回線3
3に第4回のデータの増分がねじり値0、サイズ値5を
もって現れると、レジスタ38に記憶されている長さは
7つのバイトが有効であることを指示する。その結果、
新たな入力データはロテータ35により左へバイトレー
ン7本分移動されるので、この新たなデータの最上位の
バイトはバイトレーン0に位置する。デコーダ43は、
この時点でレジスタ41の出力端子に7つの有効バイト
が現れていることを指示し、マルチプレクサ42にレジ
スタ41からのそれら7つの有効バイトと、ロテータ3
5からの1つのバイトとを選択させる。これらの値をラ
ンダムアクセスメモリ31に記憶するための第2の64
ビット(8バイト)全語としてランダムアクセスメモリ
31へ転送する。5バイトずつ増分させながらシフトす
ることが望ましい場合には、情報の入力を同様にして継
続しても良い。ところが、全語2つ分のデータはランダ
ムアクセスメモリ31の中へ移行してしまっており、そ
の全ての機能を既に余す所なく説明したので、これ以上
の説明は不要であると思われる。
【0049】ランダムアクセスメモリ31がデータ源と
して機能している場合には、出力経路はレジスタ45
と、マルチプレクサ46と、レジスタ47と、マルチプ
レクサ48と、ロテータ49とを含む。出力部分は加算
器51と、長さレジスタ52と、加算器54と、デコー
ダ55とをさらに含む。インタフェース30の出力部分
の回路は、ランダムアクセスメモリ31がそれぞれ64
ビットの有効データを含む複数の語をパックされている
と仮定するのと全く同じように図3のレジスタ12及び
14は64ビットの有効データをパックされていると仮
定していたという点から、図3に関して先に説明した回
路と類似していても良い。これら64のビットは8本の
バイトレーンを全て埋めるので、入力ねじり値は含まれ
ない。
【0050】動作中、データ移動のそれぞれのステップ
で宛先構成要素へ転送すべき情報のサイズを、8(利用
可能なバイトレーンの数)から何らかの出力ねじり値を
減じた値に等しい値か、又は残るパケットの長さ(全長
からレジスタ52の値を減じた値)のうち小さいほうを
選択することにより、加算器51に供給する。この長さ
値は、加算器37及びレジスタ38の場合と同様に加算
器51を使用してレジスタ52における累積を経て確定
される。従って、転送がまだ起こっていないとき、長さ
値は初めは0である。マルチプレクサ48による2つの
レジスタ45及び47からの選択を制御するデコーダ5
5に長さ値を供給する。出力ねじり値も加算器54に供
給し、それをレジスタ52に保持されている長さから減
算して、ロテータ49によるデータの回転を制御する。
【0051】図7は、2つのパケット形8バイト語の中
に記憶されている22個のデータバイトと、6つの追加
バイトとを宛先構成要素へ伝送する動作を示す。RAM
31の出力端子におけるサイクルを表わす図7の初めの
3行からわかるように、それらのデータバイトは第1及
び第2の完全語と、6つのバイトを含む第3の不完全語
という形で供給される。図7に1とラベル付けされたサ
イクルでランダムアクセスメモリ31の出力端子で初め
の8バイト語が利用可能となったとき、レジスタ45と
レジスタ47はいずれも有効データを記憶していない。
マルチプレクサ46はアドレス情報を転送すると共に、
供給されたアドレスを出力サイズ及びねじりに整合させ
るために増分するために利用される。1回目の転送サイ
クルにおいては、マルチプレクサ46にイネーブルパル
スを供給して、アドレス情報の32ビットを選択させる
ことにより、アドレス転送を実行する。次に、ランダム
アクセスメモリ31のアドレス情報をマルチプレクサ4
6により直接にレジスタ50へ転送し、さらにマルチプ
レクサ56を介して宛先装置へ転送する。1回目の転送
サイクルの後、8バイト未満の転送サイクルの間に転送
されるデータの増分について正しいアドレスを自動的に
提供するために、出力サイズか、転送されている特定の
パケットの残り長さのうち小さいほうの値である値にレ
ジスタ50に保持されているアドレスを加算する。この
新たなアドレスをデータの特定の増分ごとにマルチプレ
クサ46により宛先装置へ転送する。
【0052】1回目の転送サイクルに際して、第1のデ
ータ語をレジスタ45へ転送する。RAM31の出力端
子に第2のデータ語が現れると、マルチプレクサ46に
よりレジスタ45に保持されている第1のデータ語をレ
ジスタ47へ転送し、レジスタ45には第2のデータ語
を記憶する。第1のデータ語がレジスタ47に到達した
とき、マルチプレクサ48によるデータの転送はデコー
ダ55により制御される。デコーダ55は長さレジスタ
52に記憶されている値を受信して、転送を制御する。
この時点で、宛先へはデータは全く転送されていないの
で、レジスタ52は長さ値0を記憶している。レジスタ
52のその長さ値0は、デコーダ55にマルチプレクサ
48をイネーブルさせるので、マルチプレクサ48はロ
テータ49への転送のためにレジスタ47からの8つの
有効バイトを選択する。
【0053】先に説明したロテータ35の場合と同様
に、ロテータ49は図3のロテータ15とロテータ18
双方の動作を実行する。これは、加算器54により得ら
れる値を使用して、レジスタ52に記憶されている長さ
値から何らかの出力ねじりの値を減算することを経て回
転を制御することにより実行される。これは、既に転送
された長さの値とねじりの双方を評価する回転値を生成
する。各出力サイクルの間に5バイトずつのサイズのデ
ータ増分を宛先構成要素のバイトレーン1及び4へ転送
すべきであると仮定すると(この5バイトというサイズ
と、奇数出力バイトレーン整合は、先の場合と同じよう
に、インタフェース構成30が奇数フォーマットを転送
する能力を実証するために使用されている)、ねじり値
は3になるであろう。その結果、ロテータ49は、図7
にロテータ49に関するサイクル3に示すように、マル
チプレクサ48により転送されて来たデータを左へバイ
トレーン0〜4まで回転させると考えられる。その後、
このデータは正しいバイトレーンに乗って宛先構成要素
へ転送され、そのデータの最上位のバイトはバイトレー
ン4に現れる。
【0054】この時点で、レジスタ52(転送された量
の長さを記憶する)の値を転送サイズの5だけ増分す
る。転送サイズは加算器51に供給されると共に、宛先
構成要素に供給されるので、宛先構成要素はどれほどの
データが転送され残っているかを確定できる。転送サイ
ズは、最大可能転送サイズの8を取り、ねじり値を減算
して通常転送値を求め、次にそのようにして得た転送値
の最小値か、あるいは特定の語群の中で転送すべき長さ
のいずれかを選択することにより得られる。この時点で
は初めの5バイトしか転送されていないので、その第1
回の転送の値を加算器51に供給して、レジスタ52に
記憶する。レジスタ52の値5はデコーダ55に供給さ
れて、マルチプレクサ48にレジスタ45に保持されて
いる第2のデータ語の5つのバイト共に最終転送サイク
ルで使用しなかってレジスタ47からの3つのバイトを
選択させる。レジスタ45は第3のサイクルと第4のサ
イクルの間にそれぞれ転送すべき第2の語を記憶してお
り、また、レジスタ47は第3のサイクルと第4のサイ
クルの間にそれぞれ転送すべき第1の語を記憶している
ので、マルチプレクサ48はこの2回目の転送の間に第
1の語の残った部分と、第2の語のうち初めの5つのバ
イトとを転送する。出力ねじり値の3を加算器54によ
り長さ値5と組合わせ、値2を供給することにより、マ
ルチプレクサ48により転送されたデータを右へ2バイ
ト分回転させるようにロテータ49を制御し、そこで、
最上位の有効バイトはバイトレーン4に位置することに
なる。このようにして、1回目の転送では使用しなかっ
たレジスタ47の3つの残留バイトから始めて、レジス
タ45に保持されている第2の語の初めの2つのバイト
へと続けてゆくことにより、5つのバイトを出力端子へ
転送する。
【0055】この時点で、サイズ値の5を長さレジスタ
52に保持されている長さ値5に加算して、合計値10
を得る。これは8より2大きい値であり、モジュロ8長
さレジスタ52には値2として記憶される。RAM31
の第1の語は出力端子へ転送されてしまっているので、
第5のサイクルの間には、レジスタ45からレジスタ4
7へ第2の語を転送する間に、レジスタ45はランダム
アクセスメモリ31から第3の語を受信し、それを記憶
する。レジスタ52の長さ値2は、第2の語のうち2バ
イトが既に出力端子へ転送されたことを指示する。この
値によってデコーダ55はマルチプレクサ48を起動さ
せ、マルチプレクサ48はレジスタ47に保持されてい
る第2の語の中の残る6つのバイトと、レジスタ45に
保持されている第3の語からの2つのバイトとを選択す
る。これらのバイト値をマルチプレクサ48によりロテ
ータ49へ転送する。ロテータ49は加算器54から長
さ値の2と、ねじり値3との差(−1)を受信し、マル
チプレクサ48により転送されたデータを左へ1バイト
回転させる。この結果、最上位の5つのバイトは出力端
子への転送に備えてバイトレーン0〜4に整列する。
尚、この時点で、第2の語の最終バイトを除く全バイト
は宛先構成要素へ転送され終わっている。
【0056】この時点で、長さ値はサイズにより値2か
ら値7へと再び増分される。レジスタ47に保持されて
いる第2の語も、レジスタ45に保持されている第3の
語もまだ完全には転送されていないので、第6のサイク
ルの間にそれらの値をレジスタ47及び45に保持す
る。レジスタ52に保持されている長さ値をデコーダ5
5へ転送し、マルチプレクサ48にレジスタ47からの
残る1つの有効バイトと、レジスタ45からの7つのバ
イトとを選択させる。それらのバイトをマルチプレクサ
48によりロテータ49へ転送する。加算器54は長さ
値の7をねじり値3と組合わせて、値4を得る。そこ
で、ロテータ49はマルチプレクサ48により供給され
たデータを回転させるので、データは右へバイトレーン
4本分シフトして、バイトレーン0〜4に現れる。
【0057】ここで再び先の転送に由来する転送サイズ
の5を加算器51によりレジスタ52の値に加算し、転
送済バイトの総数として20の値を得る(モジュロ8フ
ォーマットに記憶するときには4の長さとなる)。この
長さ4は、第3の語の中の合わせて6つのバイトが転送
されたため、残るのは2バイトのみであることを指示す
る。第2の語は出力端子へ完全に転送されてしまってい
るので、第7のサイクルでは、第3の語をレジスタ47
へ転送する。レジスタ52に保持されている長さ値4は
デコーダ55にマルチプレクサ48を動作させ、マルチ
プレクサ48はレジスタ47に保持されている第3の語
の最後の2つのバイトと、有効データを含まないレジス
タ45からの初めの4つのバイトとを選択する。加算器
54は1の値(長さ値4からねじり値3から減算したも
の)を転送するので、ロテータ49にマルチプレクサ4
8により転送されたデータを右へバイトレーン1つだけ
回転させる。その結果、最後の2つの有効バイトはバイ
トレーン3及び4に乗って宛先構成要素へ転送される。
【0058】この時点で、サイズ値を加算器51へ転送
して、長さレジスタ52の値を増分する。この場合に転
送されるサイズ値は最前の転送でパケット中に残ってい
る値(バイト単位、すなわち、2)と等価である。この
値は、サイズをそれが標準サイズ値(この場合には5で
ある)より小さいときにはパケットの残り値と等しくな
るように選択する比較器を使用することにより実現され
る。そこで、レジスタ52は、レジスタ45及び47の
全ての有効バイトが転送され終わっており、転送は完了
したことを示す値6を保持する。転送サイズはインタフ
ェースにより装置にも供給されるので、装置は最終転送
の2つのバイトのみが有効であることを承知している。
【0059】本発明を好ましい一実施例に関して説明し
たが、本発明の趣旨から逸脱せずに当業者により様々な
変形や変更を実施しうることは理解されるであろう。従
って、本発明は特許請求の範囲によって評価されるべき
である。
【図面の簡単な説明】
【図1】典型的なコンピュータシステムを示すブロック
線図。
【図2】様々なコンピュータ構成要素とインタフェース
することが望ましいときに使用するいくつかの異なるフ
ォーマットを示す図。
【図3】本発明に従って構成したポリモーフィックイン
タフェースを示すブロック線図。
【図4】図3の回路の特定の位置で保持されているデー
タを表わす一連の図。
【図5】本発明に従って構成したポリモーフィックイン
タフェースを詳細に示すブロック線図。
【図6】図5のインタフェースの特定の位置で保持され
ているデータを表わす一連の図。
【図7】図5のインタフェースの特定の位置で保持され
ているデータを表わす一連の図。
【符号の説明】
10 インタフェース回路 11,12 レジスタ 13 マルチプレクサ 14 データ源 15 ロテータ回路 16 カウンタ回路 17 レジスタ 18 ロテータ回路 19 制御回路 20 マルチプレクサ 23 増分回路 25 第2の変換チャネル 30 インタフェース回路 31 ランダムアクセスメモリ 35 ロテータ 37 加算器回路 38,41 レジスタ 39 加算器 42 マルチプレクサ 43 デコーダ 45,47,50 レジスタ 46,48 マルチプレクサ 49 ロテータ 51 加算器 52 長さレジスタ 54 加算器 55 デコーダ
フロントページの続き (72)発明者 チャールズ・エム・フレイグ アメリカ合衆国 95014 カリフォルニア 州・カッパチーノ・ロックウッド ドライ ブ・ナンバービイ・10444 (72)発明者 ディーン・エム・ドラコ アメリカ合衆国 95014 カリフォルニア 州・カッパチーノ・ワイルドフラワー コ ート・11655

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータフォーマットの中の1つを
    とるデータをそれら複数のデータフォーマットのうち残
    るフォーマットのいずれか1つのフォーマットをとるデ
    ータに変換する回路において、第1の数の入力データバ
    イトからのデータを記憶する手段と、データを記憶する
    手段により記憶された第1の数のデータバイトと、第2
    の数の入力データバイトとから未使用のデータを選択す
    る手段と、選択した未使用のバイトを数値バイト順に配
    列する手段と、数値バイト順のデータを宛先装置のフォ
    ーマットへの移行のためのバイト位置に配列する手段と
    を具備するフォーマットを変換する回路。
  2. 【請求項2】 複数のデータフォーマットの中の1つを
    とるデータをそれら複数のデータフォーマットのうち残
    るフォーマットのいずれか1つのフォーマットをとるデ
    ータに変換する回路において、それぞれが第2のフォー
    マットの中のデータのバイトの数と等しい複数のグルー
    プとして、第1のフォーマットで現れるデータを記憶す
    る手段と、データを記憶する手段により記憶されたグル
    ープの中の第1のグループとデータを記憶する手段によ
    り記憶されたグループの中の第2のグループとから未使
    用バイトを選択する手段と、選択した未使用バイトを数
    値バイト順に配列する手段と、数値バイト順のデータを
    宛先装置のフォーマットへの転送のためのバイト位置に
    配列する手段とを含む第1のチャネルを具備するフォー
    マットを変換する回路。
JP4357319A 1991-12-30 1992-12-24 フォーマットを変換する回路 Withdrawn JPH05298060A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/815,828 US5410677A (en) 1991-12-30 1991-12-30 Apparatus for translating data formats starting at an arbitrary byte position
US815,828 1991-12-30

Publications (1)

Publication Number Publication Date
JPH05298060A true JPH05298060A (ja) 1993-11-12

Family

ID=25218954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4357319A Withdrawn JPH05298060A (ja) 1991-12-30 1992-12-24 フォーマットを変換する回路

Country Status (3)

Country Link
US (1) US5410677A (ja)
JP (1) JPH05298060A (ja)
GB (1) GB2263000A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005063410A (ja) * 2003-08-08 2005-03-10 Samsung Electronics Co Ltd 複数のバスを駆動するマルチバス駆動装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
US5991530A (en) * 1993-02-05 1999-11-23 Canon Denshi Kabushiki Kaisha Interface device receivable in card storage device slot of host computer
GB9402470D0 (en) * 1994-02-09 1994-03-30 Texas Instruments Ltd Improvements in or relating to mask generation
US5634013A (en) * 1995-05-03 1997-05-27 Apple Computer, Inc. Bus bridge address translator
US5819117A (en) * 1995-10-10 1998-10-06 Microunity Systems Engineering, Inc. Method and system for facilitating byte ordering interfacing of a computer system
US5970236A (en) * 1995-11-14 1999-10-19 Compaq Computer Corporation Circuit for selectively performing data format conversion
US5864859A (en) * 1996-02-20 1999-01-26 International Business Machines Corporation System and method of compression and decompression using store addressing
US5778359A (en) * 1996-04-18 1998-07-07 Davox Corporation System and method for determining and verifying a file record format based upon file characteristics
US5995028A (en) * 1998-02-12 1999-11-30 Powerchip Semiconductor Corp. Circuit for removing bubble errors occurring in thermal codes
US6233642B1 (en) * 1999-01-14 2001-05-15 International Business Machines Corporation Method of wiring a 64-bit rotator to minimize area and maximize performance
US7213129B1 (en) * 1999-08-30 2007-05-01 Intel Corporation Method and system for a two stage pipelined instruction decode and alignment using previous instruction length
US6687262B1 (en) * 2000-02-21 2004-02-03 Hewlett-Packard Development Company, L.P. Distributed MUX scheme for bi-endian rotator circuit
JP2001243791A (ja) * 2000-02-25 2001-09-07 Mitsubishi Electric Corp データ記憶装置、データ測定装置、半導体解析装置および半導体装置
US6438638B1 (en) 2000-07-06 2002-08-20 Onspec Electronic, Inc. Flashtoaster for reading several types of flash-memory cards with or without a PC
US7295443B2 (en) 2000-07-06 2007-11-13 Onspec Electronic, Inc. Smartconnect universal flash media card adapters
US6647444B2 (en) * 2000-12-29 2003-11-11 Intel Corporation Data synchronization interface
JP3775597B2 (ja) * 2001-01-26 2006-05-17 インフィネオン テクノロジーズ ノース アメリカ コーポレイション データ配列の方法およびその装置
US6813734B1 (en) * 2001-01-26 2004-11-02 Catamaran Communications Incorporated Method and apparatus for data alignment
US6965606B2 (en) 2001-01-26 2005-11-15 Exar Corporation Method and apparatus for byte rotation
US7130916B2 (en) * 2001-02-23 2006-10-31 International Business Machines Corporation Linking frame data by inserting qualifiers in control blocks
CN111866579A (zh) * 2020-07-27 2020-10-30 无锡和博永新科技有限公司 一种v4l2的数据转换方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3109162A (en) * 1959-01-15 1963-10-29 Ibm Data boundary cross-over and/or advance data access system
NL7608165A (nl) * 1976-07-23 1978-01-25 Philips Nv Inrichting voor het besturen van informatie- stromen.
US4358829A (en) * 1980-04-14 1982-11-09 Sperry Corporation Dynamic rank ordered scheduling mechanism
US4402040A (en) * 1980-09-24 1983-08-30 Raytheon Company Distributed bus arbitration method and apparatus
US4423480A (en) * 1981-03-06 1983-12-27 International Business Machines Corporation Buffered peripheral system with priority queue and preparation for signal transfer in overlapped operations
US4413258A (en) * 1981-12-14 1983-11-01 Burroughs Corporation Interconnection for local area contention networks
DE3213345C2 (de) * 1982-04-08 1984-11-22 Siemens Ag, 1000 Berlin Und 8000 Muenchen Datenübertragungseinrichtung zwischen zwei asynchron gesteuerten Datenverarbeitungssystemen
IT1159351B (it) * 1983-02-03 1987-02-25 Cselt Centro Studi Lab Telecom Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore
US4606002A (en) * 1983-05-02 1986-08-12 Wang Laboratories, Inc. B-tree structured data base using sparse array bit maps to store inverted lists
JPS59226923A (ja) * 1983-05-27 1984-12-20 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン バスインタ−フエ−ス装置
US4620278A (en) * 1983-08-29 1986-10-28 Sperry Corporation Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus
FR2553910B1 (fr) * 1983-10-24 1986-03-21 Commissariat Energie Atomique Detecteur thermoelectrique d'alignement d'un faisceau laser et dispositif d'asservissement utilisant ce detecteur, pour l'alignement automatique d'un faisceau laser
US4766536A (en) * 1984-04-19 1988-08-23 Rational Computer bus apparatus with distributed arbitration
JPS61139866A (ja) * 1984-12-11 1986-06-27 Toshiba Corp マイクロプロセツサ
US4683534A (en) * 1985-06-17 1987-07-28 Motorola, Inc. Method and apparatus for interfacing buses of different sizes
JPS6226561A (ja) * 1985-07-26 1987-02-04 Toshiba Corp パ−ソナルコンピユ−タ
IL81763A0 (en) * 1986-04-11 1987-10-20 Symbolics Inc Disk controller bus interface
US4837682A (en) * 1987-04-07 1989-06-06 Glen Culler & Associates Bus arbitration system and method
US4937733A (en) * 1987-05-01 1990-06-26 Digital Equipment Corporation Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
US5111424A (en) * 1987-05-01 1992-05-05 Digital Equipment Corporation Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfer
US4864496A (en) * 1987-09-04 1989-09-05 Digital Equipment Corporation Bus adapter module for interconnecting busses in a multibus computer system
US5193197A (en) * 1987-09-24 1993-03-09 Digital Equipment Corporation Apparatus and method for distributed dynamic priority arbitration for access to a shared resource
US4965723A (en) * 1987-10-23 1990-10-23 Digital Equipment Corporation Bus data path control scheme
US4920486A (en) * 1987-11-23 1990-04-24 Digital Equipment Corporation Distributed arbitration apparatus and method for shared bus
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
US5097437A (en) * 1988-07-17 1992-03-17 Larson Ronald J Controller with clocking device controlling first and second state machine controller which generate different control signals for different set of devices
US4953081A (en) * 1988-12-21 1990-08-28 International Business Machines Corporation Least recently used arbiter with programmable high priority mode and performance monitor
US5222223A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Method and apparatus for ordering and queueing multiple memory requests
CA2011935A1 (en) * 1989-04-07 1990-10-07 Desiree A. Awiszio Dual-path computer interconnect system with four-ported packet memory control
US5167019A (en) * 1989-06-23 1992-11-24 Digital Equipment Corporation Apparatus and method for interconnecting a plurality of devices to a single node in a node-limited serial data bus computer network
US5179557A (en) * 1989-07-04 1993-01-12 Kabushiki Kaisha Toshiba Data packet communication system in which data packet transmittal is prioritized with queues having respective assigned priorities and frequency weighted counting of queue wait time
US5151994A (en) * 1989-11-13 1992-09-29 Hewlett Packard Company Distributed fair arbitration system using separate grant and request lines for providing access to data communication bus
US5220653A (en) * 1990-10-26 1993-06-15 International Business Machines Corporation Scheduling input/output operations in multitasking systems
US5191653A (en) * 1990-12-28 1993-03-02 Apple Computer, Inc. Io adapter for system and io buses having different protocols and speeds
JP2625589B2 (ja) * 1991-04-22 1997-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・システム
GB2256563B (en) * 1991-06-04 1995-05-10 Digital Equipment Int Packet age control in computer networks
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005063410A (ja) * 2003-08-08 2005-03-10 Samsung Electronics Co Ltd 複数のバスを駆動するマルチバス駆動装置

Also Published As

Publication number Publication date
GB2263000A (en) 1993-07-07
US5410677A (en) 1995-04-25
GB9223276D0 (en) 1992-12-23

Similar Documents

Publication Publication Date Title
JPH05298060A (ja) フォーマットを変換する回路
US5961640A (en) Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
KR970007276B1 (ko) 데이터 전송장치
US4361868A (en) Device for increasing the length of a logic computer address
US4509113A (en) Peripheral interface adapter circuit for use in I/O controller card having multiple modes of operation
EP0416281B1 (en) Data buffer
US4131940A (en) Channel data buffer apparatus for a digital data processing system
US4970642A (en) An apparatus for accessing a memory
GB2131578A (en) Byte-addressable memory system
US3978456A (en) Byte-by-byte type processor circuit
JPH0619752B2 (ja) データ転送方法及び装置
JPS63106060A (ja) ディジタルデ−タ処理システム用高速相互接続装置
US5634013A (en) Bus bridge address translator
EP0328450B1 (en) Direct memory access controller
US6128733A (en) Program loading method and apparatus
EP0010197A1 (en) Data processing system for interfacing a main store with a control sectron and a data processing section
US5687328A (en) Method and apparatus for aligning data for transfer between a source memory and a destination memory over a multibit bus
US4575796A (en) Information processing unit
US5265228A (en) Apparatus for transfer of data units between buses
GB2234096A (en) Chunky planar data packing
US4237545A (en) Programmable sequential logic
US8327108B2 (en) Slave and a master device, a system incorporating the devices, and a method of operating the slave device
US5677859A (en) Central processing unit and an arithmetic operation processing unit
US5671434A (en) Microprocessor controlled apparatus
US5388239A (en) Operand address modification system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000307