JP2008198218A - コンピュータシステム及びデータ転送方法 - Google Patents
コンピュータシステム及びデータ転送方法 Download PDFInfo
- Publication number
- JP2008198218A JP2008198218A JP2008052554A JP2008052554A JP2008198218A JP 2008198218 A JP2008198218 A JP 2008198218A JP 2008052554 A JP2008052554 A JP 2008052554A JP 2008052554 A JP2008052554 A JP 2008052554A JP 2008198218 A JP2008198218 A JP 2008198218A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data bytes
- transferred
- processor
- control header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
- Memory System (AREA)
- Bus Control (AREA)
Abstract
【課題】プロセッサから入出力バスを介して周辺デバイスに複数のデータバイトを転送するためのデータ転送方法及びそのシステムを提供する。
【解決手段】入出力バスを介して周辺デバイスに複数のデータバイトを転送するための手段と、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なう手段と、を備えたプロセッサと、前記周辺デバイスに接続され、前記プロセッサから転送された前記データバイトと前記制御ヘッダを受信して当該転送されたデータバイトが再整合を必要とするか否かを決定し、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうための整合手段とを備える。
【選択図】図5
【解決手段】入出力バスを介して周辺デバイスに複数のデータバイトを転送するための手段と、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なう手段と、を備えたプロセッサと、前記周辺デバイスに接続され、前記プロセッサから転送された前記データバイトと前記制御ヘッダを受信して当該転送されたデータバイトが再整合を必要とするか否かを決定し、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうための整合手段とを備える。
【選択図】図5
Description
本発明は、一般にコンピューターメモリ内のデータ転送に関し、特にメモリへデータを疑似整合して転送(以下、データ疑似整合転送という)する方法および装置に関する。
コンピュータシステムにおいては入出力バス(I/Oバス)を介してしばしばプロセッサ、メモリおよび周辺デバイス間でデータが転送される。従来はISA、EISAあるいはマイクロチャンネル(登録商標)バスの様な標準化されたバスを使っていろいろのプラットフォームおよびいろいろのプロセッサにまたがる周辺デバイスに一つの共通I/Oインターフェースを与えていた。しかしながらこれらのバスにまたがるデータ転送には多くの問題がある。
バスにまたがるデータ転送に関わる問題の一つは、データの未整合転送(unalignment transfer of data)である。未整合転送は一ブロックのデータバイトがソースおよびまたはデスティネーション(目標)における一ワードもしくはダブルワードの境界(boudary)に整合されていないときに起きる。そのような不整合は転送中にバイトブロックをシフトし、およびまたはマスキングを行なう点でプロセッサまたはデバイスに著しいオーバーヘッドを起こしかねない。例えばインテル(登録商標)386および486プロセッサ内の未整合転送は等価な整合転送に比べて50%ないし250%遅くなることがある。したがって、メモリへの未整合データ転送を最適化するための方法および装置を与える必要がある。
上記の先行技術における限界を克服するため、かつ本明細書の以下の記載から明らかになる他の制限を克服するため、本発明はメモリへのデータの疑似整合転送を与える方法および装置を与える。
このため、本発明は、入出力バスを介して周辺デバイスに複数のデータバイトを転送するための手段と、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なう手段と、を備えたプロセッサと、前記周辺デバイスに接続され、前記プロセッサから転送された前記データバイトと前記制御ヘッダを受信して当該転送されたデータバイトが再整合を必要とするか否かを決定し、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうための整合手段と、を含むコンピュータシステムを提供するものである。
また、本発明は、入出力バスを介して周辺デバイスに複数のデータバイトを転送するための手段と、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なう手段と、を備えたプロセッサと、前記周辺デバイスに接続され、前記プロセッサから転送された前記データバイトと前記制御ヘッダを受信して当該転送されたデータバイトが再整合を必要とするか否かを決定し、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうための整合手段と、を含み、前記制御ヘッダは、前記転送されるデータバイトの回転とその方向に係る情報を有し、前記整合手段は、前記制御ヘッダを解釈する手段と有し、前記転送されたデータバイトの回転による整合処理を行なうことを特徴とするコンピュータシステムを提供するものである。
さらに、本発明は、コンピュータシステムにおけるデータ転送方法であって、プロセッサから周辺デバイスに対して出入力バスを介して複数のデータバイトを転送するステップと、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なうステップと、転送された前記データバイトの整合処理を行なうステップと、の各ステップを有し、前記整合処理を行なうステップは、前記プロセッサから、前記転送されるデータバイトを受信するステップと、当該転送されたデータバイトが再整合を必要とするか否かを決定するステップと、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうステップと、の各ステップを含むことを特徴とするデータ転送方法を提供するものである。
本発明はデータが未整合である場合でも本発明で追加するソフトウェアおよびハードウェアを使用して、あたかもデータが整合されているかのごとくに未整合データの転送を行なう。この場合このソフトウェアは周辺デバイス内のハードウェアに命令を発生し、この命令によって当該周辺デバイスが未整合転送されたバイトを結合し、回転し、マスクして確実にそれらのバイトが周辺デバイス内に適切に整合させる。このため、本発明によりメモリへの高速なデータ転送が可能となる。
表IA
SEL = + DIR_RIGHT NOR (- ROTATE[0] AND - ROTATE[1])
BLOCK 32A = (DIN[7:0] AND - SEL OR (BLOCK 30A AND + SEL)
表IB
SEL = (+ DIR_RIGHT NAND + ROTATE[0] NAND - ROTATE[1]) NAND (+ ROTATE[1] NAND - DIR_RIGHT)
BLOCK 32B = (DIN[15:8] AND - SEL) OR (BLOCK 30B AND + SEL)
表IC
SEL = (- ROTATE[1] NAND + ROTATE[0] NAND + DIR_RIGHT) NAND (+ ROTATE[1] NAND - ROTATE[0] NAND + DIR_RIGHT) NAND (+ ROTATE[1] NAND + ROTATE[0] NAND - DIR_RIGHT)
BLOCK 32C = (DIN[23:16] AND - SEL) OR (BLOCK 30C AND + SEL)
表ID
SEL = (- DIR_RIGHT NOR (- ROTATE[1] AND - ROTATE[0]))
BLOCK 32D = (DIN[31:24] AND - SEL) OR (BLOCK 30D AND + SEL)
表II
SEL[0] = + ROTATE[0] NOR + ROTATE[1]
SEL[1] = - ROTATE[0] NOR + ROTATE[1]
SEL[2] = + ROTATE[0] NOR - ROTATE[1]
SEL[3] = - ROTATE[0] NOR - ROTATE[1]
BLOCK 36A = (BLOCK 32A AND SEL[0]) OR (BLOCK 32B AND SEL[1]) OR (BLOCK 32C AND SEL[2]) OR (BLOCK 32D AND SEL[3])
BLOCK 36B = (BLOCK 32B AND SEL[0]) OR (BLOCK 32C AND SEL[1]) OR (BLOCK 32D AND SEL[2]) OR (BLOCK 32A AND SEL[3])
BLOCK 36C = (BLOCK 32C AND SEL[0]) OR (BLOCK 32D AND SEL[1]) OR (BLOCK 32A AND SEL[2]) OR (BLOCK 32BD AND SEL[3])
BLOCK 36D = (BLOCK 32D AND SEL[0]) OR (BLOCK 32A AND SEL[1]) OR (BLOCK 32B AND SEL[2]) OR (BLOCK 32C AND SEL[3])
SEL = + DIR_RIGHT NOR (- ROTATE[0] AND - ROTATE[1])
BLOCK 32A = (DIN[7:0] AND - SEL OR (BLOCK 30A AND + SEL)
表IB
SEL = (+ DIR_RIGHT NAND + ROTATE[0] NAND - ROTATE[1]) NAND (+ ROTATE[1] NAND - DIR_RIGHT)
BLOCK 32B = (DIN[15:8] AND - SEL) OR (BLOCK 30B AND + SEL)
表IC
SEL = (- ROTATE[1] NAND + ROTATE[0] NAND + DIR_RIGHT) NAND (+ ROTATE[1] NAND - ROTATE[0] NAND + DIR_RIGHT) NAND (+ ROTATE[1] NAND + ROTATE[0] NAND - DIR_RIGHT)
BLOCK 32C = (DIN[23:16] AND - SEL) OR (BLOCK 30C AND + SEL)
表ID
SEL = (- DIR_RIGHT NOR (- ROTATE[1] AND - ROTATE[0]))
BLOCK 32D = (DIN[31:24] AND - SEL) OR (BLOCK 30D AND + SEL)
表II
SEL[0] = + ROTATE[0] NOR + ROTATE[1]
SEL[1] = - ROTATE[0] NOR + ROTATE[1]
SEL[2] = + ROTATE[0] NOR - ROTATE[1]
SEL[3] = - ROTATE[0] NOR - ROTATE[1]
BLOCK 36A = (BLOCK 32A AND SEL[0]) OR (BLOCK 32B AND SEL[1]) OR (BLOCK 32C AND SEL[2]) OR (BLOCK 32D AND SEL[3])
BLOCK 36B = (BLOCK 32B AND SEL[0]) OR (BLOCK 32C AND SEL[1]) OR (BLOCK 32D AND SEL[2]) OR (BLOCK 32A AND SEL[3])
BLOCK 36C = (BLOCK 32C AND SEL[0]) OR (BLOCK 32D AND SEL[1]) OR (BLOCK 32A AND SEL[2]) OR (BLOCK 32BD AND SEL[3])
BLOCK 36D = (BLOCK 32D AND SEL[0]) OR (BLOCK 32A AND SEL[1]) OR (BLOCK 32B AND SEL[2]) OR (BLOCK 32C AND SEL[3])
好ましい実施例に関する以下の説明では添付の図面を参照して本発明を実施した特定の実施例を示す。本発明の範囲を逸脱することなく他の実施例を実施しうること、および構造上の変更をなしうることを了解されたい。
引用する図面において類似の参照番号は対応する部分を表す。
データ転送を行なうための最も効率的なインテル386/486(登録商標)のインストラクション(命令)は「REP MOVSD」であるが、これは「REPeat MOVeString Double word」を意味する略号である。この命令が最も効率的に実行されるためにはソースおよびデスティネーションの両アドレスがダブルワードに整合されていること、すなわち32ビット境界に整合されていることが必要である。バイト(8−ビット)およびワード(16−ビット)の転送も許容されており、サポートされているが、それほど効率的ではない。その理由はI/Oバスが32ビット幅であるからである。しかしながら多くのアプリケーションは必ずしもデータブロックをダブルワードに整合させていない。なぜならば多くのアプリケーションは通常、データブロックにこれをストリングバイトとしてアクセスするからである。
本発明はデータが未整合である場合でもメモリへの高速な整合データ転送を可能にする。すなわち本発明はデータを疑似整合してメモリへ転送する方法と装置を与える。その場合、本発明で追加するソフトウェアおよびハードウェアがあたかもデータが整合されているかのごとくに未整合データの転送を行なう。このソフトウェアは周辺デバイス内のハードウェアに命令を発生する。この命令は当該周辺デバイスが未整合転送されたバイトを結合し、回転し、マスクして確実にそれらのバイトが周辺デバイス内に適切に整合させる。
整合転送および未整合転送図1および図2はデータの整合転送とデータの未整合転送の相異を示す例である。図1は整合した転送を示し、図2は未整合の転送を示す。図1および図2の両方とも、各ブロックは一バイトのデータを表し、四バイトからなる各水平グループによりダブルワードに整合された境界を示す。
図1は典型的なダブルワードの整合転送を示す。図示するようにソースメモリ内における各データワードS0-S3、S4-S7、S8-S11、S12-S15はデスティネーションメモリ内の対応するダブルワードD0-D3、D4-D7、D8-D11、D12-D15に転送されるときに変更を受けない。従ってこの転送は転送の際にデータのダブルワード整合を維持する。
図2はデータの未整合転送を示す。図に示すようにソースメモリ内の各バイトS0-S15はデスティネーションメモリ内の対応するバイトD0-D15に転送される際にダブルワードの相対位置を変更する。典型的な場合、整合上の変化を処理するため、バイトの結合、回転およびマスキングが必要となろう。しかしながらこれらの機能は通常、プロセッサにより非常に非能率的な方法で行なわれる。
ハードウェア環境図3は本発明の一般的なハードウェア環境を例示するブロック線図である。プロセッサ10は例えばインテル386もしくは486プロセッサであるが、これはI/Oバス14を介してビデオ回路12に結合される。このI/Oバス14はプロセッサ10とビデオ回路12との間のアドレスデータおよび制御信号の転送を行なう。ビデオ回路12の主な目的はビデオメモリ16とCRT18を制御することである。ビデオメモリ16はプロセッサ10から送られるデータを格納する。このデータは後でCRT18に書き込まれる。ビデオ回路12はプロセッサ10からビデオメモリ16へのデータ転送とビデオメモリ16からCRT18へのデータ転送との間の調停(arbitration)を行なう。
ビデオ回路図4はビデオ回路12を拡大して示すブロック線図である。ビデオ回路12は調停論理回路20、CRTコントローラ論理回路22、マルチプレクサ24および整合論理回路(alignment logic)26を含む。調停論理回路20はマルチプレクサ24を制御して調停論理回路20とプロセッサ10との間を調停し、それによりプロセッサ10、ビデオメモリ16およびCRT18へのデータ転送およびこれらからのデータ転送を制御する。CRTコントローラ論理回路22はCRT18上にデータを表示するため、ビデオメモリ16からデータの読み出しに必要なアドレスを与える。整合論理回路26はプロセッサ10からの転送データを確実にビデオメモリ16内に正しく整合させる。整合転送には結合も回転もマスキングも必要ないが、何らかの整合が実際に必要とされるか否かに関わらず、各データ転送について整合論理回路26が使用される。すべてのデータ転送が整合論理回路26を通して行なわれるというこの条件がすべてのタイミング問題を解決し、制御論理回路を簡単化する。
整合論理回路図5は本発明の整合論理回路26のコンポーネントを例示するブロック線図である。データは図5の左側にある四つのバスDATA IN(DIN)で整合論理回路26に入る。この場、各DINバスは8ビットバイトのデータを含む。マスク情報は図5の左側にあるバスMask In(MIN)で整合論理回路26に入る。この場、MINバスの各四つの信号は対応するMINバス上の8ビットバイトデータに対するマスクビットを含む。このマスクビットは当該バイトが所望のデータの一部であるか、あるいは単に疑似整合転送に伴って担持される余分のバイトであるか否かを示すためのものである。制御信号もまた図5の左側にあるALIGN LAT LO、DIR_RIGHT、およびROTATE[1:0]信号線から整合論理回路26に入る。
ブロック28a-28dはタイミングをとる目的で設けられた遅延ブロックである。ブロック30a-30dはそれぞれのDINバスから来る各8ビットデータバイトおよびMIN信号線から来る単一マスクビットをラッチングすることができる9ビットレジスタで、このラッチングはビデオ回路12により発生されたALIGNLAT LO信号によりクロックされるときに行なわれる。ブロック32a-32dはDINバス上にある現在のデータと、DINバス上に前回あったデータを表すブロック30a-30dとの間の選択を行なう2:1マルチプレクサである。この選択により、二つのシーケンシャルダブルワードからデータバイトを選択的に組み合わせて出力ダブルワードとすることが可能となる。ブロック32a-32dに対して設けられた選択論理回路34は、表IA-IDに示すブール代数論理で記述されるDIR_RIGHT信号およびROTATE[1:0]信号で駆動されるNANDゲートおよびNORゲートで構成される。ブロック36a-36dは、出力ダブルワード内のバイトを回転するため、四つのマルチプレクサ32a-32dの任意の一出力から負荷することができる9ビットレジスである。ブロック36a-36dに対して設けられた選択論理回路38は、表IIに示すブール代数により記述されるROTATE[1:0]制御信号により駆動されるNORゲートで構成される。ブロック36a-36dに対する選択論理回路38は、「バレルシフティング(barrel shifting)」の機能を果たす。この場合、各ブロック32a-32dから得られるバイトを任意のブロック36a-36dの中に格納することができる。ROTATE[1:0]信号はバイトの回転、すなわちいずれのブロック32a-32dのバイトを各ブロック36a-36d中に格納されるべきか、を示す。
データは図5の右側にある四つのバスData Out(DOUTバス)において整合論理回路26から出る。この場合、各DOUTバスは8ビットデータバイトを含む。マスク情報もまた図5の右側にあるMask Outバス(MOUTバス)から整合論理回路26を出る。この場合、MOUTバス内の四つの信号は各々、対応するDOUTバス上の8ビットデータバスをビデオメモリ16内に格納すべきか否かを示す。
ソフトウェア ドライバ モジュール図6は、本発明のソフトウェア・ドライバモジュールが使用する論理を例示するブロック線図である。このソフトウェア・ドライバモジュールは、プロセッサ10上で実行され、プロセッサ10から送られるデータの疑似整合転送を制御する。ブロック40はデータブロックをプロセッサ10からビデオメモリ16に移動させる旨のアプリケーションリクエストを受信するドライバモジュールを表す。この場合、当該データブロックはその開始バイトアドレスとバイト長により同定される。
ブロック42は当該転送のための制御ヘッダを計算しフォーマット化するドライバモジュールを表す。この制御ヘッダは当該ソースアドレス、デスティネーションアドレス、バイト長、および制御ワードを含む。各整合制御ワードは対応するダブルワードに対するROTATE[1:0]、DIR_RIGHTおよびMIN[3:0]信号を表す7ビットを含む。上述したように、制御ヘッダ中のROTATE[1:0]ビット、DIR_RIGHTビットおよびMIN[3:0]ビットは整合論理回路26に、転送の真性、すなわち当該バイトが回転されるべきか否か、回転の方向、および余分のバイトのマスキング、を通知する。例えば図2に示すデータの転送は五つのシーケンシャルダブルワードを転送することと、一バイトの右回転が必要であろう。さらに、S15の左の二つの余分のバイトおよびS0の右の余分の二バイトがマスクされることになろう。
ブロック44は整合した転送が確実に行われるように、プロセッサ10に与えられるソースアドレス、デスティネーションアドレスおよびバイト長を修正するドライバモジュールを表す。ブロック46は、プロセッサ10に命令してプロセッサ10がビデオ回路12に制御ヘッダおよび疑似整合データブロック(pseudo-aligned data block)を転送させるドライバモジュールを表す。
ビデオ回路12はステートマシン(state machine)とFIFOとを含む。これらのFIFOは、プロセッサ10からの転送を緩衝(buffer)してからALIGNLAT LO信号、DIR_RIGHT信号およびROTATE[1:0]制御信号線のみならずDINバス信号およびMINバス信号を整合論理回路26中に送る。そのようなステートマシンおよびFIFOの設計は本技術分野でよく知られているのでここには之以上詳細に述べない。
結論要約すると、本発明はメモリへデータを疑似整合して転送する方法および装置を開示する。通常、周辺デバイスに結合される整合論理回路がプロセッサから複数のデータバイトを受信する。この整合論理回路は、当該データバイトが再整合を必要とするか否かを決定するためのデータバイトと共に転送される制御ヘッダを使用する。再整合を実行するため、整合論理回路は制御ヘッダにより示される通りに当該データバイトを結合し、回転し、マスキングする。
本発明の好ましい実施例に関する上記の説明は例示および説明のために示したに過ぎない。上記説明が本発明を言い尽したものではなく、また開示した通りのものに本発明を限定するものでもない。上の教示に照らして多数の設計変更および修正が可能である。例えば以下の節は本発明を達成する代わりの方法および装置を記述している。
当業者はメモリを有する任意のデバイスに本発明を適用することができ、ビデオコントローラに限定されないことが認識できよう。本明細書で引用したビデオをコントローラは単に例示の目的のための物であって、これですべての適用対象を言い尽したのではなく、また開示した形態のものに限定されるものではない。
当業者はいろいろの構成のデバイスおよび諸コンポーネントを具備したシステムに本発明を適用することができることが認識できよう。本明細書で引用した構成のデバイスおよび諸コンポーネントは単に例示の目的のための物であって、これですべての適用対象を言い尽したのではなく、また開示した形態のものに限定されるものではない。
当業者はいろいろのバット幅のI/Oバスに本発明を適用することができることが認識できよう。本明細書で引用したビット幅は単に例示の目的のための物であって、これですべての適用対象を言い尽したのではなく、また開示した形態のものに限定されるものではない。
当業者はいろいろのインストラクションの集合を具備したいろいろのプロセッサに本発明を適用することができることが認識できよう。本明細書で引用したプロセッサおよびインストラクションの集合は単に例示の目的のための物であって、これですべての適用対象を言い尽したのではなく、また開示した形態のものに限定されるものではない。
10 プロセッサ
12 ビデオ回路
14 I/Oバス
16 ビデオメモリ
18 CRT
20 調停論理回路
22 CRTコントローラ論理回路
24 マルチプレクサ
26 整合論理回路
28 遅延ブロック
30 9ビットレジスタ
32 2:1マルチプレクサ
34 選択論理回路
36 9ビットレジス
38 選択論理回路
12 ビデオ回路
14 I/Oバス
16 ビデオメモリ
18 CRT
20 調停論理回路
22 CRTコントローラ論理回路
24 マルチプレクサ
26 整合論理回路
28 遅延ブロック
30 9ビットレジスタ
32 2:1マルチプレクサ
34 選択論理回路
36 9ビットレジス
38 選択論理回路
Claims (7)
- 入出力バスを介して周辺デバイスに複数のデータバイトを転送するための手段と、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なう手段と、を備えたプロセッサと、
前記周辺デバイスに接続され、前記プロセッサから転送された前記データバイトと前記制御ヘッダを受信して当該転送されたデータバイトが再整合を必要とするか否かを決定し、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうための整合手段と、
を含むコンピュータシステム。 - 入出力バスを介して周辺デバイスに複数のデータバイトを転送するための手段と、前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なう手段と、を備えたプロセッサと、
前記周辺デバイスに接続され、前記プロセッサから転送された前記データバイトと前記制御ヘッダを受信して当該転送されたデータバイトが再整合を必要とするか否かを決定し、前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうための整合手段と、を含み
前記制御ヘッダは、前記転送されるデータバイトの回転とその方向に係る情報を有し、
前記整合手段は、前記制御ヘッダを解釈する手段と有し、前記転送されたデータバイトの回転による整合処理を行なうことを特徴とするコンピュータシステム。 - 前記制御ヘッダは、前記転送されるデータバイトのソースアドレス、デスティネーションアドレス、バイト長及び制御ワードを含むことを特徴とする請求項2に記載のコンピュータシステム。
- コンピュータシステムにおけるデータ転送方法であって、
プロセッサから周辺デバイスに対して出入力バスを介して複数のデータバイトを転送するステップと、
前記転送されるデータバイトの整合情報を有する制御ヘッダのフォーマット化と送信を行なうステップと、
転送された前記データバイトの整合処理を行なうステップと、の各ステップを有し、
前記整合処理を行なうステップは、
前記プロセッサから、前記転送されるデータバイトを受信するステップと、
当該転送されたデータバイトが再整合を必要とするか否かを決定するステップと、
前記制御ヘッダに基づいて前記再整合を実行するために前記転送されたデータバイトの擬似整合を行なうステップと、の各ステップを含むことを特徴とするデータ転送方法。 - 前記整合手段は、
前記プロセッサから送信されてくる転送データを格納するための第1の回路と、
前記プロセッサから送信されてくる転送データと前記第1の回路に既に格納されている転送データとを選択的に組み合わせることにより、整合されたグループのデータバイトを作成するための第2の回路と、
前記整合されたグループのデータバイトが、先に整合されたグループのデータバイトとの間で正しく配置されるように前記整合されたグループのデータバイトを選択的に再配置するための第3の回路と、
の各回路を備えることを特徴とする請求項1に記載のコンピュータシステム。 - 前記制御ヘッダは、前記転送されるデータバイトのソースアドレスと、デスティネーションアドレスと、バイト長と、整合制御ワードと、マスク情報と、を含み、
前記整合手段は、前記マスク情報に基づいて前記転送データをマスキングするための手段を備えた、ことを特徴とする請求項3に記載のコンピュータシステム。 - 前記再整合を行なうステップは、
前記プロセッサから送信されてくる転送データと既に送信されてきた転送データとを選択的に組み合わせることにより、整合されたグループのデータバイトを作成するステップと、
前記整合されたグループのデータバイトが、先に整合されたグループのデータバイトとの間で正しく配置されるように前記整合されたグループのデータバイトを選択的に再配置するするステップと、の各ステップを含むことを特徴とする請求項4に記載のコンピュータシステムにおけるデータ転送方法。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/082,862 US5680642A (en) | 1993-06-25 | 1993-06-25 | Method and apparatus for pseudo-aligned transfers of data to memory wherein a re-alignment is performed based on the data byte control header |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13923694A Division JP4260901B2 (ja) | 1993-06-25 | 1994-06-22 | メモリへのデータの疑似整合転送の方法と装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008198218A true JP2008198218A (ja) | 2008-08-28 |
Family
ID=22173914
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13923694A Expired - Lifetime JP4260901B2 (ja) | 1993-06-25 | 1994-06-22 | メモリへのデータの疑似整合転送の方法と装置 |
| JP2008052554A Pending JP2008198218A (ja) | 1993-06-25 | 2008-03-03 | コンピュータシステム及びデータ転送方法 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13923694A Expired - Lifetime JP4260901B2 (ja) | 1993-06-25 | 1994-06-22 | メモリへのデータの疑似整合転送の方法と装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5680642A (ja) |
| EP (1) | EP0631238A1 (ja) |
| JP (2) | JP4260901B2 (ja) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6145017A (en) * | 1997-08-05 | 2000-11-07 | Adaptec, Inc. | Data alignment system for a hardware accelerated command interpreter engine |
| US6622232B2 (en) | 2001-05-18 | 2003-09-16 | Intel Corporation | Apparatus and method for performing non-aligned memory accesses |
| US7296108B2 (en) * | 2005-05-26 | 2007-11-13 | International Business Machines Corporation | Apparatus and method for efficient transmission of unaligned data |
| US7873066B2 (en) * | 2009-01-26 | 2011-01-18 | International Business Machines Corporation | Streaming direct inter-thread communication buffer packets that support hardware controlled arbitrary vector operand alignment in a densely threaded network on a chip |
| US8799411B2 (en) * | 2010-05-28 | 2014-08-05 | Arvato Digital Services Canada, Inc. | Method and apparatus for providing enhanced streaming content delivery with multi-archive support using secure download manager and content-indifferent decoding |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS6019809B2 (ja) * | 1979-12-26 | 1985-05-18 | 株式会社日立製作所 | デ−タ処理装置 |
| US4602350A (en) * | 1981-10-13 | 1986-07-22 | Trw Inc. | Data reordering memory for use in prime factor transform |
| CA1235189A (en) * | 1985-01-14 | 1988-04-12 | Haruhiko Akiyama | Error correction encoding system |
| US5287537A (en) * | 1985-11-15 | 1994-02-15 | Data General Corporation | Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command |
| US4722050A (en) * | 1986-03-27 | 1988-01-26 | Hewlett-Packard Company | Method and apparatus for facilitating instruction processing of a digital computer |
| US4845664A (en) * | 1986-09-15 | 1989-07-04 | International Business Machines Corp. | On-chip bit reordering structure |
| US4932026A (en) * | 1986-12-19 | 1990-06-05 | Wang Laboratories, Inc. | Apparatus for distributing data processing across a plurality of loci of control |
| US4860219A (en) * | 1987-02-26 | 1989-08-22 | National Business Systems, Inc. | High speed printer |
| US4897799A (en) * | 1987-09-15 | 1990-01-30 | Bell Communications Research, Inc. | Format independent visual communications |
| EP0363176B1 (en) * | 1988-10-07 | 1996-02-14 | International Business Machines Corporation | Word organised data processors |
| US5222225A (en) * | 1988-10-07 | 1993-06-22 | International Business Machines Corporation | Apparatus for processing character string moves in a data processing system |
| US5187783A (en) * | 1989-03-15 | 1993-02-16 | Micral, Inc. | Controller for direct memory access |
| US5269001A (en) * | 1989-07-28 | 1993-12-07 | Texas Instruments Incorporated | Video graphics display memory swizzle logic circuit and method |
| US5287470A (en) * | 1989-12-28 | 1994-02-15 | Texas Instruments Incorporated | Apparatus and method for coupling a multi-lead output bus to interleaved memories, which are addressable in normal and block-write modes |
| US5491811A (en) * | 1992-04-20 | 1996-02-13 | International Business Machines Corporation | Cache system using mask bits to recorder the sequences for transfers of data through cache to system memory |
| US5321697A (en) * | 1992-05-28 | 1994-06-14 | Cray Research, Inc. | Solid state storage device |
| US5574923A (en) * | 1993-05-10 | 1996-11-12 | Intel Corporation | Method and apparatus for performing bi-endian byte and short accesses in a single-endian microprocessor |
-
1993
- 1993-06-25 US US08/082,862 patent/US5680642A/en not_active Expired - Lifetime
-
1994
- 1994-06-22 JP JP13923694A patent/JP4260901B2/ja not_active Expired - Lifetime
- 1994-06-23 EP EP94304589A patent/EP0631238A1/en not_active Withdrawn
-
2008
- 2008-03-03 JP JP2008052554A patent/JP2008198218A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP0631238A1 (en) | 1994-12-28 |
| JP4260901B2 (ja) | 2009-04-30 |
| JPH07141256A (ja) | 1995-06-02 |
| US5680642A (en) | 1997-10-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5568619A (en) | Method and apparatus for configuring a bus-to-bus bridge | |
| US5448703A (en) | Method and apparatus for providing back-to-back data transfers in an information handling system having a multiplexed bus | |
| US5761462A (en) | Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across multiple PCI host bridges within a data-processing system | |
| US4467447A (en) | Information transferring apparatus | |
| EP0627688B1 (en) | Provision of accurate and complete communication between different bus architectures | |
| US20040010652A1 (en) | System-on-chip (SOC) architecture with arbitrary pipeline depth | |
| JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
| JP2008198218A (ja) | コンピュータシステム及びデータ転送方法 | |
| US6266723B1 (en) | Method and system for optimizing of peripheral component interconnect PCI bus transfers | |
| KR100291409B1 (ko) | 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치 | |
| EP0331487B1 (en) | Data transfer control system | |
| US6351725B1 (en) | Interface apparatus | |
| EP0840223A1 (en) | Microcomputer capable of accessing an external memory | |
| US5371863A (en) | High speed processor bus extension | |
| KR920002830B1 (ko) | 다이렉트 메모리 액세스 제어장치 | |
| KR100261154B1 (ko) | 직접 메모리 액세스 제어 장치 | |
| US6675252B1 (en) | Accelerated graphics port (AGP) controller supporting fast write transactions | |
| KR20040086546A (ko) | 버스를 통한 데이터 전송을 제어하는 방법, 시스템 및 컴퓨터 시스템 | |
| EP0391537B1 (en) | Lock converting bus-to-bus interface system | |
| JPS5952331A (ja) | 機器アドレス設定装置 | |
| KR0176087B1 (ko) | 시스템 제어기의 프로세서 데이타 처리회로 | |
| US6032212A (en) | Device and method for interfacing PCI and VMEbus with a byte swapping circuit | |
| JP4134371B2 (ja) | 入出力バスブリッジ装置 | |
| KR100252508B1 (ko) | 통신처리시스템의 프로세서 보드에서 롬 인터페이스장치 | |
| JPH05250310A (ja) | データ処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090910 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100226 |