JP3741464B2 - Dramアクセス方法 - Google Patents

Dramアクセス方法 Download PDF

Info

Publication number
JP3741464B2
JP3741464B2 JP20269195A JP20269195A JP3741464B2 JP 3741464 B2 JP3741464 B2 JP 3741464B2 JP 20269195 A JP20269195 A JP 20269195A JP 20269195 A JP20269195 A JP 20269195A JP 3741464 B2 JP3741464 B2 JP 3741464B2
Authority
JP
Japan
Prior art keywords
cells
cell
data
bank
dram
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.)
Expired - Lifetime
Application number
JP20269195A
Other languages
English (en)
Other versions
JPH08202614A (ja
Inventor
マーク ジョーンズ アンソニー
ウイリアム ウォーカー パターソン ドナルド
フィリップ ロビンス ウィリアム
フィリップ ワイズ エイドリアン
ローズマリー フィンチ ヘレン
ウィリアム ソザラン マルティン
Original Assignee
ディスコビジョン アソシエイツ
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
Priority claimed from GB9405914A external-priority patent/GB9405914D0/en
Priority claimed from GB9415387A external-priority patent/GB9415387D0/en
Priority claimed from GB9415365A external-priority patent/GB9415365D0/en
Priority claimed from GB9415391A external-priority patent/GB9415391D0/en
Priority claimed from GB9503964A external-priority patent/GB2287808B/en
Application filed by ディスコビジョン アソシエイツ filed Critical ディスコビジョン アソシエイツ
Publication of JPH08202614A publication Critical patent/JPH08202614A/ja
Application granted granted Critical
Publication of JP3741464B2 publication Critical patent/JP3741464B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

【0001】
関連出願
本願は1994年7月29日に英国特許出願No.9415365.7として出願された”Ramをアクセスする方法(Method for Accessing Ram)”、1994年7月29日に英国特許出願No.9415391.3として出願された”Dramのバンクをアクセスする方法(Method for Accessing Banks of Dram)”、及び1994年7月29日に英国特許出願No.9415387.1として出願された”メモリをアドレスするための方法及び装置(Method and Apparatus for Addressing Memory)”に関連しており、これらの出願は全てDiscoVision Associatesに譲渡されている。
【産業上の利用分野】
本発明はランダムアクセスメモリ(RAM)に関し、特にRAMとのインターフェースを行う装置及び方法に関する。
【0002】
【実施例】
本発明の特徴の1つはRAMをアクセスする方法に関している。特にRAMからそのRAMの所定の固定バースト長(fixed burst length)Nより少ないワード数Mをアクセスする方法である。RAMはイネーブルラインを含み、このラインはRAMからの読出し及びRAMへの書き込みを選択的に許可及び禁止する。この方法では、最初のNワードがRAMに対してリード(read)又はライト(write)されるように指示される。次に、MワードがRAMにリード又はライトされたときが判断される。ここでMはNより小さい。最後に、MワードがRAMにリード又はライトされたことを判断した直後、RAMは禁止される。
【0003】
本発明の他の特徴によれば、ダイナミックランダムアクセスメモリ(DRAM)をアクセスし、2次元画像に関するデータワードを格納及び検索する方法が開示される。DRAMは分離した2つのバンク、即ち第1のバンク及び第2のバンクを有する。各バンクはページモードで動作し、データワードをリードライトできる。2次元画像は2次元格子パターンのセルに組織化され、各セルはM×Nマトリクスの画素を含んでいる。特定セルに関する全てのデータワードが特定バンクの特定ページにリードライトされるように、各セルに関係するワードは1ページ又は1バンク以下の容量を占める。各セルには2バンク中の一方のバンクが割り当てられる。セルに対するバンクの割当は、各セルが同一行又は同一列内に境界セルがないように、異なるバンクに関係するように行われる。
【0004】
本発明の他の特徴によれば、非整列セル(unaligned sell)に関するデータワードはDRAMの第1バンクから最初の読出しでリードされ、格子パターン内の1つのセルに関係するデータワードは非整列セルに関係するデータワードとして認識される。そしてDRAMの第2バンクからリードがあり、格子パターン内の他のセルに関係するデータワードは、非整列セルに関係するデータワードを含む。第1及び第2バンクの相互のリードは非整列セルに関係する全てのデータワードがリードされるまで続く。
【0005】
本発明の他の特徴によれば、非整列セルに関係するデータワードは第1リーディングによりセルの所定の順番でリードされ、格子パターン内の各セルに関係するデータワードは、非整列セルに関係するデータワードを含んでいる。前記所定の順番は連続する次のセルからリードされたデータワードが相互バンクからリードされるように選択される。
【0006】
本発明の他の特徴によれば、前記所定の順番は非整列セルに関係するデータワードを含むものとして識別される格子パターン内のセルの時計回転方向である。又は、前記所定の順番は非整列セルに関係するデータワードを含むものとして識別される格子パターン内のセルの時計回り方向である。
【0007】
この発明の他の特徴はメモリをアドレッシングするための方法及び装置に関しており、特に可変幅データをアドレッシングするため及びアドレスの置き換えに使用される固定数のビットを有する固定幅ワードを使用する。
【0008】
本発明の他の特徴によれば、フレームの画像番号を判断し、フレームの所望代表番号を判断し、画面番号が所望代表番号或いはその後の場合に、バッファをレディ状態にするステップを含み、フレームとして組織化されエンコードされたビデオデータをバッファリングするための方法が提供される。
【0009】
本発明の他の特徴によれば、バスをRAMに接続するためのRAMインターフェースが提供され、このインターフェースは複数のデータワードに関係するアドレスをバスから受信する手段、バッファされたデータワードがライトされるRAMに、受信したアドレスから得られる一連のアドレスを発生する手段、及びバッファされたデータワードをRAMの前記発生したアドレスにライトする手段を含む。データワード受信及びバッファリング手段はスイングバッファを含むことができる。RAMはページアドレッシングモードで動作でき、アドレス発生手段は受信したアドレスに基づいて行アドレスを発生する手段及び列アドレスを発生する手段を含むことができる。RAMは例えばDRAMで、バスは2線インターフェースを含むことができ、データワード受信及びバッファリング手段は2線インターフェースを含むことができ、及び複数のデータワード並びに受信したアドレスは例えばtokenの形式である。RAMインターフェースはデータワード受信手段が複数のデータワードを受信及びバッファしたか否かを判断する手段を更に含むことができる。
【0010】
又、本発明はバスをRAMに接続するRAMインターフェースを提供し、このインターフェースはRAMの所定アドレスに格納された複数のデータワード、前記複数のデータワードに関係するRAMアドレスを前記バスから受信する手段、RAM内の複数のデータワードをアドレッシングし受信したアドレスから得られる一連のRAMアドレスを発生する手段、RAMからリードされたデータワードをバッファリングする手段、及び前記アドレス発生手段により発生された一連のRAMアドレスを使用して、複数のデータワードをRAMからリードし、前記データワードをバッファ手段にライトする手段を具備する。RAMは例えばDRAMで、バスは2線インターフェースを含むことができ、アドレス受信手段は2線インターフェースを含むことができ、そして複数のデータワード並びに受信したアドレスはtokenの形式でよい。RAMインターフェースは更にデータワード受信手段が複数のデータワードを受信しバッファしたか否かを判断する手段を含む。
上記本発明の特徴は5つのカテゴリーに分類でき、以下にそのカテゴリーを説明する。
【0011】
JEDEC同期DRAMをアクセスする方法;
DRAMのバンクをアクセスする方法;
可変データをアドレスするための固定幅ワード;
バッファマネージャ;及び
RAMインターフェース
同期DRAMをアクセスする方法
図1は本発明による方法を実施するシステム10のブロック図を示す。システム10はステートマシン12、インターリーバ14、及び同期DRAM16を含む。DRAM16は2つのブロック32を含む。インターリーバ14はDRAM16に対するアクセス(リードライト)を制御する。インターリーバ14はカウンタ(図示されず)を含み、このカウンタはどちらのバンク32が最近アクセスされたかを示し、これによりインターリーバ1はバンク32間を容易にトグルできる。
【0012】
図1、2及び3において、DRAM16の同一バンクにアドレスしたハイレベルコマンド22のストリング(string)19を受信すると、ステートマシン12は同一バンク32にアドレスされた最適化ローレベルコマンド20(即ちJEDECにより特定される7つのコマンド、及び前述のリスト)のストリング21を発生する。ストリング21を受信するとインターリーバ14は要求されたアクションを実行する。
【0013】
ハイレベルコマンド22はREAD22−1、WRITE22−2、EXTEND22−3、INTERRUPT22−4及びREFRESH22−5である。(コマンド22はローレベルコマンド20から明確に区別できるように全て大文字で示されている。)簡単にいうと、READ22−1、WRITE22−2、及びREFRESH22−5コマンドの動作はそれらと同一名のローレベルコマンド20と同一である。EXTEND22−3は以前のWRITE22−2又はREAD22−1コマンドのアクションを繰り返すように作用する。INTERRUPT22−4は、後述されるように、4ワード24で固定されるバースト長の結果として必要となるものである。一緒に用いると、コマンド22は強力なプログラミングツールを提供する。
【0014】
どのようにコマンド22がDRAM16をアクセスするタスク(task)を簡略化するかを示す例を説明する前に、コマンド22自体の説明を先に述べる。ハイレベルコマンド列19の最初のハイレベルコマンド22はREAD22−1又はWRITE22−2のどちらかである。対応するローレベルコマンド列21の第1ローレベルコマンド20は常にアクティブコマンド20である。各READ又はWRITEコマンド22は4つの連続ワード24がリード又はライトされるように指示している。図2に示すように、各READ又はWRITEコマンド22は4つの連続するワード24の第1のワード24の(アクセスされる特定バンク32内の)アドレス26を伴っている。(ここで、JEDECスタンダードではこの第1のワード24は偶数でなければならない。)
DRAM16が”自動プリチャージモード(precharge mode)”のとき、READ又はWRITEコマンド22がストリング19の中で最後のコマンド22の場合(即ちステートマシン12に対する次のコマンドがDRAM16の他のバンク32にアドレスされる場合)、ステートマシン12はプリチャージコマンド20と共にリード又はライトを発し、次に適切な4つの連続ワード24に不可欠なアドレス26が続く。又は、ステートマシン12はリード又はライトコマンド20を発生し、次に不可欠なアドレス26が続く。例えば自動プリチャージモードの場合、ストリング19−2内の最後のコマンド22は10のアドレス26を伴うREAD22−1で、対応するストリング21−2はプリチャージコマンド20により読み込まれ、10、11、12及び13のアドレス26が続く。
【0015】
図2において、EXTEND(伸張)22−3はストリング19−3の終端に示され、READ(WRITE)コマンド22に続いている。READ及びWRITEコマンドのように、EXTEND22−3のフォーマットは連続する4ワード24の最初のワード24のアドレス26を含む。自動プリチャージモードでは、EXTEN22−3がストリング19−3におけるようにストリング19の終端で発生したとき、プリチャージを伴う追加のリードライトがストリング21に追加される。
【0016】
本発明の他の特徴は、バースト長を4ワードに固定することであり、これによりダイナミックに変化するバースト長に適合するための複雑性が回避される。JEDECスタンダードで要求される2ワード転送を扱うために、INTERRUPT22−4が提供される。次に図1、2及び3において,INTERRUPT22−3により、ステートマシン12は4ワード長ローレベルコマンド20のリード(又はライト)が開始する。しかし、2ワード24がリード(ライト)された後、ステートマシン12により、バンク32に対するイネーブルライン30はローになり、バンク32をデセーブルにする。このようにして、ステートマシン12は4ワード24に対するリード(又はライト)のローレベルコマンドを発生するが、2ワード24のみが実際にバンク32に対してリード(又はライト)される。
【0017】
勿論、イネーブルライン30がローに落ちた後、新たな無効リード(又はライト)コマンド20を完了するために、2クロック周期が必要である。しかし、バースト長が4ワード24に固定されるのを許容する一方で、この方法は望まれないデータの2ワード24を扱う必要がなくなる。
【0018】
次に図1、2、3及び4を参照する。図4はワード24がどのようにしてバンク32に格納されるかを示している。図4は2次元アレイのセル50の部分48を示し、各セル50はワード24のM×Nマトリクスを含んでおり、各ワードは参照符号54で示され、これはセル50内のワード24のアドレスとして機能する。特に、各セル50はワード24の8行×8列として示されている。セル50は格子パターン56に従って配置されている。
【0019】
セル50にはセル60が重なっており、セル60は(DRAM16の他の部分に格納するために)下のセル50からのワードを読むことにより生成される新たな所望セルを示す。セル60はワード24と整列しているが、格子パターン56とは整列していない。セル60はセル50−1、50−2、50−3、及び50−4に重なっている。セル50−1及び50−3は同一バンク32(例えばバンク0)内に格納されるワード24を含んでいるが、異なるページのことがある。同様に、セル50−2及び50−4は他のバンク32に格納されるワード24を含んでいるが、異なるページのことがある。
【0020】
セル50−1から適切なワード24を読むために、次に示すハイレベルコマンド22のストリング19を用いることができる。即ち、
READ(62,x)、INTERRUPT(62,62)。
【0021】
ローレベルコマンド20の対応するストリング21は、
active(bank0)、read(62,63)、read and precharge(62,63)である。
【0022】
セル50−4から適切なワード24を読むために、次に示すハイレベルコマンド22を用いることができる。即ち、
READ(6,c)、INTERRUPT(14,22)。
【0023】
ローレベルコマンド20の対応するストリング21は、
active(bank1)、read(6,7)、read(14,15,don’t care,don’t care)read and precharge(22,23,don’t care,don’t care)。
セル50−3から適切なワード24を読むために、次のハイレベルコマンド22を用いることができる。即ち、
READ(0,x)、EXTEN(8,x)、EXTEN(16,x)、EXTEN(4,x)、INTERRUPT(12,20)。
【0024】
ローレベルコマンド20の対応するストリング21は、
active(bank0)、read(0,1,2,3)、read(8,9,10,11)、read(16,17,18,19)、read(4,5)、リード(12,13)、リード及びプリチャージ(20,21,don’t care,don’t care)。
【0025】
本発明は以上のような構造及び方法を参照して開示されたが、本発明の範囲はこれらの説明に限定されることなく、特許請求の範囲から考えられる修正及び変更を含むものである。
DRAMのバンクをアクセスする方法
図5、6、及び11を参照する。図11はデジタルビデオ信号204から得られる画像208を表示するために適した表示画面206を有するビデオモニタ202を示している。デジタルビデオ信号204のソースはビデオデコーダ205である。ビデオデコーダ205は適当なデコード回路(図示されず)を含む。ビデオデコーダ205はエンコードされたビデオ信号209をデコードする。エンコードされたビデオ信号209の代表的なソースはCD又はレーザディスクプレーヤ207又はケーブルテレビフックアップ(hook-up)208を含む。
【0026】
図5には画像208を含む表示画面206の一部分が示されている。画像208のような画像は画素214から構成されている。一般に画素214はセル212内にグループ分けされている。画素214をセル212にグループ分けすることで、画像208を示すデジタルビデオ信号204は(表示画面6の他の領域も同様に)、より効果的に操作(例えば圧縮)することができる。
【0027】
セル212はどのような反復パターンにも配置できるが、一般にセル212は直線的な格子209のパターン内に配置される。格子209のパターンは表示画面206に交差して延長している。各セル212内で、一般に画素214はN行×N列の正方形マトリクスに配置される。例えば、図6で、セル212は画素214の8行×8列のからなる。識別位置番号213(0〜63)が各画素214に関係している。代替えの方法として、画素214は非正方形マトリクス(即ちM行×N列、ここでMとNは異なる数である)のグループにすることもできる。
【0028】
図5、6及び7を参照すると、デジタルビデオ204は多数のデータワード215を含む。MPEGデジタルビデオスタンダードでは、6データワード215は4画素214の各領域を示す必要がある。1ワード215はCbを示し、1ワード215はCrを示し、4ワード215はY(明度)を示す。
【0029】
図5、7、10及び11を参照すると、ビデオデコーダ205はRAMシステム230を含む。RAMシステム230はメモリビデオデコーダ205で、データワード215を格納するために使用する。ビデオデコーダ205は画面206上の画像208を生成、表示、及び操作中にRAMシステム230からワード125を読出す。RAMシステム230はインターリーバ234及び2つのRAMバンク232、即ちバンク0の232−0及びバンク1の232−1を含む。インターリーバ234はバンク232をビデオデコーダ205の一部分(図示されず)に接続し、ビデオデコーダ205は画像208を生成、表示、及び操作するために使用される。バンク232では、データワード215は重なる長方形のようにして図10に示されているページ233に格納される。ページ233の代表的サイズは1024×8ビットワードである。
【0030】
図5、6、及び8を参照する。ビデオデコーダ205に必要なことは、存在するセル格子209に整列されていない(以下、非列と記載)セル222を読む能力である。その代わり、セル222はセル212内の画素214に整列されている。非整列セル222を読む能力は画像208の特徴を検索、又は連続する画像208間の動きを検出するために必要となる。
【0031】
図5及び8を参照する。図5において、RAMシステム230から読み込まれたセル222−1が示されている。セル222−1は格子209には整列しておらず、従って、セル222−1は、4つのオーバラップするセル212−5、212−6、212−7、及び212−8から得られる画素214を含み得る。セル222−1は点線で示され、4つのセル212、すなわち、212−5、212−6、212−7、及び212−8に重なって見える。
【0032】
図8は非整列リードセル222−1が下のセル212−5、212−6、212−7、及び212−8にどのように重なるかを詳細に示す。図5に示されるように、セル222−1内の識別位置番号は、セル222−1の境界内で且つ下にあるセル212−5、212−6、212−7、及び212−8内に含まれる画素214の識別位置番号213から導き出される。ここで、非整列リードセル222−1は主に下の単一セル212−5から描かれた画素214から構成されている。セル212−6、212−8、及び212−7から示されている画素214の数は各々7個、7個及び1個である。セル212−5からは49個の画素が示されている。
【0033】
図5及び8では、直線格子209は各セル212を示すデータワード215を含むページ233がどのように挿入されるかは示されていない。特定の非整列リードセル222の下にあるセル212の全てに関係する各ページ233はRAMシステム230の同一バンク232内であると考えられる。そのようなとき、非整列リードセル222の生成は最悪の場合、その同一バンク232から4ページをアクセスする処理と、バンク232を3プリチャージするための死に時間(dead time)を必要とする処理を含む。画像8上の全非整列セル222に関して最も悪い場合が必ず発生し、検索又は合致は非整列セル222がどこにあるかを特定することはなく、従って最悪のケースになることが常にある。
【0034】
同一バンク232から4ページ233をアクセスするより、各バンク232から2ページをアクセルする処理、即ちインターリーブ(interleaving)の可能性を最大にする処理の方が遙かに良い。ここで問題は、図8のようなケースをどのように扱うかである。図8で非整列リードセル222−1の画素214の殆どは下の単一セル212−5から示されており、他の下の3つのセル212−6、212−7、212−8に関係するページ233からデータをリードするのに必要な比較的短い時間の読出しを実行しているとき、プリチャージの時間は殆どない。他の難しいケースは2つのセル212の実質的な部分及び他の2つのセル212の非実質的部分に重なる非整列リードセル222を含んでいる場合である。
【0035】
本発明によれば、比較的短いリード時間の問題は、セル212に関係しているページ233を特定2次元画像240すなわちチェッカーボード2次元パターン240にインターリーブすることで軽減される。次に図9及び10を参照する。図9はセル212の半分をハッチング239により示し、セル212の残りの半分をハッチング239がない部分で示している。セル212上のハッチング239の意味は、当該セル212に関係するページ233がバンク0即ち232−0内にあることを示す。セル212上のハッチング239のない部分は、当該セル212に関係するページ233がバンク1即ち232−1内にあることを示す。例えば、セル212−6はハッチングで示され、従ってセル212−6を示すデータワード215に関係するページ233はバンク0即ち232−0内に格納され、それ故バンク0即ち232−0からリードされなければならない。
【0036】
本発明によれば、リード時間が比較的短いという問題は、ページ233に関係するセル212の特定2次元パターン240に基づいて、ページ233をバンク232内にインターリーブするインターリーバ234により軽減される。図9に示すように、パターン240はチェッカーボード(checkerboard)に酷似している。即ち格子209の同一行内で、同一バンク232内にページ233を有する2つの連続するセル212はなく、格子209の同一列内で、同一バンク232内にページ233を有する2つの連続するセル212はない。
【0037】
チェッカーボードパターン240は、非整列リードセル222が4つのセル212に重なったとき、重ねられた2つのセル212が1つのバンク内に格納される他方で、2つの他の重ねられたセル212に関係するページ233が他のバンク232に確実に格納されるようにすることにより、インターリーブの可能性を最大にする。例えば図9において、セル212−5及び212−7はバンク1即ち232−1内のページ233に格納され、他方、セル212−6及び212−8はバンク0即ち232−0内のページ233に格納される(図10を参照)。
【0038】
インターリーブの効率を最大にするために、ページ233は相互バンク232からリードするのが望ましい。これは非整列リードセル222の下にある4つのセル212から時計回り方向又は反時計回り方向にリードすることで確実になる。時計回り方向にリードする方法の一例として、図9のセル222−1の下にある4つのセル22を考える。先ず、セル212−5に関係するページ233はインターリーバ234によりバンク1即ち232−1からリードされる。そしてセル212−6に関係するページ233がリードされる。なぜなら、セル212−7はセル212−6と同一列内にありセル212−6の下にあるからである。最後にセル212−8に関係するページ233がリードされる。なぜなら、セル212−8はセル212−7と同一行内にあり、セル212−7の左にあるからである。
【0039】
インターリーブバンク232のチェッカーボードパターン240が死に時間を減少するときのシミュレーションを次に示す。チェッカーボードパターン240のアスペクト比及びサイズは用途に応じて最適な値に選択することができる。唯一必要なことは、非整列リードセル222の下に少なくとも1つのセル212がワード215の1以下のページ233により示されることである。このようにして、下のセル212の4つの可能なリード動作は各々自ら含まれることになり、前述のメカニズムに対するインターリーブを制限している。更なる分解では更に複雑なインターリーブアルゴリズムが含まれ、死に時間を長くするであろう。
【0040】
下のセル212の可能性のあるリードの各ペアは同一ページ233内のワード215を含むことがある(例えば、非整列リードセル222−1の下にあるセル212−6及び212−8からのワード215は同一ページ233に含むこともできる)。従って、ページ233からのワード215のリードは更に最適にすることができる。しかし、最悪のケースがまだ存在する。
【0041】
性能を劣化せずに本発明による方法を、単一ページ233内に格納できる量よりも多くのデータワード215が必要な(M×N)の大きさを有するセル212に適用することもできる。図10及び図12を参照すると、そのようなセル212は副格子(subgrid)252により除算して副セル(subcell)250にされる。副セル250の大きさは、各副セル250に関係するワード251の数が単一のページ233に格納できるように選択される。図12に示すように、同一のチェッカーボードパターン240を副セル50(例えば、同一バンク232に格納された副セル250−1及び250−3、及び同一バンク232内に格納された副セル50−2及び50−4)に適用でき、それにより各”オーバーサイズ”セル212がセル212自身で管理できるように同様な効率的方法で管理できる。
【0042】
本発明の構造及び方法が開示されたが、本発明の範囲は前述の説明に限定されるものではなく、特許請求の範囲に基づく修正や変更を含む。
可変幅データをアドレスする固定幅ワード
メモリをアドレスするための方法及び装置を次に説明する。特にこの処理は、固定幅ワードを使用して可変幅データをアドレスすることが要求される。実施例の様々の形式において、固定幅ワードは幅定義フィールド、アドレスフィールド、又は置換フィールドを含む。固定幅ワードの長さはアドレスされるメモリ容量により予め設定される。本発明の装置形式は、演算コア(arithmetic core)を有するマイクロコーダブルステートマシン(microcodable state machine)を含む。
マイクロコーダブルステートマシンは広範な及び(又は)複雑な計算を行うための設計に関する問題を解決するために使用する。このような設計の例としては、アドレス生成、ストリーム解剖(変化)、及びデコーディング又はフィルタタップ係数計算(filter tap cofficient calculations)がある。アドレッシングは2つの異なった特徴に対処しなければならない。この特徴とは複数ワードの変化する幅部分をアクセスするための可変長アドレス及びアドレスの置換である。本発明では、64×32ビット構成のRAMは64×32ビット、128×16ビット、256×8ビット、512×4ビット、1024×1ビット形式を有する部分的ワードでアドレスできる。
【0043】
1994年7月29日出願のDiscoVision Associatesによる英国特許出願 ”ビデオ信号を伸張する方法及び装置(Method and Apparatus for Video Decompression)”は参考として本明細書に組み込まれている。
【0044】
多くの用途で、ワードの変化部分(フィールドとして知られている)を、置換、可変幅データアドレッシング、又はワードの他の部分の制限などのアクションのために定義することは有用である。これに関する一般的な方法は、そのワード以内でフィールド(又は複数フィールド)の幅を特定するための追加ワード(又は複数ワード)を持つことである。以下に、ワード自体の中のこの情報をエンコードする方法を説明する。この方法では、ワードを全体的に定義するためのビット数の低減、エンコードされたワードの簡素化されたデコーディング、及びいずれがエンコードされたかを直ちに見ることができるという効果がある。可変幅フィールドがそのワード内の最上位ビット(most significant bit)又は最下位ビット(least signigicant bit)に調整されている場合、このエンコード法が利用できる。
【0045】
表1−1は可変幅フィールド(”F”として記されている)の2つの例で、LSBは8ビットワード内に定義及び調整され、”w”はこれらワードの他の有力なフィールドを示す。
【0046】
【表1】
Figure 0003741464
表1−2は表1−1に示されたフィールドを十分な追加ビットによりエンコードし、フィールドの最大幅を二進法で特定する一般的な方法を示す。(”x”で記されるビットは”無視(don't care)”を示す)この方法では膨大な空間が必要となる。
【0047】
【表2】
Figure 0003741464
表1−3は新たな方法を使用した表1−1のフィールドのエンコード例を示す。この方法は連続マーカ及び終結マーカを使用してフィールドを定義している。この場合、連続マーカは”1”で、終結マーカは”0”である。フィールドはフィールド調整された終端部(この場合はLSB)から終結マーカまでの(終結マーカを含む)全ての連続マーカとして定義されている。表1−3には終結マーカにより取られた空間のエンコードは、フィールドの開始点で固定幅ワードに追加されねばならないことが示されており、これにより終結マーカを含む追加空間による0長フィールドの定義が可能となる。
【0048】
【表3】
Figure 0003741464
以上から分かるこのエンコード法の利点を以下に示す。
1.エンコーディングに必要なビット数の減少。
2.要求されるデコーディングの簡素化。これは 表1−2に示される通常必要となる”フィールド定義”の”× to 1 of 2x”のデコードは”1 of 2x”形式に既にあるエンコーディングに本来備わっているからである。
3.エンコーディングは更に直感的な形式で、容易に認識できる定義フィールドが可能となる。
【0049】
このエンコーディングの用途を広げることができる。即ち終結マーカ及び連続マーカを確保して、表−3のエンコーディングを表1−4に類似させることができる。更に、”1”又は”0”の使用はこの出願を通して相互に交換できる。
【0050】
【表4】
Figure 0003741464
フィールドは表1−5に示すように最上位ビット調整することもできる。これらは同様な方法で最下位ビット調整フィールドに単にエンコードされる。そのフィールドはLSBに向かうMSBから、最初の終結マーカ(終結マーカを含む)まで達する。表1−5に示すフィールドのエンコーディングを表1−6に示す。
【0051】
【表5】
Figure 0003741464
【0052】
【表6】
Figure 0003741464
最終的にフィールドはワードの最下位桁及び最上位桁の両端から同時にエンコードできる。例えば表1−7に示される2つのフィールドは表1−8のようにエンコードでき、前述した理由により各フィールドに1ビットのみの追加が伴う。
【0053】
【表7】
Figure 0003741464
【0054】
【表8】
Figure 0003741464
図21は前述した内容を一般化したものを示す。データをアドレスするために必ずしも必要ではないアドレスフィールドは終結マーカ及び連続マーカを有するフィールドを含んでいる。この場合、フィールドは調整された最下位ビットである。
【0055】
メモリアドレス部分を他の値で置き換えると都合のよう場合がある。この方法では、データの従属アドレスを構成することが可能である。このエンコーディング法はメモリのアドレスに適用して、アドレスのどの部分が置き換えられるかを特定する。最下位ビット調整された可変長フィールドがこのアドレスに使用される場合、置き換えフィールドを定義できる。例えば12ビットアドレス Obaaaaaaaaaaaa を、5つの最下位ビットを12ビット値 Obcccccccccccc によって置き換えてエンコードすると、 Obaaaaaaa011111 で、アドレスObaaaaaaaccccc を発生する。表1−9は12ビットアドレスへの置き換えのためのエンコーディングを示す。
【0056】
【表9】
Figure 0003741464
図19において、アドレッシング用の固定幅ワードはオプションの置き換えインジケータ(indicator)を伴うアドレスフィールドを有している。前述したように置き換えフィールドは可変サイズを有し、外側アドレッシングソースをアドレスビット”a”の可変量に置き換える機能を有する。置き換えは終結マーカビット”y”及び連続マーカ”x”の場所で発生する。
【0057】
終結マーカは置き換えが停止したアドレスデコーディング回路を知らせる機能を有する。
【0058】
置き換えが常に使用される場合、インジケータの必要はない。しかし、置き換えインジケータにより置き換えを最適に使用できる。
【0059】
本発明の一実施例は、メモリをその全幅又はその全幅までの2n幅(これら短いワードは部分ワードと呼ばれる)でアクセスできる。どのようにして可変フィールドエンコーディングを、このメモリをアドレスするために使用できるか、及びそれらアドレスをメモリに示すために使用できるかを次に示す。
【0060】
32、16、8、4、2及び1ビットの幅で64×32ビットレジスタファイルをアクセスためには、異なる長さのアドレスが必要である。最大で16ビットの2倍で32ビット位置、及び32ビット位置より多い32倍と1ビット位置がある。更にこのアドレスの8ビットまでインデックスレジスタにより置き換えることができる。従って、情報の可変量は必ず固定数のマイクロコードビットにコード化される。1つの方法はその幅に対して及び置き換えられるLSBの数に対して3ビットフィールドを有し、そのアドレスに対して12ビットを有することで、これにより18ビットのマイクロコードワードを与える。しかし、より良い方法は、最上位桁調整された可変長フィールドを使用して、アドレスを定義できる幅に制限することで、従ってアクセスの幅が定義できる。例えば、6ビットアドレスは32ビットアクセスを示し、一方12ビットアドレスは1ビットアクセスを示す。(これは表1−10に示されており、連続マーカは”0”;終結マーカ”1”。)どのように可変幅フィールドがアドレス”a…a”を制限してその幅及びアクセス幅を定義するかが分かる。アドレッシングのための固定幅ワードの一般的な例を図18に示す。
【0061】
【表10】
Figure 0003741464
アドレス位置のインデックスを可能とするために、アドレス”a…a”の部分は代替えの値で置換することができる。アドレスの置換部分(又はフィールド)は最下位桁ビット調整された可変長フィールドにより定義することができ(連続マーカ”1”;終結マーカ”0”)、そのフィールドは表1−10に示されるそれらの最上部に重畳されている。8ビットワードのアドレスを使用して、表1−11の例は、置換できる最下位ビットの数をどのように定義するかを示している。追加された最下位ビットは置き換えインジケータ(”w”として示す)である。置換の為の固定幅ワードの一般的なケースを図20に示す。
【0062】
【表11】
Figure 0003741464
実際、置き換えコードは既にコード化されたアドレスの最上部に重ねられる。
【0063】
このコーディングから異常アドレス、例えば0×0000及び0×3ffがあるのが分かる。この場合、”0”は8ビットを越えて置き換わるのを防ぐために下部9ビット以内でなければならず、上位6ビット内の”1”は許容できるアクセス幅を特定する。これらエラーの1つが発見されて場合、アクセスは定義されないがレジスタファイルの内容は影響されない。
【0064】
レジスタファイル内の部分ワードをアドレッシングするための装置及びアクセスするための方法を次に説明する。従来のメモリ回路ではメモリは常にその全ビットでアクセスしなければならない。可変幅アクセスを達成するために、全幅(32ビット)ワードがリードされる。この全ワードはアクセスされた部分ワードがLSBで調整されるまで回転される。ワードの上部は全幅まで伸張され、それから出力される。伸張は、0又は1でパディング(padding)することを含んでもよく、新たなMSBとしてサイン(sign)の大きさを示す数に対応するサインビット又は同様な従来の方法を使用してサイン伸張を含んでもよい。伸張は動作モードに依存している。部分ワードが入力されメモリに書き戻される場合、それは回転した全ワードに多重帰還(multiplexed back)され、それは後方に回転しアレイに書き込まれる。図15は32ビットワードの第4の4ビットワード内の4ビット部分ワードのアクセスに関するこれらのステップを示す。
【0065】
図15の行”1”内の強調された4ビットワードのような部分ワードをアクセス又はリードするために、全幅ワードは部分ワードを行”2”に示すようにLSBに配置するために回転しなければならない。行”3”に示すように、4ビットワードは伸張され、生成全(create full)32ビットワードを生成する。このワードを次にアクセスできる。
【0066】
書き戻されるように選択された全幅ワードはオリジナルの部分ワードの幅に短縮され、それはLSBでの行”2”内に示されるワード内に多重送信される。これを行”4”内に示す。その結果生じるワードはリードワード内のそのオリジナルの桁内に回転して戻される。これを行”5”に示す。この全ワードは次にレジスタファイルに書き戻すことができる。
【0067】
図15内の番号で示されるステップの概略を以下に示す。
1.メモリから全ワードをリードし、
2.12ビット右回転は部分ワードをLSBに設定し、
3.全ワードまで伸張し、出力に送信し、
4.入力した部分ワードは(2)からの回転された全ワードに多重送信し、
5.12ビット左回転は全ワードを、書き込まれるオリジナル内へ設定する。
上記アクセスは図16に示すメモリのデータフロー構造を示唆する。この構造内の番号は上記テキスト及び図15に対応する。
【0068】
メモリアドレスはデコードされて上記構造を制御しなければならない。ここで、如何なる幅のアドレスのMSBもメモリに関して同一桁位置である。デコードされたアドレスの上位6ビットは32ビットワードアドレスで、残りはビットアドレスである。従ってデコーディング部(置換と並列)は、最上位終結マーカの位置を検出することにより、アドレス幅定義可変フィールドをデコードする。これにより、アドレスをMSB調整(LSBで0をシフト)できる。上位6ビットはメモリをアドレスする32ビットワード行アドレスとして直接使用できる。下位6ビットは両方のバレルシフター(barrel shifters)を直接制御するために使用できる(図16参照)。なぜなら、例えばオリジナル32ビットアドレスは0b00000(これらはアドレスがMSB調整された場合にシフトされている)のシフトを有するからであり、同様に16ビットアドレスは0bx0000、即ち6ビットシフトを有することができ、ビットアドレスは0bxxxxx、即ち0〜31ビットシフトを有することができる。伸張器(extender)及び入力マルチプレクサはアクセス幅デコードにより制御され、出力ワードをマスクし、入力ワードを適切な桁に各々多重送信する。デコードのブロック図を図17に示す。この図から幅と置換に関する可変幅フィールドのデコードは並列及び別々に行うことができるのが分かる。
【0069】
図20は可変幅データをアドレスするための13ビット長の固定幅ワード、及び図に示される下部2行の一例を示す。これらの例で、8ビットワードは位置0b1101ssssでアドレスされたであろう。ここで”ssss”は他のアドレスソースから置き換えられている。
メモリアドレスへの置換及びメモリの可変幅アクセスは、マイクロコード化できるステートマシンの導入とと共に導入でき、このマシンの構造を図13に示す。この構造はマイクロコード命令と呼ばれる制御信号の幅ワードを用いて演算コアを制御する状態マシンの1つである。演算コアはステータスフラグ及び幾つかのデータをステートマシンに送る。
【0070】
ステートマシンはマイクロコード命令のリストを含むメモリからなる。従来のマイクロコードできるステートマシンのように、マイクロコード命令のリストを連続的に処理できるか、又はあらゆる命令を他のものにジャンプできる。ジャンプアドレスは図19の形式である。置換された値は図13及び14に示すように演算コアから来る。これにより、”ジャンプテーブル”をマイクロコードプログラム内に構成できる。従ってジャンプが例えば置き換えられた3ビットによりなされた場合、演算コアからの値に依存してジャンプすることのある8つの接触している位置が有り得、従ってそれはプログラマブルジャンプとなる。
【0071】
図14に示す演算コアはレジスタファイルと呼ばれるメモリ、演算論理ユニット(Arithmetic and Logic Unit:ALU)、入力ポート及び出力ポートから構成される。これらの構成要素はバス及びマルチプレクサによって接続されている。前述したようにそれらの接続を定義しているマルチプレクサなどはステートマシンにより発せられたマイクロコード命令によって全て制御されている。ALU及びポートは一般的なものであるが、レジスタファイルはそれに対する可変幅インデックスアクセスを可能とするメモリである。
【0072】
レジスタファイルにアドレッシングするこの方法を使用する利点は第1に、アプリケーション内の多くの位置がメモリ(ここでは32ビット)の全幅である必要がないことである。全幅ロケーションを使用することは装置の動作に何の影響も与えないが、これはメモリロケーションの浪費である。使用されるメモリロケーションの数を最小に抑えることはそのメモリによって使用される空間を極小にし、従ってレジスタファイル内の容量負荷を極小にし、その結果レジスタファイルの動作速度を最大にする。第2に、メモリアクセスの可変幅と組み合わされるインデックスにより、可変幅のロケーションを介したステッピングが可能となる。1ビットの場合、長い分割及び多重送信の好適な実施が可能となる。
【0073】
前述の概要では、以下のステップを有するメモリをアドレッシングする方法が開示される。即ち、可変幅データをアドレッシングするために使用される所定の固定数ビットを有する固定幅ワードを提供し、終結マーカとして機能する少なくとも1ビットを有する前記幅定義フィールドを提供するアドレスフィールドと幅定義フィールドとを有する固定幅ワードを定義し、データのアドレスを定義する複数のビットを有するアドレスフィールドを定義し、アドレスフィールド内のビットのサイズを可変幅データのサイズに対して逆比例で変更し、幅定義フィールド内のビット数を可変幅データのサイズに対して正比例で変更し、幅定義フィールド及びアドレスフィールドの幅を変化させると共に可変幅データをアドレッシングするための固定幅を維持する。更に、次のステップを有するメモリのアドレッシング方法が開示される。即ち、データをアドレッシングするために用いられる所定の固定数ビットを有する固定幅ワードを提供し、アドレスフィールド及び置換フィールドを有する固定幅ワードを定義し、データのアドレスを定義するための複数のビットを有するアドレスフィールドを定義し、少なくとも置換の1ビットを有する可変幅置換フィールドを定義し(ここで置換フィールドはアドレスフィールドと置換フィールド間の終結マーカとして機能する少なくとも1ビットを有する)、前記置き換えフィールドを使用して分離アドレッシングソースからの置き換えられたビットを指し示し、アドレスフィールドの幅及び置換フィールドの幅を逆比例で変化すると共に可変幅データをアドレッシングするための固定幅ワードを維持する。更に、メモリ内の可変幅データをアドレッシングするための次のステップを有する処理が提供される。即ち、部分ワードからなり所定幅のワードを有するメモリを提供し、アクセスされる部分ワードを回転して最下位ビット調整し、アクセスされたワードが部分ワードとして認識されるようにワードの残りの部分を伸張し、ワードの前記残りの部分を復元し、部分ワードがその本来の位置に復帰するまでワードを回転する。
バッファマネージャ
図24は画像フォーマッタを示し、書き込み410用及び読出し用420の2つのアドレス発生器、前記2つのアドレス発生器410及び420を管理し、フレーム率変換を提供するバッファマネージャ、垂直及び水平アップサンプラーを含むデータ処理パイプライン、カラー・空間変換及びガンマ補正、及び前記処理パイプラインの出力を制御する最終制御ブロックにより構成されている。
【0074】
画像フォーマッタの入力に到達するトークン(token)はFIFO440内にバッファされ、バッファマネージャ430に転送される。このブロックは新たな画面の到達を検出し、それぞれを格納するバッファの利用可能性を判断する。利用できるバッファがある場合、それは到達した画面に割り当てられ、そのインデックスはライトアドレス発生器410に転送される。利用できるバッファがない場合、入力ピクチャは1つのバッファが解放されるまで立ち往生する。全てのトークンは書き込みアドレス発生器410に送られる。この動作は1994年3月24日出願の英国特許出願No.9405914.4に詳細が説明されており、参考として本出願に組み込まれている。
【0075】
アドレス発生器420がVSYNC信号をディスプレイシステムから受信する度に、バッファマネージャ430に対して新たな表示バッファインデックスに関する要求が発生する。完全なピクチャデータを含むバッファがあり、そのピクチャが直ちに表示できるとものである場合、バッファのインデックスは表示アドレス発生器に送られる。そうでない場合、バッファマネージャは表示される最後のバッファのインデックスを送る。動作を開始するとき、インデックスとして0が第1バッファが一杯になるまで送られる。その番号(各ピクチャが入力される毎に計算される)が、与えられたフレーム率でそのディスプレイに予想されるピクチャ数(提出数)以上の場合、ピクチャは表示可能と判断される。予想されるピクチャ数はピクチャクロックパルスを計数することにより判断される。ここでピクチャクロックは、クロックドライバによってローカルに発生するか、又は外部から入力してもよい。この技術により、フレーム率変換(例えば2−3プルダウン)が可能となる。
【0076】
外部DRAMをバッファに使用でき、その数は2つ又は3つである。
【0077】
バッファマネージャ430の目的は、ピクチャデータのリードライトに用いる2つ又は3つの外部バッファを示すインデックスをアドレス発生器に供給することである。これらインデックスの割当は3つの主要要因に影響される。各要因は動作のタイミングレジメ(timing regimes)の1つに影響を示している。即ち、画像フォーマッタの入力にピクチャデータが到達する速度(コード化データ速度)、データが表示される速度(表示データ速度)、及びエンコードされたビデオシーケンスのフレーム速度(提出速度)である。
【0078】
3バッファシステムにより、与えられたシステムのタイミング条件の下で、フレームの最も適切なシーケンスを達成するためにフレームが反復又はスキップするように、提出速度と表示速度を互いに異なる値にすることができる。デコーディングが幾分難しいピクチャも又、ピクチャがデコードするために利用できる時間より多くの時間を取る場合、他のもの全てが遅れを取り戻している間に以前のピクチャが反復されるように同様に対応できる。
【0079】
バッファマネージャは各外部バッファに関係するステータス情報を維持することにより動作する。この情報はバッファが使用中か、データで満杯か、又は表示可能か否か、及びバッファに現在格納されているピクチャのシーケンス以内のピクチャ数を示すフラグを含む。提出数も又記録され、この数はピクチャクロックパルスが受信される度に増加される数で、エンコードされたシーケンスのフレーム速度に基づいて表示のために現在予想されるピクチャ数を示す。
【0080】
到着バッファ(入力データが書き込まれるバッファ)は入力にPICTURESTARTトークンが検出される度に割り当てられ、このバッファはIN USEのフラグで示される。PICTURE ENDのとき、到着バッファは割当解除(0にリセット)され、ピクチャ数と提出数の間の関係に依存してFULL又はREADYフラグで示される。
【0081】
表示アドレス発生器はvsync毎に、2線インターフェースを介して新たな表示バッファを要求する。READYのフラグで示されるバッファがある場合、それはバッファマネージャによって表示に割り当てられる。READYのフラグで示されるバッファがない場合、以前に表示されたバッファが反復される。
【0082】
提出数が変化する毎にこれは検出され、完全なピクチャを含むバッファはそのピクチャ数と提出数の間の関係を調べることによって、そのレディネス(READY-ness)がテストされる。次にバッファが考慮され、何れか1つがレディと判断された場合、それは以前にREAYフラグで示された全てのレディネスを自動的にキャンセルする。そしてそれはEMPTYフラグで示される。
【0083】
H261でのTEMPORAL REFERENCEトークンにより、入力ストリーム内にスキップされたピクチャがあることが検出された場合、バッファのピクチャ数は修正される。MPEG内のTEMPORAL REFERENCEトークンには影響されない。
【0084】
FLUSHトークンにより、入力は全てのバッファがEMPTY又は表示バッファとして割り当てられるまで立ち往生する。そして提出数及びピクチャ数はリセットされ、新たなシーケンスが開始可能となる。
【0085】
全てのデータは入力fifo、bm frontからバッファマネージャへ入力される。この転送は2線インターフェースを介して行われ、データ幅は8ビット幅と伸張ビットを足した値である。バッファマネージャに到着する全てのデータは完全なトークンとして保証されており、提出数及び表示バッファを継続して処理する必要性が、データアップストリーム内に著しいギャップが発生した場合に発生する。
【0086】
トークン(8ビットデータ、1ビット伸張)は2線インターフェースを介してライトアドレス発生器に転送される。到着バッファインデックスも又、PICTURE STARTトークンがwaddrgen(write address generator、ライトアドレス発生器)に到着したときと同時に正しいインデックスがアドレス発生用に利用できるように、同一インターフェースで転送される。
【0087】
リードアドレス発生器へのインターフェースは2つの分離2線インターフェースからなり、これらは’リクエスト’及び’アクノリッジ(acknowledge)’信号と各々考えることができる。しかし、2つの2線に基づくステートマシンがどちらかの終端にある場合、単一線形式は適当ではない。
【0088】
dispaddrインターフェースに通常関係する場合のシーケンスは次のようになる。dispaddrは表示装置からのvsyncに応じて、バッファマネージャにdrq valid入力を主張し要求を待ち;disp valid線が主張されバッファインデックスが転送され;通常このバッファインデックスはdispaddrにより即座に受け付けられる。この最後の2線インターフェースに関係する追加の線(rst fld)があり、これは現在のインデックスに関係するフィールド数は以前のフィールド数によらずリセットされなければならない。
【0089】
バッファマネージャブロックは4ビットのマイクロプロセッサアドレス空間を8ビットデータバス及びリードライトストローブと共に使用する。2つの選択信号があり、一方はユーザがアクセスできるロケーションを示し、他方は通常動作条件の下でアクセスの必要がないテストロケーションを示す。
【0090】
バッファマネージャは2つの異なるイベント、即ち発見されたインデックスと遅延到着を生成することができる。これらの中で最初のものは、そのPICTURE START伸張バイト(ピクチャインデックス)が始動時にBU BM TARGET IXレジスタに一致するピクチャが到着したときに主張される。第2のイベントは、ピクチャ数が現在の提出数より少ない、即ちバッファマネージャまでのシステムパイプライン内の処理が提出要求と歩調を合わせるように管理されなかった表示バッファが割り当てられたときに発生する。ピクチャクロックは提出数カウンタに対するクロック信号で、チップ上で発生するか又は外部(通常は表示システム)から入力される。バッファマネージャはこれら両方の信号を受け入れ、pclk ext(バッファマネージャの制御レジスタ内の1ビット)に基づいて、どちからの信号を選択する。この信号は又、画像フォーマッターが自分の画像クロックを発生しているとき、この信号がチップからの出力として利用できるように、パッド(抜き取りパッド)用のイネーブルとしても機能する。
【0091】
バッファマネージャのステートマシン内には19のステートがある。これらは図25に示すように相互に作用する。リセットステートはPRESOで、メインループが初期状態で循環するようにフラグは0にセットされる。
【0092】
ステートマシンのメインループは図26(図25の主要部分)に示す状態からなる。状態PRES0及びPRES1は信号presflgを介したピクチャクロックの検出に関している。関係するテストには2サイクルが許容される。なぜなら、それらは全てrdytstの値に依存しているからである。提出フラグが検出された場合、全てのバッファは可能な’レディネス’について試験される。そうでなければステートマシンはステートDRQに対して進むだけである。PRES0〜PRES1ループ周りの各サイクルでは、フル及びレディ条件をチェックして異なるバッファが調べられる。もしそれらが合致した場合、以前のレディバッファ(1つ存在している場合)はクリアされ、新たなレディバッファが割り当てられ、そのステータスは更新される。この処理はバッファが調べられ(index==max buf)、ステートが進むまで繰り返される。バッファは次に示す条件が真実のときレディと考えられる。
(pic num>pres num)&&((pic num−presnum)>=128)
又は
(pic num<pres num)&&((pres num−picnum)<=128)
又は
pic num==pres num
ステートDRQは表示バッファに対するリクエストをチェックする(drq valid req && disp acc reg)。リクエストがない場合、ステートは(通常、このレター以上のステートTOKENへ)進む。そうでない場合、表示バッファインデックスが次のように発せられる。即ち、レディバッファがない場合、以前のインデックスが再び発せられ、または以前の表示バッファがない場合、ヌル(null)インデックスが発せられる。バッファが表示レディの場合、そのインデックスが発せられ、そのステートが更新される必要があれば以前の表示バッファはクリアされる。そしてステートマシンは前のように進む。
【0093】
ステートTOKENはメインループを完了するための通常のオプションである。即ち、有効入力があり、出力が立ち往生していない場合、tokensが有利な値(後述される)に関して調べられる。そうでない場合、制御はステートPRES0に戻る。
【0094】
制御は或条件が合致したときメインループから分岐する。
【0095】
PRES0−PRES1ループの間、バッファがレディであるか判断され、以前のレディバッファは空きになる必要がある。なぜなら、1つのバッファのみを常にレディに指定できるからである。ステートVACATE RDYは旧いバッファをそのステートをVACANTに設定することによりクリアし、そして制御がPRES0ステートに戻るときに、全てのバッファがレディネスにつてテストされるように、バッファインデックスは1にリセットされる。この理由は、インデックスは現在までに以前のレディバッファを(それをクリアする目的で)指し示しているからであり、我々の意図する新たなレディバッファインデックスの記録がないからである。従ってこれは全てのバッファをリセットするために必要である。
【0096】
表示バッファインデックスの割当は、ステートDRQ(ステートUSE RDY)から直接、或いは旧い表示バッファステートをクリアするステートVACATE DISPを介して行われる。選ばれた表示バッファはIN USEのフラグで示され、rdy bufは0に設定され、インデックスは1にリセットされ、ステートDRQへ戻る。disp bufには必要なインデックスが与えられ、2線インターフェース配線は(disp valid 及び drq acc)がそれに従って制御される。ステートTOKEN、FLUSH 及びALLOC間の判断はステートUSE RDYでは行う必要がないようにするためだけの目的で制御はステートDRQに戻る。
【0097】
PICTURE ENDトークンを受信すると、制御はステートTOKENからステートPICTURE ENDに移行する。ここでインデックスが現在到着したバッファをまだ指し示していない場合、そのステータスを更新できるようにインデックスはそのバッファを指し示すようにセットされる。out acc reg及びen fullの両方が真実の場合を仮定すると、ステータスは後述するように更新される。真実でない場合、制御はそれらが両方共に真実になるまでステートPICTURE ENDに留まる。en full信号はライトアドレスス発生器によって供給され、その信号はスウィングバッファが振られた(例えば最後のブロックが正常に書き込まれ、バッファステータスを安全に更新した)ことを示す。
【0098】
完了したばかりのバッファはレディネスがテストされ、FULL又はREADYステータスがそのテストの結果に応じて与えられる。レディの場合、rdy bufにはそのインデックスの値が与えられ、set la ev信号(後に到着したこと)はハイ(期待されるディスプレイがデコーディングの間に前進したことを示す)にセットされる。arr bufの新たな値は0であり、以前のレディバッファがそのステータスのクリアを必要とする場合、インデックスはそこを指し示すように設定され、制御はステートVACATE RDYに移る。そうでない場合、インデックスは1にリセットされ、制御はメインループの開始点に戻る。
【0099】
PICTURE STARTトークンがステートTOKENの間に到着したとき、フラグfrom psがセットされ、これにより、基本ステートマシンループは、ステートALLOCがステートTOKENの代わりに訪れるように変化する。ステートALLOCは到着バッファ(到着したピクチャデータをこのバッファに書き込むことができる)の割当、及びステータスがVACANTであるものをそれが発見するまでのバッファを介したサイクルに関係している。バッファはout acc regがハイのときに割り当てられるだけである。なぜなら、それはデータ2線インターフェース上に出力され、それでループ周りの動作はこれがその場合になるまで継続することになるからである。適当な到着バッファが発見されると、インデックスがarr bufに割り当てられ、そのステータスはIN USEとしてフラグ表示される。インデックスは1にセットされ、フラグfrom psはリセットされ、ステートはNEW EXP TRに進むようにセットされる。チェックがピクチャのインデックス(PICTURE STARTの次のワード内に含まれる)に対して行われ、それがtarg ix(セットアップのときに特定される目的インデックス)と同一かどうか判断され、同一の場合、set if ev(インデックスの発見されたイベント)はハイにセットされる。
【0100】
3つのステートNEW EXP TR、SET ARR IX及びNEW PIC NUMは新たに期待される一次的参照及び入力データに関するピクチャ数を設定する。ここで、中間ステートは正しいピクチャ数レジスタが更新されるように(this pnumも又更新される)、インデックスをarr bufにセットする。そして制御はステートOUTPUT TAILに進む。このステートはローの伸張に遭遇するまで(この点でメインループが再スタートする)、データ(好適な2線インターフェース信号と仮定する)を出力する。これはデータブロック(64項目)全体が出力されることを意味し、その中で提出フラグまたは表示リクエストに関するテストはない。
【0101】
データストリーム内のFLUSHトークンは、シーケンス情報(提出数、ピクチャ数、rst fld)をリセットすべきことを示す。次第にFLUSHに近づく全てのデータが正しく処理され、従って、全てのフレームがディスプレイに送られたことが確認されるまで全てのバッファのステータスをモニタするために、即ち、殆どバッファの中の1つがステータスEMPTYを有し、他のバッファがIN USE(表示バッファのように)であることをモニタするために、FLUSHが受信されていることが必要である。この時点で、’新たなシーケンス’が安全にスタートできる。
【0102】
FLUSHトークンがステートTOKENで検出された場合、フラグfromflがセットされ、これにより基本的ステートマシンループは、ステートFLUSHがステートTOKENの代わりに訪れるように変化する。ステートFLUSHは各バッファのステータスを順番に調べ、バッファがディスプレイのようにVACANTまたはIN USEになるのを待つ。ステートマシンは条件が真実になるまで単位ループの周りを巡回するだけであり、そのインデックスをインクリメントし、全てのバッファが訪れられるまでその処理を繰り返す。最後のバッファがその条件を満たしたとき、提出数、ピクチャ数、及び全ての一次的参照レジスタはそれらのリセット値を仮定する。即ちrst fldは1にセットされる。フラグfrom flはリセットされ、通常のメインループ動作が再開される。
【0103】
TEMPORAL REFERENCEトークンが遭遇したとき、チェックがH261ビットについて行われ、セットされていれば、4ステートTEMP REF0〜TEMP REF3が訪れられる。これらは次のように動作する。
TEMP REF0:temp ref=in data ref;
TEMP REF1:delta=temp ref−exp tr;index=arr buf;
TEMP REF2:exp tr=delta+exp tr;
TEMP REF3:pic num[i]=this pnum+delta;index=1;
ステートTOKENは制御を、前述した場合を除く全ての場合で、ステートOUTPUT TAILへ渡す。制御はトークンの最後のワードに遭遇するまで(in extn refがロー)そこに留まり、メインループは再入力される。
表示バッファリクエスト及びピクチャクロックの’非同期’タイミングイベントの反復チェックに関する要求、及びこれらのチェックの間にバッファマネージャ入力を立ち往生させる必要性は、バッファマネージャの入力に連続的なデータ供給がある場合、バッファマネージャを介したデータ速度に関する制限があることを意味する。ステートの代表的順番は例えば、PRES0、PRES1、DRQ、TOKEN、OUTPUT TAILであり、OUTPUT TAILを除き各々1サイクル持続する。これは、64データ項目の各ブロックについて、3サイクルのオーバヘッドがあり、その間入力は立ち往生し(ステートPRES0、PRES1及びDRQの間)、それにより3/64倍、即ち5%の書き込み速度が示される。ステートマシンの予備ブランチが最悪の条件で実行されたとき、この数は場合により13サイクルのオーバヘッドまで増加できる。尚、このような大きなオーバヘッドは1フレーム1度(once-per-frame)を基にする場合にのみ適用される。
【0104】
提出数はupiアクセスの間、自由に走る。即ち、提出数はアクセスが得られたときのように、アクセスが止まったときと同一である必要がある場合、これはアクセスが許可された後の提出数を読むことにより、及びアクセスが止まる直前にそれを書き込むことによって行うことができる。尚、これは非同期であるから、アクセスを数回繰り返しそれらが有効であることを確認する必要がある。
【0105】
ライトアドレス発生器410はバッファマネージャ430からトークンを受信し、新たな各DATAトークンの到着を検出する。それぞれが到着したとき、それはDRAMインターフェース450に関する新たなアドレスを計算し、DRAMでは到着したブロックを格納する。行データはDRAMインターフェース450に送られ、そこでスウィングバッファに書き込まれる。ここでDRAMアドレスはブロックアドレスであり、DRAM内のピクチャはブロックのラスターとして組織化される。しかし入力ピクチャデータはマクロブロックのシーケンスとして組織化されるので、アドレス発生アルゴリズムはこれを考慮しなければならない。
RAMインターフェース
単一の高性能構成可能DRAMインターフェース500を図22に示す。このインターフェースは標準独立ブロックで、例えば空間デコーダ(spatial decoder)、一時的デコーダ(temporal decoder)、及びビデオフォーマッタ(video formatter)に必要なDRAMを直接駆動できるように設計されている。このDRAMインターフェースをこれらシステム内のDRAMに接続するための外部ロジック、バッファ又は他の構成要素は必要ない。
【0106】
これら及び他の構成要素の動作は、1944年3月24日に出願された英国特許出願No.9405914.4に詳細に説明されており、又、参考として本願に組み込まれている。
【0107】
インターフェースは2つの方法で構成できる。第1に、インターフェースの詳細タイミングはDRAMの様々なタイプに適応するように構成できる。第2に、DRAMへのデータインターフェースの幅は、異なる用途において適当なコスト/パフォーマンスを提供するように構成できる。
【0108】
各チップ上でDRAMインターフェースはチップを外部DRAMに接続する。このように外部DRAMが使用される。なぜなら、現在のところ、チップ上に比較的大規模なDRAMを製作することは実際的ではないからである。しかし、このようにチップ上に比較的大規模なDRAMを製作することは可能である。
【0109】
DRAMインターフェースは標準独立形式であるが、H261、JPEG、及びMPEGの複数のスタンダード各々を実施できるように構成する必要がある。DRAMインターフェースが複数のスタンダード動作をいかにして可能とするかを以下に説明する。
【0110】
DRAMインターフェース500の動作を理解するために重要なことは、DRAMインターフェース500とアドレス発生器510との関係、及びこの2つが2線インターフェースを使用していかに通信するかを理解することである。2つのアドレス発生器があり、一方は書き込み520で、他方は読出し530である。バッファマネージャ540は本願の各所で詳細に説明されている。
【0111】
簡単に述べると、名前が示唆するように、アドレス発生器はDRAMインターフェースがDRAMをアドレスする(例えばDRAMの特定アドレスにリードライトする)ために必要なアドレスを発生する。2線インターフェースにより、読出し及び書き込みは、DRAMインターフェースが(パイプライン内の前段のステージからの)データと(アドレス発生器からの)有効アドレスの両方を有するときにのみに行われる。別々のアドレス発生器を使用することにより、後述するようにアドレス発生器とDRAMインターフェースの両方が簡単な構造となる。DRAMインターフェースはアドレス発生器と、データが出入りするブロックのクロックの両方に対して非同期なクロックで動作する。このように非同期な動作を採用するために、特別な技術が用いられる。
【0112】
データは通常、DRAMインターフェースとチップの他の部分との間で64バイトのブロック単位で転送される。転送は”スウィングバッファ(swing buffer)”として知られる装置を用いて行われる。これは本質的にダブルバッファ構成で動作する一対のRAMであり、DRAMインターフェースは一方のRAMをデータで充填又は空にし、そのチップの他の部分が他方のRAMをデータで充填又は空にする。アドレス発生器から1つのアドレスを運ぶ分離バスが各スウィングバッファに接続されている。
【0113】
各チップは4つのスウィングバッファを有するが、これらスウィングバッファの機能は各々の場合で異なっている。空間デコーダでは、コード化されたデータをDRAMに転送するために1つのスウィングバッファが使用され、もう1つはDRAMからコード化データをリードするために使用され、第3のスウィングバッファはトークン化(tokenised)されたデータの転送に使用され、第4のものはトークン化されたデータをDRAMからリードするために使用される。一時的デコーダでは、1つのスウィングバッファがintra即ち予想されたピクチャデータをDRAMにライトするために使用され、第2のスウィングバッファはintra即ち予想されたピクチャデータをDRAMからリードするために用いられ、他の2つは前方及び後方の予想データをリードするために用いられる。ビデオフォーマッタでは、1つのスウィングバッファがDRAMにデータを転送するために使用され、他の3つはDRAMからデータをリードするために使用される。その3つのスウィングバッファは明度(Y)、及び赤と青の色差データ(Cr及びCb)をリードするために各々使用される。
【0114】
次にDRAMインターフェースの動作を説明する。このDRAMインターフェースは例として、1つのライトスウィングバッファ502及び1つのリードスウィングバッファ504を有している。
【0115】
アドレス発生器510、DRAMインターフェース500、及びデータを供給及び獲得するチップの他のブロック間の制御506によるインターフェースは、全て2線インターフェースである。アドレス発生器510は制御トークンの受信の結果としてアドレスを発生するか、又は単なるアドレスの固定シーケンスを発生する。DRAMインターフェース500はアドレス発生器510を用いて2線インターフェースを特殊な方法で処理する。受信及び出力可能となったときに受付ラインをハイに保つ代わりに、インターフェース500はアドレス発生器が有効アドレスを供給するのを待ち、そのアドレスを処理し、そして受付ラインを1クロック周期の間ハイにセットする。従ってインターフェース500はリクエスト/アクノリッジ(REQ/ACK)プロトコルを実施する。
【0116】
DRAMインターフェース500固有の特徴は、アドレス発生器510及びデータを提供又は受信するブロックと別々に通信できる能力である。例えばアドレス発生器510はライトスウィングバッファ502内のデータに関係するアドレスを発生できるが、ライトスウィングバッファ502が外部DRAMに書き込み準備完了データブロックがあることを知らせるまで、何の動作も取らない。同様に、ライトスウィングバッファ502は外部DRAMに書き込み準備完了のデータブロックを含むことができるが、アドレス発生器510からの適切なバス上にアドレスが供給されるまで何の動作も取らない。更に、ライトスウィングバッファ502内のRAMの1つがデータで満杯になると、データ入力が立ち往生する前に(2線インターフェースはローにセットされた信号を受ける)、他のRAMを完全に満たしDRAMインターフェース側に”振る(swung)”ことができる。
【0117】
DRAMインターフェース500の動作を理解する上で、適切に構成されたシステムにおいて、DRAMインターフェース500はスウィングバッファ502及び504、及びチップの他の部分間での平均データ転送速度の合計と少なくとも同じ速度で、スウィングバッファ502及び504、及び外部DRAM間でデータを転送できる。
【0118】
各DRAMインターフェース500は、どのスウィングバッファに次にサービスを提供するかを判断する方法を含んでいる。一般に、これは”ラウンドロビン(round robin)”(即ち、サービスされているスウィングバッファが最も以前の順番であったスウィングバッファで、次に利用できるスウィングバッファとなる)か、又は優先度エンコーダ(即ち、幾つかのスウィングバッファが他のものより高い優先度を有する)である。両方の場合で、他の全てのリクエストより高い優先度を有する追加のリクエストがリフレッシュリクエスト発生器から来る。リフレッシュリクエストはマイクロプロセッサインターフェースを介してプログラムできるリフレッシュカウンタから発せられる。
【0119】
ライトスウィングバッファは2ブロックのRAM、即ちRAM1及びRAM2とインターフェースを行う。ここで更に検討されるように、データはライトアドレス及び制御の下で、前段のブロック又はステージからRAM1及びRAM2へ書き込まれる。RAM1及びRAM2からデータはDRAMに書き込まれる。後述するように、DRAMへデータを書き込むときは、アドレス発生器により行アドレスが提供され、列アドレスはライトアドレス及び制御により提供される。動作中、有効データが入力(データ入力)に提供される。データは前段のステージから受信される。各データがDRAMインターフェース500により受信されるとき、データはRAM1に書き込まれ、ライトアドレス制御はRAMアドレスをインクリメント(increment)し、これにより次のデータをRAM1に書き込むことができる。入力データがなくなるか、又はRAM1が満杯になるまで、RAM1へのデータ書き込みは継続する。RAM1が満杯になると、入力側は制御をあきらめ、RAM1が読出し準備完了したことを読出し側へ知られる。このときの信号は2つの非同期クロックレジメ(asynchronous clock regimes)間を通過し、そして3つの同期フリップフロップを介して送られる。
【0120】
RAM2が空の場合、入力側に到達する次のデータはRAM2に書き込まれる。そうでない場合、この処理はRAM2が空になってから行われる。ラウンドロビン又は優先度エンコーダ(これは使用される特定チップによりどちらかが決まる)がそのスウィングバッファが読まれる番であることを示すとき、DRAMインターフェースはそのRAM1の内容を読出し、それを外部DRAMに書き込む。信号は非同期インターフェースを介して戻され、現在、RAM1を再び充填可能であることが示される。
【0121】
DRAMインターフェースがRAM1を空にし、それを入力側がRAM2を満たす前に”振った”場合、データはそのスウィングバッファにより連続的に受信できる。そうではなくRAM2が満たされた場合、スウィングバッファは(RAM1が入力側で使用されるように)RAM1が入力側に”振られる”まで、その受付信号をローに設定する。リードスウィングバッファの動作も同様であるが、入出力データバスが逆になっている。
【0122】
DRAMインターフェース500はメモリのバンド幅を最大にするように設計されている。データの各8×8ブロックは同一DRAMページに格納される。このようにして、1つの行アドレスが多数の列アドレスに続いて供給されるDRAMの高速ページアクセスモードをフルに利用できる。以下に示すように、特に行アドレスがアドレス発生器510により供給される一方で、列アドレスがDRAMインターフェース500により供給される。
【0123】
更に、使用されるDRAMの容量が特定用途に関するサイズ及びバンド幅に適合するように、外部DRAMへのデータバスを8、16、又は32ビット幅にできる機能が提供される。
【0124】
この例では、アドレス発生器510はDRAMインターフェース500に対して、リード及びライトスウィングバッファ505及び502の各々にブロックアドレスを提供している。このブロックアドレスはDRAMの行アドレスとして使用される。列アドレスの6ビットはDRAMインターフェース自身から供給され、これらのビットは又、スウィングバッファRAMのアドレスとしても使用される。スウィングバッファへのデータバスは32ビット幅であるから、外部DRAMへのバスが32ビットより少ないと、2回又は4回の外部DRAMアクセスを、次のワードがライトスウィングバッファから読出される前に、又は次のワードがリードスウィングバッファに書き込まれる前に行わねばならない。(読出し及び書き込みは外部DRAMに対する転送方向を参照している)。
【0125】
尚、DRAMインターフェース500は2つのスウィングバッファに限られるものではない。
【0126】
当業者は本発明に構造的変更を施すことができる。以上の詳細な説明は図面を参照して行われたが、本発明の範囲は特許請求の範囲により定義されるものである。
【図面の簡単な説明】
【図1】図1は同期DRAMをアクセスするための本発明による方法を実施する装置のシステムブロック図。
【図2】図2は図1のステートマシンにより受信されたハイレベルコマンドと、ステートマシンが発生したローレベルコマンドとの相関関係を示す図。
【図3】図3は図1のDRAMの構成を描いた図。
【図4】図4は図1のDRAM内のセルに格納されたワードの構成を描いた図。
【図5】図5はテレビ又はモニタ画面に表示された画像を示し、この画像は長方形格子内に整列された複数セル及び前記整列されたセルに重なる1つの非整列セルから構成されている。
【図6】図6は図5の各セル内の画素の配置を示し、この例で各セルは8×8画素ブロックである。
【図7】図7は図6の各セルを示すデータワード。
【図8】図8は下敷きの整列セル内の非整列セルとその画素との関係を示す。
【図9】図9は図5又は図8のセルを図6のRAMバンクにマッピングした場合を描いた図。
【図10】図10は2バンクのRAMを有し図7のデータワードを格納するために使用されるRAMシステムのブロック図。
【図11】図11は図10のRAMシステムを含み、図5の画面にデジタルビデオ信号を提供するビデオデコーダを描いた図。
【図12】図12は複数の副セルに更に分解される図5又は図8のセル、及び副セルと図10のRAMバンクとの関係を示す。
【図13】図13はマイクロコードできるステートマシンのブロック図。
【図14】図14は演算コアのブロック図。
【図15】図15はレジスタファイルの機能図。
【図16】図16はレジスタファイル内のデータフローを示すブロック図。
【図17】図17はレジスタファイルアドレスデコーディングのブロック図。
【図18】図18はアドレッシングに使用され、幅定義フィールド及びアドレスフィールドを有する固定幅ワードを示す図。
【図19】図19はアドレッシングに使用され、アドレスフィールド、置き換えフィールド、及び置き換えインジケータを有する固定幅ワードを示す図。
【図20】図20は64×32RAM内の8ビットデータをアドレスする場合に使用される13ビットワードの例。
【図21】図21は複数フィールドを有する固定幅わーその一例。
【図22】図22は本発明によるDRAMインターフェースのブロック図。
【図23】図23は1ライト・スイング・バッファ及び1リード・スイングバッファを有するDRAMインターフェースのブロック図。
【図24】図24は画像フォーマッタのブロック図。
【図25】図25はバッファマネージャステートマシンを示す図。
【図26】図26は図25のステートマシンのメインループを示す図。

Claims (11)

  1. ダイナミックランダムアクセスメモリ(DRAM)にアクセスし、2次元画像に関するデータワードを格納しこれを取る方法であって、前記DRAMは、独立した2つのバンクを含み、各バンクは、ページモードで動作してデータワードを読み出し及び書き込むことができ、前記2次元画像は、2次元格子パターンのセルとして配置され、当該2次元格子パターンは、行及び列のセルとして配置され、各セルは、画素のM×Nマトリクスを含み、各セルに関係するワードは、バンクの1以下のページを占有する方法であって、
    (a)前記セルの各々に2つのバンクのうちのいずれかのバンクを割当てて、特定セルに関連する全てのデータワードが特定バンクの1つの特定ページから読み出され及び当該特定ページに書き込まれるようにし、各セルが同一行または同一列内の隣接セルとは異なるバンクに関係するように、セルに対するバンクの割当てが行われるステップと;
    (b)画素のマトリクスより構成され、前記データワードのうち非整列セルに関係するデータワードが互いに隣接するように、時計回りまたは反時計回り方向の所定順序で、前記非整列セルの下のセルに関係するデータワードを読み出すステップと;
    を有することを特徴とするDRAMアクセス方法。
  2. 前記DRAMは第1及び第2バンクを含み、前記非整列セルの下の前記セルに関係するデータワードを読み出す前記ステップ(b)は更に、
    (c)前記2次元格子パターン内のどのセルが前記非整列セルに関係するデータワードを含んでいるか識別し;
    (d)前記DARMの第1バンクから、前記非整列セルに関係するデータワードを含むとして識別された前記格子パターン内のセルの中の1つに関係するデータワードを読み出し;
    (e)前記DRAMの第2バンクから、前記非整列セルに関係するデータワードを含むとして識別された前記格子パターン内のセルの中の他の1つに関係するデータワードを読み出し;
    (f)前記非整列セルに関係するすべてのデータワードが読み出されるまで、前記ステップ(d)及び(e)を繰り返す、ステップを含むことを特徴とする請求項1記載の方法。
  3. ダイナミックランダムアクセスメモリ(DRAM)にアクセスし、2次元画像に関するデータワードを格納しこれを取る方法であって、前記DRAMは、独立した2つのバンクを含み、各バンクは、ページモードで動作してデータワードを読み出し及び書き込むことができ、前記2次元画像は、2次元格子パターンのセルとして配置され、当該2次元格子パターンは、行及び列のセルとして配置され、各セルは、画素のM×Nマトリクスを含み、各セルに関係するワードは、バンクの1以下のページを占有する方法であって、
    (a)前記セルの各々に2つのバンクのうちのいずれかのバンクを割当てて、特定セルに関連する全てのデータワードが特定バンクの1つの特定ページから読み出され及び当該特定ページに書き込まれるようにし、各セルが同一行または同一列内の隣接セルとは異なるバンクに関係するように、セルに対するバンクの割当てが行われるステップと;
    (b)画素のM×Nマトリクスより構成され、前記データワードのうち非整列セルに関係するデータワードが互いに隣接するように、時計回りまたは反時計回り方向の所定順序で、前記非整列セルの下のセルに関係するデータワードを読み出すステップと;
    を有することを特徴とするDRAMアクセス方法。
  4. 前記DRAMは第1及び第2バンクを含み、前記非整列セルの下の前記セルに関係するデータワードを読み出す前記ステップ(b)は更に、
    (c)前記DARMの第1バンクから、前記非整列セルに関係するデータワードを含む前記格子パターン内のセルの中の1つに関係するデータワードを読み出し;
    (d)前記DRAMの第2バンクから、前記非整列セルに関係するデータワードを含む前記格子パターン内のセルの中の他の1つに関係するデータワードを読み出し;
    (e)前記非整列セルに関係するすべてのデータワードが読み出されるまで、前記ステップ(c)及び(d)を繰り返す、ステップを含むことを特徴とする請求項3記載の方法。
  5. 前記DRAMは第1及び第2バンクを含み、非整列セルの下の前記セルに関係するデータワードを読み出す前記ステップ(b)は更に、
    (d)セルの所定順序で、前記非整列セルに関連するデータワードを含む前記格子パターン内の各セルに関係するデータワードを読み出すステップを含み、
    前記セルの所定順序により、連続するセルから読み出されるデータワードは相互のバンクから読み出されることを特徴とする請求項3記載の方法。
  6. 前記所定順序は前記非整列セルに関係するデータワードを含む前記格子内のセルの時計回り方向であることを特徴とする請求項5記載の方法。
  7. 前記所定順序は前記非整列セルに関係するデータワードを含む前記格子内のセルの反時計回り方向であることを特徴とする請求項5記載の方法。
  8. 前記DRAMは第1及び第2バンクを含み、非整列セルの下の前記セルに関係するデータワードを読み出す前記ステップ(b)は更に、
    (c)前記2次元格子パターン内のどのセルが前記非整列セルに関係するデータワードを含んでいるか識別し;
    (d)前記DARMの第1バンクから、前記非整列セルに関係するデータワードを含むとして識別された前記格子パターン内のセルの中の1つに関係するデータワードを読み出し;
    (e)前記DRAMの第2バンクから、前記非整列セルに関係するデータワードを含むとして識別された前記格子パターン内のセルの中の他の1つに関係するデータワードを読み出し;
    (f)前記非整列セルに関係するすべてのデータワードが読み出されるまで、前記ステップ(d)及び(e)を繰り返す、ステップを含むことを特徴とする請求項3記載の方法。
  9. 前記DRAMは第1及び第2バンクを含み、非整列セルの下の前記セルに関係するデータワードを読み出す前記ステップ(b)は更に、
    (c)前記2次元格子パターン内のどのセルが前記非整列セルに関係するデータワードを含んでいるか識別し;
    (d)セルの所定順序で、前記非整列セルに関連するデータワードを含む前記格子パターン内の各セルに関係するデータワードを読み出すステップを含み、
    前記セルの所定順序により、連続するセルから読み出されるデータワードは相互のバンクから読み出されることを特徴とする請求項3記載の方法。
  10. 前記所定順序は前記非整列セルに関係するデータワードを含む前記格子内のセルの時計回り方向であることを特徴とする請求項9記載の方法。
  11. 前記所定順序は前記非整列セルに関係するデータワードを含む前記格子内のセルの反時計回り方向であることを特徴とする請求項9記載の方法。
JP20269195A 1994-03-24 1995-07-18 Dramアクセス方法 Expired - Lifetime JP3741464B2 (ja)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
GB9405914A GB9405914D0 (en) 1994-03-24 1994-03-24 Video decompression
GB9405914.4 1994-03-24
GB9415365.7 1994-07-29
GB9415387A GB9415387D0 (en) 1994-07-29 1994-07-29 Method and apparatus for addressing memory
GB9415391.3 1994-07-29
GB9415387.1 1994-07-29
GB9415365A GB9415365D0 (en) 1994-07-29 1994-07-29 Method for accessing ram
GB9415391A GB9415391D0 (en) 1994-07-29 1994-07-29 Method for accessing banks of dram
GB9503964.0 1995-02-28
GB9503964A GB2287808B (en) 1994-03-24 1995-02-28 Method and apparatus for interfacing with ram

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP7090019A Division JPH0855060A (ja) 1994-03-24 1995-03-24 Ramアクセス方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2000288305A Division JP2001128108A (ja) 1994-03-24 2000-09-22 ビデオ処理装置

Publications (2)

Publication Number Publication Date
JPH08202614A JPH08202614A (ja) 1996-08-09
JP3741464B2 true JP3741464B2 (ja) 2006-02-01

Family

ID=27517238

Family Applications (6)

Application Number Title Priority Date Filing Date
JP7090019A Pending JPH0855060A (ja) 1994-03-24 1995-03-24 Ramアクセス方法
JP7202793A Pending JPH08179984A (ja) 1994-03-24 1995-07-18 メモリをアドレスする処理方法
JP20269195A Expired - Lifetime JP3741464B2 (ja) 1994-03-24 1995-07-18 Dramアクセス方法
JP7202752A Pending JPH08241066A (ja) 1994-03-24 1995-07-18 バッファリングを制御する方法
JP7202744A Pending JPH08179983A (ja) 1994-03-24 1995-07-18 Ramインターフェース装置
JP2000288305A Pending JP2001128108A (ja) 1994-03-24 2000-09-22 ビデオ処理装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP7090019A Pending JPH0855060A (ja) 1994-03-24 1995-03-24 Ramアクセス方法
JP7202793A Pending JPH08179984A (ja) 1994-03-24 1995-07-18 メモリをアドレスする処理方法

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP7202752A Pending JPH08241066A (ja) 1994-03-24 1995-07-18 バッファリングを制御する方法
JP7202744A Pending JPH08179983A (ja) 1994-03-24 1995-07-18 Ramインターフェース装置
JP2000288305A Pending JP2001128108A (ja) 1994-03-24 2000-09-22 ビデオ処理装置

Country Status (2)

Country Link
JP (6) JPH0855060A (ja)
KR (1) KR100275427B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10380029B2 (en) 2016-11-24 2019-08-13 Samsung Electronics Co., Ltd. Method and apparatus for managing memory

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100447134B1 (ko) * 1996-12-28 2006-02-28 엘지전자 주식회사 억세스데이터비트수조절기능및저전력소비기능을구비한디램컨트롤러
KR100442296B1 (ko) * 2002-03-13 2004-07-30 주식회사 하이닉스반도체 반화소 움직임 보상을 위한 프레임 메모리 할당방법
US7469068B2 (en) 2004-05-27 2008-12-23 Seiko Epson Corporation Method and apparatus for dimensionally transforming an image without a line buffer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10380029B2 (en) 2016-11-24 2019-08-13 Samsung Electronics Co., Ltd. Method and apparatus for managing memory

Also Published As

Publication number Publication date
KR100275427B1 (ko) 2000-12-15
JPH08179983A (ja) 1996-07-12
JPH08202614A (ja) 1996-08-09
JP2001128108A (ja) 2001-05-11
JPH08241066A (ja) 1996-09-17
JPH08179984A (ja) 1996-07-12
JPH0855060A (ja) 1996-02-27
KR950033862A (ko) 1995-12-26

Similar Documents

Publication Publication Date Title
US5956744A (en) Memory configuration cache with multilevel hierarchy least recently used cache entry replacement
US5850632A (en) Memory access controller utilizing cache memory to store configuration information
US4660181A (en) Memory system
EP1026600A2 (en) Method and apparatus for interfacing with RAM
JP3741464B2 (ja) Dramアクセス方法
US6560686B1 (en) Memory device with variable bank partition architecture
JPH033254B2 (ja)
GB2287808A (en) Addressing and accessing RAM and data buffering
US6785795B1 (en) Data processing device for use in cooperation with a memory
JPH10144073A (ja) シンクロナスdramのアクセス機構
JPH05113928A (ja) 画像メモリ装置
JP2504582B2 (ja) マトリクス・スキャン回路
US5812829A (en) Image display control system and memory control capable of freely forming display images in various desired display modes
JPH02137040A (ja) 画像処理装置
JP3031581B2 (ja) ランダムアクセスメモリおよび情報処理装置
JPS58138163A (ja) 画信号回転装置
JPH0651751A (ja) 画像表示装置
JPH08147458A (ja) メモリ制御装置
JPS58122688A (ja) メモリ装置
JPH0477941A (ja) 画像制御装置
JPH0118430B2 (ja)
JPH0816509A (ja) 情報処理装置
JPS59219780A (ja) グラフイツクメモリ・アクセス回路
JPS6275485A (ja) デイスプレイ装置
JPH0750391B2 (ja) 表示用メモリ制御装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051108

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091118

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091118

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101118

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101118

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101118

Year of fee payment: 5

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121118

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121118

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131118

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term