JP2006190035A - コンピュータ装置および印刷装置 - Google Patents

コンピュータ装置および印刷装置 Download PDF

Info

Publication number
JP2006190035A
JP2006190035A JP2005000774A JP2005000774A JP2006190035A JP 2006190035 A JP2006190035 A JP 2006190035A JP 2005000774 A JP2005000774 A JP 2005000774A JP 2005000774 A JP2005000774 A JP 2005000774A JP 2006190035 A JP2006190035 A JP 2006190035A
Authority
JP
Japan
Prior art keywords
cpu
data
signal
bus
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005000774A
Other languages
English (en)
Inventor
Mitsuo Sakurai
光夫 桜井
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005000774A priority Critical patent/JP2006190035A/ja
Publication of JP2006190035A publication Critical patent/JP2006190035A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Input (AREA)
  • Storing Facsimile Image Data (AREA)

Abstract

【課題】 CPUが利用可能なメモリ空間を大きくする。
【解決手段】 コンピュータ装置は、(A)CPUと、(B)前記CPUに接続されたCPUバスと、(C)ローカルバスと、(D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、(E)前記ローカルバスに接続されたメモリと、(F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記メモリにアクセスする1または複数の入出力装置と、を備え、前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記メモリにアクセスして、前記CPUが後で読み込むためのデータを前記メモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記メモリから読み込む読み込み処理とを実行する構成とする。
【選択図】 図11

Description

本発明は、CPU、メモリ、および1または複数の入出力装置を備え、CPUと1または複数の入出力装置のエディアンが異なるコンピュータ装置および印刷装置に関する。
パーソナルコンピュータをはじめ、インクジェットプリンタ等の各種印刷装置やその他各種装置に搭載されるコンピュータ装置は、一般に、CPUと、メモリと、1または複数の入出力装置とを備えている。CPUは、当該コンピュータ装置全体の制御を司る装置であり、プログラムを実行して、入出力装置に対して各種命令を発行するとともに、メモリに対してデータを書き込む命令やデータを読み込む命令を発行したり、またデータの演算を行ったりする。メモリは、CPUまたは入出力装置からの命令により、データを記憶領域に書き込んだり、また記録領域からデータを読み出したりする。入出力装置は、データやプログラムをCPUやメモリに入力する入力装置や、CPUの演算結果などを取り出して表示したり記録したりする出力装置、さらに、入力及び出力の両方の機能を兼ね備えた入出力装置を含む。入力装置としては、操作パネル等の操作入力を受け付ける操作入力インターフェースなどがある。また、出力装置としては、液晶ディスプレイ等の表示装置などがある。また、入出力装置としては、外部との間で通信を行う通信インターフェースなどがある。
ところで、このようなコンピュータ装置にあっては、メモリ内の記憶領域にバイト単位でアドレスを割り当てる際に、アドレスの割り当て方(エディアンという)の違いに応じて、2つの方式がある。メモリ内の記憶領域の最下位バイト側から順にアドレスを割り当てる方式のことを『リトルエディアン方式』と呼ぶ。また、メモリ内の記憶領域の最上位バイト側から順にアドレスを割り当てる方式のことを『ビッグエディアン方式』と呼ぶ。『リトルエディアン方式』では、メモリ内の記憶領域の最下位バイト側から最上位バイト側にかけて順に『0番地』、『1番地』、『2番地』、『3番地』とアドレスが設定される。これに対して、『ビッグエディアン方式』では、メモリ内の記憶領域の最上位バイト側から最下位バイト側にかけて順に『0番地』、『1番地』、『2番地』、『3番地』とアドレスが設定される。すなわち、『リトルエディアン方式』と『ビッグエディアン方式』とでは、同じアドレス(『番地』)であっても、メモリ内の記憶領域上の位置は異なる。つまり、例えば、同じ『0番地』にアドレスを指定してアクセスする場合であっても、メモリ内の記憶領域上では、異なる位置にアクセスすることになる。
このため、エディアンが異なるCPUと入出力装置とによりコンピュータ装置を構成したときに、次のような問題が発生した。すなわち、CPUと入出力装置との間で、データのやり取りをスムーズに行うことができなかった。つまり、同じアドレスを指定してメモリにアクセスしても、メモリ内の記憶領域上の同一の位置にアクセスすることはできなかった。これによって、結果的に、誤ったアドレスにデータが書き込まれたり、また誤ったアドレスからデータが読み込まれたりする場合があった。
そこで、従来から、エディアンが異なるCPUと入出力装置とが混在しても、CPUと入出力装置との間でスムーズにデータのやり取りが行えるようにするためのエディアン変換回路が提案されている(特許文献1・特許文献2参照)。このようなエディアン変換回路を備えれば、エディアンが異なるCPUと入出力装置との間で、同じアドレス(『番地』)を指定した場合には、メモリ内の記憶領域上の同一の位置にアクセスすることができる。これにより、エディアンが異なるCPUと入出力装置との間で、データのやり取りを誤りなくスムーズに行うことができる。
特開平3−160550号 特開2002−269551号
ところで、このようなコンピュータ装置にあっては、CPUが、自身で後で読み込むためのデータを書き込んだり、またCPUが自身で書き込んだデータを読み込んだりするためのメモリ、即ちいわゆるワークメモリとしては、CPUが頻繁にアクセスすることから、CPUがアクセスし易いように、CPUが直接接続されたバス、即ちCPUバスに直接接続されたメモリが、CPUが採用するエディアン方式にて用いられていた。
一方、このようなコンピュータ装置によっては、搭載される機器の用途に応じて、画像処理等の専門的な処理をCPUよりも高速にかつ効率よく行うために、ASIC等の専用の処理回路が備える場合がある。このような専用の処理回路を備えたコンピュータ装置では、専用の処理回路が画像処理等の専門的な処理を高速にかつ効率よく行うために、データ記憶容量の大きいメモリを備える場合がある。このようなデータ記憶容量の大きいメモリを専用の処理回路以外に、CPUがワークメモリとして利用することができれば、CPUが利用可能なメモリ空間が大幅に増え、CPUの処理をよりスムーズに効率よく実行させることができる。
本発明は、このような事情に鑑みてなされたものであって、その目的は、コンピュータ装置においてCPUの利用可能なメモリ空間を大きくすることにある。
前記目的を達成するための主たる発明は、
(A)CPUと、
(B)前記CPUに接続されたCPUバスと、
(C)ローカルバスと、
(D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
(E)前記ローカルバスに接続されたローカルメモリと、
(F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする1または複数の入出力装置と、
を備え、
前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記CPUが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行することを特徴とするコンピュータ装置である。
本発明の他の特徴は、本明細書及び添付図面の記載により明らかにする。
===開示の概要===
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
(A)CPUと、
(B)前記CPUに接続されたCPUバスと、
(C)ローカルバスと、
(D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
(E)前記ローカルバスに接続されたローカルメモリと、
(F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする1または複数の入出力装置と、
を備え、
前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記CPUが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行することを特徴とするコンピュータ装置。
このようなコンピュータ装置にあっては、CPUが、当該CPUとは異なるエディアン方式にてアクセスされるローカルメモリに、CPUが後で読み込むためのデータをローカルメモリに書き込む書き込み処理と、CPUが書き込んだデータをローカルメモリから読み込む読み込み処理とを実行することで、CPUが当該ローカルメモリを作業用メモリとして使用することができる。これにより、CPUの作業用メモリ空間の大幅な増大を図ることができる。
かかるコンピュータ装置にあっては、前記バスコントローラは、前記CPUから前記CPUバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記CPUバスを通じて前記CPUのエディアン方式にて前記CPUに読み込まれるように、前記CPUから前記CPUバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記CPUバスを介して前記CPUに出力する信号変換回路を備え、
前記信号変換回路は、前記CPUが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わなくても良い。
このようにCPUが後で読み込むためのデータをローカルメモリに書き込む場合と、CPUが先に書き込んだデータをローカルメモリから読み込む場合に、信号変換回路が信号の変換を行わないことで、信号の変換に要する手間を削減することができ、これによりCPUはローカルメモリに対して高速にアクセスすることができる。
また、かかるコンピュータ装置にあっては、前記CPUバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられている。このようなアドレス信号線とデータ信号線とがCPUバスに設けられていることで、CPUはローカルメモリにアクセスを行う。
また、かかるコンピュータ装置にあっては、前記ローカルバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられていても良い。このようなアドレス信号線とデータ信号線とがローカルバスに設けられれば、CPUがローカルメモリに簡単にアクセスすることができる。
また、かかるコンピュータ装置にあっては、前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成されるイメージであり、前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第1アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第2アドレス信号とを有しても良い。このような第1アドレス信号および第2アドレス信号をアドレス信号が有していれば、CPUは、ローカルメモリ内の多数のメモリセルの中から所定のメモリセルを簡単にアクセスすることができる。
また、かかるコンピュータ装置にあっては、前記信号変換回路は、前記アドレス信号または前記データの信号を変換しても良い。このようにアドレス信号またはデータの信号を信号変換回路が変換することで、CPUからCPUバスを介して送られてきたデータが前ローカルバスを介して異なるエディアン方式にてローカルメモリに書き込まれ、かつローカルメモリに異なるエディアン方式にて書き込まれたデータがローカルバスからCPUバスを通じてCPUのエディアン方式にてCPUに読み込まれるようにすることができる。
また、かかるコンピュータ装置にあっては、前記CPUから前記CPUバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力されても良い。このような変換指示信号が出力されることで、信号の変換を行うか否かを簡単に信号変換回路に指示することができる。
また、かかるコンピュータ装置にあっては、前記ローカルメモリには、前記CPUにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第1データ格納領域と、前記入出力装置と前記CPUとの間でやり取りされるデータが格納される第2データ格納領域とが区分されて設けられ、
前記CPUが前記第1データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
前記CPUが前記第2データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換を指示する信号が出力されてもよい。
このような第1データ格納領域と第2データ格納領域とをローカルメモリに設ければ、CPUが第1データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合と、CPUが第2データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合とに応じて、変換指示信号を簡単に切り替えて出力することができ、これにより、CPUは、信号変換回路に対して信号の変換を行うか否かを簡単に指示することができる。
また、かかるコンピュータ装置にあっては、前記ローカルメモリがSDRAMにより構成されていても良い。このようなSDRAMを用いることで、サイズの大きいデータを高速に書き込んだり読み込んだりすることができる。
また、かかるコンピュータ装置にあっては、前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続されていても良い。このようなメモリコントローラを用いれば、ローカルバスとメモリとの間のデータのやり取りをスムーズに行うことができる。
また、かかるコンピュータ装置にあっては、前記CPUバスには、前記CPUが前記CPUのエディアン方式にてデータの書き込みおよび読み込みを行うためのCPUメモリが接続されていても良い。このようなCPUメモリが設けられれば、CPUの利用可能なメモリ空間の大幅なアップを図ることができる。
(A)CPUと、
(B)前記CPUに接続されたCPUバスと、
(C)ローカルバスと、
(D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
(E)前記ローカルバスに接続されたローカルメモリと、
(F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする1または複数の入出力装置と、
(G)を備え、
(H)前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記CPUが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行し、
(I)前記バスコントローラは、前記CPUから前記CPUバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記CPUバスを通じて前記CPUのエディアン方式にて前記CPUに読み込まれるように、前記CPUから前記CPUバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記CPUバスを介して前記CPUに出力する信号変換回路を備え、
前記信号変換回路は、前記CPUが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わず、
(J)前記CPUバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
(K)前記ローカルバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
(L)前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成され、
前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第1アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第2アドレス信号とを有し、
(M)前記信号変換回路は、前記アドレス信号または前記データの信号を変換し、
(N)前記CPUから前記CPUバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力され、
(O)前記ローカルメモリには、前記CPUにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第1データ格納領域と、前記入出力装置と前記CPUとの間でやり取りされるデータが格納される第2データ格納領域とが区分されて設けられ、
前記CPUが前記第1データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
前記CPUが前記第2データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換を指示する信号が出力され、
(P)前記ローカルメモリがSDRAMにより構成され、
(Q)前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続され、
(R)前記CPUバスには、前記CPUが前記CPUのエディアン方式にてデータの書き込みおよび読み込みを行うためのCPUメモリが接続されている、
(S)ことを特徴とするコンピュータ装置。
(A)CPUと、
(B)前記CPUに接続されたCPUバスと、
(C)ローカルバスと、
(D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
(E)前記ローカルバスに接続されたメモリと、
(F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記メモリにアクセスする1または複数の入出力装置と、
(G)媒体に対して印刷を施す印刷部と、
を備え、
前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記メモリにアクセスして、前記CPUが後で読み込むためのデータを前記メモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記メモリから読み込む読み込み処理とを実行することを特徴とする印刷装置。
かかる印刷装置にあっては、原稿から画像を読み取り画像データを生成する画像読み取り部を備えても良い。このような画像読み取り部を備えれば、原稿から画像を簡単に読み取ることができる。
また、かかる印刷装置にあっては、前記画像データは、前記画像読み取り部により前記ローカルメモリに格納されても良い。このように画像データがローカルメモリに格納されれば、ローカルメモリを有効に利用することができる。
また、かかる印刷装置にあっては、前記印刷部は、前記画像読み取り部により生成された前記画像データに基づき前記媒体に画像を印刷しても良い。このように画像データに基づき印刷部が媒体に画像を印刷すれば、読み取った画像を簡単に印刷することができる。
===コンピュータ装置の概要===
本発明に係るコンピュータ装置の実施の形態について説明する。ここでは、本発明に係るコンピュータ装置を、スキャナを搭載したインクジェットプリンタ1に適用した場合を例にして説明する。図1〜図6は、このインクジェットプリンタ1の概要を説明したものである。図1は、このインクジェットプリンタ1の外観を説明する斜視図である。図2は、このインクジェットプリンタ1のスキャナ部10の概要を説明する斜視図である。図3は、このインクジェットプリンタ1のプリンタ部30の概要を説明する斜視図である。図4は、このインクジェットプリンタ1の内部構成を概略的に説明する説明図である。図5は、このインクジェットプリンタ1のプリンタ部30の搬送機構を説明する断面図である。図6は、このインクジェットプリンタ1の操作パネル2を説明する平面図である。
このスキャナ付きインクジェットプリンタ1は、原稿から画像を読み取って画像データを生成するスキャナ機能と、ホストコンピュータ(図示外)から送られてきた印刷データに基づき印刷用紙等の各種媒体に印刷をするプリンタ機能と、原稿から読み取った画像を媒体に印刷して複写するローカルコピー機能とを備えたスキャナ・プリンタ・コピー複合装置(以下、SPC複合装置ともいう)である。このSPC複合装置1は、図1に示すように、その上部に原稿5から画像を読み取るためのスキャナ部10を備え、また、このSPC複合装置1の下部に、印刷用紙等の媒体Sに印刷をするためのプリンタ部30を備えている。また、このSPC複合装置1の前面部には、操作パネル2が設けられている。
スキャナ部10は、図2に示すように、原稿5がセットされるガラス板が設けられた原稿台11と、当該原稿台11を上方から覆う原稿台カバー12とを備えている。原稿台カバー12は、SPC複合装置1の後端部に回動可能に取付けられ、原稿台11の上面部を開閉するように設けられている。なお、スキャナ部10は、「画像読み取り部」に相当する。
一方、プリンタ部30は、図3に示すように、スキャナ部10を上方に持ち上げることによって、その内部が開口部32を通じて外部に開放されるように構成されている。つまり、スキャナ部10は、SPC複合装置1の後部にヒンジ部34を介して回動自在に装着されている。スキャナ部10が上方へと持ち上げられると、プリンタ部30の内部に通じる開口部32が開放される。プリンタ部30の内部には、インクカートリッジを搭載するキャリッジ41などが配置されている。このようにプリンタ部30の内部が開放されることにより、その開口部32を通じてインクカートリッジの交換等のメンテナンス作業や、紙詰まり等のエラー対処等を容易に行うことができるようになっている。
また、プリンタ部30は、SPC複合装置1の背部に、印刷用紙等の媒体Sがセットされて当該媒体Sを順次供給する給紙部4を備えている。また、プリンタ部30は、SPC複合装置1の前部に、印刷された媒体Sが排出される排紙部3を備えている。給紙部4は、給紙トレイ8を備えている。給紙トレイ8には、印刷用紙等の媒体がセットされるようになっている。また、排紙部3は、排紙トレイ7を備え、印刷されて排出された媒体Sを受ける。なお、給紙部4にセットされる媒体Sとしては、カット紙などの単票状印刷用紙のみならず、ロール紙などの連続した印刷用紙でも構わず、給紙部4がこれらの媒体Sに対応した構造を備えていても良い。
===スキャナ部10・プリンタ部30の内部機構===
図4は、スキャナ部10およびプリンタ部30の内部機構を示したものである。
<スキャナ部>
スキャナ部10は、同図の上部に示すように、原稿台11の下側に、スキャナ用キャリッジ60と、このスキャナ用キャリッジ60を原稿台11に対して所定の間隔を保ちつつ図中矢印A方向に沿って平行に移動させる駆動機構62と、このスキャナ用キャリッジ60を支持しつつその移動を案内するガイド64とを備えている。
スキャナ用キャリッジ60には、原稿台11を介して原稿5に対し光を照射する光源としての露光ランプ66と、原稿5から反射された反射光を案内する複数枚のミラー68と、ミラー68により案内された反射光を集光するレンズ70と、このレンズ70により集光された反射光を受光するCCDセンサ72とが搭載されている。
CCDセンサ72は、光信号を電気信号に変換するフォトダイオードが列状に配置されて構成された3本のリニアセンサ(図示外)を備えている。これら3本のリニアセンサは、相互に間隔をあけて平行に配置され、それぞれR(レッド)、G(グリーン)およびB(ブルー)の3色の異なるフィルタが設けられている。各リニアセンサは、各フィルタの色に対応した成分の光をそれぞれ反射光から検出し、その検出結果を制御部50に出力する。
また、駆動機構62は、スキャナ用キャリッジ60に接続されたタイミングベルト74と、このタイミングベルト74が掛け渡された一対のプーリ75、76と、一方のプーリ75を回転駆動する駆動モータ77とを備えている。駆動モータ77は、制御部50からの制御信号によって駆動制御される。
<プリンタ部>
一方、プリンタ部30は、図4の下部に示すように、プリンタ用キャリッジ41と、このプリンタ用キャリッジ41に搭載されたヘッド21と、プリンタ用キャリッジ41を媒体Sに対して所定の間隔を保持しつつ相対的に平行に移動させる駆動機構24と、媒体Sをプリンタ用キャリッジ41の移動方向と直交する方向に沿って搬送する搬送機構36とを備えている。
プリンタ用キャリッジ41には、カートリッジ装着部が設けられ、このカートリッジ装着部には、黒(K)、シアン(C)、マゼンタ(M)、イエロ(Y)等のインクが収容されたインクカートリッジが装着される。
ヘッド21は、インクカートリッジから供給された各色のインクを媒体Sに向けて吐出して当該媒体S上にドットを形成して、媒体Sに画像を形成して印刷を施す。ヘッド21のインク吐出機構については後に詳しく説明する。
駆動機構24は、プリンタ用キャリッジ41に接続されたタイミングベルト45と、このタイミングベルト45に噛合されたプーリ44と、このプーリ44を回転駆動するキャリッジモータ42(以下、CRモータともいう)と、プリンタ用キャリッジ41の移動を案内するガイドレール46と、プリンタ用キャリッジ41の位置を検出するリニア式エンコーダとしてリニア式エンコーダ符号板51およびこのリニア式エンコーダ符号板51を読み取る検出部52とを備えている。この駆動機構24は、キャリッジモータ42を駆動してプーリ44を介してタイミングベルト45を回転させる。これにより、プリンタ用キャリッジ41は、媒体Sに対してガイドレール46に沿って相対的に移動する。キャリッジモータ42は、制御部50からの制御信号により駆動制御される。
搬送機構36は、プラテン14と、搬送ローラ17Aと、当該搬送ローラ17Aを回転駆動する搬送モータ15(以下、PFモータともいう)と、媒体Sが所定位置に到達したか否かを検出する紙検知センサ53と、搬送ローラ17Aの回転量を検出するロータリ式エンコーダ56とを備えている。プラテン14は、ヘッド21に対向して配置されている。搬送モータ15が駆動すると、搬送ローラ17Aが回転して、媒体Sがプラテン14上を搬送される。搬送モータ15は、制御部50からの制御信号により駆動制御される。
印刷時には、媒体Sが搬送ローラ17Aにより間欠的に所定の搬送量で搬送され、その間欠的な搬送の合間にプリンタ用キャリッジ41が、搬送ローラ17Aによる搬送方向に対して交差する方向に沿って移動しながら、ヘッド21から媒体Sに向けてインクを吐出して印刷が施される。
<搬送機構>
プリンタ部30の搬送機構について説明する。この搬送機構は、図5に示すように、給紙ローラ13と、紙検知センサ53と、搬送ローラ17Aと、排紙ローラ17Bと、プラテン14と、フリーローラ18A、18Bとを備えている。
印刷される媒体Sは、給紙部4の給紙トレイ8にセットされる。給紙トレイ8にセットされた媒体Sは、断面略D形状に成形された給紙ローラ13により、図中矢印A方向に沿って搬送されて、インクジェットプリンタ1の内部へと送られる。インクジェットプリンタ1の内部に送られてきた媒体Sは、紙検知センサ53と接触する。この紙検知センサ53は、給紙ローラ13と、搬送ローラ17Aとの間に設置されたもので、給紙ローラ13により給紙された媒体Sを検知する。
紙検知センサ53により検知された媒体Sは、搬送ローラ17Aによって、印刷が実施されるプラテン14へと順次搬送される。搬送ローラ17Aの対向位置には、フリーローラ18Aが設けられている。このフリーローラ18Aと搬送ローラ17Aとの間に、媒体Sを挟み込むことによって、媒体Sをスムーズに搬送する。
プラテン14へと送り込まれた媒体Sは、ヘッド21から吐出されたインクによって順次印刷される。プラテン14は、ヘッド21と対向して設けられ、印刷される媒体Sを下側から支持する。
印刷が施された媒体Sは、排紙ローラ17Bにより順次、プリンタ部30の外部へと排出される。排紙ローラ17Bは、搬送モータ15と同期に駆動されていて、当該排紙ローラ17Bに対向して設けられたフリーローラ18Bとの間に媒体Sを挟み込んで、媒体Sをプリンタ部30の外部へと排出する。
===操作パネル===
図6は、このSPC複合装置1の操作パネル2を示したものである。
操作パネル2は、そのほぼ中央部に液晶ディスプレイ80を備えている。液晶ディスプレイ80は、文字や画像の表示が可能である。液晶ディスプレイ80の表示内容は、設定項目や設定状態、動作状態等に応じて変化する。
液晶ディスプレイ80の左側には、報知ランプ81と、電源ボタン82と、各種設定ボタン83と、モードボタン84、85、86、87と、給排紙ボタン88とが設けられている。報知ランプ81は、赤色LEDであり、エラー発生時に点灯してユーザーにエラー発生を報知する。電源ボタン82は、SPC複合装置1の電源をオン、オフするためのボタンである。各種設定ボタン83は、SPC複合装置1の各種設定を行うための画面を液晶ディスプレイ80に表示するためのボタンである。モードボタン84、85、86、87は、それぞれSPC複合装置1のモードを設定するためのボタンである。ここでは、モードボタンとして、コピーモードボタン84と、メモリカード印刷モードボタン85と、フィルム印刷モードボタン86と、スキャンモードボタン87とが設けられている。ここで、例えば、コピーモードボタン84が押されると、コピー枚数、倍率、用紙タイプ、用紙サイズ、コピー品質、コピーモード等の設定条件を入力するための画面が液晶ディスプレイ80に表示される。給排紙ボタン88は、SPC複合装置1に媒体Sを給紙したり、SPC複合装置1内の媒体Sを排紙したりするときに押される。
液晶ディスプレイ80の右側には、OKボタン89Aと、キャンセルボタン89Bと、保存ボタン89Cと、カラーコピーボタン89Dと、モノクロコピーボタン89Eと、ストップボタン89Fと、十字ボタン89Gと、メニューボタン89Hとが設けられている。OKボタン89Aが押されると、液晶ディスプレイ80に表示されている内容にて設定条件が決定される。キャンセルボタン89Bが押されると、設定条件がクリアされ、各設定項目がデフォルト値に変更される。保存ボタン89Cが3秒間以上押し続けられると、設定値が記憶される。そして、保存ボタン89Cが3秒以下で押されると、記憶された設定値が読み出され、その設定条件が液晶ディスプレイ80に表示される。カラーコピーボタン89Dは、カラーコピーを開始させるためのボタンである。モノクロコピーボタン89Eは、モノクロコピーを開始させるためのボタンである。ストップボタン89Fは、一旦開始したコピー動作を中止させるためのボタンである。十字ボタン89Gは、その上下左右の4箇所を選択的に押すことが可能であり、1つのボタンで4つの機能(上ボタン、下ボタン、左ボタン及び右ボタンの機能)を果たす。メニューボタン89Hは、液晶ディスプレイ80に表示される設定項目を切り替える。
===ヘッド===
<ヘッドの構成>
図7は、ヘッド21の下面部に設けられたインクのノズルの配列を示した図である。ヘッド21の下面部には、同図に示すように、イエロ(Y)、マゼンタ(M)、シアン(C)、ブラック(K)の各色ごとにそれぞれ複数のノズル♯1〜♯180からなるノズル列、即ちシアンノズル列211C、マゼンダノズル列211M、イエロノズル列211Y、ブラックノズル列211Kが設けられている。
各ノズル列211C、211M、211Y、211Kの各ノズル♯1〜♯180(「液体吐出ノズル」に相当)は、所定の方向(ここでは、媒体Sの搬送方向)に沿って相互に間隔をあけて直線状に1列に配列されている。各ノズル♯1〜♯180の間隔(ノズル間隔)は、それぞれ「k・D」に設定されている。ここで、『D』とは、搬送方向における最小のドットピッチ(つまり、媒体Sに形成されるドットの最高解像度での間隔)である。また、『k』は、1以上の整数である。例えば、ノズルピッチが120dpi(1/120インチ)であって、搬送方向のドットピッチが360dpi(1/360)である場合、k=3である。各ノズル列211C、211M、211Y、211Kは、ヘッド21の移動方向(走査方向)に沿って相互に間隔をあけて平行に配置されている。各ノズル♯1〜♯180には、インク滴を吐出するための駆動素子としてピエゾ素子(図示外)が設けられている。
ピエゾ素子は、その両端に設けられた電極間に所定時間幅の電圧を印加すると、電圧の印加時間に応じて伸張し、インクの流路の側壁を変形させる。これによって、インクの流路の体積がピエゾ素子の伸縮に応じて収縮し、この収縮分に相当するインクが、インク滴となって各色のノズル列211C、211M、211Y、211Kの各ノズル♯1〜♯180から吐出される。
<駆動回路>
図8は、各ノズル♯1〜♯180の駆動回路220を示したものである。この駆動回路220は、同図に示すように、原駆動信号発生部221と、複数のマスク回路222とを備えている。原駆動信号発生部221は、各ノズル♯1〜♯180に共通して用いられる原駆動信号ODRVを生成する。この原駆動信号ODRVは、一画素分の主走査期間内(キャリッジ41が一画素の間隔を横切る時間内)において、図中下部に示すように、第1パルスW1と第2パルスW2の2つのパルスを含む信号である。原駆動信号発生部221で生成された原駆動信号ODRVは、各マスク回路222に出力される。
マスク回路222は、ヘッド21のノズル♯1〜♯180をそれぞれ駆動する複数のピエゾ素子に対応して設けられている。各マスク回路222には、原駆動信号発生部221から原駆動信号ODRVが入力されるとともに、印刷信号PRT(i)が入力される。この印刷信号PRT(i)は、画素に対応する画素データであり、一画素に対して2ビットの情報を有する2値信号である。その各ビットは、それぞれ第1パルスW1と第2パルスW2とに対応している。マスク回路222は、印刷信号PRT(i)のレベルに応じて、原駆動信号ODRVを遮断したり通過させたりするためのゲートである。すなわち、印刷信号PRT(i)がレベル『0』のときには、原駆動信号ODRVのパルスを遮断する一方、印刷信号PRT(i)がレベル『1』のときには、原駆動信号ODRVの対応するパルスをそのまま通過させて実駆動信号DRVとして、各ノズル♯1〜♯180のピエゾ素子に向けて出力する。各ノズル♯1〜♯180のピエゾ素子は、マスク回路222からの実駆動信号DRVに基づき駆動してインクの吐出を行う。
<各信号波形>
図9は、原駆動信号発生部221の動作を示す原駆動信号ODRV、印刷信号PRT(i)、実駆動信号DRV(i)のタイミングチャートである。同図に示すように、原駆動信号ODRVは、各画素区間T1、T2、T3、T4において、第1パルスW1と第2パルスW2とを順に発生する。なお、画素区間とは、一画素分のキャリッジ41の移動区間と同じ意味である。
ここで、印刷信号PRT(i)が2ビットの画素データ『10』に対応しているとき、第1パルスW1のみが一画素区間の前半で出力される。これにより、ノズル♯1〜♯180から小さいインク滴が吐出され、媒体Sには小さいドット(小ドット)が形成される。また、印刷信号PRT(i)が2ビットの画素データ『01』に対応しているとき、第2パルスW2のみが一画素区間の後半で出力される。これにより、ノズル♯1〜♯180から中サイズのインク滴が吐出され、媒体Sには、中サイズのドット(中ドット)が形成される。また、印刷信号PRT(i)が2ビットの画素データ『11』に対応しているとき、第1パルスW1と第2パルスW2とが一画素区間で出力される。これにより、ノズル♯1〜♯180から大きいサイズのインク滴が吐出され、媒体Sには、大きいサイズのドット(大ドット)が形成される。以上説明したとおり、一画素区間における実駆動信号DRV(i)は、印刷信号PRT(i)の3つの異なる値に応じて互いに異なる3種類の波形を有するように整形され、これらの信号に基づいてヘッド21は、3種類のサイズのドットを形成し、また画素区間内にて吐出するインク量を調整することが可能である。また、画素区間T4のように、印刷信号PRT(i)が2ビットの画素データ『00』に対応しているときには、ノズル♯1〜♯180からインク滴が吐出されず、媒体には、ドットが形成されないことになる。
本実施形態に係るインクジェットプリンタ1では、このようなノズル♯1〜♯180の駆動回路220が、各ノズル列211C、211M、211Y、211Kごと、即ち、イエロ(Y)、マゼンタ(M)、シアン(C)、ブラック(K)の各色ごとに各々個別に設けられ、各ノズル列211C、211M、211Y、211Kの各ノズル♯1〜180ごとに個別にピエゾ素子の駆動が行われるようになっている。
===印刷動作===
次に前述したインクジェットプリンタ1の印刷動作について説明する。ここでは、「双方向印刷」を例にして説明する。図10は、SPC複合装置1の印刷動作の処理手順の一例を示したフローチャートである。ここでは、印刷動作は、制御部50がプログラムに従って、リニア式エンコーダ(リニア式エンコーダ符号板51および検出部52)やロータリー式エンコーダ56、紙検知センサ53などのセンサからの情報に基づき、搬送モータ15やキャリッジモータ42、ヘッド21の駆動回路220などを各々制御することにより実行される。
制御部50は、印刷処理を実行する際に、まず、給紙処理を行う(S102)。給紙処理は、印刷しようとする媒体Sをインクジェットプリンタ1内に供給し、印刷開始位置(頭出し位置とも言う)まで搬送する処理である。制御部50は、給紙ローラ13を回転させて、印刷しようとする媒体Sを搬送ローラ17Aまで送る。制御部50は、搬送ローラ17Aを回転させて、給紙ローラ13から送られてきた媒体Sを印刷開始位置(プラテン14の上方付近)に位置決めする。
次に、制御部50は、キャリッジモータ42を駆動して、キャリッジ41を媒体Sに対して相対的に移動させて媒体Sに対して印刷を施す印刷処理を実行する。ここでは、まず、キャリッジ41をガイドレール46に沿って一の方向に向かって移動させながら、ヘッド21からインクを吐出する往路印刷を実行する(S104)。制御部50は、キャリッジモータ42を駆動してキャリッジ41を移動させるとともに、ヘッド21の駆動回路220を駆動してヘッドの各ノズル列211C、211M、211Y、211Kの各ノズル♯1〜♯180からインクを吐出する。ヘッド21から吐出されたインクは、媒体Sに到達して媒体S上にドットとして形成される。
このようにして印刷を行った後、次に、制御部50は、媒体Sを所定量だけ搬送する搬送処理を実行する(S106)。ここでは、制御部50は、搬送モータ15を駆動して搬送ローラ17Aを回転させて、媒体Sをヘッド21に対して相対的に搬送方向に所定量だけ搬送する。この搬送処理により、ヘッド21は、先ほどの印刷した領域とは異なる領域に印刷をすることが可能になる。
このようにして搬送処理を行った後、制御部50は、排紙すべきか否か排紙判断を実行する(S108)。ここで、制御部50は、印刷中の媒体Sに印刷すべき他のデータがなければ、排紙処理を実行する(S116)。一方、制御部50は、印刷中の媒体Sに印刷すべき他のデータがあれば、排紙処理は行わずに、復路印刷を実行する(S110)。この復路印刷は、キャリッジ41をガイドレール46に沿って先ほどの往路印刷とは反対の方向に移動させて印刷を行う。ここでも、制御部50は、キャリッジモータ42を先ほどとは逆に回転駆動させてキャリッジ41を移動させるとともに、ヘッド21の駆動回路220を駆動してヘッドの各ノズル列211C、211M、211Y、211Kの各ノズル♯1〜♯180からインクを吐出して印刷をする。
復路印刷を実行した後、搬送処理を実行し(S112)、その後、排紙判断を行う(S114)。ここで、印刷中の媒体Sに印刷すべき他のデータがあれば、排紙処理は行わずに、ステップS104に戻って、再度往路印刷を実行する(S104)。一方、印刷中の媒体Sに印刷すべき他のデータがなければ、排紙処理を実行する(S116)。
排紙処理を行った後、次に、印刷終了か否かを判断する印刷終了判断を実行する(S118)。ここでは、次に印刷すべき媒体Sがないかどうかチェックする。ここで、次に印刷すべき媒体Sがある場合には、ステップS102に戻り、再び給紙処理を実行して、印刷を開始する。一方、次に印刷すべき媒体Sがない場合には、印刷処理を終了する。
===制御部50の構成===
図11は、本実施形態に係るSPC複合装置1の制御部50のシステム構成を示したブロック構成図である。
SPC複合装置1の制御部50は、SPC複合装置1全体の制御を司るCPU90と、制御のためのプログラムを記憶したメモリ92と、スキャナ機能、プリント機能、ローカルコピー機能の各制御を司る制御ASIC94と、CPU90から直接データを読み書き可能なSDRAM96と、入力手段としての操作パネル2とがCPUバス98によって繋がっている。制御ASIC94には、スキャナ部10、ヘッドユニット100、および制御ASIC94からデータの読み書きが可能なASIC用SDRAM102と、このASIC用SDRAM102をコントロールするSDRAMコントローラ103とが設けられている。この制御部50は、SPC複合装置1の各種制御を行うための制御部(コントローラ)となる。なお、ここで、ASIC用SDRAM102は、「ローカルメモリ」に相当する。また、SDRAMコントローラ103は、「メモリコントローラ」に相当する。
制御ASIC94は、スキャナコントロールユニット104と、リサイズユニット106と、2値化処理ユニット108と、インターレース処理ユニット110と、イメージバッファユニット112と、バスコントローラ114と、ヘッドコントロールユニット116と、外部のホストコンピュータ140との入出力手段としてのUSBインターフェイス118と、スキャナ部10及びプリンタ部30が備える各モータやランプ等のドライバ(図示外)とを備えている。なお、これらスキャナコントロールユニット104や、リサイズユニット106、2値化処理ユニット108、インターレース処理ユニット110、イメージバッファユニット112、バスコントローラ114、ヘッドコントロールユニット116、USBインターフェイス118などは、「入出力装置」に相当する。
また、ASIC用SDRAM102には、ラインバッファ120、リサイズバッファ122、インターレースバッファ124、イメージバッファ126、127がそれぞれ割り当てられている。制御ASIC94とSDRAMコントローラ103(ASIC用SDRAM102)との間では、データ転送の高速化を図るためにデータの転送単位を64ビットとする所謂バースト転送が行われる。制御ASIC94内の各ユニット104、106、108、110、112、114およびSDRAMコントローラ103は、ローカルバス128を介して接続されている。
スキャナコントロールユニット104は、スキャナ部10が備える露光ランプ66、CCDセンサ72、スキャナ用キャリッジ60の駆動モータ77等を制御する。スキャナコントロールユニット104は、CCDセンサ72を介して読み込んだ画像データを送出する機能を有する。なお、スキャナコントロールユニット104は、原稿から画像を読み取った後に画素間の補間を行うことにより、所定の解像度の画像データを送出することができる。スキャナコントロールユニット104から送出されるときの画像データは、多階調のRGBデータ(多値のRGBデータ)である。
リサイズユニット106は、所定のサイズの画像データを受け取り、その画像データのサイズを変更し、サイズ変更された画像データを送出する機能を有する。ここで、画像データのサイズとは、その画像の縦横の画素の数である。縦横の画素の数が多ければ画像は大きく、縦横の画素の数が少なければ画像は小さい。但し、実際に印刷される画像は、画素の数が多くても、印刷解像度に応じて大きさが異なる。例えば、同じ画素数であっても、200dpi×200dpiの画像データは、1440dpi×720dpiの画像データよりも大きい画像データである。すなわち、画像データのサイズの変更とは、解像度を変更することでもある。
2値化処理ユニット108は、送出された多階調のRGBデータをCMYKの2値データ(又は2ビットデータ)に変換し、インターレース処理ユニット110に送出する機能を有する。
インターレース処理ユニット110は、1ラスタライン(印刷画像における主走査方向の1ライン)を複数回のプリンタ用のキャリッジ41の移動にて印刷する所謂オーバーラップ印刷する際には、1ラスタラインのCMYKのデータをプリンタ用のキャリッジ41の移動毎に印刷するデータに振り分けてオーバーラップ印刷対応データ(以下、OL対応データという)を生成する機能を有する。生成されたOL対応データは、ASIC用SDRAM102のインターレースバッファ124に記憶される。
また、インターレース処理ユニット110では、インターレースバッファ124に記憶されたデータを、インターレース処理ユニット110内のSRAM130に所定のサイズ毎に読み出して、SRAM130上で、ノズル配列に対応させるべく並び替えてイメージバッファユニット112に送出する。
イメージバッファユニット112では、インターレース処理ユニット110から送出されたデータを、プリンタ用のキャリッジ41の移動毎の各ノズルにインクを吐出させるためのヘッド駆動データを生成する機能を有する。
バスコントローラ114は、制御ASIC94に接続されたASIC用SDRAM102へのCPU90からのアクセスを可能とする機能を有している。本制御部50においては、イメージバッファユニット126、127により生成されたヘッド駆動データに基づいてヘッドコントロールユニット116を駆動する場合等に利用されている。
ヘッドコントロールユニット116は、CPU90の制御によりヘッド駆動データに基づいてヘッド21を駆動し、ヘッド21の各ノズル♯1〜♯180からインクを吐出させる機能を有する。
===制御部50内のデータの流れ===
<スキャナ機能時について>
制御ASIC94のUSBインターフェイス118に接続されたホストコンピュータ140から、スキャナ部10による画像読み取り指令信号と、読み取り解像度、読み取り領域等の読み取り情報データとが制御部50に送信される。制御部50では、画像読み取り指令信号と読み取り情報データとに基づいて、スキャナコントロールユニット104が制御され、スキャナ部10による原稿5の読み取りが開始される。このとき、スキャナコントロールユニット104では、ランプ駆動ユニット、CCD駆動ユニット、スキャナ用キャリッジ移動駆動ユニット等が駆動され、所定の周期にてCCDセンサ72からRGBデータが読み込まれる。読み込まれたRGBデータは、ASIC用SDRAM102に割り振られたラインバッファ120に一旦蓄えられ、R、G、Bの各データのライン間補正処理が施され、USBインターフェース118を介してホストコンピュータ140に送出される。ライン間補正処理とは、スキャナ部10の構造上発生するR、G、Bの各リニアセンサ間の読み取り位置のズレを補正する処理である。詳述すると、スキャナ部10が有するCCDセンサ72は、カラーセンサでありR(レッド)、G(グリーン)、B(ブルー)の3色に対し色毎に1ラインずつのリニアセンサを有している。これら3本のリニアセンサは、スキャナ用キャリッジ60の移動方向に平行に並べられているため、原稿5の同一ラインに照射された反射光を同時に受光することができない。すなわち、原稿5の同一ラインに照射された反射光が各リニアセンサに受光される際には、時間的なズレが生じることになる。このため、リニアセンサの配列に伴う遅延時間分だけ遅れて送られてくるデータを同期させるための処理である。
<プリンタ機能時について>
プリンタ機能時には、ホストコンピュータ140のプリンタドライバが画像データをヘッド駆動データに変換し、ヘッド駆動データがUSBインターフェース118から入力される。このヘッド駆動データは、例えば、インターレース方式の印刷をする場合には、印刷する画像の解像度とプリンタ用のキャリッジ41のノズル列211C、211M、211Y、211Kが有するノズル♯1〜♯180のピッチ及び数に対応させたラスタデータを抽出し、プリンタ用のキャリッジ41の移動毎に印刷する順に並び換え、ヘッドユニット100を駆動するための信号となるデータである。
ヘッド駆動データは、CPUバス98に接続されたSDRAM96に割り付けられたイメージバッファ132に記憶される。イメージバッファ132は、2つに分けられたメモリ領域(イメージバッファ133、134)を備えている。各イメージバッファ133、134は、プリンタ用のキャリッジ41の1回の移動により印刷するためのヘッド駆動データを記憶することができる容量を有する。そして、一方のイメージバッファ133に1回の移動分のデータが書き込まれると、ヘッドコントロールユニット116に転送される。このとき、一方のイメージバッファ133のイメージデータがヘッドコントロールユニット116に転送されると、他方のイメージバッファ134には次の移動の際に印刷するためのヘッド駆動データが記憶される。そして他方のイメージバッファ134に1回の移動分のデータが書き込まれると、ヘッドコントロールユニット116に転送され、前記一方のイメージバッファ133にイメージデータが書き込まれる。このように、2つのイメージバッファ133,134を用いて、ヘッド駆動データの書き込み、読み出しを交互に行いながらヘッドコントロールユニット116にてヘッドユニット100が駆動されて印刷が実行される。
<コピー機能時について>
次に、コピー機能時におけるデータの流れを説明する。スキャナ部10により読み込まれたデータは、スキャナコントロールユニット104を介してラインバッファ120に取り込まれる。ラインバッファ120に取り込まれたRGBデータは、前述したRGBのライン間補正処理が順次施され、同一ラインに対するRGBデータがスキャナコントロールユニット104から2値化処理ユニット108に送り込まれる。
2値化処理ユニット108に送り込まれたRGBデータは、ハーフトーン処理された後、ASIC用SDRAM102内に格納されているルックアップテーブル136(LUT)に基づいて、CMYKの色毎の2値データに変換され、インターレース処理ユニット110に送り込まれる。
インターレース処理ユニット110に送り込まれたCMYKの2値データは、指定されたインターレース方式に基づいて、各ラスタラインの全データからプリンタ用のキャリッジ41の1回の移動毎に印刷されるデータに振り分けられる。例えば、1ラスタラインをプリンタ用のキャリッジ41の2回の移動にて形成する場合には、ラスタラインの端から奇数番目のドットを形成するデータと、偶数番目のドットを形成するデータとに振り分けられてOL対応データが生成される。
また、インターレース処理ユニット110では、インターレースバッファ124に記憶されたデータを所定サイズ毎に読み出して、インターレース処理ユニット110内のSRAM130にバースト転送する。このとき、インターレースバッファ124からは、印刷する画像解像度とノズルピッチとに基づいてヘッド21のノズル配列に対応させてOL対応データが読み出される。例えば、印刷する画像の解像度が720dpiであり、ノズルピッチが1/180inchの場合には、隣接するノズルにて印刷する2本のラスタライン間に3本のラスタラインがあることになる。このため、OL対応データからは3ラスタラインずつ間隔を空けたデータがプリンタ用のキャリッジ41の移動に対応したデータとして読み出されることになる。
転送されたデータは、SRAM130上で、ノズル配列に対応させるべく並び替えられて、イメージバッファユニット112に送出される。
イメージバッファユニット112では、SRAM130の容量により細かくブロック化された画像データをイメージバッファ126、127にバース転送し、プリンタ用のキャリッジ41の移動毎の各ノズル♯1〜♯180にインクを吐出させるためのヘッド駆動データとなるように整列させて記憶する。ここでイメージバッファ126,127は、プリンタ用のキャリッジ41の2回の移動分のヘッド駆動データを記憶するメモリ領域が割り当てられており、1回の移動分のヘッド駆動データが蓄積される毎に、CPU90によりヘッドコントロールユニット116に送出されると共に、残りの1回の移動分のメモリ領域に次の移動に対応したヘッド駆動データの書き込みが開始される。この処理は、プリンタ機能の説明にて前述したイメージバッファの処理と同様である。
イメージバッファ126、127に記憶された移動毎のヘッド駆動データは、CPU90に制御されてバスコントローラ114を介してCPU90に読み込まれ、CPU90によりヘッドコントロールユニット116に転送される。ヘッドコントロールユニット116によりヘッド駆動データに基づいてヘッドユニット100が駆動され画像が印刷される。
通常のコピー動作時には、RGBの画像データがスキャナコントロールユニット104によって読み込まれてからCMYKのヘッド駆動データがイメージバッファ126、127に書き込まれるまでの間、CPU90による演算を必要とするレイアウト処理は行われていない。つまり、RGBの画像データをCMYKのヘッド駆動データへ変換する処理は、CPU90を必要とせず、制御ASIC94を中心に処理されている。そのため、この処理の間、ASIC用SDRAM102とCPU用のSDRAM96との間でデータを受け渡さなくても良い。すなわち、ローカルバス128のみを用いて制御ASIC94とASIC用SDRAM102との間でデータが送出されるので、CPUバス98はほとんど用いられない。このため、処理が早くなり、コピー速度を高めることができる。
===エディアン===
本実施形態に係るSPC複合装置1にあっては、CPU90と制御ASIC94とで、異なるエディアン方式を採用している。エディアン方式とは、メモリ内、ここではSDRAM96、102内の記憶領域にバイト単位でアドレスを割り当てるときのアドレスの割り当て方のことである。エディアン方式には、『リトル・エディアン方式』と、『ビック・エディアン方式』の2種類ある。本実施形態のSPC複合装置1では、CPU90側(CPUバス98側)が『ビック・エディアン方式』を採用し、制御ASIC94側(ローカルバス128側)が『リトル・エディアン方式』を採用している。このため、CPU90側のSDRAM96は、『ビック・エディアン方式』によりデータが読み書きされる。また、制御ASIC94側のSDRAM102は、『リトル・エディアン方式』によりデータが読み書きされる。ここで、これら『リトル・エディアン方式』および『ビック・エディアン方式』について説明する。
図12は、『リトル・エディアン方式』および『ビック・エディアン方式』について説明したものである。図12Aは、『リトル・エディアン方式』について説明したものであり、図12Bは、『ビック・エディアン方式』について説明したものである。
『リトル・エディアン方式』は、図12Aに示すように、メモリ内の記憶領域にバイト単位でアドレスを割り当てる際に、メモリ内の記憶領域の最下位バイト側から順にアドレスを割り当てる方式である。つまり、『リトル・エディアン方式』では、メモリ内の記憶領域の最下位バイト側から最上位バイト側にかけて順に『0番地』、『1番地』、『2番地』、『3番地』とアドレスが設定される。このため、『リトル・エディアン方式』にて『0番地』にアクセスする場合には、メモリ内の記憶領域の最下位バイト側(ここでは、0ビット側)にアクセスしなければならない。また、『リトル・エディアン方式』にて『3番地』にアクセスする場合には、メモリ内の記憶領域の最上位バイト側(ここでは、32ビット側)にアクセスしなければならない。
一方、『ビッグ・エディアン方式』は、図12Bに示すように、メモリ内の記憶領域にバイト単位でアドレスを割り当てる際に、メモリ内の記憶領域の最上位バイト側から順にアドレスを割り当てる方式である。つまり、『ビッグ・エディアン方式』では、メモリ内の記憶領域の最上位バイト側から最下位バイト側にかけて順に『0番地』、『1番地』、『2番地』、『3番地』とアドレスが設定される。このため、『ビッグ・エディアン方式』にて『0番地』にアクセスする場合には、メモリ内の記憶領域の最上位バイト側(ここでは32ビット)にアクセスしなければならない。また、『ビッグ・エディアン方式』にて『3番地』にアクセスする場合には、メモリ内の記憶領域の最下位バイト側(ここでは0ビット側)にアクセスしなければならない。
このようにエディアン方式が異なるCPU90と制御ASIC94等(ローカルバス128に接続された各種入出力装置を含む)とが混在した場合、このままでは、CPU90と制御ASICとの間でデータのやり取りを誤りなくスムーズに行うことはできない。そこで、本実施形態では、CPU90と制御ASIC94との間でデータのやり取りを誤りなくスムーズに行うための信号変換回路を備えている。この信号変換回路は、CPU90と制御ASIC94との間を結ぶバスコントローラ114に設けられている。このバスコントローラ114の信号変換回路について以下に詳しく説明する。
===信号変換回路===
この信号変換回路は、CPU90がSDRAM102にアクセスする際に、CPU90がアクセスするアドレスが、エディアンが異なるSDRAM102上に割り当てられたアドレスに対応するように、CPU90から出力されたアドレス信号を変換する。また、この信号変換回路は、CPU90がSDRAM102の所定のアドレスにデータを書き込むときに、CPU90から送られてきたデータが、その所定のアドレスに書き込まれるように、CPU90から出力された信号を変換する。また、この信号変換回路は、CPU90がSDRAM102からデータを読み込むときに、SDRAM102からSDRAMコントローラ103を通じて送られてきたデータが、CPU90が読み込むべきデータになるように、SDRAMコントローラ103から出力された信号を変換する。
この信号変換回路により実行される変換処理は、CPU90がSDRAM102にデータを書き込んだり読み込んだりするときのデータの単位サイズに応じて異なる。ここでは、CPU90が1バイト単位でアクセスする「バイトアクセス」と、CPU90がハーフワード単位、即ちここでは2バイト単位にてアクセスする「ハーフワードアクセス」と、CPU90がワード単位、即ちここでは4バイト単位にてアクセスする「ワードアクセス」との3種類ある。このため、「バイトアクセス」と、「ハーフワードアクセス」と、「ワードアクセス」とでは、それぞれ信号変換回路により行われる変換処理が異なっている。各種類の変換処理について以下に詳しく説明する。
なお、ここで、CPU90は、SDRAM102に「バイトアクセス」にて書き込まれたデータについては、「バイトアクセス」にて読み込むものとする。また、CPU90は、SDRAM102に「ハーフワードアクセス」にて書き込まれたデータについては、「ハーフワードアクセス」にて読み込むものとする。また、CPU90は、SDRAM102に「ワードアクセス」にて書き込まれたデータについては、「ワードアクセス」にて読み込むものとする。SDRAM102に書き込まれたデータには、制御ASIC94の各ユニット104、106、108、110、112、114、116、118等により書き込まれたデータを含む。
図13A〜図13Cは、これらの3種類の処理の概要について詳しく説明したものである。図13Aは、CPU90がSDRAM102に対して「バイトアクセス」を実行するときの変換処理の概要を説明したものである。図13Bは、CPU90がSDRAM102に対して「ハーフワードアクセス」を実行したときの変換処理の概要を説明したものである。図13Cは、CPU90がSDRAM102に対して「ワードアクセス」を実行したときの変換処理の概要を説明したものである。
(1)バイトアクセス
CPU90がSDRAM102に対して「バイトアクセス」を実行する場合には、バスコントローラ114の信号変換回路は、図13Aに説明するように、CPU90がアクセスする『ビッグ・エディアン方式』のアドレスが、SDRAM102の『リトル・エディアン方式』のアドレスに対応するように、CPU90から出力されたアドレス信号またはデータ信号を変換する。
具体的には、例えば、CPU90が『0番地』に『aa』という1バイトのデータを書き込もうとした場合、バスコントローラ114の信号変換回路は、この『aa』という1バイトのデータがSDRAM102上に割り当てられた『0番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。
また、CPU90が『1番地』に『bb』という1バイトのデータを書き込もうとした場合には、バスコントローラ114の信号変換回路は、この『bb』という1バイトのデータがSDRAM102上に割り当てられた『1番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。
また、CPU90が『2番地』に『cc』という1バイトのデータを書き込もうとした場合には、バスコントローラ114の信号変換回路は、この『cc』という1バイトのデータがSDRAM102上に割り当てられた『2番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。
また、CPU90が『3番地』に『dd』という1バイトのデータを書き込もうとした場合には、バスコントローラ114の信号変換回路は、この『dd』という1バイトのデータがSDRAM102上に割り当てられた『3番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。
一方、CPU90が『0番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『0番地』からデータ(ここでは、「aa」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
また、CPU90が『1番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『1番地』からデータ(ここでは、「bb」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
また、CPU90が『2番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『2番地』からデータ(ここでは、「cc」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
また、CPU90が『3番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『3番地』からデータ(ここでは、「dd」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
(2)ハーフワードアクセス
CPU90がSDRAM102に対して「ハーフワードアクセス」を実行する場合には、バスコントローラ114の信号変換回路は、図13Bに説明するように、CPU90がアクセスする『ビッグ・エディアン方式』のアドレスが、SDRAM102の『リトル・エディアン方式』のアドレスに対応するように、CPU90から出力されたアドレス信号またはデータ信号を変換する。
具体的には、例えば、CPU90が『0番地』および『1番地』に『aa』『bb』という2バイトのデータを書き込もうとした場合には、バスコントローラ114の信号変換回路は、この『aa』『bb』の2バイトのデータがSDRAM102上に割り当てられた『0番地』および『1番地』(2バイト単位でのアドレッシング)にそれぞれ書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、SDRAM102の『1番地』には、『aa』のデータが書き込まれ、またSDRAM102上の『0番地』には、『bb』のデータが書き込まれる。
また、CPU90が『2番地』および『3番地』に『cc』『dd』という2バイトのデータを書き込もうとした場合には、バスコントローラ114の信号変換回路は、この『cc』『dd』の2バイトのデータがSDRAM102上に割り当てられた『2番地』および『3番地』(2バイト単位でのアドレッシング)に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、SDRAM102上の『2番地』には、『dd』のデータが書き込まれ、またSDRAM102上の『3番地』には、『cc』のデータが書き込まれる。
一方、CPU90が『0番地』および『1番地』から2バイト分のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『0番地』および『1番地』から2バイトのデータ(ここでは、『0番地』から『bb』が読み出され、『1番地』から『aa』が読み出される)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
また、CPU90が『2番地』および『3番地』から2バイト分のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『2番地』および『3番地』から2バイトのデータ(ここでは、『2番地』から『dd』が読み出され、『3番地』から『cc』が読み出される)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
(3)ワードアクセス
また、CPU90がSDRAM102に対して「ワードアクセス」を実行する場合には、図13Cに説明するように、CPU90が自身のエディアン方式(ここでは、『ビッグ・エディアン方式』)にてアクセスするアドレスと、SDRAM102のエディアン方式(ここでは、『リトル・エディアン方式』)のアドレスとが一致するため、CPU90から出力されたアドレス信号またはデータ信号の変換は行わない。すなわち、同図に示すように、CPU90が『0番地』〜『3番地』(4バイト単位でのアドレッシング)に『aa』『bb』『cc』『dd』という4バイトのデータを書き込もうとした場合、バスコントローラ114の信号変換回路は、CPU90から出力されたアドレス信号やデータ信号等を変換しなくても、『aa』『bb』『cc』『dd』の4バイトのデータは、SDRAM102の『0番地』〜『3番地』に書き込まれるから、変換は行わない。
なお、この場合、SDRAM102上の『0番地』には、『dd』のデータが書き込まれ、またSDRAM102上の『1番地』には、『cc』のデータが書き込まれ、またSDRAM102上の『2番地』には、『bb』のデータが書き込まれ、またSDRAM102上の『3番地』には、『dd』のデータが書き込まれる。
また、CPU90が『0番地』〜『3番地』(4バイト単位でのアドレッシング)から4バイト分のデータを読み込む場合についても、バスコントローラ114の信号変換回路は、CPU90が自身のエディアン方式(ここでは、『ビッグ・エディアン方式』)にてアクセスするアドレスと、SDRAM102のエディアン方式(ここでは、『リトル・エディアン方式』)のアドレスとが一致するから、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号の変換は行わない。
===本実施形態の処理===
本実施形態に係るSPC複合装置1にあっては、CPU90が自身で後で読み込むためにSDRAM102にデータを書き込んだり、またCPU90が自身で書き込んだデータをSDRAM102から読み込んだりする場合には、バスコントローラ114の信号変換回路により前述した変換処理を実行しないようにする。つまり、CPU90から出力されたアドレス信号やデータ信号、またSDRAMコントローラ103からのデータ信号等の変換は行わないようにする。これは、CPU90が自身でSDRAM102に書き込んだデータを再び自身で読み込む場合には、アドレスの対応関係と、データの並びとが確保されているからである。また、CPU90のワークメモリとして使用する場合、当然のことながら各アクセス幅(バイト、ハーフワード、ワード)で書き込んだデータは、違うアクセス幅でリードした場合にもバイト単位でデータが一致しなければならない。このため、この場合には、前述したようなエディアン方式の変換は行なわない。以下に、この処理のことを『スルー(Through)処理』と呼ぶ。
一方、CPU90が他の入出力装置、ここでは制御ASIC94の各ユニット104、106、108、110、112、114やSDRAMコントローラ103をはじめ、ローカルバス128に接続されたその他のユニット等との間でデータのやり取りする場合には、それら他の入出力装置が対応するエディアン方式にてSDRAM102にデータを書き込んだり、また他の入出力装置がSDRAM102に書き込んだデータをCPU90が読み込んだりするため、前述したようなバスコントローラ114の信号変換回路により実行される変換処理が必要となる。本実施形態では、このようなバスコントローラ114の信号変換回路により実行される処理のことを『トランス(Trans)処理』と呼ぶ。
以下に前述したバスコントローラ114の信号変換回路によりエディアン変換を実施しない処理、即ち『スルー処理』について詳しく説明する。
<スルー処理>
図14A〜図14Cは、ここで行われる処理の概要について説明したものである。図14Aは、CPU90がSDRAM102に対して「バイトアクセス」を実行したときの処理の概要を説明したものである。図14Bは、CPU90がSDRAM102に対して「ハーフワードアクセス」を実行したときの処理の概要を説明したものである。図14Cは、CPU90がSDRAM102に対して「ワードアクセス」を実行したときの処理の概要を説明したものである。
(1)バイトアクセス
CPU90がSDRAM102に対して「バイトアクセス」を実行した場合には、図14Aに説明するように、バスコントローラ114の信号変換回路による変換処理を実行せず、そのままSDRAM102にアクセスする。すなわち、例えば、CPU90が当該CPU90が対応するエディアン方式にて『0番地』に『aa』という1バイトのデータを書き込む場合には、『aa』という1バイトのデータは、SDRAM102上の『3番地』に書き込まれる。また、CPU90が『1番地』に『bb』という1バイトデータを書き込む場合には、『bb』という1バイトのデータは、SDRAM102上の『2番地』に書き込まれる。また、CPU90が『2番地』に『cc』という1バイトデータを書き込む場合には、『cc』という1バイトのデータは、SDRAM102上の『1番地』に書き込まれる。また、CPU90が『3番地』に『dd』という1バイトデータを書き込む場合には、『dd』という1バイトのデータは、SDRAM102上の『0番地』に書き込まれる。
他方、CPU90が『0番地』から1バイトのデータを読み込む場合には、SDRAM102上の『3番地』からデータが読み出される。これにより、CPU90は、『0番地』に書き込んだ1バイトのデータを再び『0番地』にアクセスして読み込むことができる。また、CPU90が『1番地』から1バイトのデータを読み込む場合には、SDRAM102上の『2番地』からデータが読み出される。これにより、CPU90は、『1番地』に書き込んだ1バイトのデータを再び『1番地』にアクセスして読み込むことができる。また、CPU90が『2番地』から1バイトのデータを読み込む場合には、SDRAM102上の『1番地』からデータが読み出される。これにより、CPU90は、『2番地』に書き込んだ1バイトのデータを再び『2番地』にアクセスして読み込むことができる。また、CPU90が『3番地』から1バイトのデータを読み込む場合には、SDRAM102上の『0番地』からデータが読み出される。これにより、CPU90は、『3番地』に書き込んだデータを再び『3番地』にアクセスして読み込むことができる。
(2)ハーフワードアクセス
CPU90がSDRAM102に対して「ハーフワードアクセス」を実行した場合でも、図14Bに説明するように、バスコントローラ114の信号変換回路による変換処理を実行せず、そのままSDRAM102にアクセスする。すなわち、例えば、CPU90が『0番地』および『1番地』に『aa』『bb』という2バイトのデータを書き込む場合、『aa』『bb』という2バイトのデータは、SDRAM102上の『3番地』および『2番地』に書き込まれる。また、CPU90が『2番地』および『3番地』に『cc』『dd』という2バイトのデータを書き込もうとした場合、『cc』『dd』という2バイトのデータは、SDRAM102上の『1番地』および『0番地』に書き込まれる。
他方、CPU90が『0番地』および『1番地』に書き込んだ2バイトのデータを再び読み込む場合には、SDRAM102上の『3番地』および『2番地』からデータが読み出される。これにより、CPU90は、『0番地』および『1番地』に書き込んだ2バイトのデータを再び『0番地』および『1番地』にアクセスすることで読み込むことができる。また、CPU90が『2番地』および『3番地』に書き込んだ2バイトのデータを再び読み込む場合には、SDRAM102上の『1番地』および『0番地』からデータが読み出される。これにより、CPU90は、『2番地』および『3番地』に書き込んだ2バイトのデータを再び『2番地』および『3番地』にアクセスすることで読み込むことができる。
(3)ワードアクセス
また、CPU90がSDRAM102に対して「ワードアクセス」を実行したときも同様に、図14Cに説明するように、バスコントローラ114の信号変換回路による変換処理を実行せず、そのままSDRAM102にアクセスする。すなわち、例えば、CPU90が、『0番地』、『1番地』、『2番地』および『3番地』に『aa』『bb』『cc』『dd』という4バイトデータを書き込もうとした場合には、『aa』『bb』『cc』『dd』という4バイトデータは、SDRAM102上の『3番地』、『2番地』、『1番地』および『0番地』の順に書き込まれる。
他方、CPU90が『0番地』、『1番地』、『2番地』および『3番地』に書き込んだ4バイトのデータを再び読み込もうとした場合には、SDRAM102上の『3番地』、『2番地』、『1番地』および『0番地』からデータが読み出される。これにより、CPU90は、『0番地』、『1番地』、『2番地』および『3番地』に書き込んだ4バイトのデータを再び『0番地』、『1番地』、『2番地』および『3番地』にアクセスすることで読み込むことができる。
===具体的な構成例===
このようなトランス処理やスルー処理をバスコントローラ114により具体的に実現するための構成例について説明する。図15〜図17は、これらトランス処理とスルー処理をバスコントローラ114により実現するための構成の一例について説明したものである。図15は、バスコントローラ114と、CPU90およびSDRAMコントローラ103との間の信号のやり取りを説明したものである。図16は、CPU90によりSDRAM102に対して書き込み処理が行われる場合のバスコントローラ114の内部処理について説明したものである。図17は、CPU90によりSDRAM102に対して読み込み処理が行われる場合のバスコントローラ114の内部処理について説明したものである。
<信号線>
CPU90からバスコントローラ114には、図15に示すように、XWEHH、XWEHL、XWELH、XWELLの4系統のアクセス信号と、XCS_TRおよびXCS_THの2本の変換指示信号と、アドレス信号と、データ信号と、RdorWR信号とが伝達される。これらの信号は、CPU90からCPUバス98を通じてバスコントローラ114に伝達される。また、XWEHH、XWEHL、XWELH、XWELLの4系統のアクセス信号と、アドレス信号とは、「アドレス信号」に相当する。また、これら4系統のアクセス信号と、アドレス信号とのうちのいずれか一方は、「第1アクセス信号」に相当し、他方は、「第2アクセス信号」に相当する。つまり、XWEHH、XWEHL、XWELH、XWELLの4系統のアクセス信号と、アドレス信号とのうちのどちらか一方が、SDRAMに縦方向および横方向に所定の個数ずつ並んで配置されて設けられた多数のメモリセルのうちの縦方向の位置を指定するための信号であり、それらのうちの他方が、多数のメモリセルのうちの横方向の位置を指定するための信号である。
XWEHH、XWEHL、XWELH、XWELLの4系統のアクセス信号は、それぞれCPU90がSDRAM102上のどのバイト位置にアクセスしたいか指示する信号である。ここでは、XWEHHは、最上位バイトのアドレスに対応している。すなわち、ここでは、CPU90が『ビッグ・エディアン方式』を採用していることから、CPU90の『0番地』に対応している。また、XWEHLは、最上位バイトのアドレスの隣の下位のアドレスに対応している。すなわち、ここでは、CPU90の『1番地』に対応している。さらに、XWELHは、最上位バイトのアドレスから2番目に隣の下位のアドレスに対応している。すなわち、ここでは、CPU90の『2番地』に対応している。またさらに、XWELLは、最下位バイトのアドレスに対応している。すなわち、ここでは、CPU90の『3番地』に対応している。
XCS_TRおよびXCS_THの各信号は、バスコントローラ114が実行すべき処理、即ちトランス処理またはスルー処理を指示する。これらXCS_TRおよびXCS_THの各信号を出力するのは、CPU90である。XCS_TRの信号は、トランス処理の実行を指示するための信号である。XCS_THの信号は、スルー処理の実行を指示する信号である。
アドレス信号は、CPU90がアクセスするSDRAM102上のアドレスを指定する信号である。また、データ信号は、SDRAM102に書き込むデータを送ったり、またSDRAM102から読み込まれたデータを取得するための信号である。ここでは、データ信号として32ビット(4バイト)の幅でデータのやり取りが行われる。このアドレス信号には、セレクト信号A、Bが含まれる。
セレクト信号A、Bは、CPU90が書き込むデータまたは読み込むデータの位置を指示する信号である。すなわち、CPU90とバスコントローラ114との間のデータのやり取りは32ビット(4バイト)の幅で行われる。これに対し、バスコントローラ114と、SDRAMコントローラ103との間では、128ビット(16バイト)の幅でデータのやり取りが行われる。セレクト信号A、Bは、CPU90が書き込むデータまたは読み込むデータが、バスコントローラ114と、SDRAMコントローラ103との間でやり取りされる128ビット(16バイト)幅のデータのどの位置か指示する。
RdorWR信号は、CPUが実行する処理が書き込み処理なのか読み込み処理なのかを指示する信号である。
また、バスコントローラ114からSDRAMコントローラ103には、図15に示すように、16本のDQM信号と、アドレス信号と、データ信号とが伝達される。これらの信号は、ローカルバス128を通じてバスコントローラ114からSDRAMコントローラ103へと伝達される。
アドレス信号は、CPU90がアクセスするSDRAM102上のアドレスを指定する信号である。CPU90からバスコントローラ114に入力されたアドレス信号がそのままバスコントローラ114からSDRAMコントローラ103に向けて出力される。
データ信号は、SDRAM102に書き込むデータを送ったり、またSDRAM102から読み込まれたデータを取得するための信号である。ここでは、データ信号として128ビット(16バイト)の幅でデータのやり取りが行われる。
DQM信号は、バスコントローラ114からSDRAMコントローラ103へと送信される16バイト(128ビット)分のデータのうち、どのバイトのデータを書き込みアクセスの対象とするのか指示するための信号である。これら16本のDQM信号は、CPU90からバスコントローラ114に、ライトアクセスが発生して後述するライトバッファに書き込み時に入力された4系統のアクセス信号、即ちXWEHH、XWEHL、XWELHおよびXWELLと、セレクト信号A、Bとに基づき生成される。これらDQM信号については、後で詳しく説明する。
===書き込み処理===
CPU90によるSDRAM102へのデータ書き込み時のバスコントローラ114の処理について説明する。バスコントローラ114には、CPU90がSDRAM102に対してデータの書き込みを行うために、図16に示すように、XWE変換ブロック150と、データ変換ブロック152と、ライトバッファ154とが設けられている。
XWE変換ブロック150は、CPU90から出力された変換指示信号、即ちトランス処理かスルー処理かを指示するXCS_TR信号及びXCS_TH信号に基づき、CPU90から出力された4系統のアクセス信号、即ちXWEHH、XWEHL、XWELHおよびXWELLを、4系統のアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLに変換する。
<CPUからの信号>
図18は、CPU90のアクセス方式と、CPU90から出力される4系統の信号、即ちXWEHH、XWEHL、XWELHおよびXWELLの状態とをそれぞれ対応させてまとめたものである。CPU90が『0番地』に対してバイトアクセスする場合には、XWEHHのみが『L(low)』となる。なお、他の信号XWEHL、XWELHおよびXWELLは、『H(high)』のままである。また、CPU90が『1番地』に対してバイトアクセスする場合には、XWEHLのみが『L(low)』となる。また、CPU90が『2番地』に対してバイトアクセスする場合には、XWELHのみが『L(low)』となる。また、CPU90が『3番地』に対してバイトアクセスする場合には、XWELLのみが『L(low)』となる。
他方、CPU90が『0番地』に対してハーフワードアクセスする場合には、XWEHHの他に、XWEHLが『L(low)』となる。また、CPU90が『2番地』に対してハーフワードアクセスする場合には、XWELHの他に、XWELLが『L(low)』となる。また、CPU90が『0番地』に対してワードアクセスを実行した場合には、XWEHH、XWEHL、XWELHおよびXWELLの全てが『L(low)』となる。
図19は、XCS_TRおよびXCS_THをまとめたものである。CPU90からトランス処理の指示があった場合には、XCS_TRが『L(low)』となる。この場合、XCS_THは、『H(high)』のままである。一方、CPU90からスルー処理の指示があった場合には、XCS_THが『L(low)』となる。この場合、XCS_TRは、『H(high)』のままである。
<XWE変換ブロック>
図20Aおよび図20Bは、XWE変換ブロック150により変換されて出力される4系統のアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLの出力状態を説明したものである。図20Aは、トランス処理時の信号の出力状態を説明したものである。図20Bは、スルー処理時の信号の出力状態を説明したものである。
(1)トランス処理の場合
トランス処理の場合には、IXEHH、IXWEHL、IXWELHおよびIXWELLの各信号は、XWE変換ブロック150により図20Aに示すように変換される。すなわち、CPU90が『0番地』に対してバイトアクセスした場合には、IXWELLのみが『L(low)』となる。なお、他の信号IXEHH、IXWEHL、IXWELHは、すべて『H(high)』のままである。また、CPU90が『1番地』に対してバイトアクセスした場合には、IXWELHのみが『L(low)』となる。また、CPU90が『2番地』に対してバイトアクセスした場合には、IXWEHLのみが『L(low)』となる。また、CPU90が『3番地』に対してバイトアクセスした場合には、XWEHHのみが『L(low)』となる。
また、CPU90が『0番地』に対してハーフワードアクセスした場合には、IXWELHおよびIXWELLが『L(low)』となる。また、CPU90が『2番地』に対してハーフワードアクセスした場合には、IXEHHおよびIXWEHLが『L(low)』となる。また、CPU90が『0番地』に対してワードアクセスを実行した場合には、XWEHH、XWEHL、XWELHおよびXWELLの全てが『L(low)』となる。
(2)スルー処理の場合
一方、スルー処理の場合には、IXEHH、IXWEHL、IXWELHおよびIXWELLの各信号は、XWE変換ブロック150により変換されず、図20Bに示すように、そのまま各々対応して出力される。すなわち、CPU90が『0番地』に対してバイトアクセスする場合には、IXWEHHのみが『L(low)』となる。なお、他の信号IXWEHL、IXWELHおよびIXWELLは、『H(high)』のままである。また、CPU90が『1番地』に対してバイトアクセスする場合には、IXWEHLのみが『L(low)』となる。また、CPU90が『2番地』に対してバイトアクセスする場合には、IXWELHのみが『L(low)』となる。また、CPU90が『3番地』に対してバイトアクセスする場合には、IXWELLのみが『L(low)』となる。
他方、CPU90が『0番地』に対してハーフワードアクセスする場合には、IXWEHHの他に、IXWEHLが『L(low)』となる。また、CPU90が『2番地』に対してハーフワードアクセスする場合には、IXWELHの他に、IXWELLが『L(low)』となる。また、CPU90が『0番地』に対してワードアクセスを実行した場合には、IXWEHH、IXWEHL、IXWELHおよびIXWELLの全てが『L(low)』となる。
<データ変換ブロック>
データ変換ブロック152は、CPU90から出力された変換指示信号、即ちトランス処理かスルー処理かを指示するXCS_TR及びXCS_THと、同じくCPU90から出力された4系統のアクセス信号、即ちXWEHH、XWEHL、XWELHおよびXWELLとに基づき、CPU90から出力された32ビット幅のデータ信号を変換する。
図21は、データ変換ブロック152による変換処理を概念的に説明したものである。データ変換ブロック152は、CPU90からXCS_TRによりトランス処理の指示があったときにのみ、4バイト(32ビット)幅のデータの並び換えを行う。すなわち、CPU90からXCS_THによりスルー処理の指示があったときには、データの並び換えの変換は行わず、そのままライトバッファ154に向けて出力する。
図21Aは、バイトアクセス時のデータの変換方法を説明したものである。図21Bは、ハーフワードアクセス時のデータの変換方法を説明したものである。なお、ワードアクセス時には、データ変換ブロック152によるデータの変換処理は行わない。
バイトアクセス時には、図21Aに示すように、データ変換ブロック152は、CPU90から送られてきた4バイト(32ビット)幅のデータを1バイトずつ交互に入れ替える変換を行う。すなわち、ここで、データ変換ブロック152は、最上位バイト側に位置する『aa』という1バイトデータと、最下位バイト側に位置する『dd』という1バイトデータの位置を左右入れ替える処理を行う。また、中央に位置する『bb』という1バイトデータと『cc』という1バイトデータを左右入れ替える処理を行う。これにより、最上位バイトから最下位バイトにかけて『ddccbbaa』という並びの4バイトデータを取得する。このようにして得られた4バイトデータ(32ビット)をライトバッファ154に向けて出力する。
また、ハーフワードアクセス時には、図21Bに示すように、データ変換ブロック152は、CPU90から送られてきた4バイト(32ビット)幅のデータを2バイトずつ左右入れ替える変換を行う。すなわち、データ変換ブロック152は、最上位バイト側に位置する『aabb』という2バイトデータと、最下位バイト側に位置する『ccdd』という2バイトデータとを左右入れ替える。これにより、最上位バイトから最下位バイトにかけて『ccddaabb』という並びの4バイトデータを取得する。このようにして得られた4バイトデータ(32ビット)はライトバッファ154に向けて出力される。
<ライトバッファ>
ライトバッファ154は、16バイト(128ビット)分のデータを格納可能なバッファを有する。このバッファには、4つの格納部155A、155B、155C、155Dが設けられている。各格納部155A、155B、155C、155Dはそれぞれ4バイト(32ビット)分ずつデータを格納するようになっている。データ変換ブロック152により変換されて送られてきた4バイト(32ビット)のデータは、これら4つの格納部155A、155B、155C、155Dのうちのいずれか1つに格納される。ライトバッファ154は、CPU90から出力されたセレクト信号A、Bに基づき、データ変換ブロック152により変換されて送られてきた4バイト(32ビット)のデータを格納する格納部を決定する。
図22は、CPU90から出力されたセレクト信号A、Bと、ライトバッファ154が決定する格納部との関係の一例について説明したものである。ここでは、セレクト信号A、Bの状態の組合せに応じて、データ変換ブロック152からの4バイト(32ビット)のデータを格納する格納部が決定される。つまり、例えば、セレクト信号A、Bが共に『H(high)』であれば、データ変換ブロック152からの4バイト(32ビット)のデータは、バッファの96ビット目から127ビット目に割り当てられた第1格納部155Aに格納される。また、セレクト信号Aが『H(high)』であり、セレクト信号Bが『L(Low)』であれば、データ変換ブロック152からの4バイト(32ビット)のデータは、64ビット目から95ビット目に割り当てられた第2格納部155Bに格納される。また、セレクト信号Aが『L(Low)』であり、セレクト信号Bが『H(high)』であれば、データ変換ブロック152からの4バイト(32ビット)のデータは、32ビット目から63ビット目に割り当てられた第3格納部155Cに格納される。また、セレクト信号A、Bが共に『L(Low)』であれば、データ変換ブロック152からの4バイト(32ビット)のデータは、バッファの0ビット目から31ビット目に割り当てられた第4格納部155Dに格納される。このようにいずれか1つの格納部に格納されたデータは、SDRAMコントローラ103に向けて16バイト(128ビット)ずつ送出される。
<DQM信号>
また、ライトバッファ154は、XWE変換ブロック150から出力されたIXEHH、IXWEHL、IXWELHおよびIXWELLと、CPU90からのセレクト信号A、Bとに基づき、DQM信号N1〜N16を生成する。これらDQM信号N1〜N16は、先にも説明したように、バスコントローラ114からSDRAMコントローラ103へと送信される16バイト(128ビット)分のデータのうち、どのバイトのデータをライトアクセスの対象とするのか否かそれぞれ指示するための信号である。
これらDQM信号N1〜N16は、ライトバッファ154からSDRAMコントローラ103へと送信される16バイト(128ビット)のデータのうちのどのバイトのデータがライトアクセスの対象となっているのか指示する。例えば、DQM信号N1は、例えば、ライトバッファ154からSDRAMコントローラ103へと送信される16バイト(128ビット)のデータのうちの1バイト目のデータがライトアクセスの対象か否か指示する。また、DQM信号N2は、例えば、ライトバッファ154からSDRAMコントローラ103へと送信される16バイト(128ビット)のデータのうちの2バイト目のデータがライトアクセスの対象か否か指示する。さらにまた、DQM信号N16は、例えば、ライトバッファ154からSDRAMコントローラ103へと送信される16バイト(128ビット)のデータのうちの16バイト目のデータがライトアクセスの対象か否か指示する。
ライトバッファ154は、これらDQM信号N1〜N16を、IXEHH、IXWEHL、IXWELHおよびIXWELLのアクセス信号と、CPU90からのセレクト信号A、Bとに基づき生成する。図23は、ライトバッファ154により生成されるDQM信号N1〜N16の概要についてまとめたものである。ここで、DQM信号N1〜N4は、CPU90からのセレクト信号A、Bが共に『H(high)』であるときに、XWE変換ブロック150からのアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLに対応する信号を各々対応して出力する。なお、CPU90からのセレクト信号A、Bがその他の状態のときには、DQM信号N1〜N4は、『H(high)』のままである。
DQM信号N5〜N8は、CPU90からのセレクト信号Aが『H(high)』であり、セレクト信号Bが『L(Low)』であるときに、XWE変換ブロック150からのアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLに対応する信号を各々対応して出力する。なお、CPU90からのセレクト信号A、Bがその他の状態のときには、DQM信号N5〜N8は、『H(high)』のままである。
DQM信号N9〜N12は、CPU90からのセレクト信号Aが『L(Low)』であり、セレクト信号Bが『H(high)』であるときに、XWE変換ブロック150からのアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLに対応する信号を各々対応して出力する。なお、CPU90からのセレクト信号A、Bがその他の状態のときには、DQM信号N9〜N12は、『H(high)』のままである。
DQM信号N13〜N16は、CPU90からのセレクト信号A、Bが共に『L(Low)』であるときに、XWE変換ブロック150からのアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLに対応する信号を各々対応して出力する。なお、CPU90からのセレクト信号A、Bがその他の状態のときには、DQM信号N13〜N16は、『H(high)』のままである。
このようにしてDQM信号N1〜N16が生成されてライトバッファ154からSDRAMコントローラ103へと出力されることで、バスコントローラ114からSDRAMコントローラ103へと送信される16バイト(128ビット)分のデータのうち、どのバイトのデータをライトアクセスの対象とするのか指示することができる。
<SDRAMコントローラ103>
SDRAMコントローラ103は、バスコントローラ114から送られてきた16バイト(128ビット)のデータをSDRAM102に書き込む処理を行う。このとき、SDRAMコントローラ103は、バスコントローラ114から送られてきた16バイト(128ビット)のデータの中から、バスコントローラ114から出力されたDQM信号N1〜N16により指定されたアドレスに対応するデータのみライトを行う。そして、SDRAMコントローラ103は、有効であるデータを、DQM信号N1〜N16により指示されたアドレスに書き込む。
<各信号>
(1)トランス処理時
図24A〜図24Gは、トランス処理時の各信号を示したものである。ここでは、アドレス信号、XWEHH、XWEHL、XWELH、XWELL、IXEHH、IXWEHL、IXWELH、IXWELL、XCS_TR、XCS_TH、変換前および変換後のデータ信号を示す。図24Aは、CPU90が『0番地』にバイトアクセスをしたときの各信号を示す。図24Bは、CPU90が『1番地』にバイトアクセスしたときの各信号を示す。図24Cは、CPU90が『2番地』にバイトアクセスしたときの各信号を示す。図24Dは、CPU90が『3番地』にバイトアクセスしたときの各信号を示す。図24Eは、CPU90が『0番地』にハーフワードアクセスをしたときの各信号を示す。図24Fは、CPU90が『2番地』にハーフワードアクセスをしたときの各信号を示す。図24Gは、CPU90が『0番地』にワードアクセスをしたときの各信号を示す。
CPU90が『0番地』にバイトアクセスをした場合には、図24Aに示すように、XWEHHのみが『L(low)』となる。このため、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのバイトアクセスと判断することができる。また、XCS_TRが『L(low)』であることから、トランス処理と判断することができる。これらによって、XWE変換ブロック150は、IXWELLのみを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aに示すように変更することができる。
CPU90が『1番地』にバイトアクセスをした場合には、図24Bに示すように、XWEHLのみが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『1番地』へのバイトアクセスと判断することができる。また、XCS_TRが『L(low)』であることから、トランス処理と判断することができる。これによって、XWE変換ブロック150は、IXWELHのみを『L(low)』にすることができ、また、データ変換ブロック152は、データ信号のデータの並びを図21Aに示すように変換することができる。
CPU90が『2番地』にバイトアクセスをした場合には、図24Cに示すように、XWELHのみが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『2番地』へのバイトアクセスと判断することができる。また、XCS_TRが『L(low)』であることから、トランス処理と判断することができる。これによって、XWE変換ブロック150は、IXWEHLのみを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aに示すように変換することができる。
CPU90が『3番地』にバイトアクセスをした場合には、図24Dに示すように、XWELLのみが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『3番地』へのバイトアクセスと判断することができる。また、XCS_TRが『L(low)』であることから、トランス処理と判断することができる。これによって、XWE変換ブロック150は、IXWEHHのみを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aに示すように変換することができる。
CPU90が『0番地』にハーフワードアクセスをした場合には、図24Eに示すように、XWEHHおよびXWEHLが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのハーフワードアクセスと判断することができる。また、XCS_TRが『L(low)』であることから、トランス処理と判断することができる。これによって、XWE変換ブロック150は、IXWELHおよびIXWELLを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Bに示すように変換することができる。
CPU90が『2番地』にハーフワードアクセスをした場合には、図24Fに示すように、XWELHおよびXWELLが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのハーフワードアクセスと判断することができる。また、XCS_TRが『L(low)』であることから、トランス処理と判断することができる。これによって、XWE変換ブロック150は、IXWEHHおよびIXWEHLを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Bに示すように変換することができる。
CPU90が『0番地』にワードアクセスをした場合には、図24Fに示すように、XWEHH、XWEHL、XWELHおよびXWELLの各信号が全て『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのワードアクセスと判断することができる。これによりXWE変換ブロック150は、IXEHH、IXWEHL、IXWELHおよびIXWELLの全ての信号を『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bに示すように変換せずに済む。
(2)スルー処理時
図25A〜図25Gは、スルー処理時の各信号を示したものである。ここでは、アドレス信号、XWEHH、XWEHL、XWELH、XWELL、IXEHH、IXWEHL、IXWELH、IXWELL、XCS_TR、XCS_TH、変換前および変換後のデータ信号を示す。図25Aは、CPU90が『0番地』にバイトアクセスをしたときの各信号を示す。図25Bは、CPU90が『1番地』にバイトアクセスしたときの各信号を示す。図25Cは、CPU90が『2番地』にバイトアクセスしたときの各信号を示す。図25Dは、CPU90が『3番地』にバイトアクセスしたときの各信号を示す。図25Eは、CPU90が『0番地』にハーフワードアクセスをしたときの各信号を示す。図25Fは、CPU90が『2番地』にハーフワードアクセスをしたときの各信号を示す。図25Gは、CPU90が『0番地』にワードアクセスをしたときの各信号を示す。
CPU90が『0番地』にバイトアクセスをした場合には、図25Aに示すように、XWEHHのみが『L(low)』となる。このため、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのバイトアクセスと判断することができる。また、XCS_THが『L(low)』であることから、スルー処理と判断することができる。これによって、XWE変換ブロック150は、変換せずに済み、これにより、IXWEHHのみを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bのように変換せずに済む。
CPU90が『2番地』にバイトアクセスをした場合には、図25Cに示すように、XWELHのみが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『2番地』へのバイトアクセスと判断することができる。また、XCS_THが『L(low)』であることから、スルー処理と判断することができる。これによって、XWE変換ブロック150は、変換せずに済み、これにより、IXWELHのみを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bのように変換せずに済む。
CPU90が『3番地』にバイトアクセスをした場合には、図25Dに示すように、XWELLのみが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『3番地』へのバイトアクセスと判断することができる。また、XCS_THが『L(low)』であることから、スルー処理と判断することができる。これによって、XWE変換ブロック150は、変換せずに済み、これにより、IXWELLのみを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bのように変換せずに済む。
CPU90が『0番地』にハーフワードアクセスをした場合には、図25Eに示すように、XWEHHおよびXWEHLが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのハーフワードアクセスと判断することができる。また、XCS_THが『L(low)』であることから、スルー処理と判断することができる。これによって、XWE変換ブロック150は、変換せずに済み、これにより、IXWEHHおよびIXWEHLを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bのように変換せずに済む。
CPU90が『2番地』にハーフワードアクセスをした場合には、図25Fに示すように、XWELHおよびXWELLが『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのハーフワードアクセスと判断することができる。また、XCS_THが『L(low)』であることから、スルー処理と判断することができる。これによって、XWE変換ブロック150は、変換せずに済み、これにより、IXWELHおよびIXWELLを『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bのように変換せずに済む。
CPU90が『0番地』にワードアクセスをした場合には、図25Fに示すように、XWEHH、XWEHL、XWELHおよびXWELLの各信号が全て『L(low)』となるから、XWE変換ブロック150およびデータ変換ブロック152は、『0番地』へのワードアクセスと判断することができる。これにより、XWE変換ブロック150は、変換せずに済み、したがって、IXEHH、IXWEHL、IXWELHおよびIXWELLの全ての信号を『L(low)』にすることができる。また、データ変換ブロック152は、データ信号のデータの並びを図21Aまたは図21Bに示すように変換せずに済む。
===読み込み処理===
CPU90がSDRAM102からデータの読み込みを行うときのバスコントローラ114の処理について説明する。バスコントローラ114には、CPU90がSDRAM102からデータの読み込みを行うために、図17に示すように、XWE変換ブロック156と、データ変換ブロック158と、セレクタ160と、リードバッファ162とが設けられている。
XWE変換ブロック156は、CPU90から出力されたXCS_TR信号及びXCS_TH信号に基づき、CPU90からのXWEHH、XWEHL、XWELHおよびXWELLの各信号を、IXEHH、IXWEHL、IXWELHおよびIXWELLの各信号に変換する。
リードバッファ162は、SDRAMコントローラ103から送られてきた128ビット(16バイト)のデータを一時的に格納して、そのデータをセレクタ160に出力する。セレクタ160は、リードバッファ162から送られてきた128ビット(16バイト)のデータの中から、CPU90からのセレクト信号A、Bにより指定された位置の4バイドのデータを切り出してデータ変換ブロック158に送信する。データ変換ブロック158は、セレクタ160から送られてきた4バイドのデータを、XWE変換ブロック156からのIXEHH、IXWEHL、IXWELHおよびIXWELLの各信号と、CPU90から出力されたXCS_TR信号及びXCS_TH信号とに基づき変換する。
<アドレスの指定>
CPU90がSDRAM102からデータの読み込みを行う場合には、バスコントローラ114は、まず、CPU90から出力されたアドレス信号をそのままSDRAMコントローラ103に向けて出力する。このアドレス信号を受信すると、SDRAMコントローラ103は、SDRAM102からCPU90により指定されたアドレスに記憶されているデータを取得する。そして、SDRAMコントローラ103は、SDRAM102から取得したデータを、要求のあったバスコントローラ114に向けて送信する。本実施形態では、SDRAMコントローラ103からバスコントローラ114に向けて128ビット(16バイト)のデータが送信される。
バスコントローラ114は、SDRAMコントローラ103から送られてきた128ビット(16バイト)のデータを受信すると、この16バイトのデータをリードバッファ162に格納する。その後、リードバッファ162は、格納した16バイトのデータをセレクタ160に送信する。
<セレクタ>
セレクタ160は、リードバッファ162から送信された16バイトのデータの中から、CPU90からのセレクト信号A、Bに基づき、所定の位置の4バイト(32ビット)のデータを抽出してデータ変換ブロック158に送信する。具体的には、セレクタ160は、リードバッファ162から送られてきた16バイトのデータを4バイトずつ4つのデータに区分して、その4つのデータの中から、CPU90からのセレクト信号A、Bにより指定されたデータを選択して、その選択したデータをデータ変換ブロック158に送信する。
図26は、セレクタ160によるデータの選択方法の一例を説明したものである。セレクタ160が選択するデータは、CPU90からのセレクト信号A、Bに応じて異なる。すなわち、例えば、セレクト信号A、Bが共に『H(high)』であれば、セレクタ160は、16バイト(128ビット)のデータの96ビット目から127ビット目の第1区分データを選択してデータ変換ブロック158に送信する。また、セレクト信号Aが『H(high)』であり、セレクト信号Bが『L(Low)』であれば、セレクタ160は、16バイト(128ビット)のデータの64ビット目から95ビット目の第2区分データを選択してデータ変換ブロック158に送信する。また、セレクト信号Aが『L(Low)』であり、セレクト信号Bが『H(high)』であれば、セレクタ160は、16バイト(128ビット)のデータの32ビット目から63ビット目の第3区分データを選択してデータ変換ブロック158に送信する。また、セレクト信号A、Bが共に『L(Low)』であれば、セレクタ160は、16バイト(128ビット)のデータの0ビット目から31ビット目の第4区分データを選択してデータ変換ブロック158に送信する。
<XWE変換ブロック>
XWE変換ブロック156は、書き込み処理の場合と同様に、CPU90から出力された変換指示信号、即ちトランス処理かスルー処理かを指示するXCS_TR信号及びXCS_TH信号に基づき、CPU90から出力された4系統のアクセス信号、即ちXWEHH、XWEHL、XWELHおよびXWELLを、4系統のアクセス信号、即ちIXEHH、IXWEHL、IXWELHおよびIXWELLに変換する。すなわち、トランス処理の場合には、IXEHH、IXWEHL、IXWELHおよびIXWELLの各信号は、XWE変換ブロック156により図20Aに示すように変換される。一方、スルー処理の場合には、IXEHH、IXWEHL、IXWELHおよびIXWELLの各信号は、XWE変換ブロック156により変換されず、図20Bに示すように、そのまま各々対応して出力される。
<データ変換ブロック>
データ変換ブロック158は、セレクタ160から送られてきた4バイト(32ビット)のデータを、XWE変換ブロック156からのIXEHH、IXWEHL、IXWELHおよびIXWELLの各信号に基づき変換する。図27は、ここで行われる変換処理について説明したものである。図27Aは、バイトアクセス時のデータの変換方法を説明したものである。図27Bは、ハーフワードアクセス時のデータの変換方法を説明したものである。なお、ワードアクセス時には、データ変換ブロック158によるデータの変換処理は行わない。
データ変換ブロック158は、CPU90からXCS_TRによりトランス処理の指示があったときにのみ、4バイト(32ビット)幅のデータの並び換えを行う。すなわち、CPU90からXCS_THによりスルー処理の指示があったときには、データの並び換えの変換は行わず、そのままCPU90に向けて出力する。
バイトアクセス時には、図27Aに示すように、データ変換ブロック158は、CPU90から送られてきた4バイト(32ビット)幅のデータを1バイトずつ交互に入れ替える変換を行う。すなわち、ここで、データ変換ブロック158は、最上位バイト側に位置する『aa』という1バイトデータと、最下位バイト側に位置する『dd』という1バイトデータの位置を左右入れ替える処理を行う。また、中央に位置する『bb』という1バイトデータと『cc』という1バイトデータを左右入れ替える処理を行う。これにより、最上位バイトから最下位バイトにかけて『ddccbbaa』という並びの4バイトデータを取得する。このようにして得られた4バイトデータ(32ビット)をCPU90に向けて出力する。
また、ハーフワードアクセス時には、図27Bに示すように、データ変換ブロック158は、セレクタ160から送られてきた4バイト(32ビット)幅のデータを2バイトずつ左右入れ替える変換を行う。すなわち、ここで、データ変換ブロック158は、最上位バイト側に位置する『aabb』という2バイトデータと、最下位バイト側に位置する『ccdd』という2バイトデータとを左右入れ替える。これにより、最上位バイトから最下位バイトにかけて『ccddaabb』という並びの4バイトデータを取得する。このようにして得られた4バイトデータ(32ビット)はCPU90に向けて出力される。
===トランス処理・スルー処理の切替え===
バスコントローラ114がトランス処理を実行するのか、スルー処理を実行するのかの指示は、CPU90から出力されるXCS_TRおよびXCS_THにより行われている。しかしながら、CPU90は、SDRAM102上のどのデータが、自身で後で読み込むためのデータなのか、他の入出力装置との間でやり取りするためのデータなのかを判断して、XCS_TR及びXCS_THの各信号を出力するのは、きわめて煩雑である。
そこで、CPU90が利用するメモリ空間を「エディアン変換領域」と「エディアン非変換領域」とに区分して、XCS_TR及びXCS_THの各信号の出力を管理する。図28は、「エディアン変換領域」および「エディアン非変換領域」の概要を説明するものである。「エディアン変換領域」には、CPU90と他の入出力装置との間でやり取りするためのデータを書き込むようにする。また、「エディアン非変換領域」には、CPU90が自身で後で読み込むためのデータを書き込むようにする。これにより、CPU90が「エディアン変換領域」にアクセスした場合には、CPU90はXCS_TRを出力するようにする。また、CPU90が「エディアン非変換領域」にアクセスする場合には、CPU90は、XCS_THを出力するようにする。これにより、CPU90は、XCS_TR及びXCS_THの各信号の出力の管理を簡単に行うことができる。
なお、ここで、「非エディアン変換領域」は、「第1データ格納領域」に相当する。また、「エディアン変換領域」は、「第2データ格納領域」に相当する。
===まとめ===
以上、本実施形態にあっては、CPU90が、CPU90とは異なるエディアン方式にてアクセスされるSDRAM102に、CPU90が後で読み込むためのデータを書き込む書き込み処理と、前記CPU90が書き込んだデータをSDRAM102から読み込む読み込み処理とを実行することで、CPU90がローカルバス128に接続されたSDRAM102を作業用メモリとして使用することができる。これにより、CPU90の作業用メモリのメモリ空間の大幅な増大を図ることができる。
また、バスコントローラ114の信号変換回路は、CPU90が後で読み込むためのデータをSDRAM102に書き込む場合と、CPU90が先に書き込んだデータをSDRAM102から読み込む場合に、信号の変換を行わないことで、信号の変換に要する手間を削減することができ、これによりスムーズにCPU90がSDRAM102にアクセスすることができる。
また、CPU90が利用するメモリ空間をエディアン変換領域(第1データ格納領域)とエディアン非変換領域(第2データ格納領域)とに区分して、XCS_TR及びXCS_THの各信号の出力を管理すれば、CPU90は、XCS_TR及びXCS_THの各信号の出力の管理を簡単に行うことができる。
===他のスルー処理===
図29A〜図29Cは、スルー処理の他の例について説明したものである。スルー処理は、図14A〜図14Cにて説明したように、変換処理を実行しない場合に限られない。つまり、CPU90から出力されたアドレス信号やデータ信号、またSDRAMコントローラ103からのデータ信号等の変換は行わない場合に限られない。これは、CPU90が自身でSDRAM102に書き込んだデータを再び自身で読み込む場合には、アドレスの対応関係と、データの並びとが確保されるからである。CPU90が自身でSDRAM102に書き込んだデータを再び自身で読み込む場合には、アドレスの対応関係と、データの並びとが確保されれば、どのような変換を行っても構わない。ただし、ここで行われる変換については、前述したような『トランス処理』は含まないものとする。つまり、ここでいう『スルー処理』とは、CPU90がSDRAM102にアクセスする際に、CPU90がアクセスするアドレスが、エディアンが異なるSDRAM102上に割り当てられたアドレスに対応するように、CPU90から出力されたアドレス信号を変換する処理や、CPU90がSDRAM102の所定のアドレスにデータを書き込むときに、CPU90から送られてきたデータが、その所定のアドレスに書き込まれるように、CPU90から出力された信号を変換する処理は含まない。
<処理の概要>
図29Aは、CPU90がSDRAM102に対して「バイトアクセス」を実行したときの処理の概要を説明したものである。図29Bは、CPU90がSDRAM102に対して「ハーフワードアクセス」を実行したときの処理の概要を説明したものである。図29Cは、CPU90がSDRAM102に対して「ワードアクセス」を実行したときの処理の概要を説明したものである。ここでは、バスコントローラ144は、「バイトアクセス」の場合でも、「ハーフワードアクセス」の場合でも、「ワードアクセス」の場合でも、CPU90から出力されたアドレス信号またはデータ信号をすべて同じ形式にて変換する。
(1)バイトアクセス
CPU90がSDRAM102に対して「バイトアクセス」を実行する場合には、バスコントローラ114の信号変換回路は、図29Aに説明するように変換する。すなわち、CPU90が『0番地』に『aa』という1バイトのデータを書き込む場合には、SDRAM102上に割り当てられた『1番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。また、CPU90が『1番地』に『bb』という1バイトのデータを書き込む場合には、SDRAM102上に割り当てられた『0番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。また、CPU90が『2番地』に『cc』という1バイトのデータを書き込む場合には、SDRAM102上に割り当てられた『3番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。また、CPU90が『3番地』に『dd』という1バイトのデータを書き込む場合には、SDRAM102上に割り当てられた『2番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。
一方、CPU90が『0番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『1番地』からデータ(ここでは、「aa」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。また、CPU90が『1番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『0番地』からデータ(ここでは、「bb」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。また、CPU90が『2番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『3番地』からデータ(ここでは、「cc」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。また、CPU90が『3番地』のデータを読み込む場合には、バスコントローラ114の信号変換回路は、SDRAM102に割り当てられた『2番地』からデータ(ここでは、「dd」)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
(2)ハーフワードアクセス
CPU90がSDRAM102に対して「ハーフワードアクセス」を実行する場合には、バスコントローラ114の信号変換回路は、図29Bに説明するように変換する。
すなわち、CPU90が『0番地』および『1番地』に『aa』『bb』という2バイトのデータを書き込む場合には、『aa』『bb』の2バイトデータがSDRAM102上に割り当てられた『0番地』および『1番地』にそれぞれ書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、SDRAM102の『1番地』には、『aa』のデータが書き込まれ、またSDRAM102上の『0番地』には、『bb』のデータが書き込まれる。
また、CPU90が『2番地』および『3番地』に『cc』『dd』という2バイトのデータを書き込む場合には、『cc』『dd』の2バイトデータがSDRAM102上に割り当てられた『2番地』および『3番地』に書き込まれるように、CPU90から出力されたアドレス信号やデータ信号等を変換する。なお、この場合、SDRAM102上の『2番地』には、『dd』のデータが書き込まれ、またSDRAM102上の『3番地』には、『cc』のデータが書き込まれる。
一方、CPU90が『0番地』および『1番地』から2バイトのデータを読み込む場合には、SDRAM102上の『0番地』および『1番地』から2バイトのデータ(ここでは、『0番地』から『bb』が読み出され、『1番地』から『aa』が読み出される)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
また、CPU90が『2番地』および『3番地』から2バイト分のデータを読み込む場合には、SDRAM102に割り当てられた『2番地』および『3番地』から2バイトのデータ(ここでは、『2番地』から『dd』が読み出され、『3番地』から『cc』が読み出される)がCPU90に読み込まれるように、CPU90から出力されたアドレス信号やSDRAMコントローラ103からのデータ信号を変換する。
(3)ワードアクセス
CPU90がSDRAM102に対して「ワードアクセス」を実行する場合には、バスコントローラ114の信号変換回路は、図29Cに説明するように変換する。すなわち、CPU90が『0番地』〜『3番地』に『aa』『bb』『cc』『dd』という4バイトのデータを書き込もうとした場合には、『aa』『bb』の2バイト分のデータは、SDRAM上の『1番地』および『0番地』に書き込まれ、『cc』『dd』の2バイト分のデータは、SDRAM上の『3番地』および『2番地』に書き込まれる。
CPU90が『0番地』〜『3番地』から4バイト分のデータを読み込む場合には、SDRAM上の『1番地』および『0番地』からは、『aa』『bb』の2バイトデータが読み出され、またSDRAM上の『3番地』および『2番地』からは、『cc』『dd』の2バイトデータが読み出される。
<書き込み時の信号>
図30A〜図30Gは、このスルー処理の時の各信号を示したものである。ここでは、アドレス信号、XWEHH、XWEHL、XWELH、XWELL、IXEHH、IXWEHL、IXWELH、IXWELL、XCS_TR、XCS_TH、変換前および変換後のデータ信号を示す。図30Aは、CPU90が『0番地』にバイトアクセスをしたときの各信号を示す。図30Bは、CPU90が『1番地』にバイトアクセスしたときの各信号を示す。図30Cは、CPU90が『2番地』にバイトアクセスしたときの各信号を示す。図30Dは、CPU90が『3番地』にバイトアクセスしたときの各信号を示す。図30Eは、CPU90が『0番地』にハーフワードアクセスをしたときの各信号を示す。図30Fは、CPU90が『2番地』にハーフワードアクセスをしたときの各信号を示す。図30Gは、CPU90が『0番地』にワードアクセスをしたときの各信号を示す。
===その他の実施の形態===
以上、一実施形態に基づき、本発明に係るコンピュータ装置をプリンタ等の印刷装置に適用した場合について説明したが、上記の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更または改良され得るとともに、本発明には、その等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に係るコンピュータ装置または印刷装置に含まれるものである。
<ローカルメモリについて>
前述した実施の形態では、「ローカルメモリ」としてSDRAMを用いた場合を例にして説明したが、「ローカルメモリ」にあっては、このようなSDRAMに限らず、他のタイプのメモリを用いても良い。
<CPUメモリについて>
前述した実施の形態では、「CPUメモリ」としてSDRAMを用いた場合を例にして説明したが、「CPUメモリ」にあっては、このようなSDRAMに限らず、他のタイプのメモリを用いても良い。
<CPUバスについて>
前述した実施の形態では、CPUバスのデータバス、即ちデータの信号を伝達するためのデータ信号線が、32ビット(4バイト)のバス幅により形成されていたが、「CPUバス」については、このようなバス幅に限られない。つまり、これよりも狭い8ビットや16ビットのバス幅でも良く、またこれよりも幅広の64ビットや128ビットのバス幅であってもよい。なお、ローカルバスのバス幅と同じバス幅に設定されても構わない。
<ローカルバスについて>
前述した実施の形態では、ローカルバスのデータバス、即ちデータの信号を伝達するためのデータ信号線が、128ビット(16バイト)のバス幅により形成されていたが、「ローカルバス」については、このようなバス幅に限られない。つまり、これよりも狭い8ビットや16ビット、32ビット、64ビットのバス幅でも良く、またこれよりも幅広のバス幅であってもよい。なお、CPUバスのバス幅と同じバス幅に設定されても構わない。
<エディアンについて>
前述した実施の形態では、CPU側が『ビッグ・エディアン方式』を採用し、入出力装置側が『リトル・エディアン方式』を採用していたが、CPU側または入出力装置側が採用するエディアン方式は、これらの場合に限らない。つまり、CPU側が『リトル・エディアン方式』を採用し、入出力装置側が『ビッグ・エディアン方式』を採用しても良い。
<メモリコントローラについて>
前述した実施の形態では、「ローカルメモリ」としてSDRAMが使用されていた関係上、「メモリコントローラ」としてSDRAMコントローラが用いられていたが、「メモリコントローラ」にあっては、このようなSDRAMコントローラに限らない。つまり、「ローカルメモリ」をコントロールするコントローラであれば、どのようなコントローラであっても、「メモリコントローラ」に該当する。
<コンピュータ装置について>
前述した実施の形態では、「コンピュータ装置」が、スキャナを搭載したインクジェットプリンタに適用した場合を例にして説明したが、「コンピュータ装置」にあっては、このようなスキャナを搭載したインクジェットプリンタに適用される場合に限らない。つまり、(A)CPUと、(B)CPUに接続されたCPUバスと、(C)ローカルバスと、(D)CPUバスとローカルバスとを相互に接続するバスコントローラと、(E)ローカルバスに接続されたローカルメモリと、(F)ローカルバスに接続され、CPUとは異なるエディアン方式にてローカルバスを介してローカルメモリにアクセスする1または複数の入出力装置とを備えたコンピュータ装置であれば、どのようなコンピュータ装置であっても構わない。すなわち、インクジェットプリンタ以外に他の装置に適用されたコンピュータ装置であっても良い。
<印刷装置について>
前述した実施の形態では、「印刷装置」としては、前述したようなインクジェットプリンタ1の場合を例にして説明したが、このような印刷装置に限らず、他の方式によりインクを吐出するインクジェットプリンタをはじめ、その他、インクを吐出しないタイプのプリンタ、例えば、ドットインパクト式プリンタや熱転写プリンタ、またレーザービーム式プリンタなど、印刷機能を備えた装置であれば、どのような印刷装置であっても構わない。
スキャナ・プリンタ・コピー複合装置の外観を説明した斜視図。 図1の複合装置のスキャナ部のカバーを開いたときの斜視図。 図1の複合装置の印刷部を示す斜視図。 図1の複合装置のスキャナ部及びプリンタ部の構成を説明する説明図。 プリンタ部の搬送部を説明する断面図。 図1の複合装置の操作パネルを説明する説明図。 ヘッドのノズルの配列を示す説明図。 ヘッドの駆動回路の一例を説明した図。 各信号のタイミングチャートである。 印刷処理の一例を説明するフローチャート。 制御部の構成を説明する図。 図12Aは、リトル・エディアン方式の説明図、図12Bは、ビック・エディアン方式の説明図。 トランス処理のバイトアクセス時の変換処理の説明図。 トランス処理のハーフワードアクセス時の変換処理の説明図。 トランス処理のワードアクセス時の変換処理の説明図。 スルー処理のバイトアクセス時の変換処理の説明図。 スルー処理のハーフワードアクセス時の変換処理の説明図。 スルー処理のワードアクセス時の変換処理の説明図。 バスコントローラ114とCPU90およびSDRAMコントローラ103との間の信号のやり取りの説明図。 CPU90によるデータ書き込み時のバスコントローラ114の内部処理の説明図。 CPU90によるデータ読み込み時のバスコントローラ114の内部処理の説明図。 XWEHH、XWEHL、XWELHおよびXWELLの各信号の説明図。 XCS_TRおよびXCS_THの各信号の説明図。 図20Aは、トランス処理時の信号出力の説明図、図20Bは、スルー処理時の信号出力の説明図。 図21Aは、バイトアクセス時のデータ変換方法の説明図、図21Bは、ハーフワードアクセス時のデータ変換方法の説明図。 ライトバッファ154のデータ格納位置の説明図。 DQM信号の説明図。 トランス処理にて『0番地』へバイトアクセス時の各信号の説明図。 トランス処理にて『1番地』へバイトアクセス時の各信号の説明図。 トランス処理にて『2番地』へバイトアクセス時の各信号の説明図。 トランス処理にて『3番地』へバイトアクセス時の各信号の説明図。 トランス処理にて『0番地』へハーフワードアクセス時の各信号の説明図。 トランス処理にて『2番地』へハーフワードアクセス時の各信号の説明図。 トランス処理にて『0番地』へワードアクセス時の各信号の説明図。 スルー処理にて『0番地』へバイトアクセス時の各信号の説明図。 スルー処理にて『1番地』へバイトアクセス時の各信号の説明図。 スルー処理にて『2番地』へバイトアクセス時の各信号の説明図。 スルー処理にて『3番地』へバイトアクセス時の各信号の説明図。 スルー処理にて『0番地』へハーフワードアクセス時の各信号の説明図。 スルー処理にて『2番地』へハーフワードアクセス時の各信号の説明図。 スルー処理にて『0番地』へワードアクセス時の各信号の説明図。 セレクタのデータ選択方法の説明図。 図27Aは、バイトアクセス時のデータ変換方法の説明図、図27Bは、ハーフワードアクセス時のデータ変換方法の説明図。 CPUのメモリ空間の一例を説明する説明図。 他のスルー処理のバイトアクセス時の変換処理の説明図。 他のスルー処理のハーフワードアクセス時の変換処理の説明図。 他のスルー処理のワードアクセス時の変換処理の説明図。 他のスルー処理にて『0番地』へバイトアクセス時の各信号の説明図。 他のスルー処理にて『1番地』へバイトアクセス時の各信号の説明図。 他のスルー処理にて『2番地』へバイトアクセス時の各信号の説明図。 他のスルー処理にて『3番地』へバイトアクセス時の各信号の説明図。 他のスルー処理にて『0番地』へハーフワードアクセス時の各信号の説明図。 他のスルー処理にて『2番地』へハーフワードアクセス時の各信号の説明図。 他のスルー処理にて『0番地』へワードアクセス時の各信号の説明図。
符号の説明
1 SPC複合装置、2 操作パネル、3 排紙部、4 給紙部、5 原稿、
7 排紙トレイ、8 給紙トレイ、10 スキャナ部、11 原稿台、
12 原稿台カバー、13 給紙ローラ、14 プラテン、15 搬送モータ、
17A 搬送ローラ、17B 排紙ローラ、18A フリーローラ、
18B フリーローラ、21 ヘッド、24 駆動機構、30 プリンタ部、
32 開口部、34 ヒンジ部、36 搬送機構、41 キャリッジ、
42 キャリッジモータ、44 プーリ、45 タイミングベルト、
46 ガイドレール、50 制御部、51 リニア式エンコーダ符号板、
52 検出部、53 紙検知センサ、56 ロータリー式エンコーダ、
60 スキャナ用キャリッジ、62 駆動機構、64 ガイド、
66 露光ランプ、68 ミラー、70 レンズ、72 CCDセンサ、
74 タイミングベルト、75 プーリ、76 プーリ、77 駆動モータ、
80 液晶ディスプレイ、81 報知ランプ、82 電源ボタン、
83 各種設定ボタン、84 コピーモードボタン、
85 メモリカード印刷モードボタン、86 フィルム印刷モードボタン、
87 スキャンモードボタン、88 給排紙ボタン、
89A OKボタン、89B キャンセルボタン、89C 保存ボタン、
89D カラーコピーボタン、89E モノクロコピーボタン、
89F ストップボタン、89G 十字ボタン、89H メニューボタン、
90 CPU、92 メモリ、94 ASIC、96 SDRAM、
98 CPUバス、100 ヘッドユニット、102 SDRAM、
103 SDRAMコントローラ、104 スキャナコントロールユニット、
106 リサイズユニット、108 2値化処理ユニット、
110 インターレース処理ユニット、112 イメージバッファユニット、
114 バスコントローラ、116 ヘッドコントロールユニット、
118 USBインターフェイス、120 ラインバッファ、
122 リサイズバッファ、124 インターレースバッファ、
126 イメージバッファ、127 イメージバッファ、
128 ローカルバス、130 SRAM、132 イメージバッファ、
133 イメージバッファ、134 イメージバッファ、
136 ルックアップテーブル、140 ホストコンピュータ、
150 XWE変換ブロック、152 データ変換ブロック、
154 ライトバッファ、155A 第1格納部、155B 第2格納部、
155C 第3格納部、155D 第4格納部、
156 XWE変換ブロック、158 データ変換ブロック、
160 セレクタ、162 リードバッファ、
211Y イエロノズル列、211M マゼンダノズル列、
211C シアンノズル列、211K ブラックノズル列、
220 駆動回路、221 原駆動信号発生部、222 マスク回路、
S 媒体、ODRV 原駆動信号、PRT 印刷信号、

Claims (16)

  1. (A)CPUと、
    (B)前記CPUに接続されたCPUバスと、
    (C)ローカルバスと、
    (D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
    (E)前記ローカルバスに接続されたローカルメモリと、
    (F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする1または複数の入出力装置と、
    を備え、
    前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記CPUが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行することを特徴とするコンピュータ装置。
  2. 前記バスコントローラは、前記CPUから前記CPUバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記CPUバスを通じて前記CPUのエディアン方式にて前記CPUに読み込まれるように、前記CPUから前記CPUバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記CPUバスを介して前記CPUに出力する信号変換回路を備え、
    前記信号変換回路は、前記CPUが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わないことを特徴とする請求項1に記載のコンピュータ装置。
  3. 前記CPUバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられていることを特徴とする請求項1または2に記載のコンピュータ装置。
  4. 前記ローカルバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられていることを特徴とする請求項1〜3のいずれか1項に記載のコンピュータ装置。
  5. 前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成され、
    前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第1アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第2アドレス信号とを有することを特徴とする請求項3または4に記載のコンピュータ装置。
  6. 前記信号変換回路は、前記アドレス信号または前記データの信号を変換することを特徴とする請求項3〜5のいずれか1項に記載のコンピュータ装置。
  7. 前記CPUから前記CPUバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力されることを特徴とする請求項1〜6のいずれか1項に記載のコンピュータ装置。
  8. 前記ローカルメモリには、前記CPUにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第1データ格納領域と、前記入出力装置と前記CPUとの間でやり取りされるデータが格納される第2データ格納領域とが区分されて設けられ、
    前記CPUが前記第1データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
    前記CPUが前記第2データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換を指示する信号が出力されることを特徴とする請求項7に記載のコンピュータ装置。
  9. 前記ローカルメモリがSDRAMにより構成されていることを特徴とする請求項1〜8のいずれか1項に記載のコンピュータ装置。
  10. 前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続されていることを特徴とする請求項1〜9のいずれか1項に記載のコンピュータ装置。
  11. 前記CPUバスには、前記CPUが前記CPUのエディアン方式にてデータの書き込みおよび読み込みを行うためのCPUメモリが接続されていることを特徴とする請求項1〜10のいずれか1項に記載のコンピュータ装置。
  12. (A)CPUと、
    (B)前記CPUに接続されたCPUバスと、
    (C)ローカルバスと、
    (D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
    (E)前記ローカルバスに接続されたローカルメモリと、
    (F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記ローカルメモリにアクセスする1または複数の入出力装置と、
    (G)を備え、
    (H)前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記ローカルメモリにアクセスして、前記CPUが後で読み込むためのデータを前記ローカルメモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記ローカルメモリから読み込む読み込み処理とを実行し、
    (I)前記バスコントローラは、前記CPUから前記CPUバスを介して送られてきたデータが前記ローカルバスを介して前記異なるエディアン方式にて前記ローカルメモリに書き込まれ、かつ前記ローカルメモリに前記異なるエディアン方式にて書き込まれたデータが前記ローカルバスから前記CPUバスを通じて前記CPUのエディアン方式にて前記CPUに読み込まれるように、前記CPUから前記CPUバスを介して出力された信号を変換して前記ローカルバスを通じて前記ローカルメモリに出力し、前記ローカルメモリから前記ローカルバスを通じて出力された信号を変換して前記CPUバスを介して前記CPUに出力する信号変換回路を備え、
    前記信号変換回路は、前記CPUが前記書き込み処理または前記読み込み処理を実行するときに、前記信号の変換を行わず、
    (J)前記CPUバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
    (K)記ローカルバスには、前記CPUのデータの書き込み処理または読み込み処理の対象となる前記ローカルメモリのアドレスを指定するアドレス信号を伝達するアドレス信号線と、前記CPUの前記ローカルメモリへの書き込み処理または読み込み処理の対象となるデータの信号を伝達するデータ信号線とが設けられ、
    (L)前記ローカルメモリには、データを格納するためのメモリセルが縦方向および横方向にそれぞれ所定の個数ずつ並んで配置されて構成され、
    前記アドレス信号は、前記メモリセルの前記縦方向の位置を指定するための第1アドレス信号と、前記メモリセルの前記横方向の位置を指定するための第2アドレス信号とを有し、
    (M)前記信号変換回路は、前記アドレス信号または前記データの信号を変換し、
    (N)前記CPUから前記CPUバスを通じて前記バスコントローラに向けて、前記信号変換回路により前記信号の変換を行うか否かを指示するための変換指示信号が出力され、
    (O)前記ローカルメモリには、前記CPUにより前記書き込み処理および前記読み込み処理が行われる前記データが格納される第1データ格納領域と、前記入出力装置と前記CPUとの間でやり取りされるデータが格納される第2データ格納領域とが区分されて設けられ、
    前記CPUが前記第1データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換をしない旨を指示する信号が出力され、
    前記CPUが前記第2データ格納領域のアドレスを指定してデータの書き込み処理または読み込み処理を行う場合には、前記CPUから前記変換指示信号として前記信号の変換を指示する信号が出力され、
    (P)前記ローカルメモリがSDRAMにより構成され、
    (Q)前記ローカルメモリは、当該ローカルメモリをコントロールするメモリコントローラを介して前記ローカルバスに接続され、
    (R)前記CPUバスには、前記CPUが前記CPUのエディアン方式にてデータの書き込みおよび読み込みを行うためのCPUメモリが接続されている、
    (S)ことを特徴とするコンピュータ装置。
  13. (A)CPUと、
    (B)前記CPUに接続されたCPUバスと、
    (C)ローカルバスと、
    (D)前記CPUバスと前記ローカルバスとを相互に接続するバスコントローラと、
    (E)前記ローカルバスに接続されたメモリと、
    (F)前記ローカルバスに接続され、前記CPUとは異なるエディアン方式にて前記ローカルバスを介して前記メモリにアクセスする1または複数の入出力装置と、
    (G)媒体に対して印刷を施す印刷部と、
    を備え、
    前記CPUは、前記CPUバス、前記バスコントローラおよび前記ローカルバスを介して前記メモリにアクセスして、前記CPUが後で読み込むためのデータを前記メモリに書き込む書き込み処理と、前記CPUが書き込んだデータを前記メモリから読み込む読み込み処理とを実行することを特徴とする印刷装置。
  14. 原稿から画像を読み取り画像データを生成する画像読み取り部を備えたことを特徴とする請求項13に記載の印刷装置。
  15. 前記画像データは、前記画像読み取り部により前記ローカルメモリに格納されることを特徴とする請求項14に記載の印刷装置。
  16. 前記印刷部は、前記画像読み取り部により生成された前記画像データに基づき前記媒体に画像を印刷することを特徴とする請求項14または15に記載の印刷装置。
JP2005000774A 2005-01-05 2005-01-05 コンピュータ装置および印刷装置 Pending JP2006190035A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005000774A JP2006190035A (ja) 2005-01-05 2005-01-05 コンピュータ装置および印刷装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005000774A JP2006190035A (ja) 2005-01-05 2005-01-05 コンピュータ装置および印刷装置

Publications (1)

Publication Number Publication Date
JP2006190035A true JP2006190035A (ja) 2006-07-20

Family

ID=36797183

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005000774A Pending JP2006190035A (ja) 2005-01-05 2005-01-05 コンピュータ装置および印刷装置

Country Status (1)

Country Link
JP (1) JP2006190035A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008108220A (ja) * 2006-10-27 2008-05-08 Toshiba Corp 演算装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008108220A (ja) * 2006-10-27 2008-05-08 Toshiba Corp 演算装置
JP4686435B2 (ja) * 2006-10-27 2011-05-25 株式会社東芝 演算装置
US8051122B2 (en) 2006-10-27 2011-11-01 Kabushiki Kaisha Toshiba SIMD arithmetic device capable of high-speed computing

Similar Documents

Publication Publication Date Title
US8134737B2 (en) Printing apparatus and printing method
US7463370B2 (en) Recording apparatus
US20050007404A1 (en) Printing apparatus comprising scanner and adjustment method therefor
JP2007007899A (ja) 印刷装置、印刷方法、および画像処理方法
US20070036596A1 (en) Multifunction machine system and paper feed control method in the multifunction machine system
US7532350B2 (en) Printing method and printing apparatus
JP2006150738A (ja) 記録装置及び記録方法
JP4775500B2 (ja) 印刷方法、印刷装置及びプログラム
JP2004142435A (ja) 印刷装置、印刷方法、プログラムおよび印刷システム
JP2006190035A (ja) コンピュータ装置および印刷装置
JP4631278B2 (ja) 印刷装置及び印刷方法
JP4586930B2 (ja) 印刷方法、印刷装置及びプログラム
JP2004122645A (ja) 印刷装置、印刷方法、プログラムおよびコンピュータシステム
JP4457616B2 (ja) 印刷装置、印刷方法及び印刷システム
JP4360079B2 (ja) 印刷装置、印刷方法、コンピュータシステム、およびコンピュータプログラム
JP4760990B2 (ja) 印刷方法、印刷装置及びプログラム
JP2004127033A (ja) 記録装置、コンピュータシステム、及び、記録方法
JP4348926B2 (ja) 記録装置、コンピュータシステム、及び、記録方法
JP4534458B2 (ja) 印刷装置、印刷方法、プログラム及び印刷システム
JP2007282047A (ja) 画像読み取り装置、及び、画像読み取りシステム
JP2005193543A (ja) 印刷装置及び印刷方法
JP4582240B2 (ja) 印刷方法、印刷装置及びプログラム
JP2004127032A (ja) 記録装置、コンピュータシステム、及び、記録方法
JP2004126957A (ja) 吐出装置、この装置におけるメモリ管理方法、この装置で実行されるプログラム、およびコンピュータシステム
JP2004128895A (ja) 記録装置、及び記録装置の制御方法