JP2005209163A - メモリシステム制御方法 - Google Patents

メモリシステム制御方法 Download PDF

Info

Publication number
JP2005209163A
JP2005209163A JP2004354352A JP2004354352A JP2005209163A JP 2005209163 A JP2005209163 A JP 2005209163A JP 2004354352 A JP2004354352 A JP 2004354352A JP 2004354352 A JP2004354352 A JP 2004354352A JP 2005209163 A JP2005209163 A JP 2005209163A
Authority
JP
Japan
Prior art keywords
data
main memory
memory
dma transfer
control method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004354352A
Other languages
English (en)
Inventor
So Tamura
創 田村
Hideo Ishida
英雄 石田
Masaki Tadano
雅貴 多田納
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004354352A priority Critical patent/JP2005209163A/ja
Publication of JP2005209163A publication Critical patent/JP2005209163A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】キャッシュメモリシステムにおいて、メインメモリに対してダイレクト・メモリ・アクセス(DMA)により書き込みする場合、メインメモリの内容とキャッシュメモリの内容とが不一致となってプロセッサが誤動作することを防止するため、DMAライトするごとに対応するキャッシュメモリのデータを無効化(パージ)せねばならず、DMAライトするたびにパージ時間分処理が遅れてしまうという問題点があった。
【解決手段】DMA転送時に必要とされるパージ処理の方法を状況に応じて切り替えることで、従来必要とされていたパージ時間を短縮する。
【選択図】図2

Description

本発明は、キャッシュメモリとメインメモリ、メインメモリに対するDMA制御を行うDMAコントローラを有するプロセッサシステムにおける、メモリアドレッシング制御に関する。
従来プロセッサの高速化を図るための手法として、メインメモリからデータプログラム等を読み出すために、プロセッサの近傍にメインメモリに対して小容量で高速アクセス可能なメモリ(キャッシュメモリ)を設け、メインメモリのデータプログラム等の一部をそのキャッシュメモリに格納して高速にデータプログラム等にアクセスするキャッシュメモリシステムが普及している。
このようなキャッシュメモリシステムでは、キャッシュメモリにはメインメモリ内のデータの一部を読み込んでおき、そのキャッシュメモリに読み込んでおかれたデータの一部がメインメモリのどのアドレスに格納されているかを管理することを行っているので、プロセッサは所望のデータを読み出す場合に、そのデータがキャッシュメモリに存在する場合には、キャッシュメモリから所望のデータを取得することができる。図10にメインメモリ内のデータとキャッシュメモリ内のデータとの関係を示す。メインメモリ(a)内のデータの一部がキャッシュメモリ(b)内に格納されており、プロセッサ・ユニット若しくは専用のアドレス管理手段がキャッシュメモリ(b)内のデータがメインメモリ内のどのアドレスに対応するデータであるかを管理している。このようなシステムを利用すれば、メインメモリからデータを読み込む場合に比べ、高速なデータアクセスが実現できる。このようにキャッシュメモリに格納しておくデータとしては、プロセッサが頻繁に取得するデータ、例えば頻繁に実行するプログラムデータ等が挙げられる。
また、キャッシュメモリとして、一次キャッシュメモリと一次キャッシュメモリよりは大容量でアクセスが低速になる二次キャッシュメモリとを備えたシステムもあり、このシステムでは、一次キャッシュメモリには最もアクセス頻度の高いデータを格納し、二次キャッシュメモリには比較的アクセス頻度の高いデータを格納するという使用の仕方ができる。また一次キャッシュメモリ、二次キャッシュメモリだけでなく、三次キャッシュメモリをさらに搭載するシステム等もある。
また、外部インターフェースから転送されるデータをプロセッサを介さずに、直接メインメモリに転送するダイレクト・メモリ・アクセス(DMA)制御が普及している。この制御を行うためのDMAコントローラを備えることで、プロセッサの負荷を減らすことができ、また外部機器との高速なデータ転送を可能にすることで、外部インターフェースのパフォーマンスを向上させることができる。
このようなDMA転送コントローラを備えたキャッシュメモリシステムについては特許文献特開平5−307518号公報等に記載されており、以下にその構成図と動作について説明する。
図8は、従来のDMAコントローラを備えたキャッシュメモリシステムを表す図である。図8において、101はこのシステムのCPU(中央処理装置)であり、CPU101にはバスを介してキャッシュメモリ102とバスインタフェースバッファ103が直接接続される。これらのデバイスにはCPU101は高速にアクセスすることができる。また、バスインタフェースバッファ103を介してメインメモリ104及びシステムの外部に接続されるI/O105などが接続される。また、I/O105を介して転送されるデータをメインメモリ104に転送するための制御をDMAコントローラ106が行う。
CPU101がデータの書き込みを実行する場合には、キャッシュメモリ102及びバスインタフェースバッファ103へ書き込み命令を送信し、キャッシュメモリ102には高速にデータの書き込みが行われる。一方バスインタフェースバッファ103には、書き込み命令と書き込みデータをラッチするためのライトバッファが内蔵されており、メインメモリ104へのアクセスタイミングに応じて書き込みデータをメインメモリ104に書き込むことができ、CPU101はメインメモリ104へのアクセス速度に動作を合わせる必要がなく、高速動作を可能にしている。
CPU101がデータの読み込みを実行する場合には、読み出し命令をバスインタフェースバッファ103へ送信し、バスインタフェースバッファ103に内蔵されるリードバッファにて命令をラッチし、メインメモリ104へのアクセスタイミングに応じて読み出し命令をメインメモリ104へ送信し、メインメモリ104からデータの読み出しを実行する。メインメモリ104から読み出されたデータはバスインタフェースバッファ103内のリードバッファを経由してCPU101へと送信される。
また、I/O105からメインメモリ104へのDMA転送を行う場合、DMAコントローラ106は、CPU101やバスインタフェースバッファ103等のバスマスタへ対して、動作をホールドさせるためのホールド信号を送信する。このホールド信号を受け、CPU101及びバスインタフェースバッファ103がホールド確認信号をDMAコントローラ106へ返送することで、DMAコントローラ106はDMA転送を開始する。
DMA転送が行われると、メインメモリ104のデータが書き換えられるが、これによってメインメモリ104内のデータと、メインメモリ104のデータに対応したキャッシュメモリ102内のデータが不一致になってしまう。そのため、CPU101は正確なデータのアクセスが不可能になってしまう。それを解消するために、DMA転送されたデータが書き込まれたメインメモリ104のアドレスを管理するアドレス管理手段107と、アドレス管理手段107により指定されるメインメモリ104内のデータが書き換わったアドレスに対応しているキャッシュメモリ102内のデータを無効化(パージ)するための無効化手段108を備えている。その結果、メインメモリ104内の書き換わったデータと、キャッシュメモリ102内に格納されているメインメモリ104内の書き換わる前のデータの不一致を防ぐことができる。
特開平5−307518号公報
上記のDMA転送機能を備えたキャッシュメモリシステムによれば、DMA転送によるメインメモリ内の書き換わったデータと、キャッシュメモリ内のメインメモリの書き換わる前のデータとの不一致を防ぐことができ、CPUは正確にデータの読み出しを実行することができる。しかしながら、従来のこのような方法において、DMA転送によってメインメモリの書き換わったデータに対して、CPUからのデータ読み出し要求がないにも関わらず、DMA転送の都度、ある一定の単位でキャッシュメモリ内の対応するデータのパージを実行していた。例えば、DMA転送データ単位がバイト(8ビット)ならば1バイト転送される度に、ハーフワード(16ビット)ならば1ハーフワード転送される度に、ワード(32ビット)ならば、1ワード転送される度に無効化の処理が行われる。
図8のDMA転送機能を有するキャッシュメモリシステムにおいて、DMA転送データ単位がバイトである場合の、DMA転送開始から終了までの処理フローを図9に示す。DMA転送要求が発生すると、前述したように、DMAコントローラ106はCPU101及びバスインタフェースバッファ103の動作をホールドし、DMA転送制御を開始する(S901)。DMAコントローラはI/O105及びメインメモリ104を制御して、I/O105を介して転送されてくるデータをメインメモリ104へ格納する(S902)。メインメモリ104へ転送されるデータがDMA転送単位である1バイトに達すると(S905)、DMA転送によって、メインメモリ104内のデータが書き換わったアドレスに対応するキャッシュメモリ102内のデータを、アドレス管理手段107及び無効化手段108によって無効化する(S906)。
S902からS905の処理の間に、DMA転送によって転送すべきデータが全てメインメモリ104へ転送完了となると(S903)、DMA転送終了となる(S907)。
また、DMA転送処理中にCPU101からリード命令が発生した場合にも(S904)、DMAコントローラ106はDMA転送を中断する(S907)。一方、DMA転送によるデータ転送が完了してなく、CPU101からのリード要求等もない場合には、I/O105からメインメモリ104へのDMA転送を継続し、S902からS906の処理を実行する。
以上のような従来の処理では、DMA転送データ単位のデータがメインメモリに書き込まれる度にキャッシュメモリの無効化を行うため、DMAコントローラの処理効率の悪化を招き、処理工数や処理時間の増加という問題が生じてしまう。
本発明は、上記の問題を鑑みて、DMA転送機能を有したキャッシュメモリシステムにおいてより処理効率を上げ、処理工数や処理時間を削減することを目的としたものである。本発明では、DMA転送データ単位のデータがメインメモリに転送される度にキャッシュメモリ内の対応する無効化処理を実行するのではなく、DMA転送によって転送され、メインメモリに書き込まれるデータ量がある任意の量に達することで、若しくはDMA転送されるデータがメインメモリの書き込み容量に達することでキャッシュメモリ内の対応するデータの無効化処理を実行する。
また他の手法として、メインメモリにDMA転送されるデータの大きさによって、キャッシュメモリ内のデータを無効化して、CPUがDMA転送さてきたデータに対しキャッシュメモリを使用したデータアクセスを実行するか、キャッシュメモリ内のデータの無効化を行わずに、CPUがDMA転送されてきたデータに対しキャッシュメモリを使用せずに、メインメモリにのみデータアクセスを実行するかを切り替える。DMA転送されるデータがある大きさ以下であるならば、キャッシュメモリを使用せずに、メインメモリのみへデータアクセスしてもシステムとしての処理効率の大きな低下にはならず、キャッシュメモリの無効化処理を削減することができるので、結果的にシステムの処理効率を向上することができる。
本発明によれば、DMA転送機能を有するキャッシュメモリシステムにおいて、従来のキャッシュメモリ内のデータの無効化手法と比較して、キャッシュメモリ内のデータの無効化処理回数を大幅に削減できる。特にDMA転送によって転送されるデータの量が大きいシステムにおいては、本発明の効果がより発揮される。
本発明では、従来技術の図8に示したキャッシュメモリシステムにおいて、さらに無効化手段を制御して、DMA転送によって書き換えられたメインメモリ内のデータに対応するキャッシュメモリ内のデータの無効化するタイミング等を切り替える無効化制御手段をさらに有することを特徴とする。図1に無効化制御手段を有するキャッシュメモリシステムを示す。図1において、図8に示す構成と同様の機能を有するものには同じ符号を付している。このキャッシュメモリシステムでは、無効化制御手段がアドレス管理手段が有するアドレス情報に基づき無効化手段を制御するものである。アドレス管理手段は、DMAコントローラからDMA転送によって書き換えられるメインメモリ内のデータアドレス等が送られ、メインメモリ内のデータのアドレス管理を行っている。以下に、無効化制御手段が実行する制御方法を含めて、図1に示すキャッシュメモリシステムの制御について、各実施の形態の中で説明する。
(第一の実施の形態)
図2は、本発明の第一の実施の形態にかかる制御方法の概略を示すものであり、DMA転送開始からDMA転送終了までの中で処理内容を表したフローチャート図である。以下にその動作を説明する。
まずDMA転送要求が発生すると、DMAコントローラ106は、CPU101やバスインタフェースバッファ103等のバスマスタへ対して、動作をホールドさせるためのホールド信号を送信する。このホールド信号を受け、CPU101及びバスインタフェースバッファ103がホールド確認信号をDMAコントローラ106へ返送することで、DMAコントローラ106はDMA転送を開始する(S201)。DMAコントローラ106はI/O105を介して転送されてくるデータをメインメモリに転送し、メインメモリへデータを書き込んでいく(S202)。
この間に、DMA転送による転送データが全て転送完了となった場合(S203)、DMAコントローラは無効化手段を制御して、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータの無効化を実行する(S204)。そしてDMAコントローラ106はDMA転送を終了し、CPU101及びバスインタフェースバッファ103にDMA転送の終了を通知する(S205)。
なお、S204におけるキャッシュメモリ102内のデータの無効化処理は、この段階で行わなくてもよく、S205のDMA転送終了後に、CPU101からのデータアクセスが発生したときに、キャッシュメモリ102内のデータを無効化することも可能である。
DMA転送が継続され(S203)、その間にCPU101からのデータアクセス命令が発生した場合(S206)、CPU101はDMAコントローラ106へホールド信号を通知し、DMAコントローラ106はそのホールド信号に従い、DMA転送を中断する。
なお、このCPU101の割り込みに対しては、DMAコントローラ106はDMA転送を中断せずに、CPU101の割り込みを許可しないことも可能である。CPU101のリード処理とDMA転送処理の優先度に応じて、優先度の高い処理が優先されて実行することができる。DMA転送が中断された場合には、無効化制御手段109に設定される閾値との比較を行い(S208)、書き換えられたデータ量が閾値以下ならば、CPU101はキャッシュメモリ102を使用してデータアクセスを行わず、メインメモリ104にのみデータアクセスする(S209)。書き換えられたデータ量が閾値以上ならば、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータを無効化する(S210)。
なおS210の無効化処理は、CPU101が読み出すメインメモリ内のデータのアドレスに対応するキャッシュメモリ102内のデータについてのみ無効化する処理でも構わない。キャッシュメモリ102内のデータの無効化が行われると、CPU101はキャッシュメモリ102を使用してメインメモリ104へのデータアクセスを行う(S211)。この設定された閾値とDMA転送によるメインメモリ104へのデータ書き込み量の比較結果に応じて、キャッシュメモリ102を使用してアクセスするかどうかを切り替えることによって、システムとしての処理数を軽減することができる。すなわち、DMA転送によるデータ量が大きくなければ、あえてキャッシュメモリ102内のデータの無効化を実行せず、メインメモリ104へのみデータアクセスする方が、結果的に処理速度が速くなるのである。この閾値は、このキャッシュメモリ102が使用されるシステムの用途や、メインメモリ104の容量、DMA転送されるデータ量、CPU101のデータアクセス回数等に応じて、最適な値に自動的に若しくはユーザーによって変更可能であり、または設計段階等にて決定することができる。S310若しくはS311にてCPU101がデータアクセスを終了すると、CPUはDMAコントローラ106に対して、ホールド解除信号を通知し、DMAコントローラ106は再度DMA転送制御を開始する(S212)。
DMA転送が継続されると(S203)、アドレス管理手段107はDMA転送によりメインメモリ104内に書き込まれていくデータのアドレスを更新していくが、無効化制御手段109ではこのメインメモリ内に書き込まれていくデータの量に対して、任意の閾値を設定している。無効化制御手段109は、DMA転送により書き込まれるメインメモリ104内のデータがこの任意の閾値以上になった場合(S213)、その都度メインメモリ104内の書き換わったデータに対応するキャッシュメモリ102内のデータを無効化していく(S214)。
上記閾値は、このキャッシュメモリ102が使用されるシステムの用途や、メインメモリ104の容量、DMA転送されるデータ量、CPU101のデータアクセス回数等に応じて、最適な値に自動的に若しくはユーザーによって変更可能であり、又は設計段階等にて決定することができる。また、この閾値を、メインメモリ104内の記録可能な残りの領域の全容量と設定することも可能であり、この場合キャッシュメモリ102内の無効化処理の処理数を最大限少なくすることができる。また、メインメモリ104の記録可能な領域は、CPU101からの読み出し等があると変更されるので、CPU101からの読み出しがある度に変更し直すことが可能である。
なおキャッシュメモリ102内のデータの無効化処理については、DMA転送によって書き換えられたメインメモリ104内のデータに対応するデータがキャッシュメモリ102内に存在しなければ、無効化処理を実行しないように、無効化制御手段109にて切り替え制御を行うことも可能である。
また、DMAコントローラ106の制御によるDMA転送処理とCPU101によるメモリアクセス処理は必ずしも排他的な関係になるわけではなく、I/O105からメインメモリ104へのDMA転送とCPU101からのメインメモリ104へのデータアクセスは同時に実行できるシステムにおいては、本実施の形態で説明したような、CPU101からのデータアクセス命令が発生した場合でも、DMAコントローラ106はDMA転送を中断せず、DMA転送を継続しつつ、CPU101がメインメモリ104へのデータアクセスを実行できる。
また、メインメモリ104にDMA転送されてきたが、既にCPU101からアクセス済みのデータや、不要と判断されるデータが書き込まれているアドレスに対しては、DMA転送によってデータを上書きしていくことができる。
本実施の形態によれば、従来DMA転送データ単位ごとにキャッシュメモリ内のデータの無効化処理を実行していたのに対し、メインメモリへのDMA転送データが設定された閾値に到達する度に、キャッシュメモリ内のデータの無効化処理を実行するので、無効化処理の処理数を削減することができる。例えば、DMA転送データ単位が1バイトであるシステムにおいて、従来では1バイト単位でキャッシュメモリ内のデータを無効化していたが、本発明にて無効化制御手段に設定される閾値を10バイトとすれば、無効化処理を1/10に削減することができる。また、閾値をメインメモリ内の記録可能な領域の容量とすることで、メインメモリを最大限有効活用して、キャッシュメモリ内の無効化処理を少なくすることも可能である。
また、DMA転送によるメインメモリ内の書き換わったデータが閾値に満たない場合でも、CPUからのデータアクセスに先立って、キャッシュメモリ内のデータの無効化処理を実行するので、洩れなく無効化することができる。
(第二の実施の形態)
次に、本発明の第二の実施の形態について説明する。図3は、本実施の形態に係る制御方法のDMA転送開始からDMA転送終了までの概略を示すフローチャート図である。以下にその動作について説明する。
まずDMA転送要求が発生すると、DMAコントローラ106は、CPU101やバスインタフェースバッファ103等のバスマスタへ対して、動作をホールドさせるためのホールド信号を送信する。このホールド信号を受け、CPU101及びバスインタフェースバッファ103がホールド確認信号をDMAコントローラ106へ返送することで、DMAコントローラ106はDMA転送を開始する(S301)。
DMAコントローラ106はI/O105を介して転送されてくるデータをメインメモリ104に転送し、メインメモリ104へデータを書き込んでいく(S302)。この間に、DMA転送による転送データが全て転送完了となった場合(S303)や、DMA転送によってメインメモリ104へ転送されるデータの量がメインメモリ104の書き込み可能容量に達した場合(S304)、無効化制御手段109は無効化手段108を制御して、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータの無効化を実行する(S305)。そしてDMAコントローラ106はDMA転送を終了し、CPU101及びバスインタフェースバッファ103にDMA転送の終了を通知する(S306)。
なお、S305におけるキャッシュメモリ102内のデータの無効化処理は、この段階で行わなくてもよく、S306のDMA転送終了後に、CPU101からのデータアクセスが発生したときに、キャッシュメモリ102内のデータを無効化することも可能である。またS304で、メインメモリへのDMA転送データ量がメインメモリ内の書き込み可能容量に達した場合に、S306のDMA転送終了に移行するが、CPU101がメインメモリ104へデータアクセスした後、すぐにDMA転送を再開するという制御も可能である。
DMA転送が継続され(S303、S304)、その間にCPU101からのデータアクセス命令が発生した場合(S307)、CPU101はDMAコントローラ106へホールド信号を通知し、DMAコントローラ106はそのホールド信号に従い、DMA転送を中断する。なお、このCPU101の割り込みに対しては、DMAコントローラ106はDMA転送を中断せずに、CPU101の割り込みを許可しないことも可能である。CPU101のリード処理とDMA転送処理の優先度に応じて、優先度の高い処理が優先されて実行することができる。
DMA転送が中断された場合には、DMA転送によってメインメモリ104に書き換えられたデータの量と、無効化制御手段109に設定される閾値との比較を行い(S609)、書き換えられたデータ量が閾値以下ならば、CPU101はキャッシュメモリ102を使用してデータアクセスを行わず、メインメモリ104にのみデータアクセスする(S310)。書き換えられたデータ量が閾値以上ならば、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータを無効化する(S311)。
なおS311の無効化処理は、CPU101が読み出すメインメモリ内のデータのアドレスに対応するキャッシュメモリ102内のデータについてのみ無効化する処理でも構わない。キャッシュメモリ102内のデータの無効化が行われると、CPU101はキャッシュメモリ102を使用してメインメモリ104へのデータアクセスを行う(S312)。
この設定された閾値とDMA転送によるメインメモリ104へのデータ書き込み量の比較結果に応じて、キャッシュメモリ102を使用してアクセスするかどうかを切り替えることによって、システムとしての処理数を軽減することができる。すなわち、DMA転送によるデータ量が大きくなければ、あえてキャッシュメモリ102内のデータの無効化を実行せず、メインメモリ104へのみデータアクセスする方が、結果的に処理速度が速くなるのである。
この閾値は、このキャッシュメモリ102が使用されるシステムの用途や、メインメモリ104の容量、DMA転送されるデータ量、CPU101のデータアクセス回数等に応じて、最適な値に自動的に若しくはユーザーによって変更可能であり、または設計段階等にて決定することができる。
S310若しくはS311にてCPU101がデータアクセスを終了すると、CPUはDMAコントローラ106に対して、ホールド解除信号を通知し、DMAコントローラ106は再度DMA転送制御を開始する(S313)。
なお、キャッシュメモリ102内のデータの無効化処理については、DMA転送によって書き換えられたメインメモリ104内のデータに対応するデータがキャッシュメモリ102内に存在しなければ、無効化処理を実行しないように、無効化制御手段109にて切り替え制御を行うことも可能である。
また、DMAコントローラ106の制御によるDMA転送処理とCPU101によるメモリアクセス処理は必ずしも排他的な関係になるわけではなく、I/O105からメインメモリ104へのDMA転送とCPU101からのメインメモリ104へのデータアクセスは同時に実行できるシステムにおいては、本実施の形態で説明したような、CPU101からのデータアクセス命令が発生した場合でも、DMAコントローラ106はDMA転送を中断せず、DMA転送を継続しつつ、CPU101がメインメモリ104へのデータアクセスを実行できる。
また、メインメモリ104にDMA転送されてきたが、既にCPU101からアクセス済みのデータや、不要と判断されるデータが書き込まれているアドレスに対しては、DMA転送によってデータを上書きしていくことができる。
本実施の形態によれば、従来DMA転送データ単位ごとにキャッシュメモリ内のデータの無効化処理を実行していたのに対し、CPUからリード要求が発生することで、キャッシュメモリ内のデータの無効化処理を実行するので、無効化処理の処理数を削減することができる。例えば、DMA転送データ単位が1バイトであるシステムにおいて、従来では1バイト単位でキャッシュメモリ内のデータを無効化していたが、本発明にてDMA転送が行われている間にCPUからのデータアクセスが発生する頻度が、DMA転送データ量約10バイトで1回であるならば、無効化処理を1/10に削減することができる。
(第三の実施の形態)
次に、本発明の第三の実施の形態について説明する。本実施の形態では、第一の実施の形態において、キャッシュメモリシステムのメインメモリをリングバッファのFIFO(先入れ先出し)メモリとしたものである。したがって、図1におけるメインメモリ101は、以下リングバッファのFIFOメモリとして扱う。
図5はメインメモリ104内のアドレス状態を表す図である。また本実施の形態の制御方法の概略は第一の実施の形態と同様であり、図2に示すフローチャート図と図1、及び図5を用いて本実施の形態について説明する。
まず、DMA転送要求が発生すると、DMAコントローラ106は、CPU101やバスインタフェースバッファ103等のバスマスタへ対して、動作をホールドさせるためのホールド信号を送信する。このホールド信号を受け、CPU101及びバスインタフェースバッファ103がホールド確認信号をDMAコントローラ106へ返送することで、DMAコントローラ106はDMA転送を開始する(S201)。DMAコントローラ106はI/O105を介して転送されてくるデータをメインメモリ104に転送し、メインメモリ104へデータを書き込んでいく(S202)。
このときのFIFOメモリであるメインメモリへのデータの書き込み状態を図5を用いて説明する。A1はDMA転送によって転送されたデータがメインメモリ104へ書き込み開始されるアドレスを表している。メインメモリ104内にデータが記録されていなければ、メインメモリ104の先頭アドレスをアドレスA1として、メインメモリ104の先頭アドレスから書き込みが可能である。DMA転送されてくるデータはアドレスA1から順次メインメモリ104に書き込まれていくが、A2は順次書き込まれていくデータの任意の時点におけるデータの書き込み位置を表すアドレスである。FIFOメモリにおいてアドレスA2はDMA転送データが書き込まれていくことで、FIFOメモリの最終アドレスに近づくが、アドレスA2がこの最終アドレスに達した場合、FIFOメモリの先頭アドレスからデータの書き込みが行われる。なお、このようにデータを書き込んでいく領域は書き込み可能領域でなければならず、この書き込み可能領域は元から記録されていたデータが読み出されるなどで増やすことができる。したがって、後述するがDMA転送中にCPU101によるデータの読み出しの割り込みが行われ、若しくは平行してCPU101によるデータの読み出しが行われると、データ書き込み可能領域は増加する。これらのアドレスA1、A2はアドレス管理手段にて管理されている。
このようにデータが順次メインメモリ104に書き込まれている間に、DMA転送による転送データが全て転送完了となった場合(S203)、無効化制御手段109は無効化手段108を制御して、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータの無効化を実行する(S204)。そしてDMAコントローラ106はDMA転送を終了し、CPU101及びバスインタフェースバッファ103にDMA転送の終了を通知する(S205)。
なお、S204におけるキャッシュメモリ102内のデータの無効化処理は、この段階で行わなくてもよく、S505のDMA転送終了後に、CPU101からのデータアクセスが発生したときに、キャッシュメモリ102内のデータを無効化することも可能である。
DMA転送が継続され(S203)、その間にCPU101からのデータアクセス命令が発生した場合(S206)、CPU101はDMAコントローラ106へホールド信号を通知し、DMAコントローラ106はそのホールド信号に従い、DMA転送を中断する。
なお、このCPU101の割り込みに対しては、DMAコントローラ106はDMA転送を中断せずに、CPU101の割り込みを許可しないことも可能である。CPU101のリード処理とDMA転送処理の優先度に応じて、優先度の高い処理が優先されて実行することができる。DMA転送が中断された場合には、無効化制御手段109に設定される閾値との比較を行い(S208)、書き換えられたデータ量が閾値以下ならば、CPU101はキャッシュメモリ102を使用してデータアクセスを行わず、メインメモリ104にのみデータアクセスする(S209)。
書き換えられたデータ量が閾値以上ならば、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータを無効化する(S210)。なおS210の無効化処理は、CPU101が読み出すメインメモリ内のデータのアドレスに対応するキャッシュメモリ102内のデータについてのみ無効化する処理でも構わない。キャッシュメモリ102内のデータの無効化が行われると、CPU101はキャッシュメモリ102を使用してメインメモリ104へのデータアクセスを行う(S211)。この設定された閾値とDMA転送によるメインメモリ104へのデータ書き込み量の比較結果に応じて、キャッシュメモリ102を使用してアクセスするかどうかを切り替えることによって、システムとしての処理数を軽減することができる。すなわち、DMA転送によるデータ量が大きくなければ、あえてキャッシュメモリ102内のデータの無効化を実行せず、メインメモリ104へのみデータアクセスする方が、結果的に処理速度が速くなるのである。
この閾値は、このキャッシュメモリ102が使用されるシステムの用途や、メインメモリ104の容量、DMA転送されるデータ量、CPU101のデータアクセス回数等に応じて、最適な値に自動的に若しくはユーザーによって変更可能であり、または設計段階等にて決定することができる。
S310若しくはS311にてCPU101がデータアクセスを終了すると、CPUはDMAコントローラ106に対して、ホールド解除信号を通知し、DMAコントローラ106は再度DMA転送制御を開始する(S212)。
DMA転送が継続されると(S203)、アドレス管理手段107はDMA転送によりメインメモリ104内に書き込まれていくデータのアドレスを更新していくが、無効化制御手段109ではこのメインメモリ104内に書き込まれていくデータの量に対して、任意の閾値を設定している。無効化制御手段109は、DMA転送により書き込まれるメインメモリ104内のデータがこの任意の閾値に達した場合(S213)、その都度メインメモリ104内の書き換わったデータに対応するキャッシュメモリ102内のデータを無効化していく(S214)。
以下に、この閾値の設定パターンについて図5を用いてより詳細に説明する。A3は無効化制御手段109に設定される閾値を定めるアドレスである。任意の時点での書き込み位置を表すアドレスA2がアドレスA3に達することで、DMA転送によってメインメモリ104へ書き込まれるデータが閾値に達すると判断する。このアドレスA3の設定の仕方についてさらに説明する。
DMA転送開始時において、アドレスA3の設定のパターンについて説明する。
まず、(1)アドレスA3を、DMA転送によるメインメモリ104への書き込み開始位置であるアドレスA1からメインメモリ104の最終アドレスの間の任意のアドレスとして定める場合がある。
この場合、現在の書き込み位置であるアドレスA2がアドレスA3に達するときに、DMA転送によってメインメモリに書き込まれるデータが閾値に達したと判断する。すなわち、アドレスA2≧アドレスA3となったときである。
次に、(2)アドレスA3がFIFOメモリであるメインメモリ104の最終アドレスとして定められる場合がある。
この場合アドレスA2がメインメモリ104の最終アドレスに達するときに、DMA転送によってメインメモリ104に書き込まれるデータが閾値に達したと判断する。すなわち、アドレスA2=最終アドレス、若しくはアドレスA2が最終アドレスまで達して、メインメモリの先頭アドレスから書き込まれる場合は、先頭アドレス≦アドレスA2≦A1となったときである。
次に、(3)アドレスA3がFIFOメモリであるメインメモリ104の先頭アドレスからアドレスA1との間の任意のアドレスとして定める場合がある。
すなわち、アドレスA2がFIFOメモリの最終アドレスに到達し、FIFOメモリの先頭アドレスからDMA転送データの書き込みが行われ、さらに書き込みが行われアドレスA2がアドレスA3に到達したとき、つまり、アドレスA2がFIFOメモリの最終アドレスに達した後にアドレスA2≧A3となったとき、DMA転送によってメインメモリ104に書き込まれるデータが閾値に達したと判断する。
次に、(4)アドレスA3がDMA転送によって書き込みが開始された位置であるアドレスA1として定められる場合がある。
すなわち、アドレスA2がFIFOメモリの最終アドレスに到達し、FIFOメモリの先頭アドレスからDMA転送データの書き込みが行われ、さらに書き込みが行われアドレスA2がアドレスA1に到達したとき、つまり、アドレスA2がFIFOメモリの最終アドレスに達した後にアドレスA2≧A1となったとき、DMA転送によってメインメモリ104に書き込まれるデータが閾値に達したと判断する。
ただし、以上のようなアドレスA3の各設定パターンには制限があり、アドレスA3は未だデータの読み出しがされていない領域に設定することができない。したがって、閾値設定のために決定されるアドレスA3は、その時点に応じたメモリ空き容量により変化する。また、最もメモリを有効に使用するならば、アドレスA3はデータ記録可能な領域全体を指定するように設定するのが好ましい。
図5において、A4は未だ読み出されていないデータの先頭アドレスを示すが、この場合アドレスA4からアドレスA1までの領域が未だ読み出されていないデータが存在することになる。したがって、アドレスA1からメインメモリの最終アドレスまでの領域と、メインメモリ104の先頭アドレスからアドレスA4までの領域には、データの書き込みが可能な状態である。すなわち、アドレスA3はこれらの領域に設定可能であり、アドレスA3=アドレスA4と設定すれば、最もメモリを有効に使用でき、キャッシュメモリ102内のデータの無効化処理を少なくすることができる。また、CPU101によるメインメモリ104へのデータアクセスがあった場合には、そのアクセスされたデータ分だけメインメモリ104内に書き込み可能領域が増え、アドレスA4は更新されるので、このときアドレスA3についても再設定することが好ましい。
なお、アドレスA3は必ずしも上述したようにアドレスA4と同一にする必要はなく、このキャッシュメモリ102が使用されるシステムの用途や、メインメモリ104の容量、DMA転送されるデータ量、CPU101のデータアクセス回数等に応じて、最適な値に自動的に若しくはユーザーによって変更可能であり、又は設計段階等にて決定することができる。
なお、上述したような各設定は、アドレス管理手段107が管理するメインメモ104内のアドレスに基づいて無効制御手段109が行い、必要に応じて無効化手段108にキャッシュメモリ102内のデータの無効化処理を行わせる。
なお、キャッシュメモリ102内のデータの無効化処理については、DMA転送によって書き換えられたメインメモリ104内のデータに対応するデータがキャッシュメモリ102内に存在しなければ、無効化処理を実行しないように、無効化制御手段109にて切り替え制御を行うことも可能である。
また、DMAコントローラ106の制御によるDMA転送処理とCPU101によるメモリアクセス処理は必ずしも排他的な関係になるわけではなく、I/O105からメインメモリ104へのDMA転送とCPU101からのメインメモリ104へのデータアクセスは同時に実行できるシステムにおいては、本実施の形態で説明したような、CPU101からのデータアクセス命令が発生した場合でも、DMAコントローラ106はDMA転送を中断せず、DMA転送を継続しつつ、CPU101がメインメモリ104へのデータアクセスを実行できる。
本実施の形態によれば、従来DMA転送データ単位ごとにキャッシュメモリ内のデータの無効化処理を実行していたのに対し、メインメモリへのDMA転送データが設定された閾値に到達する度に、キャッシュメモリ内のデータの無効化処理を実行するので、無効化処理の処理数を削減することができる。例えば、DMA転送データ単位が1バイトであるシステムにおいて、従来では1バイト単位でキャッシュメモリ内のデータを無効化していたが、本発明にて無効化制御手段に設定される閾値を10バイトとすれば、無効化処理を1/10に削減することができる。また、FIFOメモリの特性を生かし、容易にデータ書き込み可能な領域を管理することができ、また閾値の設定についてもメモリ内のデータ書き込み可能領域に応じて容易に設定することができるので、閾値設定についても処理を簡略化できる。
また、DMA転送によるメインメモリ内の書き換わったデータが閾値に満たない場合でも、CPUからのデータアクセスに先立って、キャッシュメモリ内のデータの無効化処理を実行するので、洩れなく無効化することができる。
(第四の実施形態)
次に、本発明の第四の実施の形態について説明する。本実施の形態では、第二の実施の形態において、キャッシュメモリシステムのメインメモリをリングバッファのFIFO(先入れ先出し)メモリとしたものである。したがって、図1におけるメインメモリは、以下リングバッファのFIFOメモリとして扱う。図5はメインメモリを表すFIFOメモリである。又本実施の形態の制御方法の概略は第二の実施の形態と同様であり、図3に示すフローチャート図と図1、及び図5を用いて本実施の形態について説明する。
まず、DMA転送要求が発生すると、DMAコントローラ106は、CPU101やバスインタフェースバッファ103等のバスマスタに対して、動作をホールドさせるためのホールド信号を送信する。このホールド信号を受け、CPU101及びバスインタフェースバッファ103がホールド確認信号をDMAコントローラ106へ返送することで、DMAコントローラ106はDMA転送を開始する(S301)。DMAコントローラ106はI/O105を介して転送されてくるデータをメインメモリ104に転送し、メインメモリ104へデータを書き込んでいく(S302)。
このとき、FIFOメモリであるメインメモリ104へのデータの書き込み状態については、第三の実施の形態にて説明したものと同様であり、図5にその状態を示す。DMA転送されてきたデータはメインメモリ104内のアドレスA1から書き込みを開始され、遷移していく書き込み位置を示すアドレスA2は、書き込みが進むことでメインメモリ104内の最終アドレスに近づき、書き込み位置であるアドレスA2が最終アドレスに到達すると、メインメモリ104内の先頭アドレスから書き込みが行われる。書き込みが進行すると、アドレスA2は書き込みを開始したアドレスA1に近づいていく。なお、第三の実施の形態でも説明したように、メインメモリ104内に未だ読み出しがされていないデータが存在する場合、そのデータが記録される領域については書き込みができないので、読み出しを待って書き込みを行う。例えば、DMA転送開始時に、図5に示すように、アドレスA4からアドレスA1の間の領域にデータが書き込まれていた場合には、DMA転送によって書き込みが行える領域は、アドレスA1からメインメモリ104の最終アドレスまでの領域と、メインメモリ104の先頭アドレスからアドレスA4までの領域となる。
なお、後述するが、DMA転送中に、CPU101からのデータ読み出しが割り込みがあり、若しくはCPU101からのデータ読み出しが並列実行された場合には、アドレスA4は更新される。
このように順次DMA転送によって転送されてきたデータが順次メインメモリ104に書き込まれている間に、DMA転送による転送データが全て転送完了となった場合(S303)や、DMA転送によってメインメモリ104へ転送されるデータの量がメインメモリ104の書き込み可能容量に達した場合(S304)、無効化制御手段109は無効化手段108を制御して、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータの無効化を実行する(S605)。そしてDMAコントローラ106はDMA転送を終了し、CPU101及びバスインタフェースバッファ103にDMA転送の終了を通知する(S306)。
なお、S305におけるキャッシュメモリ102内のデータの無効化処理は、この段階で行わなくてもよく、S306のDMA転送終了後に、CPU101からのデータアクセスが発生したときに、キャッシュメモリ102内のデータを無効化することも可能である。またS304で、メインメモリ104へのDMA転送データ量がメインメモリ104内の書き込み可能容量に達した場合に、S306のDMA転送終了に移行するが、CPU101がメインメモリ104へデータアクセスした後、すぐにDMA転送を再開するという制御も可能である。
ここで、S304におけるメインメモリ104へ転送されるデータの量がメインメモリ104の書き込み可能容量に達することを判断する工程について、以下に説明する。この工程は、すなわちメインメモリ104の記録可能な領域にすべてDMA転送によるデータが書き込まれてしまい、メインメモリ104へのデータ書き込みができなくなってしまうことを判断する工程である。メインメモリ104へのデータ書き込みがこれ以上できなくなってしまうことを検知する判断手段についてさらに詳細に説明する。
以下、図10を参照して、DMA転送によりメインメモリ104へデータが書き込まれていき、メインメモリ104への書き込みができなくなるまでの処理を説明する。まず、FIFOメモリであるメインメモリ104内にアドレスA4からアドレスA1までの領域に読み出されていないデータが存在している状態で、DMA転送が開始され、メインメモリ104内のアドレスA1からデータの書き込みが開始される。データが書き込まれていくと、メインメモリ104内のデータ書き込み位置を示すアドレスA2は、メインメモリ104の最終アドレスに到達する。アドレスA2がメインメモリ104の最終アドレスに到達するとき、DMA転送によって転送されてきたデータがメインメモリ104内のアドレスA1から最終アドレスまでの間の領域に書き込まれたことになるので、DMA転送によるデータはメインメモリ104内の先頭アドレスから書き込みが開始される。すなわち、アドレスA2はメインメモリ104の最終アドレスに到達すると、メインメモリ104の先頭アドレスに移動し、アドレスA4に近づいていく。
DMA転送が進み、アドレスA2がアドレスA4に到達したとき、メインメモリ104へ転送されるデータの量がメインメモリ104の書き込み可能容量に到達したと判断する。これらのアドレスA1、A2、A4は、DMA転送を制御するDMAコントローラ106から通知されてアドレス管理手段107にて管理する。またアドレスA2がアドレスA4に到達することの検出方法としては、無効化制御手段109にてアドレスA2=アドレスA4になることを検出するか、DMA転送によりメインメモリ104に書き込み開始されたアドレスA1とアドレスA2との差分が、DMA転送前にメインメモリ104に書き込まれていたデータ量と一致することを検出する方法がある。なおCPU101からのメインメモリアクセスがあって、メインメモリ104内のデータが読み出された場合には、アドレスA4は変更されるが、その点については後述する。
DMA転送が継続され(S303、S304)、その間にCPU101からのデータアクセス命令が発生した場合(S307)、CPU101はDMAコントローラ106へホールド信号を通知し、DMAコントローラ106はそのホールド信号に従い、DMA転送を中断する。
なお、このCPU101の割り込みに対しては、DMAコントローラ106はDMA転送を中断せずに、CPU101の割り込みを許可しないことも可能である。CPU101のリード処理とDMA転送処理の優先度に応じて、優先度の高い処理が優先されて実行することができる。
DMA転送が中断された場合には、DMA転送によってメインメモリ104に書き換えられたデータの量と、無効化制御手段109に設定される閾値との比較を行い(S309)、書き換えられたデータ量が閾値以下ならば、CPU101はキャッシュメモリ102を使用してデータアクセスを行わず、メインメモリ104にのみデータアクセスする(S310)。書き換えられたデータ量が閾値以上ならば、DMA転送によって書き換えられたメインメモリ104内のデータに対応するキャッシュメモリ102内の無効化されていなかったデータを無効化する(S311)。
なおS210311の無効化処理は、CPU101が読み出すメインメモリ内のデータのアドレスに対応するキャッシュメモリ102内のデータについてのみ無効化する処理でも構わない。キャッシュメモリ102内のデータの無効化が行われると、CPU101はキャッシュメモリ102を使用してメインメモリ104へのデータアクセスを行う(S312)。この設定された閾値とDMA転送によるメインメモリ104へのデータ書き込み量の比較結果に応じて、キャッシュメモリ102を使用してアクセスするかどうかを切り替えることによって、システムとしての処理数を軽減することができる。
すなわち、DMA転送によるデータ量が大きくなければ、あえてキャッシュメモリ102内のデータの無効化を実行せず、メインメモリ104へのみデータアクセスする方が、結果的に処理速度が速くなるのである。この閾値は、このキャッシュメモリ102が使用されるシステムの用途や、メインメモリ104の容量、DMA転送されるデータ量、CPU101のデータアクセス回数等に応じて、最適な値に自動的に若しくはユーザーによって変更可能であり、又は設計段階等にて決定することができる。S310若しくはS311にてCPU101がデータアクセスを終了すると、CPU101はDMAコントローラ106に対して、ホールド解除信号を通知し、DMAコントローラ106は再度DMA転送制御を開始する(S313)。
なお、CPU101からのデータアクセスでメインメモリ104からデータが読み出された場合、メインメモリ内のデータの書き込まれている領域が変化するので、図5におけるメインメモリ104内のアドレスA4は変更される。また、DMA転送が再開され、メインメモリ104へのデータの書き込みが再開されるとき、その書き込み開始位置であるアドレスA1も変更されている。これらの変更されたアドレスA1、A4については、DMA転送を制御するDMAコントローラ106から通知されるアドレス管理手段107にて管理している。
なお、キャッシュメモリ102内のデータの無効化処理については、DMA転送によって書き換えられたメインメモリ104内のデータに対応するデータがキャッシュメモリ102内に存在しなければ、無効化処理を実行しないように、無効化制御手段109にて切り替え制御を行うことも可能である。
また、DMAコントローラ106の制御によるDMA転送処理とCPU101によるメモリアクセス処理は必ずしも排他的な関係になるわけではなく、I/O105からメインメモリ104へのDMA転送とCPU101からのメインメモリ104へのデータアクセスは同時に実行できるシステムにおいては、本実施の形態で説明したような、CPU101からのデータアクセス命令が発生した場合でも、DMAコントローラ106はDMA転送を中断せず、DMA転送を継続しつつ、CPU101がメインメモリ104へのデータアクセスを実行できる。
また、メインメモリ104にDMA転送されてきたが、既にCPU101からアクセス済みのデータや、不要と判断されるデータが書き込まれているアドレスに対しては、DMA転送によってデータを上書きしていくことができる。すなわち、S304におけるメインメモリ104の容量とは、上書きすることのできないデータが占有する容量以外の部分を示すことになる。
本実施の形態によれば、従来DMA転送データ単位ごとにキャッシュメモリ内のデータの無効化処理を実行していたのに対し、CPUからリード要求が発生することで、キャッシュメモリ内のデータの無効化処理を実行するので、無効化処理の処理数を削減することができる。例えば、DMA転送データ単位が1バイトであるシステムにおいて、従来では1バイト単位でキャッシュメモリ内のデータを無効化していたが、本発明にてDMA転送が行われている間にCPUからのデータアクセスが発生する頻度が、DMA転送データ量約10バイトで1回であるならば、無効化処理を1/10に削減することができる。
(第五の実施の形態)
次に、本発明の第五の実施の形態について説明する。第一から第四の実施の形態に説明したキャッシュメモリシステムは、種々の機器に利用可能である。例えば、デジタルテレビにおけるデジタル放送受信機器に、本発明のキャッシュメモリシステムを導入可能である。以下に、デジタル放送受信機器における本発明の制御方法を第五の実施の形態として説明する。
デジタル放送では、データ放送、EPG(電子番組表)になどに必要とされるデータをMPEG2−systemトランスポートストリームのようなトランスポートストリームのセクションと呼ばれるデータ構造で伝送している。デジタル放送受信機器では、受信したトランスポートストリームの中からセクションを抽出し、バッファに格納する処理が行われる。
図11はデジタル放送受信機器の構成を概略して示すブロック図である。二重線矢印はデータの流れを示す。111はCPU、112はキャッシュメモリ、113はCPUよりアクセス可能なメインメモリ、114はチューナであり、これらの構成により、受信電波の中から目的の搬送波を周波数選択し、さらに復調および誤り訂正を行う。これらの構成では、搬送波から1つのTSを選択し出力するところまでを行う。
115はトランスポートストリーム分離装置である。このトランスポートストリーム分離装置115は、同期手段1101、PIDフィルタ1102、デスクランブラ1103、セクションフィルタ1104、DMA1105を備える。同期手段1101は、入力されるTSから先頭データを検出し、TSPを抽出して出力する。PIDフィルタ1102は同期手段1101から入力されたTSPのPIDを基に、必要なTSPだけを出力し、必要でないTSPを破棄する。デスクランブラ1103はPIDフィルタ1102から入力されるTSPにスクランブルがかかっていた場合、データにかかったスクランブルを解除(デスクランブル)し、TS1102として出力する。スクランブルがかかっていなかった場合、何もせずにTS1102として出力する。セクションフィルタ1104は、入力されるTSPの中からセクションを取り出し、セクションのヘッダ部に対してフィルタリングを行い、必要なセクションだけをTS1103として出力し、必要でないセクションを破棄する。DMA1105は、メモリ112にセクションデータをバッファリングする。
116はAVデコーダであり、トランスポートストリーム分離装置115より供給される映像、および音声のPES複合処理を行い映像として出力する。117はデータ放送表示部であり、メモリ112にバッファリングされたセクションデータを用いてデータ放送の出力を行う。117はEPG表示部であり、メモリ112にバッファリングされたセクションデータを用いてEPGの出力を行う。
本実施の形態では、このセクションのバッファリング処理のように、可変長のある大きさに区切られた一塊とみなすデータに対して、DMA転送を行う場合について、第一から第四の実施の形態を参照して説明する。
例えば、第一、三の実施の形態における制御方法においては、図2の制御フローチャート図のS202で、DMA転送によりメインメモリ104へデータを書き込む際には、メインメモリ104内にセクションを形成したデータを書き込んでいく。また、S209におけるCPU101のデータアクセスは、セクションを単位として行われる。また、無効化制御手段109にてメインメモリ内に書き込まれていくデータの量に対して設定している任意の閾値を1セクションとすることができる。すなわち、任意の閾値を1セクションとすることで、S211においてDMA転送によってメインメモリ104に書き込まれるデータが1セクション分溜まる度に、そのメインメモリ104内の1セクションのデータに対応するキャッシュメモリ102内のデータを無効化することができる。
なお、閾値を1セクション分ではなく、任意のセクション数分で設定することも可能である。その場合、DMA転送されてメインメモリ104に書き込まれた複数のセクションに対応するキャッシュメモリ102内のデータをまとめて無効化することができ、より無効化処理を削減することができる。また図2におけるS208では、DMA転送によりメインメモリ104に書き込まれたセクションのサイズと設定されている閾値との比較を行うことになる。
また、図2におけるS206のCPU101からのデータアクセス命令は、メインメモリ104に1セクション転送されると発生するように制御することも可能である。その場合S208では、その1セクションのデータ量と設定される任意の閾値を比較して、閾値以下ならS209に、閾値以上ならS210に進むように設定可能である。
また図2のS211において、閾値をメインメモリの最終アドレスとして設定した場合、メインメモリに書き込まれるセクションがメインメモリの最終アドレスに達し、メインメモリの先頭アドレスから書き込まれる場合がある。この場合は、先頭アドレスから書き込まれているデータ部分に対応するキャッシュメモリ内のデータについても無効化を行う。
また例えば、第二、第四の実施の形態における制御方法においては、図3の制御フローチャート図のS302でDMA転送によりメインメモリ104へデータを書き込む際には、メインメモリ内にセクションを形成したデータを書き込んでいく。
また、S304のDMA転送によってメインメモリ104に転送されるデータの量がメインメモリ104の書き込み可能容量に達するかを判断する工程においては、メインメモリ104のアドレス状態を表した図7に示すように、アドレスC1を記録可能な領域の境界とした場合、アドレスA8はアドレスC1以下なので、セクション1まではデータの書き込みができるが、さらにセクション2をメインメモリ104に書き込んだ場合、書き込み後のデータ位置を示すアドレスA9が閾値アドレスC1を越えてしまい、書き込みができなくなってしまう。
このような事態を考慮して、DMAコントローラ106は、DMA転送されるセクションデータのデータ量を管理し、メインメモリ104へ書き込むことでメインメモリ104の書き込み可能容量を越えてしまうセクション2をDMA転送によりメインメモリ104に書き込む場合に、次のように処理する。すなわち、DMAコントローラ106は、予めメインメモリ104への書き込みデータ量がメインメモリ104の書き込み容量を越えてしまうと判断し、S305のDMA転送によりメインメモリ104に書き込まれたデータに対応するキャッシュメモリ102内のデータの無効化処理や、若しくはS305の無効化処理を行わずにS306のDMA転送終了処理、若しくはCPU101へのデータ読み出し要求等を行う。
このような特徴を有する本発明によれば、セクションバッファリング時に必要とされるパージ処理の方法を状況に応じて切り替えることで、従来必要とされていたパージ時間を短縮する事が可能となる。そのことによってセクションバッファリングの処理時間が短縮され、EPGおよびデータ放送をより高速に表示可能なデジタル放送受信装置を構成可能となる。
なお、本実施の形態では、MPEG2―systemトランスポートストリームを例に、セクション単位のデータ処理を説明したが、本実施の形態の制御方法の利用可能用途はこれに限定されるものでなく、セクションのような一塊のデータが意味をなすデータを扱う場合に有効である。
なお、以上の第一から第五の実施の形態において、メインメモリ104に書き込まれたデータに対して、CPU101からのアクセスをキャッシュブロックといわれる所定のブロック単位で実行する場合について、図6に示すメインメモリ内のアドレス状態を用いて説明する。
通常、CPU101がメインメモリ104内のデータをアクセスする場合、キャッシュブロックといわれる所定の幅を持ったブロック単位で行われ、キャッシュメモリ102にはアクセスされたキャッシュブロックが格納される。例えば図6において、アドレスA5からアドレスA6に記録されているデータ1全体にアクセスする場合、キャッシュブロックB1−B2、B2−B3、B3−B4、B4−B5の4つのキャッシュブロックにアクセスすることとなる。このとき、キャッシュブロックB1−B2、B2−B3、B3−B4、B4−B5のデータがキャッシュメモリに格納される。また例えば、データ1のアドレスB4からアドレスA6の部分のデータにアクセスする場合は、キャッシュブロックB4−B5にアクセスする。またこのとき、キャッシュブロックB4−B5のデータがキャッシュメモリ102に格納される。以下に、CPU101からメインメモリ104内のデータ1のアドレスB4からA5の領域のデータ部分に対してアクセス要求が発生した場合の動作と、さらにその後、データ1に隣接するアドレスA6からA7にデータ2が書き込まれ、キャッシュブロックB4−B5中に含まれているデータ2のアドレスA6からB5の領域のデータ部分に対してCPUからアクセス要求が発生したときの動作を図4のフローチャート図と図6のメインメモリ104の図を用いて説明する。
まず、DMA転送によってメインメモリ内のアドレスA5からA6にデータ1が書き込まれる(S401)。次に、CPU101からデータ1のアドレスB1からA6に対してアクセス要求が発生する(S402)。そして、CPU101はメインメモリ104からキャッシュブロックB1−B5のデータを読み出し、キャッシュメモリ102にはキャッシュブロックB1−B5のデータが格納される(S403)。次に、DMA転送によりメインメモリ104内のアドレスA6からA7にデータ2が書き込まれる(S404)。そしてメインメモリ104にデータ2が書き込まれた後、CPU101がデータ2のアドレスA6からB5のデータ部分にアクセス要求を発生する(S405)。すると、S403の工程でキャッシュメモリ102に格納されたメインメモリ104内のアドレスA6からB5のデータと、S404の工程にて書き換わったメインメモリ104内のアドレスA6からB5のデータとの不一致が生じてしまっているので、この不整合を防ぐために、メインメモリ104のキャッシュブロックB4−B5に対応するキャッシュメモリ102内のデータを無効化する(S406)。そして、CPU101はキャッシュブロックB4−B5のデータをメインメモリ104から読み出し、キャッシュメモリ102に改めてキャッシュブロックB4−B5のデータが格納される(S407)。なお、データ1がDMA転送によってキャッシュメモリ102に書き込まれる前のメインメモリ104のアドレスB4−A6に書き込まれていたデータがキャッシュメモリ102に格納されていた状態で、S402におけるCPU101からメインメモリ104内のアドレスB4−A6のデータへのデータアクセス要求が発生した場合には、S403にてCPU101がキャッシュブロックB4−B5を読み出して、キャッシュメモリ102にキャッシュブロックB4−B5のデータを格納する処理を行う前に、メインメモリ104のキャッシュブロックB4−B5の領域に対応するキャッシュメモリ102内のデータの無効化を行う。また、データ1とデータ2は隣接している場合ではなくても、データ1とデータ2が一つのキャッシュブロックの領域に含まれているデータ部分を有していれば、上記の処理が有効である。
以上の処理では、CPUからの読み出しの対象となるデータの中の一部が、すでに読み出されているデータとキャッシュブロックを共有している場合、その共有のキャッシュブロックの領域に対応するキャッシュメモリに格納されているデータについて無効化処理を行うので、CPUがキャッシュブロック単位でのデータ読み出しをする際にも、メインメモリ内のデータとそのデータのアドレスに対応するキャッシュメモリ内のデータとの不整合を防ぐことができる。
なお以上の処理は、データ1とデータ2は隣接している場合に限らず、データ1とデータ2の一部がキャッシュメモリを共有している場合にも有効である。すなわち、メインメモリがリングバッファのFIFOメモリのような場合には、図6に示すようにデータ1とデータ2が隣接して書き込まれていくので、図4のフローチャートに示す制御が有効であるし、メインメモリがそれ以外のメモリであっても、データ1とデータ2が隣接して書き込まれている場合、若しくはデータ1とデータ2が隣接していないがそれぞれの一部がキャッシュブロックを共有している場合に図4のフローチャートに示す制御は有効である。
また、以上の第一から第五の実施の形態の説明の中で、CPUのデータアクセスとDMAコントローラのDMA転送制御を独立に実行させる例について説明したが、これらは互いに制御を行うことも可能である。具体的には、DMA転送によるメインメモリへのデータの格納において、CPUが要求するものだけをDMA転送するようにDMAコントローラに指示することで、DMA転送されてくるデータ量がメインメモリの書き込み可能容量を上回らないように制御することができる。または、DMA転送によってメインメモリに書き込まれるデータがメインメモリへの書き込み可能容量に達した場合に、CPUの読み出し制御が行われるようにすることも可能である。このような制御方法を採ることで、例えば第二、第三の実施の形態の制御フローチャート図である図3のS304のような工程を起こさなくしたり、S304の工程とS307の工程を一つのタイミングとすることができ、本発明のキャッシュメモリシステムはより少ない処理数で、高速に動作することができる。
また、以上の第一から第五の実施の形態の中で用いる本発明のキャッシュメモリの構成は、必ずしも図1の構成に限定されるものではなく、無効化手段やアドレス管理手段、無効化制御手段等は一つの制御部として統合することもでき、またこれらの手段はDMAコントローラやCPUの一部の機能として含むことも可能である。また、DMA転送によりメインメモリに転送されるデータはI/Oを介して外部から転送されてくるものとして説明したが、I/Oを介さずに他のメモリ等から転送されてくる場合でも構わない。
本発明は、DMA転送機能を有するキャッシュメモリシステムを搭載する機器に応用可能であり、例えば、デジタルテレビ等におけるトランスポートストリームのセクション取得処理などに利用できる。
本発明に係るDMA転送機能を有するキャッシュメモリシステムの構成図 本発明に係る制御方法を示す第1のフローチャート 本発明に係る制御方法を示す第2のフローチャート 本発明に係る制御方法を示す第3のフローチャート メインメモリ内の第1のアドレス状態図 メインメモリ内の第2のアドレス状態図 メインメモリ内の第3のアドレス状態図 従来のDMA転送機能を有するキャッシュメモリシステムの構成図 従来のメモリ制御方法を示すフローチャート図 メインメモリ内のデータとキャッシュメモリ内のデータの関係図 デジタル放送受信機器の概要構成図
符号の説明
101 CPU
102 キャッシュメモリ
103 バスインタフェースバッファ
104 メインメモリ
105 I/O
106 DMAコントローラ
107 アドレス管理手段
108 無効化手段
109 無効化制御手段

Claims (27)

  1. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有するシステムにおける制御方法であって、
    前記メインメモリへ転送されるデータ量が任意の値に達する場合、DMA転送によって前記メインメモリ内に書き込まれたデータのアドレスに対応するキャッシュメモリ内のデータを無効化することを特徴とするメモリシステム制御方法。
  2. 請求項1記載の制御方法であって、
    前記メインメモリへ転送されるデータ量が任意の値に達する前に、DMA転送にて前記メインメモリに書き込まれたデータへ前記中央処理装置からアクセス要求があった場合には、前記DMA転送によって前記メインメモリに書き込まれたデータのアドレスに対応する前記キャッシュメモリ内のデータを無効化することを特徴とするメモリシステム制御方法。
  3. 請求項1記載の制御方法であって、
    前記メインメモリへ転送されるデータ量が任意の値に達する前に、DMA転送により前記メインメモリに書き込むべきデータが全て転送された場合、DMA転送により前記メインメモリに書き込まれたデータのアドレスに対応する前記キャッシュメモリ内のデータを全て無効化することを特徴とするメモリシステム制御方法。
  4. 請求項2記載の制御方法であって、
    前記メインメモリへ転送されるデータ量が任意の値に達する前及びDMA転送にて前記メインメモリに書き込まれたデータへ前記中央処理装置からアクセス要求がある前に、DMA転送により前記メインメモリに書き込むべきデータが全て転送された場合、DMA転送により前記メインメモリに書き込まれたデータのアドレスに対応する前記キャッシュメモリ内のデータを全て無効化することを特徴とするメモリシステム制御方法。
  5. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有するシステムにおける制御方法であって、
    DMA転送にて前記メインメモリに書き込まれたデータへ前記中央処理装置からアクセス要求があった場合に、DMA転送によって前記メインメモリに書き込まれたデータのアドレスに対応する前記キャッシュメモリ内のデータを無効化することを特徴とするメモリシステム制御方法。
  6. 請求項5記載のメモリシステム制御方法であって、
    DMA転送にて前記メインメモリに書き込まれたデータへ前記中央処理装置からアクセス要求があった場合に、DMA転送によって前記メインメモリに書き込まれたデータ量が任意の値以下ならば、前記キャッシュメモリ内のデータを無効化せず、前記中央処理装置が前記キャッシュメモリを使用せずに前記メインメモリからDMA転送によって書き込まれたデータを読み出すことを特徴とするメモリシステム制御方法。
  7. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有するシステムにおける制御方法であって、
    DMA転送にて前記メインメモリに書き込まれたデータへ前記中央処理装置からアクセス要求があった場合に、前記中央処理装置からのアクセス要求があったメインメモリ内のデータのアドレスに対応する前記キャッシュメモリ内のデータを無効化することを特徴とするメモリシステム制御方法。
  8. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有するシステムにおける制御方法であって、
    前記メインメモリへ転送されるデータ量が前記メインメモリの記録可能容量に達する場合、DMA転送を停止することを特徴とするメモリシステム制御方法。
  9. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有するシステムにおける制御方法であって、
    前記メインメモリへDMA転送されるデータ量が前記メインメモリの記録可能容量に達する場合、DMA転送によって前記メインメモリに書き込まれたデータのアドレスに対応するキャッシュメモリ内のデータを無効化することを特徴とするメモリシステム制御方法。
  10. 請求項9記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに書き込まれたデータのアドレスに対応するキャッシュメモリ内のデータを無効化して、前記中央処理装置がDMA転送によって前記メインメモリに書き込まれたデータを読み出すことを特徴とするメモリシステム制御方法。
  11. 請求項10記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに書き込まれたデータ量が任意の値以下ならば、前記キャッシュメモリ内のデータを無効化せず、前記中央処理装置が前記キャッシュメモリを使用せずに前記メインメモリからDMA転送によって書き込まれたデータを読み出すことを特徴とするメモリシステム制御方法。
  12. 請求項1から11のいずれか記載のメモリシステム制御方法であって、
    前記メインメモリはリングバッファのFIFOメモリであることを特徴とするメモリシステム制御方法。
  13. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    前記メインメモリはリングバッファのFIFOメモリであり、前記メインメモリへDMA転送されるデータ量が前記任意の閾値に達する場合とは、前記メインメモリへのデータ書き込み位置が前記メインメモリの最終アドレスに達する場合であることを特徴とするメモリシステム制御方法。
  14. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    前記メインメモリはリングバッファのFIFOメモリであり、前記メインメモリへDMA転送されるデータ量が前記任意の閾値に達する場合とは、前記メインメモリへのデータ書き込み位置が前記メインメモリの最終アドレスから先頭アドレスへ移動した場合であることを特徴とするメモリシステム制御方法。
  15. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    前記メインメモリはリングバッファのFIFOメモリであり、前記メインメモリへDMA転送されるデータ量が前記任意の閾値に達する場合とは、前記メインメモリへのデータ書き込み位置が前記メインメモリに記録されていて読み出されていないデータの先頭アドレスに達する場合であることを特徴とするメモリシステム制御方法。
  16. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    前記メインメモリはリングバッファのFIFOメモリであり、前記メインメモリへDMA転送されるデータ量が前記任意の閾値に達する場合とは、前記メインメモリへのデータ書き込み位置がDMA転送により前記メインメモリへのデータ書き込み開始アドレスに達する場合であることを特徴とするメモリシステム制御方法。
  17. 請求項8から11のいずれか記載のメモリシステム制御方法であって、
    前記メインメモリはリングバッファのFIFOメモリであり、前記メインメモリへDMA転送されるデータ量が前記メインメモリの記録可能容量に達する場合とは、前記メインメモリに転送されるデータが前記メインメモリに書き込まれているデータの先頭のアドレスに達する場合であることを特徴とするメモリシステム制御方法。
  18. 請求項1から17のいずれか記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに転送されるデータは一または複数の一塊のデータから構成されていることを特徴とするメモリシステム制御方法。
  19. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに転送されるデータは一または複数の一塊のデータから構成されており、前記任意の値は前記一塊のデータのデータ量であることを特徴とするメモリシステム制御方法。
  20. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに転送されるデータは一または複数の一塊のデータから構成されており、前記任意の値は任意の前記一塊のデータ数のデータ量であることを特徴とするメモリシステム制御方法。
  21. 請求項1から17のいずれか記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに転送されるデータはセクション形式であることを特徴とするメモリシステム制御方法。
  22. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに転送されるデータはセクション形式であり、前記任意の値は1セクションのデータ量であることを特徴とするメモリシステム制御方法。
  23. 請求項1から4のいずれか記載のメモリシステム制御方法であって、
    DMA転送によって前記メインメモリに転送されるデータはセクション形式であり、前記任意の値は任意のセクション数のデータ量であることを特徴とするメモリシステム制御方法。
  24. 請求項2記載のメモリシステム制御方法であって、
    前記中央処理装置は前記メインメモリ内のアクセス要求したデータを含む所定のアドレス幅を持つ一または複数のブロックで読み出し、前記中央処理装置が前記一または複数のブロックを読み出す前に前記一または複数のブロックの領域に対応するキャッシュメモリ内のデータを無効化することを特徴とするメモリシステム制御方法。
  25. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有し、前記中央処理装置が前記メインメモリに対して所定のブロック単位でデータ読出しするシステムにおける制御方法であって、
    DMA転送により前記メインメモリに書き込まれたデータに対し前記中央処理装置がアクセス要求をするアクセス要求工程と、
    前記中央処理装置によってアクセス要求された前記メインメモリ内のデータを含む全ての前記所定のブロックの領域に対応する前記キャッシュメモリ内のデータを無効化する無効化工程と、
    前記メインメモリ内の前記第一のデータを含む全ての前記所定のブロックの領域のデータを前記中央処理装置が読み出す読み出し工程を備えることを特徴とするメモリシステム制御方法。
  26. 中央処理装置とキャッシュメモリとメインメモリを備え、前記メインメモリへのDMA転送機能を有し、前記中央処理装置が前記メインメモリに対して所定アドレス幅を持つブロック単位でデータ読出しするシステムにおける制御方法であって、
    前記メインメモリ内に記録されている第一のデータを含む一または複数のブロックで前記中央処理装置が読み出す第一読み出し工程と、
    前記第一のデータを前記キャッシュメモリに格納する格納工程と、
    前記格納工程の後、DMA転送により前記メインメモリに第二のデータを書き込む書き込み工程と、
    前記第二のデータを一または複数のブロックで前記中央処理装置が読み出す第二読み出し工程とを備え、
    前記第二読み出し工程において前記一または複数のブロック内に前記第一のデータの一部または全部を含むブロックがある場合、前記第二読み出し工程にて読み出した前記メインメモリ内のブロックに対応する前記キャッシュメモリ内のアドレスを全て無効化することを特徴とするメモリシステム制御方法。
  27. 請求項24から請求項26のいずれか記載のメモリシステム制御方法であって、前記ブロックはキャッシュブロックであることを特徴とするメモリシステム制御方法。
JP2004354352A 2003-12-22 2004-12-07 メモリシステム制御方法 Pending JP2005209163A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004354352A JP2005209163A (ja) 2003-12-22 2004-12-07 メモリシステム制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003424152 2003-12-22
JP2004354352A JP2005209163A (ja) 2003-12-22 2004-12-07 メモリシステム制御方法

Publications (1)

Publication Number Publication Date
JP2005209163A true JP2005209163A (ja) 2005-08-04

Family

ID=34913895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354352A Pending JP2005209163A (ja) 2003-12-22 2004-12-07 メモリシステム制御方法

Country Status (1)

Country Link
JP (1) JP2005209163A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017026309A1 (ja) * 2015-08-10 2018-05-31 コニカミノルタ株式会社 センサ装置及び介護支援システム
JP7000748B2 (ja) 2017-09-04 2022-01-19 富士フイルムビジネスイノベーション株式会社 画像処理装置、半導体装置及びプログラム

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57186282A (en) * 1981-05-11 1982-11-16 Hitachi Ltd Information processing system
JPS57195375A (en) * 1981-05-27 1982-12-01 Mitsubishi Electric Corp Channel controller
JPS6215644A (ja) * 1985-07-15 1987-01-24 Nec Corp キヤツシユメモリ制御回路
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
JPH04133145A (ja) * 1990-09-26 1992-05-07 Fujitsu Ltd キャッシュメモリの無効化処理装置および無効化制御方法
JPH0659974A (ja) * 1992-07-02 1994-03-04 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH0724045B2 (ja) * 1987-04-22 1995-03-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン メモリ制御サブシステム
JPH09146839A (ja) * 1995-11-21 1997-06-06 Kofu Nippon Denki Kk キャッシュメモリ制御装置
JPH1091569A (ja) * 1996-09-19 1998-04-10 Hitachi Ltd Dma転送制御装置、及びキャプチャボード又はキャプチャカード、並びに情報処理装置
JP2000085218A (ja) * 1998-07-17 2000-03-28 Canon Inc 記録制御装置および記録装置
US20030007396A1 (en) * 2001-01-27 2003-01-09 Walker Anthony Mark Direct memory access controller for circular buffers

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57186282A (en) * 1981-05-11 1982-11-16 Hitachi Ltd Information processing system
JPS57195375A (en) * 1981-05-27 1982-12-01 Mitsubishi Electric Corp Channel controller
JPS6215644A (ja) * 1985-07-15 1987-01-24 Nec Corp キヤツシユメモリ制御回路
JPH0724045B2 (ja) * 1987-04-22 1995-03-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン メモリ制御サブシステム
JPH0348951A (ja) * 1989-07-18 1991-03-01 Fujitsu Ltd アドレスモニタ装置
JPH04133145A (ja) * 1990-09-26 1992-05-07 Fujitsu Ltd キャッシュメモリの無効化処理装置および無効化制御方法
JPH0659974A (ja) * 1992-07-02 1994-03-04 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH09146839A (ja) * 1995-11-21 1997-06-06 Kofu Nippon Denki Kk キャッシュメモリ制御装置
JPH1091569A (ja) * 1996-09-19 1998-04-10 Hitachi Ltd Dma転送制御装置、及びキャプチャボード又はキャプチャカード、並びに情報処理装置
JP2000085218A (ja) * 1998-07-17 2000-03-28 Canon Inc 記録制御装置および記録装置
US20030007396A1 (en) * 2001-01-27 2003-01-09 Walker Anthony Mark Direct memory access controller for circular buffers

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017026309A1 (ja) * 2015-08-10 2018-05-31 コニカミノルタ株式会社 センサ装置及び介護支援システム
JP7000748B2 (ja) 2017-09-04 2022-01-19 富士フイルムビジネスイノベーション株式会社 画像処理装置、半導体装置及びプログラム

Similar Documents

Publication Publication Date Title
US7630388B2 (en) Software defined FIFO memory for storing a set of data from a stream of source data
US20070297433A1 (en) Method and apparatus for double buffering
JP5411530B2 (ja) 並列処理プロセッサシステム
JPH0836877A (ja) キュー装置
US20090144527A1 (en) Stream processing apparatus, method for stream processing and data processing system
US7966351B2 (en) Fast and efficient method for deleting very large files from a filesystem
US20060129708A1 (en) Information processing apparatus and method and recording medium
JP2000347987A (ja) Dma転送装置
JP2006259898A (ja) I/oコントローラ、信号処理システム、およびデータ転送方法
US6633926B1 (en) DMA transfer device capable of high-speed consecutive access to pages in a memory
CN1332319C (zh) 存储系统控制方法
KR101112666B1 (ko) 디스크립터 전송 장치, i/o 컨트롤러, 및 디스크립터 전송 방법
US6728797B2 (en) DMA controller
JP5209793B2 (ja) 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
KR101459200B1 (ko) 전송 제어장치, 메모리 제어장치, 및 상기 전송 제어장치를 구비한 plc
KR20060017816A (ko) 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치
US6732198B1 (en) Methods and apparatus for saving and restoring scatter/gather list processing context in intelligent controllers
JP2005209163A (ja) メモリシステム制御方法
JP4536189B2 (ja) Dma転送装置及びdma転送システム
JP3440032B2 (ja) メモリ制御装置,ファクシミリ装置および画像形成装置
JP2005258719A (ja) データ処理システム及びスレーブデバイス
JP2009020776A (ja) スワップアウト制御装置
JP2005157717A (ja) データ転送方法及びその装置
JP2002252852A (ja) 符号供給装置および半導体集積回路
JP7310536B2 (ja) 画像処理装置、画像処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071030

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110628