JP2009104497A - メモリ管理方式およびメモリ管理方法 - Google Patents
メモリ管理方式およびメモリ管理方法 Download PDFInfo
- Publication number
- JP2009104497A JP2009104497A JP2007277113A JP2007277113A JP2009104497A JP 2009104497 A JP2009104497 A JP 2009104497A JP 2007277113 A JP2007277113 A JP 2007277113A JP 2007277113 A JP2007277113 A JP 2007277113A JP 2009104497 A JP2009104497 A JP 2009104497A
- Authority
- JP
- Japan
- Prior art keywords
- page
- data
- information indicating
- memory
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims description 139
- 230000005540 biological transmission Effects 0.000 claims description 70
- 230000004044 response Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 6
- 238000012546 transfer Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000000034 method Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】データを格納するメモリの管理をより簡易な処理によって実現できるとともに、メモリ管理に要する回路規模を増大させないようにする。
【解決手段】データ制御手段30は、記憶手段60にデータを書き込む際に、データが記憶されたページ61,62,・・・,6nの最終部61a,62a,・・・,6naに、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定する。そして、ページ管理手段10は、データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理する。
【選択図】図1
【解決手段】データ制御手段30は、記憶手段60にデータを書き込む際に、データが記憶されたページ61,62,・・・,6nの最終部61a,62a,・・・,6naに、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定する。そして、ページ管理手段10は、データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理する。
【選択図】図1
Description
本発明は、フレームデータを送受信するシステムにおけるメモリ管理方式およびメモリ管理方法に関する。
近年のディジタル技術の発展に伴って、通信ネットワークを介して接続されるデータ通信機器間で、通信ネットワークを介して送受信されるフレームデータデータのデータ量が増大している。その結果、データ通信機器に搭載されるフレームデータを格納するメモリの容量が増大している。メモリ容量が多くなる程、メモリ管理が複雑になるので、メモリ管理を効率化させる技術の必要性が高まっている。また、データ量の増大に伴って、メモリ管理を行う際の回路規模の増加をいかに抑えるかということも重要な課題になっている。
メモリ管理方式として、メモリをページ単位に分割し、ページ単位で管理する方式が存在する。そのような方式では、フレームデータが複数のページに跨って格納された場合には、各ページをリンクさせる必要がある。フレームデータが格納された各ページをリンクさせようとすると、各ページのリンク情報(ページポインタ情報)を記憶する専用の領域が必要になる。そのため、回路規模が増加し、ページ管理も複雑になる。また、使用ページリストと未使用ページリスト(フリーページリスト)とを管理する必要もあるから、個別の管理テーブルが必要になり、メモリ管理がより複雑になる。
メモリをページ単位で管理する方式であって、メモリ管理の複雑さを低減できる方式として、複数のページを1つの連続領域として管理する方式がある(特許文献1,2参照)。ただし、特許文献2に記載された方式では、任意の複数ページを1つのレコードとして管理しているに過ぎない。
しかし、特許文献1に記載された方式では、連続した複数のページを1つの管理単位(以下、連続領域という。)にしている。そして、メモリにおいて1つの連続領域の前方に位置する連続領域の終了ページ番号と、1つの連続領域の後方に位置する連続領域の開始ページ番号とが管理されている。すなわち、1つの連続領域を等価的に1つのページとみなすと、前ページの番号と後ページの番号とが管理レコードによって管理されている。
すると、例えば、ある連続領域を削除する場合には、管理レコードの記述において、削除対象の連続領域の後方に位置する連続領域に関して、その連続領域に対する前ページの番号を変更するとともに、削除対象の連続領域の前方に位置する連続領域に関して、その連続領域に対する後ページの番号を変更するといった複雑な処理を行う必要がある。また、特許文献1に記載された方式では、リンク情報を有する管理レコードを記憶する専用の領域が必要であり、回路規模は増加する。
そこで、本発明は、データを格納するメモリの管理をより簡易な処理によって実現できるとともに、メモリ管理に要する回路規模を増大させないようにすることができるメモリ管理方式およびメモリ管理方法を提供することを目的とする。
本発明のメモリ管理方式は、記憶手段における記憶領域をページ単位で管理するメモリ管理方式であって、記憶手段にデータを書き込む際に、データが記憶されたページの最終部に、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定するデータ制御手段と、データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理するページ管理手段とを備えたことを特徴とする。
本発明のメモリ管理方法は、記憶手段における記憶領域をページ単位で管理するメモリ管理方法であって、記憶手段にデータを書き込む際に、データが記憶されたページの最終部に、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定し、データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理することを特徴とする。
本発明によれば、データを格納するメモリの管理をより簡易な処理によって実現できるとともに、メモリ管理に要する回路規模を増大させないようにすることができる。
次に、本発明の実施形態を図面を参照して説明する。
まず、本発明によるメモリ管理方式の概要を、図1のブロック図を参照して説明する。図1に示す構成では、データ制御手段30は、記憶手段60にデータを書き込む際に、データが記憶されたページ61,62,・・・,6nの最終部61a,62a,・・・,6naに、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定する。そして、ページ管理手段10は、データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理する。データ制御手段30は、記憶手段60からデータを読み出した場合に、データを読み出したページリストにおける先頭ページを示す情報、データを読み出したページリストにおける最終ページを示す情報、およびデータを読み出したページの数を示す情報をページ管理手段10に出力し、ページ管理手段10は、データ制御手段30が出力した各情報にもとづいて、内部に保存されている先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を更新する。
実施形態1.
図2は、本発明によるメモリ管理方法の第1の実施形態が適用されるフレームデータ送受信回路を示すブロック図である。図2に示すフレームデータ送受信回路において、フリーページ管理部1は、フリーページ情報を管理するブロックである。I/O制御部2は、システムインタフェースとは制御バスで接続され、システムインタフェースからメモリサイズおよびページサイズを設定する際に使用されるインタフェースブロックである。
図2は、本発明によるメモリ管理方法の第1の実施形態が適用されるフレームデータ送受信回路を示すブロック図である。図2に示すフレームデータ送受信回路において、フリーページ管理部1は、フリーページ情報を管理するブロックである。I/O制御部2は、システムインタフェースとは制御バスで接続され、システムインタフェースからメモリサイズおよびページサイズを設定する際に使用されるインタフェースブロックである。
システムインタフェースは、例えば、フレームデータ送受信回路が組み込まれる装置におけるアプリケーションが機能する部分(フレームデータ送受信回路以外の回路等:例えば、装置の制御部やオペレーティングシステム)とフレームデータ送受信回路との間のインタフェースである。ユーザインタフェースは、例えば、フレームデータ送受信回路が組み込まれる装置における周辺デバイス等とフレームデータ送受信回路との間のインタフェースである。
送信データ制御部3は、システムインタフェースからの送信データ(S)をユーザインタフェースに送信データ(U)として転送するための制御ブロックである。受信データ制御部4は、ユーザインタフェースからの受信データ(U)をシステムインタフェースに受信データ(S)として転送するための制御ブロックである。メモリアクセス制御部5は、フリーページ管理部1、送信データ制御部3および受信データ制御部4からメモリ6へのデータライト要求またはデータリード要求を調停するブロックである。メモリ6は、ユーザインタフェースまたはシステムインタフェースに転送するデータを格納するための記憶部であり、例えば半導体によるランダムアクセスメモリ(RAM)である。
次に、データを転送する際のメモリ管理方法を説明する。図2に示すフレームデータ送受信回路において、まず、システムインタフェース側から、I/O制御部2を介してフリーページ管理部1に、メモリサイズを示すメモリサイズ信号およびページサイズを示すページサイズ信号と、メモリサイズおよびページサイズのサイズ設定が完了したことを通知するサイズ設定通知信号との各設定信号が通知される。フリーページ管理部1は、サイズ設定通知信号がアサートされたタイミングでメモリサイズ信号とページサイズ信号とを内部レジスタにラッチし、メモリ6の総ページ数を算出する。
次に、システムインタフェース側からユーザインタフェース側に送信データを転送するためのデータ転送要求が通知された場合について説明する。送信データ制御部3は、メモリ6内において送信データを格納するためのフリーページを取得するために、ページ取得要求を示すページ取得要求信号(Tx)をメモリアクセス制御部5に出力する。メモリアクセス制御部5は、他のブロックのリクエストとの調停を行い、送信データ制御部3からのページ取得要求信号(Tx)を受け付けた場合には、フリーページ管理部1にページ取得要求信号を通知する。また、メモリアクセス制御部5は、送信データ制御部3に対してページ取得要求ACK信号(Tx)を返信することによって、ページ取得要求信号(Tx)によるページ取得要求を受け付けたことを通知する。なお、メモリアクセス制御部5がフリーページ管理部1に通知するページ取得要求信号は、ページ取得要求ACK信号(Tx)と同じ信号になる。
送信データ制御部3は、メモリアクセス制御部5からのページ取得要求ACK信号(Tx)を受け取ると、フリーページ管理部1が示す先頭フリーページポインタ値(ページアドレス値)を内部に保持する。フリーページ管理部1は、メモリアクセス制御部5からページ取得要求を受けると、送信データ制御部3が保持したフリーページポインタ値(ページアドレス値)の次のページポインタ値(ページアドレス値)を新たなフリーページポインタ値(ページアドレス値)として記憶する。新たなフリーページポインタ値(ページアドレス値)の決定の仕方として、例えば、次の2通りがある。
第1は、一度も転送データが書き込まれていないページがメモリ6の内部に存在する場合に適用される決定の仕方である。そのようなページがメモリ6の内部に存在するということは、今までに使用されたフリーページ数がフリーページ管理部1で最初に決定された総ページ数に到達していないことを意味する。この場合には、フリーページ管理部1の内部に存在するページポインタ生成部11(図3参照)で生成される値が、新たなフリーページポインタ値(ページアドレス値)として保持される。
第2は、メモリ6の内部の全てのページに最低一度は転送データが書き込まれた場合に適用される決定の仕方である。全てのページに最低一度は転送データが書き込まれたということは、今までに使用されたフリーページ数がフリーページ管理部1で最初に決定された総ページ数に到達していることを意味する。この場合には、後述するように、各ページの最終ワードにはリンク先のページポインタ値(ページアドレス値)が保持されている。よって、先頭フリーページの最終ワードに記憶されているページポインタ値(ページアドレス値)が、新たなフリーページポインタ値(ページアドレス値)として保持されることになる。なお、メモリ6の内部の全てのページに最低一度は転送データが書き込まれた場合には、メモリ6内には使用中のページがチェーニングされている1本または複数本の使用中ページリストと、フリーページがチェーニングされている1本のフリーページリストとが存在することになる。そして、ページ取得要求が通知されたときに、フリーページリストにチェーニングされている先頭から数えて2番目のページのポインタ値(ページアドレス値)が、新たなフリーページポインタ値(ページアドレス値)として保持されることになる。
送信データ制御部3は、取得したフリーページに送信するデータを書き込んでいく。取得したフリーページに送信データを書き込んでいくときに、送信データ制御部3は、データライト要求信号(Tx)、ライトアドレス信号(Tx)(フリーページのアドレス)およびライトデータ(Tx)をメモリアクセス制御部5に出力する。メモリアクセス制御部5は、他のブロックのリクエストとの調停を行い、送信データ制御部3からのデータライト要求信号(Tx)によるデータライト要求を受け付けた場合には、メモリ6における送信データ制御部3からライトアドレス信号(Tx)で通知されたアドレスにデータを書き込む。
具体的には、メモリアクセス制御部5は、メモリ6に対してメモリライトイネーブル信号を与え、ライトアドレス信号(Tx)で通知されたアドレスを示すメモリアドレス信号を出力するとともに、ライトデータ(Tx)をメモリライトデータとしてメモリ6に出力する。
メモリアクセス制御部5は、メモリ6にデータを書き込むときに、送信データ制御部3に対してデータライト要求ACK信号(Tx)を返信することによって、データライト要求を受け付けたことを通知する。なお、送信データ制御部3は、書き込みデータが存在する間、データライト要求信号(Tx)を出力する動作を繰り返す。
また、送信データ制御部3は、一連のデータライト要求信号(Tx)を出力する動作において、送信するデータが1ページに納まらない場合には、新たなフリーページを取得する。新たなフリーページを取得する場合、送信データ制御部3は、ページ取得要求信号(Tx)を出力することによってページ取得要求を行う動作を再度実行する。その場合、最初に取得して送信するデータを書き込んだページと新たに取得したフリーページとのチェーニングも実行する。送信データ制御部3は、最初に取得したページの最終ワードに新たに取得したフリーページのポインタ値(ページアドレス値)を書き込むことによってページのチェーニングを実現する。
以上のように、送信データ制御部3は、送信するデータをメモリ6に書き込む場合に、ページ取得要求信号(Tx)およびデータライト要求信号(Tx)を出力する動作を繰り返し行うことによって、1フレーム分のデータのメモリ6への書き込むを実現する。また、送信する1フレーム分のデータが1ページに納まらない場合には、メモリ6内の複数のページに跨って送信するデータが格納される。しかし、送信するデータが連続するページに跨って格納されるとは限らない。つまり、送信するデータがメモリ6内の飛び飛びに位置するページに跨って格納されることもありえる。しかし、いずれの場合にも、複数ページ間のチェーニングは、上述したように、各ページの最終ワードに次ページのポインタ値(ページアドレス値)を記憶させることによって実現されるので、送信するデータの正当性は確保される。
また、送信する1フレーム分のデータを取得したページに格納する処理を終了した場合には、送信データ制御部3は、最終ワードの次ページのポインタ値(ページアドレス値)に、ページのリンク先がないことを示すデータを記憶させる。送信データ制御部3は、ページのリンク先がない場合、つまり、送信するデータの最終バイトを格納した場合には、次ページのポインタ値(ページアドレス値)として、ポインタ値=all’1’を記憶させる。ポインタ値=all’1’は送信するデータの最終バイトが格納されているページであることを示すことにすることによって、送信するデータの最終ページを認識可能になる。また、所定の特定のポインタ値が最終ページを示すことにすることによって、送信する1フレームのデータが1ページに納まっているか、複数ページに跨っているかに関わらず、データの最終位置を容易に確認できる。
また、送信データ制御部3は、送信するデータを格納する各ページの最終ワードに、次ページのポインタ値(ページアドレス値)とともに、そのページに格納したデータのバイト数も記憶させる。つまり、各ページの最終ワード位置には、次ページのポインタ値(ページアドレス値)とそのページに格納したデータバイト数を通知する情報バイトが存在することになる。1フレームのデータが複数ページに跨る場合、1フレームの最終バイトを格納した最終ページ以外では、格納データバイト数は一定の値になるが、最終ページの格納データバイト数は送信するフレーム長によって異なることになる。
送信データ制御部3は、メモリ6へ格納した送信データをユーザインタフェース側に送信する場合には、1フレーム分のデータを格納したページリストの先頭ページからデータをリードして、ユーザインタフェース側に転送していく。このとき、送信データ制御部3は、最初に取得したページのポインタ値(ページアドレス値)を指定するだけで、2ページ目以降のリンク先を、各ページの最終ワードに記憶されている次ページのポインタ値(ページアドレス値)を辿ることによって容易にデータの格納先を判断することができる。つまり、転送データの先頭のデータが格納されているページのポインタ値(ページアドレス値)を記憶しておくのみで、最終ページ情報である次ポインタ値=all’1’を読み出すまで、各ページの最終ワードに記憶されている次ページのポインタ値(ページアドレス値)からデータを読み出すことによって、データの送信が容易に実現できる。
送信データ制御部3は、ユーザインタフェース側にデータを転送するための適切な時刻になったときに、データリード要求信号(Tx)とリードアドレス信号(Tx)(ページリストの先頭アドレス)とをメモリアクセス制御部5に出力する。メモリアクセス制御部5は、他のブロックのリクエストとの調停を行い、送信データ制御部3からデータリード要求信号(Tx)によるデータリード要求を受け付けた場合に、送信データ制御部3からリードアドレス信号(Tx)で通知されたアドレスからデータを読み出し始める。
具体的には、メモリアクセス制御部5は、メモリ6に対してメモリリードイネーブル信号を与え、リードアドレス信号(Tx)で通知されたアドレスを示すメモリアドレス信号を出力するとともに、メモリ6から出力されるリードデータを入力する。
また、メモリアクセス制御部5は、メモリ6からデータを読み出し始めるときに、送信データ制御部3に対してデータリード要求ACK信号(Tx)を返信することによって、データリード要求(Tx)を受け付けたことを通知する。送信データ制御部3は、データリード要求ACK(Tx)信号が通知されると、メモリ6から読み出されるリードデータ(Tx)をユーザインタフェース側に送信していく。
送信データ制御部3は、ページリストの最終(次ポインタ値=all’1’)を検出するまで、上記の方法によって2ページ目以降のリンク先のページからデータをリードしてユーザインタフェース側に送信する。送信データ制御部3は、メモリ6から最終データを入力するまで、データリード要求信号(Tx)とリードアドレス信号(Tx)を出力する動作を繰り返す。なお、1フレーム分のデータが1ページに納まっている場合には、先頭ページの次ページポインタ値(ページアドレス値)はall’1’になっているので、最終ワードに保持されている格納バイト数分のデータをユーザインタフェース側に送信した時点でデータリード動作は完了する。
送信データ制御部3は、1フレーム分のデータの送信が完了し、メモリ6に格納されているデータが不要になった場合には、ページリストの開放を行い、使用していたページリストをフリーページリストにリンクさせる処理を行う。
具体的には、送信データ制御部3は、ページ開放要求を示すページ開放要求信号(Tx)と開放ページリストの先頭ポインタ(データを読み出したページリストにおける先頭ページを示す。)を示す開放ページリスト先頭ポインタ信号(Tx)とをメモリアクセス制御部5に出力する。メモリアクセス制御部5は、他のブロックのリクエストとの調停を行い、送信データ制御部3からのページ開放要求信号(Tx)によるページ開放要求を受け付けた場合には、フリーページリストの最終ページの最終ワードにおける次ポインタ値(ページアドレス値)情報に送信データ制御部3から通知された開放ページリスト先頭ポインタ(Tx)をライトするとともに、送信データ制御部3に対してページ開放要求ACK信号(Tx)を返信してページ開放要求信号(Tx)を受け付けたことを通知する。なお、フリーページリストの最終ページの最終ワードのアドレスは、フリーページ管理部1からメモリアクセス制御部5に通知されている。
メモリアクセス制御部5は、送信データ制御部3からのページ開放要求信号(Tx)を受け付けた場合には、フリーページ管理部1に対してページ開放要求信号を通知する。また、メモリアクセス制御部5がフリーページ管理部1に通知するページ開放要求信号は、ページ開放要求ACK信号(Tx)と同じ信号になる。
フリーページ管理部1は、ページ開放要求信号を受け取ると送信データ制御部3から通知される開放ページリスト最終ポインタ信号(Tx)が示す開放ページリスト最終ポインタ(データを読み出したページリストにおける最終ページを示す。)を新たな最終フリーページのポインタ値(ページアドレス値)として更新する。さらに、フリーページ管理部1は、送信データ制御部3から通知される開放ページリスト長信号(Tx)が示す開放ページリスト長(データを読み出したページの数を示す。)のページ数をフリーページリスト長に加えて、新たなフリーページリスト長として更新する。
以上のように、この実施形態では、メモリ6をページ単位に分割し、各ページの最終ワード位置に次ページのポインタ値(ページアドレス値)と格納データバイト数とを記憶させる。よって、各ページのチェーニングと有効データバイト数とを容易に判断できる。さらに、1フレーム分のデータ(一群のデータ)を格納したページリストの先頭ポインタ、最終ポインタおよびページリスト長の3種類の情報を記憶しておくだけで、データ転送時にページリストの先頭ポインタ値(ページアドレス値)を指定してデータ転送を実現できる。また、ページリスト開放時には先頭ポインタ値、最終ポインタ値およびページリスト長を指定するだけでページリストを開放して、フリーページリストにリンクさせることができる。
次に、ユーザインタフェース側からシステムインタフェース側に受信データを転送するためのデータ転送要求が通知された場合について説明する。受信データを転送する場合の動作は、上述した送信データを転送する場合の動作と基本的に同じであり、データ転送方向が異なるだけである。
受信データ制御部4は、メモリ6内に受信データを格納するときには、ページ取得要求を示すページ取得要求信号(Rx)をメモリアクセス制御部5に出力し、メモリアクセス制御部5からのページ取得要求ACK信号(Rx)を受けて、フリーページ管理部1が示す先頭フリーページポインタ値(ページアドレス値)を内部に保持する。受信データ制御部4は、取得したフリーページに受信したデータを書き込んでいく。受信データ制御部4は、取得したフリーページに受信データを書き込んでいくときに、データライト要求信号(Rx)、ライトアドレス信号(Rx)(フリーページのアドレス)およびライトデータ(Rx)をメモリアクセス制御部5に出力する。受信データ制御部4は、メモリアクセス制御部5からのデータライト要求ACK信号(Rx)を受けると、次のデータライト要求信号(Rx)をメモリアクセス制御部5に出力する。受信データ制御部4は、書き込みデータが存在する間、データライト要求信号(Rx)を出力する動作を繰り返す。
また、一連のデータライト要求信号(Rx)を出力する動作において、受信したデータが1ページに納まらない場合には、受信データ制御部4は、ページ取得要求信号(Rx)を出力する動作を再度行うことになるが、その場合、最初に取得して受信したデータを書き込んだページと新たに取得したフリーページとのチェーニングも実行する。受信データ制御部4は、最初に取得したページの最終ワードに新たに取得したフリーページのポインタ値(ページアドレス値)を書き込むことによってページのチェーニングを実現する。
受信データ制御部4は、受信したデータをメモリ6に書き込む場合には、ページ取得要求信号(Rx)およびデータライト要求信号(Rx)を出力する動作を繰り返し行うことによって1フレーム分のデータをメモリ6に書き込む。
また、受信した1フレーム分のデータの取得したページへの格納が完了した場合には、受信データ制御部4は、最終ワードの次ページのポインタ値(ページアドレス値)に、ページのリンク先がないことを意味するポインタ値=all’1’を記憶させる。
また、受信データ制御部4は、受信したデータを格納する各ページの最終ワードに、次ページのポインタ値(ページアドレス値)とともにそのページに格納したデータのバイト数も記憶させる。つまり、各ページの最終ワード位置には次ページのポインタ値(ページアドレス値)と、そのページに格納したデータバイト数とを通知する情報バイトが存在することになる。1フレームのデータが複数ページに跨る場合には、1フレームの最終バイトを格納した最終ページ以外では、格納データバイト数は一定の値になるが、最終ページの格納データバイト数は送信するフレーム長によって異なることになる。
受信データ制御部4は、メモリ6へ格納した受信データをシステムインタフェース側に転送する場合には、1フレーム分のデータを格納したページリストの先頭ページからデータをリードして、システムインタフェース側に転送していく。このとき、受信データ制御部4は、最初に取得したページのポインタ値(ページアドレス値)を指定するだけで、2ページ目以降のリンク先は各ページの最終ワードに記憶してある次ページのポインタ値(ページアドレス値)を辿ることによって容易にデータの格納先を判断することができる。つまり、転送データの先頭が格納されているページのポインタ値(ページアドレス値)を記憶しておくだけで、最終ページ情報である次ポインタ値=all’1’を読み出すまで、各ページの最終ワードに記憶されている次ページのポインタ値(ページアドレス値)からデータを読み出すことによって、データの送信が容易に実現できる。
受信データ制御部4は、システムインタフェース側へデータを転送するための適切な時刻になったときに、データリード要求信号(Rx)とリードアドレス信号(Rx)(ページリストの先頭アドレス)とをメモリアクセス制御部5に出力する。受信データ制御部4は、メモリアクセス制御部5からデータリード要求ACK信号(Rx)を受けると、メモリ6から読み出されるリードデータ(Rx)をシステムインタフェース側に転送していく。
受信データ制御部4は、ページリストの最終(次ポインタ値=all’1’)を検出するまで、上記の方法によって2ページ目以降のリンク先のページからデータをリードしてシステムインタフェース側に転送していく。受信データ制御部4は、メモリ6から最終データを入力するまで、データリード要求信号(Rx)とリードアドレス信号(Rx)を出力する動作を繰り返す。なお、1フレーム分のデータが1ページに納まっている場合には、先頭ページの次ページポインタ値(ページアドレス値)はall’1’になっているので、最終ワードに保持されている格納バイト数分のデータをシステムインタフェース側に転送した時点でデータリード動作は完了する。
受信データ制御部4は、1フレーム分のデータの転送が完了し、メモリ6に格納されているデータが不要になった場合には、ページリストの開放を行い、使用していたページリストをフリーページリストへリンクさせる処理を行う。
具体的には、受信データ制御部4は、ページ開放要求を示すページ開放要求信号(Rx)と開放ページリストの先頭ポインタを示す開放ページリスト先頭ポインタ信号(Rx)とをメモリアクセス制御部5に出力する。メモリアクセス制御部5は、受信データ制御部4からページ開放要求(Rx)を受け付けた場合には、フリーページリストの最終ページの最終ワードの次ポインタ値(ページアドレス値)情報に受信データ制御部4から通知された開放ページリスト先頭ポインタ信号(Rx)が示す開放ページリスト先頭ポインタをライトするとともに、受信データ制御部4に対してページ開放要求ACK信号(Rx)を返信することによって、ページ開放要求信号(Rx)を受け付けたことを通知する。なお、フリーページリストの最終ページの最終ワードのアドレスは、フリーページ管理部1からメモリアクセス制御部5に通知される。
また、メモリアクセス制御部5は、受信データ制御部4からのページ開放要求信号(Rx)を受け付けた場合には、フリーページ管理部1に対してページ開放要求信号を通知する。なお、メモリアクセス制御部5がフリーページ管理部1に通知するページ開放要求信号は、ページ開放要求ACK信号(Rx)と同じ信号になる。フリーページ管理部1は、ページ開放要求信号を受け取ると受信データ制御部4から通知される開放ページリスト最終ポインタ信号(Rx)が示す開放ページリスト最終ポインタを新たな最終フリーページのポインタ値(ページアドレス値)として更新する。さらに、にフリーページ管理部1は、受信データ制御部4から通知される開放ページリスト長信号(Rx)が示すページ数をフリーページリスト長に加えて、新たなフリーページリスト長として更新する。
次に、図3〜図12を用いて、本実施形態のメモリ管理方式を説明する。図3は、フリーページ管理部1の構成例を示すブロック図である。図3に示すフリーページ管理部1において、システムインタフェース側からページポインタ生成部11に、メモリサイズ信号およびページサイズ信号と、メモリサイズおよびページサイズのサイズ設定が完了したことを通知するサイズ設定通知信号との各設定信号が通知される。
ページポインタ生成部11は、サイズ設定通知信号がアサートされたタイミングでメモリサイズ信号とページサイズ信号とを内部レジスタにラッチし、メモリ6の総ページ数を算出する。ページポインタ生成部11は、メモリ6の総ページ数を算出するとともに、フリーページの最終ポインタ初期値および算出完了通知信号を、最終ポインタ管理部13およびページ数管理部14に出力する。最終ポインタ管理部13は、ページポインタ生成部11から通知される算出完了通知信号がアサートされるタイミングで、最終ポインタ初期値を内部レジスタにラッチする。最終ポインタ初期値が内部レジスタにラッチされたことによって、フリーページ最終ポインタの初期値が決定されたことになる。
また、ページ数管理部14は、ページポインタ生成部11から通知される算出完了通知信号がアサートされるタイミングで、総ページ数信号を内部レジスタにラッチする。最終ポインタ初期値が内部レジスタにラッチされることによって、残りフリーページ数の初期値が決定されたことになる。また、フリーページの先頭ポインタ値を常に’0’と定義し、初期状態において先頭ポインタ管理部12は先頭ポインタ値=0を出力する。
図4は、先頭ポインタ値=0が出力されたときのメモリ6の状態例を示す説明図である。メモリサイズ信号とページサイズ信号が通知されることによって、総ページ数が決定することになるが、メモリ6内にはページのチェーンはできていない。よって、各ページの最終ワードに、次ポインタ値および格納データバイト数は定義されていない。なお、図4に示す例では、総ページ数=nページ、次ポインタ値=UnKnown 、格納データバイト数=UnKnownとなり、各ページはどこにもリンクされていないことになる。また、フリーページの最終ポインタ値は“n”である。
次に、図4に示されているページ最終ワードに存在する次ポインタ値情報(NP:Next Pointer)、および格納データバイト数(LEN:Length)の各情報を説明する。次ポインタ値情報(NP:Next Pointer)、および格納データバイト数(LEN:Length)の各情報を格納するための必要ビット数は、メモリサイズとページサイズとの関係によって決定される。例えば、メモリサイズが16キロバイト、ページサイズが128バイトである場合には、メモリ6の総ページ数は128ページになる。ページポインタ値は、’0’を基点にすると、0〜127までの範囲の値になる。16進で表現すると0x00〜0x7Fまでの7ビットの信号で表現できる。各ページの格納データバイト数は、最高(128−NP−LEN)バイトであり、16進で表現すると7ビットの信号で表現できる。つまり、この場合、次ポインタ値とLENとをともに7ビットの信号で表現できるので、バイト単位で管理すると、各1バイト、合計2バイトの領域があればよいことになり、本来のフレームデータを格納する領域は128−2=126バイトになる。
なお、NPは最終バイトである127バイト目に記憶され、LENはNPの1バイト前の126バイト目に記憶される。また、ページリストの最終を表現する次ポインタ値=all’1’は、NPが記憶される1バイト分の領域に設定される。NPがall’1’になることはないので、通常の次ポインタ値(7ビット分)と区別できる。
また、他の例としてメモリサイズが32キロバイト、ページサイズが128バイトの場合を考える。この場合、メモリ6の総ページ数は256ページになる。ページポインタ値は、’0’を基点にすると、0〜255までの範囲になる。16進で表現すると0x00〜0xFFまでの8ビットの信号で表現できる。各ページの格納データバイト数は、16進で表現すると7ビットの信号で表現される。つまり、この場合、次ポインタ値は8ビット、LENは7ビットの信号で表現できるので、バイト単位で管理すると次ポインタ値+LEN=2バイトの領域があればよく、本来のフレームデータを格納する領域は128−2=126バイトになる。
なお、8ビットの次ポインタ値を、126バイト目の最終ビット(ビット7)と最終バイトである127バイト目のビット0〜ビット6に記憶し、LENを、126バイト目のビット0〜ビット6に記憶する。また、ページリストの最終を表現する次ポインタ値=all’1’は、NPが記憶される1ビット+1バイト分(9ビット分)の領域(この例では、126バイト目の最終ビット(ビット7)と127バイト目)に設定される。NPが記憶されるときに127バイト目のビット7を0にしておけば9ビットがall’1’になることはないので、通常の次ポインタ値(8ビット分)と区別できる。
また、さらに他の例としてメモリサイズが64キロバイト、ページサイズが128バイトの場合を考える。この場合、メモリ6の総ページ数は512ページになる。ページポインタ値、’0’を基点にすると、0〜511までの範囲になる。16進で表現すると0x000〜0x1FFまでの9ビットの信号で表現できる。各ページの格納データバイト数は、16進で表現すると7ビットの信号で表現される。つまり、この場合、次ポインタ値は9ビット、LENは7ビットの信号で表現できるので、2バイトの情報量が必要になる。さらにページリストの最終である次ポインタ値=all’1’を表現するには、プラス1ビットの信号が必要であり、バイト単位で管理するとプラス1バイトの情報量が必要である。つまり、NP=2バイト、LEN=1バイトの合計3バイトの領域が必要になり、本来のフレームデータを格納する領域は128−3=125バイトになる。
次に、サイズ設定通知後、最初にページ取得要求信号によってページ取得要求が通知された場合の動作を説明する。図3において、ページ取得要求が通知された場合、ページ取得要求元のブロック(例えば、送信データ制御部3や受信データ制御部4)は先頭ポインタ管理部12が通知するポインタ値=0のページを取得する。
また、先頭ポインタ管理部12は、ページポインタ生成部11から通知される次のポインタ値である’1’を先頭ポインタ値として内部にラッチし、ページ取得要求元のブロックに、先頭フリーページポインタ信号で先頭フリーページポインタ値として通知する。また、ページポインタ生成部11は、内部ページポインタ生成用カウンタをインクリメント(+1)する。この場合、内部ページポインタ生成用カウンタの値は’2’になる。また、ページ取得要求に応じてフリーページが1ページ減るので、ページ数管理部14は、内部残りフリーページ管理用カウンタをデクリメント(−1)する。さらに、2回目のページ取得要求が通知された場合には、ページ取得要求先のブロックは、先頭ポインタ管理部12が通知するポインタ値=1のページを取得する。
また、先頭ポインタ管理部12は、ページポインタ生成部11から通知される次のポインタ値である’2’を先頭ポインタ値として内部にラッチし、先頭フリーページポインタ値としてページ取得要求元のブロックに通知する。また、ページポインタ生成部11は、内部ページポインタ生成用カウンタをインクリメント(+1)する。この場合、内部ページポインタ生成用カウンタの値は’3’になる。また、ページ取得要求によりフリーページが1ページ減るので、ページ数管理部14は、内部残りフリーページ管理用カウンタをデクリメント(−1)する。以降、ページ取得要求が通知される毎に同様の動作が繰り返される。
図5および図6は、ページ取得要求信号によってページ取得要求が通知された場合の動作を説明するための説明図である。
図5に示す例では、ページ取得要求が6回行われ、ページ3とページ5にデータが書き込まれている最中であり、フリーページの先頭ポインタ値が’6’であることが示されている。なお、図5には、“ページ0→ページ1→ページ3”と“ページ2→ページ4→ページ5”の2本のページリストが形成途中であることも示されている。さらに、図6には、ページ取得要求動作とデータ書き込み動作が継続して行われ、“ページ0→ページ1→ページ3→ページ6”の1本のページリストが完成したことが示されている。ページ6の次ポインタ値がall’1’であることから、1本のページリストの最終ページであることが容易に判断できる。
次に、ページ取得要求が総ページ数の数分通知された場合の動作を説明する。図3において、ページ取得要求が(総ページ数−1)回通知された場合、ページポインタ生成部11の内部ページポインタ生成用カウンタのカウント値(内部ページポインタ生成用カウンタ値)は’0’になる。その場合には、ページポインタ生成部11は、カウント動作を停止するとともに、先頭ポインタ管理部12に対してポインタ生成完了通知信号をアサートする。このとき、先頭ポインタ管理部12は、先頭フリーページポインタ値として、(総ページ数−1)と等しい値を通知する。なお、この値は、最終ポインタ初期値と等しい値になる。そして、この状態でさらにもう1回ページ取得要求が通知されると、ページ取得要求元のブロックはメモリ6の最終ページを取得することになり、先頭ポインタ管理部12は、メモリ6の最終ページにリンクされているページを新たな先頭フリーページポインタ値として通知することになる。また、メモリ6の最終ページに新たなページがリンクされるには、ページリストの開放動作が最低1回実行されていることが前提になるが、ページリストの開放動作については後述する。
次に、先頭ポインタ管理部12がメモリ6の最終ページにリンクされているページを先頭フリーページポインタ値として保持する仕組みを説明する。先頭ポインタ管理部12は、ページポインタ生成部11からポインタ生成完了通知信号がアサートされた状態でページ取得要求が通知されると、先頭フリーページの最終ワードデータ信号で通知される次ポインタ情報を内部にラッチし、ページ取得要求元のブロックに対して、先頭フリーページポインタ値として先頭フリーページポインタ信号で通知する。先頭フリーページの最終ワードデータ信号は、メモリ6から読み出された信号であり、ページ取得要求がある度に先頭フリーページポインタが示すページの最終ワードのデータを読み出す動作が実行されている。
しかし、先頭ポインタ管理部12は、ページポインタ生成部11の内部ページポインタ生成用カウンタが満了する(ポインタ生成完了通知信号がアサートされる)まで、ページポインタ生成部11から通知されるポインタ信号を先頭フリーページポインタとして保持し、ページポインタ生成部11の内部ページポインタ生成用カウンタが満了した(ポインタ生成完了通知信号がアサートされた)時点で、メモリ6から読み出された先頭フリーページの最終ワードデータ信号を先頭フリーページポインタとして保持する。
図7は、ページ取得要求が総ページ数の数分通知された場合の動作を説明するための説明図である。図7に示す例は、ページ取得要求が総ページ数回(n回)行われたことにもとづいて、ページnにデータが書き込まれている最中であり、メモリ最終ページnの次にリンクされているページとして次ポインタ値=kが通知されている状態を示す例である。
なお、図7には、“ページ0→ページ1→ページ3→ページ6”と“ページ2→ページ4→ページ5”の2本のページリストが完成し、“ページi→ページn−1→ページn”の1本のページリストが形成途中であることも示されている。
次に、ページ開放要求が通知された場合の動作を説明する。図3において、ページ開放要求が通知された場合には、最終ポインタ管理部13は、同時に通知される開放ページリスト最終ポインタ信号が示す開放ページリスト最終ポインタの値を新たな最終フリーページポインタ値として内部に保持する。また、ページ数管理部14は、同時に通知される開放ページリスト長信号の値を内部残りフリーページ管理用カウンタに加算し、残りフリーページ数の値を更新する。さらに、最終フリーページポインタ値および残りフリーページ数が更新されるタイミングで、最終ポインタ管理部13から出力される更新前の最終フリーページの最終ワードポインタ信号が示す位置に開放ページリスト先頭ポインタ信号で示す値を記憶させ、フリーページリストの更新も行う。なお、開放ページリスト先頭ポインタ信号は、ページ開放要求元のブロックからメモリ6に直接渡されることになる。
以上の一連の処理によって、最終フリーページポインタ値、残りフリーページ数、およびフリーページリストが更新される。以降、ページ開放要求が通知される毎に同様の処理が繰り返される。
図8は、ページ開放要求が通知された場合のフリーページ管理部1の動作を説明するための説明図である。図8に示す例は、送信データページリストの開放要求が通知されると、フリーページリストの最後であるページnに、開放される送信データページリスト(ページ0→ページ1→ページ3→ページ6)の先頭ページ0がリンクされ(図8(A),(B)参照)、フリーページリストの最終ページがページ6に更新されている(図8(C)参照)ことを示す例である。つまり、ページリスト開放要求によって、現時点のフリーページリストの最終ページであるページnの最終ワードの次ポインタ値にページ0が新たに記憶されることによって、フリーページリストの更新が行われる。そして、途中のページチェーンはメモリ6内部の各ページ内に記憶されているので、フリーページ管理部1は、フリーページリストの先頭と最終のページ(ページポインタ)情報を記憶(保持)するだけでよく、管理の簡易化が実現される。
以上のように、ページ取得動作とページ開放動作とを繰り返すことによって、メモリ6の内部にページリストが形成される。また、複数本のデータページリストと1本のフリーページリストが存在することになる。また、使用中のページおよびフリーページは、ページ取得動作とページ開放動作とが繰り返されることによってメモリ6内に点在することになるが、各ページの最終ワードに次ポインタ(次ページアドレス)情報が記憶されているので、各ページの連続性は確保される。つまり、各ページリストの正当性は容易に確保されることになると同時に、管理も簡易化できる。
図9は、ページ取得動作とページ開放動作とが繰り返される場合のメモリ6の状態を示す説明図である。図9には、ページ取得動作とページ開放動作とが繰り返し実行されることによって、複数のデータページリスト_No.1(ページ0→ページ1→ページi)およびデータページリスト_No.2(ページ2→ページj→ページn→ページk)と、1本のフリーページリスト(ページ3→ページ4→・・・・・→ページn−1)とが形成されていることが例示されている。
図10および図11は、ページ取得動作が行われる場合のフリーページ管理部1の動作、およびページ開放動作が行われる場合のフリーページ管理部1の動作を示すタイミング図である。
図10に例示するように、ページ取得要求が通知され、要求が受け付けられる(ページ取得要求ACKがアサートされる)と、ページポインタ生成部11は、内部ページポインタ生成用カウンタをインクリメント(+1)し、先頭ポインタ管理部12は、先頭フリーページポインタ値を更新前の内部ページポインタ生成用カウンタ値に更新する。更に、ページ取得動作が繰り返され、内部ページポインタ生成用カウンタが満了した(ポインタ生成完了通知信号がアサートされた)場合、メモリ6の内部のページチェーンが完成したことになる。以降にページ取得要求が通知された場合には、先頭ポインタ管理部12は、メモリ6から読み出した先頭フリーページの最終ワードデータに記憶されている次ポインタ値を新たな先頭フリーページポインタ値として更新する。
また、ページ数管理部14は、ページ取得要求ACK信号がアサートされる毎に内部残りフリーページ管理用カウンタの値を−1デクリメント(−1)する。次に、図11に示すように、ページ開放要求が通知され、要求が受け付けられる(ページ開放要求ACKがアサートされる)と、最終ポインタ管理部13は、最終フリーページポインタ値を開放ページリスト最終ポインタ信号で通知される値に更新する。また、ページ数管理部14は、ページ開放要求ACK信号がアサートされると、内部残りフリーページ管理用カウンタの値に開放ページリスト長で通知される値を加算する。
また、この実施形態では、図10および図11に示すように、ページ取得動作およびページ開放動作は、メモリ6へのアクセス競合が発生しない限り、1クロックで完了できることを特徴としている。すなわち、データ転送およびページ管理の効率化が実現されている。
次に、残りフリーページ数が少なくなった場合の動作を説明する。図3において、ページ取得要求が繰り返され、残りフリーページ数が2ページになった場合、ページ数管理部14はメモリオーバフロー通知信号をアサートする。メモリオーバフロー通知信号がアサートされた場合、データ転送制御を行うブロックはページ取得動作を停止し、残りフリーページが3ページ以上になるまで待機する必要がある。残りフリーページが2ページとなった時点でメモリオーバフロー通知信号をアサートする理由は、フリーページチェーンを形成するには最低2ページ必要であり、残りフリーページが1ページ以下になるとフリーページチェーンが破壊され、正常なページ管理ができなくなってしまうためである。
図12は、メモリオーバフローが発生した場合のフリーページ管理部1の動作を示すタイミング図である。図12に示す例では、ページ取得動作が繰り返され、残りフリーページ数が2ページになった場合に、メモリオーバフロー通知信号がアサートされている。そして、この状態でページ開放動作が実行され、残りフリーページ数が3ページ以上になると(図12に示す例では7になっている。)メモリオーバフロー通知信号はデアサートされ、再度ページ取得動作が可能になる。
実施形態2,
次に、本発明の第2の実施形態を図面を参照して説明する。図13は第2の実施形態におけるメモリ6の状態例を示す説明図である。なお、第2の実施形態のフレームデータ送受信回路の構成は、図2および図3に示された構成と同様である。第2の実施形態では、各ページの最終ワードに記憶させる情報として、第1の実施形態における情報に、ページリスト最終情報(E)が追加されている。
次に、本発明の第2の実施形態を図面を参照して説明する。図13は第2の実施形態におけるメモリ6の状態例を示す説明図である。なお、第2の実施形態のフレームデータ送受信回路の構成は、図2および図3に示された構成と同様である。第2の実施形態では、各ページの最終ワードに記憶させる情報として、第1の実施形態における情報に、ページリスト最終情報(E)が追加されている。
第1の実施形態では、ページリストの最終を示す情報が次ポインタ値=all’1’と定義されたが、第2の実施形態では、新たにページリスト最終を示す専用のビットが設けられている。各ページの最終ワードに記憶される情報として、次ポインタ情報(NP)および格納データバイト数情報(LEN)に加えて、ページリスト最終情報(E)が存在することによって、ページリストの最終判断が容易になる。
図2に示す構成おいて、メモリ6の内部の各ページの最終ワードの情報を図13に例示するように変更した場合には、送信データ制御部3および受信データ制御部4は、取得したページにデータを書き込むときに、転送するフレームデータが1ページに納まらない場合に、ページリスト最終情報(E)に’0’を設定する。転送するフレームデータの最終バイトを格納できた場合には、該当ページのページリスト最終情報(E)に’1’を設定する。また、次ポインタ情報(NP)については、次ポインタ情報のみを記憶させ、フレームデータの最終バイトを格納した場合でも、特別な次ポインタ情報を設定することはしない。具体的には、次ポインタ値=all’1’の設定は不要であり、ポインタ値としてはどのような値を設定してもよい。なお、格納データバイト数情報(LEN)については第1の実施形態の場合と同様に、各ページに格納されたデータバイト数を記憶させる。
この実施形態では、ページリストの最終を示す情報として専用のビットを用意するので、ページリストの最終判断をより容易に実行でき、データ転送制御の効率がより高くなる。
上記の各実施形態では、メモリの各ページの最終ワードに、次ポインタ(次ページアドレス)情報および格納データバイト数情報を記憶させることによって、各ページのリンク管理が簡易化できる。また、ページ管理手段は、フリーページの先頭ポインタ、最終ポインタおよび残りページ数の3種類の情報だけを管理すればよく、特別にページ管理テーブルを用意する必要がないため、ページ管理を簡易化できる。
特に、送信データ制御部3および受信データ制御部4は、メモリ6からデータが読み出された場合に、データを読み出したページリストにおける先頭ページを示す情報、データを読み出したページリストにおける最終ページを示す情報、およびデータを読み出したページの数を示す情報を出力し、フリーページ管理部1は、送信データ制御部3または受信データ制御部4が出力した各情報にもとづいて、先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を更新するだけでフリーページ(データが格納されていないページ)の管理を行うことができ、フリーページの管理を簡易化できる。
図2に示されたフレームデータ送受信回路を、1チップLSIまたは数チップのLSIに集積化してもよい。その場合には、フリーページ管理部1を実現する回路部分は、フリーページの先頭ポインタ、最終ポインタおよび残りページ数の3種類の情報だけを管理する構成を有すればよく、特別にページ管理テーブルを用意する必要がないため、フリーページ管理部1等の回路規模を削減できる。
本発明は、メモリを使用してデータ転送を行うデータ通信機器全般、およびディジタルLSI全般等に適用可能である。
1 フリーページ管理部
2 I/O制御部
3 送信データ制御部
4 受信データ制御部
5 メモリアクセス制御部
6 メモリ
11 ページポインタ生成部
12 先頭ポインタ管理部
13 最終ポインタ管理部
14 ページ数管理部
2 I/O制御部
3 送信データ制御部
4 受信データ制御部
5 メモリアクセス制御部
6 メモリ
11 ページポインタ生成部
12 先頭ポインタ管理部
13 最終ポインタ管理部
14 ページ数管理部
Claims (9)
- 記憶手段における記憶領域をページ単位で管理するメモリ管理方式であって、
記憶手段にデータを書き込む際に、データが記憶されたページの最終部に、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定するデータ制御手段と、
データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理するページ管理手段と
を備えたことを特徴とするメモリ管理方式。 - データ制御手段は、記憶手段からデータを読み出した場合に、データを読み出したページリストにおける先頭ページを示す情報、データを読み出した各ページにおける最終ページを示す情報、およびデータを読み出したページの数を示す情報を出力し、
ページ管理手段は、前記データ制御手段が出力した各情報にもとづいて、先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を更新する
請求項1記載のメモリ管理方式。 - ページ管理手段は、データ制御手段から出力された先頭ページを示す情報を、データが格納されていないページのうちの最終ページにページポインタ情報として設定する
請求項2記載のメモリ管理方式。 - データ制御手段は、一群のデータが格納されたページのうちの最終ページの最終部に、最終ページであることを示す情報を設定する
請求項1から請求項3のうちのいずれか1項に記載のメモリ管理方式。 - 記憶手段としてのメモリに対するデータの書き込み、およびメモリからのデータの読み出しの制御を行うメモリアクセス制御部を備え、
データ制御手段として、前記メモリアクセス制御部を介して送信データを一旦メモリに書き込みメモリに書き込まれた送信データを前記メモリアクセス制御部を介して読み出して出力する送信データ制御部と、前記メモリアクセス制御部を介して受信データを一旦メモリに書き込みメモリに書き込まれた受信データを前記メモリアクセス制御部を介して読み出して出力する受信データ制御部とを含み、
ページ管理手段として、前記メモリアクセス制御部、前記送信データ制御部および前記受信データ制御部と信号を送受信可能に接続されたフリーページ管理部を含み、
前記フリーページ管理部は、先頭ページを示す情報を生成するページポインタ生成部と、先頭ページを示す情報を出力する先頭ポインタ管理部と、最終ページを示す情報を出力する最終ポインタ管理部と、ページ数を管理するページ数管理部とを含む
請求項1から請求項4のうちのいずれか1項に記載のメモリ管理方式。 - 送信データ制御部および受信データ制御部は、データをメモリに書き込む場合にページ取得要求信号を出力し、
先頭ポインタ管理部は、前記ページ取得要求信号に応じて、先頭ページを示す情報をページ取得要求信号を出力した制御部に出力し、
ページポインタ生成部は、前記ページ取得要求信号に応じて先頭ページを示す情報を更新し、更新後の情報を前記先頭ポインタ管理部に出力し、
ページ数管理部は、前記ページ取得要求信号に応じて、データが格納されていないページ数を減らす
請求項5記載のメモリ管理方式。 - メモリアクセス制御部、送信データ制御部、受信データ制御部およびフリーページ管理部が、1チップLSIに集積化されている
請求項5または請求項6記載のメモリ管理方式。 - 記憶手段における記憶領域をページ単位で管理するメモリ管理方法であって、
記憶手段にデータを書き込む際に、データが記憶されたページの最終部に、当該ページに格納されたデータ数を示す情報と、リンク先のページを示すページポインタ情報または最終ページであることを示す情報とを設定し、
データが格納されていないページのうちの先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を管理する
ことを特徴とするメモリ管理方法。 - 記憶手段からデータが読み出された場合に、データを読み出したページリストにおける先頭ページを示す情報、データを読み出したページリストにおける最終ページを示す情報、およびデータを読み出したページの数を示す情報にもとづいて、先頭ページを示す情報、最終ページを示す情報、およびページ数を示す情報を更新する
請求項8記載のメモリ管理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007277113A JP2009104497A (ja) | 2007-10-25 | 2007-10-25 | メモリ管理方式およびメモリ管理方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007277113A JP2009104497A (ja) | 2007-10-25 | 2007-10-25 | メモリ管理方式およびメモリ管理方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009104497A true JP2009104497A (ja) | 2009-05-14 |
Family
ID=40706088
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007277113A Pending JP2009104497A (ja) | 2007-10-25 | 2007-10-25 | メモリ管理方式およびメモリ管理方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009104497A (ja) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04102945A (ja) * | 1990-08-23 | 1992-04-03 | Nec Software Ltd | メモリ管理方式 |
| JPH04326137A (ja) * | 1991-04-25 | 1992-11-16 | Fujitsu Ltd | 動的領域管理方法 |
| JPH10240627A (ja) * | 1997-02-26 | 1998-09-11 | Fujitsu Ltd | セクタ管理方法及び装置 |
| JP2001511281A (ja) * | 1997-02-05 | 2001-08-07 | トランスウィッチ・コーポレーション | ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御 |
| JP2004280333A (ja) * | 2003-03-14 | 2004-10-07 | Fujitsu Ltd | バッファメモリ装置及びその空き領域管理方法 |
-
2007
- 2007-10-25 JP JP2007277113A patent/JP2009104497A/ja active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04102945A (ja) * | 1990-08-23 | 1992-04-03 | Nec Software Ltd | メモリ管理方式 |
| JPH04326137A (ja) * | 1991-04-25 | 1992-11-16 | Fujitsu Ltd | 動的領域管理方法 |
| JP2001511281A (ja) * | 1997-02-05 | 2001-08-07 | トランスウィッチ・コーポレーション | ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御 |
| JPH10240627A (ja) * | 1997-02-26 | 1998-09-11 | Fujitsu Ltd | セクタ管理方法及び装置 |
| JP2004280333A (ja) * | 2003-03-14 | 2004-10-07 | Fujitsu Ltd | バッファメモリ装置及びその空き領域管理方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10078470B2 (en) | Signal transfer device that maintains order of a read request and write request in posted write memory access | |
| JPWO2005057400A1 (ja) | 電子装置、その制御方法、ホスト装置及びその制御方法 | |
| CN107783727A (zh) | 一种内存设备的访问方法、装置和系统 | |
| US10101964B2 (en) | Ring buffer including a preload buffer | |
| KR101121592B1 (ko) | 버스트 판독기록 동작을 구비한 처리 장치 | |
| JP5443586B2 (ja) | 回路構成におけるデータ交換を制御するための回路構成、および方法 | |
| US9292456B2 (en) | System and method for data synchronization across digital device interfaces | |
| CN116126763A (zh) | 总线互联系统、数据处理方法、装置、电子设备及介质 | |
| JP4902640B2 (ja) | 集積回路、及び集積回路システム | |
| JP2008234059A (ja) | データ転送装置および情報処理システム | |
| EP3580662B1 (en) | Read transaction tracker lifetimes in a coherent interconnect system | |
| CN101739366A (zh) | 缓冲区管理装置及存储器的缓冲区管理方法 | |
| JP2010211322A (ja) | ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法 | |
| JP2009104497A (ja) | メモリ管理方式およびメモリ管理方法 | |
| US10489319B2 (en) | Automatic transmission of dummy bits in bus master | |
| CN114443530B (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
| US7451254B2 (en) | System and method for adaptive buffer allocation in a memory device interface | |
| TWI242131B (en) | Method and related circuit for increasing network transmission efficiency by speeding data updating rate of memory | |
| CN114610661B (zh) | 数据处理装置、方法和电子设备 | |
| KR100591243B1 (ko) | 온-칩 직렬 주변장치 버스 시스템 및 그 운용방법 | |
| US8239652B2 (en) | Data processing system | |
| US7529960B2 (en) | Apparatus, system and method for generating self-generated strobe signal for peripheral device | |
| CN116149453B (zh) | 控制器、电子设备和数据传输系统 | |
| CN113709061A (zh) | 一种报文转发的方法和电路 | |
| JP2001290764A (ja) | データ転送システム装置及びそのデータ転送方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110810 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111013 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120221 |