JP2004234461A - 情報処理装置および方法、並びにプログラム - Google Patents
情報処理装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP2004234461A JP2004234461A JP2003023859A JP2003023859A JP2004234461A JP 2004234461 A JP2004234461 A JP 2004234461A JP 2003023859 A JP2003023859 A JP 2003023859A JP 2003023859 A JP2003023859 A JP 2003023859A JP 2004234461 A JP2004234461 A JP 2004234461A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- read
- identifier
- control
- 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.)
- Withdrawn
Links
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】記録媒体に記憶されているデータの、より好適な読み出し制御を行う。
【解決手段】外部メモリリード処理部131は、バースト単位で外部メモリ101より読み出したデータを識別子処理部132に供給する。識別子処理部132は、取得したデータが有効であるか否かをバイト単位で判定し、識別子を生成し、互いに関連付けて内部バッファメモリ122に保持させ、バースト単位のデータを処理する毎に、動作開始を要求する制御信号をワード/バイト変換処理部151に供給する。この制御信号を取得したワード/バイト変換処理部151は、内部バッファメモリ122よりデータおよび識別子をワード単位で読み出し、ワード/バイト変換処理を行った後、変換したバイトデータおよび識別子を出力する。本発明は、メモリコントローラに適用することができる。
【選択図】 図2
【解決手段】外部メモリリード処理部131は、バースト単位で外部メモリ101より読み出したデータを識別子処理部132に供給する。識別子処理部132は、取得したデータが有効であるか否かをバイト単位で判定し、識別子を生成し、互いに関連付けて内部バッファメモリ122に保持させ、バースト単位のデータを処理する毎に、動作開始を要求する制御信号をワード/バイト変換処理部151に供給する。この制御信号を取得したワード/バイト変換処理部151は、内部バッファメモリ122よりデータおよび識別子をワード単位で読み出し、ワード/バイト変換処理を行った後、変換したバイトデータおよび識別子を出力する。本発明は、メモリコントローラに適用することができる。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、記録媒体に記憶されているデータの、より好適な読み出し制御を行うことができるようにした情報処理装置および方法、並びにプログラムに関する。
【0002】
【従来の技術】
従来、パーソナルコンピュータ等において、DRAM(Dynamic Random Access Memory)やEEPROM(Electronically Erasable and Programmable Read Only Memory)等により構成される外部メモリからデータが読み出される場合、そのデータは、32ビットや64ビット等の複数のビットで構成されるワード単位や、複数のワードで構成されるバースト単位等の、所定の単位でメモリコントローラ等により読み出される。
【0003】
図1を参照して、従来の外部メモリからのデータの読み出し制御処理の例について説明する。
【0004】
図1において、データを記憶する外部メモリ1を制御する、メモリコントローラ2は、外部からの要求に基づいて、外部メモリ1よりデータをバースト単位で読み出し、要求元であるデバイスにそのデータを供給する。
【0005】
外部メモリ1は、DRAMやEEPROM等により構成され、その記憶領域11には、バイト単位(8ビット単位)のデータであるバイトデータX0乃至X16、並びにバイトデータD0乃至D14が記憶されている。
【0006】
メモリコントローラ2は、外部の要求に基づいて、外部メモリ1を制御して、外部メモリ1に記憶されているデータを読み出す入力側制御部21、入力側制御部21が読み出したデータを一時保持する内部バッファメモリ22、および内部バッファメモリ22が保持しているデータを、メモリコントローラ2の外部に出力する出力側制御部23により構成されている。
【0007】
入力側制御部21には、外部メモリ1のデータの読み出し制御を行う外部メモリリード制御部31、読み出したデータのうち、無効なバイトデータを破棄する無効バイト破棄処理部32、抽出された有効なデータの整列処理を行う有効データ整列処理部33、および、入力側制御部21の各部の動作タイミングに基づいて、出力側制御部23の動作を制御する同期制御部34が構成されている。
【0008】
入力側制御部21の外部メモリリード処理部31が、メモリコントローラ2の外部より供給されたデータの読み出し要求(リード要求)に基づいて、外部メモリ1にデータD0乃至D14を要求すると、外部メモリ1は、予め決められた所定のデータ量(例えば、32バイト)のバースト単位で記憶領域11に記憶されているデータ(バイトデータX0乃至X16、並びにバイトデータD0乃至D14)を外部メモリリード処理部31に供給する。
【0009】
無効バイト破棄処理部32は、外部メモリリード処理部31により読み出されたバイトデータが有効なデータであるか否か、すなわち、読み出されたバイトデータがメモリコントローラ2の外部からのリード要求により要求されたデータであるか否かを判定し、無効なバイトデータを破棄する。すなわち、無効バイト破棄処理部32は、外部メモリリード処理部31により読み出されたデータの中から、有効データを抽出する。
【0010】
有効データ整列処理部33は、無効バイト破棄処理部32が抽出した有効データを整列し、内部バッファメモリ22に供給し、一時保持させる。内部バッファメモリ22は、有効データ整列処理部33より供給された有効データ(バイトデータD0乃至D14)を記憶領域41に保持する。
【0011】
同期制御部34は、有効データ整列処理部33が内部バッファメモリ22に供給した有効データのデータ数(データ量)をカウントし、内部バッファメモリ22に所定の単位分のデータが保持されると、データ読み出し処理を開始させる制御信号をワード/バイト変換処理部52に供給する。
【0012】
出力側制御部23のワード/バイト変換処理部52は、入力側制御部21の同期制御部34に供給される制御信号に基づいて、内部バッファメモリ22が保持しているデータD0乃至D14をワード単位(例えば、4バイトずつ)で読み出し(ワードデータとして読み出し)、バイト単位のデータに変換し、バイトデータ出力として、メモリコントローラ2の外部に出力する。
【0013】
また、出力側制御部23のデータイネーブル生成部51は、ワード/バイト変換処理部52により変換されたデータのイネーブル信号を生成し、出力されたバイトデータ出力に対応するデータイネーブル信号として出力する。
【0014】
従来のメモリコントローラ2は、以上のようにして、外部メモリ1よりデータを読み出し、バイトデータ出力とデータイネーブル信号を外部に出力する。
【0015】
また、他のメモリアクセスの例として、ロジック内蔵DRAMを用いた半導体集積回路装置において、外部より指定されるアドレス空間の領域がロジック制御領域である場合、ロジック回路制御する制御コマンドを保持するレジスタを動作させ、その制御コマンドによって、ロジック回路にコマンドに応じた処理を実行させ、記憶領域であるDRAMから読み出したデータを処理してから出力させるようにする方法が考えられる(例えば、特許文献1参照)。
【0016】
【特許文献1】
特開2002−175689号公報(第9−13ページ、図1)
【0017】
【発明が解決しようとする課題】
しかしながら、以上のような方法において、複数のデータからなるワード単位やバースト単位でのみデータを読み出すことができるような構成の外部メモリ1からデータを読み出す場合、読み出しを制御するメモリコントローラ2は、読み出したデータを内部バッファメモリ22に保持させる前に、データが有効であるか否かを判定し、無効データを破棄し、さらに、抽出した有効データを整列させる等、多くの処理を行わなければならず、回路規模が大きくなってしまうという課題があった。
【0018】
通常、データを外部メモリ1より読み出す入力側制御部21は、内部バッファメモリ22に保持されているデータをメモリコントローラ2の外部に出力させる出力側制御部23より高速に動作させる必要がある。従って、上述したように、入力側制御部21において多くの処理を実行させることにより、制御が複雑になるとともに、動作速度を向上させることが困難になり、さらに、消費電力やコストが増加してしまうという課題もあった。
【0019】
また、入力側制御部21による内部バッファメモリ22への書き込み処理と、出力側制御部23による内部バッファメモリ22からの読み出し処理が、非同期に実行される場合、すなわち、入力側制御部21および出力側制御部23の動作を制御する同期信号が存在しない場合、同期制御部34のように、入力側制御部21の動作タイミングに基づいて、出力側制御部23の動作タイミングを制御するような構成や処理が必要である。
【0020】
しかしながら、外部メモリ1より読み出されたデータは所定の単位で読み出されるが、その所定の単位で読み出されたデータの中から内部バッファメモリ22に書き込まれるデータのデータ量、すなわち、外部メモリ1より読み出されたデータに含まれる有効データの数は一定ではない。
【0021】
従って、内部バッファメモリ22の書き込み処理の動作単位、および読み出し処理の動作単位は、外部メモリ1からのデータの読み出し処理の動作単位とは無関係であり、内部バッファメモリ22への書き込みおよび読み出しの処理の同期制御を、同期制御部34のように、外部メモリ1からのデータの読み出し処理と独立して行う必要があり、同期制御が複雑になってしまうという課題もあった。
【0022】
すなわち、同期制御部34は、有効データ整列処理部33が内部バッファメモリ22に書き込ませたデータ量をカウントし、内部バッファメモリ22に所定の単位分のデータが保持されたときに(カウント値が所定の値に達したときに)、読み出し動作を開始させる制御信号をワード/バイト変換処理部52に供給する等、複雑な同期制御処理を実行しなければならない。
【0023】
また、内部バッファメモリ22のデータ書き込み単位と、データ読み出し単位とが異なる場合、内部バッファメモリ22に保持されている、データ読み出し単位より小さいデータ量の、半端な数の有効データを読み出すための構成や処理が必要であり、制御が複雑になってしまうという課題もあった。
【0024】
すなわち、ワード/バイト変換処理部52は、例えば、図1において、データD0乃至D3、データD4乃至D7、データD8乃至D11のように、ワード単位(4バイト単位)で有効データを順に読み出し、半端な数の有効データD12乃至D14(3バイト)については、データ読み出し単位を変更するなどしてから読み出さなければならない。
【0025】
本発明はこのような状況に鑑みてなされたものであり、記録媒体に記憶されているデータの、より好適な読み出し制御を行うことができるようにしたものである。
【0026】
【課題を解決するための手段】
本発明の情報処理装置は、記憶部からの、第1のデータ単位でのデータの読み出しを制御する読み出し制御手段と、読み出し制御手段により制御されて記憶部より読み出されたデータが有効なデータであるか否かを判定する判定手段と、判定手段による判定結果に基づいて、読み出し制御手段により制御されて記憶部より読み出されたデータの識別子を生成する生成手段と、読み出し制御手段により制御されて記憶部より読み出されたデータ、および生成手段により生成された識別子を互いに関連付けて保持する保持手段と、保持手段により保持されているデータを取得し、第2のデータ単位のデータに変換する変換手段と、変換手段により変換された第2のデータ単位のデータを、その識別子とともに出力する出力手段とを備えることを特徴とする。
【0027】
前記第1のデータ単位は、第2のデータ単位の整数倍の大きさであるようにすることができる。
【0028】
前記読み出し制御手段は、外部より供給された記憶部に対するリード要求に基づいて、記憶部からの、第1のデータ単位でのデータの読み出しを制御するようにすることができる。
【0029】
前記判定手段は、読み出し制御手段により制御されて記憶部より読み出されたデータが、リード要求により要求されたデータである場合、データが有効なデータであると判定し、読み出し制御手段により制御されて記憶部より読み出されたデータが、リード要求により要求されたデータでない場合、データが無効なデータであると判定するようにすることができる。
【0030】
前記生成手段は、判定手段により、読み出し制御手段により制御されて記憶部より読み出されたデータが有効なデータであると判定された場合、データが有効なデータであることを示す第1の識別子を生成し、読み出し制御手段により制御されて記憶部より読み出されたデータが無効なデータであると判定された場合、データが無効なデータであることを示す第2の識別子を生成するようにすることができる。
【0031】
前記第1の識別子は、値が「1」の1ビットの識別子であり、第2の識別子は、値が「0」の1ビットの識別子であるようにすることができる。
【0032】
前記保持手段は、読み出し制御手段により制御されて記憶部より読み出されたデータを第1の記憶領域に保持し、生成手段により生成された識別子を第1の記憶領域と異なる第2の記憶領域に保持するようにすることができる。
【0033】
前記判定手段は、読み出し制御手段により制御されて記憶部より読み出されたデータが有効なデータであるか否かを、第2のデータ単位毎に判定し、生成手段は、判定手段による判定結果毎に識別子を生成し、保持手段は、判定手段により有効なデータであるか否かを判定された、第2のデータ単位の各データと、生成手段により生成された各識別子とを、それぞれ関連付けて保持するようにすることができる。
【0034】
前記変換手段は、保持手段に保持されているデータを、第2のデータ単位より大きく、第1のデータ単位以下である第3のデータ単位で取得し、取得した第3のデータ単位のデータを第2のデータ単位のデータに変換するようにすることができる。
【0035】
前記第3のデータ単位は、第2のデータ単位の整数倍の大きさであるようにすることができる。
【0036】
前記保持手段に保持されている前記データの取得開始の動作を要求する動作要求手段をさらに備え、変換手段は、動作要求手段による要求に基づいて、保持手段に保持されているデータの取得の動作を開始するようにすることができる。
【0037】
前記動作要求手段は、保持手段が、読み出し制御手段により制御されて記憶部より読み出されたデータを全て保持した場合、保持手段に保持されているデータの取得開始の動作を要求するようにすることができる。
【0038】
本発明の情報処理方法は、記憶部からの、第1のデータ単位でのデータの読み出しを制御する読み出し制御ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータが有効なデータであるか否かを判定する判定ステップと、判定ステップの処理による判定結果に基づいて、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータの識別子を生成する生成ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータを、生成ステップの処理により生成された識別子と関連付けて保持部に保持させるように制御する保持制御ステップと、保持制御ステップの処理により制御され、保持されているデータを、保持部より取得し、第2のデータ単位のデータに変換する変換ステップと、変換ステップの処理により変換された第2のデータ単位のデータを、その識別子とともに出力するように制御する出力制御ステップとを含むことを特徴とする。
【0039】
本発明のプログラムは、記憶部からの、第1のデータ単位でのデータの読み出しを制御する読み出し制御ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータが有効なデータであるか否かを判定する判定ステップと、判定ステップの処理による判定結果に基づいて、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータの識別子を生成する生成ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータを、生成ステップの処理により生成された識別子と関連付けて保持部に保持させるように制御する保持制御ステップと、保持制御ステップの処理により制御され、保持されているデータを、保持部より取得し、第2のデータ単位のデータに変換する変換ステップと、変換ステップの処理により変換された第2のデータ単位のデータを、その識別子とともにの出力するように制御する出力制御ステップとをコンピュータに実現させることを特徴とする。
【0040】
本発明の情報処理装置および方法、並びにプログラムにおいては、記憶部からの、第1のデータ単位でのデータの読み出しが制御され、記憶部より読み出されたデータが有効なデータであるか否かが判定され、その判定結果に基づいて、記憶部より読み出されたデータの識別子が生成され、記憶部より読み出されたデータ、および生成された識別子が互いに関連付けて保持され、その保持されているデータが取得され、第2のデータ単位のデータに変換され、その変換された第2のデータ単位のデータが、その識別子とともに出力される。
【0041】
【発明の実施の形態】
図2は、本発明を適用したメモリコントローラの構成例を表すブロック図である。
【0042】
図2において、メモリコントローラ102は、外部から供給されるリード要求に基づいて、外部メモリ101に記憶されているデータを読み出し、外部に出力する。
【0043】
外部メモリ101は、DRAMやEEPROM等の記憶素子により構成され、所定のサイズの記憶領域111を有する。外部メモリ101は、メモリコントローラ102により供給された要求に基づいて、記憶領域111に記憶されているデータを、予め決められた所定のデータ量(例えば、32バイト)を単位として、メモリコントローラに供給する(バースト転送)。
【0044】
すなわち、後述するように、メモリコントローラ102が、リード要求に基づいて、外部メモリ101に対して、要求されたデータを含むように読み出し開始アドレスを指示すると、外部メモリ101は、供給された読み出し開始アドレスから連続するアドレスに記憶されている複数のデータを、順次メモリコントローラ102に供給する。以下において、このときの、1回のアドレス指定に対してメモリコントローラ102に供給されるデータ量(例えば、32バイト)をバースト単位と称する。すなわち、この場合、バースト単位は、バイト単位の整数倍の大きさである。
【0045】
なお、図2において、記憶領域111には、1バイトのデータX0乃至X16、並びに、データD0乃至D14が記憶されている。外部メモリ101は、1回のアドレス指定に基づいて、これらのデータX0乃至X16、並びに、データD0乃至D14(32バイト分のデータ)を、バースト単位のデータとして、メモリコントローラ102に供給する。メモリコントローラ102は、このバースト単位のデータをバイト単位のデータに変換し、出力する。
【0046】
メモリコントローラ102は、外部より供給されるリード要求に基づいて外部メモリ101にデータを要求する入力側制御部121、入力側制御部121が取得したデータを一時保持する内部バッファメモリ122、内部バッファメモリ122に保持されているデータを読み出し、メモリコントローラ102の外部に出力する出力側制御部123を有しており、リード要求に基づいた外部メモリ101の読み出し制御処理を行う。
【0047】
入力側制御部121には、外部メモリ101よりデータを読み出す外部メモリリード処理部131、および外部メモリリード処理部131により読み出されたデータに対応する識別子を生成する識別子処理部132を有しており、外部メモリ101より読み出したデータ、および生成した識別子を内部バッファメモリ122に供給する。
【0048】
入力側制御部121の外部メモリリード処理部131は、メモリコントローラ102の外部より取得したリード要求を取得すると、取得したリード要求に基づいて、外部メモリ101が、要求されたデータ(例えば、データD0乃至D14)が含まれるデータ群を供給するように、リード開始位置(例えば、図2のデータ「X0」が記憶されているアドレス)を指定し、その情報を外部メモリ101に供給する。
【0049】
外部メモリ101は、その要求に基づいて、リード開始位置アドレス(例えば、図2のデータ「X0」が記憶されているアドレス)およびリード開始位置アドレスに連続するアドレスに記憶されている、所定のデータ量(例えば、32バイト)のデータ(例えば、データX1乃至X5、データD0乃至D14、並びにデータX6乃至X16)を、外部メモリリード処理部131に供給する。
【0050】
外部メモリリード処理部131は、外部メモリ101より取得したデータを、リード要求とともに、識別子処理部132に供給する。
【0051】
図3は、入力側制御部121の詳細な構成例を示すブロック図である。
【0052】
図3に示されるように、外部メモリリード処理部131は、外部メモリ101のデータ読み出しに関する処理を制御する外部メモリリード制御部171を有している。
【0053】
外部メモリリード制御部171は、図示は省略するが、外部メモリ101の動作を制御する制御コマンドが記憶されているレジスタ等を内蔵しており、メモリコントローラ102の外部より供給されたリード要求を取得すると、そのリード要求に基づいて、データの読み出し開始アドレスや、使用する制御コマンド(例えば、読み出しコマンド)等を決定し、それらの情報を外部メモリ101に供給する。
【0054】
外部メモリ101は、供給された制御コマンドに基づいて動作し、供給されたデータ読み出し開始アドレスに記憶されているデータから、読み出しを開始し、読み出したデータを外部メモリリード処理部131に順次供給する。そして、所定のデータ量分のデータを供給すると、外部メモリ101は、供給された制御コマンドに基づいて、読み出し処理を終了する。
【0055】
外部メモリ101よりデータを読み出した外部メモリリード処理部131は、上述したように、読み出したデータを識別子処理部132に供給する。なお、外部メモリリード制御部171は、メモリコントローラ102の外部より供給されたリード要求を保持しており、外部メモリ101より読み出したデータが識別子処理部132に供給される際に、若しくは、データが識別子処理部132に供給される前に、そのリード要求を識別子処理部132に供給する。
【0056】
図2に戻り、識別子処理部132は、取得したデータに対して、バイト単位ごとに、有効であるか否か、すなわち、取得したデータがリード要求により要求されたデータであるか否か(データD0乃至D14であるか否か)を判定し、判定結果に基づいた識別子を生成する。例えば、識別子処理部132は、取得したデータが有効データである場合(データD0乃至D14である場合)、値が「1」の、1ビットの識別子を生成し、取得したデータが無効なデータである場合(データX1乃至X16である場合)、値が「0」の、1ビットの識別子を生成する。
【0057】
なお、識別子処理部132が生成する識別子は、1ビット以外でもよく、複数ビットで構成されるようにしてもよい。また、識別子は、データに対して、一定の比率で生成されればよく、複数のデータ(複数バイトのデータ)に対して1つ生成されるようにしてもよい。
【0058】
バイト単位の各データに対して識別子を生成した識別子処理部132は、データおよび識別子を内部バッファメモリ122に供給し、保持させる。
【0059】
図3に示されるように、識別子処理部132は、取得したデータが有効であるか否かを判定する有効・無効判定処理部181、有効・無効判定処理部181による判定処理の判定結果に基づいて、データに対応する識別子を生成する識別子生成部182を有している。
【0060】
外部メモリリード処理部131よりデータを取得した識別子処理部132は、有効・無効判定処理部181において、外部メモリリード制御部171より供給されたリード要求の内容に基づいて、1バイト単位の各データについて、そのデータが有効であるか否かを判定し、識別子生成部182において、その判定結果に基づいて、1バイト単位の各データについて、識別子を生成する。
【0061】
そして、識別子処理部132は、後述するように、取得したデータを内部バッファメモリ122のデータ記憶領域142に保持させるとともに、生成した識別子を内部バッファメモリ122の識別子記憶領域143に保持させる。
【0062】
図2に戻り、内部バッファメモリ122は、SRAM(Static Random Access Memory)等の記憶素子により構成され、記憶領域141を有し、識別子処理部132より供給されたデータおよび識別子を、順に一時保持する。
【0063】
内部バッファメモリ122の記憶領域141は、データを記憶する記憶領域であるデータ記憶領域142と、識別子を記憶する記憶領域である識別子記憶領域143により構成され、所定のデータ量(例えば、1バイト)のデータと、そのデータに対応する所定のデータ量(例えば、1ビット)の識別子が互いに関連付けられて、それぞれ、データ記憶領域142または識別子記憶領域143に保持されている。
【0064】
例えば、図2に示されるように、外部メモリ101の記憶領域111より、データが、X0乃至X5,D0乃至D14,X6乃至X16の順番で読み出された場合、内部バッファメモリ122の記憶領域141には、各データが、同様の順番で、生成された識別子が関連付けられた状態で保持される。
【0065】
すなわち、図2の場合、記憶領域141の、最初のデータが格納される最上段左端のデータ記憶領域142には、データX0が保持されており、そのデータ記憶領域142に対応する識別子記憶領域143(最上段左端の識別子記憶領域143)には、値が「0」の識別子が保持されている。
【0066】
同様に、図2の記憶領域141の、7番目のデータが格納される上から2段目の左から3番目のデータ記憶領域142には、データD0が保持されており、そのデータ記憶領域142に対応する識別子記憶領域143(上から2段目の左から3番目の識別子記憶領域143)には、値が「1」の識別子が保持されている。
【0067】
また、図2の記憶領域141の、最後のデータが格納される最下段右端のデータ記憶領域142には、データX16が保持されており、そのデータ記憶領域142に対応する識別子記憶領域143(最下段右端の識別子記憶領域143)には、値が「0」の識別子が保持されている。
【0068】
なお、内部バッファメモリ122の記憶領域141のサイズは、どのような大きさであってもよく、上述したように、バースト単位と同じサイズであってもよいし、バースト単位より大きくても小さくてもよい。
【0069】
また、記憶領域141に保持される識別子とデータの比は、識別子処理部132より供給される識別子とデータの比と一致していればよく、例えば1対4等のように、1対1でなくてもよい。
【0070】
入力側制御部121の識別子処理部132は、所定のデータ量のデータを内部バッファメモリ122に保持させる毎に(例えば、バースト単位毎に)、出力側制御部123のワード/バイト変換処理部151に、所定の制御信号を供給する。
【0071】
出力側制御部123は、ワード単位のデータをバイト単位のデータに変換するワード/バイト変換処理部151を有しており、内部バッファメモリ122に記憶されているデータおよび識別子を読み出し、その識別子に対応するイネーブル信号であるデータイネーブル信号、および、バイト単位のデータに変換されたバイトデータ出力を、メモリコントローラ102の外部に出力する。
【0072】
図3に示されるように、識別子処理部132は、ワード/バイト変換処理部151に対して動作の開始を要求する動作要求出力部183を有している。この動作要求出力部183は、識別子処理部132の処理における所定のタイミングにおいて、動作の開始、すなわち、内部バッファメモリ122からのデータの読み出し処理の開始を要求する制御信号をワード/バイト変換処理部151に供給する。
【0073】
例えば、識別子処理部132が、外部メモリリード処理部131が外部メモリ101より読み出したデータ(バースト単位のデータ)を全て内部バッファメモリ122に供給し、保持させると、識別子処理部の動作要求出力部183は、動作開始を要求する制御信号をワード/バイト変換処理部151に供給する。
【0074】
この制御信号を取得したワード/バイト変換処理部151は、図2に示されるように、識別子処理部132より供給された制御信号に基づいて、内部バッファメモリ122に保持されているデータをワード単位(4バイト単位)で読み出し、読み出したワード単位のデータであるワードデータをバイト単位のデータであるバイトデータに変換する。すなわち、この場合、ワード単位は、バイト単位の整数倍の大きさであり、バースト単位以下の大きさである。
【0075】
また、ワード/バイト変換処理部151は、データとともに、データに対応する識別子を、内部バッファメモリ122より読み出す。
【0076】
そして、ワード/バイト変換処理部151は、変換したバイトデータをバイトデータ出力としてメモリコントローラ102の外部に出力するとともに、出力するバイトデータに対応する識別子をデータイネーブル信号としてメモリコントローラ102の外部に出力する。
【0077】
図4は、メモリコントローラ2より出力されるバイトデータ出力、および、データイネーブル信号の様子を示す図である。
【0078】
図4に示されるように、ワード/バイト変換処理部151は、ワードデータをバイトデータに変換した順、すなわち、データX0乃至X5、データD0乃至D14、データX6乃至X16の順で(図中、左端から矢印の方向に順番に)、バイトデータ出力192を出力するのに同期して、各バイトデータに対応するデータイネーブル信号191を、図中、左端から矢印の方向に順番に、メモリコントローラ102の外部に出力する。
【0079】
従って、データX0乃至X5が出力されている間、データイネーブル信号191の値は「0」(Low)である。そして、データD0が出力されるとき、データイネーブル信号191の値は「1」(Hi)に変化する。それから、データD0乃至D14が出力されている間、データイネーブル信号191の値は「1」(Hi)であり、データX6が出力されるとき、データイネーブル信号191の値は「0」(Low)に変化する。その後、データX6乃至X16が出力されている間、データイネーブル信号191の値は「0」(Low)である。
【0080】
以上のように、ワード/バイト変換処理部151は、内部バッファメモリ122より読み出したデータを、有効なデータであるか、無効なデータであるかに関わらず、全て順番に出力し、そのデータ出力に合わせて、内部バッファメモリ122より読み出した識別子を、出力するデータが有効であるか否かを示すデータイネーブル信号として出力する。
【0081】
次に、図5のフローチャートを参照して、外部メモリ101よりデータを読み出す場合にメモリコントローラ102が実行する読み出し制御処理について説明する。
【0082】
メモリコントローラ102の外部よりリード要求を取得した外部メモリリード処理部131の外部メモリリード制御部171は、ステップS1において、取得したリード要求に基づいて、外部メモリ101にデータの読み出しを要求する。すなわち、外部メモリリード制御部171は、取得したリード要求に基づいて、外部メモリ101から読み出したデータに、要求されたデータが含まれるように、データの読み出し開始アドレスや、使用する制御コマンド(例えば、読み出しコマンド)等を決定し、それらの情報を外部メモリ101に供給する。
【0083】
外部メモリ101は、供給された制御コマンドに基づいて動作し、供給されたデータ読み出し開始アドレスに記憶されているデータから、読み出しを開始し、所定のデータ単位(例えば、バースト単位)毎に読み出したデータを外部メモリリード処理部131に順次供給する。
【0084】
ステップS2において、外部メモリリード処理部131は、外部メモリ101より供給されたデータを取得したか否かを判定し、取得したと判定するまで待機する。
【0085】
外部メモリ101より読み出されたデータが供給され、データを取得したと判定した場合、外部メモリリード処理部131は、取得したデータを識別子処理部131に供給する。そして、ステップS3において、識別子処理部131の有効・無効判定処理部181は、外部メモリリード処理部131が外部メモリ101より取得したデータが有効であるか否かを、例えばバイト単位で判定する。
【0086】
すなわち、有効・無効判定処理部181は、外部メモリリード処理部131より供給されたデータ(バイト単位のデータ)がリード要求により要求されたデータであるか否か(有効データであるか否か)を判定する。
【0087】
ステップS3において、有効・無効判定処理部181により有効であると判定された場合、識別子生成部182は、ステップS4において、その判定結果に基づいて、そのバイト単位のデータに対して、値が「1」の識別子を生成する。
【0088】
また、ステップS3において、有効・無効判定処理部181によりデータが有効でない(無効データである)と判定された場合、識別子生成部182は、ステップS5において、その判定結果に基づいて、そのバイト単位のデータに対して、値が「0」の識別子を生成する。
【0089】
ステップS4またはS5の処理により、識別子生成部182がバイト単位のデータに対応して識別子を生成すると識別子処理部132は、ステップS6において、識別子を生成したバイト単位のデータを内部バッファメモリ122に供給し、保持させる。内部バッファメモリ122は、取得したデータをデータ記憶領域142に保持する。
【0090】
ステップS6の処理を終了した識別子処理部132は、ステップS7において、生成した識別子(ステップS5の処理により内部バッファメモリ122に保持させたデータに対応する識別子)を内部バッファメモリ122に供給し、保持させる。内部バッファメモリ122は、取得した識別子を識別子記憶領域143の、ステップS5の処理により保持されているデータのアドレス(データ記憶領域142におけるアドレス)に対応するアドレス(識別子記憶領域143におけるアドレス)に保持する。
【0091】
ステップS7の処理を終了した識別子処理部132は、ステップS8において、外部メモリリード処理部131が外部メモリ101より取得したデータ(外部メモリリード処理部131より供給されたデータ)を全て内部バッファメモリ122に保持させたか否か(全てのバイト単位のデータに対して識別子を生成し、それらのデータおよび識別子を、全て内部バッファメモリ122に保持させたか否か)を判定する。
【0092】
未処理のデータが存在し、まだ取得したデータを全て内部バッファメモリ122に保持させていないと判定した場合、識別子処理部132は、処理をステップS3に戻し、それ以降の処理を繰り返す。
【0093】
すなわち、識別子処理部132は、ステップS3乃至S8の処理を繰り返し、外部メモリリード処理部131より供給された全てのデータ(バイト単位のデータ)に対して識別子を生成し、各データおよび識別子を互いに関連付けて、内部バッファメモリ122に保持させる。
【0094】
そして、識別子制御部132が、全てのデータについて上述した処理を行い、ステップS8において、取得したデータを全て保持させたと判定した場合、動作要求出力部183は、ステップS9において、ワード/バイト変換処理部151にデータ読み出し処理を開始させる。
【0095】
すなわち、動作要求出力部183は、内部バッファメモリ122からのデータ読み出し処理を開始させる制御信号を、ワード/バイト変換処理部151に供給する。ワード/バイト変換処理部151は、取得した制御信号(動作要求)に基づいて、内部バッファメモリ122からのデータの読み出し処理を開始する。
【0096】
データの読み出し処理を開始したワード/バイト変換処理部151は、ステップS10において、内部バッファメモリ122のデータ記憶領域142に保持されているデータを、アドレスの先頭から順番に、ワード単位で読み出す。
【0097】
また、ワード/バイト変換処理部151は、ステップS11において、ステップS10において読み出されたデータに対応する、内部バッファメモリ122の識別子記憶領域143に保持されているデータを全て読み出す。
【0098】
そして、ワード/バイト変換処理部151は、ステップS12において、内部バッファメモリ122より読み出したワード単位のデータ(ワードデータ)をバイト単位のデータ(バイトデータ)に変換するワード/バイト変換処理を実行する。
【0099】
ステップS12の処理を実行したワード/バイト変換処理部151は、ステップS13に処理を進め、変換したバイトデータをバイトデータ出力として、メモリコントローラ102の外部に出力する。
【0100】
さらに、ワード/バイト変換処理部151は、ステップS14において、ステップS13において出力したバイトデータに対応する識別子(ステップS11において内部バッファメモリ122より読み出された識別子)を、データイネーブル信号として、メモリコントローラ102の外部に出力する。
【0101】
そして、ワード/バイト変換処理部151は、ステップS15に処理を進め、識別子処理部132により要求されたデータ(識別子処理部132の要求に基づいて実行される読み出し開始処理により読み出されるデータ)を全て出力させたか否かを判定する。
【0102】
まだ、内部バッファメモリ122に読み出していないデータが存在し、要求されたデータを全て出力させていないと判定した場合、ワード/バイト変換処理部151は、処理をステップS10に戻し、それ以降の処理を繰り返す。
【0103】
すなわち、ワード/バイト変換処理部151は、ステップS10乃至S15の処理を繰り返し、内部バッファメモリ122に保持されている全てのデータおよび識別子を取得し、取得したワードデータをバイトデータに変換し、バイトデータ出力およびデータイネーブル信号をメモリコントローラ102の外部に出力する。
【0104】
そして、内部バッファメモリ122に保持されている全てのデータおよび識別子を出力させ、ステップS15において、要求された全てのデータを出力させたと判定した場合、ワード/バイト変換処理部151は、読み出し制御処理を終了する。
【0105】
以上のようにして、メモリコントローラ102の各部は、データの読み出し制御処理を実行し、リード要求に基づいて、要求されたデータを、外部メモリ101から読み出して出力する。
【0106】
上述したように、メモリコントローラ102を構成し、動作させることにより、無効データを破棄したり、抽出した有効データを整列させたり、内部バッファメモリ122より読み出したデータに基づいてデータイネーブル信号を生成したりする構成および動作が不要になり、より容易にデータの読み出し制御を行うようにすることができる。
【0107】
また、これにより、処理速度が高速な入力側制御部121において実行される処理数を減らすことができるので、メモリコントローラ102は、その制御を容易にすることができるとともに、動作速度も容易に向上させることができ、さらに、消費電力やコストを減少させることもできる。
【0108】
また、外部メモリリード処理部131が外部メモリ101より読み出したデータは、識別子処理部132により全て内部バッファメモリ122に書き込まれる。また、ワード/バイト変換処理部151は、それらのデータ(外部メモリ101より読み出されたデータ)を、全て内部バッファメモリ122より読み出す。
【0109】
これにより、メモリコントローラ102は、外部メモリ101からのデータ読み出し単位(1度に読み出すデータ量)に合わせて、内部バッファメモリ122への書き込み処理および内部バッファメモリからの読み出し処理の動作制御を容易に行う(外部メモリ101からのデータ読み出し処理1回に対して、内部バッファメモリ122への書き込み処理を1回、読み出し処理を1回実行するようにする)ことができ、さらに、内部バッファメモリ122に残った半端な数のデータに対する処理を用意する必要が無くなる。これらにより、メモリコントローラ102は、各処理間の同期制御処理を容易に行うことができる。
【0110】
以上において、外部メモリ101からのデータの読み出し単位は、バースト単位であるとしたが、これに限らず、例えば、ワード単位やバイト単位など、どのような単位であってもよい。また、同様に、内部バッファメモリ122の書き込み単位および読み出し単位も、どのような単位であってもよい。
【0111】
なお、以上においては、メモリコントローラ102はリード要求に基づいて外部メモリ101に記憶されているデータを読み出す処理を制御するように説明したが、メモリコントローラ102は、上述したような構成の読み出し機能を有していれば良く、さらに、外部メモリ101への書き込み機能を備えるようにしてもよい。その場合、メモリコントローラ102は、外部メモリ101からの読み出し処理だけでなく、外部メモリ101への書き込み処理も制御する。
【0112】
上述した一連の処理は、ハードウェアにより実行させることもできるし、上述したようにソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【0113】
図6は、このような処理を実行するパーソナルコンピュータの内部構成例を示す図である。
【0114】
パーソナルコンピュータ200のCPU(Central Processing Unit)201は、ROM(Read Only Memory)202に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)203には、CPU201が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。
【0115】
CPU201、ROM202、およびRAM203は、バス204を介して相互に接続されている。このバス204にはまた、入出力インタフェース210も接続されている。
【0116】
入出力インタフェース210は、キーボードやマウスから構成される入力部211が接続され、入力部211に入力された信号をCPU201に出力する。また、入出力インタフェース210には、ディスプレイやスピーカなどから構成される出力部212も接続されている。
【0117】
さらに、入出力インタフェース210には、ハードディスクなどから構成される記憶部213、および、インターネットなどのネットワークを介して他の装置とデータの通信を行う通信部214も接続されている。ドライブ215は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどの記録媒体からなるリムーバブルメディア221よりデータを読み出したり、データを書き込んだりするときに用いられる。
【0118】
記録媒体は、図6に示されるように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini−Disc)(登録商標)を含む)、若しくは半導体メモリなどよりなるパッケージメディアを含むリムーバブルメディア221により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM202や記憶部213が含まれるハードディスクなどで構成される。
【0119】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0120】
【発明の効果】
以上のように、本発明によれば、記録媒体に記憶されているデータの、より好適な読み出し制御を行うことができることができる。
【図面の簡単な説明】
【図1】従来のメモリコントローラの構成例を示すブロック図である。
【図2】本発明を適用したメモリコントローラの構成例を示すブロック図である。
【図3】図2の外部メモリリード処理部および識別子処理部の詳細を示すブロック図である。
【図4】図2のメモリコントローラの出力信号を説明する図である。
【図5】図2のメモリコントローラによる読み出し制御処理について説明するフローチャートである。
【図6】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
101 外部メモリ, 102 メモリコントローラ, 111 記憶領域,121 入力側制御部, 122 内部バッファメモリ, 123 出力側制御部, 131 外部メモリリード処理部, 132 識別子処理部, 141記憶領域, 142 データ記憶領域, 143 識別子記憶領域, 151ワード/バイト変換処理部, 171 外部メモリリード制御部, 181 有効・無効判定処理部, 182 識別子生成部, 183 動作要求出力部,191 データイネーブル信号, 192 バイトデータ出力部
【発明の属する技術分野】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、記録媒体に記憶されているデータの、より好適な読み出し制御を行うことができるようにした情報処理装置および方法、並びにプログラムに関する。
【0002】
【従来の技術】
従来、パーソナルコンピュータ等において、DRAM(Dynamic Random Access Memory)やEEPROM(Electronically Erasable and Programmable Read Only Memory)等により構成される外部メモリからデータが読み出される場合、そのデータは、32ビットや64ビット等の複数のビットで構成されるワード単位や、複数のワードで構成されるバースト単位等の、所定の単位でメモリコントローラ等により読み出される。
【0003】
図1を参照して、従来の外部メモリからのデータの読み出し制御処理の例について説明する。
【0004】
図1において、データを記憶する外部メモリ1を制御する、メモリコントローラ2は、外部からの要求に基づいて、外部メモリ1よりデータをバースト単位で読み出し、要求元であるデバイスにそのデータを供給する。
【0005】
外部メモリ1は、DRAMやEEPROM等により構成され、その記憶領域11には、バイト単位(8ビット単位)のデータであるバイトデータX0乃至X16、並びにバイトデータD0乃至D14が記憶されている。
【0006】
メモリコントローラ2は、外部の要求に基づいて、外部メモリ1を制御して、外部メモリ1に記憶されているデータを読み出す入力側制御部21、入力側制御部21が読み出したデータを一時保持する内部バッファメモリ22、および内部バッファメモリ22が保持しているデータを、メモリコントローラ2の外部に出力する出力側制御部23により構成されている。
【0007】
入力側制御部21には、外部メモリ1のデータの読み出し制御を行う外部メモリリード制御部31、読み出したデータのうち、無効なバイトデータを破棄する無効バイト破棄処理部32、抽出された有効なデータの整列処理を行う有効データ整列処理部33、および、入力側制御部21の各部の動作タイミングに基づいて、出力側制御部23の動作を制御する同期制御部34が構成されている。
【0008】
入力側制御部21の外部メモリリード処理部31が、メモリコントローラ2の外部より供給されたデータの読み出し要求(リード要求)に基づいて、外部メモリ1にデータD0乃至D14を要求すると、外部メモリ1は、予め決められた所定のデータ量(例えば、32バイト)のバースト単位で記憶領域11に記憶されているデータ(バイトデータX0乃至X16、並びにバイトデータD0乃至D14)を外部メモリリード処理部31に供給する。
【0009】
無効バイト破棄処理部32は、外部メモリリード処理部31により読み出されたバイトデータが有効なデータであるか否か、すなわち、読み出されたバイトデータがメモリコントローラ2の外部からのリード要求により要求されたデータであるか否かを判定し、無効なバイトデータを破棄する。すなわち、無効バイト破棄処理部32は、外部メモリリード処理部31により読み出されたデータの中から、有効データを抽出する。
【0010】
有効データ整列処理部33は、無効バイト破棄処理部32が抽出した有効データを整列し、内部バッファメモリ22に供給し、一時保持させる。内部バッファメモリ22は、有効データ整列処理部33より供給された有効データ(バイトデータD0乃至D14)を記憶領域41に保持する。
【0011】
同期制御部34は、有効データ整列処理部33が内部バッファメモリ22に供給した有効データのデータ数(データ量)をカウントし、内部バッファメモリ22に所定の単位分のデータが保持されると、データ読み出し処理を開始させる制御信号をワード/バイト変換処理部52に供給する。
【0012】
出力側制御部23のワード/バイト変換処理部52は、入力側制御部21の同期制御部34に供給される制御信号に基づいて、内部バッファメモリ22が保持しているデータD0乃至D14をワード単位(例えば、4バイトずつ)で読み出し(ワードデータとして読み出し)、バイト単位のデータに変換し、バイトデータ出力として、メモリコントローラ2の外部に出力する。
【0013】
また、出力側制御部23のデータイネーブル生成部51は、ワード/バイト変換処理部52により変換されたデータのイネーブル信号を生成し、出力されたバイトデータ出力に対応するデータイネーブル信号として出力する。
【0014】
従来のメモリコントローラ2は、以上のようにして、外部メモリ1よりデータを読み出し、バイトデータ出力とデータイネーブル信号を外部に出力する。
【0015】
また、他のメモリアクセスの例として、ロジック内蔵DRAMを用いた半導体集積回路装置において、外部より指定されるアドレス空間の領域がロジック制御領域である場合、ロジック回路制御する制御コマンドを保持するレジスタを動作させ、その制御コマンドによって、ロジック回路にコマンドに応じた処理を実行させ、記憶領域であるDRAMから読み出したデータを処理してから出力させるようにする方法が考えられる(例えば、特許文献1参照)。
【0016】
【特許文献1】
特開2002−175689号公報(第9−13ページ、図1)
【0017】
【発明が解決しようとする課題】
しかしながら、以上のような方法において、複数のデータからなるワード単位やバースト単位でのみデータを読み出すことができるような構成の外部メモリ1からデータを読み出す場合、読み出しを制御するメモリコントローラ2は、読み出したデータを内部バッファメモリ22に保持させる前に、データが有効であるか否かを判定し、無効データを破棄し、さらに、抽出した有効データを整列させる等、多くの処理を行わなければならず、回路規模が大きくなってしまうという課題があった。
【0018】
通常、データを外部メモリ1より読み出す入力側制御部21は、内部バッファメモリ22に保持されているデータをメモリコントローラ2の外部に出力させる出力側制御部23より高速に動作させる必要がある。従って、上述したように、入力側制御部21において多くの処理を実行させることにより、制御が複雑になるとともに、動作速度を向上させることが困難になり、さらに、消費電力やコストが増加してしまうという課題もあった。
【0019】
また、入力側制御部21による内部バッファメモリ22への書き込み処理と、出力側制御部23による内部バッファメモリ22からの読み出し処理が、非同期に実行される場合、すなわち、入力側制御部21および出力側制御部23の動作を制御する同期信号が存在しない場合、同期制御部34のように、入力側制御部21の動作タイミングに基づいて、出力側制御部23の動作タイミングを制御するような構成や処理が必要である。
【0020】
しかしながら、外部メモリ1より読み出されたデータは所定の単位で読み出されるが、その所定の単位で読み出されたデータの中から内部バッファメモリ22に書き込まれるデータのデータ量、すなわち、外部メモリ1より読み出されたデータに含まれる有効データの数は一定ではない。
【0021】
従って、内部バッファメモリ22の書き込み処理の動作単位、および読み出し処理の動作単位は、外部メモリ1からのデータの読み出し処理の動作単位とは無関係であり、内部バッファメモリ22への書き込みおよび読み出しの処理の同期制御を、同期制御部34のように、外部メモリ1からのデータの読み出し処理と独立して行う必要があり、同期制御が複雑になってしまうという課題もあった。
【0022】
すなわち、同期制御部34は、有効データ整列処理部33が内部バッファメモリ22に書き込ませたデータ量をカウントし、内部バッファメモリ22に所定の単位分のデータが保持されたときに(カウント値が所定の値に達したときに)、読み出し動作を開始させる制御信号をワード/バイト変換処理部52に供給する等、複雑な同期制御処理を実行しなければならない。
【0023】
また、内部バッファメモリ22のデータ書き込み単位と、データ読み出し単位とが異なる場合、内部バッファメモリ22に保持されている、データ読み出し単位より小さいデータ量の、半端な数の有効データを読み出すための構成や処理が必要であり、制御が複雑になってしまうという課題もあった。
【0024】
すなわち、ワード/バイト変換処理部52は、例えば、図1において、データD0乃至D3、データD4乃至D7、データD8乃至D11のように、ワード単位(4バイト単位)で有効データを順に読み出し、半端な数の有効データD12乃至D14(3バイト)については、データ読み出し単位を変更するなどしてから読み出さなければならない。
【0025】
本発明はこのような状況に鑑みてなされたものであり、記録媒体に記憶されているデータの、より好適な読み出し制御を行うことができるようにしたものである。
【0026】
【課題を解決するための手段】
本発明の情報処理装置は、記憶部からの、第1のデータ単位でのデータの読み出しを制御する読み出し制御手段と、読み出し制御手段により制御されて記憶部より読み出されたデータが有効なデータであるか否かを判定する判定手段と、判定手段による判定結果に基づいて、読み出し制御手段により制御されて記憶部より読み出されたデータの識別子を生成する生成手段と、読み出し制御手段により制御されて記憶部より読み出されたデータ、および生成手段により生成された識別子を互いに関連付けて保持する保持手段と、保持手段により保持されているデータを取得し、第2のデータ単位のデータに変換する変換手段と、変換手段により変換された第2のデータ単位のデータを、その識別子とともに出力する出力手段とを備えることを特徴とする。
【0027】
前記第1のデータ単位は、第2のデータ単位の整数倍の大きさであるようにすることができる。
【0028】
前記読み出し制御手段は、外部より供給された記憶部に対するリード要求に基づいて、記憶部からの、第1のデータ単位でのデータの読み出しを制御するようにすることができる。
【0029】
前記判定手段は、読み出し制御手段により制御されて記憶部より読み出されたデータが、リード要求により要求されたデータである場合、データが有効なデータであると判定し、読み出し制御手段により制御されて記憶部より読み出されたデータが、リード要求により要求されたデータでない場合、データが無効なデータであると判定するようにすることができる。
【0030】
前記生成手段は、判定手段により、読み出し制御手段により制御されて記憶部より読み出されたデータが有効なデータであると判定された場合、データが有効なデータであることを示す第1の識別子を生成し、読み出し制御手段により制御されて記憶部より読み出されたデータが無効なデータであると判定された場合、データが無効なデータであることを示す第2の識別子を生成するようにすることができる。
【0031】
前記第1の識別子は、値が「1」の1ビットの識別子であり、第2の識別子は、値が「0」の1ビットの識別子であるようにすることができる。
【0032】
前記保持手段は、読み出し制御手段により制御されて記憶部より読み出されたデータを第1の記憶領域に保持し、生成手段により生成された識別子を第1の記憶領域と異なる第2の記憶領域に保持するようにすることができる。
【0033】
前記判定手段は、読み出し制御手段により制御されて記憶部より読み出されたデータが有効なデータであるか否かを、第2のデータ単位毎に判定し、生成手段は、判定手段による判定結果毎に識別子を生成し、保持手段は、判定手段により有効なデータであるか否かを判定された、第2のデータ単位の各データと、生成手段により生成された各識別子とを、それぞれ関連付けて保持するようにすることができる。
【0034】
前記変換手段は、保持手段に保持されているデータを、第2のデータ単位より大きく、第1のデータ単位以下である第3のデータ単位で取得し、取得した第3のデータ単位のデータを第2のデータ単位のデータに変換するようにすることができる。
【0035】
前記第3のデータ単位は、第2のデータ単位の整数倍の大きさであるようにすることができる。
【0036】
前記保持手段に保持されている前記データの取得開始の動作を要求する動作要求手段をさらに備え、変換手段は、動作要求手段による要求に基づいて、保持手段に保持されているデータの取得の動作を開始するようにすることができる。
【0037】
前記動作要求手段は、保持手段が、読み出し制御手段により制御されて記憶部より読み出されたデータを全て保持した場合、保持手段に保持されているデータの取得開始の動作を要求するようにすることができる。
【0038】
本発明の情報処理方法は、記憶部からの、第1のデータ単位でのデータの読み出しを制御する読み出し制御ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータが有効なデータであるか否かを判定する判定ステップと、判定ステップの処理による判定結果に基づいて、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータの識別子を生成する生成ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータを、生成ステップの処理により生成された識別子と関連付けて保持部に保持させるように制御する保持制御ステップと、保持制御ステップの処理により制御され、保持されているデータを、保持部より取得し、第2のデータ単位のデータに変換する変換ステップと、変換ステップの処理により変換された第2のデータ単位のデータを、その識別子とともに出力するように制御する出力制御ステップとを含むことを特徴とする。
【0039】
本発明のプログラムは、記憶部からの、第1のデータ単位でのデータの読み出しを制御する読み出し制御ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータが有効なデータであるか否かを判定する判定ステップと、判定ステップの処理による判定結果に基づいて、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータの識別子を生成する生成ステップと、読み出し制御ステップの処理により制御されて記憶部より読み出されたデータを、生成ステップの処理により生成された識別子と関連付けて保持部に保持させるように制御する保持制御ステップと、保持制御ステップの処理により制御され、保持されているデータを、保持部より取得し、第2のデータ単位のデータに変換する変換ステップと、変換ステップの処理により変換された第2のデータ単位のデータを、その識別子とともにの出力するように制御する出力制御ステップとをコンピュータに実現させることを特徴とする。
【0040】
本発明の情報処理装置および方法、並びにプログラムにおいては、記憶部からの、第1のデータ単位でのデータの読み出しが制御され、記憶部より読み出されたデータが有効なデータであるか否かが判定され、その判定結果に基づいて、記憶部より読み出されたデータの識別子が生成され、記憶部より読み出されたデータ、および生成された識別子が互いに関連付けて保持され、その保持されているデータが取得され、第2のデータ単位のデータに変換され、その変換された第2のデータ単位のデータが、その識別子とともに出力される。
【0041】
【発明の実施の形態】
図2は、本発明を適用したメモリコントローラの構成例を表すブロック図である。
【0042】
図2において、メモリコントローラ102は、外部から供給されるリード要求に基づいて、外部メモリ101に記憶されているデータを読み出し、外部に出力する。
【0043】
外部メモリ101は、DRAMやEEPROM等の記憶素子により構成され、所定のサイズの記憶領域111を有する。外部メモリ101は、メモリコントローラ102により供給された要求に基づいて、記憶領域111に記憶されているデータを、予め決められた所定のデータ量(例えば、32バイト)を単位として、メモリコントローラに供給する(バースト転送)。
【0044】
すなわち、後述するように、メモリコントローラ102が、リード要求に基づいて、外部メモリ101に対して、要求されたデータを含むように読み出し開始アドレスを指示すると、外部メモリ101は、供給された読み出し開始アドレスから連続するアドレスに記憶されている複数のデータを、順次メモリコントローラ102に供給する。以下において、このときの、1回のアドレス指定に対してメモリコントローラ102に供給されるデータ量(例えば、32バイト)をバースト単位と称する。すなわち、この場合、バースト単位は、バイト単位の整数倍の大きさである。
【0045】
なお、図2において、記憶領域111には、1バイトのデータX0乃至X16、並びに、データD0乃至D14が記憶されている。外部メモリ101は、1回のアドレス指定に基づいて、これらのデータX0乃至X16、並びに、データD0乃至D14(32バイト分のデータ)を、バースト単位のデータとして、メモリコントローラ102に供給する。メモリコントローラ102は、このバースト単位のデータをバイト単位のデータに変換し、出力する。
【0046】
メモリコントローラ102は、外部より供給されるリード要求に基づいて外部メモリ101にデータを要求する入力側制御部121、入力側制御部121が取得したデータを一時保持する内部バッファメモリ122、内部バッファメモリ122に保持されているデータを読み出し、メモリコントローラ102の外部に出力する出力側制御部123を有しており、リード要求に基づいた外部メモリ101の読み出し制御処理を行う。
【0047】
入力側制御部121には、外部メモリ101よりデータを読み出す外部メモリリード処理部131、および外部メモリリード処理部131により読み出されたデータに対応する識別子を生成する識別子処理部132を有しており、外部メモリ101より読み出したデータ、および生成した識別子を内部バッファメモリ122に供給する。
【0048】
入力側制御部121の外部メモリリード処理部131は、メモリコントローラ102の外部より取得したリード要求を取得すると、取得したリード要求に基づいて、外部メモリ101が、要求されたデータ(例えば、データD0乃至D14)が含まれるデータ群を供給するように、リード開始位置(例えば、図2のデータ「X0」が記憶されているアドレス)を指定し、その情報を外部メモリ101に供給する。
【0049】
外部メモリ101は、その要求に基づいて、リード開始位置アドレス(例えば、図2のデータ「X0」が記憶されているアドレス)およびリード開始位置アドレスに連続するアドレスに記憶されている、所定のデータ量(例えば、32バイト)のデータ(例えば、データX1乃至X5、データD0乃至D14、並びにデータX6乃至X16)を、外部メモリリード処理部131に供給する。
【0050】
外部メモリリード処理部131は、外部メモリ101より取得したデータを、リード要求とともに、識別子処理部132に供給する。
【0051】
図3は、入力側制御部121の詳細な構成例を示すブロック図である。
【0052】
図3に示されるように、外部メモリリード処理部131は、外部メモリ101のデータ読み出しに関する処理を制御する外部メモリリード制御部171を有している。
【0053】
外部メモリリード制御部171は、図示は省略するが、外部メモリ101の動作を制御する制御コマンドが記憶されているレジスタ等を内蔵しており、メモリコントローラ102の外部より供給されたリード要求を取得すると、そのリード要求に基づいて、データの読み出し開始アドレスや、使用する制御コマンド(例えば、読み出しコマンド)等を決定し、それらの情報を外部メモリ101に供給する。
【0054】
外部メモリ101は、供給された制御コマンドに基づいて動作し、供給されたデータ読み出し開始アドレスに記憶されているデータから、読み出しを開始し、読み出したデータを外部メモリリード処理部131に順次供給する。そして、所定のデータ量分のデータを供給すると、外部メモリ101は、供給された制御コマンドに基づいて、読み出し処理を終了する。
【0055】
外部メモリ101よりデータを読み出した外部メモリリード処理部131は、上述したように、読み出したデータを識別子処理部132に供給する。なお、外部メモリリード制御部171は、メモリコントローラ102の外部より供給されたリード要求を保持しており、外部メモリ101より読み出したデータが識別子処理部132に供給される際に、若しくは、データが識別子処理部132に供給される前に、そのリード要求を識別子処理部132に供給する。
【0056】
図2に戻り、識別子処理部132は、取得したデータに対して、バイト単位ごとに、有効であるか否か、すなわち、取得したデータがリード要求により要求されたデータであるか否か(データD0乃至D14であるか否か)を判定し、判定結果に基づいた識別子を生成する。例えば、識別子処理部132は、取得したデータが有効データである場合(データD0乃至D14である場合)、値が「1」の、1ビットの識別子を生成し、取得したデータが無効なデータである場合(データX1乃至X16である場合)、値が「0」の、1ビットの識別子を生成する。
【0057】
なお、識別子処理部132が生成する識別子は、1ビット以外でもよく、複数ビットで構成されるようにしてもよい。また、識別子は、データに対して、一定の比率で生成されればよく、複数のデータ(複数バイトのデータ)に対して1つ生成されるようにしてもよい。
【0058】
バイト単位の各データに対して識別子を生成した識別子処理部132は、データおよび識別子を内部バッファメモリ122に供給し、保持させる。
【0059】
図3に示されるように、識別子処理部132は、取得したデータが有効であるか否かを判定する有効・無効判定処理部181、有効・無効判定処理部181による判定処理の判定結果に基づいて、データに対応する識別子を生成する識別子生成部182を有している。
【0060】
外部メモリリード処理部131よりデータを取得した識別子処理部132は、有効・無効判定処理部181において、外部メモリリード制御部171より供給されたリード要求の内容に基づいて、1バイト単位の各データについて、そのデータが有効であるか否かを判定し、識別子生成部182において、その判定結果に基づいて、1バイト単位の各データについて、識別子を生成する。
【0061】
そして、識別子処理部132は、後述するように、取得したデータを内部バッファメモリ122のデータ記憶領域142に保持させるとともに、生成した識別子を内部バッファメモリ122の識別子記憶領域143に保持させる。
【0062】
図2に戻り、内部バッファメモリ122は、SRAM(Static Random Access Memory)等の記憶素子により構成され、記憶領域141を有し、識別子処理部132より供給されたデータおよび識別子を、順に一時保持する。
【0063】
内部バッファメモリ122の記憶領域141は、データを記憶する記憶領域であるデータ記憶領域142と、識別子を記憶する記憶領域である識別子記憶領域143により構成され、所定のデータ量(例えば、1バイト)のデータと、そのデータに対応する所定のデータ量(例えば、1ビット)の識別子が互いに関連付けられて、それぞれ、データ記憶領域142または識別子記憶領域143に保持されている。
【0064】
例えば、図2に示されるように、外部メモリ101の記憶領域111より、データが、X0乃至X5,D0乃至D14,X6乃至X16の順番で読み出された場合、内部バッファメモリ122の記憶領域141には、各データが、同様の順番で、生成された識別子が関連付けられた状態で保持される。
【0065】
すなわち、図2の場合、記憶領域141の、最初のデータが格納される最上段左端のデータ記憶領域142には、データX0が保持されており、そのデータ記憶領域142に対応する識別子記憶領域143(最上段左端の識別子記憶領域143)には、値が「0」の識別子が保持されている。
【0066】
同様に、図2の記憶領域141の、7番目のデータが格納される上から2段目の左から3番目のデータ記憶領域142には、データD0が保持されており、そのデータ記憶領域142に対応する識別子記憶領域143(上から2段目の左から3番目の識別子記憶領域143)には、値が「1」の識別子が保持されている。
【0067】
また、図2の記憶領域141の、最後のデータが格納される最下段右端のデータ記憶領域142には、データX16が保持されており、そのデータ記憶領域142に対応する識別子記憶領域143(最下段右端の識別子記憶領域143)には、値が「0」の識別子が保持されている。
【0068】
なお、内部バッファメモリ122の記憶領域141のサイズは、どのような大きさであってもよく、上述したように、バースト単位と同じサイズであってもよいし、バースト単位より大きくても小さくてもよい。
【0069】
また、記憶領域141に保持される識別子とデータの比は、識別子処理部132より供給される識別子とデータの比と一致していればよく、例えば1対4等のように、1対1でなくてもよい。
【0070】
入力側制御部121の識別子処理部132は、所定のデータ量のデータを内部バッファメモリ122に保持させる毎に(例えば、バースト単位毎に)、出力側制御部123のワード/バイト変換処理部151に、所定の制御信号を供給する。
【0071】
出力側制御部123は、ワード単位のデータをバイト単位のデータに変換するワード/バイト変換処理部151を有しており、内部バッファメモリ122に記憶されているデータおよび識別子を読み出し、その識別子に対応するイネーブル信号であるデータイネーブル信号、および、バイト単位のデータに変換されたバイトデータ出力を、メモリコントローラ102の外部に出力する。
【0072】
図3に示されるように、識別子処理部132は、ワード/バイト変換処理部151に対して動作の開始を要求する動作要求出力部183を有している。この動作要求出力部183は、識別子処理部132の処理における所定のタイミングにおいて、動作の開始、すなわち、内部バッファメモリ122からのデータの読み出し処理の開始を要求する制御信号をワード/バイト変換処理部151に供給する。
【0073】
例えば、識別子処理部132が、外部メモリリード処理部131が外部メモリ101より読み出したデータ(バースト単位のデータ)を全て内部バッファメモリ122に供給し、保持させると、識別子処理部の動作要求出力部183は、動作開始を要求する制御信号をワード/バイト変換処理部151に供給する。
【0074】
この制御信号を取得したワード/バイト変換処理部151は、図2に示されるように、識別子処理部132より供給された制御信号に基づいて、内部バッファメモリ122に保持されているデータをワード単位(4バイト単位)で読み出し、読み出したワード単位のデータであるワードデータをバイト単位のデータであるバイトデータに変換する。すなわち、この場合、ワード単位は、バイト単位の整数倍の大きさであり、バースト単位以下の大きさである。
【0075】
また、ワード/バイト変換処理部151は、データとともに、データに対応する識別子を、内部バッファメモリ122より読み出す。
【0076】
そして、ワード/バイト変換処理部151は、変換したバイトデータをバイトデータ出力としてメモリコントローラ102の外部に出力するとともに、出力するバイトデータに対応する識別子をデータイネーブル信号としてメモリコントローラ102の外部に出力する。
【0077】
図4は、メモリコントローラ2より出力されるバイトデータ出力、および、データイネーブル信号の様子を示す図である。
【0078】
図4に示されるように、ワード/バイト変換処理部151は、ワードデータをバイトデータに変換した順、すなわち、データX0乃至X5、データD0乃至D14、データX6乃至X16の順で(図中、左端から矢印の方向に順番に)、バイトデータ出力192を出力するのに同期して、各バイトデータに対応するデータイネーブル信号191を、図中、左端から矢印の方向に順番に、メモリコントローラ102の外部に出力する。
【0079】
従って、データX0乃至X5が出力されている間、データイネーブル信号191の値は「0」(Low)である。そして、データD0が出力されるとき、データイネーブル信号191の値は「1」(Hi)に変化する。それから、データD0乃至D14が出力されている間、データイネーブル信号191の値は「1」(Hi)であり、データX6が出力されるとき、データイネーブル信号191の値は「0」(Low)に変化する。その後、データX6乃至X16が出力されている間、データイネーブル信号191の値は「0」(Low)である。
【0080】
以上のように、ワード/バイト変換処理部151は、内部バッファメモリ122より読み出したデータを、有効なデータであるか、無効なデータであるかに関わらず、全て順番に出力し、そのデータ出力に合わせて、内部バッファメモリ122より読み出した識別子を、出力するデータが有効であるか否かを示すデータイネーブル信号として出力する。
【0081】
次に、図5のフローチャートを参照して、外部メモリ101よりデータを読み出す場合にメモリコントローラ102が実行する読み出し制御処理について説明する。
【0082】
メモリコントローラ102の外部よりリード要求を取得した外部メモリリード処理部131の外部メモリリード制御部171は、ステップS1において、取得したリード要求に基づいて、外部メモリ101にデータの読み出しを要求する。すなわち、外部メモリリード制御部171は、取得したリード要求に基づいて、外部メモリ101から読み出したデータに、要求されたデータが含まれるように、データの読み出し開始アドレスや、使用する制御コマンド(例えば、読み出しコマンド)等を決定し、それらの情報を外部メモリ101に供給する。
【0083】
外部メモリ101は、供給された制御コマンドに基づいて動作し、供給されたデータ読み出し開始アドレスに記憶されているデータから、読み出しを開始し、所定のデータ単位(例えば、バースト単位)毎に読み出したデータを外部メモリリード処理部131に順次供給する。
【0084】
ステップS2において、外部メモリリード処理部131は、外部メモリ101より供給されたデータを取得したか否かを判定し、取得したと判定するまで待機する。
【0085】
外部メモリ101より読み出されたデータが供給され、データを取得したと判定した場合、外部メモリリード処理部131は、取得したデータを識別子処理部131に供給する。そして、ステップS3において、識別子処理部131の有効・無効判定処理部181は、外部メモリリード処理部131が外部メモリ101より取得したデータが有効であるか否かを、例えばバイト単位で判定する。
【0086】
すなわち、有効・無効判定処理部181は、外部メモリリード処理部131より供給されたデータ(バイト単位のデータ)がリード要求により要求されたデータであるか否か(有効データであるか否か)を判定する。
【0087】
ステップS3において、有効・無効判定処理部181により有効であると判定された場合、識別子生成部182は、ステップS4において、その判定結果に基づいて、そのバイト単位のデータに対して、値が「1」の識別子を生成する。
【0088】
また、ステップS3において、有効・無効判定処理部181によりデータが有効でない(無効データである)と判定された場合、識別子生成部182は、ステップS5において、その判定結果に基づいて、そのバイト単位のデータに対して、値が「0」の識別子を生成する。
【0089】
ステップS4またはS5の処理により、識別子生成部182がバイト単位のデータに対応して識別子を生成すると識別子処理部132は、ステップS6において、識別子を生成したバイト単位のデータを内部バッファメモリ122に供給し、保持させる。内部バッファメモリ122は、取得したデータをデータ記憶領域142に保持する。
【0090】
ステップS6の処理を終了した識別子処理部132は、ステップS7において、生成した識別子(ステップS5の処理により内部バッファメモリ122に保持させたデータに対応する識別子)を内部バッファメモリ122に供給し、保持させる。内部バッファメモリ122は、取得した識別子を識別子記憶領域143の、ステップS5の処理により保持されているデータのアドレス(データ記憶領域142におけるアドレス)に対応するアドレス(識別子記憶領域143におけるアドレス)に保持する。
【0091】
ステップS7の処理を終了した識別子処理部132は、ステップS8において、外部メモリリード処理部131が外部メモリ101より取得したデータ(外部メモリリード処理部131より供給されたデータ)を全て内部バッファメモリ122に保持させたか否か(全てのバイト単位のデータに対して識別子を生成し、それらのデータおよび識別子を、全て内部バッファメモリ122に保持させたか否か)を判定する。
【0092】
未処理のデータが存在し、まだ取得したデータを全て内部バッファメモリ122に保持させていないと判定した場合、識別子処理部132は、処理をステップS3に戻し、それ以降の処理を繰り返す。
【0093】
すなわち、識別子処理部132は、ステップS3乃至S8の処理を繰り返し、外部メモリリード処理部131より供給された全てのデータ(バイト単位のデータ)に対して識別子を生成し、各データおよび識別子を互いに関連付けて、内部バッファメモリ122に保持させる。
【0094】
そして、識別子制御部132が、全てのデータについて上述した処理を行い、ステップS8において、取得したデータを全て保持させたと判定した場合、動作要求出力部183は、ステップS9において、ワード/バイト変換処理部151にデータ読み出し処理を開始させる。
【0095】
すなわち、動作要求出力部183は、内部バッファメモリ122からのデータ読み出し処理を開始させる制御信号を、ワード/バイト変換処理部151に供給する。ワード/バイト変換処理部151は、取得した制御信号(動作要求)に基づいて、内部バッファメモリ122からのデータの読み出し処理を開始する。
【0096】
データの読み出し処理を開始したワード/バイト変換処理部151は、ステップS10において、内部バッファメモリ122のデータ記憶領域142に保持されているデータを、アドレスの先頭から順番に、ワード単位で読み出す。
【0097】
また、ワード/バイト変換処理部151は、ステップS11において、ステップS10において読み出されたデータに対応する、内部バッファメモリ122の識別子記憶領域143に保持されているデータを全て読み出す。
【0098】
そして、ワード/バイト変換処理部151は、ステップS12において、内部バッファメモリ122より読み出したワード単位のデータ(ワードデータ)をバイト単位のデータ(バイトデータ)に変換するワード/バイト変換処理を実行する。
【0099】
ステップS12の処理を実行したワード/バイト変換処理部151は、ステップS13に処理を進め、変換したバイトデータをバイトデータ出力として、メモリコントローラ102の外部に出力する。
【0100】
さらに、ワード/バイト変換処理部151は、ステップS14において、ステップS13において出力したバイトデータに対応する識別子(ステップS11において内部バッファメモリ122より読み出された識別子)を、データイネーブル信号として、メモリコントローラ102の外部に出力する。
【0101】
そして、ワード/バイト変換処理部151は、ステップS15に処理を進め、識別子処理部132により要求されたデータ(識別子処理部132の要求に基づいて実行される読み出し開始処理により読み出されるデータ)を全て出力させたか否かを判定する。
【0102】
まだ、内部バッファメモリ122に読み出していないデータが存在し、要求されたデータを全て出力させていないと判定した場合、ワード/バイト変換処理部151は、処理をステップS10に戻し、それ以降の処理を繰り返す。
【0103】
すなわち、ワード/バイト変換処理部151は、ステップS10乃至S15の処理を繰り返し、内部バッファメモリ122に保持されている全てのデータおよび識別子を取得し、取得したワードデータをバイトデータに変換し、バイトデータ出力およびデータイネーブル信号をメモリコントローラ102の外部に出力する。
【0104】
そして、内部バッファメモリ122に保持されている全てのデータおよび識別子を出力させ、ステップS15において、要求された全てのデータを出力させたと判定した場合、ワード/バイト変換処理部151は、読み出し制御処理を終了する。
【0105】
以上のようにして、メモリコントローラ102の各部は、データの読み出し制御処理を実行し、リード要求に基づいて、要求されたデータを、外部メモリ101から読み出して出力する。
【0106】
上述したように、メモリコントローラ102を構成し、動作させることにより、無効データを破棄したり、抽出した有効データを整列させたり、内部バッファメモリ122より読み出したデータに基づいてデータイネーブル信号を生成したりする構成および動作が不要になり、より容易にデータの読み出し制御を行うようにすることができる。
【0107】
また、これにより、処理速度が高速な入力側制御部121において実行される処理数を減らすことができるので、メモリコントローラ102は、その制御を容易にすることができるとともに、動作速度も容易に向上させることができ、さらに、消費電力やコストを減少させることもできる。
【0108】
また、外部メモリリード処理部131が外部メモリ101より読み出したデータは、識別子処理部132により全て内部バッファメモリ122に書き込まれる。また、ワード/バイト変換処理部151は、それらのデータ(外部メモリ101より読み出されたデータ)を、全て内部バッファメモリ122より読み出す。
【0109】
これにより、メモリコントローラ102は、外部メモリ101からのデータ読み出し単位(1度に読み出すデータ量)に合わせて、内部バッファメモリ122への書き込み処理および内部バッファメモリからの読み出し処理の動作制御を容易に行う(外部メモリ101からのデータ読み出し処理1回に対して、内部バッファメモリ122への書き込み処理を1回、読み出し処理を1回実行するようにする)ことができ、さらに、内部バッファメモリ122に残った半端な数のデータに対する処理を用意する必要が無くなる。これらにより、メモリコントローラ102は、各処理間の同期制御処理を容易に行うことができる。
【0110】
以上において、外部メモリ101からのデータの読み出し単位は、バースト単位であるとしたが、これに限らず、例えば、ワード単位やバイト単位など、どのような単位であってもよい。また、同様に、内部バッファメモリ122の書き込み単位および読み出し単位も、どのような単位であってもよい。
【0111】
なお、以上においては、メモリコントローラ102はリード要求に基づいて外部メモリ101に記憶されているデータを読み出す処理を制御するように説明したが、メモリコントローラ102は、上述したような構成の読み出し機能を有していれば良く、さらに、外部メモリ101への書き込み機能を備えるようにしてもよい。その場合、メモリコントローラ102は、外部メモリ101からの読み出し処理だけでなく、外部メモリ101への書き込み処理も制御する。
【0112】
上述した一連の処理は、ハードウェアにより実行させることもできるし、上述したようにソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【0113】
図6は、このような処理を実行するパーソナルコンピュータの内部構成例を示す図である。
【0114】
パーソナルコンピュータ200のCPU(Central Processing Unit)201は、ROM(Read Only Memory)202に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)203には、CPU201が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。
【0115】
CPU201、ROM202、およびRAM203は、バス204を介して相互に接続されている。このバス204にはまた、入出力インタフェース210も接続されている。
【0116】
入出力インタフェース210は、キーボードやマウスから構成される入力部211が接続され、入力部211に入力された信号をCPU201に出力する。また、入出力インタフェース210には、ディスプレイやスピーカなどから構成される出力部212も接続されている。
【0117】
さらに、入出力インタフェース210には、ハードディスクなどから構成される記憶部213、および、インターネットなどのネットワークを介して他の装置とデータの通信を行う通信部214も接続されている。ドライブ215は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどの記録媒体からなるリムーバブルメディア221よりデータを読み出したり、データを書き込んだりするときに用いられる。
【0118】
記録媒体は、図6に示されるように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD−ROM(Compact Disc−Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini−Disc)(登録商標)を含む)、若しくは半導体メモリなどよりなるパッケージメディアを含むリムーバブルメディア221により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM202や記憶部213が含まれるハードディスクなどで構成される。
【0119】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0120】
【発明の効果】
以上のように、本発明によれば、記録媒体に記憶されているデータの、より好適な読み出し制御を行うことができることができる。
【図面の簡単な説明】
【図1】従来のメモリコントローラの構成例を示すブロック図である。
【図2】本発明を適用したメモリコントローラの構成例を示すブロック図である。
【図3】図2の外部メモリリード処理部および識別子処理部の詳細を示すブロック図である。
【図4】図2のメモリコントローラの出力信号を説明する図である。
【図5】図2のメモリコントローラによる読み出し制御処理について説明するフローチャートである。
【図6】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
101 外部メモリ, 102 メモリコントローラ, 111 記憶領域,121 入力側制御部, 122 内部バッファメモリ, 123 出力側制御部, 131 外部メモリリード処理部, 132 識別子処理部, 141記憶領域, 142 データ記憶領域, 143 識別子記憶領域, 151ワード/バイト変換処理部, 171 外部メモリリード制御部, 181 有効・無効判定処理部, 182 識別子生成部, 183 動作要求出力部,191 データイネーブル信号, 192 バイトデータ出力部
Claims (14)
- 第1のデータ単位でデータを読み出し可能な記憶部より、前記データを読み出し、前記第1のデータ単位より小さい第2のデータ単位のデータに変換し、出力する情報処理装置において、
前記記憶部からの、前記第1のデータ単位での前記データの読み出しを制御する読み出し制御手段と、
前記読み出し制御手段により制御されて前記記憶部より読み出された前記データが有効なデータであるか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データの識別子を生成する生成手段と、
前記読み出し制御手段により制御されて前記記憶部より読み出された前記データ、および前記生成手段により生成された前記識別子を互いに関連付けて保持する保持手段と、
前記保持手段により保持されている前記データを取得し、前記第2のデータ単位のデータに変換する変換手段と、
前記変換手段により変換された前記第2のデータ単位のデータを、その識別子とともに出力する出力手段と
を備えることを特徴とする情報処理装置。 - 前記第1のデータ単位は、前記第2のデータ単位の整数倍の大きさである
ことを特徴とする請求項1に記載の情報処理装置。 - 前記読み出し制御手段は、外部より供給された前記記憶部に対するリード要求に基づいて、前記記憶部からの、前記第1のデータ単位での前記データの読み出しを制御する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記判定手段は、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データが、前記リード要求により要求されたデータである場合、前記データが有効なデータであると判定し、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データが、前記リード要求により要求されたデータでない場合、前記データが無効なデータであると判定する
ことを特徴とする請求項3に記載の情報処理装置。 - 前記生成手段は、前記判定手段により、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データが有効なデータであると判定された場合、前記データが有効なデータであることを示す第1の識別子を生成し、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データが無効なデータであると判定された場合、前記データが無効なデータであることを示す第2の識別子を生成する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記第1の識別子は、値が「1」の1ビットの識別子であり、
前記第2の識別子は、値が「0」の1ビットの識別子である
ことを特徴とする請求項5に記載の情報処理装置。 - 前記保持手段は、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データを第1の記憶領域に保持し、前記生成手段により生成された前記識別子を前記第1の記憶領域と異なる第2の記憶領域に保持する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記判定手段は、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データが有効なデータであるか否かを、前記第2のデータ単位毎に判定し、
前記生成手段は、前記判定手段による判定結果毎に前記識別子を生成し、
前記保持手段は、前記判定手段により有効なデータであるか否かを判定された、前記第2のデータ単位の各前記データと、前記生成手段により生成された各前記識別子とを、それぞれ関連付けて保持する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記変換手段は、前記保持手段に保持されている前記データを、前記第2のデータ単位より大きく、前記第1のデータ単位以下である第3のデータ単位で取得し、取得した前記第3のデータ単位の前記データを前記第2のデータ単位のデータに変換する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記第3のデータ単位は、前記第2のデータ単位の整数倍の大きさである
ことを特徴とする請求項9に記載の情報処理装置。 - 前記保持手段に保持されている前記データの取得開始の動作を要求する動作要求手段をさらに備え、
前記変換手段は、前記動作要求手段による前記要求に基づいて、前記保持手段に保持されている前記データの取得の動作を開始する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記動作要求手段は、前記保持手段が、前記読み出し制御手段により制御されて前記記憶部より読み出された前記データを全て保持した場合、前記保持手段に保持されている前記データの取得開始の動作を要求する
ことを特徴とする請求項11に記載の情報処理装置。 - 第1のデータ単位でデータを読み出し可能な記憶部より、前記データを読み出し、前記第1のデータ単位より小さい第2のデータ単位のデータに変換し、出力する情報処理装置の情報処理方法であって、
前記記憶部からの、前記第1のデータ単位での前記データの読み出しを制御する読み出し制御ステップと、
前記読み出し制御ステップの処理により制御されて前記記憶部より読み出された前記データが有効なデータであるか否かを判定する判定ステップと、
前記判定ステップの処理による判定結果に基づいて、前記読み出し制御ステップの処理により制御されて前記記憶部より読み出された前記データの識別子を生成する生成ステップと、
前記読み出し制御ステップの処理により制御されて前記記憶部より読み出された前記データを、前記生成ステップの処理により生成された前記識別子と関連付けて保持部に保持させるように制御する保持制御ステップと、
前記保持制御ステップの処理により制御され、保持されている前記データを、前記保持部より取得し、前記第2のデータ単位のデータに変換する変換ステップと、
前記変換ステップの処理により変換された前記第2のデータ単位のデータを、その識別子とともに出力するように制御する出力制御ステップと
を含むことを特徴とする情報処理方法。 - データを読み出し、第1のデータ単位より小さい第2のデータ単位のデータに変換し、出力する処理を、前記第1のデータ単位で前記データを読み出し可能な記憶部を有するコンピュータに行わせるプログラムにおいて、
前記記憶部からの、前記第1のデータ単位での前記データの読み出しを制御する読み出し制御ステップと、
前記読み出し制御ステップの処理により制御されて前記記憶部より読み出された前記データが有効なデータであるか否かを判定する判定ステップと、
前記判定ステップの処理による判定結果に基づいて、前記読み出し制御ステップの処理により制御されて前記記憶部より読み出された前記データの識別子を生成する生成ステップと、
前記読み出し制御ステップの処理により制御されて前記記憶部より読み出された前記データを、前記生成ステップの処理により生成された前記識別子と関連付けて保持部に保持させるように制御する保持制御ステップと、
前記保持制御ステップの処理により制御され、保持されている前記データを、前記保持部より取得し、前記第2のデータ単位のデータに変換する変換ステップと、
前記変換ステップの処理により変換された前記第2のデータ単位のデータを、その識別子とともに出力するように制御する出力制御ステップと
を含むことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003023859A JP2004234461A (ja) | 2003-01-31 | 2003-01-31 | 情報処理装置および方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003023859A JP2004234461A (ja) | 2003-01-31 | 2003-01-31 | 情報処理装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004234461A true JP2004234461A (ja) | 2004-08-19 |
Family
ID=32952550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003023859A Withdrawn JP2004234461A (ja) | 2003-01-31 | 2003-01-31 | 情報処理装置および方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004234461A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070516A (ja) * | 2007-09-14 | 2009-04-02 | Seiko Epson Corp | 情報書き込み制御装置、情報書き込み制御方法、および、情報書き込み制御プログラム |
JP2012137944A (ja) * | 2010-12-27 | 2012-07-19 | Mitsubishi Electric Corp | メモリアクセス装置 |
KR20170134704A (ko) * | 2015-04-23 | 2017-12-06 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 확장 메모리에 대한 액세스 방법, 디바이스 및 시스템 |
-
2003
- 2003-01-31 JP JP2003023859A patent/JP2004234461A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009070516A (ja) * | 2007-09-14 | 2009-04-02 | Seiko Epson Corp | 情報書き込み制御装置、情報書き込み制御方法、および、情報書き込み制御プログラム |
US8264924B2 (en) | 2007-09-14 | 2012-09-11 | Seiko Epson Corporation | Data writing control device, data writing control method, and data writing control program |
JP2012137944A (ja) * | 2010-12-27 | 2012-07-19 | Mitsubishi Electric Corp | メモリアクセス装置 |
KR20170134704A (ko) * | 2015-04-23 | 2017-12-06 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 확장 메모리에 대한 액세스 방법, 디바이스 및 시스템 |
JP2018517205A (ja) * | 2015-04-23 | 2018-06-28 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 拡張メモリにアクセスするための方法、デバイス及びシステム |
US10545672B2 (en) | 2015-04-23 | 2020-01-28 | Huawei Technologies Co., Ltd. | Method for accessing extended memory, device, and system |
KR102168017B1 (ko) * | 2015-04-23 | 2020-10-20 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 확장 메모리에 대한 액세스 방법, 디바이스 및 시스템 |
US11237728B2 (en) | 2015-04-23 | 2022-02-01 | Huawei Technologies Co., Ltd. | Method for accessing extended memory, device, and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW594785B (en) | Semiconductor memory device having external data load signal and serial-to-parallel data prefetch method thereof | |
JP4901285B2 (ja) | 読み出し性能を向上させることができるメモリカード | |
JP2007073052A (ja) | 集積回路から外部メモリへのアクセス | |
US20080279032A1 (en) | Integrated Circuit Memory Device, System And Method Having Interleaved Row And Column Control | |
JPH0845277A (ja) | 半導体記憶装置 | |
US7313670B2 (en) | Data processing system and slave device | |
TW318904B (ja) | ||
TW451195B (en) | Internal command signal generator and method therefor | |
JP2000066948A (ja) | 圧縮データ入出力機能付メモリlsi | |
JP3803196B2 (ja) | 情報処理装置、情報処理方法および記録媒体 | |
JP2004234461A (ja) | 情報処理装置および方法、並びにプログラム | |
JP2007072930A (ja) | Ddr−sdramのアクセス制御方法およびその方法を採用した画像処理装置 | |
JPH10134576A (ja) | 半導体メモリ装置 | |
JP2005222682A (ja) | 半導体メモリ装置、並びに、この装置のデータ書込み及び読出し方法 | |
TWI285839B (en) | Selectively prefetch method and bridge module | |
JPH10241360A (ja) | 半導体記憶装置 | |
JP2003203490A (ja) | 半導体記憶装置、制御装置、および半導体記憶装置の制御方法 | |
JPH10340596A (ja) | データ記憶装置および半導体記憶装置 | |
JP3251237B2 (ja) | Sdramにおける再プログラミング方法 | |
JP2001022692A (ja) | マイクロコンピュータ及び制御システム | |
JP2008083772A (ja) | データ処理装置 | |
JP2003248619A (ja) | デバイスアクセス方法 | |
JP2005063351A (ja) | データ転送装置およびデータ転送方法 | |
JP4351292B2 (ja) | データ制御装置、データ制御方法およびデータ制御プログラム | |
JP4389538B2 (ja) | 画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060404 |