JP3803656B2 - 半導体集積回路およびゲーム機用カートリッジ - Google Patents

半導体集積回路およびゲーム機用カートリッジ Download PDF

Info

Publication number
JP3803656B2
JP3803656B2 JP2003172546A JP2003172546A JP3803656B2 JP 3803656 B2 JP3803656 B2 JP 3803656B2 JP 2003172546 A JP2003172546 A JP 2003172546A JP 2003172546 A JP2003172546 A JP 2003172546A JP 3803656 B2 JP3803656 B2 JP 3803656B2
Authority
JP
Japan
Prior art keywords
data
circuit
rom
read
cpu
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 - Fee Related
Application number
JP2003172546A
Other languages
English (en)
Other versions
JP2004046839A (ja
Inventor
利之 三澤
安成 降矢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003172546A priority Critical patent/JP3803656B2/ja
Publication of JP2004046839A publication Critical patent/JP2004046839A/ja
Application granted granted Critical
Publication of JP3803656B2 publication Critical patent/JP3803656B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、半導体メモリからデータを読み出してコンピュータシステムのバス上にデータを出力するための半導体集積回路、および、これを備えたゲーム機用カートリッジに関する。
【0002】
【従来の技術】
コンピュータゲームのゲーム機では、半導体メモリから種々の画像データを読み出しながらゲームが実行される。画像データはデータ量が大きいので、圧縮データとして半導体メモリに格納されているのが普通である。このような場合に、従来は、半導体メモリから読み出された画像の圧縮データをCPUが伸長していた。
【0003】
【発明が解決しようとする課題】
従来は、CPUが伸長処理を行なっていたので、伸長速度が遅いという問題があった。従って、伸長速度が過度に低下するのを防止するため、複雑な圧縮アルゴリズムを採用することができなかった。
【0004】
また、ゲームのために使用されるデータは、画像の圧縮データの他に、ゲームのプログラムコードや、音声の圧縮データ等の種々のデータが存在する。従来は、このような種々のデータをそれぞれに応じたモードで高速で読み出すことが困難であった。
【0005】
この発明は、従来技術における上述の課題を解決するためになされたものであり、半導体メモリに格納された種々のデータを高速に読み出すことのできる半導体集積回路、および、これを備えたゲーム用カートリッジを提供することを目的とする。
【0024】
【課題を解決するための手段およびその作用・効果】
本発明による半導体集積回路は、CPUと前記CPUに接続されたバスとを備えたコンピュータシステムに使用され、圧縮データファイルを格納する圧縮データファイル領域と非伸長対象データを格納する非伸長対象データ領域とプログラムコードを格納するプログラムコード領域とを有する半導体ROMからデータを読み出して前記バス上に出力する半導体集積回路であって、
前記バスを介して前記CPUから設定された第1のパラメータに従って第1の読出アドレスを生成し、前記第1の読出アドレスに応じて前記半導体ROMの前記圧縮データファイル領域から圧縮データファイルを読み出し、読み出された圧縮データファイルを伸長して伸長データを生成するとともに、前記バス上に前記伸長データを出力する第1の読出回路と、
前記バスを介して前記CPUから設定された第2のパラメータに従って第2の読出アドレスを生成し、前記第2の読出アドレスに応じて前記半導体ROMの前記非伸長対象データ領域から非伸長対象データを読み出すとともに、読み出された非伸長対象データを前記バス上に出力する第2の読出回路と、
前記バスを介して前記CPUから供給されたアドレスの中で所定範囲の下位ビット部を前記半導体ROMにそのまま与えることよって前記プログラムコード領域からプログラムコードを読み出し、読み出されたプログラムコードを前記バス上に出力する第3の読出回路と、
前記第1ないし第3の読出回路と前記半導体ROMとの間に接続され、前記第1の読出回路による前記圧縮データファイル領域へのアクセスと、前記第2の読出回路による前記非伸長対象データ領域へのアクセスと、前記第3の読出回路による前記プログラムコード領域へのアクセスとを調停するアクセス調停部を有するROMインタフェイス回路と、
を備え、
前記アクセス調整部は、前記第1ないし第3の読出回路による前記半導体ROMへの同時アクセスを、所定の優先度に従って調整し、
前記所定の優先度は、前記第3の読出回路による前記プログラムコード領域へのアクセスの優先度が最も高く、前記第2の読出回路による前記非伸長対象データ領域へのアクセスの優先度がその次に高く、前記第1の読出回路による前記圧縮データファイル領域へのアクセスの優先度が最も低く設定されていることを特徴とする。
【0025】
圧縮データを読み出す場合には、CPUが第1の読出回路に第1のパラメータを設定すると、第1の読出回路が半導体メモリから圧縮データを読出し、伸長した後に伸長データをバス上に出力する。一方、非伸長対象データを読み出す場合には、CPUが第2の読出回路に第2のパラメータを設定すると、第2の読出回路が半導体メモリから非伸長対象データを読出してバス上に出力する。従って、CPUが第1と第2の読出回路の一方にアクセスしてパラメータを設定することによって、同一の半導体メモリから圧縮データと非伸長対象データとをそれぞれ区別して読み出すことができる。また、第3の読出回路は、CPUが出力したアドレスに応じて半導体メモリからランダムにプログラムコードを読み出すので、CPUが半導体メモリにランダムにアクセスしてプログラムコードを取得することができる。
【0026】
記第1の読出回路は、
前記バスに接続され、前記CPUにより前記第1のパラメータの1つとして設定された圧縮データファイルのファイル番号を記憶するファイル番号レジスタと、
前記ファイル番号に応じて、前記半導体ROM内のアドレステーブル領域から前記第1の読出アドレスを読み出すとともに、前記第1の読出アドレスを前記半導体ROMに与えることによって、前記半導体ROMから圧縮データを読み出すアドレス生成回路と、を備えるものとしてもよい
【0027】
記第1の読出回路は、さらに、
前記バスに接続され、前記CPUにより前記第1のパラメータの1つとして設定されたオフセット値を記憶するオフセット値レジスタと、
前記圧縮データファイルを伸長して得られた前記伸長データの中で、前記伸長データの先頭から前記オフセット値で示される位置までのデータを出力せず、前記オフセット値で示される位置以降のデータを前記バス上に出力するオフセット調整回路とを備えるものとしてもよい
【0028】
記第1の読出回路は、さらに、
前記バスに接続され、前記CPUにより前記第1のパラメータの1つとして設定されたステップ値を記憶するステップ値レジスタと、
前記圧縮データファイルを伸長して得られた前記伸長データの中で、前記ステップ値で指定された間隔で前記伸長データを前記バス上に出力するステップ調整回路とを備えるものとしてもよい
【0029】
記第1の読出回路は、さらに、
前記コンピュータシステムに備えられたDMA転送回路によって前記伸長データをDMA転送するために、前記伸長データを保持するDMA転送用データレジスタを備え、
前記伸長回路の伸長速度は前記DMA転送回路による転送速度以上であるものとしてもよい
【0030】
記第1の読出回路は、さらに、
前記伸長回路で得られた前記伸長データを格納し、格納した伸長データを前記DMA転送用レジスタに供給する伸長データバッファを備え、これによって、前記伸長回路の伸長速度が前記DMA転送回路による転送速度以下である場合にも前記DMA転送回路によって前記伸長データを連続してDMA転送しうるように構成されていてもよい
【0032】
本発明によるゲーム機用カートリッジは、
上述のいずれかの半導体集積回路と、
前記半導体ROMと、を備える。
【0033】
なお、カートリッジ内に収納された半導体メモリの中のすべてのROMのアドレスバスとデータバスが前記半導体集積回路に接続されており、前記ROM内に格納されたデータが前記半導体集積回路を介して読み出されるように構成されているものとしてもよい
【0034】
【発明の実施の形態】
A.装置の全体構成
【0035】
図1は、この発明の一実施例としてのデータ読出用半導体集積回路を備えたコンピュータシステムの構成を示すブロック図である。このコンピュータシステムは、本体部30と、ROMカートリッジ50と、スピーカ52と、カラーディスプレイ54とを備えている。本体部30は、CPU32と、DMAコントローラ34と、RAM36(以下、「ワークRAM」と呼ぶ)と、音声信号生成回路38と、表示制御回路40と、画像データ制御回路42と、ビデオRAM(VRAM)44とを備えている。本体部30内の各回路は、CPUバス31を介して相互に接続されている。また、ROMカートリッジ50は、コネクタ46を介してCPUバス31に接続されている。
【0036】
DMAコントローラ34は、CPU32の代わりにバス31を占有して、ダイレクト・メモリ・アクセス転送(DMA転送)を行なう回路である。この実施例では、例えば、ROMカートリッジ50内のROMに格納された画像データをVRAM44に転送する処理を実行する。音声信号生成回路38は、CPU32から与えられたデータに応じて音声信号を生成し、この音声信号をスピーカ52に供給する。表示制御回路40は、画像データ制御回路42によってVRAM44から読み出された画像データから映像信号を生成し、この映像信号をカラーディスプレイ54に供給する。画像データ制御回路42は、VRAM44から画像データを読み出して表示制御回路40に与える制御を行なうとともに、VRAM44に種々の画像データを書き込む制御等も実行する。
【0037】
このコンピュータシステムはゲーム機であり、アプリケーションプログラムを格納したROMカートリッジ50をコネクタ46に差込むことによって種々のゲームを実行することができる。
【0038】
図2は、ROMカートリッジ50の内部構成を示すブロック図である。ROMカートリッジ50は、データ読出用半導体集積回路(以下、「データ読出用IC」と呼ぶ)60と、2つのROM62,64とを備えている。第1のROM62は圧縮画像データと非伸長対象データとを格納するマスクROM(以下、「データROM」と呼ぶ)であり、第2のROM64はゲームのアプリケーションプログラムを格納するROM(以下、「プログラムROM」と呼ぶ)である。第1のROM62はデータ読出用IC60に接続されており、また、第2のROM64はバス31に直接接続されている。CPU32はプログラムROM64に直接アクセスできるので、プログラムROM64に格納されたプログラムコードにランダムにアクセスことができる。プログラムROM64として、読出速度がデータROM62よりも高速なROMを用いるようにすれば、アプリケーションプログラムをスムースに実行することができる。
【0039】
データ読出用IC60は、CPUバス31に接続されるCPUインタフェイス70と、Cポートアクセス部72と、Dポートアクセス部74と、Tポートアクセス部76と、2つのROM62、64に接続されたROMインタフェイス78とを備えている。ROMインタフェイス78は、CポートとDポートとTポートの3つのポートを有している。
【0040】
Cポートアクセス部72は、ROMインタフェイス78のCポートを介してデータROM62から圧縮データを読み出すための回路であり、本願発明における第1の読出回路に相当する。なお、Cポートアクセス部72は、データROM62から読み出された圧縮データを伸長する伸長回路80を有している。Dポートアクセス部74は、ROMインタフェイス78のDポートを介してデータROM62から非伸長対象データを読み出すための回路であり、本願発明における第2の読出回路に相当する。Tポートアクセス部76は、ROMインタフェイス78のTポートを介してCPU32から与えられたアドレスの所定の下位ビットをそのままデータROM62に与えてデータを読み出すための回路であり、本願発明における第3の読出回路に相当する。
【0041】
なお、ROMインタフェイス78は、3つのアクセス部72,74,76がデータROM62に同時にアクセスした場合に、所定の優先度に従ってアクセスを調停するアクセス調停部79を有している。このアクセスの優先度は、例えば、Tポートアクセス部76、Dポートアクセス部74、Cポートアクセス部72の順に予め設定される。以下では、3つのアクセス部72,74,76の内部構成と動作について順次説明する。
【0042】
B.Cポートアクセス部の内部構成と動作
【0043】
図3は、Cポートアクセス部72の内部構成を示すブロック図である。Cポートアクセス部72は、伸長回路80の他に、CPU32によって設定された種々のパラメータを記憶する第1のレジスタ群102〜110と、Cポートアクセス部72で得られたデータをCPUインタフェイス70を介してCPUバス31上に出力する第2のレジスタ群112〜118と、伸長データバッファ120と、2つのアドレス生成回路122,124と、圧縮データバッファ126と、マルチプレクサ128とを備えている。
【0044】
第1のレジスタ群102〜110は、ベースアドレスレジスタ102と、ファイル番号レジスタ104と、オフセット値レジスタ106と、ステップ値レジスタ108と、トリガレジスタ110とを含んでいる。また、第2のレジスタ群112〜118は、ステータスレジスタ112と、伸長データ長レジスタ114と、伸長データレジスタ116と、DMA用データレジスタ118とを含んでいる。CPU32は、第1のレジスタ群102〜110にパラメータを設定することによって、所望の圧縮データファイルを読み出すことができる。
【0045】
伸長回路80は、シーケンサ82とオフセット/ステップ調整回路84とを備えている。シーケンサ82は、第2のアドレス生成回路(読出アドレス生成回路)124のアドレスのインクリメントのタイミングを指示する機能を有する。また、オフセット/ステップ調整回路84は、オフセット値レジスタ106に設定されたオフセット値とステップ値レジスタ108に設定されたステップ値とに応じて、伸長データの中の有効なデータのみを伸長データバッファ120に書き込む機能を有する。これらの機能については更に後述する。
【0046】
図4は、CPU32から見たアドレスマップを示す説明図である。プログラムROM64は、CPU32のアドレス空間に直接に割り当てられている。一方、データROM62内のデータは、データ読出用IC60の読出ポートを介してアクセスするようにマッピングされている。データROM62は、圧縮データ用テーブル62aと、圧縮データファイル領域62bと、非伸長対象データ領域62cとを有している。圧縮データ用テーブル62aと圧縮データファイル領域62bは、Cポートアクセス部72によってアクセスされる。また、非伸長対象データ領域62cはDポートアクセス部74によってアクセスされる。Tポートアクセス部76によってアクセスされる場合については後述する。
【0047】
図5は、圧縮データ用テーブル62aと圧縮データファイル領域62bの内容を示す説明図である。圧縮データ用テーブル62aでは、各圧縮データファイルがファイル番号で互いに区別されており、各ファイル番号の圧縮データファイルのデータ属性と、圧縮データファイルが格納されているアドレスH,M,Lとが登録されている。データ属性は、例えばバイナリデータ(2値の白黒画像データ)、4色画像データ、16色画像データ等の種々の画像データのタイプを示している。また、各8ビットの3つのアドレスH,M,Lは、圧縮データファイル領域62bにおける圧縮データファイルの先頭アドレスBNを示す合計24ビットのアドレスを構成する。従って、圧縮データ用テーブル62aの先頭アドレス(ベースアドレス)Abと、圧縮データファイルのファイル番号Nとを指定することによって、指定されたファイル番号Nに対応する圧縮データファイルの先頭アドレスBNとそのデータ属性とを圧縮データ用テーブル62aから読み出すことができる。そして、この先頭アドレスBNを用いて、圧縮データファイル領域62bから圧縮データファイルを読み出すことができる。
【0048】
図6は、圧縮データファイルで表わされる画像の例を示す説明図である。1つの圧縮データファイルで表わされる画像のサイズは様々であり、図6(A),(B),(C)の画像はそれぞれ8×8キャラクタ、5×4キャラクタ、1キャラクタで構成されている。ここで、1キャラクタとは8×8画素の正方領域内の画像部分を意味しており、各キャラクタ単位に画像が圧縮されている。
【0049】
ゲームなどのアプリケーションプログラムに必要とされる画像の数や、各画像のデータ属性、各画像のサイズなどは、各プログラム毎にかなり異なる。また、各画像の圧縮データファイルのデータ量も同一では無い。そこで、図5に示すように、各圧縮データファイルにファイル番号を割り当てておき、ファイル番号に従って、データROM62内のテーブル62aにファイル番号Nと圧縮データファイルの先頭アドレスBNとの関係を登録してこき、このテーブル62aから圧縮データファイルの先頭アドレスBNを読み出すようにすれば、プログラム作成者が任意の属性で任意のサイズの画像を任意の数だけ使用することができる。従って、アプリケーションプログラムの作成における融通性が高まるという利点がある。
【0050】
図7は、Cポートアクセス部72による圧縮データの読出手順を示すフローチャートである。ステップS1では、Cポートアクセス部72の初期化ルーチンが実行される。
【0051】
図8は、初期化ルーチンの詳細を示すフローチャートである。ステップS11では、CPU32が、図3に示すベースアドレスレジスタ102と、ファイル番号レジスタ104と、オフセット値レジスタ106と、ステップ値レジスタ108とにそれぞれのデータを設定する。ベースアドレスレジスタ102には、図5に示す圧縮データ用テーブル62aの先頭を示すベースアドレスAbが設定される。ファイル番号レジスタ104には、読出したい圧縮データファイルのファイル番号Nが設定される。オフセット値レジスタ106に設定されるオフセット値と、ステップ値レジスタ108に設定されるステップ値については後述する。
【0052】
ステップS12では、CPU32がトリガレジスタ110にアクセスすることによって、Cポートアクセス部72に圧縮データの読出しを開始させる。すなわち、Cポートアクセス部72は、CPU32がトリガレジスタ110にアクセスしたことを検知すると、ステップS13以降の処理を開始する。
【0053】
ステップS13では、伸長回路80(図3)がステータスレジスタ112をビジーに設定する。ステータスレジスタ112がビジーの場合には、CPU32がCポートアクセス部72から伸長データを読み出すことが禁止される。ステップS13の時点では伸長データが得られていないので、ステータスレジスタ112をビジーに設定することによって、CPU32によるデータの読出しを禁止する。ステップS13ではさらに、圧縮データバッファ126と伸長データバッファ120とがリセットされる。
【0054】
ステップS14では、テーブルアドレス生成回路122(図3)が、ステップS11で設定されたベースアドレスAbとファイル番号Nとに応じて、圧縮データ用テーブル62aの読出アドレスを生成する。例えば、圧縮データ用テーブル62aに登録されている各ファイル番号に関するデータが4バイトである場合には、ファイル番号Nに関するデータのアドレスANは、次の式(1)で算出される。
【0055】
AN=Ab+N*4 …(1)
【0056】
テーブルアドレス生成回路122で生成されたアドレスANは、マルチプレクサ128とROMインタフェイス78を介してデータROM62に与えられる。この結果、ステップS15において、ファイル番号Nの圧縮データファイルの先頭アドレスBNが読み出される。なお、データROM62から読み出された先頭アドレスBNは、ROMインタフェイス78を介して読出アドレス生成回路124に供給される。後述する圧縮データの取り込みルーチンでは、読出アドレス生成回路124が、この先頭アドレスBNに基づいて圧縮データファイルの読出アドレスを生成する。
【0057】
こうして初期化ルーチンが終了すると、図7のステップS2において、圧縮データバッファ126に格納されている圧縮データのデータ量nが、所定の最低データ量n1以上であるか否かが判断される。最低データ量n1としては、例えば1バイト程度が設定される。もちろん、伸長時の最低データ量n1として2バイト以上の任意の値を設定することも可能である。圧縮データの読出処理の最初の時点では、圧縮データバッファ126はリセットされており、圧縮データバッファ126は空なので、ステップS2からステップS3に移行し、圧縮データの取り込みルーチンが実行される。
【0058】
図9は、圧縮データの取り込みルーチンの手順を示すフローチャートである。このルーチンでは、読出アドレス生成回路124がデータROM62の実アドレス(「物理アドレス」とも呼ぶ)をインクリメントしながら(ステップS21)、データROM62から圧縮データを1バイトずつ圧縮データバッファ126に読込む処理が繰返される。図3の回路から解るように、読出アドレス生成回路124で生成された実アドレスはマルチプレクサ128とROMインタフェイス78とを介してデータROM62に与えられ、データROM62から読み出された圧縮データは圧縮データバッファ126に蓄積される。図7のステップS2における伸長時の最低データ量n1が1バイトである場合には、1バイトの圧縮データが圧縮データバッファ126に読込まれると、ステップS2からステップS4に移行する。
【0059】
ステップS4では、圧縮データバッファ126に格納されている圧縮データのデータ量nが、圧縮データバッファ126の容量n2に等しいか否か、すなわち圧縮データバッファ126が満杯か否かが判断される。圧縮データバッファ126が満杯で無ければステップS6とステップS7が同時に実行されて、圧縮データの取り込みと伸長とが同時に行なわれる。圧縮データの取り込みと伸長は、それぞれ専用のハードウェア回路(読出アドレス生成回路124と伸長回路80)によって実行されるので、これらの2つの処理を同時に実行することが可能である。
【0060】
図10は、伸長回路80によって実行される伸長ルーチンの手順を示すフローチャートである。ステップS31では、ステータスレジスタ112をビジーに設定することによって、CPU32が伸長データを読み出すことを禁止する。ステップS32では、伸長回路80が圧縮データバッファ126から圧縮データを所定量(例えば1バイト)だけ取り込む。ステップS33では、伸長回路80が圧縮データを伸長し、ステップS34では伸長データバッファ120に伸長データを書き込む。ステップS35では、伸長データバッファ120に格納されている伸長データのデータ量mが、所定の最低データ量m1以上であるか否かが判断される。この最低データ量m1としては、例えば1バイト程度が設定される。もちろん、読出時の最低データ量m1として2バイト以上の任意の値を設定することも可能である。
【0061】
伸長データのデータ量mが読出時の最低データ量m1未満の場合には、ステップS35からステップS31に戻り、ステップS31〜S34を再度実行して伸長処理を行なう。一方、伸長データのデータ量mが読出時の最低データ量m1以上になった場合には、ステップS35からステップS36に移行する。ステップS36では、ステータスレジスタ112がレディとなり、これによってCPU32の読出しを許可する。ステータスレジスタ112は、伸長データバッファ120に所定量以上の伸長データが貯まっており、伸長データレジスタ116にデータがセットアップされていればレディとなる。CPU32は、ステータスレジスタ112を一定時間毎に監視(すなわちポーリング)し、ステータスレジスタ112がレディであれば、伸長データレジスタ116から1バイトの伸長データを読込む。
【0062】
そして、CPU32によって伸長データが読込まれると、ステップS37からステップS31に戻り、ステップS31〜S37の処理を繰返す。CPU32によってデータが読込まれたか否かは、CPU32から伸長データレジスタ116のアドレスとリードパルスが出力されたことを検出することによって判断される。なお、伸長データ長レジスタ114は、伸長対象となっている圧縮データの伸長時のデータ量のうち、CPU32に読み出されていないデータ量を示している。すなわち、伸長処理の開始時に、圧縮データの伸長時のデータ量が初期値として伸長データ長レジスタ114に設定され、伸長データがCPU32によって読込まれる際にその値がデクリメントされる。
【0063】
このように、読出アドレス生成回路124はデータROM62から圧縮データを順次読み出して圧縮データバッファ126に格納し、伸長回路80は圧縮データを順次伸長していくので、図7のステップS6とステップS7を同時に実行することが可能である。また、伸長処理の最中に、CPU32が伸長データを読込むことも可能である。
【0064】
ところで、伸長された画像データをDMA転送によってCポートアクセス部72からVRAM44やワークRAM36(図1)に転送する場合もある。この場合には、DMAコントローラ34がバス31の使用権をCPU32から取得し、Cポートアクセス部72内のDMA用データレジスタ118(図3)に格納された伸長データを順次VRAM44またはワークRAM36にDMA転送する。圧縮データの伸長は、専用のハードウェア回路である伸長回路80で行なうので、DMA転送の転送速度以上の伸長速度で圧縮データを伸長して、DMA転送がスムースに行なえるようにすることが可能である。例えば、伸長回路80がその動作クロックの1周期ごとに1ビットずつ伸長する動作を行なう場合には、伸長回路80の動作クロックが、DMAコントローラ34の転送速度の8倍の周波数に設定される。こうすれば、8クロック分の周期の間に1バイトの伸長データが得られるので、その1バイトの伸長データをDMAコントローラ34の転送速度で転送することができる。
【0065】
一般に、データの圧縮や伸長に要する時間はデータの内容に依存する。ゲームカートリッジ内のROMに格納するデータの圧縮は、そのゲームデータの作成時に、いわゆるオーサリングツールを用いて行なわれる。つまり、ゲームデータの作成時には、圧縮データの伸長に要する時間を知ることが可能である。従って、伸長速度がDMA転送速度を下回った場合にも、伸長データバッファ120に貯えられたデータを順次転送していくことによって、ある程度連続的なDMA転送を行なうことが可能である。伸長データバッファ120は、このように、伸長速度がDMA転送速度を下回った場合にも、ある程度連続的なDMA転送を行なうために設けられている。
【0066】
C.Cポートアクセス部によるオフセット/ステップ読出処理
【0067】
Cポートアクセス部72は、オフセット値レジスタ106とステップ値レジスタ108に設定された値に応じて、下記に示すような伸長データのオフセット読出処理やステップ読出処理を行なうことができる。
【0068】
図11は、オフセット読出処理の内容を示す説明図である。図11(A)は、1つの圧縮データファイルから伸長された伸長データで表わされる画像の全体を示している。この画像は、8×8キャラクタのサイズを有し、64個のキャラクタで構成されている。各枠内に記載された1〜64の番号は、単にキャラクタの順番を示している。オフセット値OFが0に設定されている場合には、この全画像の伸長データが伸長データバッファ120に転送されてCPU32に読み出される。
【0069】
オフセット/ステップ調整回路84(図3)は、オフセット値OFで示されるバイト数の伸長データを廃棄し、それ以降のキャラクタの伸長データを伸長データバッファ120(図3)に転送する。例えば、オフセット値OFが24キャラクタ分のバイト数(=24×64=1536バイト)に設定されている場合には、図11(B)に示すように、24番目のキャラクタまでの伸長データは廃棄され、25番目のキャラクタ以降の伸長データが伸長データバッファ120に転送される。
【0070】
なお、CPU32は、伸長データ長レジスタ114の内容をポーリングすることによって、伸長データを何バイト読込んだかを知ることができる。そして、必要なバイト数の伸長データを読込んだところで伸長データレジスタ116からのデータの読み込みを停止することができる。例えば、オフセット読出処理によって25番目以降のキャラクタを読出し、48番目のキャラクタまで読込んだ時点で伸長データの読込みを停止することができる。また、この後、CPU32がキャラクタ28〜32,36〜40,44〜48を廃棄すれば、キャラクタ25〜27,33〜35,41〜43で構成される部分の伸長データのみを読込むことが可能である。
【0071】
なお、Cポートアクセス部72(図3)に、読出すべき伸長データのデータ長を設定するための読出データ長レジスタを設けておくようにしてもよい。こうすれば、オフセット値以降の伸長データをCPU32が読出データ長レジスタに設定されたデータ長だけ読み出した時点で、読出しを停止することができるので、CPU32にる伸長データ長レジスタ114のポーリングが不要になり、CPU32の負担が軽減されるという利点がある。
【0072】
図12は、ステップ処理の内容を示す説明図である。図12(A)の例では、1キャラクタの8×8画素の画像データが2プレーンで構成されている。各プレーンは1ドット当たり1ビットのデータを有しており、2プレーンで1ドット当たり4色の色が表現されている。また、各プレーンの1行分の8ビットによって、画像データの1バイトが構成されている。このとき、バイト単位のステップ読出しを行なうことによって、画素の間引きを実現することができる。図12(B)は、ステップ値STを1バイトに設定した場合に、ステップ読出しによって得られる間引き画像を示す説明図である。すなわち、ステップ読出処理では、ステップ値STで示されるバイト数のデータが飛び越されて、残りの伸長データが伸長データバッファ120に転送される。
【0073】
このように、オフセット/ステップ読出しを行なうことによって、1つの圧縮データファイルで表わされる全画像の中の一部分のみを選択的に表示することができる。なお、バイト単位でオフセット値とステップ値を設定した場合には、廃棄されるデータと読込まれるデータとの境界はキャラクタの境界とは無関係である。
【0074】
なお、オフセット値OFとステップ値STは、バイト単位の値に限らず、キャラクタ単位、ライン単位、画素単位などの種々の単位で設定することが可能である。オフセット値とステップ値がどの単位で設定されているかは、オフセット値レジスタ106とステップ値レジスタ108内の特定のビットに設定される。種々の単位のオフセット値とステップ値とを組み合わせて使用することによって、所望の割合で伸長データの廃棄を行ないつつ、伸長データを外部に出力することが可能である。
【0075】
図13と図14は、バイト単位のオフセット/ステップ読出しの伸長ルーチンを示すフローチャートである。オフセット値OFとステップ値STの少なくとも一方が0でない場合には、図10のルーチンの代わりに図13と図14のルーチンが実行される。図13の伸長ルーチンは、図10の伸長ルーチンにおけるステップS34(伸長回路80から伸長データバッファ120へのデータ書込み)をステップS40(オフセット/ステップ調整)で置き換えたものである。ステップS40の詳細手順は図14に示されている。
【0076】
図14のステップS41では、オフセット/ステップ調整回路84が、オフセット読出モードに設定されているか否かを判断する。オフセット値レジスタ106に0以外の値が設定されている場合にはオフセット読出モードであると判断して、ステップS42の処理を実行する。一方、オフセット値レジスタ106内の設定値が0である場合にはステップS42の処理が省略される。ステップS42では、伸長回路80が伸長した1バイト目からk1バイト目までの伸長データを廃棄する。ここで、k1は、オフセット値レジスタ106に設定されたオフセット値で表わされるバイト量である。
【0077】
ステップS41では、オフセット/ステップ調整回路84が、ステップ読出モードに設定されているか否かを判断する。ステップ値レジスタ108に0以外の値が設定されている場合にはステップ読出モードであると判断して、ステップS44の処理を実行する。一方、ステップ値レジスタ108内の設定値が0である場合にはステップS44の処理が省略される。ステップS44では、伸長回路80内に残っている伸長データが、k2バイトに1バイトずつ伸長データバッファ120に転送され、他の(k2−1)バイトは廃棄される。ここで、k2は、ステップ値レジスタ108に設定されたステップ値で表わされるバイト量である。
【0078】
なお、CPU32がオフセット値レジスタ106とステップ値レジスタ108に設定される値は、前述したようにバイト単位、キャラクタ単位、ライン単位、画素単位などの種々の単位で設定することができる。図14におけるk1とk2の値は、これらの設定値をバイト単位に換算した値である。なお、キャラクタ単位のステップ読出しを行なう際には、k2バイト中のk21バイトを伸長データバッファ120に取り込み、k2バイト中の残りのk22バイトを廃棄する。ここで、k2=k21+k22である。キャラクタ単位のステップ読出しを行なう場合には、これらの3つの値k2,k21,k22がステップ値として設定される。
【0079】
このように、伸長回路80が生成した伸長データは、オフセット/ステップ調整処理が行なわれた後に伸長データバッファ120に書き込まれるので、画像の所望の一部分のみを外部に出力することが可能である。
【0080】
以上説明したように、Cポートアクセス部72は、CPU32によって指定された圧縮データファイルをデータROM62から読み出して伸長しつつ、バス31上にその画像の所望の部分を表わす伸長データのみを出力することができる。圧縮データファイルの指定は、圧縮データ用テーブル62a(図5)の先頭を示すベースアドレスAbと、圧縮データファイルのファイル番号Nとを設定するだけで行なえるので、データROM62内に格納された多数の圧縮データファイルから所望のファイルを容易に読み出すことができる。なお、圧縮データ用テーブル62aのベースアドレスAbを所定の値に固定しておくようにすることも可能である。この場合には、CPU32がファイル番号Nを指定するだけで圧縮データファイルを読み出すことが可能である。
【0081】
D.Dポートアクセス部の内部構成と動作
【0082】
図15は、Dポートアクセス部74の内部構成を示すブロック図である。Dポートアクセス部74は、Dベースアドレスレジスタ202と、Dオフセット値レジスタ204と、Dステップ値レジスタ206と、D制御レジスタ208と、Dトリガレジスタ210と、Dデータレジスタ212と、2つの符号制御器214,216と、バッファ218と、アドレス増減制御部220と、読出アドレス生成回路222とを備えている。
【0083】
Dポートアクセス部74は、前述した図4に示すように、データROM62内の非伸長対象データ領域62cに格納されている非伸長対象データを読み出す処理を実行する。なお、この明細書において、「非伸長対象データ」とは、データ読出用IC60内の伸長回路80で伸長されないデータを意味しており、CPU32などの他の回路で伸長される圧縮データも含んでいる。例えば、ADPCMで圧縮された音声データも、ここで言う非伸長対象データである。
【0084】
Dポートアクセス部74のDベースアドレスレジスタ202は、読出しの対象となる非伸長対象データの先頭アドレスを設定するレジスタである。Dオフセット値レジスタ204とDステップ値レジスタ206は、Cポートアクセス部72のオフセット値レジスタ106(図3)とステップ値レジスタ108とにそれぞれ対応する。但し、Dポートアクセス部74はデータROM62から非伸長対象データを読み出す回路なので、後述するように、オフセット/ステップ読出処理の内容は、Cポートアクセス部72におけるものとは若干異なっている。
【0085】
Dトリガレジスタ210は、Cポートアクセス部72のトリガレジスタ110に相当するレジスタである。また、Dデータレジスタ212はCポートアクセス部72の伸長データレジスタ116に相当するレジスタである。
【0086】
CPU32は、Dベースアドレスレジスタ202と、Dオフセット値レジスタ204と、Dステップ値レジスタ206と、D制御レジスタ208とにパラメータを設定することによって、所望の非伸長対象データを読み出すことができる。
【0087】
非伸長対象データ領域62cに格納されているデータの種類としては、プログラムコードや音声データ等がある。プログラムコードは、図2に示すプログラムROM64に格納されているが、プログラムコードのデータ量が大きな場合には、使用頻度の少ないプログラムコードをデータROM62に格納しておき、Dポートアクセス部74によって読み出すようにすることが可能である。読み出されたプログラムコードは、本体部30のワークRAM36に転送しておけば、ランダムにアクセスして実行することができる。
【0088】
音声データは、画像データとは異なる方法で圧縮されている場合が多い。このような場合には、音声データを非伸長対象データ領域62cに格納しておき、Dポートアクセス部74を介して読み出した後でCPU32によって伸長するようにすればよい。この例からも解るように、Dポートアクセス部74によってアクセスされる非伸長対象データ領域62cには、Cポートアクセス部72の伸長回路80で伸長できない圧縮データを格納しておく場合もある。この明細書において、「非伸長対象データ」とは、Cポートアクセス部72内の伸長回路80で伸長されない各種のデータを含む広い意味を有する。
【0089】
非伸長対象データ領域62cには、フォント画像で構成される画像のマッピング情報が格納されている場合も多い。図16は、フォント画像とマッピング情報とを示す説明図である。ここで、「フォント画像」とは、互いに組み合わされて1つの画像を構成するような画像部品を意味する。図16(A)〜(D)は、種々の波の形を有するフォント画像の例である。図16(A)〜(D)の例では各フォント画像は1キャラクタのサイズを有しているが、複数キャラクタで1つのフォント画像が構成されている場合もある。
【0090】
図16(E)は、図16(A)〜(D)に示す4つのフォント画像を組み合わせることによって作成された波の画像を示しており、図16(F)は、この画像に対応するマッピング情報を示している。図16(F)の各枠内の文字「A」〜「D」は、図16(A)〜(D)に示す4つのフォント画像をそれぞれ表わしている。図16(E)と(F)とを比較すれば解るように、マッピング情報は、各フォント画像をどの位置に配置するかを示す情報である。このようなマッピング情報をフォント画像とは別に作成しておくことによって、少ないフォント画像から様々な画像を構成することができる。マッピング情報は比較的データ量が少なく、また、ゲームの進行に応じて頻繁に変化する。従って、マッピング情報を図16(F)に示すようなテーブルの形で非伸長対象データ領域62cに格納しておき、Dポートアクセス部74によって読み出すようにすることによって、ゲームの進行に応じた画像を高速に表示することができる。
【0091】
図16(A)〜(D)に示すようなフォント画像の画像データは、圧縮データファイルとしてデータROM62内の圧縮データファイル領域62bに格納されている。従って、図16(E)の画像を表示する際には、これらのフォント画像を表わす圧縮データファイルがCポートアクセス部72によって読み出され、これと同時に、非伸長対象データ領域62cに格納されたマッピング情報がDポートアクセス部74によって読み出される。そして、CPU32がフォント画像の伸長データとマッピング情報とから図16(E)に示すような画像を構成してVRAM44に書き込むことによって、この画像がカラーディスプレイ54に表示される。
【0092】
なお、上記のような場合において、Cポートアクセス部72によるデータROM62へのアクセスと、Dポートアクセス部74によるアクセスとが干渉する場合がある。さらに、Tポートアクセス部76によるアクセスも干渉する場合がある。このような場合には、ROMインタフェイス78内のアクセス調停部79(図2)が所定の優先度に応じてアクセスを調停する。通常は、高速なデータ読出しが必要な順に、また、連続して読み出されるデータ量が少ない順に高い優先度が設定される。この実施例では、この理由から、Tポートアクセス部76、Dポートアクセス部74、Cポートアクセス部72の順に高い優先度が設定されている。
【0093】
図17は、Dポートアクセス部74によるアクセスの処理手順を示すフローチャートである。ステップS51では、CPU32が、Dベースアドレスレジスタ202と、Dオフセット値レジスタ204と、Dステップ値レジスタ206と、D制御レジスタ208にそれぞれパラメータを設定する。D制御レジスタ208は、オフセット/ステップ調整処理のためのパラメータi,jを設定するレジスタである。これらのパラメータi,jの機能については後述する。
【0094】
ステップS52では、CPU32がDトリガレジスタ210にアクセスすることによって、Dポートアクセス部74にステップS53以降の処理を開始させる。すなわち、Dポートアクセス部74は、CPU32がDトリガレジスタ210にアクセスしたことを検知すると、ステップS53以降の処理を開始する。
【0095】
ステップS53では、読出アドレス生成回路222が、データROM62の物理アドレスADを次の(2)式に従って生成する。
【0096】
AD=ADb+i*ADo …(2)
【0097】
ここで、ADbはDベースアドレスレジスタ202に設定されたベースアドレス、ADoはDオフセット値レジスタ204に設定されたオフセット値(バイト)、iはD制御レジスタ208に設定されたオフセットパラメータである。なお、演算子「*」は、オフセットパラメータiによって、アドレスADoの符号が制御されることを示している。オフセットパラメータiは、オフセットを有効とする場合に1に設定され、オフセットを無効とする場合には0に設定される。
【0098】
図15に示されるように、第1の符号制御器214は、オフセットパラメータiに応じてオフセット値ADoの正負の符号を制御して、読出アドレス生成回路222にその結果を与えている。具体的には、第1の符号制御器214は、2の補数表現されたオフセット値ADoに対して符号反転をするか否かの制御を行なっている。読出アドレス生成回路222は、第1の符号制御器214から与えられた値i*ADoとベースアドレスADbとを加算することによって、上記の(2)式で与えられる物理アドレスADを求めることができる。
【0099】
図17のステップS54では、ステップS53で得られた物理アドレスADに従ってデータROM62からデータが読み出される。読み出されたデータは、ROMインタフェイス78を介してバッファ218に一旦格納される。
【0100】
ステップS55では、アドレス増減制御部220がDデータレジスタ212をポーリングして、Dデータレジスタ212内のデータがCPU32によって読込まれたか否かを判断する。CPU32によってデータが読込まれていれば、アドレス増減制御部220がその旨を読出アドレス生成回路222に通知し、ステップS56に移行する。ステップS56では、読出アドレス生成回路222が、次の(3)式に従って物理アドレスADを更新する。
【0101】
AD=AD+j*ADs …(3)
【0102】
すなわち、読出アドレス生成回路222は、ステップパラメータjに応じてステップ値ADsの正負の符号を制御し、その結果(j*ADs)を物理アドレスADに加算することによって、新たな物理アドレスADを生成する。この値(j*ADs)は、第2の符号制御器216から読出アドレス生成回路222に与えられている。なお、ステップパラメータjとしては、「1」(インクリメントモード)、「−1」(デクリメントモード)、および「0」(ステップ無効)の3つの値を設定することができる。
【0103】
ステップS56においてアドレスが更新されるとステップS54に戻り、ステップS54〜S56を繰返すことによって非伸長対象データが順次読みだされる。
【0104】
以上のように、Dポートアクセス部74は、オフセット/ステップ調整を行ないつつ非伸長対象データをデータROM62から読み出すことができる。読み出されるデータは非伸長対象データなので、ステップ値をデクリメントしながらデータを読み出すことも可能である。
【0105】
なお、Dデータレジスタ212に格納されたデータは、本体部30内のDMAコントローラ34によってDMA転送することも可能である。例えば、データROM62内に格納されたプログラムコードをワークRAM36に一括して転送する場合には、DMA転送が利用される。
【0106】
E.Tポートアクセス部の内部構成と動作
【0107】
図18は、Tポートアクセス部76の内部構成を示すブロック図である。Tポートアクセス部76は、ROM割当てレジスタ302と、ROMバンク指定回路304と、物理アドレス生成回路306とを備えている。
【0108】
CPU32がTポートアクセス部76にアクセスすると、データ読出用IC60のレジスタを介すること無く、CPU32がデータROM62に直接アクセスすることができる。すなわち、CPU32から与えられたアドレスがほぼそのままデータROM62に入力されて、あたかもデータ読出用IC60が存在していないかのようにデータROM62からCPU32にデータを読み出すことができる。
【0109】
図19は、Tポートアクセス部76を使用した場合におけるアドレスマップを示す説明図である。Tポートアクセス部76は、データROM62内に格納されたプログラムコードをCPU32がランダムアクセスする場合に用いられる。例えば、前述した図2に示すシステム構成からプログラムROM64を省略して、データROM62内にアプリケーションプログラムのプログラムコードを格納するようにシステム構成を変更ことができる。この場合には、Tポートアクセス部76を介してCPU32がデータROM62内のプログラムコードにランダムアクセスすることによって、プログラムを実行することができる。また、こうすれば図2に示すように2つをROMを設ける必要がなく、1つのROM62内にプログラムコードと画像データ等の他のデータとを格納することができるという利点がある。
【0110】
図20は、Tポートアクセスの処理手順を示すフローチャートである。ステップS61では、CPU32がROM割当てレジスタ302にROMバンクの割当てを設定する。図21は、ROMバンクの割当ての内容を示す説明図である。CPU32は、Tポートアクセス部76を介してそれぞれ1Mバイトの4つのROMバンク(Cバンク〜Fバンク)にアクセスすることができる。例えばCバンクは、CPU32のアドレスがC0000h〜CFFFFhの範囲のメモリ領域である。なお、語尾の符号「h 」は16進数であることを示している。
【0111】
データROM62が8Mバイトの容量を有している場合には、4つのROMバンクは、データROM62内の8つの1Mバイトの領域321〜328のいずれかにそれぞれ割り当てられる。ROM割当てレジスタ302は、各ROMバンクに対応した4つのレジスタ311〜314を有している。ステップS61では、CPU32がこれらのレジスタ311〜314にROMバンクの割当てを設定する。例えば、CバンクをデータROM62の第1番目の1Mバイト領域321に割り当てる場合には、第1のレジスタ311に3ビットの値「 000」を設定する。なお、CPU32がROM割当てレジスタ302内のデータを書き換えれば、データROM62内の任意の1Mバイト領域にアクセスすることができる。
【0112】
図20のステップS62では、CPU32がTポートアクセス部76にアクセスするためのアドレスを出力する。例えばCバンクにアクセスする場合には、CPU32がCXXXXh(X は任意の数を示す)のアドレスをバス31上に出力する。CPU32から出力されたアドレスの中で、上位a1ビットは図18に示すようにROM割当てレジスタ302に入力され、下位a2ビットは物理アドレス生成回路306に入力される。例えば、上位a1ビットは4ビット、下位a2は20ビットである。
【0113】
ステップS63では、ROMバンク指定回路304が、ステップS61で設定されたROMバンクの割当てに従って、アドレスの上位a1ビットをデータROM62の物理アドレスの上位b1ビットに置き換える。例えば、図21のようにCバンクがデータROM62の最初の1Mバイト領域321に割り当てられており、ステップS62においてCバンクにアクセスするアドレスCXXXXhが出力されている場合を考える。この場合には、CPU32から出力されたアドレスの上位4ビット「1100」が、データROM62の物理アドレスの上位3ビット「 000」に変換される。
【0114】
ステップS64では、物理アドレス生成回路306が、ROMバンク指定回路304から出力された上位b1ビットとCPU32から出力されたアドレスの下位a2ビットとを合成して、データROM62のcビット(c=b1+a2)の物理アドレスを生成する。
【0115】
上記の例では1バンクの容量を1Mバイトとしていたが、一般には1バンクの容量は2a2バイトに設定される。この1バンクの範囲内では、CPU32が下位アドレスa2を調整することによって、直接ランダムにアクセスすることができる。
【0116】
ステップS65では、物理アドレス生成回路306で得られたアドレスに応じてデータROM62からデータが読み出される。データROM62から読み出されたデータは、ROMインタフェイス78とCPUインタフェイス70とをそのまま通過して、バス31上に出力される。
【0117】
このように、Tポートアクセス部76を介したアクセスでは、CPU32が、データROM62内の各バンクに直接アクセスすることができるので、データROM62に格納されたプログラムコードなどをランダムにアクセスすることが可能である。
【0118】
以上のように、データ読出用IC60は、Cポートアクセス部72と、Dポートアクセス部74と、Tポートアクセス部76とによって、それぞれ異なるモードでデータROM62にアクセスすることができるので、データROM62内に圧縮データ、非伸長対象データ、プログラムコード等の種々のデータを所望の数ずつ格納することが可能である。特に、コンピュータゲームのカートリッジには、種々のデータが必要となるので、このように多種類のデータをそれぞれに応じたモードで読み出すことによって、高速な読み出しを行なうことができる。
【0119】
なお、この発明は上記実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【0120】
(1)データROM62としては、マスクROM、EPROM、フラッシュメモリ等の種々の半導体メモリを使用することが可能である。
【図面の簡単な説明】
【図1】この発明の一実施例としてのデータ読出回路を備えたコンピュータシステムの構成を示すブロック図。
【図2】ROMカートリッジ50の内部構成を示すブロック図。
【図3】Cポートアクセス部72の内部構成を示すブロック図。
【図4】コンピュータシステムのアドレスマップを示す説明図。
【図5】圧縮データ用テーブル62aと圧縮データファイル領域62bの内容を示す説明図。
【図6】圧縮データファイルで表わされる画像の例を示す説明図。
【図7】Cポートアクセス部72による圧縮データの読出手順を示すフローチャート。
【図8】初期化ルーチンの詳細を示すフローチャート。
【図9】圧縮データの取り込みルーチンの手順を示すフローチャート。
【図10】伸長回路80によって実行される伸長ルーチンの手順を示すフローチャート。
【図11】オフセット読出処理の内容を示す説明図。
【図12】ステップ読出処理の内容を示す説明図。
【図13】オフセット/ステップ読出しの伸長ルーチンを示すフローチャート。
【図14】オフセット/ステップ読出しの伸長ルーチンを示すフローチャート。
【図15】Dポートアクセス部74の内部構成を示すブロック図。
【図16】フォント画像とマッピング情報とを示す説明図。
【図17】Dポートアクセス部74によるアクセスの処理手順を示すフローチャート。
【図18】Tポートアクセス部76の内部構成を示すブロック図。
【図19】Tポートアクセス部76を使用した場合におけるアドレスマップを示す説明図。
【図20】Tポートアクセスの処理手順を示すフローチャート。
【図21】ROM割当てレジスタ302によるROMバンクの割当ての内容を示す説明図。
【符号の説明】
30…本体部
31…CPUバス
32…CPU
34…DMAコントローラ
36…ワークRAM
38…音声信号生成回路
40…表示制御回路
42…画像データ制御回路
44…ビデオRAM
46…コネクタ
50…ROMカートリッジ
52…スピーカ
54…カラーディスプレイ
62…データROM
62a…圧縮データ用テーブル
62b…圧縮データファイル領域
62c…非伸長対象データ領域
64…プログラムROM
70…CPUインタフェイス
72…Cポートアクセス部
74…Dポートアクセス部
76…Tポートアクセス部
78…ROMインタフェイス
79…アクセス調停部
80…伸長回路
82…シーケンサ
84…オフセット/ステップ調整回路
102…ベースアドレスレジスタ
104…ファイル番号レジスタ
106…オフセット値レジスタ
108…ステップ値レジスタ
110…トリガレジスタ
112…ステータスレジスタ
114…伸長データ長レジスタ
116…伸長データレジスタ
118…DMA用データレジスタ
120…伸長データバッファ
122…テーブルアドレス生成回路
124…読出アドレス生成回路
126…圧縮データバッファ
128…マルチプレクサ
202…Dベースアドレスレジスタ
204…Dオフセット値レジスタ
206…Dステップ値レジスタ
208…D制御レジスタ
210…Dトリガレジスタ
212…Dデータレジスタ
214,216…乗算器
218…バッファ
220…アドレス増減制御部
222…読出アドレス生成回路
302…ROM割当てレジスタ
304…ROMバンク指定回路
306…物理アドレス生成回路
311〜314…レジスタ

Claims (10)

  1. CPUと前記CPUに接続されたバスとを備えたコンピュータシステムに使用され、圧縮データファイルを格納する圧縮データファイル領域と非伸長対象データを格納する非伸長対象データ領域とプログラムコードを格納するプログラムコード領域とを有する半導体ROMからデータを読み出して前記バス上に出力する半導体集積回路であって、
    前記バスを介して前記CPUから設定された第1のパラメータに従って第1の読出アドレスを生成し、前記第1の読出アドレスに応じて前記半導体ROMの前記圧縮データファイル領域から圧縮データファイルを読み出し、読み出された圧縮データファイルを伸長して伸長データを生成するとともに、前記バス上に前記伸長データを出力する第1の読出回路と、
    前記バスを介して前記CPUから設定された第2のパラメータに従って第2の読出アドレスを生成し、前記第2の読出アドレスに応じて前記半導体ROMの前記非伸長対象データ領域から非伸長対象データを読み出すとともに、読み出された非伸長対象データを前記バス上に出力する第2の読出回路と、
    前記バスを介して前記CPUから供給されたアドレスの中で所定範囲の下位ビット部を前記半導体ROMにそのまま与えることよって前記プログラムコード領域からプログラムコードを読み出し、読み出されたプログラムコードを前記バス上に出力する第3の読出回路と、
    前記第1ないし第3の読出回路と前記半導体ROMとの間に接続され、前記第1の読出回路による前記圧縮データファイル領域へのアクセスと、前記第2の読出回路による前記非伸長対象データ領域へのアクセスと、前記第3の読出回路による前記プログラムコード領域へのアクセスとを調停するアクセス調停部を有するROMインタフェイス回路と、
    を備え、
    前記アクセス調整部は、前記第1ないし第3の読出回路による前記半導体ROMへの同時アクセスを、所定の優先度に従って調整し、
    前記所定の優先度は、前記第3の読出回路による前記プログラムコード領域へのアクセスの優先度が最も高く、前記第2の読出回路による前記非伸長対象データ領域へのアクセスの優先度がその次に高く、前記第1の読出回路による前記圧縮データファイル領域へのアクセスの優先度が最も低く設定されていることを特徴とする半導体集積回路。
  2. 請求項1記載の半導体集積回路であって、
    前記第1の読出回路は、
    前記バスに接続され、前記CPUにより前記第1のパラメータの1つとして設定された圧縮データファイルのファイル番号を記憶するファイル番号レジスタと、
    前記ファイル番号に応じて、前記半導体ROM内のアドレステーブル領域から前記第1の読出アドレスを読み出すとともに、前記第1の読出アドレスを前記半導体ROMに与えることによって、前記半導体ROMから圧縮データを読み出すアドレス生成回路と、
    を備える半導体集積回路。
  3. 請求項2記載の半導体集積回路であって、
    前記第1の読出回路は、さらに、
    前記バスに接続され、前記CPUにより前記第1のパラメータの1つとして設定されたオフセット値を記憶するオフセット値レジスタと、
    前記圧縮データファイルを伸長して得られた前記伸長データの中で、前記伸長データの先頭から前記オフセット値で示される位置までのデータを出力せず、前記オフセット値で示される位置以降のデータを前記バス上に出力するオフセット調整回路とを備える、
    半導体集積回路。
  4. 請求項3記載の半導体集積回路であって、
    前記第1の読出回路は、さらに、
    前記バスに接続され、前記CPUにより前記第1のパラメータの1つとして設定されたステップ値を記憶するステップ値レジスタと、
    前記圧縮データファイルを伸長して得られた前記伸長データの中で、前記ステップ値で指定された間隔で前記伸長データを前記バス上に出力するステップ調整回路とを備える、
    半導体集積回路。
  5. 請求項1ないし4のいずれかに記載の半導体集積回路であって、
    前記第1の読出回路は、さらに、
    前記コンピュータシステムに備えられたDMA転送回路によって前記伸長データをDMA転送するために、前記伸長データを保持するDMA転送用データレジスタを備え、
    前記伸長回路の伸長速度は前記DMA転送回路による転送速度以上である、半導体集積回路。
  6. 請求項1ないし4のいずれかに記載の半導体集積回路であって、
    前記第1の読出回路は、さらに、
    前記伸長回路で得られた前記伸長データを格納し、格納した伸長データを前記DMA転送用レジスタに供給する伸長データバッファを備え、これによって、前記伸長回路の伸長速度が前記DMA転送回路による転送速度以下である場合にも前記DMA転送回路によって前記伸長データを連続してDMA転送しうるように構成されている、半導体集積回路。
  7. 請求項1ないし6のいずれかに記載の半導体集積回路であって、
    前記非伸長対象データは、前記コンピュータシステム内のRAMに格納されて前記CPUによって実行されるプログラムコードである、半導体集積回路。
  8. 請求項1ないし6のいずれかに記載の半導体集積回路であって、
    前記非伸長対象データは、前記CPUによって伸長される圧縮データである、半導体集積回路。
  9. コンピュータゲーム機に使用されるゲーム機用カートリッジであって、
    請求項1ないし8のいずれかに記載された半導体集積回路と、
    前記半導体ROMと、
    を備えるゲーム機用カートリッジ。
  10. 請求項9記載のゲーム機用カートリッジであって、
    カートリッジ内に収納された半導体メモリの中のすべてのROMのアドレスバスとデータバスが前記半導体集積回路に接続されており、前記ROM内に格納されたデータが前記半導体集積回路を介して読み出されるように構成されている、ゲーム機用カートリッジ。
JP2003172546A 2003-06-17 2003-06-17 半導体集積回路およびゲーム機用カートリッジ Expired - Fee Related JP3803656B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003172546A JP3803656B2 (ja) 2003-06-17 2003-06-17 半導体集積回路およびゲーム機用カートリッジ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003172546A JP3803656B2 (ja) 2003-06-17 2003-06-17 半導体集積回路およびゲーム機用カートリッジ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP7143943A Division JPH08314798A (ja) 1995-05-17 1995-05-17 半導体集積回路およびゲーム機用カートリッジ

Publications (2)

Publication Number Publication Date
JP2004046839A JP2004046839A (ja) 2004-02-12
JP3803656B2 true JP3803656B2 (ja) 2006-08-02

Family

ID=31712455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003172546A Expired - Fee Related JP3803656B2 (ja) 2003-06-17 2003-06-17 半導体集積回路およびゲーム機用カートリッジ

Country Status (1)

Country Link
JP (1) JP3803656B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4891253B2 (ja) * 2004-11-25 2012-03-07 テレコム・イタリア・エッセ・ピー・アー 移動体通信機器用の共用icカード及び無線トランシーバモジュール
JP5718283B2 (ja) * 2012-05-31 2015-05-13 京セラドキュメントソリューションズ株式会社 情報処理装置

Also Published As

Publication number Publication date
JP2004046839A (ja) 2004-02-12

Similar Documents

Publication Publication Date Title
US5781201A (en) Method for providing improved graphics performance through atypical pixel storage in video memory
US4984183A (en) Graphics display controller for transferring figure data to overlapping portions of destination area and drawing-enable area defined by clipping rectangle
WO2006001506A1 (en) Image mixing apparatus and pixel mixer
NO301913B1 (no) Displaygeneratorkretser for personlig datamaskinsystem
JP2001195230A (ja) 描画処理システム、及び描画演算を行う半導体集積回路
JP2003515766A (ja) ハンドヘルドlcd素子に高い色解像度を表示するための方法および装置
CA2013818A1 (en) Separate font and attribute display system
EP0822514B1 (en) Graphic image display apparatus with high speed inversion of graphic image
JP3803656B2 (ja) 半導体集積回路およびゲーム機用カートリッジ
US20030006992A1 (en) Data transfer device and method
JPH08314798A (ja) 半導体集積回路およびゲーム機用カートリッジ
US5559532A (en) Method and apparatus for parallel pixel hardware cursor
JPH075870A (ja) 表示制御システム
EP0726557A1 (en) Display control method with partial rewriting and display controller and display apparartus using the same
EP0466935B1 (en) Still picture display device and external memory cartridge used therefor
JP4350470B2 (ja) 画像処理装置、画像処理方法及びプログラム
WO2005116982A1 (en) Data processing unit, drawing apparatus and pixel packer
US6535214B1 (en) Semiconductor device for display control
KR0155919B1 (ko) 그래픽 가속기에서 화소데이타 처리방법 및 그 장치
JPH0112309Y2 (ja)
JPH08147963A (ja) メモリチップ
JP3016372B2 (ja) 画像処理装置
JPS62113193A (ja) 記憶回路
JPH0822411A (ja) 画像メモリ初期化装置
KR20000015972A (ko) Vga에 순응하는 비디오 디스플레이 어댑터와의 효율적인 메모리-판독 연산을 위한 방법 및 장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060508

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees