JP2004317536A - 表示制御システム - Google Patents
表示制御システム Download PDFInfo
- Publication number
- JP2004317536A JP2004317536A JP2003107194A JP2003107194A JP2004317536A JP 2004317536 A JP2004317536 A JP 2004317536A JP 2003107194 A JP2003107194 A JP 2003107194A JP 2003107194 A JP2003107194 A JP 2003107194A JP 2004317536 A JP2004317536 A JP 2004317536A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- address
- display
- data
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
【課題】メモリより読み出した表示データを一時格納保存するバッファの記憶容量を抑え、効率よくメモリにアクセスする。
【解決手段】複数のフレームメモリ領域にアクセスする際、少量の表示データを単位として一定の順序に従って各フレームメモリ領域から表示データを読み出す。その際、フレームメモリに格納されている表示データの1ピクセルあたりに必要な平均のデータ量に比例したデータ量が各フレームメモリ領域より読み出されるよう順序を指定する。また上記の順序でメモリにアクセスした際、ロウアドレスの指定が省略可能になるようメモリアクセス前にアドレス変換を行う。
【選択図】 図1
【解決手段】複数のフレームメモリ領域にアクセスする際、少量の表示データを単位として一定の順序に従って各フレームメモリ領域から表示データを読み出す。その際、フレームメモリに格納されている表示データの1ピクセルあたりに必要な平均のデータ量に比例したデータ量が各フレームメモリ領域より読み出されるよう順序を指定する。また上記の順序でメモリにアクセスした際、ロウアドレスの指定が省略可能になるようメモリアクセス前にアドレス変換を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、コンピュータ装置及びその応用装置において、メモリに格納した表示データを表示するシステムに関する。
【0002】
【従来の技術】
複数存在する表示データを同時表示するシステムが存在する。例えば、特開平6−149527号公報では、マルチウィンドウシステムを用いて、複数のフレームメモリに存在する表示データを同時に表示する方式を示している。また、特開平10−207446号公報では、マルチウィンドウシステムを実現する際に必要となる表示データ格納用メモリ空間を削減し、表示のためのメモリアクセス回数を抑制する装置が示されている。
【0003】
【特許文献1】
特開平6−149527号公報
【特許文献2】
特開平10−207446号公報
【0004】
【発明が解決しようとする課題】
メモリのデータ転送速度が高速になり、記憶容量も増大した結果、一組のメモリ内部に同時表示が必要となる表示データを格納する複数のフレームメモリ領域を割り当て可能となった。また、フレームメモリに格納する表示データの生成等を行うプロセッサが実行するプログラムや、前記プロセッサが必要とするデータを格納するメモリと、前記フレームメモリ領域を割り当てたメモリを共用することも可能となった。
【0005】
フレームメモリやプロセッサの主記憶装置に使用されるメモリには、高集積化が可能な半導体メモリであるDRAM、特にシンクロナスDRAM(以下SDRAM)が利用されている。しかし、DRAMではアドレスにロウアドレスとカラムアドレスを指定する必要があり、ロウアドレスが変化しない場合にはデータを連続的に転送可能であるが、ロウアドレスが変化する場合には、プリチャージ及びロウアドレスの再設定が必要となり、データ転送が一時中断する問題がある。特に、クロックの立ち上がりと立下りの両方に同期してデータ転送を行うSDRAMであるDDR−SDRAMでは、この一時中断のオーバーヘッドが大きい。
【0006】
通常のシステムでは、連続するアドレスのデータ転送を高速に行う必要があるので、アドレスの上位ビットをロウアドレス、下位ビットをカラムアドレスに割り当てる。しかし、複数のフレームメモリ領域を一組のメモリ内部に割り当て、複数のフレームメモリ領域に存在する表示データを合成する為には、複数のフレームメモリ領域をアクセスする必要がある。通常、一個のフレームメモリ領域は同一ロウアドレスに収まるほど小さくはなく、この結果、ロウアドレスの頻繁な切り替えが必要となり、メモリのデータ転送の一時中断が多発することになる。
【0007】
メモリのデータ転送速度が高速になっても、データ転送の一時中断が多発すると、実効データ転送速度が低下し、当該メモリにフレームメモリ領域を割り当てた場合には、表示に必要なデータ転送速度にメモリからのデータ転送速度が追いつかず表示が乱れる可能性がある。また、プロセッサのプログラムやデータとフレームメモリを共用している場合には、プロセッサの動作速度が低下する。このような問題を回避するには、表示の際に参照が必要となるフレームメモリ領域ごとにある程度大きなバッファメモリを用意し、フレームメモリ領域からバッファメモリへ連続したデータ転送を行う方法がある。しかし、この方法では、最低でも数百バイト程度のバッファメモリが表示の際に同時に参照が必要となるフレームメモリ領域の数だけ必要となり、表示制御システムを集積回路にする際、面積の増大を招く問題がある。
【0008】
別の問題回避方法として、特開平10−207446号公報に示された方法を用いて、メモリアクセス回数を抑制することも考えられるが、デジタル放送の5プレーンモデルのように、原則として個々のフレームメモリに格納した表示データが表示装置の画面全体の表示に対応し、かつ個々のフレームメモリに格納されている表示データ間でアルファブレンド(半透明合成)を行う場合には、あまり効果を期待できない。
【0009】
そこで、DRAM、特にSDRAMまたはDDR−SDRAM上に複数のフレームメモリ領域を用意し、表示時に複数のフレームメモリから表示データを読み出し合成する表示制御システムにおいて、前記フレームメモリ領域からデータを読み出す際に必要なバッファメモリの容量を抑えながら、プリチャージ及びロウアドレス転送によるデータ転送の中断を抑制し、効率よくフレームメモリ領域からデータ転送を行うシステムを提供するのが、この発明が解決しようとする課題である。
【0010】
【課題を解決するための手段】
表示に際して表示データを複数のフレームメモリ領域から読み出す際に、一定の順序に従って必要な表示データを持つフレームメモリ領域にアクセスする。この際に、数から数十バイト程度の単位で次のフレームメモリ領域のアクセスを行う。また、フレームメモリ領域ごとに単位時間当たりに必要なデータ量が異なる場合には、その比率と同じ比率で各フレームメモリ領域からデータを読み出す。
【0011】
フレームメモリ領域へアクセスする際には、上記に示した順序でアクセスを行った場合に、殆どの場合において同一のロウアドレスに対するアクセスになるようにアドレス変換を行う。また、このようなアドレス変換を行う為に、アドレス変換時には、それぞれのフレームメモリ領域から単位時間当たりに読み出すデータ量の比率情報を参照して、異なるアドレス変換を行う。
【0012】
【発明の実施の形態】
図1を用いて、本発明の実施の形態を説明する。システムバス101には、演算処理を行い表示データの作成等が可能なプロセッサ110、システムバス101に接続してある機能ブロックに対して大量のデータ転送を効率的に行うことが可能なダイレクトメモリアクセス制御装置120、外部機器との接続に使用する各種I/O130、表示装置へ出力する信号を生成する表示制御装置300、メモリ500の接続に必要となるメモリアクセス制御装置200が接続してある。メモリ500はDDR−SDRAMであるが、SDRAM等他のDRAMの場合も考えられる。表示専用バス102は、システムバス101に負担をかけずに表示に必要となる大量のデータをメモリ500から表示制御装置300に転送するためのバスであり、メモリアクセス制御装置200と表示制御装置300を直結している。メモリアクセス制御装置200内部には、表示データの読み出しをメモリ500から効率的に行えるよう、アドレス変換器210が存在する。表示制御装置300には2系統の表示信号を出力可能であり、表示装置A401と表示装置B402が接続してある。但し、表示制御装置300の出力は1系統の場合もあり、3系統以上の場合もありうる。
【0013】
メモリ500には、プロセッサ110が必要とするプログラムやデータ、ダイレクトメモリアクセス制御装置120の制御パラメータ、及び表示内容に対応する表示データを格納する。
【0014】
図2を用いて表示制御装置300の内部構成を説明する。表示タイミング及び表示モード制御装置310は表示制御装置300の全体の制御を行う。表示タイミング及び表示モード制御装置310はシステムバス101に接続してあり、プロセッサ110からの制御で、表示制御装置300の動作モードを変更可能である。
【0015】
FIFO−A(321、322、324、325、326)はシステムバス101または表示専用バス102から入力される表示データを一時的に蓄える。使用する入力は、表示タイミング及び表示モード制御装置310からの制御信号により選択可能である。入力としてシステムバス101を選択したFIFO−A(321、322、324、325、326)へは、ダイレクトメモリアクセス制御装置120を使用して、メモリ500に存在する表示データを転送する。入力として表示専用バス102を選択したFIFO−A(321、322、324、325、326)へは、メモリアクセス制御装置200がメモリ500に存在する表示データの転送を行う。
【0016】
FIFO−B323はシステムバス101から入力されるデータを一時的に蓄える。FIFO−B323へは、ダイレクトメモリアクセス制御装置120を使用して、メモリ500に存在する表示データを転送する。FIFO−B323はFIFO−A(321、322)に入力される2種類の表示データの選択に使用するビットマップイメージの一時的な蓄積に使用し、FIFO−A(321、322、324、325、326)の取り扱うデータ量に比べて少量のデータを取り扱うため、表示専用バス102へは接続していない。
【0017】
フォーマッタA(331、332)は表示データ1ピクセルに対応する単位でFIFO−A(321、322)からデータを取り出し、データの割り当てを行うことで、YCbCrやRGB等のコンポーネント信号に対応するデータを作成する。フォーマッタA(331、332)から出力するRGBまたはYCbCrの各コンポーネントは8ビットのデータであり、合計24ビットである。このデータ割り当て処理により、1ピクセルあたり8ビットのデータを取り込み、すべてのコンポーネント成分に同じ値を設定することや、32ビットのデータを取り込み、コンポーネント成分ごとに独立した値を設定することが可能である。また、連続する2ピクセルで同じデータを使用し、出力することで横方向の表示解像度を半分にして、表示データのデータ量を半分にすることも可能である。さらに、YCbCrフォーマットのデータが入力された場合、色信号であるCb及びCr信号だけ横方向の解像度を半分にすることで、表示データのデータ量を抑制することや、入力側データの各コンポーネント成分を5ビットまたは6ビットのデータとして取り扱い、階調変換を行うことでデータ量を抑制することも可能である。
【0018】
フォーマッタB333は1ピクセルあたり1ビットのデータをFIFO−B323より取り出し、画像選択器341に送出する。画像選択器341はフォーマッタB333から来た値が0か1かによって、フォーマッタA331またはフォーマッタA332からのデータを選択し、色変換器A351へ送る。
【0019】
色変換器A351には2種類の色変換機能がある。第1の機能はRGBからYCbCrまたはYCbCrからRGBへの色空間変換機能であり、積和演算により実現している。第2の機能はルックアップテーブルによる色変換であり、コンポーネント毎に変換テーブルを参照して、色変換を行う。変換テーブルは、1コンポーネントにつき、8ビット幅、256エントリのメモリで構成する。第1の機能と第2の機能の処理順は任意で、その順序は表示タイミング及び表示モード制御装置310からの制御信号により選択される。また、それぞれの機能を使用しないことも選択可能である。
【0020】
フォーマッタC(334、335、336)はフォーマッタA(331、332)と殆ど同じ機能を持つが、YCbCrまたはRGBコンポーネント成分に加え、半透明合成時に必要な透明度を指定するα値を取り扱うことが可能である。α値も他のコンポーネントと同じ8ビットのデータである。α値はFIFO−A(324、325、326)から取り込むことも可能であるし、一定の値とすることも可能である。また、FIFO−A(324、325、326)より取り出した8ビットの入力データをすべてのコンポーネント成分に割り当てる場合、すなわちすべてのコンポーネント成分で同じ値を使用する際には、α値にも同じ値を割り当てることが可能である。
【0021】
色変換器B(354、355、356)はルックアップテーブルによる色変換器であり、コンポーネント毎に変換テーブルを参照して、色変換を行う。変換テーブルは、1コンポーネントにつき、8ビット幅、256エントリのメモリで構成する。色変換器B(354、355、356)はα値についても変換テーブルを持つ。
【0022】
色変換器A351の出力と色変換器B354の出力は、色変換器B354から出力されるα値が使用され、αブレンド演算器364で半透明合成される。この出力と色変換器B355の出力とは、色変換器B355から出力されるα値が使用され、αブレンド演算器365で半透明合成される。さらに、この出力と色変換器B356の出力とは、色変換器B356から出力されるα値が使用され、αブレンド演算器366で半透明合成される。αブレンド演算器(364、365、366)は、YCbCrまたはRGBのコンポーネント毎に、α値に応じた比で半透明合成を行う。
【0023】
αブレンド演算器366の出力は、同期信号挿入器371で表示に必要な同期信号が加えられ、映像信号Aとして出力される。
【0024】
αブレンド演算器365の出力は、色変換器C359にも送られる。色変換器C359は色変換器Aの第1の機能と同じ機能を持ち、RGBからYCbCrまたはYCbCrからRGBへの色空間変換を行うことが可能である。また、表示タイミング及び表示モード制御装置310からの制御信号により、色空間変換を行わないことも選択可能である。色変換器359により、映像出力Aと映像出力Bで異なる色空間の信号を出力することが可能である。
【0025】
色変換器C359の出力は、同期信号挿入器372で表示に必要な同期信号が加えられ、映像信号Bとして出力される。
【0026】
同期信号挿入器371と同期信号挿入器372は同期しており、映像出力Aと映像出力Bからはピクセル値の出力間隔、水平同期及び垂直同期が一致した信号が出力される。
【0027】
αブレンド演算器(364、365、366)は、表示タイミング及び表示モード制御装置310からの制御信号により、それぞれ独立して、半透明合成を行わずに、入力信号の一方を選択して出力することも可能である。この機能により、αブレンド演算器366で色変換器B356からの信号のみを出力することで、映像出力Aと映像出力Bで異なる表示内容を出力することが可能である。
【0028】
図3を用いてメモリアクセス制御装置200の内部構成を説明する。システムバス101から入力されるメモリアクセス要求は、システムバスインタフェース220を介してメモリアクセス要求FIFO240に一時的に蓄えられる。また、メモリアクセス要求がメモリライトである場合には、メモリへ書き込むデータは書き込みデータFIFO270に一時蓄えられる。メモリアクセス要求FIFO240には、アクセス対象のアドレス情報及びリードまたはライト要求の種別、アクセスするデータのバイト数、さらにメモリリードの場合にはアクセス要求識別IDが格納される。アクセス要求識別IDはメモリからデータの読み出し完了後に、要求元に対してデータを戻す際の戻し先の識別に用いる。メモリアクセス要求FIFO240に余裕がない状態でメモリアクセス要求がきた場合、システムバスインタフェース220はメモリアクセス要求FIFO240に余裕ができるまでシステムバス101をストールする。メモリアクセス要求がメモリライトの際に書き込みデータFIFO270に余裕がない状態の場合、またはメモリアクセス要求がメモリリードの際に読み出しデータFIFO275に余裕がない状態の場合にも、同様に余裕ができるまでシステムバス101をストールする。
【0029】
メモリアクセス要求FIFO240に一時的に蓄えられた要求は、調停装置260により表示データアドレス発生器250が発生したアドレスと調停され、アドレス変換器210に送られる。アドレス変換器210による変換前アドレスを変換前メモリアドレス2201、変換後アドレスを変換後メモリアドレス2251とする。アドレス変換器210では、変換前メモリアドレス2201に応じて異なる変換を行う。
【0030】
表示データアドレス発生器250は、表示専用バス102経由で表示制御装置300に送る表示データの格納されているアドレスを発生する。アドレスを発生する際には、そのアドレスから読み出した表示データの表示制御装置300内での行き先が識別可能なようにアクセス要求識別IDも発生する。
【0031】
表示データの格納アドレスや表示データをメモリ500から読み出す順序は、プロセッサ110よりシステムバス101経由で表示データアドレス発生器250に設定する。
【0032】
調停装置260は、表示専用バスインタフェース102を利用したデータ転送機能が使用されており、表示専用データバッファ280に一度にメモリ500から読み出すデータ量以上の空きがある場合には、原則として表示データの読み出しを優先し、表示データアドレス発生器250の発生したアドレスを選択する。但し、一定期間以上表示データアドレス発生器250の発生したアドレスを選択した状態が継続し、メモリアクセス要求FIFO240にメモリアクセス要求が存在する場合には、システムバス101が完全に停止するのを防止するため、メモリアクセス要求FIFO240からのアドレスを選択する。表示専用データバッファ280に一度にメモリ500から読み出すデータ量は、バイト単位で2のべき乗とする。このデータ量は、メモリ500とメモリアクセス制御装置200が64ビットデータバスで接続してある場合、256バイト程度とするが、それ以外のこともありえる。
【0033】
アドレス変換器210で生成された変換後メモリアドレス2251はアクセス要求識別IDと共にメモリアクセスタイミング発生器290へ送られる。そして、メモリアクセスタイミング発生器290により、メモリ500のアクセスに必要な制御信号が生成される。
【0034】
メモリアクセスタイミング発生器290は、変換後メモリアドレス2251からロウアドレス2263、カラムアドレス2262、バンクアドレス2264、バイト選択信号、メモリ500を構成するメモリチップを選択するチップ選択信号を生成し、同時にメモリ500を制御するコントロール信号を生成する。この際、メモリ500にアクセスするデータ量に応じて、複数回のアクセスに相当する制御信号を発生する場合もある。また、適当な間隔でメモリ500が必要とするリフレッシュコマンドも生成する。
【0035】
メモリライトの際には、メモリアクセスタイミング発生器290に同期して、書き込みデータFIFO270から書き込みデータがメモリ500へ出力される。
【0036】
メモリリードの際には、メモリ500から読み出しデータが出力されるタイミングでメモリアクセスタイミング発生器290が読み出しデータFIFO275または表示専用読み出しデータバッファ280に指示を出し、データを取り込む。読み出しデータFIFO275と表示専用読み出しデータバッファ280のどちらにデータを取り込むかは、アクセス要求識別IDにより判断する。また、読み出しデータFIFO275または表示専用読み出しデータバッファ280がメモリ500からデータを取り込む際には、同時に対応するアクセス要求識別IDをメモリアクセスタイミング発生器290から取り込む。
【0037】
図10に、変換後メモリアドレス2251とロウアドレス2263、カラムアドレス2262、バンクアドレス2264、バイト選択2261ビット、チップ選択2265ビットの関係の例を示す。図10に示した例では、メモリ500とメモリアクセス制御装置200が64ビットデータバスで接続されており、メモリ500はDDR−SDRAMであり、メモリ500を構成するメモリチップ1個あたり、記憶容量が128Mビット、データバス幅が16ビット、バンクアドレス幅2ビット、ロウアドレス幅12ビット、カラムアドレス幅9ビットであることを想定している。実際にメモリ500へ送るバイト選択信号はバイト選択2261ビット及びメモリアクセス対象とするバイト幅により生成する。メモリ500へ送るチップ選択信号はチップ選択2265ビットをデコードして生成する。アクセスするデータ量が多く、メモリ500へ複数回のアクセスが必要な場合、バンクアドレス2264、ロウアドレス2263、カラムアドレス2262は必要に応じて1回のアクセス毎に更新する。
【0038】
読み出しデータFIFO275に格納されたデータは、システムバスインタフェース220を介してシステムバス101経由で、アクセス要求識別IDを元に順次アクセス要求元へと送出される。
【0039】
表示専用読み出しデータバッファ280に格納されたデータは、表示専用バスインタフェース230を介して表示専用バス102経由で表示制御装置300へ順次送出される。表示制御装置300内の送り先はアクセス要求識別IDを用いて決定する。
【0040】
図4を用いてメモリアクセス制御装置200内の表示データアドレス発生器250の構成を説明する。表示プレーン1アドレスカウンタ251は表示制御装置300内のFIFO−A321へ送る表示データの読み出しアドレスを保持する。表示プレーン2アドレスカウンタ252は表示制御装置300内のFIFO−A322へ送る表示データの読み出しアドレスを保持する。表示プレーン3アドレスカウンタ253は表示制御装置300内のFIFO−A324へ送る表示データの読み出しアドレスを保持する。表示プレーン4アドレスカウンタ254は表示制御装置300内のFIFO−A325へ送る表示データの読み出しアドレスを保持する。表示プレーン5アドレスカウンタ255は表示制御装置300内のFIFO−A326へ送る表示データの読み出しアドレスを保持する。それぞれのアドレスカウンタには、システムバス101からデータの開始アドレスとデータサイズを設定でき、データサイズ分のアドレスを発生した後に、開始アドレスに戻ることで、その範囲のアドレスを繰り返し発生する。アドレスカウンタの増分は、メモリ500との間のデータバス幅やメモリ500の種類、さらにメモリ500とのバースト転送単位に依存し調整する必要があるが、DDR−SDRAMに64ビットデータバスで接続し、バースト転送単位を2として取り扱う場合、16バイト分とする。但し、16バイト以外の増分であることも考えられる。データサイズを指定する際には、ある任意のサイズの1倍、2倍、4倍または8倍いずれかのサイズとなるよう全てのアドレスカウンタに指定する必要がある。通常、表示においては1ピクセルあたり必要なデータ量は表示モードにより変化するが、そのデータ量の比はある値の1倍、2倍、4倍または8倍となることが多い。したがって、画面全体について重ね合わせを行う場合、このサイズの条件を満たすことは可能である。表示制御装置がインタレース(飛び越し走査)画像を取り扱う場合、アドレスカウンタのアドレス発生パタンを走査順序にあわせて変更する必要がある。
【0041】
アドレスカウンタ選択器257はアクセス順序指定レジスタ258で指定される順序に従って、表示プレーン1アドレスカウンタ251、表示プレーン2アドレスカウンタ252、表示プレーン3アドレスカウンタ253、表示プレーン4アドレスカウンタ254または表示プレーン5アドレスカウンタ255のいずれかのアドレスを選択し調停装置260へ送る。
【0042】
アクセス順序指定レジスタ258にはシステムバス101経由でアクセス順序のリストを設定しておく。この際、短い周期で必要となるデータ量の比率と同じ割合でアドレスカウンタを選択するようなリストにする。また、なるべく選択するアドレスカウンタを分散するようにする。
【0043】
図5を用いてメモリアクセス制御装置200内のアドレス変換器210の構成を説明する。但し、ビットの割り当てはメモリ500の構成により異なり、図5はその一例を示している。
【0044】
領域判定器211は変換前メモリアドレス2201のビット20から27を参照し、ある一定の範囲に入っているか検出する。検出結果はアドレス選択器214に伝えられ、アドレス選択器214は検出結果に応じて、変換前メモリアドレス2201のビット4からビット24をそのまま選択するかローテート演算器213の出力を選択する。アドレス変換自体はローテート演算器213で行われる。
【0045】
変換方式判定器212は変換前メモリアドレス2201のビット20から24を用い、アドレス変換方法を決定する。アドレス変換方法の決定に用いる変換前メモリアドレス2201のビット20からビット24をフレームIDとする。この結果を用いてローテート演算器213はアドレス変換を行う。
【0046】
したがって、アドレス変換器210は変換前メモリアドレス2201によって異なるアドレス変換を行ったり、あるいはアドレス変換を行わなかったりすることが可能である。
【0047】
図6、図7、図8、図9はアドレス変換器210が図5に示すビット割り当てを用いる際のアドレス変換方法を示している。どのアドレス変換方法を利用するかは、該当するアドレスに格納する表示データのサイズ、すなわちフレームバッファのサイズにより決定する。本発明の実施の形態では表示する画像の表示サイズはすべての表示プレーンで同じとなるので、フレームバッファのサイズは1ピクセル当たりのデータ量に比例する。このデータ量の比を、1:2:4:8とした際、図6は1に相当するサイズの表示データを格納する領域に用いるアドレス変換、図7は2に相当するサイズの表示データを格納する領域に用いるアドレス変換、図8は4に相当するサイズの表示データを格納する領域に用いるアドレス変換、図9は8に相当するサイズの表示データを格納する領域に用いるアドレス変換を示している。
【0048】
図6に示すアドレス変換では変換前メモリアドレス2201のビット4からビット24までを5ビット左ローテートすることで変換後メモリアドレス2251を得る。図7に示すアドレス変換では変換前メモリアドレス2201のビット5からビット24までを4ビット左ローテートすることで変換後メモリアドレス2251を得る。図8に示すアドレス変換では変換前メモリアドレス2201のビット6からビット24までを3ビット左ローテートすることで変換後メモリアドレス2251を得る。図9に示すアドレス変換では変換前メモリアドレス2201のビット7からビット24までを2ビット左ローテートすることで変換後メモリアドレス2251を得る。すなわち、ローテートするビット範囲とローテート量を同時に変更する。
【0049】
図11及び図12を用い、表示データを格納するメモリ領域、すなわちフレームバッファの割り当て状態の例を示す。図11では変換前メモリアドレス2201のアドレス空間におけるメモリ領域割り当て例を示しており、図12では図11に示す例に対応する変換後メモリアドレス2251のアドレス空間におけるメモリ領域割り当て状態を示す。
【0050】
図11に示す例では、変換前メモリアドレス2201のビット27及び26が0、ビット25が1の際に、アドレス変換器210がアドレス変換を行っている。また、フレームID0(800)及びフレームID1(801)の領域では、図6に示すアドレス変換を選択、フレームID2(802)、フレームID3(803)、フレームID16(816)、及びフレームID17(817)の領域では図7に示すアドレス変換を選択、フレームID4(804)からフレームID7(807)までの領域では図8に示すアドレス変換を選択、フレームID8(808)からフレームID15(815)までの領域は図9に示すアドレス変換を選択したことを想定している。
【0051】
図11に示すように、1個以上の連続するフレームID単位の領域を組にしてフレームグループとする。図6に示すアドレス変換を行った領域は1個のフレームID単位領域で、図7に示すアドレス変換を行った領域では2個のフレームID単位領域で、図8に示すアドレス変換を行った領域では4個のフレームID単位領域で、図9に示すアドレス変換を行った領域では8個のフレームID単位領域でフレームグループを構成する。フレームグループの最初の領域に対応するフレームIDは必ずフレームグループを構成するフレームID単位領域の個数の倍数である必要がある。
【0052】
表示データを格納する領域、すなわちフレームバッファはフレームグループを単位とする。例えば、表示プレーン1、表示プレーン2、表示プレーン3、表示プレーン4、表示プレーン5の表示データ量の比率が1:4:2:2:8である場合、表示プレーン1にはフレームグループ0(900)、表示プレーン2にはフレームグループ3(930)、表示プレーン3にはフレームグループ2(920)、表示プレーン4にはフレームグループ5(950)、表示プレーン5にはフレームグループ4(940)を割り当てる。
【0053】
図11に示したフレームグループは、アドレス変換により図12に示すように変換後メモリアドレス2251空間において細かく断片化される。フレームグループ0(900)及びフレームグループ1(910)は16バイト単位に、フレームグループ2(920)及びフレームグループ5(950)は32バイト単位に、フレームグループ3(930)は64バイト単位に、フレームグループ4(940)は128バイト単位に断片化される。この結果、表示において同じタイミングで必要となるデータが、メモリ500内部の1個のロウアドレス2263で指定される領域に集まる。
【0054】
表示において同じタイミングで必要となるデータの読み出し順序は、すでに説明した表示データアドレス発生器250により制御される。したがって、表示に必要となる表示プレーン全ての表示データを一括して表示専用読み出しデータバッファ280で管理することで、表示専用読み出しデータバッファ280の容量を有効に活用して、メモリ500に連続的にアクセスを発行できる。この際、表示専用読み出しデータバッファ280の容量を抑えるためには、複数の表示プレーンに対応するデータをなるべく細かい単位で、必要となるデータ量の比率に従い、偏りなくメモリ500から読み出す必要がある。このような読み出し方法を行っても、すでに説明したアドレス変換機能を用いることで、ロウアドレス2263の変化を抑えられるので、メモリ500アクセス時にロウアドレス2263を指定する頻度を抑制でき、メモリ500に効率よくアクセス可能である。
【0055】
【発明の効果】
以上説明したように、本発明により複数の表示プレーンの表示データを参照、合成して表示を行う表示システムで、メモリにSDRAMやDDR−SDRAM等のロウアドレスとカラムアドレスの指定が別々に必要なメモリを使用した場合において、メモリから読み出した表示データを一時蓄えるバッファの容量を抑制しながら、メモリに効率的にアクセスすることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るブロック図である。
【図2】表示制御装置の内部構成を示すブロック図である。
【図3】メモリアクセス制御装置の内部構成を示すブロック図である。
【図4】メモリアクセス制御装置内の表示データアドレス発生器の内部構成を示すブロック図である。
【図5】メモリアクセス制御装置内のアドレス変換器の構成を示すブロック図である。
【図6】メモリアクセス制御装置内のアドレス変換器の第1のアドレス変換方法を示す図である。
【図7】メモリアクセス制御装置内のアドレス変換器の第2のアドレス変換方法を示す図である。
【図8】メモリアクセス制御装置内のアドレス変換器の第3のアドレス変換方法を示す図である。
【図9】メモリアクセス制御装置内のアドレス変換器の第4のアドレス変換方法を示す図である。
【図10】変換後メモリアドレスとメモリアクセス時に必要となるアドレスの関係の例を示す図である。
【図11】変換前メモリアドレスによるアドレス空間においてフレームメモリ領域の割り当て例を示す図である。
【図12】図11に示したフレームメモリ領域の割り当て例に対応する、変換後メモリアドレスによるアドレス空間におけるフレームメモリ領域の割り当て状態を示す図である。
【符号の説明】
101…システムバス、102…表示専用バス、110…プロセッサ、120…ダイレクトメモリアクセス制御装置、130…各種I/O、200…メモリアクセス制御装置、210…アドレス変換器、211…領域判定器、212…変換方式判定器、213…ローテート演算器、214…アドレス選択器、220…システムバスインタフェース、230…表示専用バスインタフェース、240…メモリアクセス要求FIFO、250…表示データアドレス発生器、251…表示プレーン1アドレスカウンタ、252…表示プレーン2アドレスカウンタ、253…表示プレーン3アドレスカウンタ、254…表示プレーン4アドレスカウンタ、255…表示プレーン5アドレスカウンタ、257…アドレスカウンタ選択器、258…アクセス順序指定レジスタ、260…調停装置、270…書き込みデータFIFO、275…読み出しデータFIFO、280…表示専用読み出しデータバッファ、290…メモリアクセスタイミング発生器、300…表示制御装置、310…表示タイミング及び表示モード制御装置、321、322、324、325、326…FIFO−A、323…FIFO−B、331、332…フォーマッタA、333…フォーマッタB、334、335、336…フォーマッタC、341…画像選択器、351…色変換器A、354、355、356…色変換器B、359…色変換器C、364、365、366…αブレンド演算器、371、372…同期信号挿入器、401…表示装置A、402…表示装置B、500…メモリ、800…フレームID0に対応するメモリ領域、801…フレームID1に対応するメモリ領域、802…フレームID2に対応するメモリ領域、803…フレームID3に対応するメモリ領域、804…フレームID4に対応するメモリ領域、805…フレームID5に対応するメモリ領域、806…フレームID6に対応するメモリ領域、807…フレームID7に対応するメモリ領域、808…フレームID8に対応するメモリ領域、809…フレームID9に対応するメモリ領域、810…フレームID10に対応するメモリ領域、811…フレームID11に対応するメモリ領域、812…フレームID12に対応するメモリ領域、813…フレームID13に対応するメモリ領域、814…フレームID14に対応するメモリ領域、815…フレームID15に対応するメモリ領域、816…フレームID16に対応するメモリ領域、817…フレームID17に対応するメモリ領域、900…フレームグループ0に対応するメモリ領域、901…フレームグループ0に対応するメモリ領域の第1の断片領域、902…フレームグループ0に対応するメモリ領域の第2の断片領域、910…フレームグループ1に対応するメモリ領域、911…フレームグループ1に対応するメモリ領域の第1の断片領域、912…フレームグループ1に対応するメモリ領域の第2の断片領域、920…フレームグループ2に対応するメモリ領域、921…フレームグループ2に対応するメモリ領域の第1の断片領域、922…フレームグループ2に対応するメモリ領域の第2の断片領域、930…フレームグループ3に対応するメモリ領域、931…フレームグループ3に対応するメモリ領域の第1の断片領域、940…フレームグループ4に対応するメモリ領域、941…フレームグループ4に対応するメモリ領域の第1の断片領域、950…フレームグループ5に対応するメモリ領域、951…フレームグループ5に対応するメモリ領域の第1の断片領域、2201…変換前メモリアドレス、2251…変換後メモリアドレス、2261…バイト選択ビット、2262…カラムアドレスビット、2263…ロウアドレスビット、2264…バンクアドレスビット、2265…チップ選択ビット。
【発明の属する技術分野】
本発明は、コンピュータ装置及びその応用装置において、メモリに格納した表示データを表示するシステムに関する。
【0002】
【従来の技術】
複数存在する表示データを同時表示するシステムが存在する。例えば、特開平6−149527号公報では、マルチウィンドウシステムを用いて、複数のフレームメモリに存在する表示データを同時に表示する方式を示している。また、特開平10−207446号公報では、マルチウィンドウシステムを実現する際に必要となる表示データ格納用メモリ空間を削減し、表示のためのメモリアクセス回数を抑制する装置が示されている。
【0003】
【特許文献1】
特開平6−149527号公報
【特許文献2】
特開平10−207446号公報
【0004】
【発明が解決しようとする課題】
メモリのデータ転送速度が高速になり、記憶容量も増大した結果、一組のメモリ内部に同時表示が必要となる表示データを格納する複数のフレームメモリ領域を割り当て可能となった。また、フレームメモリに格納する表示データの生成等を行うプロセッサが実行するプログラムや、前記プロセッサが必要とするデータを格納するメモリと、前記フレームメモリ領域を割り当てたメモリを共用することも可能となった。
【0005】
フレームメモリやプロセッサの主記憶装置に使用されるメモリには、高集積化が可能な半導体メモリであるDRAM、特にシンクロナスDRAM(以下SDRAM)が利用されている。しかし、DRAMではアドレスにロウアドレスとカラムアドレスを指定する必要があり、ロウアドレスが変化しない場合にはデータを連続的に転送可能であるが、ロウアドレスが変化する場合には、プリチャージ及びロウアドレスの再設定が必要となり、データ転送が一時中断する問題がある。特に、クロックの立ち上がりと立下りの両方に同期してデータ転送を行うSDRAMであるDDR−SDRAMでは、この一時中断のオーバーヘッドが大きい。
【0006】
通常のシステムでは、連続するアドレスのデータ転送を高速に行う必要があるので、アドレスの上位ビットをロウアドレス、下位ビットをカラムアドレスに割り当てる。しかし、複数のフレームメモリ領域を一組のメモリ内部に割り当て、複数のフレームメモリ領域に存在する表示データを合成する為には、複数のフレームメモリ領域をアクセスする必要がある。通常、一個のフレームメモリ領域は同一ロウアドレスに収まるほど小さくはなく、この結果、ロウアドレスの頻繁な切り替えが必要となり、メモリのデータ転送の一時中断が多発することになる。
【0007】
メモリのデータ転送速度が高速になっても、データ転送の一時中断が多発すると、実効データ転送速度が低下し、当該メモリにフレームメモリ領域を割り当てた場合には、表示に必要なデータ転送速度にメモリからのデータ転送速度が追いつかず表示が乱れる可能性がある。また、プロセッサのプログラムやデータとフレームメモリを共用している場合には、プロセッサの動作速度が低下する。このような問題を回避するには、表示の際に参照が必要となるフレームメモリ領域ごとにある程度大きなバッファメモリを用意し、フレームメモリ領域からバッファメモリへ連続したデータ転送を行う方法がある。しかし、この方法では、最低でも数百バイト程度のバッファメモリが表示の際に同時に参照が必要となるフレームメモリ領域の数だけ必要となり、表示制御システムを集積回路にする際、面積の増大を招く問題がある。
【0008】
別の問題回避方法として、特開平10−207446号公報に示された方法を用いて、メモリアクセス回数を抑制することも考えられるが、デジタル放送の5プレーンモデルのように、原則として個々のフレームメモリに格納した表示データが表示装置の画面全体の表示に対応し、かつ個々のフレームメモリに格納されている表示データ間でアルファブレンド(半透明合成)を行う場合には、あまり効果を期待できない。
【0009】
そこで、DRAM、特にSDRAMまたはDDR−SDRAM上に複数のフレームメモリ領域を用意し、表示時に複数のフレームメモリから表示データを読み出し合成する表示制御システムにおいて、前記フレームメモリ領域からデータを読み出す際に必要なバッファメモリの容量を抑えながら、プリチャージ及びロウアドレス転送によるデータ転送の中断を抑制し、効率よくフレームメモリ領域からデータ転送を行うシステムを提供するのが、この発明が解決しようとする課題である。
【0010】
【課題を解決するための手段】
表示に際して表示データを複数のフレームメモリ領域から読み出す際に、一定の順序に従って必要な表示データを持つフレームメモリ領域にアクセスする。この際に、数から数十バイト程度の単位で次のフレームメモリ領域のアクセスを行う。また、フレームメモリ領域ごとに単位時間当たりに必要なデータ量が異なる場合には、その比率と同じ比率で各フレームメモリ領域からデータを読み出す。
【0011】
フレームメモリ領域へアクセスする際には、上記に示した順序でアクセスを行った場合に、殆どの場合において同一のロウアドレスに対するアクセスになるようにアドレス変換を行う。また、このようなアドレス変換を行う為に、アドレス変換時には、それぞれのフレームメモリ領域から単位時間当たりに読み出すデータ量の比率情報を参照して、異なるアドレス変換を行う。
【0012】
【発明の実施の形態】
図1を用いて、本発明の実施の形態を説明する。システムバス101には、演算処理を行い表示データの作成等が可能なプロセッサ110、システムバス101に接続してある機能ブロックに対して大量のデータ転送を効率的に行うことが可能なダイレクトメモリアクセス制御装置120、外部機器との接続に使用する各種I/O130、表示装置へ出力する信号を生成する表示制御装置300、メモリ500の接続に必要となるメモリアクセス制御装置200が接続してある。メモリ500はDDR−SDRAMであるが、SDRAM等他のDRAMの場合も考えられる。表示専用バス102は、システムバス101に負担をかけずに表示に必要となる大量のデータをメモリ500から表示制御装置300に転送するためのバスであり、メモリアクセス制御装置200と表示制御装置300を直結している。メモリアクセス制御装置200内部には、表示データの読み出しをメモリ500から効率的に行えるよう、アドレス変換器210が存在する。表示制御装置300には2系統の表示信号を出力可能であり、表示装置A401と表示装置B402が接続してある。但し、表示制御装置300の出力は1系統の場合もあり、3系統以上の場合もありうる。
【0013】
メモリ500には、プロセッサ110が必要とするプログラムやデータ、ダイレクトメモリアクセス制御装置120の制御パラメータ、及び表示内容に対応する表示データを格納する。
【0014】
図2を用いて表示制御装置300の内部構成を説明する。表示タイミング及び表示モード制御装置310は表示制御装置300の全体の制御を行う。表示タイミング及び表示モード制御装置310はシステムバス101に接続してあり、プロセッサ110からの制御で、表示制御装置300の動作モードを変更可能である。
【0015】
FIFO−A(321、322、324、325、326)はシステムバス101または表示専用バス102から入力される表示データを一時的に蓄える。使用する入力は、表示タイミング及び表示モード制御装置310からの制御信号により選択可能である。入力としてシステムバス101を選択したFIFO−A(321、322、324、325、326)へは、ダイレクトメモリアクセス制御装置120を使用して、メモリ500に存在する表示データを転送する。入力として表示専用バス102を選択したFIFO−A(321、322、324、325、326)へは、メモリアクセス制御装置200がメモリ500に存在する表示データの転送を行う。
【0016】
FIFO−B323はシステムバス101から入力されるデータを一時的に蓄える。FIFO−B323へは、ダイレクトメモリアクセス制御装置120を使用して、メモリ500に存在する表示データを転送する。FIFO−B323はFIFO−A(321、322)に入力される2種類の表示データの選択に使用するビットマップイメージの一時的な蓄積に使用し、FIFO−A(321、322、324、325、326)の取り扱うデータ量に比べて少量のデータを取り扱うため、表示専用バス102へは接続していない。
【0017】
フォーマッタA(331、332)は表示データ1ピクセルに対応する単位でFIFO−A(321、322)からデータを取り出し、データの割り当てを行うことで、YCbCrやRGB等のコンポーネント信号に対応するデータを作成する。フォーマッタA(331、332)から出力するRGBまたはYCbCrの各コンポーネントは8ビットのデータであり、合計24ビットである。このデータ割り当て処理により、1ピクセルあたり8ビットのデータを取り込み、すべてのコンポーネント成分に同じ値を設定することや、32ビットのデータを取り込み、コンポーネント成分ごとに独立した値を設定することが可能である。また、連続する2ピクセルで同じデータを使用し、出力することで横方向の表示解像度を半分にして、表示データのデータ量を半分にすることも可能である。さらに、YCbCrフォーマットのデータが入力された場合、色信号であるCb及びCr信号だけ横方向の解像度を半分にすることで、表示データのデータ量を抑制することや、入力側データの各コンポーネント成分を5ビットまたは6ビットのデータとして取り扱い、階調変換を行うことでデータ量を抑制することも可能である。
【0018】
フォーマッタB333は1ピクセルあたり1ビットのデータをFIFO−B323より取り出し、画像選択器341に送出する。画像選択器341はフォーマッタB333から来た値が0か1かによって、フォーマッタA331またはフォーマッタA332からのデータを選択し、色変換器A351へ送る。
【0019】
色変換器A351には2種類の色変換機能がある。第1の機能はRGBからYCbCrまたはYCbCrからRGBへの色空間変換機能であり、積和演算により実現している。第2の機能はルックアップテーブルによる色変換であり、コンポーネント毎に変換テーブルを参照して、色変換を行う。変換テーブルは、1コンポーネントにつき、8ビット幅、256エントリのメモリで構成する。第1の機能と第2の機能の処理順は任意で、その順序は表示タイミング及び表示モード制御装置310からの制御信号により選択される。また、それぞれの機能を使用しないことも選択可能である。
【0020】
フォーマッタC(334、335、336)はフォーマッタA(331、332)と殆ど同じ機能を持つが、YCbCrまたはRGBコンポーネント成分に加え、半透明合成時に必要な透明度を指定するα値を取り扱うことが可能である。α値も他のコンポーネントと同じ8ビットのデータである。α値はFIFO−A(324、325、326)から取り込むことも可能であるし、一定の値とすることも可能である。また、FIFO−A(324、325、326)より取り出した8ビットの入力データをすべてのコンポーネント成分に割り当てる場合、すなわちすべてのコンポーネント成分で同じ値を使用する際には、α値にも同じ値を割り当てることが可能である。
【0021】
色変換器B(354、355、356)はルックアップテーブルによる色変換器であり、コンポーネント毎に変換テーブルを参照して、色変換を行う。変換テーブルは、1コンポーネントにつき、8ビット幅、256エントリのメモリで構成する。色変換器B(354、355、356)はα値についても変換テーブルを持つ。
【0022】
色変換器A351の出力と色変換器B354の出力は、色変換器B354から出力されるα値が使用され、αブレンド演算器364で半透明合成される。この出力と色変換器B355の出力とは、色変換器B355から出力されるα値が使用され、αブレンド演算器365で半透明合成される。さらに、この出力と色変換器B356の出力とは、色変換器B356から出力されるα値が使用され、αブレンド演算器366で半透明合成される。αブレンド演算器(364、365、366)は、YCbCrまたはRGBのコンポーネント毎に、α値に応じた比で半透明合成を行う。
【0023】
αブレンド演算器366の出力は、同期信号挿入器371で表示に必要な同期信号が加えられ、映像信号Aとして出力される。
【0024】
αブレンド演算器365の出力は、色変換器C359にも送られる。色変換器C359は色変換器Aの第1の機能と同じ機能を持ち、RGBからYCbCrまたはYCbCrからRGBへの色空間変換を行うことが可能である。また、表示タイミング及び表示モード制御装置310からの制御信号により、色空間変換を行わないことも選択可能である。色変換器359により、映像出力Aと映像出力Bで異なる色空間の信号を出力することが可能である。
【0025】
色変換器C359の出力は、同期信号挿入器372で表示に必要な同期信号が加えられ、映像信号Bとして出力される。
【0026】
同期信号挿入器371と同期信号挿入器372は同期しており、映像出力Aと映像出力Bからはピクセル値の出力間隔、水平同期及び垂直同期が一致した信号が出力される。
【0027】
αブレンド演算器(364、365、366)は、表示タイミング及び表示モード制御装置310からの制御信号により、それぞれ独立して、半透明合成を行わずに、入力信号の一方を選択して出力することも可能である。この機能により、αブレンド演算器366で色変換器B356からの信号のみを出力することで、映像出力Aと映像出力Bで異なる表示内容を出力することが可能である。
【0028】
図3を用いてメモリアクセス制御装置200の内部構成を説明する。システムバス101から入力されるメモリアクセス要求は、システムバスインタフェース220を介してメモリアクセス要求FIFO240に一時的に蓄えられる。また、メモリアクセス要求がメモリライトである場合には、メモリへ書き込むデータは書き込みデータFIFO270に一時蓄えられる。メモリアクセス要求FIFO240には、アクセス対象のアドレス情報及びリードまたはライト要求の種別、アクセスするデータのバイト数、さらにメモリリードの場合にはアクセス要求識別IDが格納される。アクセス要求識別IDはメモリからデータの読み出し完了後に、要求元に対してデータを戻す際の戻し先の識別に用いる。メモリアクセス要求FIFO240に余裕がない状態でメモリアクセス要求がきた場合、システムバスインタフェース220はメモリアクセス要求FIFO240に余裕ができるまでシステムバス101をストールする。メモリアクセス要求がメモリライトの際に書き込みデータFIFO270に余裕がない状態の場合、またはメモリアクセス要求がメモリリードの際に読み出しデータFIFO275に余裕がない状態の場合にも、同様に余裕ができるまでシステムバス101をストールする。
【0029】
メモリアクセス要求FIFO240に一時的に蓄えられた要求は、調停装置260により表示データアドレス発生器250が発生したアドレスと調停され、アドレス変換器210に送られる。アドレス変換器210による変換前アドレスを変換前メモリアドレス2201、変換後アドレスを変換後メモリアドレス2251とする。アドレス変換器210では、変換前メモリアドレス2201に応じて異なる変換を行う。
【0030】
表示データアドレス発生器250は、表示専用バス102経由で表示制御装置300に送る表示データの格納されているアドレスを発生する。アドレスを発生する際には、そのアドレスから読み出した表示データの表示制御装置300内での行き先が識別可能なようにアクセス要求識別IDも発生する。
【0031】
表示データの格納アドレスや表示データをメモリ500から読み出す順序は、プロセッサ110よりシステムバス101経由で表示データアドレス発生器250に設定する。
【0032】
調停装置260は、表示専用バスインタフェース102を利用したデータ転送機能が使用されており、表示専用データバッファ280に一度にメモリ500から読み出すデータ量以上の空きがある場合には、原則として表示データの読み出しを優先し、表示データアドレス発生器250の発生したアドレスを選択する。但し、一定期間以上表示データアドレス発生器250の発生したアドレスを選択した状態が継続し、メモリアクセス要求FIFO240にメモリアクセス要求が存在する場合には、システムバス101が完全に停止するのを防止するため、メモリアクセス要求FIFO240からのアドレスを選択する。表示専用データバッファ280に一度にメモリ500から読み出すデータ量は、バイト単位で2のべき乗とする。このデータ量は、メモリ500とメモリアクセス制御装置200が64ビットデータバスで接続してある場合、256バイト程度とするが、それ以外のこともありえる。
【0033】
アドレス変換器210で生成された変換後メモリアドレス2251はアクセス要求識別IDと共にメモリアクセスタイミング発生器290へ送られる。そして、メモリアクセスタイミング発生器290により、メモリ500のアクセスに必要な制御信号が生成される。
【0034】
メモリアクセスタイミング発生器290は、変換後メモリアドレス2251からロウアドレス2263、カラムアドレス2262、バンクアドレス2264、バイト選択信号、メモリ500を構成するメモリチップを選択するチップ選択信号を生成し、同時にメモリ500を制御するコントロール信号を生成する。この際、メモリ500にアクセスするデータ量に応じて、複数回のアクセスに相当する制御信号を発生する場合もある。また、適当な間隔でメモリ500が必要とするリフレッシュコマンドも生成する。
【0035】
メモリライトの際には、メモリアクセスタイミング発生器290に同期して、書き込みデータFIFO270から書き込みデータがメモリ500へ出力される。
【0036】
メモリリードの際には、メモリ500から読み出しデータが出力されるタイミングでメモリアクセスタイミング発生器290が読み出しデータFIFO275または表示専用読み出しデータバッファ280に指示を出し、データを取り込む。読み出しデータFIFO275と表示専用読み出しデータバッファ280のどちらにデータを取り込むかは、アクセス要求識別IDにより判断する。また、読み出しデータFIFO275または表示専用読み出しデータバッファ280がメモリ500からデータを取り込む際には、同時に対応するアクセス要求識別IDをメモリアクセスタイミング発生器290から取り込む。
【0037】
図10に、変換後メモリアドレス2251とロウアドレス2263、カラムアドレス2262、バンクアドレス2264、バイト選択2261ビット、チップ選択2265ビットの関係の例を示す。図10に示した例では、メモリ500とメモリアクセス制御装置200が64ビットデータバスで接続されており、メモリ500はDDR−SDRAMであり、メモリ500を構成するメモリチップ1個あたり、記憶容量が128Mビット、データバス幅が16ビット、バンクアドレス幅2ビット、ロウアドレス幅12ビット、カラムアドレス幅9ビットであることを想定している。実際にメモリ500へ送るバイト選択信号はバイト選択2261ビット及びメモリアクセス対象とするバイト幅により生成する。メモリ500へ送るチップ選択信号はチップ選択2265ビットをデコードして生成する。アクセスするデータ量が多く、メモリ500へ複数回のアクセスが必要な場合、バンクアドレス2264、ロウアドレス2263、カラムアドレス2262は必要に応じて1回のアクセス毎に更新する。
【0038】
読み出しデータFIFO275に格納されたデータは、システムバスインタフェース220を介してシステムバス101経由で、アクセス要求識別IDを元に順次アクセス要求元へと送出される。
【0039】
表示専用読み出しデータバッファ280に格納されたデータは、表示専用バスインタフェース230を介して表示専用バス102経由で表示制御装置300へ順次送出される。表示制御装置300内の送り先はアクセス要求識別IDを用いて決定する。
【0040】
図4を用いてメモリアクセス制御装置200内の表示データアドレス発生器250の構成を説明する。表示プレーン1アドレスカウンタ251は表示制御装置300内のFIFO−A321へ送る表示データの読み出しアドレスを保持する。表示プレーン2アドレスカウンタ252は表示制御装置300内のFIFO−A322へ送る表示データの読み出しアドレスを保持する。表示プレーン3アドレスカウンタ253は表示制御装置300内のFIFO−A324へ送る表示データの読み出しアドレスを保持する。表示プレーン4アドレスカウンタ254は表示制御装置300内のFIFO−A325へ送る表示データの読み出しアドレスを保持する。表示プレーン5アドレスカウンタ255は表示制御装置300内のFIFO−A326へ送る表示データの読み出しアドレスを保持する。それぞれのアドレスカウンタには、システムバス101からデータの開始アドレスとデータサイズを設定でき、データサイズ分のアドレスを発生した後に、開始アドレスに戻ることで、その範囲のアドレスを繰り返し発生する。アドレスカウンタの増分は、メモリ500との間のデータバス幅やメモリ500の種類、さらにメモリ500とのバースト転送単位に依存し調整する必要があるが、DDR−SDRAMに64ビットデータバスで接続し、バースト転送単位を2として取り扱う場合、16バイト分とする。但し、16バイト以外の増分であることも考えられる。データサイズを指定する際には、ある任意のサイズの1倍、2倍、4倍または8倍いずれかのサイズとなるよう全てのアドレスカウンタに指定する必要がある。通常、表示においては1ピクセルあたり必要なデータ量は表示モードにより変化するが、そのデータ量の比はある値の1倍、2倍、4倍または8倍となることが多い。したがって、画面全体について重ね合わせを行う場合、このサイズの条件を満たすことは可能である。表示制御装置がインタレース(飛び越し走査)画像を取り扱う場合、アドレスカウンタのアドレス発生パタンを走査順序にあわせて変更する必要がある。
【0041】
アドレスカウンタ選択器257はアクセス順序指定レジスタ258で指定される順序に従って、表示プレーン1アドレスカウンタ251、表示プレーン2アドレスカウンタ252、表示プレーン3アドレスカウンタ253、表示プレーン4アドレスカウンタ254または表示プレーン5アドレスカウンタ255のいずれかのアドレスを選択し調停装置260へ送る。
【0042】
アクセス順序指定レジスタ258にはシステムバス101経由でアクセス順序のリストを設定しておく。この際、短い周期で必要となるデータ量の比率と同じ割合でアドレスカウンタを選択するようなリストにする。また、なるべく選択するアドレスカウンタを分散するようにする。
【0043】
図5を用いてメモリアクセス制御装置200内のアドレス変換器210の構成を説明する。但し、ビットの割り当てはメモリ500の構成により異なり、図5はその一例を示している。
【0044】
領域判定器211は変換前メモリアドレス2201のビット20から27を参照し、ある一定の範囲に入っているか検出する。検出結果はアドレス選択器214に伝えられ、アドレス選択器214は検出結果に応じて、変換前メモリアドレス2201のビット4からビット24をそのまま選択するかローテート演算器213の出力を選択する。アドレス変換自体はローテート演算器213で行われる。
【0045】
変換方式判定器212は変換前メモリアドレス2201のビット20から24を用い、アドレス変換方法を決定する。アドレス変換方法の決定に用いる変換前メモリアドレス2201のビット20からビット24をフレームIDとする。この結果を用いてローテート演算器213はアドレス変換を行う。
【0046】
したがって、アドレス変換器210は変換前メモリアドレス2201によって異なるアドレス変換を行ったり、あるいはアドレス変換を行わなかったりすることが可能である。
【0047】
図6、図7、図8、図9はアドレス変換器210が図5に示すビット割り当てを用いる際のアドレス変換方法を示している。どのアドレス変換方法を利用するかは、該当するアドレスに格納する表示データのサイズ、すなわちフレームバッファのサイズにより決定する。本発明の実施の形態では表示する画像の表示サイズはすべての表示プレーンで同じとなるので、フレームバッファのサイズは1ピクセル当たりのデータ量に比例する。このデータ量の比を、1:2:4:8とした際、図6は1に相当するサイズの表示データを格納する領域に用いるアドレス変換、図7は2に相当するサイズの表示データを格納する領域に用いるアドレス変換、図8は4に相当するサイズの表示データを格納する領域に用いるアドレス変換、図9は8に相当するサイズの表示データを格納する領域に用いるアドレス変換を示している。
【0048】
図6に示すアドレス変換では変換前メモリアドレス2201のビット4からビット24までを5ビット左ローテートすることで変換後メモリアドレス2251を得る。図7に示すアドレス変換では変換前メモリアドレス2201のビット5からビット24までを4ビット左ローテートすることで変換後メモリアドレス2251を得る。図8に示すアドレス変換では変換前メモリアドレス2201のビット6からビット24までを3ビット左ローテートすることで変換後メモリアドレス2251を得る。図9に示すアドレス変換では変換前メモリアドレス2201のビット7からビット24までを2ビット左ローテートすることで変換後メモリアドレス2251を得る。すなわち、ローテートするビット範囲とローテート量を同時に変更する。
【0049】
図11及び図12を用い、表示データを格納するメモリ領域、すなわちフレームバッファの割り当て状態の例を示す。図11では変換前メモリアドレス2201のアドレス空間におけるメモリ領域割り当て例を示しており、図12では図11に示す例に対応する変換後メモリアドレス2251のアドレス空間におけるメモリ領域割り当て状態を示す。
【0050】
図11に示す例では、変換前メモリアドレス2201のビット27及び26が0、ビット25が1の際に、アドレス変換器210がアドレス変換を行っている。また、フレームID0(800)及びフレームID1(801)の領域では、図6に示すアドレス変換を選択、フレームID2(802)、フレームID3(803)、フレームID16(816)、及びフレームID17(817)の領域では図7に示すアドレス変換を選択、フレームID4(804)からフレームID7(807)までの領域では図8に示すアドレス変換を選択、フレームID8(808)からフレームID15(815)までの領域は図9に示すアドレス変換を選択したことを想定している。
【0051】
図11に示すように、1個以上の連続するフレームID単位の領域を組にしてフレームグループとする。図6に示すアドレス変換を行った領域は1個のフレームID単位領域で、図7に示すアドレス変換を行った領域では2個のフレームID単位領域で、図8に示すアドレス変換を行った領域では4個のフレームID単位領域で、図9に示すアドレス変換を行った領域では8個のフレームID単位領域でフレームグループを構成する。フレームグループの最初の領域に対応するフレームIDは必ずフレームグループを構成するフレームID単位領域の個数の倍数である必要がある。
【0052】
表示データを格納する領域、すなわちフレームバッファはフレームグループを単位とする。例えば、表示プレーン1、表示プレーン2、表示プレーン3、表示プレーン4、表示プレーン5の表示データ量の比率が1:4:2:2:8である場合、表示プレーン1にはフレームグループ0(900)、表示プレーン2にはフレームグループ3(930)、表示プレーン3にはフレームグループ2(920)、表示プレーン4にはフレームグループ5(950)、表示プレーン5にはフレームグループ4(940)を割り当てる。
【0053】
図11に示したフレームグループは、アドレス変換により図12に示すように変換後メモリアドレス2251空間において細かく断片化される。フレームグループ0(900)及びフレームグループ1(910)は16バイト単位に、フレームグループ2(920)及びフレームグループ5(950)は32バイト単位に、フレームグループ3(930)は64バイト単位に、フレームグループ4(940)は128バイト単位に断片化される。この結果、表示において同じタイミングで必要となるデータが、メモリ500内部の1個のロウアドレス2263で指定される領域に集まる。
【0054】
表示において同じタイミングで必要となるデータの読み出し順序は、すでに説明した表示データアドレス発生器250により制御される。したがって、表示に必要となる表示プレーン全ての表示データを一括して表示専用読み出しデータバッファ280で管理することで、表示専用読み出しデータバッファ280の容量を有効に活用して、メモリ500に連続的にアクセスを発行できる。この際、表示専用読み出しデータバッファ280の容量を抑えるためには、複数の表示プレーンに対応するデータをなるべく細かい単位で、必要となるデータ量の比率に従い、偏りなくメモリ500から読み出す必要がある。このような読み出し方法を行っても、すでに説明したアドレス変換機能を用いることで、ロウアドレス2263の変化を抑えられるので、メモリ500アクセス時にロウアドレス2263を指定する頻度を抑制でき、メモリ500に効率よくアクセス可能である。
【0055】
【発明の効果】
以上説明したように、本発明により複数の表示プレーンの表示データを参照、合成して表示を行う表示システムで、メモリにSDRAMやDDR−SDRAM等のロウアドレスとカラムアドレスの指定が別々に必要なメモリを使用した場合において、メモリから読み出した表示データを一時蓄えるバッファの容量を抑制しながら、メモリに効率的にアクセスすることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るブロック図である。
【図2】表示制御装置の内部構成を示すブロック図である。
【図3】メモリアクセス制御装置の内部構成を示すブロック図である。
【図4】メモリアクセス制御装置内の表示データアドレス発生器の内部構成を示すブロック図である。
【図5】メモリアクセス制御装置内のアドレス変換器の構成を示すブロック図である。
【図6】メモリアクセス制御装置内のアドレス変換器の第1のアドレス変換方法を示す図である。
【図7】メモリアクセス制御装置内のアドレス変換器の第2のアドレス変換方法を示す図である。
【図8】メモリアクセス制御装置内のアドレス変換器の第3のアドレス変換方法を示す図である。
【図9】メモリアクセス制御装置内のアドレス変換器の第4のアドレス変換方法を示す図である。
【図10】変換後メモリアドレスとメモリアクセス時に必要となるアドレスの関係の例を示す図である。
【図11】変換前メモリアドレスによるアドレス空間においてフレームメモリ領域の割り当て例を示す図である。
【図12】図11に示したフレームメモリ領域の割り当て例に対応する、変換後メモリアドレスによるアドレス空間におけるフレームメモリ領域の割り当て状態を示す図である。
【符号の説明】
101…システムバス、102…表示専用バス、110…プロセッサ、120…ダイレクトメモリアクセス制御装置、130…各種I/O、200…メモリアクセス制御装置、210…アドレス変換器、211…領域判定器、212…変換方式判定器、213…ローテート演算器、214…アドレス選択器、220…システムバスインタフェース、230…表示専用バスインタフェース、240…メモリアクセス要求FIFO、250…表示データアドレス発生器、251…表示プレーン1アドレスカウンタ、252…表示プレーン2アドレスカウンタ、253…表示プレーン3アドレスカウンタ、254…表示プレーン4アドレスカウンタ、255…表示プレーン5アドレスカウンタ、257…アドレスカウンタ選択器、258…アクセス順序指定レジスタ、260…調停装置、270…書き込みデータFIFO、275…読み出しデータFIFO、280…表示専用読み出しデータバッファ、290…メモリアクセスタイミング発生器、300…表示制御装置、310…表示タイミング及び表示モード制御装置、321、322、324、325、326…FIFO−A、323…FIFO−B、331、332…フォーマッタA、333…フォーマッタB、334、335、336…フォーマッタC、341…画像選択器、351…色変換器A、354、355、356…色変換器B、359…色変換器C、364、365、366…αブレンド演算器、371、372…同期信号挿入器、401…表示装置A、402…表示装置B、500…メモリ、800…フレームID0に対応するメモリ領域、801…フレームID1に対応するメモリ領域、802…フレームID2に対応するメモリ領域、803…フレームID3に対応するメモリ領域、804…フレームID4に対応するメモリ領域、805…フレームID5に対応するメモリ領域、806…フレームID6に対応するメモリ領域、807…フレームID7に対応するメモリ領域、808…フレームID8に対応するメモリ領域、809…フレームID9に対応するメモリ領域、810…フレームID10に対応するメモリ領域、811…フレームID11に対応するメモリ領域、812…フレームID12に対応するメモリ領域、813…フレームID13に対応するメモリ領域、814…フレームID14に対応するメモリ領域、815…フレームID15に対応するメモリ領域、816…フレームID16に対応するメモリ領域、817…フレームID17に対応するメモリ領域、900…フレームグループ0に対応するメモリ領域、901…フレームグループ0に対応するメモリ領域の第1の断片領域、902…フレームグループ0に対応するメモリ領域の第2の断片領域、910…フレームグループ1に対応するメモリ領域、911…フレームグループ1に対応するメモリ領域の第1の断片領域、912…フレームグループ1に対応するメモリ領域の第2の断片領域、920…フレームグループ2に対応するメモリ領域、921…フレームグループ2に対応するメモリ領域の第1の断片領域、922…フレームグループ2に対応するメモリ領域の第2の断片領域、930…フレームグループ3に対応するメモリ領域、931…フレームグループ3に対応するメモリ領域の第1の断片領域、940…フレームグループ4に対応するメモリ領域、941…フレームグループ4に対応するメモリ領域の第1の断片領域、950…フレームグループ5に対応するメモリ領域、951…フレームグループ5に対応するメモリ領域の第1の断片領域、2201…変換前メモリアドレス、2251…変換後メモリアドレス、2261…バイト選択ビット、2262…カラムアドレスビット、2263…ロウアドレスビット、2264…バンクアドレスビット、2265…チップ選択ビット。
Claims (5)
- メモリに割り当てた複数のフレームメモリ領域に格納してある表示データを参照し、映像信号を生成する表示制御システムで、前記メモリにアドレスを複数回に分けて指定するメモリを使用し、前記メモリがアドレスを複数回に分けて指定する際に一定の条件を満たす場合にはアドレスの一部の指定を省略することが可能であるメモリを使用するシステムにおいて、前記メモリにアクセスする際にアドレスを変換し、前記メモリのアクセスを行うことを特徴とする表示システム。
- 複数のフレームメモリ領域に格納してある表示データを参照し、前記参照した表示データに対応する表示内容を重ね合わせた映像信号を生成する請求項1記載のシステム。
- 表示内容を重ね合わせた映像信号を生成する際に、前記表示内容を半透明合成する請求項2記載のシステム。
- 複数のフレームメモリ領域に格納してある表示データを参照し、それぞれの前記表示データを独立した映像信号として同時に出力する請求項1記載のシステム。
- アドレス変換を行う際に、表示データの1ピクセルあたりの平均データ量に応じて前記アドレス変換方法を変更する請求項1、請求項2、請求項3、または請求項4記載のシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003107194A JP2004317536A (ja) | 2003-04-11 | 2003-04-11 | 表示制御システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003107194A JP2004317536A (ja) | 2003-04-11 | 2003-04-11 | 表示制御システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004317536A true JP2004317536A (ja) | 2004-11-11 |
Family
ID=33469088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003107194A Pending JP2004317536A (ja) | 2003-04-11 | 2003-04-11 | 表示制御システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004317536A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006330700A (ja) * | 2005-04-28 | 2006-12-07 | Semiconductor Energy Lab Co Ltd | 画像出力装置及びその動作方法 |
| JP2010020500A (ja) * | 2008-07-09 | 2010-01-28 | Oki Joho Systems:Kk | メモリ制御装置 |
| JP2010044515A (ja) * | 2008-08-11 | 2010-02-25 | Seiko Epson Corp | 信号処理プロセッサ及び半導体装置 |
-
2003
- 2003-04-11 JP JP2003107194A patent/JP2004317536A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006330700A (ja) * | 2005-04-28 | 2006-12-07 | Semiconductor Energy Lab Co Ltd | 画像出力装置及びその動作方法 |
| JP2010020500A (ja) * | 2008-07-09 | 2010-01-28 | Oki Joho Systems:Kk | メモリ制御装置 |
| JP2010044515A (ja) * | 2008-08-11 | 2010-02-25 | Seiko Epson Corp | 信号処理プロセッサ及び半導体装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1741089B1 (en) | Gpu rendering to system memory | |
| EP0318259B1 (en) | Software configurable memory architecture for data processing system having graphics capability | |
| JP3732593B2 (ja) | 画像処理装置 | |
| US5959639A (en) | Computer graphics apparatus utilizing cache memory | |
| US5025249A (en) | Pixel lookup in multiple variably-sized hardware virtual colormaps in a computer video graphics system | |
| US6956579B1 (en) | Private addressing in a multi-processor graphics processing system | |
| JP3350043B2 (ja) | 図形処理装置及び図形処理方法 | |
| US5345552A (en) | Control for computer windowing display | |
| US6911983B2 (en) | Double-buffering of pixel data using copy-on-write semantics | |
| US6094193A (en) | Display controller | |
| US5251298A (en) | Method and apparatus for auxiliary pixel color management using monomap addresses which map to color pixel addresses | |
| US5216413A (en) | Apparatus and method for specifying windows with priority ordered rectangles in a computer video graphics system | |
| US4782462A (en) | Raster scan video controller with programmable prioritized sharing of display memory between update and display processes and programmable memory access termination | |
| EP0182454B1 (en) | Video system controller with a row address override circuit | |
| US6927776B2 (en) | Data transfer device and method | |
| JPH05189549A (ja) | マルチプロセッサによる画像データ処理装置 | |
| EP0752694B1 (en) | Method for quickly painting and copying shallow pixels on a deep frame buffer | |
| EP0579402A1 (en) | Nubus dual display card | |
| US4591845A (en) | Character and graphic signal generating apparatus | |
| JP2004317536A (ja) | 表示制御システム | |
| JPH1069548A (ja) | コンピュータ・グラフィックス・システム | |
| US20160048330A1 (en) | Command processing apparatus, method and integrated circuit apparatus | |
| JPS58136093A (ja) | 表示制御装置 | |
| JPH07129460A (ja) | 画像処理方法及びその装置 | |
| JPH0896112A (ja) | 画像データ処理装置およびそれを用いた情報システム |