(57)【要約】【課題】  ＣＰＵが利用可能なメモリ空間を大きくする。【解決手段】  コンピュータ装置は、（Ａ）ＣＰＵと、（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、（Ｃ）ローカルバスと、（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、（Ｅ）前記ローカルバスに接続されたメモリと、（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記メモリにアクセスする１または複数の入出力装置と、を備え、前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記メモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記メモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記メモリから読み込む読み込み処理とを実行する構成とする。【選択図】    図１１
2006190035.tif 000002
【特許請求の範囲】
【請求項１】
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたローカルメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする１または複数の入出力装置と、
を備え、
前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行することを特徴とするコンピュータ装置。
【請求項２】
前記バスコントローラは、前記ＣＰＵから前記ＣＰＵバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記ＣＰＵバスを通じて前記ＣＰＵのエディアン方式にて前記ＣＰＵに読み込まれるように、前記ＣＰＵから前記ＣＰＵバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記ＣＰＵバスを介して前記ＣＰＵに出力する信号変換回路を備え、
前記信号変換回路は、前記ＣＰＵが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わないことを特徴とする請求項１に記載のコンピュータ装置。
【請求項３】
前記ＣＰＵバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられていることを特徴とする請求項１または２に記載のコンピュータ装置。
【請求項４】
前記ローカルバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられていることを特徴とする請求項１〜３のいずれか１項に記載のコンピュータ装置。
【請求項５】
前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成され、
前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第１アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第２アドレス信号とを有することを特徴とする請求項３または４に記載のコンピュータ装置。
【請求項６】
前記信号変換回路は、前記アドレス信号または前記データの信号を変換することを特徴とする請求項３〜５のいずれか１項に記載のコンピュータ装置。
【請求項７】
前記ＣＰＵから前記ＣＰＵバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力されることを特徴とする請求項１〜６のいずれか１項に記載のコンピュータ装置。
【請求項８】
前記ローカルメモリには、前記ＣＰＵにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第１データ格納領域と、前記入出力装置と前記ＣＰＵとの間でやり取りされるデータが格納される第２データ格納領域とが区分されて設けられ、
前記ＣＰＵが前記第１データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
前記ＣＰＵが前記第２データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換を指示する信号が出力されることを特徴とする請求項７に記載のコンピュータ装置。
【請求項９】
前記ローカルメモリがＳＤＲＡＭにより構成されていることを特徴とする請求項１〜８のいずれか１項に記載のコンピュータ装置。
【請求項１０】
前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続されていることを特徴とする請求項１〜９のいずれか１項に記載のコンピュータ装置。
【請求項１１】
前記ＣＰＵバスには、前記ＣＰＵが前記ＣＰＵのエディアン方式にてデータの書き込みおよび読み込みを行うためのＣＰＵメモリが接続されていることを特徴とする請求項１〜１０のいずれか１項に記載のコンピュータ装置。
【請求項１２】
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたローカルメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする１または複数の入出力装置と、
（Ｇ）を備え、
（Ｈ）前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行し、
（Ｉ）前記バスコントローラは、前記ＣＰＵから前記ＣＰＵバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記ＣＰＵバスを通じて前記ＣＰＵのエディアン方式にて前記ＣＰＵに読み込まれるように、前記ＣＰＵから前記ＣＰＵバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記ＣＰＵバスを介して前記ＣＰＵに出力する信号変換回路を備え、
前記信号変換回路は、前記ＣＰＵが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わず、
（Ｊ）前記ＣＰＵバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
（Ｋ）記ローカルバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
（Ｌ）前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成され、
前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第１アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第２アドレス信号とを有し、
（Ｍ）前記信号変換回路は、前記アドレス信号または前記データの信号を変換し、
（Ｎ）前記ＣＰＵから前記ＣＰＵバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力され、
（Ｏ）前記ローカルメモリには、前記ＣＰＵにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第１データ格納領域と、前記入出力装置と前記ＣＰＵとの間でやり取りされるデータが格納される第２データ格納領域とが区分されて設けられ、
前記ＣＰＵが前記第１データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
前記ＣＰＵが前記第２データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換を指示する信号が出力され、
（Ｐ）前記ローカルメモリがＳＤＲＡＭにより構成され、
（Ｑ）前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続され、
（Ｒ）前記ＣＰＵバスには、前記ＣＰＵが前記ＣＰＵのエディアン方式にてデータの書き込みおよび読み込みを行うためのＣＰＵメモリが接続されている、
（Ｓ）ことを特徴とするコンピュータ装置。
【請求項１３】
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記メモリにアクセスする１または複数の入出力装置と、
（Ｇ）媒体に対して印刷を施す印刷部と、
を備え、
前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記メモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記メモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記メモリから読み込む読み込み処理とを実行することを特徴とする印刷装置。
【請求項１４】
原稿から画像を読み取り画像データを生成する画像読み取り部を備えたことを特徴とする請求項１３に記載の印刷装置。
【請求項１５】
前記画像データは、前記画像読み取り部により前記ローカルメモリに格納されることを特徴とする請求項１４に記載の印刷装置。
【請求項１６】
前記印刷部は、前記画像読み取り部により生成された前記画像データに基づき前記媒体に画像を印刷することを特徴とする請求項１４または１５に記載の印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ、メモリ、および１または複数の入出力装置を備え、ＣＰＵと１または複数の入出力装置のエディアンが異なるコンピュータ装置および印刷装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータをはじめ、インクジェットプリンタ等の各種印刷装置やその他各種装置に搭載されるコンピュータ装置は、一般に、ＣＰＵと、メモリと、１または複数の入出力装置とを備えている。ＣＰＵは、当該コンピュータ装置全体の制御を司る装置であり、プログラムを実行して、入出力装置に対して各種命令を発行するとともに、メモリに対してデータを書き込む命令やデータを読み込む命令を発行したり、またデータの演算を行ったりする。メモリは、ＣＰＵまたは入出力装置からの命令により、データを記憶領域に書き込んだり、また記録領域からデータを読み出したりする。入出力装置は、データやプログラムをＣＰＵやメモリに入力する入力装置や、ＣＰＵの演算結果などを取り出して表示したり記録したりする出力装置、さらに、入力及び出力の両方の機能を兼ね備えた入出力装置を含む。入力装置としては、操作パネル等の操作入力を受け付ける操作入力インターフェースなどがある。また、出力装置としては、液晶ディスプレイ等の表示装置などがある。また、入出力装置としては、外部との間で通信を行う通信インターフェースなどがある。
【０００３】
ところで、このようなコンピュータ装置にあっては、メモリ内の記憶領域にバイト単位でアドレスを割り当てる際に、アドレスの割り当て方（エディアンという）の違いに応じて、２つの方式がある。メモリ内の記憶領域の最下位バイト側から順にアドレスを割り当てる方式のことを『リトルエディアン方式』と呼ぶ。また、メモリ内の記憶領域の最上位バイト側から順にアドレスを割り当てる方式のことを『ビッグエディアン方式』と呼ぶ。『リトルエディアン方式』では、メモリ内の記憶領域の最下位バイト側から最上位バイト側にかけて順に『０番地』、『１番地』、『２番地』、『３番地』とアドレスが設定される。これに対して、『ビッグエディアン方式』では、メモリ内の記憶領域の最上位バイト側から最下位バイト側にかけて順に『０番地』、『１番地』、『２番地』、『３番地』とアドレスが設定される。すなわち、『リトルエディアン方式』と『ビッグエディアン方式』とでは、同じアドレス（『番地』）であっても、メモリ内の記憶領域上の位置は異なる。つまり、例えば、同じ『０番地』にアドレスを指定してアクセスする場合であっても、メモリ内の記憶領域上では、異なる位置にアクセスすることになる。
【０００４】
このため、エディアンが異なるＣＰＵと入出力装置とによりコンピュータ装置を構成したときに、次のような問題が発生した。すなわち、ＣＰＵと入出力装置との間で、データのやり取りをスムーズに行うことができなかった。つまり、同じアドレスを指定してメモリにアクセスしても、メモリ内の記憶領域上の同一の位置にアクセスすることはできなかった。これによって、結果的に、誤ったアドレスにデータが書き込まれたり、また誤ったアドレスからデータが読み込まれたりする場合があった。
【０００５】
そこで、従来から、エディアンが異なるＣＰＵと入出力装置とが混在しても、ＣＰＵと入出力装置との間でスムーズにデータのやり取りが行えるようにするためのエディアン変換回路が提案されている（特許文献１・特許文献２参照）。このようなエディアン変換回路を備えれば、エディアンが異なるＣＰＵと入出力装置との間で、同じアドレス（『番地』）を指定した場合には、メモリ内の記憶領域上の同一の位置にアクセスすることができる。これにより、エディアンが異なるＣＰＵと入出力装置との間で、データのやり取りを誤りなくスムーズに行うことができる。
【特許文献１】特開平３−１６０５５０号
【特許文献２】特開２００２−２６９５５１号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、このようなコンピュータ装置にあっては、ＣＰＵが、自身で後で読み込むためのデータを書き込んだり、またＣＰＵが自身で書き込んだデータを読み込んだりするためのメモリ、即ちいわゆるワークメモリとしては、ＣＰＵが頻繁にアクセスすることから、ＣＰＵがアクセスし易いように、ＣＰＵが直接接続されたバス、即ちＣＰＵバスに直接接続されたメモリが、ＣＰＵが採用するエディアン方式にて用いられていた。
【０００７】
一方、このようなコンピュータ装置によっては、搭載される機器の用途に応じて、画像処理等の専門的な処理をＣＰＵよりも高速にかつ効率よく行うために、ＡＳＩＣ等の専用の処理回路が備える場合がある。このような専用の処理回路を備えたコンピュータ装置では、専用の処理回路が画像処理等の専門的な処理を高速にかつ効率よく行うために、データ記憶容量の大きいメモリを備える場合がある。このようなデータ記憶容量の大きいメモリを専用の処理回路以外に、ＣＰＵがワークメモリとして利用することができれば、ＣＰＵが利用可能なメモリ空間が大幅に増え、ＣＰＵの処理をよりスムーズに効率よく実行させることができる。
【０００８】
本発明は、このような事情に鑑みてなされたものであって、その目的は、コンピュータ装置においてＣＰＵの利用可能なメモリ空間を大きくすることにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するための主たる発明は、
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたローカルメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする１または複数の入出力装置と、
を備え、
前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行することを特徴とするコンピュータ装置である。
【００１０】
本発明の他の特徴は、本明細書及び添付図面の記載により明らかにする。
【発明を実施するための最良の形態】
【００１１】
＝＝＝開示の概要＝＝＝
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
【００１２】
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたローカルメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする１または複数の入出力装置と、
を備え、
前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行することを特徴とするコンピュータ装置。
【００１３】
このようなコンピュータ装置にあっては、ＣＰＵが、当該ＣＰＵとは異なるエディアン方式にてアクセスされるローカルメモリに、ＣＰＵが後で読み込むためのデータをローカルメモリに書き込む書き込み処理と、ＣＰＵが書き込んだデータをローカルメモリから読み込む読み込み処理とを実行することで、ＣＰＵが当該ローカルメモリを作業用メモリとして使用することができる。これにより、ＣＰＵの作業用メモリ空間の大幅な増大を図ることができる。
【００１４】
かかるコンピュータ装置にあっては、前記バスコントローラは、前記ＣＰＵから前記ＣＰＵバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記ＣＰＵバスを通じて前記ＣＰＵのエディアン方式にて前記ＣＰＵに読み込まれるように、前記ＣＰＵから前記ＣＰＵバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記ＣＰＵバスを介して前記ＣＰＵに出力する信号変換回路を備え、
前記信号変換回路は、前記ＣＰＵが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わなくても良い。
【００１５】
このようにＣＰＵが後で読み込むためのデータをローカルメモリに書き込む場合と、ＣＰＵが先に書き込んだデータをローカルメモリから読み込む場合に、信号変換回路が信号の変換を行わないことで、信号の変換に要する手間を削減することができ、これによりＣＰＵはローカルメモリに対して高速にアクセスすることができる。
【００１６】
また、かかるコンピュータ装置にあっては、前記ＣＰＵバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられている。このようなアドレス信号線とデータ信号線とがＣＰＵバスに設けられていることで、ＣＰＵはローカルメモリにアクセスを行う。
【００１７】
また、かかるコンピュータ装置にあっては、前記ローカルバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられていても良い。このようなアドレス信号線とデータ信号線とがローカルバスに設けられれば、ＣＰＵがローカルメモリに簡単にアクセスすることができる。
【００１８】
また、かかるコンピュータ装置にあっては、前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成されるイメージであり、前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第１アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第２アドレス信号とを有しても良い。このような第１アドレス信号および第２アドレス信号をアドレス信号が有していれば、ＣＰＵは、ローカルメモリ内の多数のメモリセルの中から所定のメモリセルを簡単にアクセスすることができる。
【００１９】
また、かかるコンピュータ装置にあっては、前記信号変換回路は、前記アドレス信号または前記データの信号を変換しても良い。このようにアドレス信号またはデータの信号を信号変換回路が変換することで、ＣＰＵからＣＰＵバスを介して送られてきたデータが前ローカルバスを介して異なるエディアン方式にてローカルメモリに書き込まれ、かつローカルメモリに異なるエディアン方式にて書き込まれたデータがローカルバスからＣＰＵバスを通じてＣＰＵのエディアン方式にてＣＰＵに読み込まれるようにすることができる。
【００２０】
また、かかるコンピュータ装置にあっては、前記ＣＰＵから前記ＣＰＵバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力されても良い。このような変換指示信号が出力されることで、信号の変換を行うか否かを簡単に信号変換回路に指示することができる。
【００２１】
また、かかるコンピュータ装置にあっては、前記ローカルメモリには、前記ＣＰＵにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第１データ格納領域と、前記入出力装置と前記ＣＰＵとの間でやり取りされるデータが格納される第２データ格納領域とが区分されて設けられ、
前記ＣＰＵが前記第１データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
前記ＣＰＵが前記第２データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換を指示する信号が出力されてもよい。
【００２２】
このような第１データ格納領域と第２データ格納領域とをローカルメモリに設ければ、ＣＰＵが第１データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合と、ＣＰＵが第２データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合とに応じて、変換指示信号を簡単に切り替えて出力することができ、これにより、ＣＰＵは、信号変換回路に対して信号の変換を行うか否かを簡単に指示することができる。
【００２３】
また、かかるコンピュータ装置にあっては、前記ローカルメモリがＳＤＲＡＭにより構成されていても良い。このようなＳＤＲＡＭを用いることで、サイズの大きいデータを高速に書き込んだり読み込んだりすることができる。
【００２４】
また、かかるコンピュータ装置にあっては、前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続されていても良い。このようなメモリコントローラを用いれば、ローカルバスとメモリとの間のデータのやり取りをスムーズに行うことができる。
【００２５】
また、かかるコンピュータ装置にあっては、前記ＣＰＵバスには、前記ＣＰＵが前記ＣＰＵのエディアン方式にてデータの書き込みおよび読み込みを行うためのＣＰＵメモリが接続されていても良い。このようなＣＰＵメモリが設けられれば、ＣＰＵの利用可能なメモリ空間の大幅なアップを図ることができる。
【００２６】
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたローカルメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする１または複数の入出力装置と、
（Ｇ）を備え、
（Ｈ）前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行し、
（Ｉ）前記バスコントローラは、前記ＣＰＵから前記ＣＰＵバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記ＣＰＵバスを通じて前記ＣＰＵのエディアン方式にて前記ＣＰＵに読み込まれるように、前記ＣＰＵから前記ＣＰＵバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記ＣＰＵバスを介して前記ＣＰＵに出力する信号変換回路を備え、
前記信号変換回路は、前記ＣＰＵが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わず、
（Ｊ）前記ＣＰＵバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
（Ｋ）前記ローカルバスには、前記ＣＰＵのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記ＣＰＵの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
（Ｌ）前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成され、
前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第１アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第２アドレス信号とを有し、
（Ｍ）前記信号変換回路は、前記アドレス信号または前記データの信号を変換し、
（Ｎ）前記ＣＰＵから前記ＣＰＵバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力され、
（Ｏ）前記ローカルメモリには、前記ＣＰＵにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第１データ格納領域と、前記入出力装置と前記ＣＰＵとの間でやり取りされるデータが格納される第２データ格納領域とが区分されて設けられ、
前記ＣＰＵが前記第１データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
前記ＣＰＵが前記第２データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記ＣＰＵから前記変換指示信号として前記信号の変換を指示する信号が出力され、
（Ｐ）前記ローカルメモリがＳＤＲＡＭにより構成され、
（Ｑ）前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続され、
（Ｒ）前記ＣＰＵバスには、前記ＣＰＵが前記ＣＰＵのエディアン方式にてデータの書き込みおよび読み込みを行うためのＣＰＵメモリが接続されている、
（Ｓ）ことを特徴とするコンピュータ装置。
【００２７】
（Ａ）ＣＰＵと、
（Ｂ）前記ＣＰＵに接続されたＣＰＵバスと、
（Ｃ）ローカルバスと、
（Ｄ）前記ＣＰＵバスと前記ローカルバスとを相互に接続するバスコントローラと、
（Ｅ）前記ローカルバスに接続されたメモリと、
（Ｆ）前記ローカルバスに接続され、前記ＣＰＵとは異なるエディアン方式にて前記ローカルバスを介して前記メモリにアクセスする１または複数の入出力装置と、
（Ｇ）媒体に対して印刷を施す印刷部と、
を備え、
前記ＣＰＵは、前記ＣＰＵバス、前記バスコントローラおよび前記ローカルバスを介して前記メモリにアクセスして、前記ＣＰＵが後で読み込むためのデータを前記メモリに書き込む書き込み処理と、前記ＣＰＵが書き込んだデータを前記メモリから読み込む読み込み処理とを実行することを特徴とする印刷装置。
【００２８】
かかる印刷装置にあっては、原稿から画像を読み取り画像データを生成する画像読み取り部を備えても良い。このような画像読み取り部を備えれば、原稿から画像を簡単に読み取ることができる。
【００２９】
また、かかる印刷装置にあっては、前記画像データは、前記画像読み取り部により前記ローカルメモリに格納されても良い。このように画像データがローカルメモリに格納されれば、ローカルメモリを有効に利用することができる。
【００３０】
また、かかる印刷装置にあっては、前記印刷部は、前記画像読み取り部により生成された前記画像データに基づき前記媒体に画像を印刷しても良い。このように画像データに基づき印刷部が媒体に画像を印刷すれば、読み取った画像を簡単に印刷することができる。
【００３１】
＝＝＝コンピュータ装置の概要＝＝＝
本発明に係るコンピュータ装置の実施の形態について説明する。ここでは、本発明に係るコンピュータ装置を、スキャナを搭載したインクジェットプリンタ１に適用した場合を例にして説明する。図１〜図６は、このインクジェットプリンタ１の概要を説明したものである。図１は、このインクジェットプリンタ１の外観を説明する斜視図である。図２は、このインクジェットプリンタ１のスキャナ部１０の概要を説明する斜視図である。図３は、このインクジェットプリンタ１のプリンタ部３０の概要を説明する斜視図である。図４は、このインクジェットプリンタ１の内部構成を概略的に説明する説明図である。図５は、このインクジェットプリンタ１のプリンタ部３０の搬送機構を説明する断面図である。図６は、このインクジェットプリンタ１の操作パネル２を説明する平面図である。
【００３２】
このスキャナ付きインクジェットプリンタ１は、原稿から画像を読み取って画像データを生成するスキャナ機能と、ホストコンピュータ（図示外）から送られてきた印刷データに基づき印刷用紙等の各種媒体に印刷をするプリンタ機能と、原稿から読み取った画像を媒体に印刷して複写するローカルコピー機能とを備えたスキャナ・プリンタ・コピー複合装置（以下、ＳＰＣ複合装置ともいう）である。このＳＰＣ複合装置１は、図１に示すように、その上部に原稿５から画像を読み取るためのスキャナ部１０を備え、また、このＳＰＣ複合装置１の下部に、印刷用紙等の媒体Ｓに印刷をするためのプリンタ部３０を備えている。また、このＳＰＣ複合装置１の前面部には、操作パネル２が設けられている。
【００３３】
スキャナ部１０は、図２に示すように、原稿５がセットされるガラス板が設けられた原稿台１１と、当該原稿台１１を上方から覆う原稿台カバー１２とを備えている。原稿台カバー１２は、ＳＰＣ複合装置１の後端部に回動可能に取付けられ、原稿台１１の上面部を開閉するように設けられている。なお、スキャナ部１０は、「画像読み取り部」に相当する。
【００３４】
一方、プリンタ部３０は、図３に示すように、スキャナ部１０を上方に持ち上げることによって、その内部が開口部３２を通じて外部に開放されるように構成されている。つまり、スキャナ部１０は、ＳＰＣ複合装置１の後部にヒンジ部３４を介して回動自在に装着されている。スキャナ部１０が上方へと持ち上げられると、プリンタ部３０の内部に通じる開口部３２が開放される。プリンタ部３０の内部には、インクカートリッジを搭載するキャリッジ４１などが配置されている。このようにプリンタ部３０の内部が開放されることにより、その開口部３２を通じてインクカートリッジの交換等のメンテナンス作業や、紙詰まり等のエラー対処等を容易に行うことができるようになっている。
【００３５】
また、プリンタ部３０は、ＳＰＣ複合装置１の背部に、印刷用紙等の媒体Ｓがセットされて当該媒体Ｓを順次供給する給紙部４を備えている。また、プリンタ部３０は、ＳＰＣ複合装置１の前部に、印刷された媒体Ｓが排出される排紙部３を備えている。給紙部４は、給紙トレイ８を備えている。給紙トレイ８には、印刷用紙等の媒体がセットされるようになっている。また、排紙部３は、排紙トレイ７を備え、印刷されて排出された媒体Ｓを受ける。なお、給紙部４にセットされる媒体Ｓとしては、カット紙などの単票状印刷用紙のみならず、ロール紙などの連続した印刷用紙でも構わず、給紙部４がこれらの媒体Ｓに対応した構造を備えていても良い。
【００３６】
＝＝＝スキャナ部１０・プリンタ部３０の内部機構＝＝＝
図４は、スキャナ部１０およびプリンタ部３０の内部機構を示したものである。
【００３７】
＜スキャナ部＞
スキャナ部１０は、同図の上部に示すように、原稿台１１の下側に、スキャナ用キャリッジ６０と、このスキャナ用キャリッジ６０を原稿台１１に対して所定の間隔を保ちつつ図中矢印Ａ方向に沿って平行に移動させる駆動機構６２と、このスキャナ用キャリッジ６０を支持しつつその移動を案内するガイド６４とを備えている。
【００３８】
スキャナ用キャリッジ６０には、原稿台１１を介して原稿５に対し光を照射する光源としての露光ランプ６６と、原稿５から反射された反射光を案内する複数枚のミラー６８と、ミラー６８により案内された反射光を集光するレンズ７０と、このレンズ７０により集光された反射光を受光するＣＣＤセンサ７２とが搭載されている。  
ＣＣＤセンサ７２は、光信号を電気信号に変換するフォトダイオードが列状に配置されて構成された３本のリニアセンサ（図示外）を備えている。これら３本のリニアセンサは、相互に間隔をあけて平行に配置され、それぞれＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の３色の異なるフィルタが設けられている。各リニアセンサは、各フィルタの色に対応した成分の光をそれぞれ反射光から検出し、その検出結果を制御部５０に出力する。  
また、駆動機構６２は、スキャナ用キャリッジ６０に接続されたタイミングベルト７４と、このタイミングベルト７４が掛け渡された一対のプーリ７５、７６と、一方のプーリ７５を回転駆動する駆動モータ７７とを備えている。駆動モータ７７は、制御部５０からの制御信号によって駆動制御される。
【００３９】
＜プリンタ部＞
一方、プリンタ部３０は、図４の下部に示すように、プリンタ用キャリッジ４１と、このプリンタ用キャリッジ４１に搭載されたヘッド２１と、プリンタ用キャリッジ４１を媒体Ｓに対して所定の間隔を保持しつつ相対的に平行に移動させる駆動機構２４と、媒体Ｓをプリンタ用キャリッジ４１の移動方向と直交する方向に沿って搬送する搬送機構３６とを備えている。  
プリンタ用キャリッジ４１には、カートリッジ装着部が設けられ、このカートリッジ装着部には、黒（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）等のインクが収容されたインクカートリッジが装着される。  
ヘッド２１は、インクカートリッジから供給された各色のインクを媒体Ｓに向けて吐出して当該媒体Ｓ上にドットを形成して、媒体Ｓに画像を形成して印刷を施す。ヘッド２１のインク吐出機構については後に詳しく説明する。
【００４０】
駆動機構２４は、プリンタ用キャリッジ４１に接続されたタイミングベルト４５と、このタイミングベルト４５に噛合されたプーリ４４と、このプーリ４４を回転駆動するキャリッジモータ４２（以下、ＣＲモータともいう）と、プリンタ用キャリッジ４１の移動を案内するガイドレール４６と、プリンタ用キャリッジ４１の位置を検出するリニア式エンコーダとしてリニア式エンコーダ符号板５１およびこのリニア式エンコーダ符号板５１を読み取る検出部５２とを備えている。この駆動機構２４は、キャリッジモータ４２を駆動してプーリ４４を介してタイミングベルト４５を回転させる。これにより、プリンタ用キャリッジ４１は、媒体Ｓに対してガイドレール４６に沿って相対的に移動する。キャリッジモータ４２は、制御部５０からの制御信号により駆動制御される。  
搬送機構３６は、プラテン１４と、搬送ローラ１７Ａと、当該搬送ローラ１７Ａを回転駆動する搬送モータ１５（以下、ＰＦモータともいう）と、媒体Ｓが所定位置に到達したか否かを検出する紙検知センサ５３と、搬送ローラ１７Ａの回転量を検出するロータリ式エンコーダ５６とを備えている。プラテン１４は、ヘッド２１に対向して配置されている。搬送モータ１５が駆動すると、搬送ローラ１７Ａが回転して、媒体Ｓがプラテン１４上を搬送される。搬送モータ１５は、制御部５０からの制御信号により駆動制御される。  
印刷時には、媒体Ｓが搬送ローラ１７Ａにより間欠的に所定の搬送量で搬送され、その間欠的な搬送の合間にプリンタ用キャリッジ４１が、搬送ローラ１７Ａによる搬送方向に対して交差する方向に沿って移動しながら、ヘッド２１から媒体Ｓに向けてインクを吐出して印刷が施される。
【００４１】
＜搬送機構＞
プリンタ部３０の搬送機構について説明する。この搬送機構は、図５に示すように、給紙ローラ１３と、紙検知センサ５３と、搬送ローラ１７Ａと、排紙ローラ１７Ｂと、プラテン１４と、フリーローラ１８Ａ、１８Ｂとを備えている。
【００４２】
印刷される媒体Ｓは、給紙部４の給紙トレイ８にセットされる。給紙トレイ８にセットされた媒体Ｓは、断面略Ｄ形状に成形された給紙ローラ１３により、図中矢印Ａ方向に沿って搬送されて、インクジェットプリンタ１の内部へと送られる。インクジェットプリンタ１の内部に送られてきた媒体Ｓは、紙検知センサ５３と接触する。この紙検知センサ５３は、給紙ローラ１３と、搬送ローラ１７Ａとの間に設置されたもので、給紙ローラ１３により給紙された媒体Ｓを検知する。  
紙検知センサ５３により検知された媒体Ｓは、搬送ローラ１７Ａによって、印刷が実施されるプラテン１４へと順次搬送される。搬送ローラ１７Ａの対向位置には、フリーローラ１８Ａが設けられている。このフリーローラ１８Ａと搬送ローラ１７Ａとの間に、媒体Ｓを挟み込むことによって、媒体Ｓをスムーズに搬送する。  
プラテン１４へと送り込まれた媒体Ｓは、ヘッド２１から吐出されたインクによって順次印刷される。プラテン１４は、ヘッド２１と対向して設けられ、印刷される媒体Ｓを下側から支持する。  
印刷が施された媒体Ｓは、排紙ローラ１７Ｂにより順次、プリンタ部３０の外部へと排出される。排紙ローラ１７Ｂは、搬送モータ１５と同期に駆動されていて、当該排紙ローラ１７Ｂに対向して設けられたフリーローラ１８Ｂとの間に媒体Ｓを挟み込んで、媒体Ｓをプリンタ部３０の外部へと排出する。
【００４３】
＝＝＝操作パネル＝＝＝
図６は、このＳＰＣ複合装置１の操作パネル２を示したものである。  
操作パネル２は、そのほぼ中央部に液晶ディスプレイ８０を備えている。液晶ディスプレイ８０は、文字や画像の表示が可能である。液晶ディスプレイ８０の表示内容は、設定項目や設定状態、動作状態等に応じて変化する。
【００４４】
液晶ディスプレイ８０の左側には、報知ランプ８１と、電源ボタン８２と、各種設定ボタン８３と、モードボタン８４、８５、８６、８７と、給排紙ボタン８８とが設けられている。報知ランプ８１は、赤色ＬＥＤであり、エラー発生時に点灯してユーザーにエラー発生を報知する。電源ボタン８２は、ＳＰＣ複合装置１の電源をオン、オフするためのボタンである。各種設定ボタン８３は、ＳＰＣ複合装置１の各種設定を行うための画面を液晶ディスプレイ８０に表示するためのボタンである。モードボタン８４、８５、８６、８７は、それぞれＳＰＣ複合装置１のモードを設定するためのボタンである。ここでは、モードボタンとして、コピーモードボタン８４と、メモリカード印刷モードボタン８５と、フィルム印刷モードボタン８６と、スキャンモードボタン８７とが設けられている。ここで、例えば、コピーモードボタン８４が押されると、コピー枚数、倍率、用紙タイプ、用紙サイズ、コピー品質、コピーモード等の設定条件を入力するための画面が液晶ディスプレイ８０に表示される。給排紙ボタン８８は、ＳＰＣ複合装置１に媒体Ｓを給紙したり、ＳＰＣ複合装置１内の媒体Ｓを排紙したりするときに押される。
【００４５】
液晶ディスプレイ８０の右側には、ＯＫボタン８９Ａと、キャンセルボタン８９Ｂと、保存ボタン８９Ｃと、カラーコピーボタン８９Ｄと、モノクロコピーボタン８９Ｅと、ストップボタン８９Ｆと、十字ボタン８９Ｇと、メニューボタン８９Ｈとが設けられている。ＯＫボタン８９Ａが押されると、液晶ディスプレイ８０に表示されている内容にて設定条件が決定される。キャンセルボタン８９Ｂが押されると、設定条件がクリアされ、各設定項目がデフォルト値に変更される。保存ボタン８９Ｃが３秒間以上押し続けられると、設定値が記憶される。そして、保存ボタン８９Ｃが３秒以下で押されると、記憶された設定値が読み出され、その設定条件が液晶ディスプレイ８０に表示される。カラーコピーボタン８９Ｄは、カラーコピーを開始させるためのボタンである。モノクロコピーボタン８９Ｅは、モノクロコピーを開始させるためのボタンである。ストップボタン８９Ｆは、一旦開始したコピー動作を中止させるためのボタンである。十字ボタン８９Ｇは、その上下左右の４箇所を選択的に押すことが可能であり、１つのボタンで４つの機能（上ボタン、下ボタン、左ボタン及び右ボタンの機能）を果たす。メニューボタン８９Ｈは、液晶ディスプレイ８０に表示される設定項目を切り替える。
【００４６】
＝＝＝ヘッド＝＝＝
＜ヘッドの構成＞
図７は、ヘッド２１の下面部に設けられたインクのノズルの配列を示した図である。ヘッド２１の下面部には、同図に示すように、イエロ（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ）の各色ごとにそれぞれ複数のノズル♯１〜♯１８０からなるノズル列、即ちシアンノズル列２１１Ｃ、マゼンダノズル列２１１Ｍ、イエロノズル列２１１Ｙ、ブラックノズル列２１１Ｋが設けられている。
【００４７】
各ノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋの各ノズル♯１〜♯１８０（「液体吐出ノズル」に相当）は、所定の方向（ここでは、媒体Ｓの搬送方向）に沿って相互に間隔をあけて直線状に１列に配列されている。各ノズル♯１〜♯１８０の間隔（ノズル間隔）は、それぞれ「ｋ・Ｄ」に設定されている。ここで、『Ｄ』とは、搬送方向における最小のドットピッチ（つまり、媒体Ｓに形成されるドットの最高解像度での間隔）である。また、『ｋ』は、１以上の整数である。例えば、ノズルピッチが１２０ｄｐｉ（１／１２０インチ）であって、搬送方向のドットピッチが３６０ｄｐｉ（１／３６０）である場合、ｋ＝３である。各ノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋは、ヘッド２１の移動方向（走査方向）に沿って相互に間隔をあけて平行に配置されている。各ノズル♯１〜♯１８０には、インク滴を吐出するための駆動素子としてピエゾ素子（図示外）が設けられている。
【００４８】
ピエゾ素子は、その両端に設けられた電極間に所定時間幅の電圧を印加すると、電圧の印加時間に応じて伸張し、インクの流路の側壁を変形させる。これによって、インクの流路の体積がピエゾ素子の伸縮に応じて収縮し、この収縮分に相当するインクが、インク滴となって各色のノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋの各ノズル♯１〜♯１８０から吐出される。
【００４９】
＜駆動回路＞
図８は、各ノズル♯１〜♯１８０の駆動回路２２０を示したものである。この駆動回路２２０は、同図に示すように、原駆動信号発生部２２１と、複数のマスク回路２２２とを備えている。原駆動信号発生部２２１は、各ノズル♯１〜♯１８０に共通して用いられる原駆動信号ＯＤＲＶを生成する。この原駆動信号ＯＤＲＶは、一画素分の主走査期間内（キャリッジ４１が一画素の間隔を横切る時間内）において、図中下部に示すように、第１パルスＷ１と第２パルスＷ２の２つのパルスを含む信号である。原駆動信号発生部２２１で生成された原駆動信号ＯＤＲＶは、各マスク回路２２２に出力される。
【００５０】
マスク回路２２２は、ヘッド２１のノズル♯１〜♯１８０をそれぞれ駆動する複数のピエゾ素子に対応して設けられている。各マスク回路２２２には、原駆動信号発生部２２１から原駆動信号ＯＤＲＶが入力されるとともに、印刷信号ＰＲＴ（ｉ）が入力される。この印刷信号ＰＲＴ（ｉ）は、画素に対応する画素データであり、一画素に対して２ビットの情報を有する２値信号である。その各ビットは、それぞれ第１パルスＷ１と第２パルスＷ２とに対応している。マスク回路２２２は、印刷信号ＰＲＴ（ｉ）のレベルに応じて、原駆動信号ＯＤＲＶを遮断したり通過させたりするためのゲートである。すなわち、印刷信号ＰＲＴ（ｉ）がレベル『０』のときには、原駆動信号ＯＤＲＶのパルスを遮断する一方、印刷信号ＰＲＴ（ｉ）がレベル『１』のときには、原駆動信号ＯＤＲＶの対応するパルスをそのまま通過させて実駆動信号ＤＲＶとして、各ノズル♯１〜♯１８０のピエゾ素子に向けて出力する。各ノズル♯１〜♯１８０のピエゾ素子は、マスク回路２２２からの実駆動信号ＤＲＶに基づき駆動してインクの吐出を行う。
【００５１】
＜各信号波形＞
図９は、原駆動信号発生部２２１の動作を示す原駆動信号ＯＤＲＶ、印刷信号ＰＲＴ（ｉ）、実駆動信号ＤＲＶ（ｉ）のタイミングチャートである。同図に示すように、原駆動信号ＯＤＲＶは、各画素区間Ｔ１、Ｔ２、Ｔ３、Ｔ４において、第１パルスＷ１と第２パルスＷ２とを順に発生する。なお、画素区間とは、一画素分のキャリッジ４１の移動区間と同じ意味である。
【００５２】
ここで、印刷信号ＰＲＴ（ｉ）が２ビットの画素データ『１０』に対応しているとき、第１パルスＷ１のみが一画素区間の前半で出力される。これにより、ノズル♯１〜♯１８０から小さいインク滴が吐出され、媒体Ｓには小さいドット（小ドット）が形成される。また、印刷信号ＰＲＴ（ｉ）が２ビットの画素データ『０１』に対応しているとき、第２パルスＷ２のみが一画素区間の後半で出力される。これにより、ノズル♯１〜♯１８０から中サイズのインク滴が吐出され、媒体Ｓには、中サイズのドット（中ドット）が形成される。また、印刷信号ＰＲＴ（ｉ）が２ビットの画素データ『１１』に対応しているとき、第１パルスＷ１と第２パルスＷ２とが一画素区間で出力される。これにより、ノズル♯１〜♯１８０から大きいサイズのインク滴が吐出され、媒体Ｓには、大きいサイズのドット（大ドット）が形成される。以上説明したとおり、一画素区間における実駆動信号ＤＲＶ（ｉ）は、印刷信号ＰＲＴ（ｉ）の３つの異なる値に応じて互いに異なる３種類の波形を有するように整形され、これらの信号に基づいてヘッド２１は、３種類のサイズのドットを形成し、また画素区間内にて吐出するインク量を調整することが可能である。また、画素区間Ｔ４のように、印刷信号ＰＲＴ（ｉ）が２ビットの画素データ『００』に対応しているときには、ノズル♯１〜♯１８０からインク滴が吐出されず、媒体には、ドットが形成されないことになる。
【００５３】
本実施形態に係るインクジェットプリンタ１では、このようなノズル♯１〜♯１８０の駆動回路２２０が、各ノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋごと、即ち、イエロ（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ）の各色ごとに各々個別に設けられ、各ノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋの各ノズル♯１〜１８０ごとに個別にピエゾ素子の駆動が行われるようになっている。
【００５４】
＝＝＝印刷動作＝＝＝
次に前述したインクジェットプリンタ１の印刷動作について説明する。ここでは、「双方向印刷」を例にして説明する。図１０は、ＳＰＣ複合装置１の印刷動作の処理手順の一例を示したフローチャートである。ここでは、印刷動作は、制御部５０がプログラムに従って、リニア式エンコーダ（リニア式エンコーダ符号板５１および検出部５２）やロータリー式エンコーダ５６、紙検知センサ５３などのセンサからの情報に基づき、搬送モータ１５やキャリッジモータ４２、ヘッド２１の駆動回路２２０などを各々制御することにより実行される。
【００５５】
制御部５０は、印刷処理を実行する際に、まず、給紙処理を行う（Ｓ１０２）。給紙処理は、印刷しようとする媒体Ｓをインクジェットプリンタ１内に供給し、印刷開始位置（頭出し位置とも言う）まで搬送する処理である。制御部５０は、給紙ローラ１３を回転させて、印刷しようとする媒体Ｓを搬送ローラ１７Ａまで送る。制御部５０は、搬送ローラ１７Ａを回転させて、給紙ローラ１３から送られてきた媒体Ｓを印刷開始位置（プラテン１４の上方付近）に位置決めする。
【００５６】
次に、制御部５０は、キャリッジモータ４２を駆動して、キャリッジ４１を媒体Ｓに対して相対的に移動させて媒体Ｓに対して印刷を施す印刷処理を実行する。ここでは、まず、キャリッジ４１をガイドレール４６に沿って一の方向に向かって移動させながら、ヘッド２１からインクを吐出する往路印刷を実行する（Ｓ１０４）。制御部５０は、キャリッジモータ４２を駆動してキャリッジ４１を移動させるとともに、ヘッド２１の駆動回路２２０を駆動してヘッドの各ノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋの各ノズル♯１〜♯１８０からインクを吐出する。ヘッド２１から吐出されたインクは、媒体Ｓに到達して媒体Ｓ上にドットとして形成される。
【００５７】
このようにして印刷を行った後、次に、制御部５０は、媒体Ｓを所定量だけ搬送する搬送処理を実行する（Ｓ１０６）。ここでは、制御部５０は、搬送モータ１５を駆動して搬送ローラ１７Ａを回転させて、媒体Ｓをヘッド２１に対して相対的に搬送方向に所定量だけ搬送する。この搬送処理により、ヘッド２１は、先ほどの印刷した領域とは異なる領域に印刷をすることが可能になる。
【００５８】
このようにして搬送処理を行った後、制御部５０は、排紙すべきか否か排紙判断を実行する（Ｓ１０８）。ここで、制御部５０は、印刷中の媒体Ｓに印刷すべき他のデータがなければ、排紙処理を実行する（Ｓ１１６）。一方、制御部５０は、印刷中の媒体Ｓに印刷すべき他のデータがあれば、排紙処理は行わずに、復路印刷を実行する（Ｓ１１０）。この復路印刷は、キャリッジ４１をガイドレール４６に沿って先ほどの往路印刷とは反対の方向に移動させて印刷を行う。ここでも、制御部５０は、キャリッジモータ４２を先ほどとは逆に回転駆動させてキャリッジ４１を移動させるとともに、ヘッド２１の駆動回路２２０を駆動してヘッドの各ノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋの各ノズル♯１〜♯１８０からインクを吐出して印刷をする。
【００５９】
復路印刷を実行した後、搬送処理を実行し（Ｓ１１２）、その後、排紙判断を行う（Ｓ１１４）。ここで、印刷中の媒体Ｓに印刷すべき他のデータがあれば、排紙処理は行わずに、ステップＳ１０４に戻って、再度往路印刷を実行する（Ｓ１０４）。一方、印刷中の媒体Ｓに印刷すべき他のデータがなければ、排紙処理を実行する（Ｓ１１６）。
【００６０】
排紙処理を行った後、次に、印刷終了か否かを判断する印刷終了判断を実行する（Ｓ１１８）。ここでは、次に印刷すべき媒体Ｓがないかどうかチェックする。ここで、次に印刷すべき媒体Ｓがある場合には、ステップＳ１０２に戻り、再び給紙処理を実行して、印刷を開始する。一方、次に印刷すべき媒体Ｓがない場合には、印刷処理を終了する。
【００６１】
＝＝＝制御部５０の構成＝＝＝
図１１は、本実施形態に係るＳＰＣ複合装置１の制御部５０のシステム構成を示したブロック構成図である。
【００６２】
ＳＰＣ複合装置１の制御部５０は、ＳＰＣ複合装置１全体の制御を司るＣＰＵ９０と、制御のためのプログラムを記憶したメモリ９２と、スキャナ機能、プリント機能、ローカルコピー機能の各制御を司る制御ＡＳＩＣ９４と、ＣＰＵ９０から直接データを読み書き可能なＳＤＲＡＭ９６と、入力手段としての操作パネル２とがＣＰＵバス９８によって繋がっている。制御ＡＳＩＣ９４には、スキャナ部１０、ヘッドユニット１００、および制御ＡＳＩＣ９４からデータの読み書きが可能なＡＳＩＣ用ＳＤＲＡＭ１０２と、このＡＳＩＣ用ＳＤＲＡＭ１０２をコントロールするＳＤＲＡＭコントローラ１０３とが設けられている。この制御部５０は、ＳＰＣ複合装置１の各種制御を行うための制御部（コントローラ）となる。なお、ここで、ＡＳＩＣ用ＳＤＲＡＭ１０２は、「ローカルメモリ」に相当する。また、ＳＤＲＡＭコントローラ１０３は、「メモリコントローラ」に相当する。
【００６３】
制御ＡＳＩＣ９４は、スキャナコントロールユニット１０４と、リサイズユニット１０６と、２値化処理ユニット１０８と、インターレース処理ユニット１１０と、イメージバッファユニット１１２と、バスコントローラ１１４と、ヘッドコントロールユニット１１６と、外部のホストコンピュータ１４０との入出力手段としてのＵＳＢインターフェイス１１８と、スキャナ部１０及びプリンタ部３０が備える各モータやランプ等のドライバ（図示外）とを備えている。なお、これらスキャナコントロールユニット１０４や、リサイズユニット１０６、２値化処理ユニット１０８、インターレース処理ユニット１１０、イメージバッファユニット１１２、バスコントローラ１１４、ヘッドコントロールユニット１１６、ＵＳＢインターフェイス１１８などは、「入出力装置」に相当する。
【００６４】
また、ＡＳＩＣ用ＳＤＲＡＭ１０２には、ラインバッファ１２０、リサイズバッファ１２２、インターレースバッファ１２４、イメージバッファ１２６、１２７がそれぞれ割り当てられている。制御ＡＳＩＣ９４とＳＤＲＡＭコントローラ１０３（ＡＳＩＣ用ＳＤＲＡＭ１０２）との間では、データ転送の高速化を図るためにデータの転送単位を６４ビットとする所謂バースト転送が行われる。制御ＡＳＩＣ９４内の各ユニット１０４、１０６、１０８、１１０、１１２、１１４およびＳＤＲＡＭコントローラ１０３は、ローカルバス１２８を介して接続されている。
【００６５】
スキャナコントロールユニット１０４は、スキャナ部１０が備える露光ランプ６６、ＣＣＤセンサ７２、スキャナ用キャリッジ６０の駆動モータ７７等を制御する。スキャナコントロールユニット１０４は、ＣＣＤセンサ７２を介して読み込んだ画像データを送出する機能を有する。なお、スキャナコントロールユニット１０４は、原稿から画像を読み取った後に画素間の補間を行うことにより、所定の解像度の画像データを送出することができる。スキャナコントロールユニット１０４から送出されるときの画像データは、多階調のＲＧＢデータ（多値のＲＧＢデータ）である。
【００６６】
リサイズユニット１０６は、所定のサイズの画像データを受け取り、その画像データのサイズを変更し、サイズ変更された画像データを送出する機能を有する。ここで、画像データのサイズとは、その画像の縦横の画素の数である。縦横の画素の数が多ければ画像は大きく、縦横の画素の数が少なければ画像は小さい。但し、実際に印刷される画像は、画素の数が多くても、印刷解像度に応じて大きさが異なる。例えば、同じ画素数であっても、２００ｄｐｉ×２００ｄｐｉの画像データは、１４４０ｄｐｉ×７２０ｄｐｉの画像データよりも大きい画像データである。すなわち、画像データのサイズの変更とは、解像度を変更することでもある。
【００６７】
２値化処理ユニット１０８は、送出された多階調のＲＧＢデータをＣＭＹＫの２値データ（又は２ビットデータ）に変換し、インターレース処理ユニット１１０に送出する機能を有する。  
インターレース処理ユニット１１０は、１ラスタライン（印刷画像における主走査方向の１ライン）を複数回のプリンタ用のキャリッジ４１の移動にて印刷する所謂オーバーラップ印刷する際には、１ラスタラインのＣＭＹＫのデータをプリンタ用のキャリッジ４１の移動毎に印刷するデータに振り分けてオーバーラップ印刷対応データ（以下、ＯＬ対応データという）を生成する機能を有する。生成されたＯＬ対応データは、ＡＳＩＣ用ＳＤＲＡＭ１０２のインターレースバッファ１２４に記憶される。  
また、インターレース処理ユニット１１０では、インターレースバッファ１２４に記憶されたデータを、インターレース処理ユニット１１０内のＳＲＡＭ１３０に所定のサイズ毎に読み出して、ＳＲＡＭ１３０上で、ノズル配列に対応させるべく並び替えてイメージバッファユニット１１２に送出する。
【００６８】
イメージバッファユニット１１２では、インターレース処理ユニット１１０から送出されたデータを、プリンタ用のキャリッジ４１の移動毎の各ノズルにインクを吐出させるためのヘッド駆動データを生成する機能を有する。  
バスコントローラ１１４は、制御ＡＳＩＣ９４に接続されたＡＳＩＣ用ＳＤＲＡＭ１０２へのＣＰＵ９０からのアクセスを可能とする機能を有している。本制御部５０においては、イメージバッファユニット１２６、１２７により生成されたヘッド駆動データに基づいてヘッドコントロールユニット１１６を駆動する場合等に利用されている。  
ヘッドコントロールユニット１１６は、ＣＰＵ９０の制御によりヘッド駆動データに基づいてヘッド２１を駆動し、ヘッド２１の各ノズル♯１〜♯１８０からインクを吐出させる機能を有する。
【００６９】
＝＝＝制御部５０内のデータの流れ＝＝＝
＜スキャナ機能時について＞
制御ＡＳＩＣ９４のＵＳＢインターフェイス１１８に接続されたホストコンピュータ１４０から、スキャナ部１０による画像読み取り指令信号と、読み取り解像度、読み取り領域等の読み取り情報データとが制御部５０に送信される。制御部５０では、画像読み取り指令信号と読み取り情報データとに基づいて、スキャナコントロールユニット１０４が制御され、スキャナ部１０による原稿５の読み取りが開始される。このとき、スキャナコントロールユニット１０４では、ランプ駆動ユニット、ＣＣＤ駆動ユニット、スキャナ用キャリッジ移動駆動ユニット等が駆動され、所定の周期にてＣＣＤセンサ７２からＲＧＢデータが読み込まれる。読み込まれたＲＧＢデータは、ＡＳＩＣ用ＳＤＲＡＭ１０２に割り振られたラインバッファ１２０に一旦蓄えられ、Ｒ、Ｇ、Ｂの各データのライン間補正処理が施され、ＵＳＢインターフェース１１８を介してホストコンピュータ１４０に送出される。ライン間補正処理とは、スキャナ部１０の構造上発生するＲ、Ｇ、Ｂの各リニアセンサ間の読み取り位置のズレを補正する処理である。詳述すると、スキャナ部１０が有するＣＣＤセンサ７２は、カラーセンサでありＲ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の３色に対し色毎に１ラインずつのリニアセンサを有している。これら３本のリニアセンサは、スキャナ用キャリッジ６０の移動方向に平行に並べられているため、原稿５の同一ラインに照射された反射光を同時に受光することができない。すなわち、原稿５の同一ラインに照射された反射光が各リニアセンサに受光される際には、時間的なズレが生じることになる。このため、リニアセンサの配列に伴う遅延時間分だけ遅れて送られてくるデータを同期させるための処理である。
【００７０】
＜プリンタ機能時について＞
プリンタ機能時には、ホストコンピュータ１４０のプリンタドライバが画像データをヘッド駆動データに変換し、ヘッド駆動データがＵＳＢインターフェース１１８から入力される。このヘッド駆動データは、例えば、インターレース方式の印刷をする場合には、印刷する画像の解像度とプリンタ用のキャリッジ４１のノズル列２１１Ｃ、２１１Ｍ、２１１Ｙ、２１１Ｋが有するノズル♯１〜♯１８０のピッチ及び数に対応させたラスタデータを抽出し、プリンタ用のキャリッジ４１の移動毎に印刷する順に並び換え、ヘッドユニット１００を駆動するための信号となるデータである。
【００７１】
ヘッド駆動データは、ＣＰＵバス９８に接続されたＳＤＲＡＭ９６に割り付けられたイメージバッファ１３２に記憶される。イメージバッファ１３２は、２つに分けられたメモリ領域（イメージバッファ１３３、１３４）を備えている。各イメージバッファ１３３、１３４は、プリンタ用のキャリッジ４１の１回の移動により印刷するためのヘッド駆動データを記憶することができる容量を有する。そして、一方のイメージバッファ１３３に１回の移動分のデータが書き込まれると、ヘッドコントロールユニット１１６に転送される。このとき、一方のイメージバッファ１３３のイメージデータがヘッドコントロールユニット１１６に転送されると、他方のイメージバッファ１３４には次の移動の際に印刷するためのヘッド駆動データが記憶される。そして他方のイメージバッファ１３４に１回の移動分のデータが書き込まれると、ヘッドコントロールユニット１１６に転送され、前記一方のイメージバッファ１３３にイメージデータが書き込まれる。このように、２つのイメージバッファ１３３，１３４を用いて、ヘッド駆動データの書き込み、読み出しを交互に行いながらヘッドコントロールユニット１１６にてヘッドユニット１００が駆動されて印刷が実行される。
【００７２】
＜コピー機能時について＞
次に、コピー機能時におけるデータの流れを説明する。スキャナ部１０により読み込まれたデータは、スキャナコントロールユニット１０４を介してラインバッファ１２０に取り込まれる。ラインバッファ１２０に取り込まれたＲＧＢデータは、前述したＲＧＢのライン間補正処理が順次施され、同一ラインに対するＲＧＢデータがスキャナコントロールユニット１０４から２値化処理ユニット１０８に送り込まれる。
【００７３】
２値化処理ユニット１０８に送り込まれたＲＧＢデータは、ハーフトーン処理された後、ＡＳＩＣ用ＳＤＲＡＭ１０２内に格納されているルックアップテーブル１３６（ＬＵＴ）に基づいて、ＣＭＹＫの色毎の２値データに変換され、インターレース処理ユニット１１０に送り込まれる。
【００７４】
インターレース処理ユニット１１０に送り込まれたＣＭＹＫの２値データは、指定されたインターレース方式に基づいて、各ラスタラインの全データからプリンタ用のキャリッジ４１の１回の移動毎に印刷されるデータに振り分けられる。例えば、１ラスタラインをプリンタ用のキャリッジ４１の２回の移動にて形成する場合には、ラスタラインの端から奇数番目のドットを形成するデータと、偶数番目のドットを形成するデータとに振り分けられてＯＬ対応データが生成される。
【００７５】
また、インターレース処理ユニット１１０では、インターレースバッファ１２４に記憶されたデータを所定サイズ毎に読み出して、インターレース処理ユニット１１０内のＳＲＡＭ１３０にバースト転送する。このとき、インターレースバッファ１２４からは、印刷する画像解像度とノズルピッチとに基づいてヘッド２１のノズル配列に対応させてＯＬ対応データが読み出される。例えば、印刷する画像の解像度が７２０ｄｐｉであり、ノズルピッチが１／１８０ｉｎｃｈの場合には、隣接するノズルにて印刷する２本のラスタライン間に３本のラスタラインがあることになる。このため、ＯＬ対応データからは３ラスタラインずつ間隔を空けたデータがプリンタ用のキャリッジ４１の移動に対応したデータとして読み出されることになる。
【００７６】
転送されたデータは、ＳＲＡＭ１３０上で、ノズル配列に対応させるべく並び替えられて、イメージバッファユニット１１２に送出される。  
イメージバッファユニット１１２では、ＳＲＡＭ１３０の容量により細かくブロック化された画像データをイメージバッファ１２６、１２７にバース転送し、プリンタ用のキャリッジ４１の移動毎の各ノズル♯１〜♯１８０にインクを吐出させるためのヘッド駆動データとなるように整列させて記憶する。ここでイメージバッファ１２６，１２７は、プリンタ用のキャリッジ４１の２回の移動分のヘッド駆動データを記憶するメモリ領域が割り当てられており、１回の移動分のヘッド駆動データが蓄積される毎に、ＣＰＵ９０によりヘッドコントロールユニット１１６に送出されると共に、残りの１回の移動分のメモリ領域に次の移動に対応したヘッド駆動データの書き込みが開始される。この処理は、プリンタ機能の説明にて前述したイメージバッファの処理と同様である。
【００７７】
イメージバッファ１２６、１２７に記憶された移動毎のヘッド駆動データは、ＣＰＵ９０に制御されてバスコントローラ１１４を介してＣＰＵ９０に読み込まれ、ＣＰＵ９０によりヘッドコントロールユニット１１６に転送される。ヘッドコントロールユニット１１６によりヘッド駆動データに基づいてヘッドユニット１００が駆動され画像が印刷される。
【００７８】
通常のコピー動作時には、ＲＧＢの画像データがスキャナコントロールユニット１０４によって読み込まれてからＣＭＹＫのヘッド駆動データがイメージバッファ１２６、１２７に書き込まれるまでの間、ＣＰＵ９０による演算を必要とするレイアウト処理は行われていない。つまり、ＲＧＢの画像データをＣＭＹＫのヘッド駆動データへ変換する処理は、ＣＰＵ９０を必要とせず、制御ＡＳＩＣ９４を中心に処理されている。そのため、この処理の間、ＡＳＩＣ用ＳＤＲＡＭ１０２とＣＰＵ用のＳＤＲＡＭ９６との間でデータを受け渡さなくても良い。すなわち、ローカルバス１２８のみを用いて制御ＡＳＩＣ９４とＡＳＩＣ用ＳＤＲＡＭ１０２との間でデータが送出されるので、ＣＰＵバス９８はほとんど用いられない。このため、処理が早くなり、コピー速度を高めることができる。
【００７９】
＝＝＝エディアン＝＝＝
本実施形態に係るＳＰＣ複合装置１にあっては、ＣＰＵ９０と制御ＡＳＩＣ９４とで、異なるエディアン方式を採用している。エディアン方式とは、メモリ内、ここではＳＤＲＡＭ９６、１０２内の記憶領域にバイト単位でアドレスを割り当てるときのアドレスの割り当て方のことである。エディアン方式には、『リトル・エディアン方式』と、『ビック・エディアン方式』の２種類ある。本実施形態のＳＰＣ複合装置１では、ＣＰＵ９０側（ＣＰＵバス９８側）が『ビック・エディアン方式』を採用し、制御ＡＳＩＣ９４側（ローカルバス１２８側）が『リトル・エディアン方式』を採用している。このため、ＣＰＵ９０側のＳＤＲＡＭ９６は、『ビック・エディアン方式』によりデータが読み書きされる。また、制御ＡＳＩＣ９４側のＳＤＲＡＭ１０２は、『リトル・エディアン方式』によりデータが読み書きされる。ここで、これら『リトル・エディアン方式』および『ビック・エディアン方式』について説明する。
【００８０】
図１２は、『リトル・エディアン方式』および『ビック・エディアン方式』について説明したものである。図１２Ａは、『リトル・エディアン方式』について説明したものであり、図１２Ｂは、『ビック・エディアン方式』について説明したものである。
【００８１】
『リトル・エディアン方式』は、図１２Ａに示すように、メモリ内の記憶領域にバイト単位でアドレスを割り当てる際に、メモリ内の記憶領域の最下位バイト側から順にアドレスを割り当てる方式である。つまり、『リトル・エディアン方式』では、メモリ内の記憶領域の最下位バイト側から最上位バイト側にかけて順に『０番地』、『１番地』、『２番地』、『３番地』とアドレスが設定される。このため、『リトル・エディアン方式』にて『０番地』にアクセスする場合には、メモリ内の記憶領域の最下位バイト側（ここでは、０ビット側）にアクセスしなければならない。また、『リトル・エディアン方式』にて『３番地』にアクセスする場合には、メモリ内の記憶領域の最上位バイト側（ここでは、３２ビット側）にアクセスしなければならない。
【００８２】
一方、『ビッグ・エディアン方式』は、図１２Ｂに示すように、メモリ内の記憶領域にバイト単位でアドレスを割り当てる際に、メモリ内の記憶領域の最上位バイト側から順にアドレスを割り当てる方式である。つまり、『ビッグ・エディアン方式』では、メモリ内の記憶領域の最上位バイト側から最下位バイト側にかけて順に『０番地』、『１番地』、『２番地』、『３番地』とアドレスが設定される。このため、『ビッグ・エディアン方式』にて『０番地』にアクセスする場合には、メモリ内の記憶領域の最上位バイト側（ここでは３２ビット）にアクセスしなければならない。また、『ビッグ・エディアン方式』にて『３番地』にアクセスする場合には、メモリ内の記憶領域の最下位バイト側（ここでは０ビット側）にアクセスしなければならない。
【００８３】
このようにエディアン方式が異なるＣＰＵ９０と制御ＡＳＩＣ９４等（ローカルバス１２８に接続された各種入出力装置を含む）とが混在した場合、このままでは、ＣＰＵ９０と制御ＡＳＩＣとの間でデータのやり取りを誤りなくスムーズに行うことはできない。そこで、本実施形態では、ＣＰＵ９０と制御ＡＳＩＣ９４との間でデータのやり取りを誤りなくスムーズに行うための信号変換回路を備えている。この信号変換回路は、ＣＰＵ９０と制御ＡＳＩＣ９４との間を結ぶバスコントローラ１１４に設けられている。このバスコントローラ１１４の信号変換回路について以下に詳しく説明する。
【００８４】
＝＝＝信号変換回路＝＝＝
この信号変換回路は、ＣＰＵ９０がＳＤＲＡＭ１０２にアクセスする際に、ＣＰＵ９０がアクセスするアドレスが、エディアンが異なるＳＤＲＡＭ１０２上に割り当てられたアドレスに対応するように、ＣＰＵ９０から出力されたアドレス信号を変換する。また、この信号変換回路は、ＣＰＵ９０がＳＤＲＡＭ１０２の所定のアドレスにデータを書き込むときに、ＣＰＵ９０から送られてきたデータが、その所定のアドレスに書き込まれるように、ＣＰＵ９０から出力された信号を変換する。また、この信号変換回路は、ＣＰＵ９０がＳＤＲＡＭ１０２からデータを読み込むときに、ＳＤＲＡＭ１０２からＳＤＲＡＭコントローラ１０３を通じて送られてきたデータが、ＣＰＵ９０が読み込むべきデータになるように、ＳＤＲＡＭコントローラ１０３から出力された信号を変換する。
【００８５】
この信号変換回路により実行される変換処理は、ＣＰＵ９０がＳＤＲＡＭ１０２にデータを書き込んだり読み込んだりするときのデータの単位サイズに応じて異なる。ここでは、ＣＰＵ９０が１バイト単位でアクセスする「バイトアクセス」と、ＣＰＵ９０がハーフワード単位、即ちここでは２バイト単位にてアクセスする「ハーフワードアクセス」と、ＣＰＵ９０がワード単位、即ちここでは４バイト単位にてアクセスする「ワードアクセス」との３種類ある。このため、「バイトアクセス」と、「ハーフワードアクセス」と、「ワードアクセス」とでは、それぞれ信号変換回路により行われる変換処理が異なっている。各種類の変換処理について以下に詳しく説明する。
【００８６】
なお、ここで、ＣＰＵ９０は、ＳＤＲＡＭ１０２に「バイトアクセス」にて書き込まれたデータについては、「バイトアクセス」にて読み込むものとする。また、ＣＰＵ９０は、ＳＤＲＡＭ１０２に「ハーフワードアクセス」にて書き込まれたデータについては、「ハーフワードアクセス」にて読み込むものとする。また、ＣＰＵ９０は、ＳＤＲＡＭ１０２に「ワードアクセス」にて書き込まれたデータについては、「ワードアクセス」にて読み込むものとする。ＳＤＲＡＭ１０２に書き込まれたデータには、制御ＡＳＩＣ９４の各ユニット１０４、１０６、１０８、１１０、１１２、１１４、１１６、１１８等により書き込まれたデータを含む。
【００８７】
図１３Ａ〜図１３Ｃは、これらの３種類の処理の概要について詳しく説明したものである。図１３Ａは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「バイトアクセス」を実行するときの変換処理の概要を説明したものである。図１３Ｂは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ハーフワードアクセス」を実行したときの変換処理の概要を説明したものである。図１３Ｃは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ワードアクセス」を実行したときの変換処理の概要を説明したものである。
【００８８】
（１）バイトアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「バイトアクセス」を実行する場合には、バスコントローラ１１４の信号変換回路は、図１３Ａに説明するように、ＣＰＵ９０がアクセスする『ビッグ・エディアン方式』のアドレスが、ＳＤＲＡＭ１０２の『リトル・エディアン方式』のアドレスに対応するように、ＣＰＵ９０から出力されたアドレス信号またはデータ信号を変換する。
【００８９】
具体的には、例えば、ＣＰＵ９０が『０番地』に『ａａ』という１バイトのデータを書き込もうとした場合、バスコントローラ１１４の信号変換回路は、この『ａａ』という１バイトのデータがＳＤＲＡＭ１０２上に割り当てられた『０番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。  
また、ＣＰＵ９０が『１番地』に『ｂｂ』という１バイトのデータを書き込もうとした場合には、バスコントローラ１１４の信号変換回路は、この『ｂｂ』という１バイトのデータがＳＤＲＡＭ１０２上に割り当てられた『１番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。  
また、ＣＰＵ９０が『２番地』に『ｃｃ』という１バイトのデータを書き込もうとした場合には、バスコントローラ１１４の信号変換回路は、この『ｃｃ』という１バイトのデータがＳＤＲＡＭ１０２上に割り当てられた『２番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。  
また、ＣＰＵ９０が『３番地』に『ｄｄ』という１バイトのデータを書き込もうとした場合には、バスコントローラ１１４の信号変換回路は、この『ｄｄ』という１バイトのデータがＳＤＲＡＭ１０２上に割り当てられた『３番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。  
一方、ＣＰＵ９０が『０番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『０番地』からデータ（ここでは、「ａａ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。  
また、ＣＰＵ９０が『１番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『１番地』からデータ（ここでは、「ｂｂ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。  
また、ＣＰＵ９０が『２番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『２番地』からデータ（ここでは、「ｃｃ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。  
また、ＣＰＵ９０が『３番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『３番地』からデータ（ここでは、「ｄｄ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。
【００９０】
（２）ハーフワードアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ハーフワードアクセス」を実行する場合には、バスコントローラ１１４の信号変換回路は、図１３Ｂに説明するように、ＣＰＵ９０がアクセスする『ビッグ・エディアン方式』のアドレスが、ＳＤＲＡＭ１０２の『リトル・エディアン方式』のアドレスに対応するように、ＣＰＵ９０から出力されたアドレス信号またはデータ信号を変換する。
【００９１】
具体的には、例えば、ＣＰＵ９０が『０番地』および『１番地』に『ａａ』『ｂｂ』という２バイトのデータを書き込もうとした場合には、バスコントローラ１１４の信号変換回路は、この『ａａ』『ｂｂ』の２バイトのデータがＳＤＲＡＭ１０２上に割り当てられた『０番地』および『１番地』（２バイト単位でのアドレッシング）にそれぞれ書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、ＳＤＲＡＭ１０２の『１番地』には、『ａａ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『０番地』には、『ｂｂ』のデータが書き込まれる。  
また、ＣＰＵ９０が『２番地』および『３番地』に『ｃｃ』『ｄｄ』という２バイトのデータを書き込もうとした場合には、バスコントローラ１１４の信号変換回路は、この『ｃｃ』『ｄｄ』の２バイトのデータがＳＤＲＡＭ１０２上に割り当てられた『２番地』および『３番地』（２バイト単位でのアドレッシング）に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、ＳＤＲＡＭ１０２上の『２番地』には、『ｄｄ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『３番地』には、『ｃｃ』のデータが書き込まれる。
【００９２】
一方、ＣＰＵ９０が『０番地』および『１番地』から２バイト分のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『０番地』および『１番地』から２バイトのデータ（ここでは、『０番地』から『ｂｂ』が読み出され、『１番地』から『ａａ』が読み出される）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。  
また、ＣＰＵ９０が『２番地』および『３番地』から２バイト分のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『２番地』および『３番地』から２バイトのデータ（ここでは、『２番地』から『ｄｄ』が読み出され、『３番地』から『ｃｃ』が読み出される）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。
【００９３】
（３）ワードアクセス
また、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ワードアクセス」を実行する場合には、図１３Ｃに説明するように、ＣＰＵ９０が自身のエディアン方式（ここでは、『ビッグ・エディアン方式』）にてアクセスするアドレスと、ＳＤＲＡＭ１０２のエディアン方式（ここでは、『リトル・エディアン方式』）のアドレスとが一致するため、ＣＰＵ９０から出力されたアドレス信号またはデータ信号の変換は行わない。すなわち、同図に示すように、ＣＰＵ９０が『０番地』〜『３番地』（４バイト単位でのアドレッシング）に『ａａ』『ｂｂ』『ｃｃ』『ｄｄ』という４バイトのデータを書き込もうとした場合、バスコントローラ１１４の信号変換回路は、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換しなくても、『ａａ』『ｂｂ』『ｃｃ』『ｄｄ』の４バイトのデータは、ＳＤＲＡＭ１０２の『０番地』〜『３番地』に書き込まれるから、変換は行わない。
【００９４】
なお、この場合、ＳＤＲＡＭ１０２上の『０番地』には、『ｄｄ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『１番地』には、『ｃｃ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『２番地』には、『ｂｂ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『３番地』には、『ｄｄ』のデータが書き込まれる。  
また、ＣＰＵ９０が『０番地』〜『３番地』（４バイト単位でのアドレッシング）から４バイト分のデータを読み込む場合についても、バスコントローラ１１４の信号変換回路は、ＣＰＵ９０が自身のエディアン方式（ここでは、『ビッグ・エディアン方式』）にてアクセスするアドレスと、ＳＤＲＡＭ１０２のエディアン方式（ここでは、『リトル・エディアン方式』）のアドレスとが一致するから、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号の変換は行わない。
【００９５】
＝＝＝本実施形態の処理＝＝＝
本実施形態に係るＳＰＣ複合装置１にあっては、ＣＰＵ９０が自身で後で読み込むためにＳＤＲＡＭ１０２にデータを書き込んだり、またＣＰＵ９０が自身で書き込んだデータをＳＤＲＡＭ１０２から読み込んだりする場合には、バスコントローラ１１４の信号変換回路により前述した変換処理を実行しないようにする。つまり、ＣＰＵ９０から出力されたアドレス信号やデータ信号、またＳＤＲＡＭコントローラ１０３からのデータ信号等の変換は行わないようにする。これは、ＣＰＵ９０が自身でＳＤＲＡＭ１０２に書き込んだデータを再び自身で読み込む場合には、アドレスの対応関係と、データの並びとが確保されているからである。また、ＣＰＵ９０のワークメモリとして使用する場合、当然のことながら各アクセス幅(バイト、ハーフワード、ワード)で書き込んだデータは、違うアクセス幅でリードした場合にもバイト単位でデータが一致しなければならない。このため、この場合には、前述したようなエディアン方式の変換は行なわない。以下に、この処理のことを『スルー(Through)処理』と呼ぶ。
【００９６】
一方、ＣＰＵ９０が他の入出力装置、ここでは制御ＡＳＩＣ９４の各ユニット１０４、１０６、１０８、１１０、１１２、１１４やＳＤＲＡＭコントローラ１０３をはじめ、ローカルバス１２８に接続されたその他のユニット等との間でデータのやり取りする場合には、それら他の入出力装置が対応するエディアン方式にてＳＤＲＡＭ１０２にデータを書き込んだり、また他の入出力装置がＳＤＲＡＭ１０２に書き込んだデータをＣＰＵ９０が読み込んだりするため、前述したようなバスコントローラ１１４の信号変換回路により実行される変換処理が必要となる。本実施形態では、このようなバスコントローラ１１４の信号変換回路により実行される処理のことを『トランス（Trans）処理』と呼ぶ。
【００９７】
以下に前述したバスコントローラ１１４の信号変換回路によりエディアン変換を実施しない処理、即ち『スルー処理』について詳しく説明する。
【００９８】
＜スルー処理＞
図１４Ａ〜図１４Ｃは、ここで行われる処理の概要について説明したものである。図１４Ａは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「バイトアクセス」を実行したときの処理の概要を説明したものである。図１４Ｂは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ハーフワードアクセス」を実行したときの処理の概要を説明したものである。図１４Ｃは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ワードアクセス」を実行したときの処理の概要を説明したものである。
【００９９】
（１）バイトアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「バイトアクセス」を実行した場合には、図１４Ａに説明するように、バスコントローラ１１４の信号変換回路による変換処理を実行せず、そのままＳＤＲＡＭ１０２にアクセスする。すなわち、例えば、ＣＰＵ９０が当該ＣＰＵ９０が対応するエディアン方式にて『０番地』に『ａａ』という１バイトのデータを書き込む場合には、『ａａ』という１バイトのデータは、ＳＤＲＡＭ１０２上の『３番地』に書き込まれる。また、ＣＰＵ９０が『１番地』に『ｂｂ』という１バイトデータを書き込む場合には、『ｂｂ』という１バイトのデータは、ＳＤＲＡＭ１０２上の『２番地』に書き込まれる。また、ＣＰＵ９０が『２番地』に『ｃｃ』という１バイトデータを書き込む場合には、『ｃｃ』という１バイトのデータは、ＳＤＲＡＭ１０２上の『１番地』に書き込まれる。また、ＣＰＵ９０が『３番地』に『ｄｄ』という１バイトデータを書き込む場合には、『ｄｄ』という１バイトのデータは、ＳＤＲＡＭ１０２上の『０番地』に書き込まれる。
【０１００】
他方、ＣＰＵ９０が『０番地』から１バイトのデータを読み込む場合には、ＳＤＲＡＭ１０２上の『３番地』からデータが読み出される。これにより、ＣＰＵ９０は、『０番地』に書き込んだ１バイトのデータを再び『０番地』にアクセスして読み込むことができる。また、ＣＰＵ９０が『１番地』から１バイトのデータを読み込む場合には、ＳＤＲＡＭ１０２上の『２番地』からデータが読み出される。これにより、ＣＰＵ９０は、『１番地』に書き込んだ１バイトのデータを再び『１番地』にアクセスして読み込むことができる。また、ＣＰＵ９０が『２番地』から１バイトのデータを読み込む場合には、ＳＤＲＡＭ１０２上の『１番地』からデータが読み出される。これにより、ＣＰＵ９０は、『２番地』に書き込んだ１バイトのデータを再び『２番地』にアクセスして読み込むことができる。また、ＣＰＵ９０が『３番地』から１バイトのデータを読み込む場合には、ＳＤＲＡＭ１０２上の『０番地』からデータが読み出される。これにより、ＣＰＵ９０は、『３番地』に書き込んだデータを再び『３番地』にアクセスして読み込むことができる。
【０１０１】
（２）ハーフワードアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ハーフワードアクセス」を実行した場合でも、図１４Ｂに説明するように、バスコントローラ１１４の信号変換回路による変換処理を実行せず、そのままＳＤＲＡＭ１０２にアクセスする。すなわち、例えば、ＣＰＵ９０が『０番地』および『１番地』に『ａａ』『ｂｂ』という２バイトのデータを書き込む場合、『ａａ』『ｂｂ』という２バイトのデータは、ＳＤＲＡＭ１０２上の『３番地』および『２番地』に書き込まれる。また、ＣＰＵ９０が『２番地』および『３番地』に『ｃｃ』『ｄｄ』という２バイトのデータを書き込もうとした場合、『ｃｃ』『ｄｄ』という２バイトのデータは、ＳＤＲＡＭ１０２上の『１番地』および『０番地』に書き込まれる。
【０１０２】
他方、ＣＰＵ９０が『０番地』および『１番地』に書き込んだ２バイトのデータを再び読み込む場合には、ＳＤＲＡＭ１０２上の『３番地』および『２番地』からデータが読み出される。これにより、ＣＰＵ９０は、『０番地』および『１番地』に書き込んだ２バイトのデータを再び『０番地』および『１番地』にアクセスすることで読み込むことができる。また、ＣＰＵ９０が『２番地』および『３番地』に書き込んだ２バイトのデータを再び読み込む場合には、ＳＤＲＡＭ１０２上の『１番地』および『０番地』からデータが読み出される。これにより、ＣＰＵ９０は、『２番地』および『３番地』に書き込んだ２バイトのデータを再び『２番地』および『３番地』にアクセスすることで読み込むことができる。
【０１０３】
（３）ワードアクセス
また、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ワードアクセス」を実行したときも同様に、図１４Ｃに説明するように、バスコントローラ１１４の信号変換回路による変換処理を実行せず、そのままＳＤＲＡＭ１０２にアクセスする。すなわち、例えば、ＣＰＵ９０が、『０番地』、『１番地』、『２番地』および『３番地』に『ａａ』『ｂｂ』『ｃｃ』『ｄｄ』という４バイトデータを書き込もうとした場合には、『ａａ』『ｂｂ』『ｃｃ』『ｄｄ』という４バイトデータは、ＳＤＲＡＭ１０２上の『３番地』、『２番地』、『１番地』および『０番地』の順に書き込まれる。
【０１０４】
他方、ＣＰＵ９０が『０番地』、『１番地』、『２番地』および『３番地』に書き込んだ４バイトのデータを再び読み込もうとした場合には、ＳＤＲＡＭ１０２上の『３番地』、『２番地』、『１番地』および『０番地』からデータが読み出される。これにより、ＣＰＵ９０は、『０番地』、『１番地』、『２番地』および『３番地』に書き込んだ４バイトのデータを再び『０番地』、『１番地』、『２番地』および『３番地』にアクセスすることで読み込むことができる。
【０１０５】
＝＝＝具体的な構成例＝＝＝
このようなトランス処理やスルー処理をバスコントローラ１１４により具体的に実現するための構成例について説明する。図１５〜図１７は、これらトランス処理とスルー処理をバスコントローラ１１４により実現するための構成の一例について説明したものである。図１５は、バスコントローラ１１４と、ＣＰＵ９０およびＳＤＲＡＭコントローラ１０３との間の信号のやり取りを説明したものである。図１６は、ＣＰＵ９０によりＳＤＲＡＭ１０２に対して書き込み処理が行われる場合のバスコントローラ１１４の内部処理について説明したものである。図１７は、ＣＰＵ９０によりＳＤＲＡＭ１０２に対して読み込み処理が行われる場合のバスコントローラ１１４の内部処理について説明したものである。
【０１０６】
＜信号線＞
ＣＰＵ９０からバスコントローラ１１４には、図１５に示すように、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬの４系統のアクセス信号と、ＸＣＳ＿ＴＲおよびＸＣＳ＿ＴＨの２本の変換指示信号と、アドレス信号と、データ信号と、ＲｄｏｒＷＲ信号とが伝達される。これらの信号は、ＣＰＵ９０からＣＰＵバス９８を通じてバスコントローラ１１４に伝達される。また、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬの４系統のアクセス信号と、アドレス信号とは、「アドレス信号」に相当する。また、これら４系統のアクセス信号と、アドレス信号とのうちのいずれか一方は、「第１アクセス信号」に相当し、他方は、「第２アクセス信号」に相当する。つまり、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬの４系統のアクセス信号と、アドレス信号とのうちのどちらか一方が、ＳＤＲＡＭに縦方向および横方向に所定の個数ずつ並んで配置されて設けられた多数のメモリセルのうちの縦方向の位置を指定するための信号であり、それらのうちの他方が、多数のメモリセルのうちの横方向の位置を指定するための信号である。
【０１０７】
ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬの４系統のアクセス信号は、それぞれＣＰＵ９０がＳＤＲＡＭ１０２上のどのバイト位置にアクセスしたいか指示する信号である。ここでは、ＸＷＥＨＨは、最上位バイトのアドレスに対応している。すなわち、ここでは、ＣＰＵ９０が『ビッグ・エディアン方式』を採用していることから、ＣＰＵ９０の『０番地』に対応している。また、ＸＷＥＨＬは、最上位バイトのアドレスの隣の下位のアドレスに対応している。すなわち、ここでは、ＣＰＵ９０の『１番地』に対応している。さらに、ＸＷＥＬＨは、最上位バイトのアドレスから２番目に隣の下位のアドレスに対応している。すなわち、ここでは、ＣＰＵ９０の『２番地』に対応している。またさらに、ＸＷＥＬＬは、最下位バイトのアドレスに対応している。すなわち、ここでは、ＣＰＵ９０の『３番地』に対応している。
【０１０８】
ＸＣＳ＿ＴＲおよびＸＣＳ＿ＴＨの各信号は、バスコントローラ１１４が実行すべき処理、即ちトランス処理またはスルー処理を指示する。これらＸＣＳ＿ＴＲおよびＸＣＳ＿ＴＨの各信号を出力するのは、ＣＰＵ９０である。ＸＣＳ＿ＴＲの信号は、トランス処理の実行を指示するための信号である。ＸＣＳ＿ＴＨの信号は、スルー処理の実行を指示する信号である。  
アドレス信号は、ＣＰＵ９０がアクセスするＳＤＲＡＭ１０２上のアドレスを指定する信号である。また、データ信号は、ＳＤＲＡＭ１０２に書き込むデータを送ったり、またＳＤＲＡＭ１０２から読み込まれたデータを取得するための信号である。ここでは、データ信号として３２ビット（４バイト）の幅でデータのやり取りが行われる。このアドレス信号には、セレクト信号Ａ、Ｂが含まれる。
【０１０９】
セレクト信号Ａ、Ｂは、ＣＰＵ９０が書き込むデータまたは読み込むデータの位置を指示する信号である。すなわち、ＣＰＵ９０とバスコントローラ１１４との間のデータのやり取りは３２ビット（４バイト）の幅で行われる。これに対し、バスコントローラ１１４と、ＳＤＲＡＭコントローラ１０３との間では、１２８ビット（１６バイト）の幅でデータのやり取りが行われる。セレクト信号Ａ、Ｂは、ＣＰＵ９０が書き込むデータまたは読み込むデータが、バスコントローラ１１４と、ＳＤＲＡＭコントローラ１０３との間でやり取りされる１２８ビット（１６バイト）幅のデータのどの位置か指示する。  
ＲｄｏｒＷＲ信号は、ＣＰＵが実行する処理が書き込み処理なのか読み込み処理なのかを指示する信号である。
【０１１０】
また、バスコントローラ１１４からＳＤＲＡＭコントローラ１０３には、図１５に示すように、１６本のＤＱＭ信号と、アドレス信号と、データ信号とが伝達される。これらの信号は、ローカルバス１２８を通じてバスコントローラ１１４からＳＤＲＡＭコントローラ１０３へと伝達される。  
アドレス信号は、ＣＰＵ９０がアクセスするＳＤＲＡＭ１０２上のアドレスを指定する信号である。ＣＰＵ９０からバスコントローラ１１４に入力されたアドレス信号がそのままバスコントローラ１１４からＳＤＲＡＭコントローラ１０３に向けて出力される。  
データ信号は、ＳＤＲＡＭ１０２に書き込むデータを送ったり、またＳＤＲＡＭ１０２から読み込まれたデータを取得するための信号である。ここでは、データ信号として１２８ビット（１６バイト）の幅でデータのやり取りが行われる。  
ＤＱＭ信号は、バスコントローラ１１４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）分のデータのうち、どのバイトのデータを書き込みアクセスの対象とするのか指示するための信号である。これら１６本のＤＱＭ信号は、ＣＰＵ９０からバスコントローラ１１４に、ライトアクセスが発生して後述するライトバッファに書き込み時に入力された４系統のアクセス信号、即ちＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬと、セレクト信号Ａ、Ｂとに基づき生成される。これらＤＱＭ信号については、後で詳しく説明する。
【０１１１】
＝＝＝書き込み処理＝＝＝
ＣＰＵ９０によるＳＤＲＡＭ１０２へのデータ書き込み時のバスコントローラ１１４の処理について説明する。バスコントローラ１１４には、ＣＰＵ９０がＳＤＲＡＭ１０２に対してデータの書き込みを行うために、図１６に示すように、ＸＷＥ変換ブロック１５０と、データ変換ブロック１５２と、ライトバッファ１５４とが設けられている。  
ＸＷＥ変換ブロック１５０は、ＣＰＵ９０から出力された変換指示信号、即ちトランス処理かスルー処理かを指示するＸＣＳ＿ＴＲ信号及びＸＣＳ＿ＴＨ信号に基づき、ＣＰＵ９０から出力された４系統のアクセス信号、即ちＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬを、４系統のアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬに変換する。
【０１１２】
＜ＣＰＵからの信号＞
図１８は、ＣＰＵ９０のアクセス方式と、ＣＰＵ９０から出力される４系統の信号、即ちＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの状態とをそれぞれ対応させてまとめたものである。ＣＰＵ９０が『０番地』に対してバイトアクセスする場合には、ＸＷＥＨＨのみが『Ｌ（low）』となる。なお、他の信号ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬは、『Ｈ(high)』のままである。また、ＣＰＵ９０が『１番地』に対してバイトアクセスする場合には、ＸＷＥＨＬのみが『Ｌ(low)』となる。また、ＣＰＵ９０が『２番地』に対してバイトアクセスする場合には、ＸＷＥＬＨのみが『Ｌ(low)』となる。また、ＣＰＵ９０が『３番地』に対してバイトアクセスする場合には、ＸＷＥＬＬのみが『Ｌ(low)』となる。
【０１１３】
他方、ＣＰＵ９０が『０番地』に対してハーフワードアクセスする場合には、ＸＷＥＨＨの他に、ＸＷＥＨＬが『Ｌ（low）』となる。また、ＣＰＵ９０が『２番地』に対してハーフワードアクセスする場合には、ＸＷＥＬＨの他に、ＸＷＥＬＬが『Ｌ（low）』となる。また、ＣＰＵ９０が『０番地』に対してワードアクセスを実行した場合には、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの全てが『Ｌ(low)』となる。
【０１１４】
図１９は、ＸＣＳ＿ＴＲおよびＸＣＳ＿ＴＨをまとめたものである。ＣＰＵ９０からトランス処理の指示があった場合には、ＸＣＳ＿ＴＲが『Ｌ(low)』となる。この場合、ＸＣＳ＿ＴＨは、『Ｈ(high)』のままである。一方、ＣＰＵ９０からスルー処理の指示があった場合には、ＸＣＳ＿ＴＨが『Ｌ(low)』となる。この場合、ＸＣＳ＿ＴＲは、『Ｈ(high)』のままである。
【０１１５】
＜ＸＷＥ変換ブロック＞
図２０Ａおよび図２０Ｂは、ＸＷＥ変換ブロック１５０により変換されて出力される４系統のアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの出力状態を説明したものである。図２０Ａは、トランス処理時の信号の出力状態を説明したものである。図２０Ｂは、スルー処理時の信号の出力状態を説明したものである。
【０１１６】
（１）トランス処理の場合
トランス処理の場合には、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号は、ＸＷＥ変換ブロック１５０により図２０Ａに示すように変換される。すなわち、ＣＰＵ９０が『０番地』に対してバイトアクセスした場合には、ＩＸＷＥＬＬのみが『Ｌ（low）』となる。なお、他の信号ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨは、すべて『Ｈ(high)』のままである。また、ＣＰＵ９０が『１番地』に対してバイトアクセスした場合には、ＩＸＷＥＬＨのみが『Ｌ(low)』となる。また、ＣＰＵ９０が『２番地』に対してバイトアクセスした場合には、ＩＸＷＥＨＬのみが『Ｌ(low)』となる。また、ＣＰＵ９０が『３番地』に対してバイトアクセスした場合には、ＸＷＥＨＨのみが『Ｌ(low)』となる。  
また、ＣＰＵ９０が『０番地』に対してハーフワードアクセスした場合には、ＩＸＷＥＬＨおよびＩＸＷＥＬＬが『Ｌ（low）』となる。また、ＣＰＵ９０が『２番地』に対してハーフワードアクセスした場合には、ＩＸＥＨＨおよびＩＸＷＥＨＬが『Ｌ（low）』となる。また、ＣＰＵ９０が『０番地』に対してワードアクセスを実行した場合には、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの全てが『Ｌ(low)』となる。
【０１１７】
（２）スルー処理の場合
一方、スルー処理の場合には、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号は、ＸＷＥ変換ブロック１５０により変換されず、図２０Ｂに示すように、そのまま各々対応して出力される。すなわち、ＣＰＵ９０が『０番地』に対してバイトアクセスする場合には、ＩＸＷＥＨＨのみが『Ｌ（low）』となる。なお、他の信号ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬは、『Ｈ(high)』のままである。また、ＣＰＵ９０が『１番地』に対してバイトアクセスする場合には、ＩＸＷＥＨＬのみが『Ｌ(low)』となる。また、ＣＰＵ９０が『２番地』に対してバイトアクセスする場合には、ＩＸＷＥＬＨのみが『Ｌ(low)』となる。また、ＣＰＵ９０が『３番地』に対してバイトアクセスする場合には、ＩＸＷＥＬＬのみが『Ｌ(low)』となる。  
他方、ＣＰＵ９０が『０番地』に対してハーフワードアクセスする場合には、ＩＸＷＥＨＨの他に、ＩＸＷＥＨＬが『Ｌ（low）』となる。また、ＣＰＵ９０が『２番地』に対してハーフワードアクセスする場合には、ＩＸＷＥＬＨの他に、ＩＸＷＥＬＬが『Ｌ（low）』となる。また、ＣＰＵ９０が『０番地』に対してワードアクセスを実行した場合には、ＩＸＷＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの全てが『Ｌ(low)』となる。
【０１１８】
＜データ変換ブロック＞
データ変換ブロック１５２は、ＣＰＵ９０から出力された変換指示信号、即ちトランス処理かスルー処理かを指示するＸＣＳ＿ＴＲ及びＸＣＳ＿ＴＨと、同じくＣＰＵ９０から出力された４系統のアクセス信号、即ちＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬとに基づき、ＣＰＵ９０から出力された３２ビット幅のデータ信号を変換する。
【０１１９】
図２１は、データ変換ブロック１５２による変換処理を概念的に説明したものである。データ変換ブロック１５２は、ＣＰＵ９０からＸＣＳ＿ＴＲによりトランス処理の指示があったときにのみ、４バイト（３２ビット）幅のデータの並び換えを行う。すなわち、ＣＰＵ９０からＸＣＳ＿ＴＨによりスルー処理の指示があったときには、データの並び換えの変換は行わず、そのままライトバッファ１５４に向けて出力する。  
図２１Ａは、バイトアクセス時のデータの変換方法を説明したものである。図２１Ｂは、ハーフワードアクセス時のデータの変換方法を説明したものである。なお、ワードアクセス時には、データ変換ブロック１５２によるデータの変換処理は行わない。  
バイトアクセス時には、図２１Ａに示すように、データ変換ブロック１５２は、ＣＰＵ９０から送られてきた４バイト（３２ビット）幅のデータを１バイトずつ交互に入れ替える変換を行う。すなわち、ここで、データ変換ブロック１５２は、最上位バイト側に位置する『ａａ』という１バイトデータと、最下位バイト側に位置する『ｄｄ』という１バイトデータの位置を左右入れ替える処理を行う。また、中央に位置する『ｂｂ』という１バイトデータと『ｃｃ』という１バイトデータを左右入れ替える処理を行う。これにより、最上位バイトから最下位バイトにかけて『ｄｄｃｃｂｂａａ』という並びの４バイトデータを取得する。このようにして得られた４バイトデータ（３２ビット）をライトバッファ１５４に向けて出力する。  
また、ハーフワードアクセス時には、図２１Ｂに示すように、データ変換ブロック１５２は、ＣＰＵ９０から送られてきた４バイト（３２ビット）幅のデータを２バイトずつ左右入れ替える変換を行う。すなわち、データ変換ブロック１５２は、最上位バイト側に位置する『ａａｂｂ』という２バイトデータと、最下位バイト側に位置する『ｃｃｄｄ』という２バイトデータとを左右入れ替える。これにより、最上位バイトから最下位バイトにかけて『ｃｃｄｄａａｂｂ』という並びの４バイトデータを取得する。このようにして得られた４バイトデータ（３２ビット）はライトバッファ１５４に向けて出力される。
【０１２０】
＜ライトバッファ＞
ライトバッファ１５４は、１６バイト（１２８ビット）分のデータを格納可能なバッファを有する。このバッファには、４つの格納部１５５Ａ、１５５Ｂ、１５５Ｃ、１５５Ｄが設けられている。各格納部１５５Ａ、１５５Ｂ、１５５Ｃ、１５５Ｄはそれぞれ４バイト（３２ビット）分ずつデータを格納するようになっている。データ変換ブロック１５２により変換されて送られてきた４バイト（３２ビット）のデータは、これら４つの格納部１５５Ａ、１５５Ｂ、１５５Ｃ、１５５Ｄのうちのいずれか１つに格納される。ライトバッファ１５４は、ＣＰＵ９０から出力されたセレクト信号Ａ、Ｂに基づき、データ変換ブロック１５２により変換されて送られてきた４バイト（３２ビット）のデータを格納する格納部を決定する。
【０１２１】
図２２は、ＣＰＵ９０から出力されたセレクト信号Ａ、Ｂと、ライトバッファ１５４が決定する格納部との関係の一例について説明したものである。ここでは、セレクト信号Ａ、Ｂの状態の組合せに応じて、データ変換ブロック１５２からの４バイト（３２ビット）のデータを格納する格納部が決定される。つまり、例えば、セレクト信号Ａ、Ｂが共に『Ｈ(high)』であれば、データ変換ブロック１５２からの４バイト（３２ビット）のデータは、バッファの９６ビット目から１２７ビット目に割り当てられた第１格納部１５５Ａに格納される。また、セレクト信号Ａが『Ｈ(high)』であり、セレクト信号Ｂが『Ｌ(Low)』であれば、データ変換ブロック１５２からの４バイト（３２ビット）のデータは、６４ビット目から９５ビット目に割り当てられた第２格納部１５５Ｂに格納される。また、セレクト信号Ａが『Ｌ(Low)』であり、セレクト信号Ｂが『Ｈ(high)』であれば、データ変換ブロック１５２からの４バイト（３２ビット）のデータは、３２ビット目から６３ビット目に割り当てられた第３格納部１５５Ｃに格納される。また、セレクト信号Ａ、Ｂが共に『Ｌ(Low)』であれば、データ変換ブロック１５２からの４バイト（３２ビット）のデータは、バッファの０ビット目から３１ビット目に割り当てられた第４格納部１５５Ｄに格納される。このようにいずれか１つの格納部に格納されたデータは、ＳＤＲＡＭコントローラ１０３に向けて１６バイト（１２８ビット）ずつ送出される。
【０１２２】
＜ＤＱＭ信号＞
また、ライトバッファ１５４は、ＸＷＥ変換ブロック１５０から出力されたＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬと、ＣＰＵ９０からのセレクト信号Ａ、Ｂとに基づき、ＤＱＭ信号Ｎ１〜Ｎ１６を生成する。これらＤＱＭ信号Ｎ１〜Ｎ１６は、先にも説明したように、バスコントローラ１１４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）分のデータのうち、どのバイトのデータをライトアクセスの対象とするのか否かそれぞれ指示するための信号である。
【０１２３】
これらＤＱＭ信号Ｎ１〜Ｎ１６は、ライトバッファ１５４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）のデータのうちのどのバイトのデータがライトアクセスの対象となっているのか指示する。例えば、ＤＱＭ信号Ｎ１は、例えば、ライトバッファ１５４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）のデータのうちの１バイト目のデータがライトアクセスの対象か否か指示する。また、ＤＱＭ信号Ｎ２は、例えば、ライトバッファ１５４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）のデータのうちの２バイト目のデータがライトアクセスの対象か否か指示する。さらにまた、ＤＱＭ信号Ｎ１６は、例えば、ライトバッファ１５４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）のデータのうちの１６バイト目のデータがライトアクセスの対象か否か指示する。
【０１２４】
ライトバッファ１５４は、これらＤＱＭ信号Ｎ１〜Ｎ１６を、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬのアクセス信号と、ＣＰＵ９０からのセレクト信号Ａ、Ｂとに基づき生成する。図２３は、ライトバッファ１５４により生成されるＤＱＭ信号Ｎ１〜Ｎ１６の概要についてまとめたものである。ここで、ＤＱＭ信号Ｎ１〜Ｎ４は、ＣＰＵ９０からのセレクト信号Ａ、Ｂが共に『Ｈ(high)』であるときに、ＸＷＥ変換ブロック１５０からのアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬに対応する信号を各々対応して出力する。なお、ＣＰＵ９０からのセレクト信号Ａ、Ｂがその他の状態のときには、ＤＱＭ信号Ｎ１〜Ｎ４は、『Ｈ(high)』のままである。
【０１２５】
ＤＱＭ信号Ｎ５〜Ｎ８は、ＣＰＵ９０からのセレクト信号Ａが『Ｈ(high)』であり、セレクト信号Ｂが『Ｌ(Low)』であるときに、ＸＷＥ変換ブロック１５０からのアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬに対応する信号を各々対応して出力する。なお、ＣＰＵ９０からのセレクト信号Ａ、Ｂがその他の状態のときには、ＤＱＭ信号Ｎ５〜Ｎ８は、『Ｈ(high)』のままである。  
ＤＱＭ信号Ｎ９〜Ｎ１２は、ＣＰＵ９０からのセレクト信号Ａが『Ｌ(Low)』であり、セレクト信号Ｂが『Ｈ(high)』であるときに、ＸＷＥ変換ブロック１５０からのアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬに対応する信号を各々対応して出力する。なお、ＣＰＵ９０からのセレクト信号Ａ、Ｂがその他の状態のときには、ＤＱＭ信号Ｎ９〜Ｎ１２は、『Ｈ(high)』のままである。  
ＤＱＭ信号Ｎ１３〜Ｎ１６は、ＣＰＵ９０からのセレクト信号Ａ、Ｂが共に『Ｌ(Low)』であるときに、ＸＷＥ変換ブロック１５０からのアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬに対応する信号を各々対応して出力する。なお、ＣＰＵ９０からのセレクト信号Ａ、Ｂがその他の状態のときには、ＤＱＭ信号Ｎ１３〜Ｎ１６は、『Ｈ(high)』のままである。
【０１２６】
このようにしてＤＱＭ信号Ｎ１〜Ｎ１６が生成されてライトバッファ１５４からＳＤＲＡＭコントローラ１０３へと出力されることで、バスコントローラ１１４からＳＤＲＡＭコントローラ１０３へと送信される１６バイト（１２８ビット）分のデータのうち、どのバイトのデータをライトアクセスの対象とするのか指示することができる。
【０１２７】
＜ＳＤＲＡＭコントローラ１０３＞
ＳＤＲＡＭコントローラ１０３は、バスコントローラ１１４から送られてきた１６バイト（１２８ビット）のデータをＳＤＲＡＭ１０２に書き込む処理を行う。このとき、ＳＤＲＡＭコントローラ１０３は、バスコントローラ１１４から送られてきた１６バイト（１２８ビット）のデータの中から、バスコントローラ１１４から出力されたＤＱＭ信号Ｎ１〜Ｎ１６により指定されたアドレスに対応するデータのみライトを行う。そして、ＳＤＲＡＭコントローラ１０３は、有効であるデータを、ＤＱＭ信号Ｎ１〜Ｎ１６により指示されたアドレスに書き込む。
【０１２８】
＜各信号＞
（１）トランス処理時
図２４Ａ〜図２４Ｇは、トランス処理時の各信号を示したものである。ここでは、アドレス信号、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬ、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨ、ＩＸＷＥＬＬ、ＸＣＳ＿ＴＲ、ＸＣＳ＿ＴＨ、変換前および変換後のデータ信号を示す。図２４Ａは、ＣＰＵ９０が『０番地』にバイトアクセスをしたときの各信号を示す。図２４Ｂは、ＣＰＵ９０が『１番地』にバイトアクセスしたときの各信号を示す。図２４Ｃは、ＣＰＵ９０が『２番地』にバイトアクセスしたときの各信号を示す。図２４Ｄは、ＣＰＵ９０が『３番地』にバイトアクセスしたときの各信号を示す。図２４Ｅは、ＣＰＵ９０が『０番地』にハーフワードアクセスをしたときの各信号を示す。図２４Ｆは、ＣＰＵ９０が『２番地』にハーフワードアクセスをしたときの各信号を示す。図２４Ｇは、ＣＰＵ９０が『０番地』にワードアクセスをしたときの各信号を示す。
【０１２９】
ＣＰＵ９０が『０番地』にバイトアクセスをした場合には、図２４Ａに示すように、ＸＷＥＨＨのみが『Ｌ(low)』となる。このため、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＲが『Ｌ(low)』であることから、トランス処理と判断することができる。これらによって、ＸＷＥ変換ブロック１５０は、ＩＸＷＥＬＬのみを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａに示すように変更することができる。
【０１３０】
ＣＰＵ９０が『１番地』にバイトアクセスをした場合には、図２４Ｂに示すように、ＸＷＥＨＬのみが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『１番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＲが『Ｌ(low)』であることから、トランス処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、ＩＸＷＥＬＨのみを『Ｌ(low)』にすることができ、また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａに示すように変換することができる。
【０１３１】
ＣＰＵ９０が『２番地』にバイトアクセスをした場合には、図２４Ｃに示すように、ＸＷＥＬＨのみが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『２番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＲが『Ｌ(low)』であることから、トランス処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、ＩＸＷＥＨＬのみを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａに示すように変換することができる。
【０１３２】
ＣＰＵ９０が『３番地』にバイトアクセスをした場合には、図２４Ｄに示すように、ＸＷＥＬＬのみが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『３番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＲが『Ｌ(low)』であることから、トランス処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、ＩＸＷＥＨＨのみを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａに示すように変換することができる。
【０１３３】
ＣＰＵ９０が『０番地』にハーフワードアクセスをした場合には、図２４Ｅに示すように、ＸＷＥＨＨおよびＸＷＥＨＬが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのハーフワードアクセスと判断することができる。また、ＸＣＳ＿ＴＲが『Ｌ(low)』であることから、トランス処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、ＩＸＷＥＬＨおよびＩＸＷＥＬＬを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ｂに示すように変換することができる。
【０１３４】
ＣＰＵ９０が『２番地』にハーフワードアクセスをした場合には、図２４Ｆに示すように、ＸＷＥＬＨおよびＸＷＥＬＬが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのハーフワードアクセスと判断することができる。また、ＸＣＳ＿ＴＲが『Ｌ(low)』であることから、トランス処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、ＩＸＷＥＨＨおよびＩＸＷＥＨＬを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ｂに示すように変換することができる。
【０１３５】
ＣＰＵ９０が『０番地』にワードアクセスをした場合には、図２４Ｆに示すように、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの各信号が全て『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのワードアクセスと判断することができる。これによりＸＷＥ変換ブロック１５０は、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの全ての信号を『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂに示すように変換せずに済む。
【０１３６】
（２）スルー処理時
図２５Ａ〜図２５Ｇは、スルー処理時の各信号を示したものである。ここでは、アドレス信号、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬ、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨ、ＩＸＷＥＬＬ、ＸＣＳ＿ＴＲ、ＸＣＳ＿ＴＨ、変換前および変換後のデータ信号を示す。図２５Ａは、ＣＰＵ９０が『０番地』にバイトアクセスをしたときの各信号を示す。図２５Ｂは、ＣＰＵ９０が『１番地』にバイトアクセスしたときの各信号を示す。図２５Ｃは、ＣＰＵ９０が『２番地』にバイトアクセスしたときの各信号を示す。図２５Ｄは、ＣＰＵ９０が『３番地』にバイトアクセスしたときの各信号を示す。図２５Ｅは、ＣＰＵ９０が『０番地』にハーフワードアクセスをしたときの各信号を示す。図２５Ｆは、ＣＰＵ９０が『２番地』にハーフワードアクセスをしたときの各信号を示す。図２５Ｇは、ＣＰＵ９０が『０番地』にワードアクセスをしたときの各信号を示す。
【０１３７】
ＣＰＵ９０が『０番地』にバイトアクセスをした場合には、図２５Ａに示すように、ＸＷＥＨＨのみが『Ｌ(low)』となる。このため、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＨが『Ｌ(low)』であることから、スルー処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、変換せずに済み、これにより、ＩＸＷＥＨＨのみを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂのように変換せずに済む。
【０１３８】
ＣＰＵ９０が『２番地』にバイトアクセスをした場合には、図２５Ｃに示すように、ＸＷＥＬＨのみが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『２番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＨが『Ｌ(low)』であることから、スルー処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、変換せずに済み、これにより、ＩＸＷＥＬＨのみを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂのように変換せずに済む。
【０１３９】
ＣＰＵ９０が『３番地』にバイトアクセスをした場合には、図２５Ｄに示すように、ＸＷＥＬＬのみが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『３番地』へのバイトアクセスと判断することができる。また、ＸＣＳ＿ＴＨが『Ｌ(low)』であることから、スルー処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、変換せずに済み、これにより、ＩＸＷＥＬＬのみを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂのように変換せずに済む。
【０１４０】
ＣＰＵ９０が『０番地』にハーフワードアクセスをした場合には、図２５Ｅに示すように、ＸＷＥＨＨおよびＸＷＥＨＬが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのハーフワードアクセスと判断することができる。また、ＸＣＳ＿ＴＨが『Ｌ(low)』であることから、スルー処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、変換せずに済み、これにより、ＩＸＷＥＨＨおよびＩＸＷＥＨＬを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂのように変換せずに済む。
【０１４１】
ＣＰＵ９０が『２番地』にハーフワードアクセスをした場合には、図２５Ｆに示すように、ＸＷＥＬＨおよびＸＷＥＬＬが『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのハーフワードアクセスと判断することができる。また、ＸＣＳ＿ＴＨが『Ｌ(low)』であることから、スルー処理と判断することができる。これによって、ＸＷＥ変換ブロック１５０は、変換せずに済み、これにより、ＩＸＷＥＬＨおよびＩＸＷＥＬＬを『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂのように変換せずに済む。
【０１４２】
ＣＰＵ９０が『０番地』にワードアクセスをした場合には、図２５Ｆに示すように、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの各信号が全て『Ｌ(low)』となるから、ＸＷＥ変換ブロック１５０およびデータ変換ブロック１５２は、『０番地』へのワードアクセスと判断することができる。これにより、ＸＷＥ変換ブロック１５０は、変換せずに済み、したがって、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの全ての信号を『Ｌ(low)』にすることができる。また、データ変換ブロック１５２は、データ信号のデータの並びを図２１Ａまたは図２１Ｂに示すように変換せずに済む。
【０１４３】
＝＝＝読み込み処理＝＝＝
ＣＰＵ９０がＳＤＲＡＭ１０２からデータの読み込みを行うときのバスコントローラ１１４の処理について説明する。バスコントローラ１１４には、ＣＰＵ９０がＳＤＲＡＭ１０２からデータの読み込みを行うために、図１７に示すように、ＸＷＥ変換ブロック１５６と、データ変換ブロック１５８と、セレクタ１６０と、リードバッファ１６２とが設けられている。  
ＸＷＥ変換ブロック１５６は、ＣＰＵ９０から出力されたＸＣＳ＿ＴＲ信号及びＸＣＳ＿ＴＨ信号に基づき、ＣＰＵ９０からのＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの各信号を、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号に変換する。  
リードバッファ１６２は、ＳＤＲＡＭコントローラ１０３から送られてきた１２８ビット（１６バイト）のデータを一時的に格納して、そのデータをセレクタ１６０に出力する。セレクタ１６０は、リードバッファ１６２から送られてきた１２８ビット（１６バイト）のデータの中から、ＣＰＵ９０からのセレクト信号Ａ、Ｂにより指定された位置の４バイドのデータを切り出してデータ変換ブロック１５８に送信する。データ変換ブロック１５８は、セレクタ１６０から送られてきた４バイドのデータを、ＸＷＥ変換ブロック１５６からのＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号と、ＣＰＵ９０から出力されたＸＣＳ＿ＴＲ信号及びＸＣＳ＿ＴＨ信号とに基づき変換する。
【０１４４】
＜アドレスの指定＞
ＣＰＵ９０がＳＤＲＡＭ１０２からデータの読み込みを行う場合には、バスコントローラ１１４は、まず、ＣＰＵ９０から出力されたアドレス信号をそのままＳＤＲＡＭコントローラ１０３に向けて出力する。このアドレス信号を受信すると、ＳＤＲＡＭコントローラ１０３は、ＳＤＲＡＭ１０２からＣＰＵ９０により指定されたアドレスに記憶されているデータを取得する。そして、ＳＤＲＡＭコントローラ１０３は、ＳＤＲＡＭ１０２から取得したデータを、要求のあったバスコントローラ１１４に向けて送信する。本実施形態では、ＳＤＲＡＭコントローラ１０３からバスコントローラ１１４に向けて１２８ビット（１６バイト）のデータが送信される。  
バスコントローラ１１４は、ＳＤＲＡＭコントローラ１０３から送られてきた１２８ビット（１６バイト）のデータを受信すると、この１６バイトのデータをリードバッファ１６２に格納する。その後、リードバッファ１６２は、格納した１６バイトのデータをセレクタ１６０に送信する。
【０１４５】
＜セレクタ＞
セレクタ１６０は、リードバッファ１６２から送信された１６バイトのデータの中から、ＣＰＵ９０からのセレクト信号Ａ、Ｂに基づき、所定の位置の４バイト（３２ビット）のデータを抽出してデータ変換ブロック１５８に送信する。具体的には、セレクタ１６０は、リードバッファ１６２から送られてきた１６バイトのデータを４バイトずつ４つのデータに区分して、その４つのデータの中から、ＣＰＵ９０からのセレクト信号Ａ、Ｂにより指定されたデータを選択して、その選択したデータをデータ変換ブロック１５８に送信する。
【０１４６】
図２６は、セレクタ１６０によるデータの選択方法の一例を説明したものである。セレクタ１６０が選択するデータは、ＣＰＵ９０からのセレクト信号Ａ、Ｂに応じて異なる。すなわち、例えば、セレクト信号Ａ、Ｂが共に『Ｈ(high)』であれば、セレクタ１６０は、１６バイト（１２８ビット）のデータの９６ビット目から１２７ビット目の第１区分データを選択してデータ変換ブロック１５８に送信する。また、セレクト信号Ａが『Ｈ(high)』であり、セレクト信号Ｂが『Ｌ(Low)』であれば、セレクタ１６０は、１６バイト（１２８ビット）のデータの６４ビット目から９５ビット目の第２区分データを選択してデータ変換ブロック１５８に送信する。また、セレクト信号Ａが『Ｌ(Low)』であり、セレクト信号Ｂが『Ｈ(high)』であれば、セレクタ１６０は、１６バイト（１２８ビット）のデータの３２ビット目から６３ビット目の第３区分データを選択してデータ変換ブロック１５８に送信する。また、セレクト信号Ａ、Ｂが共に『Ｌ(Low)』であれば、セレクタ１６０は、１６バイト（１２８ビット）のデータの０ビット目から３１ビット目の第４区分データを選択してデータ変換ブロック１５８に送信する。
【０１４７】
＜ＸＷＥ変換ブロック＞
ＸＷＥ変換ブロック１５６は、書き込み処理の場合と同様に、ＣＰＵ９０から出力された変換指示信号、即ちトランス処理かスルー処理かを指示するＸＣＳ＿ＴＲ信号及びＸＣＳ＿ＴＨ信号に基づき、ＣＰＵ９０から出力された４系統のアクセス信号、即ちＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬを、４系統のアクセス信号、即ちＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬに変換する。すなわち、トランス処理の場合には、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号は、ＸＷＥ変換ブロック１５６により図２０Ａに示すように変換される。一方、スルー処理の場合には、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号は、ＸＷＥ変換ブロック１５６により変換されず、図２０Ｂに示すように、そのまま各々対応して出力される。
【０１４８】
＜データ変換ブロック＞
データ変換ブロック１５８は、セレクタ１６０から送られてきた４バイト（３２ビット）のデータを、ＸＷＥ変換ブロック１５６からのＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨおよびＩＸＷＥＬＬの各信号に基づき変換する。図２７は、ここで行われる変換処理について説明したものである。図２７Ａは、バイトアクセス時のデータの変換方法を説明したものである。図２７Ｂは、ハーフワードアクセス時のデータの変換方法を説明したものである。なお、ワードアクセス時には、データ変換ブロック１５８によるデータの変換処理は行わない。  
データ変換ブロック１５８は、ＣＰＵ９０からＸＣＳ＿ＴＲによりトランス処理の指示があったときにのみ、４バイト（３２ビット）幅のデータの並び換えを行う。すなわち、ＣＰＵ９０からＸＣＳ＿ＴＨによりスルー処理の指示があったときには、データの並び換えの変換は行わず、そのままＣＰＵ９０に向けて出力する。
【０１４９】
バイトアクセス時には、図２７Ａに示すように、データ変換ブロック１５８は、ＣＰＵ９０から送られてきた４バイト（３２ビット）幅のデータを１バイトずつ交互に入れ替える変換を行う。すなわち、ここで、データ変換ブロック１５８は、最上位バイト側に位置する『ａａ』という１バイトデータと、最下位バイト側に位置する『ｄｄ』という１バイトデータの位置を左右入れ替える処理を行う。また、中央に位置する『ｂｂ』という１バイトデータと『ｃｃ』という１バイトデータを左右入れ替える処理を行う。これにより、最上位バイトから最下位バイトにかけて『ｄｄｃｃｂｂａａ』という並びの４バイトデータを取得する。このようにして得られた４バイトデータ（３２ビット）をＣＰＵ９０に向けて出力する。
【０１５０】
また、ハーフワードアクセス時には、図２７Ｂに示すように、データ変換ブロック１５８は、セレクタ１６０から送られてきた４バイト（３２ビット）幅のデータを２バイトずつ左右入れ替える変換を行う。すなわち、ここで、データ変換ブロック１５８は、最上位バイト側に位置する『ａａｂｂ』という２バイトデータと、最下位バイト側に位置する『ｃｃｄｄ』という２バイトデータとを左右入れ替える。これにより、最上位バイトから最下位バイトにかけて『ｃｃｄｄａａｂｂ』という並びの４バイトデータを取得する。このようにして得られた４バイトデータ（３２ビット）はＣＰＵ９０に向けて出力される。
【０１５１】
＝＝＝トランス処理・スルー処理の切替え＝＝＝
バスコントローラ１１４がトランス処理を実行するのか、スルー処理を実行するのかの指示は、ＣＰＵ９０から出力されるＸＣＳ＿ＴＲおよびＸＣＳ＿ＴＨにより行われている。しかしながら、ＣＰＵ９０は、ＳＤＲＡＭ１０２上のどのデータが、自身で後で読み込むためのデータなのか、他の入出力装置との間でやり取りするためのデータなのかを判断して、ＸＣＳ＿ＴＲ及びＸＣＳ＿ＴＨの各信号を出力するのは、きわめて煩雑である。  
そこで、ＣＰＵ９０が利用するメモリ空間を「エディアン変換領域」と「エディアン非変換領域」とに区分して、ＸＣＳ＿ＴＲ及びＸＣＳ＿ＴＨの各信号の出力を管理する。図２８は、「エディアン変換領域」および「エディアン非変換領域」の概要を説明するものである。「エディアン変換領域」には、ＣＰＵ９０と他の入出力装置との間でやり取りするためのデータを書き込むようにする。また、「エディアン非変換領域」には、ＣＰＵ９０が自身で後で読み込むためのデータを書き込むようにする。これにより、ＣＰＵ９０が「エディアン変換領域」にアクセスした場合には、ＣＰＵ９０はＸＣＳ＿ＴＲを出力するようにする。また、ＣＰＵ９０が「エディアン非変換領域」にアクセスする場合には、ＣＰＵ９０は、ＸＣＳ＿ＴＨを出力するようにする。これにより、ＣＰＵ９０は、ＸＣＳ＿ＴＲ及びＸＣＳ＿ＴＨの各信号の出力の管理を簡単に行うことができる。  
なお、ここで、「非エディアン変換領域」は、「第１データ格納領域」に相当する。また、「エディアン変換領域」は、「第２データ格納領域」に相当する。
【０１５２】
＝＝＝まとめ＝＝＝
以上、本実施形態にあっては、ＣＰＵ９０が、ＣＰＵ９０とは異なるエディアン方式にてアクセスされるＳＤＲＡＭ１０２に、ＣＰＵ９０が後で読み込むためのデータを書き込む書き込み処理と、前記ＣＰＵ９０が書き込んだデータをＳＤＲＡＭ１０２から読み込む読み込み処理とを実行することで、ＣＰＵ９０がローカルバス１２８に接続されたＳＤＲＡＭ１０２を作業用メモリとして使用することができる。これにより、ＣＰＵ９０の作業用メモリのメモリ空間の大幅な増大を図ることができる。
【０１５３】
また、バスコントローラ１１４の信号変換回路は、ＣＰＵ９０が後で読み込むためのデータをＳＤＲＡＭ１０２に書き込む場合と、ＣＰＵ９０が先に書き込んだデータをＳＤＲＡＭ１０２から読み込む場合に、信号の変換を行わないことで、信号の変換に要する手間を削減することができ、これによりスムーズにＣＰＵ９０がＳＤＲＡＭ１０２にアクセスすることができる。
【０１５４】
また、ＣＰＵ９０が利用するメモリ空間をエディアン変換領域（第１データ格納領域）とエディアン非変換領域（第２データ格納領域）とに区分して、ＸＣＳ＿ＴＲ及びＸＣＳ＿ＴＨの各信号の出力を管理すれば、ＣＰＵ９０は、ＸＣＳ＿ＴＲ及びＸＣＳ＿ＴＨの各信号の出力の管理を簡単に行うことができる。
【０１５５】
＝＝＝他のスルー処理＝＝＝
図２９Ａ〜図２９Ｃは、スルー処理の他の例について説明したものである。スルー処理は、図１４Ａ〜図１４Ｃにて説明したように、変換処理を実行しない場合に限られない。つまり、ＣＰＵ９０から出力されたアドレス信号やデータ信号、またＳＤＲＡＭコントローラ１０３からのデータ信号等の変換は行わない場合に限られない。これは、ＣＰＵ９０が自身でＳＤＲＡＭ１０２に書き込んだデータを再び自身で読み込む場合には、アドレスの対応関係と、データの並びとが確保されるからである。ＣＰＵ９０が自身でＳＤＲＡＭ１０２に書き込んだデータを再び自身で読み込む場合には、アドレスの対応関係と、データの並びとが確保されれば、どのような変換を行っても構わない。ただし、ここで行われる変換については、前述したような『トランス処理』は含まないものとする。つまり、ここでいう『スルー処理』とは、ＣＰＵ９０がＳＤＲＡＭ１０２にアクセスする際に、ＣＰＵ９０がアクセスするアドレスが、エディアンが異なるＳＤＲＡＭ１０２上に割り当てられたアドレスに対応するように、ＣＰＵ９０から出力されたアドレス信号を変換する処理や、ＣＰＵ９０がＳＤＲＡＭ１０２の所定のアドレスにデータを書き込むときに、ＣＰＵ９０から送られてきたデータが、その所定のアドレスに書き込まれるように、ＣＰＵ９０から出力された信号を変換する処理は含まない。
【０１５６】
＜処理の概要＞
図２９Ａは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「バイトアクセス」を実行したときの処理の概要を説明したものである。図２９Ｂは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ハーフワードアクセス」を実行したときの処理の概要を説明したものである。図２９Ｃは、ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ワードアクセス」を実行したときの処理の概要を説明したものである。ここでは、バスコントローラ１４４は、「バイトアクセス」の場合でも、「ハーフワードアクセス」の場合でも、「ワードアクセス」の場合でも、ＣＰＵ９０から出力されたアドレス信号またはデータ信号をすべて同じ形式にて変換する。
【０１５７】
（１）バイトアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「バイトアクセス」を実行する場合には、バスコントローラ１１４の信号変換回路は、図２９Ａに説明するように変換する。すなわち、ＣＰＵ９０が『０番地』に『ａａ』という１バイトのデータを書き込む場合には、ＳＤＲＡＭ１０２上に割り当てられた『１番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。また、ＣＰＵ９０が『１番地』に『ｂｂ』という１バイトのデータを書き込む場合には、ＳＤＲＡＭ１０２上に割り当てられた『０番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。また、ＣＰＵ９０が『２番地』に『ｃｃ』という１バイトのデータを書き込む場合には、ＳＤＲＡＭ１０２上に割り当てられた『３番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。また、ＣＰＵ９０が『３番地』に『ｄｄ』という１バイトのデータを書き込む場合には、ＳＤＲＡＭ１０２上に割り当てられた『２番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。
【０１５８】
一方、ＣＰＵ９０が『０番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『１番地』からデータ（ここでは、「ａａ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。また、ＣＰＵ９０が『１番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『０番地』からデータ（ここでは、「ｂｂ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。また、ＣＰＵ９０が『２番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『３番地』からデータ（ここでは、「ｃｃ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。また、ＣＰＵ９０が『３番地』のデータを読み込む場合には、バスコントローラ１１４の信号変換回路は、ＳＤＲＡＭ１０２に割り当てられた『２番地』からデータ（ここでは、「ｄｄ」）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。
【０１５９】
（２）ハーフワードアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ハーフワードアクセス」を実行する場合には、バスコントローラ１１４の信号変換回路は、図２９Ｂに説明するように変換する。  
すなわち、ＣＰＵ９０が『０番地』および『１番地』に『ａａ』『ｂｂ』という２バイトのデータを書き込む場合には、『ａａ』『ｂｂ』の２バイトデータがＳＤＲＡＭ１０２上に割り当てられた『０番地』および『１番地』にそれぞれ書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、ＳＤＲＡＭ１０２の『１番地』には、『ａａ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『０番地』には、『ｂｂ』のデータが書き込まれる。  
また、ＣＰＵ９０が『２番地』および『３番地』に『ｃｃ』『ｄｄ』という２バイトのデータを書き込む場合には、『ｃｃ』『ｄｄ』の２バイトデータがＳＤＲＡＭ１０２上に割り当てられた『２番地』および『３番地』に書き込まれるように、ＣＰＵ９０から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、ＳＤＲＡＭ１０２上の『２番地』には、『ｄｄ』のデータが書き込まれ、またＳＤＲＡＭ１０２上の『３番地』には、『ｃｃ』のデータが書き込まれる。  
一方、ＣＰＵ９０が『０番地』および『１番地』から２バイトのデータを読み込む場合には、ＳＤＲＡＭ１０２上の『０番地』および『１番地』から２バイトのデータ（ここでは、『０番地』から『ｂｂ』が読み出され、『１番地』から『ａａ』が読み出される）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。  
また、ＣＰＵ９０が『２番地』および『３番地』から２バイト分のデータを読み込む場合には、ＳＤＲＡＭ１０２に割り当てられた『２番地』および『３番地』から２バイトのデータ（ここでは、『２番地』から『ｄｄ』が読み出され、『３番地』から『ｃｃ』が読み出される）がＣＰＵ９０に読み込まれるように、ＣＰＵ９０から出力されたアドレス信号やＳＤＲＡＭコントローラ１０３からのデータ信号を変換する。
【０１６０】
（３）ワードアクセス
ＣＰＵ９０がＳＤＲＡＭ１０２に対して「ワードアクセス」を実行する場合には、バスコントローラ１１４の信号変換回路は、図２９Ｃに説明するように変換する。すなわち、ＣＰＵ９０が『０番地』〜『３番地』に『ａａ』『ｂｂ』『ｃｃ』『ｄｄ』という４バイトのデータを書き込もうとした場合には、『ａａ』『ｂｂ』の２バイト分のデータは、ＳＤＲＡＭ上の『１番地』および『０番地』に書き込まれ、『ｃｃ』『ｄｄ』の２バイト分のデータは、ＳＤＲＡＭ上の『３番地』および『２番地』に書き込まれる。  
ＣＰＵ９０が『０番地』〜『３番地』から４バイト分のデータを読み込む場合には、ＳＤＲＡＭ上の『１番地』および『０番地』からは、『ａａ』『ｂｂ』の２バイトデータが読み出され、またＳＤＲＡＭ上の『３番地』および『２番地』からは、『ｃｃ』『ｄｄ』の２バイトデータが読み出される。
【０１６１】
＜書き込み時の信号＞
図３０Ａ〜図３０Ｇは、このスルー処理の時の各信号を示したものである。ここでは、アドレス信号、ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨ、ＸＷＥＬＬ、ＩＸＥＨＨ、ＩＸＷＥＨＬ、ＩＸＷＥＬＨ、ＩＸＷＥＬＬ、ＸＣＳ＿ＴＲ、ＸＣＳ＿ＴＨ、変換前および変換後のデータ信号を示す。図３０Ａは、ＣＰＵ９０が『０番地』にバイトアクセスをしたときの各信号を示す。図３０Ｂは、ＣＰＵ９０が『１番地』にバイトアクセスしたときの各信号を示す。図３０Ｃは、ＣＰＵ９０が『２番地』にバイトアクセスしたときの各信号を示す。図３０Ｄは、ＣＰＵ９０が『３番地』にバイトアクセスしたときの各信号を示す。図３０Ｅは、ＣＰＵ９０が『０番地』にハーフワードアクセスをしたときの各信号を示す。図３０Ｆは、ＣＰＵ９０が『２番地』にハーフワードアクセスをしたときの各信号を示す。図３０Ｇは、ＣＰＵ９０が『０番地』にワードアクセスをしたときの各信号を示す。
【０１６２】
＝＝＝その他の実施の形態＝＝＝
以上、一実施形態に基づき、本発明に係るコンピュータ装置をプリンタ等の印刷装置に適用した場合について説明したが、上記の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更または改良され得るとともに、本発明には、その等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に係るコンピュータ装置または印刷装置に含まれるものである。
【０１６３】
＜ローカルメモリについて＞
前述した実施の形態では、「ローカルメモリ」としてＳＤＲＡＭを用いた場合を例にして説明したが、「ローカルメモリ」にあっては、このようなＳＤＲＡＭに限らず、他のタイプのメモリを用いても良い。
【０１６４】
＜ＣＰＵメモリについて＞
前述した実施の形態では、「ＣＰＵメモリ」としてＳＤＲＡＭを用いた場合を例にして説明したが、「ＣＰＵメモリ」にあっては、このようなＳＤＲＡＭに限らず、他のタイプのメモリを用いても良い。
【０１６５】
＜ＣＰＵバスについて＞
前述した実施の形態では、ＣＰＵバスのデータバス、即ちデータの信号を伝達するためのデータ信号線が、３２ビット（４バイト）のバス幅により形成されていたが、「ＣＰＵバス」については、このようなバス幅に限られない。つまり、これよりも狭い８ビットや１６ビットのバス幅でも良く、またこれよりも幅広の６４ビットや１２８ビットのバス幅であってもよい。なお、ローカルバスのバス幅と同じバス幅に設定されても構わない。
【０１６６】
＜ローカルバスについて＞
前述した実施の形態では、ローカルバスのデータバス、即ちデータの信号を伝達するためのデータ信号線が、１２８ビット（１６バイト）のバス幅により形成されていたが、「ローカルバス」については、このようなバス幅に限られない。つまり、これよりも狭い８ビットや１６ビット、３２ビット、６４ビットのバス幅でも良く、またこれよりも幅広のバス幅であってもよい。なお、ＣＰＵバスのバス幅と同じバス幅に設定されても構わない。
【０１６７】
＜エディアンについて＞
前述した実施の形態では、ＣＰＵ側が『ビッグ・エディアン方式』を採用し、入出力装置側が『リトル・エディアン方式』を採用していたが、ＣＰＵ側または入出力装置側が採用するエディアン方式は、これらの場合に限らない。つまり、ＣＰＵ側が『リトル・エディアン方式』を採用し、入出力装置側が『ビッグ・エディアン方式』を採用しても良い。
【０１６８】
＜メモリコントローラについて＞
前述した実施の形態では、「ローカルメモリ」としてＳＤＲＡＭが使用されていた関係上、「メモリコントローラ」としてＳＤＲＡＭコントローラが用いられていたが、「メモリコントローラ」にあっては、このようなＳＤＲＡＭコントローラに限らない。つまり、「ローカルメモリ」をコントロールするコントローラであれば、どのようなコントローラであっても、「メモリコントローラ」に該当する。
【０１６９】
＜コンピュータ装置について＞
前述した実施の形態では、「コンピュータ装置」が、スキャナを搭載したインクジェットプリンタに適用した場合を例にして説明したが、「コンピュータ装置」にあっては、このようなスキャナを搭載したインクジェットプリンタに適用される場合に限らない。つまり、（Ａ）ＣＰＵと、（Ｂ）ＣＰＵに接続されたＣＰＵバスと、（Ｃ）ローカルバスと、（Ｄ）ＣＰＵバスとローカルバスとを相互に接続するバスコントローラと、（Ｅ）ローカルバスに接続されたローカルメモリと、（Ｆ）ローカルバスに接続され、ＣＰＵとは異なるエディアン方式にてローカルバスを介してローカルメモリにアクセスする１または複数の入出力装置とを備えたコンピュータ装置であれば、どのようなコンピュータ装置であっても構わない。すなわち、インクジェットプリンタ以外に他の装置に適用されたコンピュータ装置であっても良い。
【０１７０】
＜印刷装置について＞
前述した実施の形態では、「印刷装置」としては、前述したようなインクジェットプリンタ１の場合を例にして説明したが、このような印刷装置に限らず、他の方式によりインクを吐出するインクジェットプリンタをはじめ、その他、インクを吐出しないタイプのプリンタ、例えば、ドットインパクト式プリンタや熱転写プリンタ、またレーザービーム式プリンタなど、印刷機能を備えた装置であれば、どのような印刷装置であっても構わない。
【図面の簡単な説明】
【０１７１】
【図１】スキャナ・プリンタ・コピー複合装置の外観を説明した斜視図。
【図２】図１の複合装置のスキャナ部のカバーを開いたときの斜視図。
【図３】図１の複合装置の印刷部を示す斜視図。
【図４】図１の複合装置のスキャナ部及びプリンタ部の構成を説明する説明図。
【図５】プリンタ部の搬送部を説明する断面図。
【図６】図１の複合装置の操作パネルを説明する説明図。
【図７】ヘッドのノズルの配列を示す説明図。
【図８】ヘッドの駆動回路の一例を説明した図。
【図９】各信号のタイミングチャートである。
【図１０】印刷処理の一例を説明するフローチャート。
【図１１】制御部の構成を説明する図。
【図１２】図１２Ａは、リトル・エディアン方式の説明図、図１２Ｂは、ビック・エディアン方式の説明図。
【図１３Ａ】トランス処理のバイトアクセス時の変換処理の説明図。
【図１３Ｂ】トランス処理のハーフワードアクセス時の変換処理の説明図。
【図１３Ｃ】トランス処理のワードアクセス時の変換処理の説明図。
【図１４Ａ】スルー処理のバイトアクセス時の変換処理の説明図。
【図１４Ｂ】スルー処理のハーフワードアクセス時の変換処理の説明図。
【図１４Ｃ】スルー処理のワードアクセス時の変換処理の説明図。
【図１５】バスコントローラ１１４とＣＰＵ９０およびＳＤＲＡＭコントローラ１０３との間の信号のやり取りの説明図。
【図１６】ＣＰＵ９０によるデータ書き込み時のバスコントローラ１１４の内部処理の説明図。
【図１７】ＣＰＵ９０によるデータ読み込み時のバスコントローラ１１４の内部処理の説明図。
【図１８】ＸＷＥＨＨ、ＸＷＥＨＬ、ＸＷＥＬＨおよびＸＷＥＬＬの各信号の説明図。
【図１９】ＸＣＳ＿ＴＲおよびＸＣＳ＿ＴＨの各信号の説明図。
【図２０】図２０Ａは、トランス処理時の信号出力の説明図、図２０Ｂは、スルー処理時の信号出力の説明図。
【図２１】図２１Ａは、バイトアクセス時のデータ変換方法の説明図、図２１Ｂは、ハーフワードアクセス時のデータ変換方法の説明図。
【図２２】ライトバッファ１５４のデータ格納位置の説明図。
【図２３】ＤＱＭ信号の説明図。
【図２４Ａ】トランス処理にて『０番地』へバイトアクセス時の各信号の説明図。
【図２４Ｂ】トランス処理にて『１番地』へバイトアクセス時の各信号の説明図。
【図２４Ｃ】トランス処理にて『２番地』へバイトアクセス時の各信号の説明図。
【図２４Ｄ】トランス処理にて『３番地』へバイトアクセス時の各信号の説明図。
【図２４Ｅ】トランス処理にて『０番地』へハーフワードアクセス時の各信号の説明図。
【図２４Ｆ】トランス処理にて『２番地』へハーフワードアクセス時の各信号の説明図。
【図２４Ｇ】トランス処理にて『０番地』へワードアクセス時の各信号の説明図。
【図２５Ａ】スルー処理にて『０番地』へバイトアクセス時の各信号の説明図。
【図２５Ｂ】スルー処理にて『１番地』へバイトアクセス時の各信号の説明図。
【図２５Ｃ】スルー処理にて『２番地』へバイトアクセス時の各信号の説明図。
【図２５Ｄ】スルー処理にて『３番地』へバイトアクセス時の各信号の説明図。
【図２５Ｅ】スルー処理にて『０番地』へハーフワードアクセス時の各信号の説明図。
【図２５Ｆ】スルー処理にて『２番地』へハーフワードアクセス時の各信号の説明図。
【図２５Ｇ】スルー処理にて『０番地』へワードアクセス時の各信号の説明図。
【図２６】セレクタのデータ選択方法の説明図。
【図２７】図２７Ａは、バイトアクセス時のデータ変換方法の説明図、図２７Ｂは、ハーフワードアクセス時のデータ変換方法の説明図。
【図２８】ＣＰＵのメモリ空間の一例を説明する説明図。
【図２９Ａ】他のスルー処理のバイトアクセス時の変換処理の説明図。
【図２９Ｂ】他のスルー処理のハーフワードアクセス時の変換処理の説明図。
【図２９Ｃ】他のスルー処理のワードアクセス時の変換処理の説明図。
【図３０Ａ】他のスルー処理にて『０番地』へバイトアクセス時の各信号の説明図。
【図３０Ｂ】他のスルー処理にて『１番地』へバイトアクセス時の各信号の説明図。
【図３０Ｃ】他のスルー処理にて『２番地』へバイトアクセス時の各信号の説明図。
【図３０Ｄ】他のスルー処理にて『３番地』へバイトアクセス時の各信号の説明図。
【図３０Ｅ】他のスルー処理にて『０番地』へハーフワードアクセス時の各信号の説明図。
【図３０Ｆ】他のスルー処理にて『２番地』へハーフワードアクセス時の各信号の説明図。
【図３０Ｇ】他のスルー処理にて『０番地』へワードアクセス時の各信号の説明図。
【符号の説明】
【０１７２】
１  ＳＰＣ複合装置、２  操作パネル、３  排紙部、４  給紙部、５  原稿、
７  排紙トレイ、８  給紙トレイ、１０  スキャナ部、１１  原稿台、
１２  原稿台カバー、１３  給紙ローラ、１４  プラテン、１５  搬送モータ、
１７Ａ  搬送ローラ、１７Ｂ  排紙ローラ、１８Ａ  フリーローラ、
１８Ｂ  フリーローラ、２１  ヘッド、２４  駆動機構、３０  プリンタ部、
３２  開口部、３４  ヒンジ部、３６  搬送機構、４１  キャリッジ、
４２  キャリッジモータ、４４  プーリ、４５  タイミングベルト、
４６  ガイドレール、５０  制御部、５１  リニア式エンコーダ符号板、
５２  検出部、５３  紙検知センサ、５６  ロータリー式エンコーダ、
６０  スキャナ用キャリッジ、６２  駆動機構、６４  ガイド、
６６  露光ランプ、６８  ミラー、７０  レンズ、７２  ＣＣＤセンサ、
７４  タイミングベルト、７５  プーリ、７６  プーリ、７７  駆動モータ、
８０  液晶ディスプレイ、８１  報知ランプ、８２  電源ボタン、
８３  各種設定ボタン、８４  コピーモードボタン、
８５  メモリカード印刷モードボタン、８６  フィルム印刷モードボタン、
８７  スキャンモードボタン、８８  給排紙ボタン、
８９Ａ  ＯＫボタン、８９Ｂ  キャンセルボタン、８９Ｃ  保存ボタン、
８９Ｄ  カラーコピーボタン、８９Ｅ  モノクロコピーボタン、
８９Ｆ  ストップボタン、８９Ｇ  十字ボタン、８９Ｈ  メニューボタン、
９０  ＣＰＵ、９２  メモリ、９４  ＡＳＩＣ、９６  ＳＤＲＡＭ、
９８  ＣＰＵバス、１００  ヘッドユニット、１０２  ＳＤＲＡＭ、
１０３  ＳＤＲＡＭコントローラ、１０４  スキャナコントロールユニット、
１０６  リサイズユニット、１０８  ２値化処理ユニット、
１１０  インターレース処理ユニット、１１２  イメージバッファユニット、
１１４  バスコントローラ、１１６  ヘッドコントロールユニット、
１１８  ＵＳＢインターフェイス、１２０  ラインバッファ、
１２２  リサイズバッファ、１２４  インターレースバッファ、
１２６  イメージバッファ、１２７  イメージバッファ、
１２８  ローカルバス、１３０  ＳＲＡＭ、１３２  イメージバッファ、
１３３  イメージバッファ、１３４  イメージバッファ、
１３６  ルックアップテーブル、１４０  ホストコンピュータ、
１５０  ＸＷＥ変換ブロック、１５２  データ変換ブロック、
１５４  ライトバッファ、１５５Ａ  第１格納部、１５５Ｂ  第２格納部、
１５５Ｃ  第３格納部、１５５Ｄ  第４格納部、
１５６  ＸＷＥ変換ブロック、１５８  データ変換ブロック、
１６０  セレクタ、１６２  リードバッファ、
２１１Ｙ  イエロノズル列、２１１Ｍ  マゼンダノズル列、
２１１Ｃ  シアンノズル列、２１１Ｋ  ブラックノズル列、
２２０  駆動回路、２２１  原駆動信号発生部、２２２  マスク回路、
Ｓ  媒体、ＯＤＲＶ  原駆動信号、ＰＲＴ  印刷信号、
【図１】
2006190035.tif 000003
【図２】
2006190035.tif 000004
【図３】
2006190035.tif 000005
【図４】
2006190035.tif 000006
【図５】
2006190035.tif 000007
【図６】
2006190035.tif 000008
【図７】
2006190035.tif 000009
【図８】
2006190035.tif 000010
【図９】
2006190035.tif 000011
【図１０】
2006190035.tif 000012
【図１１】
2006190035.tif 000013
【図１２】
2006190035.tif 000014
【図１３Ａ】
2006190035.tif 000015
【図１３Ｂ】
2006190035.tif 000016
【図１３Ｃ】
2006190035.tif 000017
【図１４Ａ】
2006190035.tif 000018
【図１４Ｂ】
2006190035.tif 000019
【図１４Ｃ】
2006190035.tif 000020
【図１５】
2006190035.tif 000021
【図１６】
2006190035.tif 000022
【図１７】
2006190035.tif 000023
【図１８】
2006190035.tif 000024
【図１９】
2006190035.tif 000025
【図２０】
2006190035.tif 000026
【図２１】
2006190035.tif 000027
【図２２】
2006190035.tif 000028
【図２３】
2006190035.tif 000029
【図２４Ａ】
2006190035.tif 000030
【図２４Ｂ】
2006190035.tif 000031
【図２４Ｃ】
2006190035.tif 000032
【図２４Ｄ】
2006190035.tif 000033
【図２４Ｅ】
2006190035.tif 000034
【図２４Ｆ】
2006190035.tif 000035
【図２４Ｇ】
2006190035.tif 000036
【図２５Ａ】
2006190035.tif 000037
【図２５Ｂ】
2006190035.tif 000038
【図２５Ｃ】
2006190035.tif 000039
【図２５Ｄ】
2006190035.tif 000040
【図２５Ｅ】
2006190035.tif 000041
【図２５Ｆ】
2006190035.tif 000042
【図２５Ｇ】
2006190035.tif 000043
【図２６】
2006190035.tif 000044
【図２７】
2006190035.tif 000045
【図２８】
2006190035.tif 000046
【図２９Ａ】
2006190035.tif 000047
【図２９Ｂ】
2006190035.tif 000048
【図２９Ｃ】
2006190035.tif 000049
【図３０Ａ】
2006190035.tif 000050
【図３０Ｂ】
2006190035.tif 000051
【図３０Ｃ】
2006190035.tif 000052
【図３０Ｄ】
2006190035.tif 000053
【図３０Ｅ】
2006190035.tif 000054
【図３０Ｆ】
2006190035.tif 000055
【図３０Ｇ】
2006190035.tif 000056