JP2004317536A - Display control system - Google Patents

Display control system Download PDF

Info

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
Application number
JP2003107194A
Other languages
Japanese (ja)
Inventor
Keimei Nakada
啓明 中田
Koji Hosoki
浩二 細木
Kazuhiko Tanaka
和彦 田中
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003107194A priority Critical patent/JP2004317536A/en
Publication of JP2004317536A publication Critical patent/JP2004317536A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently access a memory by suppressing the storage capacity of a buffer for temporarily storing display data read out of the memory. <P>SOLUTION: When gaining access to a plurality of frame memory areas, display data is read out of each frame memory area according to prescribed order in the unit of small amount of display data. At this time, the order is specified so that the data amount proportional to the average data amount required for each one pixel of the display data stored in the frame memory may be read from each frame memory area. Also, when gaining access to the memory in such order, address conversion is performed before accessing the memory so that specifying of row address can be omitted. <P>COPYRIGHT: (C)2005,JPO&NCIPI

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…チップ選択ビット。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a system for displaying display data stored in a memory in a computer device and an application device thereof.
[0002]
[Prior art]
There are systems that simultaneously display a plurality of display data. For example, Japanese Patent Application Laid-Open No. Hei 6-149527 discloses a method of simultaneously displaying display data existing in a plurality of frame memories using a multi-window system. Also, Japanese Patent Application Laid-Open No. Hei 10-207446 discloses an apparatus that reduces a memory space for storing display data necessary for realizing a multi-window system and suppresses the number of memory accesses for display.
[0003]
[Patent Document 1]
JP-A-6-149527
[Patent Document 2]
JP-A-10-207446
[0004]
[Problems to be solved by the invention]
As a result of an increase in the data transfer speed of the memory and an increase in the storage capacity, it has become possible to allocate a plurality of frame memory areas for storing display data required to be simultaneously displayed in a set of memories. Also, it is possible to share a memory that allocates the frame memory area with a program that is executed by a processor that generates display data to be stored in a frame memory and a memory that stores data required by the processor. Was.
[0005]
As a memory used for a frame memory or a main storage device of a processor, a DRAM, which is a semiconductor memory capable of high integration, particularly a synchronous DRAM (hereinafter, SDRAM) is used. However, in a DRAM, it is necessary to specify a row address and a column address as an address. If the row address does not change, data can be transferred continuously, but if the row address changes, the precharge and row There is a problem that the address must be reset and the data transfer is temporarily interrupted. In particular, in a DDR-SDRAM which is an SDRAM that performs data transfer in synchronization with both rising and falling of a clock, the overhead of this temporary interruption is large.
[0006]
In a normal system, since it is necessary to transfer data of consecutive addresses at high speed, the upper bits of the address are assigned to a row address and the lower bits are assigned to a column address. However, in order to allocate a plurality of frame memory areas inside a set of memories and combine display data existing in the plurality of frame memory areas, it is necessary to access the plurality of frame memory areas. Usually, one frame memory area is not small enough to fit in the same row address. As a result, frequent switching of row addresses is required, and temporary interruption of memory data transfer occurs frequently.
[0007]
Even if the data transfer speed of the memory is increased, if the data transfer is interrupted frequently, the effective data transfer speed will decrease.If a frame memory area is allocated to the memory, the data transfer speed required for display will be reduced. The display may be disturbed because the data transfer speed from the memory cannot keep up. When the frame memory is shared with the program and data of the processor, the operating speed of the processor is reduced. In order to avoid such a problem, there is a method in which a buffer memory having a certain size is prepared for each frame memory area which needs to be referred to at the time of display, and data is continuously transferred from the frame memory area to the buffer memory. However, in this method, a buffer memory of at least several hundred bytes is required as many as the number of frame memory areas that need to be simultaneously referred to at the time of display, and the area increases when an integrated circuit is used as the display control system. There's a problem.
[0008]
As another method of avoiding the problem, it is conceivable to suppress the number of memory accesses by using the method disclosed in Japanese Patent Application Laid-Open No. H10-207446. When the display data stored in the memory corresponds to the display of the entire screen of the display device and alpha blending (semi-transparent composition) is performed between the display data stored in the individual frame memories, little effect is expected. .
[0009]
Therefore, in a display control system that prepares a plurality of frame memory areas on a DRAM, especially an SDRAM or a DDR-SDRAM, and reads and combines display data from a plurality of frame memories during display, it is necessary to read data from the frame memory area. The problem to be solved by the present invention is to provide a system for efficiently transferring data from the frame memory area while suppressing interruption of data transfer due to precharge and row address transfer while suppressing the capacity of the buffer memory. is there.
[0010]
[Means for Solving the Problems]
When display data is read from a plurality of frame memory areas during display, a frame memory area having necessary display data is accessed in a certain order. At this time, the next frame memory area is accessed in units of several to several tens of bytes. If the required data amount per unit time differs for each frame memory area, data is read from each frame memory area at the same ratio.
[0011]
When accessing the frame memory area, if the access is performed in the above-described order, the address conversion is performed so that the access is made to the same row address in most cases. In order to perform such address conversion, at the time of address conversion, different address conversion is performed with reference to the ratio information of the amount of data read per unit time from each frame memory area.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
An embodiment of the present invention will be described with reference to FIG. The system bus 101 includes a processor 110 capable of performing arithmetic processing and generating display data, and a direct memory access capable of efficiently transferring a large amount of data to functional blocks connected to the system bus 101. A control device 120, various I / Os 130 used for connection to an external device, a display control device 300 for generating a signal to be output to a display device, and a memory access control device 200 necessary for connection to the memory 500 are connected. The memory 500 is a DDR-SDRAM, but may be another DRAM such as an SDRAM. The display-only bus 102 is a bus for transferring a large amount of data necessary for display from the memory 500 to the display control device 300 without burdening the system bus 101, and includes a memory access control device 200 and a display control device 300. Is directly connected. An address converter 210 exists inside the memory access control device 200 so that display data can be read from the memory 500 efficiently. The display control device 300 can output two types of display signals, and a display device A401 and a display device B402 are connected. However, the output of the display control device 300 may be one system, or may be three or more systems.
[0013]
The memory 500 stores programs and data required by the processor 110, control parameters of the direct memory access control device 120, and display data corresponding to display contents.
[0014]
The internal configuration of the display control device 300 will be described with reference to FIG. The display timing and display mode control device 310 controls the entire display control device 300. The display timing and display mode control device 310 is connected to the system bus 101, and can change the operation mode of the display control device 300 under the control of the processor 110.
[0015]
The FIFO-A (321, 322, 324, 325, 326) temporarily stores display data input from the system bus 101 or the display-only bus 102. The input to be used can be selected by a display timing and a control signal from the display mode control device 310. The display data existing in the memory 500 is transferred to the FIFO-A (321, 322, 324, 325, 326) that has selected the system bus 101 as an input, using the direct memory access control device 120. The memory access control device 200 transfers display data existing in the memory 500 to the FIFO-A (321, 322, 324, 325, 326) that has selected the display-only bus 102 as an input.
[0016]
The FIFO-B 323 temporarily stores data input from the system bus 101. The display data existing in the memory 500 is transferred to the FIFO-B 323 by using the direct memory access control device 120. The FIFO-B 323 is used for temporarily storing bitmap images used for selecting two types of display data input to the FIFO-A (321, 322), and is used for the FIFO-A (321, 322, 324, 325, 325). Since a small amount of data is handled compared to the data amount handled in 326), the display dedicated bus 102 is not connected.
[0017]
The formatter A (331, 332) extracts data from the FIFO-A (321, 322) in units corresponding to one pixel of display data, and allocates data, thereby converting data corresponding to component signals such as YCbCr and RGB. create. Each component of RGB or YCbCr output from the formatter A (331, 332) is 8-bit data, and has a total of 24 bits. By this data allocation process, it is possible to capture 8-bit data per pixel and set the same value for all component components, or capture 32-bit data and set independent values for each component component. is there. It is also possible to halve the display resolution in the horizontal direction and halve the data amount of the display data by using the same data for two consecutive pixels and outputting the same data. Further, when data in the YCbCr format is input, the resolution in the horizontal direction is reduced by half only for the Cb and Cr signals, which are color signals, so that the data amount of display data can be suppressed. Can be treated as 5-bit or 6-bit data, and the data amount can be suppressed by performing gradation conversion.
[0018]
The formatter B333 extracts 1-bit data per pixel from the FIFO-B323 and sends it to the image selector 341. The image selector 341 selects data from the formatter A 331 or A 332 depending on whether the value from the formatter B 333 is 0 or 1, and sends the data to the color converter A 351.
[0019]
The color converter A351 has two types of color conversion functions. The first function is a color space conversion function from RGB to YCbCr or YCbCr to RGB, and is realized by a product-sum operation. The second function is color conversion using a look-up table, and performs color conversion with reference to the conversion table for each component. The conversion table is composed of a memory having an 8-bit width and 256 entries per component. The processing order of the first function and the second function is arbitrary, and the order is selected by a display timing and a control signal from the display mode control device 310. It is also possible to select not to use each function.
[0020]
The formatter C (334, 335, 336) has almost the same function as the formatter A (331, 332), but can handle the alpha value specifying the transparency required for translucent composition in addition to the YCbCr or RGB component components. It is. The α value is also the same 8-bit data as other components. The α value can be taken from the FIFO-A (324, 325, 326), or can be a constant value. When 8-bit input data extracted from the FIFO-A (324, 325, 326) is assigned to all component components, that is, when the same value is used for all component components, the same value is used for the α value. It is possible to assign
[0021]
The color converter B (354, 355, 356) is a color converter based on a lookup table, and performs color conversion by referring to the conversion table for each component. The conversion table is composed of a memory having an 8-bit width and 256 entries per component. The color converter B (354, 355, 356) also has a conversion table for α values.
[0022]
As the output of the color converter A 351 and the output of the color converter B 354, the α value output from the color converter B 354 is used, and the α blend calculator 364 performs translucent synthesis. As this output and the output of the color converter B355, the α value output from the color converter B355 is used, and the α blend calculator 365 performs translucent synthesis. Further, as this output and the output of the color converter B 356, the α value output from the color converter B 356 is used, and the α blend calculator 366 performs translucent synthesis. The α blend calculators (364, 365, 366) perform translucent synthesis at a ratio according to the α value for each of YCbCr or RGB components.
[0023]
The output of the α blend calculator 366 is added with a synchronization signal necessary for display by a synchronization signal inserter 371 and output as a video signal A.
[0024]
The output of the α blend calculator 365 is also sent to the color converter C359. The color converter C359 has the same function as the first function of the color converter A, and can perform color space conversion from RGB to YCbCr or from YCbCr to RGB. It is also possible to select not to perform color space conversion by a display timing and a control signal from the display mode control device 310. The color converter 359 can output signals in different color spaces for the video output A and the video output B.
[0025]
The output of the color converter C359 is added with a synchronization signal required for display by the synchronization signal inserter 372, and is output as a video signal B.
[0026]
The synchronizing signal inserter 371 and the synchronizing signal inserter 372 are synchronized, and the video output A and the video output B output a signal in which the pixel value output interval, horizontal synchronization, and vertical synchronization match.
[0027]
The α blending calculators (364, 365, 366) independently select one of the input signals without performing translucent synthesis and output the same according to the control signal from the display timing and the display mode control device 310. It is also possible. With this function, by outputting only the signal from the color converter B 356 by the α blend calculator 366, it is possible to output different display contents between the video output A and the video output B.
[0028]
The internal configuration of the memory access control device 200 will be described with reference to FIG. The memory access request input from the system bus 101 is temporarily stored in the memory access request FIFO 240 via the system bus interface 220. If the memory access request is a memory write, the data to be written to the memory is temporarily stored in the write data FIFO 270. The memory access request FIFO 240 stores address information to be accessed, the type of read or write request, the number of bytes of data to be accessed, and an access request identification ID in the case of a memory read. The access request identification ID is used to identify a return destination when returning data to the request source after reading of data from the memory is completed. When a memory access request is received while the memory access request FIFO 240 has no room, the system bus interface 220 stalls the system bus 101 until the memory access request FIFO 240 has room. In the case where the memory access request has a margin in the write data FIFO 270 when the memory is written, or in the case where the memory access request has a margin in the read data FIFO 275 when the memory is read, the system is similarly operated until the margin is made. Stall the bus 101.
[0029]
The request temporarily stored in the memory access request FIFO 240 is arbitrated by the arbitration device 260 with the address generated by the display data address generator 250 and sent to the address converter 210. The address before conversion by the address converter 210 is a memory address before conversion 2201, and the address after conversion is a memory address after conversion 2251. The address converter 210 performs different conversion according to the pre-conversion memory address 2201.
[0030]
The display data address generator 250 generates an address where display data to be sent to the display control device 300 via the display-only bus 102 is stored. When an address is generated, an access request identification ID is also generated so that the destination of the display data read from the address in the display control device 300 can be identified.
[0031]
The storage address of the display data and the order of reading the display data from the memory 500 are set by the processor 110 in the display data address generator 250 via the system bus 101.
[0032]
The arbitrating device 260 uses a data transfer function using the display-only bus interface 102. If the display-only data buffer 280 has a space larger than the amount of data to be read from the memory 500 at one time, the arbitration device 260 basically stores the display data. Reading is prioritized, and the address generated by the display data address generator 250 is selected. However, when a state in which the address generated by the display data address generator 250 is continued for a certain period or more and a memory access request exists in the memory access request FIFO 240, the system bus 101 is prevented from being completely stopped. Therefore, the address from the memory access request FIFO 240 is selected. The amount of data read from the memory 500 to the display-only data buffer 280 at a time is a power of 2 in byte units. This data amount is about 256 bytes when the memory 500 and the memory access control device 200 are connected by a 64-bit data bus, but other values are also possible.
[0033]
The converted memory address 2251 generated by the address converter 210 is sent to the memory access timing generator 290 together with the access request identification ID. Then, a control signal necessary for accessing the memory 500 is generated by the memory access timing generator 290.
[0034]
The memory access timing generator 290 generates a row address 2263, a column address 2262, a bank address 2264, a byte selection signal, and a chip selection signal for selecting a memory chip constituting the memory 500 from the converted memory address 2251, and at the same time, Generate a control signal to control At this time, a control signal corresponding to a plurality of accesses may be generated according to the amount of data to access the memory 500. It also generates refresh commands required by the memory 500 at appropriate intervals.
[0035]
At the time of memory write, write data is output from the write data FIFO 270 to the memory 500 in synchronization with the memory access timing generator 290.
[0036]
At the time of memory reading, the memory access timing generator 290 issues an instruction to the read data FIFO 275 or the display-only read data buffer 280 at the timing when the read data is output from the memory 500, and fetches the data. Which of the read data FIFO 275 and the display-only read data buffer 280 is to be loaded with data is determined by the access request identification ID. When the read data FIFO 275 or the read-only read data buffer 280 fetches data from the memory 500, the corresponding access request identification ID is fetched from the memory access timing generator 290 at the same time.
[0037]
FIG. 10 shows an example of the relationship between the converted memory address 2251 and the row address 2263, the column address 2262, the bank address 2264, the byte selection 2261 bits, and the chip selection 2265 bits. In the example shown in FIG. 10, the memory 500 and the memory access control device 200 are connected by a 64-bit data bus, and the memory 500 is a DDR-SDRAM. It is assumed that 128 M bits, the data bus width is 16 bits, the bank address width is 2 bits, the row address width is 12 bits, and the column address width is 9 bits. The byte selection signal actually sent to the memory 500 is generated based on the byte selection 2261 bits and the byte width to be accessed. The chip select signal to be sent to the memory 500 is generated by decoding the chip select 2265 bits. When the amount of data to be accessed is large and a plurality of accesses to the memory 500 are required, the bank address 2264, the row address 2263, and the column address 2262 are updated for each access as needed.
[0038]
The data stored in the read data FIFO 275 is sequentially transmitted to the access request source based on the access request identification ID via the system bus 101 via the system bus interface 220.
[0039]
The data stored in the display-only read data buffer 280 is sequentially transmitted to the display control device 300 via the display-only bus 102 via the display-only bus interface 230. The destination in the display control device 300 is determined using the access request identification ID.
[0040]
The configuration of the display data address generator 250 in the memory access control device 200 will be described with reference to FIG. The display plane 1 address counter 251 holds a read address of display data to be sent to the FIFO-A 321 in the display control device 300. The display plane 2 address counter 252 holds a read address of display data to be sent to the FIFO-A 322 in the display control device 300. The display plane 3 address counter 253 holds a read address of display data to be sent to the FIFO-A 324 in the display control device 300. The display plane 4 address counter 254 holds a read address of display data to be sent to the FIFO-A 325 in the display control device 300. The display plane 5 address counter 255 holds a read address of display data to be sent to the FIFO-A 326 in the display control device 300. In each address counter, a data start address and a data size can be set from the system bus 101. After an address corresponding to the data size is generated, returning to the start address repeatedly generates an address in the range. The increment of the address counter needs to be adjusted depending on the data bus width with the memory 500, the type of the memory 500, and the unit of burst transfer with the memory 500. When the burst transfer unit is handled as 2, it is 16 bytes. However, the increment may be other than 16 bytes. When specifying the data size, it is necessary to specify all the address counters so as to be one, two, four, or eight times the size of an arbitrary size. Normally, in display, the amount of data required per pixel changes depending on the display mode, but the ratio of the amount of data often becomes 1, 2, 4, or 8 times a certain value. Therefore, when superimposing the entire screen, it is possible to satisfy the condition of this size. When the display control device handles an interlaced (interlaced scan) image, it is necessary to change the address generation pattern of the address counter in accordance with the scanning order.
[0041]
According to the order specified by the access order specifying register 258, the address counter selector 257 displays the display plane 1 address counter 251, the display plane 2 address counter 252, the display plane 3 address counter 253, the display plane 4 address counter 254, or the display plane 5 address. One of the addresses of the counter 255 is selected and sent to the arbitration device 260.
[0042]
An access order list is set in the access order designation register 258 via the system bus 101. At this time, the list is selected so that the address counter is selected at the same ratio as the ratio of the data amount required in a short cycle. Further, address counters to be selected are distributed as much as possible.
[0043]
The configuration of the address converter 210 in the memory access control device 200 will be described with reference to FIG. However, the assignment of bits differs depending on the configuration of the memory 500, and FIG. 5 shows an example thereof.
[0044]
The area determiner 211 refers to bits 20 to 27 of the pre-conversion memory address 2201 and detects whether the address falls within a certain range. The detection result is transmitted to the address selector 214, and the address selector 214 selects the bits 4 to 24 of the pre-conversion memory address 2201 as they are or selects the output of the rotate operation unit 213 according to the detection result. The address conversion itself is performed by the rotate operation unit 213.
[0045]
The conversion method determiner 212 determines an address conversion method using bits 20 to 24 of the pre-conversion memory address 2201. Bits 20 to 24 of the pre-conversion memory address 2201 used for determining the address conversion method are used as a frame ID. Using this result, the rotate operation unit 213 performs address conversion.
[0046]
Therefore, the address converter 210 can perform different address conversion depending on the pre-conversion memory address 2201, or can perform no address conversion.
[0047]
FIGS. 6, 7, 8 and 9 show an address conversion method when the address converter 210 uses the bit assignment shown in FIG. Which address conversion method is used is determined by the size of the display data stored at the corresponding address, that is, the size of the frame buffer. In the embodiment of the present invention, the display size of an image to be displayed is the same for all display planes, so the size of the frame buffer is proportional to the amount of data per pixel. Assuming that the data amount ratio is 1: 2: 4: 8, FIG. 6 shows an address conversion used for an area for storing display data of a size corresponding to 1, and FIG. FIG. 8 shows an address conversion used for an area for storing display data having a size corresponding to 4, and FIG. 9 shows an address conversion used for an area for storing display data having a size corresponding to 8. I have.
[0048]
In the address conversion shown in FIG. 6, the post-conversion memory address 2251 is obtained by rotating the bits 4 to 24 of the pre-conversion memory address 2201 left by 5 bits. In the address conversion shown in FIG. 7, the post-conversion memory address 2251 is obtained by rotating the bits 5 to 24 of the pre-conversion memory address 2201 by 4 bits to the left. In the address conversion shown in FIG. 8, the post-conversion memory address 2251 is obtained by rotating left from bit 6 to bit 24 of the pre-conversion memory address 2201 by 3 bits. In the address conversion shown in FIG. 9, the post-conversion memory address 2251 is obtained by rotating left by two bits from bit 7 to bit 24 of the pre-conversion memory address 2201. That is, the bit range to be rotated and the rotation amount are simultaneously changed.
[0049]
FIGS. 11 and 12 show an example of a memory area for storing display data, that is, an example of a frame buffer allocation state. FIG. 11 shows an example of memory area allocation in the address space of the pre-conversion memory address 2201, and FIG. 12 shows the state of memory area allocation in the address space of the post-conversion memory address 2251 corresponding to the example shown in FIG.
[0050]
In the example shown in FIG. 11, when bits 27 and 26 of the pre-conversion memory address 2201 are 0 and bit 25 is 1, the address converter 210 performs the address conversion. In the area of frame ID 0 (800) and frame ID 1 (801), the address conversion shown in FIG. 6 is selected, and frame ID 2 (802), frame ID 3 (803), frame ID 16 (816), and frame ID 17 (817) 7, the address conversion shown in FIG. 7 is selected. In the area from frame ID 4 (804) to frame ID 7 (807), the address conversion shown in FIG. 8 is selected. The area from frame ID 8 (808) to frame ID 15 (815) is selected. Assumes that the address translation shown in FIG. 9 has been selected.
[0051]
As shown in FIG. 11, one or more continuous frame ID units are grouped into a frame group. The area where the address conversion shown in FIG. 6 is performed is one frame ID unit area, and the area where the address conversion is performed shown in FIG. 7 is two frame ID unit areas and the area where the address conversion shown in FIG. 8 is performed. In FIG. 9, a frame group is composed of four frame ID unit areas, and eight frame ID unit areas are formed in the area subjected to the address conversion shown in FIG. The frame ID corresponding to the first area of the frame group must be a multiple of the number of frame ID unit areas constituting the frame group.
[0052]
The area for storing the display data, that is, the frame buffer is in units of frame groups. For example, when the display data amount ratio of the display plane 1, the display plane 2, the display plane 3, the display plane 4, and the display plane 5 is 1: 4: 2: 2: 8, the frame group 0 ( 900), frame group 3 (930) for display plane 2, frame group 2 (920) for display plane 3, frame group 5 (950) for display plane 4, and frame group 4 (940) for display plane 5. Assign.
[0053]
The frame group shown in FIG. 11 is finely fragmented in the converted memory address 2251 space by the address conversion as shown in FIG. Frame group 0 (900) and frame group 1 (910) are in units of 16 bytes, frame group 2 (920) and frame group 5 (950) are in units of 32 bytes, frame group 3 (930) in units of 64 bytes, Frame group 4 (940) is fragmented in units of 128 bytes. As a result, data necessary for display at the same timing is collected in an area designated by one row address 2263 in the memory 500.
[0054]
The reading order of data required at the same timing in display is controlled by the display data address generator 250 described above. Therefore, by managing the display data of all the display planes necessary for display collectively in the display-only read data buffer 280, the capacity of the display-only read data buffer 280 is effectively utilized, and the display data is continuously stored in the memory 500. Can issue access. At this time, in order to reduce the capacity of the display-dedicated read data buffer 280, it is necessary to read data corresponding to a plurality of display planes from the memory 500 in as small units as possible according to the required data amount ratio. Even if such a reading method is performed, a change in the row address 2263 can be suppressed by using the address conversion function described above, so that the frequency of specifying the row address 2263 at the time of accessing the memory 500 can be suppressed, and the efficiency of the memory 500 can be reduced. Well accessible.
[0055]
【The invention's effect】
As described above, according to the present invention, in a display system in which display is performed by referring to and synthesizing display data of a plurality of display planes, it is necessary to separately specify a row address and a column address of an SDRAM or DDR-SDRAM in a memory. When a memory is used, it is possible to efficiently access the memory while suppressing the capacity of a buffer that temporarily stores display data read from the memory.
[Brief description of the drawings]
FIG. 1 is a block diagram according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating an internal configuration of a display control device.
FIG. 3 is a block diagram showing an internal configuration of a memory access control device.
FIG. 4 is a block diagram showing an internal configuration of a display data address generator in the memory access control device.
FIG. 5 is a block diagram showing a configuration of an address converter in the memory access control device.
FIG. 6 is a diagram illustrating a first address translation method of an address translator in a memory access control device.
FIG. 7 is a diagram illustrating a second address translation method of the address translator in the memory access control device.
FIG. 8 is a diagram showing a third address translation method of the address translator in the memory access control device.
FIG. 9 is a diagram showing a fourth address translation method of the address translator in the memory access control device.
FIG. 10 is a diagram illustrating an example of a relationship between a converted memory address and an address required at the time of memory access.
FIG. 11 is a diagram showing an example of allocating a frame memory area in an address space based on a pre-conversion memory address.
12 is a diagram illustrating an allocation state of a frame memory area in an address space based on a converted memory address, corresponding to the example of allocation of a frame memory area illustrated in FIG. 11;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 101 ... System bus, 102 ... Display only bus, 110 ... Processor, 120 ... Direct memory access control device, 130 ... Various I / O, 200 ... Memory access control device, 210 ... Address converter, 211 ... Area judgment device, 212 ... Conversion method determiner, 213 rotate operator, 214 address selector, 220 system bus interface, 230 display-only bus interface, 240 memory access request FIFO, 250 display data address generator, 251 display plane 1 address counter, 252 display plane 2 address counter, 253 display plane 3 address counter, 254 display plane 4 address counter, 255 display plane 5 address counter, 257 address counter selector, 258 access Order designation register, 260 arbitration device, 270 write data FIFO, 275 read data FIFO, 280 display-only read data buffer, 290 memory access timing generator, 300 display control device, 310 display timing and display mode Control devices, 321, 322, 324, 325, 326: FIFO-A, 323: FIFO-B, 331, 332: Formatter A, 333: Formatter B, 334, 335, 336: Formatter C, 341: Image selector 351: Color converter A, 354, 355, 356: Color converter B, 359: Color converter C, 364, 365, 366: α blending calculator, 371, 372: Synchronous signal inserter, 401: Display device A , 402: display device B, 500: memory, 800: frame ID0 , A memory area corresponding to frame ID1, 802, a memory area corresponding to frame ID2, 803, a memory area corresponding to frame ID3, 804, a memory area corresponding to frame ID4, 805, frame ID5 , Memory area corresponding to frame ID6, 807 memory area corresponding to frame ID7, 808 memory area corresponding to frame ID8, 809 memory area corresponding to frame ID9, 810 frame ID10 , Memory area corresponding to frame ID 11, 812 memory area corresponding to frame ID 12, 813 memory area corresponding to frame ID 13, 814 memory area corresponding to frame ID 14, 815 frame I 15, 816: memory area corresponding to frame ID 16, 817: memory area corresponding to frame ID 17, 900: memory area corresponding to frame group 0, 901: memory area corresponding to frame group 0 1, a second fragment area of a memory area corresponding to frame group 0, 910 a second fragment area of a memory area corresponding to frame group 1, 911 a first fragment area of a memory area corresponding to frame group 1, 912: a second fragment area of the memory area corresponding to the frame group 1, 920: a memory area corresponding to the frame group 2, 921 ... a first fragment area of the memory area corresponding to the frame group 2, 922 ... frame group 2 ,... 930... , A memory area corresponding to frame group 3, a memory area corresponding to frame group 4, a memory area corresponding to frame group 4, and a memory area corresponding to frame group 4 941. 950: memory area corresponding to frame group 5, 951: first fragment area of memory area corresponding to frame group 5, 2201 ... memory address before conversion, 2251 ... memory address after conversion, 2261 ... byte selection Bit, 2262 ... column address bit, 2263 ... row address bit, 2264 ... bank address bit, 2265 ... chip select bit.

Claims (5)

メモリに割り当てた複数のフレームメモリ領域に格納してある表示データを参照し、映像信号を生成する表示制御システムで、前記メモリにアドレスを複数回に分けて指定するメモリを使用し、前記メモリがアドレスを複数回に分けて指定する際に一定の条件を満たす場合にはアドレスの一部の指定を省略することが可能であるメモリを使用するシステムにおいて、前記メモリにアクセスする際にアドレスを変換し、前記メモリのアクセスを行うことを特徴とする表示システム。A display control system that refers to display data stored in a plurality of frame memory areas allocated to a memory and generates a video signal. In the display control system, a memory that specifies an address in the memory in a plurality of times is used. If a certain condition is satisfied when specifying an address in a plurality of times, it is possible to omit the specification of a part of the address. In a system using a memory, the address is converted when accessing the memory. A display system for accessing the memory. 複数のフレームメモリ領域に格納してある表示データを参照し、前記参照した表示データに対応する表示内容を重ね合わせた映像信号を生成する請求項1記載のシステム。2. The system according to claim 1, wherein the video signal is generated by referring to display data stored in a plurality of frame memory areas and superimposing display contents corresponding to the referenced display data. 表示内容を重ね合わせた映像信号を生成する際に、前記表示内容を半透明合成する請求項2記載のシステム。3. The system according to claim 2, wherein the display content is translucently combined when generating a video signal in which the display content is superimposed. 複数のフレームメモリ領域に格納してある表示データを参照し、それぞれの前記表示データを独立した映像信号として同時に出力する請求項1記載のシステム。2. The system according to claim 1, wherein the display data stored in a plurality of frame memory areas is referred to, and the respective display data are simultaneously output as independent video signals. アドレス変換を行う際に、表示データの1ピクセルあたりの平均データ量に応じて前記アドレス変換方法を変更する請求項1、請求項2、請求項3、または請求項4記載のシステム。5. The system according to claim 1, wherein when performing the address conversion, the address conversion method is changed according to an average data amount per pixel of the display data.
JP2003107194A 2003-04-11 2003-04-11 Display control system Pending JP2004317536A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003107194A JP2004317536A (en) 2003-04-11 2003-04-11 Display control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003107194A JP2004317536A (en) 2003-04-11 2003-04-11 Display control system

Publications (1)

Publication Number Publication Date
JP2004317536A true JP2004317536A (en) 2004-11-11

Family

ID=33469088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003107194A Pending JP2004317536A (en) 2003-04-11 2003-04-11 Display control system

Country Status (1)

Country Link
JP (1) JP2004317536A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330700A (en) * 2005-04-28 2006-12-07 Semiconductor Energy Lab Co Ltd Image output apparatus and operation method thereof
JP2010020500A (en) * 2008-07-09 2010-01-28 Oki Joho Systems:Kk Memory controller
JP2010044515A (en) * 2008-08-11 2010-02-25 Seiko Epson Corp Signal processing processor and semiconductor device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330700A (en) * 2005-04-28 2006-12-07 Semiconductor Energy Lab Co Ltd Image output apparatus and operation method thereof
JP2010020500A (en) * 2008-07-09 2010-01-28 Oki Joho Systems:Kk Memory controller
JP2010044515A (en) * 2008-08-11 2010-02-25 Seiko Epson Corp Signal processing processor and semiconductor device

Similar Documents

Publication Publication Date Title
US6956579B1 (en) Private addressing in a multi-processor graphics processing system
JP4926947B2 (en) GPU rendering to system memory
EP0318259B1 (en) Software configurable memory architecture for data processing system having graphics capability
US5959639A (en) Computer graphics apparatus utilizing cache memory
JP3350043B2 (en) Graphic processing apparatus and graphic processing method
US5025249A (en) Pixel lookup in multiple variably-sized hardware virtual colormaps in a computer video graphics system
CN1126039C (en) System and method for implementing overlay pathway
US6094193A (en) Display controller
US5251298A (en) Method and apparatus for auxiliary pixel color management using monomap addresses which map to color pixel addresses
WO2005091774A2 (en) Graphics device clustering with pci-express
US4782462A (en) Raster scan video controller with programmable prioritized sharing of display memory between update and display processes and programmable memory access termination
US8717391B2 (en) User interface pipe scalers with active regions
JPH11296154A (en) Device and method for graphic processing
EP0182454B1 (en) Video system controller with a row address override circuit
JP2013516664A (en) User interface unit for fetching only the active area of the frame
US6927776B2 (en) Data transfer device and method
JPH05189549A (en) Image data processor by multiprocessor
EP0579402A1 (en) Nubus dual display card
JPH08297605A (en) Data processor and system using the same
JP2004317536A (en) Display control system
EP0148578A2 (en) Programmable video display generator
JP4053545B2 (en) Graphics processor and graphics processing apparatus
EP2382546A1 (en) Memory management process and apparatus for the same
US9489139B2 (en) Command processing apparatus, method and integrated circuit apparatus
JPH09120371A (en) Memory controller