JP2008033722A - エンディアン変換回路を備えたデータ転送制御装置 - Google Patents

エンディアン変換回路を備えたデータ転送制御装置 Download PDF

Info

Publication number
JP2008033722A
JP2008033722A JP2006207745A JP2006207745A JP2008033722A JP 2008033722 A JP2008033722 A JP 2008033722A JP 2006207745 A JP2006207745 A JP 2006207745A JP 2006207745 A JP2006207745 A JP 2006207745A JP 2008033722 A JP2008033722 A JP 2008033722A
Authority
JP
Japan
Prior art keywords
transfer
data
control device
endian
write
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
Application number
JP2006207745A
Other languages
English (en)
Inventor
Ryuji Sawai
隆二 澤井
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006207745A priority Critical patent/JP2008033722A/ja
Priority to US11/785,798 priority patent/US7587535B2/en
Priority to CNA200710103017XA priority patent/CN101118525A/zh
Publication of JP2008033722A publication Critical patent/JP2008033722A/ja
Pending legal-status Critical Current

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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

【課題】データ転送制御装置において、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でバースト転送を行う場合に、アドレスが変換されることで昇順アクセスではなくなるためバースト転送できなくなる。
【解決手段】エンディアンの異なるアクセス先へデータ転送する際には、転送開始アドレスを転送バス幅でアライメントし、転送サイズを転送バス幅と転送アドレスに応じて調整することで、アクセス先でのバースト転送を可能とする。
【選択図】図2

Description

本発明は、コンピュータ・システムのバス間でのデータ転送に関する。詳細には、エンディアンの異なる装置間でのダイレクトメモリアクセス(DMA)転送制御装置や、バス間でデータを転送するためのバスアダプタ装置、かかるDMA転送制御装置やバスアダプタ装置あるいはその両方を組み込んだコンピュータ・システム、及びバス間でデータを転送する方法に関する。
プロセッサ等の装置における基本語長が複数バイトである場合に、2バイト以上のデータをメモリに格納するバイトの順番として、ビッグエンディアン方式とリトルエンディアン方式の2つがある。ビッグエンディアン方式では、データはアドレス昇順にメモリに格納され、リトルエンディアン方式では、アドレス降順に格納される。また例えば、2バイトのビッグエンディアンと、4バイトのビッグエンディアンのように、データの大きさに応じても格納する順番は異なる。例えば、4バイトのデータを格納するバイトのデータ列が、リトルエンディアンでは(data3,data2,data1,data0)となる場合に、4バイトのビッグエンディアンでは、(data0,data1,data2,data3)となり、2バイトのビッグエンディアンでは、(data2,data3,data0,data1)となる。
このように、データの格納順序については様々な方式が用いられる。これらの方式が混在するシステムにおいては、共有データの同一性を確保するために、エンディアンの違いを吸収するためのエンディアン変換を行う機構が必要である。
アクセス先のエンディアンが異なる場合のメモリアクセスでは、データの順番が異なることを考慮する必要がある。一般的な手法としては、転送先のエンディアンに合わせてデータの位置をスワップすることで、対応をとることができる。
転送バス幅とデータ幅が同じ、又はデータ幅の方が大きい場合では、データの位置の変換のみでよく、発行するアドレスを変える必要はない。しかし、転送バス幅よりもデータ幅の方が小さい場合では、データの位置の変換だけでなく、転送先のエンディアンに合わせて発行するアドレスも変える必要がある。
ある従来技術によれば、図10に示すように、エンディアンの異なるプロセッサから共有メモリへの転送バス幅よりもデータ幅の方が小さい場合に、転送バス幅における当該データの位置を変換した後の位置を指すように、アドレスの下位ビットを変換し前記共有メモリに出力するようなアドレス変換部を備えることで、転送バス幅よりもデータ幅の方が小さい場合に対応することができる(特許文献1参照)。
特開2004−287481号公報
しかしながら、上記従来技術においては、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でバースト転送しようとした場合に、アドレスが変換されることで昇順アクセスではなくなるためバースト転送できなくなり、複数回のシングル転送に分割する必要があった。
具体的に、データ転送制御装置からエンディアンの異なる転送元デバイスへリード命令を発行する場合の例を図11に示す。データ転送制御装置はリトルエンディアン、転送元デバイスはビッグエンディアンとする。リードの設定は、転送バス幅が4バイトに対して、リードデータ幅が1バイトと小さくなっている。また、リード開始アドレスが0x01、リードサイズが0x05である。このとき、転送元デバイスから取得すべきデータは、エンディアンの違いにより場所が入れ替わり、連続でなくなってしまう。このためバースト転送することができないので、シングル転送に分割してデータリードを行う。各シングルリードでは、エンディアン変換先に合わせてアドレス変換を行って、1つずつデータを取得する。ライトの場合でも同様である。
このため、従来はアクセス命令の発行回数が増加してしまい、特にレイテンシの大きなメモリへのアクセスに対しては、アクセス性能が悪くなるという問題があった。
本発明は、上記のようにエンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でバースト転送を行う場合においても、アクセス性能を悪くせずに転送先のエンディアンに対応したアクセスを行うことが可能な、データ転送制御装置を提供することを目的とする。
本発明のデータ転送制御装置は、エンディアンの異なる装置へデータ転送する際は、転送開始アドレスを転送バス幅でアライメントすることを特徴とする。
また本発明のデータ転送制御装置は、エンディアンの異なる装置へデータ転送する際は、転送サイズを前記転送バス幅と前記転送アドレスとに応じて調整することを特徴とする。
また本発明のデータ転送制御装置は、エンディアンの異なる装置へデータ転送する際は、転送終了アドレスを前記転送バス幅でアライメントすることを特徴とする。
本発明のデータ転送制御装置によれば、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でバースト転送する場合に、アドレスの変換によるシングル転送への分割を避けてバースト転送を行うことで、アクセス性能の低下を防いでエンディアン変換に対応したデータアクセスを行うことが可能となる。
また本発明のデータ転送制御装置は、ライトデータの有効なバイトを示すライトストローブ信号作成回路を備え、作成したライトストローブ信号を付加したライトデータを、エンディアン変換回路に入力することを特徴とする。
本発明のデータ転送制御装置によれば、転送開始アドレス等からライトストローブ信号を作成してエンディアン変換前のデータに付加することで、エンディアン変換後ライトデータの有効バイトの位置決定を容易に行うことが可能となる。
また本発明のデータ転送制御装置は、シングル転送の場合では、前記転送開始アドレスの調整と、前記転送サイズ又は前記転送終了アドレスの調整とを行わないことを特徴とする。
本発明のデータ転送制御装置によれば、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でシングル転送する場合に、不要な調整によってバースト転送になることを防ぐので、アクセス性能の低下を防ぐことが可能となる。
また上記本発明のデータ転送制御装置のいずれかを含む集積回路と、外部記憶装置とを有する本発明の装置は、前記データ転送制御装置の転送元又は転送先として前記外部記憶装置を用いるように構成されたことを特徴とする。
本発明の装置によれば、SDRAM等のアクセスレイテンシの大きな外部記憶装置へ、エンディアンの異なるデータに対して転送バス幅よりも小さいデータ幅でアクセスする場合でも、アクセス性能の低下を防ぐことが可能である。
なお本発明については、特許請求の範囲の独立項及び従属項で詳細に説明されているが、従属項の特徴の組み合わせを独立項の特徴と適切に組み合わせることが可能であり、特許請求の範囲で明示的に説明されているものに限らない。
以下、本発明におけるデータ転送制御装置の実施の形態を図面に基づいて詳細に説明する。なお、本発明の実施の形態において使用される手法・構成は一例であり、本発明はこれらに限定されるものでない。
《実施の形態1》
図1は、本発明の実施の形態1におけるデータ転送制御装置100の概略構成を示すブロック図である。本実施形態のデータ転送制御装置100は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA120と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB130と接続されている。121はリード転送コマンド、122はリードデータ、131はライト転送コマンド、131はライトデータである。なお、前記両バスが同一のバスでも構わない。
データ転送制御装置100は、上記のバスインタフェースA120、バスインタフェースA120から出力されるリードデータを入力とするエンディアンデータ変換回路140、エンディアンデータ変換回路140から出力されるデータを入力とするバスインタフェースB130を有している。またデータ転送制御装置100は、リード開始アドレス151を入力して調整後リード開始アドレス152を出力するリード開始アドレス調整回路150、リードサイズ171を入力して調整後リードサイズ172を出力するリードサイズ調整回路170を有し、それぞれ出力がバスインタフェースA120に入力されている。またライト開始アドレス161を入力して調整後ライト開始アドレス162を出力するライト開始アドレス調整回路160、ライトサイズ181を入力して調整後ライトサイズ182を出力するライトサイズ調整回路180を有し、それぞれ出力がバスインタフェースB130に入力されている。また設定レジスタ110を有しており、転送サイズ111、リードアドレス112、ライトアドレス113、リード側エンディアン114、ライト側エンディアン115、リードデータ幅116、ライトデータ幅117が設定されている。
なお、転送に必要な情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わない。
次に、本データ転送制御装置100において、リード側デバイスとライト側デバイスでエンディアンが異なる場合に、転送バス幅よりも小さいデータ幅でリードバースト転送する場合の動作を、具体例を用いて説明する。
図2に示す例において、データ転送制御装置100の設定レジスタやデータ制御等はリトルエンディアンで設定・制御しており、転送元デバイスはビッグエンディアンである。また、転送バス幅は4バイトであるが、リードデータ幅が1バイトと、小さい値が設定されている。また、リード開始アドレス151は0x01、リードサイズ171は0x05である。このとき、リード開始アドレス調整回路150では、入力されるリード開始アドレス151を転送バス幅でアライメントする。つまりリード開始アドレス151を、4バイトで切り下げる方向にアライメントを行い、0x00に変換する。これを調整後リード開始アドレス152として出力し、バスインタフェースA120に入力される。
またリードサイズ調整回路170では、入力されるリードサイズ171を、転送バス幅とリード開始アドレスに応じて調整する。まずリード開始アドレス151をアライメントすることによって増加するアクセス分を加算する。ここでは、0x00へのアクセス分として1を足して6となる。次に、6を転送バス幅の4で切り上げる方向にアライメントして、8に変換する。これを調整後リードサイズ172として出力し、バスインタフェースA120に入力される。
このようにして調整された、調整後リード開始アドレス152と調整後リードサイズ172をリード転送コマンド121に用いて、転送元デバイスにアクセスしリードデータ122を取得する。この例では、アドレス0x00から0x07まで、1バイトずつの8バーストでデータを取得する。この際に、データ転送制御装置のアドレスで0x00,0x06,0x07のように、不要なリードデータも取得することになるが、これらのデータは無視してライト転送に用いないようにする。
このようにリード開始アドレスとリードサイズを調整することで、転送バス幅よりも小さいデータ幅でリードバースト転送する場合に、リード側デバイスとライト側デバイスでエンディアンが異なっていても、シングル転送に分割する必要がなく、バースト転送でリードデータを取得することができる。
次に、本データ転送制御装置100において、リード側デバイスとライト側デバイスでエンディアンが異なる場合に、転送バス幅よりも小さいデータ幅でライトバースト転送する場合の動作を説明する。
図3に示す例において、ライト開始アドレス調整回路160とライトサイズ調整回路180では、リードバーストの場合と同様の手法により、ライト開始アドレスとライトサイズの調整を行い、調整後の出力をバスインタフェースB130に出力する。これと同時に、調整前のライト開始アドレス161とライトサイズ181から、ライトデータの有効なバイトが判別できるので、このバイトストローブ信号を1にセットする。図3の設定において、バイトストローブ信号はアドレス0x01から0x05までが1となる。この後、エンディアンデータ変換回路140において、バイトストローブ信号もライトデータと同様にエンディアン変換を実施する。エンディアンデータ変換回路140より出力されたライトデータとバイトストローブ信号は、バスインタフェースB130を通ってアクセス先デバイスに出力される。出力されるバイトストローブ信号は、エンディアン変換されて、アドレス0x00から0x03と0x06,0x07が1となる。アドレス0x00から0x07まで、1バイトずつの8バーストで、このバイトストローブ信号と一緒にデータを書き込む。
このようにライト開始アドレスとライトサイズを調整し、バイトストローブ信号を生成することで、転送バス幅よりも小さいデータ幅でライトバースト転送する場合に、リード側デバイスとライト側デバイスでエンディアンが異なっていても、シングル転送に分割する必要がなく、バースト転送でライトデータを書き込むことができる。
また、本データ転送制御装置100において、転送バス幅よりも転送データ幅が小さくても、転送サイズによってシングル転送の設定をされた場合には、上記のような開始アドレスとサイズの調整は行わない。仮に調整を実施すると、冗長なデータへのアクセスが増えるのみで、余計にアクセス性能が低下してしまう。このような場合は、従来手法どおりエンディアンに応じたアドレスに変換する。具体例を図4に示す。リード開始アドレス調整回路150に、リード開始アドレス151として0x01が入力されたら、エンディアン変換後のアドレス0x02に変換する。これを調整後リード開始アドレス152として出力し、バスインタフェースA120に入力される。リードサイズ調整回路170においてはリードサイズの変更は行わない。ライト転送の場合も同様である。
なお、転送開始アドレス、転送終了アドレスをアライメントする単位は転送バス幅で説明しているが、転送バス幅に限る必要はない。例えば、転送バス幅が8バイトで、エンディアン変換を行うデータの単位が4バイトと異なる場合では、4バイトの単位でアライメントを行うことも可能である。
なお、本実施の形態での動作例では、データ転送制御装置における転送レジスタの設定はリトルエンディアンで行われているが、これに限らず、ビッグエンディアン等他のエンディアン方式であっても可能なことは明らかである。
《実施の形態2》
図5は、本発明の実施の形態2におけるデータ転送制御装置200の概略構成を示すブロック図である。本実施形態のデータ転送制御装置200は、転送元デバイス又は転送元デバイスが接続されているバスが、バスインタフェースA220と接続されており、転送先デバイス又は転送先デバイスが接続されているバスが、バスインタフェースB230と接続されている。221はリード転送コマンド、222はリードデータ、231はライト転送コマンド、231はライトデータである。なお、前記両バスが同一のバスでも構わない。
データ転送制御装置200は、上記のバスインタフェースA220、バスインタフェースA220から出力されるリードデータを入力とするエンディアンデータ変換回路240、エンディアンデータ変換回路240から出力されるデータを入力とするバスインタフェースB230を有している。またデータ転送制御装置200は、リード開始アドレス251を入力して調整後リード開始アドレス252を出力するリード開始アドレス調整回路250、リード終了アドレス271を入力して調整後リード終了アドレス272を出力するリード終了アドレス調整回路270を有し、それぞれ出力がバスインタフェースA220に入力されている。またライト開始アドレス261を入力して調整後ライト開始アドレス262を出力するライト開始アドレス調整回路260、ライト終了アドレス281を入力して調整後ライト終了アドレス282を出力するライト終了アドレス調整回路280を有し、それぞれ出力がバスインタフェースB230に入力されている。また設定レジスタ210を有しており、転送サイズ211、リードアドレス212、ライトアドレス213、リード側エンディアン214、ライト側エンディアン215、リードデータ幅216、ライトデータ幅217が設定されている。
なお、転送情報を格納している設定レジスタについては、これに限らず、例えば外部端子より転送情報が入力される等、異なる方法により転送情報を与えても構わない。
次に、本データ転送制御装置200において、リード側デバイスとライト側デバイスでエンディアンが異なる場合に、転送バス幅よりも小さいデータ幅でリードバースト転送する場合の動作を、具体例を用いて説明する。
図6に示す例において、データ転送制御装置200の設定レジスタやデータ制御等はリトルエンディアンで設定・制御しており、転送元デバイスはビッグエンディアンである。また、転送バス幅は4バイトであるが、リードデータ幅が1バイトと、小さい値が設定されている。また、リード開始アドレス251は0x01、リード終了アドレス271は0x05である。このとき、リード開始アドレス調整回路250では、入力されるリード開始アドレス251を転送バス幅でアライメントする。つまりリード開始アドレス251を、4バイトで切り下げる方向にアライメントを行い、0x00に変換する。これを調整後リード開始アドレス252として出力し、バスインタフェースA220に入力される。またリード終了アドレス調整回路270では、入力されるリード終了アドレス271を、転送バス幅に応じて調整する。0x05を転送バス幅の4で切り上げる方向にアライメントして、0x07に変換する。これを調整後リード終了アドレス272として出力し、バスインタフェースA220に入力される。
このようにして調整された、調整後リード開始アドレス252と調整後リード終了アドレス272をリード転送コマンド221に用いて、転送元デバイスにアクセスしリードデータ222を取得する。この際に、データ転送制御装置のアドレスで0x00,0x06,0x07のように、不要なリードデータも取得することになるが、これらのデータは無視してライト転送に用いないようにする。
このようにリード開始アドレスとリード終了アドレスを調整することで、転送バス幅よりも小さいデータ幅でリードバースト転送する場合に、リード側デバイスとライト側デバイスでエンディアンが異なっていても、シングル転送に分割する必要がなく、バースト転送でリードデータを取得することができる。
次に、本データ転送制御装置200において、リード側デバイスとライト側デバイスでエンディアンが異なる場合に、転送バス幅よりも小さいデータ幅でライトバースト転送する場合の動作を説明する。
リードバーストの場合と同様の手法によって、ライト開始アドレス調整回路260、ライト終了アドレス調整回路280において、ライト開始アドレスとライト終了アドレスの調整を行い、バスインタフェースB230に出力される。またライトストローブ信号については、調整前のライト開始アドレスとライト終了アドレスより適切に生成する以外は、実施の形態1と同様である。
このようにライト開始アドレスとライト終了アドレスを調整し、バイトストローブ信号を生成することで、転送バス幅よりも小さいデータ幅でライトバースト転送する場合に、リード側デバイスとライト側デバイスでエンディアンが異なっていても、シングル転送に分割する必要がなく、バースト転送でライトデータを書き込むことができる。
また、本データ転送制御装置200において、転送バス幅よりも転送データ幅が小さくても、転送開始アドレスと転送終了アドレスによってシングル転送の設定をされた場合には、上記のような開始アドレスとサイズの調整は行わない。この詳細については、実施の形態1と同様である。
なお、転送開始アドレス、転送終了アドレスをアライメントする単位は転送バス幅で説明しているが、転送バス幅に限る必要はない。例えば、転送バス幅が8バイトで、エンディアン変換を行うデータの単位が4バイトと異なる場合では、4バイトの単位でアライメントを行うことも可能である。
なお、本実施の形態での動作例では、データ転送制御装置の転送レジスタの設定はリトルエンディアンで行われているが、これに限らず、ビッグエンディアン等他のエンディアン方式であっても可能なことは明らかである。
《実施の形態3》
図7は、本発明の実施の形態3におけるバスアダプタ300の概略構成を示すブロック図である。本実施形態のバスアダプタ300は、転送の制御信号を発行するマスタ又はマスタが接続されたバスが、バスインタフェースA320と接続されており、スレーブ又はスレーブが接続されたバスが、バスインタフェースB330と接続されている。
バスアダプタ300は、上記のバスインタフェースA320、バスインタフェースB330、バスインタフェースA320から転送コマンドや転送データをスレーブ側のバス規格に準じさせるための転送変換回路310、転送変換回路310からバスインタフェースB330に出力される転送制御信号391、スレーブからのリードデータ又はマスタからのライトデータを入力として、転送制御信号391に含まれるマスタとスレーブのエンディアン情報に応じてバイト位置を調整するエンディアンデータ変換回路340、転送開始アドレス351を入力して転送制御信号391の値に応じて調整し、調整後転送開始アドレス352を出力する転送開始アドレス調整回路350、転送サイズ371を入力して転送制御信号391の値に応じて調整し、調整後転送サイズ372を出力する転送サイズ調整回路370を有し、それぞれ出力がバスインタフェースB330に入力されている。
次に、本バスアダプタ300において、マスタ側とスレーブ側でエンディアンが異なる場合に、転送バス幅よりも小さいデータ幅でバースト転送する場合の動作を、具体例を用いて説明する。
図8に示す例において、マスタはリトルエンディアンで動作しており、スレーブはビッグエンディアンで動作している。また、転送バス幅は4バイトであるが、転送データ幅が1バイトと、小さい値が設定されている。また、転送開始アドレス351は0x01、転送サイズ371は0x05である。このとき、転送開始アドレス調整回路350では、入力される転送開始アドレス351を転送バス幅でアライメントする。つまり転送開始アドレス351を、4バイトで切り下げる方向にアライメントを行い、0x00に変換する。これを調整後転送開始アドレス352として出力し、バスインタフェースB330に入力される。
また転送サイズ調整回路370では、入力される転送サイズ371を、転送バス幅と転送開始アドレスに応じて調整する。まず転送開始アドレス351をアライメントすることによって増加するアクセス分を加算する。ここでは、0x00へのアクセス分として1を足して6となる。次に、6を転送バス幅の4で切り上げる方向にアライメントして、8に変換する。これを調整後転送サイズ372として出力し、バスインタフェースB330に入力される。
この際に、マスタ側のアドレスで0x00,0x06,0x07のように、不要な転送データへもアクセスすることになるが、リードの場合であればこれらのデータは無視し、ライトの場合であれば下記のようにライトストローブ信号で制御を行う。ライトの場合では、調整前の転送開始アドレス351と転送サイズ371から、ライトデータの有効なバイトが判別できるので、このバイトストローブ信号を1にセットする。この後、エンディアンデータ変換回路340において、バイトストローブ信号もライトデータと同様にエンディアン変換を実施する。エンディアンデータ変換回路340より出力されたライトデータとバイトストローブ信号は、バスインタフェースB330を通ってスレーブに出力される。この例では、アドレス0x00から0x07まで、1バイトずつの8バーストで、スレーブのデータをアクセスする。
このように転送開始アドレスと転送サイズ等の調整を行うことで、転送バス幅よりも小さいデータ幅でバースト転送する場合に、マスタとスレーブでエンディアンが異なっていても、シングル転送に分割する必要がなく、バースト転送でアクセスすることが可能となる。
また、本バスアダプタ300において、転送バス幅よりも転送データ幅が小さくても、転送サイズ371でシングル転送の設定をされた場合には、上記のような開始アドレスとサイズの調整は行わない。この詳細については、実施の形態1と同様である。
なお本バスアダプタ300では、転送開始アドレスと転送サイズでアクセス位置を指定できるスレーブを想定してアクセス位置を調整しているが、転送開始アドレスと転送終了アドレスでアクセス位置を指定できるスレーブなど、異なる規格のスレーブへ転送を行う場合でも、同様の手法により本発明を適用できることは明らかである。
なお、転送開始アドレス、転送サイズをアライメントする単位は転送バス幅で説明しているが、転送バス幅に限る必要はない。例えば、転送バス幅が8バイトで、エンディアン変換を行うデータの単位が4バイトと異なる場合では、4バイトの単位でアライメントを行うことも可能である。
なお、本実施の形態での動作例では、バスアダプタの転送レジスタの設定はリトルエンディアンで行われているが、これに限らず、ビッグエンディアン等他のエンディアン方式であっても可能なことは明らかである。
《実施の形態4》
図9は、本発明の実施の形態4における装置400の概略構成を示すブロック図である。本実施形態の装置400は、集積回路410、SDRAM420、周辺デバイス430を有する。集積回路410は、CPU411、データ転送制御装置412、メモリコントローラ413、周辺コントローラ414を有しており、それぞれがバスにより相互接続されている。メモリコントローラ413はSDRAM420と接続されており、周辺コントローラ414は周辺デバイス430と接続されている。またデータ転送制御装置412は、実施の形態1又は2で説明した、本発明のアクセス先を調整する機能を含んでいる。
装置400において、データ転送制御装置412を用いて周辺デバイス430からSDRAM420にバーストでデータを移す場合を考える。この際、周辺デバイス430がリトルエンディアン方式であり、SDRAM420には4バイトビッグエンディアン方式の形でデータを格納する。データ転送制御装置412の設定レジスタはリトルエンディアン方式で設定され、転送データ幅は転送元・転送先共に1バイトとする。
まず、データ転送制御装置412から周辺デバイス430へリード命令を発行し、周辺デバイス430からのリードデータがデータ転送制御装置412に送られると、SDRAM420へのライト命令を発行するが、データ幅が1バイトでエンディアンが異なるため、実施の形態1又は2で説明した本発明のアクセス先を調整する機能によってアドレス等を調整し、これを発行する。この調整により、本来エンディアンの違いによって複数のシングルライト命令が発行されるところを、バーストライト命令を発行することが可能となり、アクセス性能の低下を防ぐ。また、SDRAM420から周辺デバイス430にデータを移す場合も同様である。このように、アクセスレイテンシの大きな外部記憶装置にアクセスする場合において有効となる。
また、SDRAMのような外部記憶装置だけではなく、例えばレイテンシの大きな周辺デバイスであっても本発明は有効であり、外部記憶装置に限らないことは明らかである。この例として、装置400において、データ転送制御装置412を用いてSDRAM420から周辺デバイス430にバーストでデータを移す場合を考える。この際、SDRAM420がリトルエンディアン方式でデータ幅が4バイト、周辺デバイス430が4バイトビッグエンディアン方式でデータ幅が1バイトであり、データ転送制御装置412の設定レジスタはリトルエンディアン方式で設定されるとする。データ転送制御装置412からSDRAM420へリード命令を発行し、SDRAM420からのリードデータがデータ転送制御装置412に送られると、周辺デバイス430へのライト命令を発行するが、実施の形態1又は2で説明した本発明のアクセス先を調整する機能によって、アドレス等を調整した後に発行する。これにより、本来エンディアンの違いによって複数のシングルライト命令が発行されるところを、バーストライト命令を発行することが可能となり、アクセス性能の低下を防ぐ。また、周辺デバイス430からSDRAM420にデータを移す場合も同様である。このように、SDRAMのような外部記憶装置だけではなく、レイテンシの大きな周辺デバイスにアクセスする場合であっても本発明は有効であり、外部記憶装置に限らないことは明らかである。また、集積回路410の外部でなく、レイテンシの大きな内部の機能ブロックにアクセスする場合にも有効である。
なお、本実施の形態での動作例では、データ転送制御装置の転送レジスタの設定はリトルエンディアンで行われているが、これに限らず、ビッグエンディアン等他のエンディアン方式であっても可能なことは明らかである。
また、実施の形態3で説明したようなバスアダプタを搭載した集積回路であっても、同様にアクセス性能の低下を防ぐことが可能であり、これらの構成に限らないことは明らかである。
本発明に係るデータ転送制御装置は、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でバースト転送する場合でも、シングル転送に分割せずにバースト転送を行うことができるので、アクセス性能を悪くせずにエンディアン変換に対応したアクセスを行うことができる。特にSDRAMのような、アクセスレイテンシが比較的大きなデバイスでは、アクセス性能の大きな低下を防ぐことができ、特に有効である。
本データ転送制御装置は、DMA転送制御回路、バスアダプタ、DMA転送制御機能を含むバスアダプタ等、データ転送に関わる回路において幅広く使用することができる。
本発明の実施の形態1におけるデータ転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態1における、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でリード転送する場合の、転送動作例の説明図である。 本発明の実施の形態1における、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でライト転送する場合の、転送動作例の説明図である。 本発明の実施の形態1における、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でシングル転送する場合の、転送動作例の説明図である。 本発明の実施の形態2におけるデータ転送制御装置の概略構成を示すブロック図である。 本発明の実施の形態2における、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でリード転送する場合の、転送動作例の説明図である。 本発明の実施の形態3におけるバスアダプタの概略構成を示すブロック図である。 本発明の実施の形態3における、エンディアンの異なるスレーブへ転送バス幅よりも小さいデータ幅で転送する場合の、転送動作例の説明図である。 本発明の実施の形態4における装置の概略構成を示すブロック図である。 従来における、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅で転送する場合の概略構成図を示すブロック図である。 従来における、エンディアンの異なるアクセス先へ転送バス幅よりも小さいデータ幅でリード転送する場合の、転送動作例の説明図である。
符号の説明
100,200 データ転送制御装置
110,210 設定レジスタ
111,211 転送サイズ
112,212 リードアドレス
113,213 ライトアドレス
114,214 リード側エンディアン
115,215 ライト側エンディアン
116,216 リードデータ幅
117,217 ライトデータ幅
120,220 バスインタフェースA
121,221 リード転送コマンド
122,222 リードデータ
130,230 バスインタフェースB
131,231 ライト転送コマンド
131,232 ライトデータ
140,240 エンディアンデータ変換回路
150,250 リード開始アドレス調整回路
151,251 リード開始アドレス
152,252 調整後リード開始アドレス
160,260 ライト開始アドレス調整回路
161,261 ライト開始アドレス
162,262 調整後ライト開始アドレス
170 リードサイズ調整回路
171 リードサイズ
172 調整後リードサイズ
180 ライトサイズ調整回路
181 ライトサイズ
182 調整後ライトサイズ
270 リード終了アドレス調整回路
271 リード終了アドレス
272 調整後リード終了アドレス
280 ライト終了アドレス調整回路
281 ライト終了アドレス
282 調整後ライト終了アドレス
300 バスアダプタ
310 転送変換回路
320 バスインタフェースA
330 バスインタフェースB
340 エンディアンデータ変換回路
350 転送サイズ調整回路
351 転送サイズ
352 調整後転送サイズ
370 転送開始アドレス調整回路
371 転送開始アドレス
372 調整後開始アドレス
391 転送制御信号
400 装置
410 集積回路
411 CPU
412 データ転送制御装置
413 メモリコントローラ
414 周辺コントローラ
420 SDRAM
430 周辺デバイス

Claims (6)

  1. エンディアン変換回路を備えたデータ転送制御装置であって、
    転送開始アドレス調整回路を備えており、エンディアンの異なる装置へデータ転送する際は、前記転送開始アドレス調整回路において、転送開始アドレスを転送バス幅でアライメントすることを特徴とするデータ転送制御装置。
  2. 請求項1記載のデータ転送制御装置において、
    転送サイズ調整回路を備えており、エンディアンの異なる装置へデータ転送する際は、前記転送サイズ調整回路において、転送サイズを前記転送バス幅と前記転送開始アドレスとに応じて調整することを特徴とするデータ転送制御装置。
  3. 請求項1記載のデータ転送制御装置において、
    転送終了アドレス調整回路を備えており、エンディアンの異なる装置へデータ転送する際は、前記転送終了アドレス調整回路において、転送終了アドレスを前記転送バス幅でアライメントすることを特徴とするデータ転送制御装置。
  4. 請求項1記載のデータ転送制御装置において、
    ライトデータの有効なバイトを示すライトストローブ信号作成回路を備えており、前記ライトストローブ信号作成回路において作成したライトストローブ信号を付加したライトデータを、前記エンディアン変換回路に入力することを特徴とするデータ転送制御装置。
  5. 請求項2又は3に記載のデータ転送制御装置において、
    シングル転送の場合では、前記転送開始アドレスの調整と、前記転送サイズ又は前記転送終了アドレスの調整とを行わないことを特徴とするデータ転送制御装置。
  6. 請求項1〜5のいずれか1項に記載のデータ転送制御装置を含む集積回路と、外部記憶装置とを備え、前記データ転送制御装置の転送元又は転送先として前記外部記憶装置を用いるように構成されたことを特徴とする装置。
JP2006207745A 2006-07-31 2006-07-31 エンディアン変換回路を備えたデータ転送制御装置 Pending JP2008033722A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006207745A JP2008033722A (ja) 2006-07-31 2006-07-31 エンディアン変換回路を備えたデータ転送制御装置
US11/785,798 US7587535B2 (en) 2006-07-31 2007-04-20 Data transfer control device including endian conversion circuit with data realignment
CNA200710103017XA CN101118525A (zh) 2006-07-31 2007-04-29 具有字节序转换电路的数据传输控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006207745A JP2008033722A (ja) 2006-07-31 2006-07-31 エンディアン変換回路を備えたデータ転送制御装置

Publications (1)

Publication Number Publication Date
JP2008033722A true JP2008033722A (ja) 2008-02-14

Family

ID=38987782

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006207745A Pending JP2008033722A (ja) 2006-07-31 2006-07-31 エンディアン変換回路を備えたデータ転送制御装置

Country Status (3)

Country Link
US (1) US7587535B2 (ja)
JP (1) JP2008033722A (ja)
CN (1) CN101118525A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179107A (ja) * 2008-09-12 2014-09-25 Renesas Electronics Corp 半導体集積回路装置
WO2022259411A1 (ja) * 2021-06-09 2022-12-15 日本電信電話株式会社 データフロー制御装置

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
JP4437464B2 (ja) * 2005-06-01 2010-03-24 株式会社ルネサステクノロジ 半導体装置及びデータ処理システム
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US7870316B1 (en) * 2006-12-29 2011-01-11 Unisys Corporation System and method for providing an inline data conversion for multiplexed data streams
US8438320B2 (en) * 2007-06-25 2013-05-07 Sonics, Inc. Various methods and apparatus for address tiling and channel interleaving throughout the integrated system
US20080320255A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US8108648B2 (en) * 2007-06-25 2012-01-31 Sonics, Inc. Various methods and apparatus for address tiling
CN101324868B (zh) * 2008-07-11 2010-06-16 中兴通讯股份有限公司 处理器与boot flash间的连接装置及实现方法
US8578357B2 (en) * 2009-12-21 2013-11-05 Intel Corporation Endian conversion tool
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
WO2012127590A1 (ja) * 2011-03-18 2012-09-27 富士通株式会社 エンディアン変換方法、およびシステム
US9489307B2 (en) * 2012-10-24 2016-11-08 Texas Instruments Incorporated Multi domain bridge with auto snoop response
US20160217197A1 (en) * 2015-01-23 2016-07-28 Honeywell International, Inc. System and method for endian correction of complex data structures in heterogeneous systems
US10248463B2 (en) 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
US20170344364A1 (en) * 2016-05-25 2017-11-30 Honeywell International Inc. System and method for data compatibility across heterogeneous machine architectures
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
TWI727236B (zh) * 2018-12-12 2021-05-11 瑞昱半導體股份有限公司 資料位寬轉換器及其系統晶片
KR20200103492A (ko) * 2019-02-25 2020-09-02 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN111159075B (zh) * 2019-12-31 2021-11-05 成都海光微电子技术有限公司 数据传输方法和数据传输装置
CN112835842B (zh) * 2021-03-05 2024-04-30 深圳市汇顶科技股份有限公司 端序处理方法、电路、芯片以及电子终端
US11934332B2 (en) * 2022-02-01 2024-03-19 Mellanox Technologies, Ltd. Data shuffle offload

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60128543A (ja) * 1983-12-16 1985-07-09 Hitachi Ltd アドレス交換仮想記憶装置
JPH0863425A (ja) * 1994-08-02 1996-03-08 Motorola Inc インタバス・バッファ
JPH09152984A (ja) * 1995-11-30 1997-06-10 Matsushita Electric Ind Co Ltd 一般化データフォーマット変換装置
JPH09269890A (ja) * 1996-04-03 1997-10-14 Hitachi Ltd エンディアン変換方式
JPH10247150A (ja) * 1997-03-05 1998-09-14 Hitachi Ltd データ処理システム
JP2002269551A (ja) * 2001-03-08 2002-09-20 Canon Inc 画像処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3187539B2 (ja) * 1992-07-28 2001-07-11 株式会社東芝 データ転送装置
US5634013A (en) * 1995-05-03 1997-05-27 Apple Computer, Inc. Bus bridge address translator
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US20040061704A1 (en) * 2002-09-27 2004-04-01 Ju Chi-Cheng Memory access method for video decoding
JP4446373B2 (ja) * 2003-03-19 2010-04-07 パナソニック株式会社 プロセッサ、データ共有装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60128543A (ja) * 1983-12-16 1985-07-09 Hitachi Ltd アドレス交換仮想記憶装置
JPH0863425A (ja) * 1994-08-02 1996-03-08 Motorola Inc インタバス・バッファ
JPH09152984A (ja) * 1995-11-30 1997-06-10 Matsushita Electric Ind Co Ltd 一般化データフォーマット変換装置
JPH09269890A (ja) * 1996-04-03 1997-10-14 Hitachi Ltd エンディアン変換方式
JPH10247150A (ja) * 1997-03-05 1998-09-14 Hitachi Ltd データ処理システム
JP2002269551A (ja) * 2001-03-08 2002-09-20 Canon Inc 画像処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179107A (ja) * 2008-09-12 2014-09-25 Renesas Electronics Corp 半導体集積回路装置
WO2022259411A1 (ja) * 2021-06-09 2022-12-15 日本電信電話株式会社 データフロー制御装置

Also Published As

Publication number Publication date
US7587535B2 (en) 2009-09-08
CN101118525A (zh) 2008-02-06
US20080028197A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
JP2008033722A (ja) エンディアン変換回路を備えたデータ転送制御装置
CN106663045B (zh) 在存储器控制器处执行错误校正的方法和装置
JP4895183B2 (ja) メモリコントローラ
JP2011513845A (ja) アドレス信号/制御信号のためのダブル・データ・レートのスキームを使用する、インタフェース・ピンの要件が低減された二重チャネル・メモリ・アーキテクチャ
KR20160074648A (ko) 최종 레벨 캐시 시스템 및 이에 대응하는 방법
JP2008158804A (ja) メモリコントローラ、コンピュータ、データ読み出し方法
US20020013880A1 (en) Integrated circuit with flash bridge and autoload
US10133497B1 (en) SPI command censoring method and apparatus
JP2008542936A (ja) 特にシステムオンチップに対するインタフェース配置およびその使用方法
US20040030861A1 (en) Customizable computer system
JP2008140078A (ja) バスブリッジ装置、情報処理装置、およびデータ転送制御方法
JP2007164415A (ja) データ転送制御装置
JP2006243811A (ja) Dma転送システム及びdma転送方法
US8683096B2 (en) Configuration of data strobes
US7228367B2 (en) Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof
JP2005293435A (ja) データ転送装置およびその設定方法
JP3946980B2 (ja) レジスタアクセス装置
JP2002215562A (ja) Dma制御装置及び方法
KR20070081981A (ko) 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치
JPH0628307A (ja) バス制御装置
JP2007334600A (ja) 半導体集積回路装置
CN113836050A (zh) 访存控制方法、装置、设备及可读存储介质
JP2006195810A (ja) メモリコントローラおよび高速データ転送方法
JP2009059155A (ja) Usbホストコントローラ装置
JP2000267986A (ja) メモリ制御装置およびメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206