JP2008097543A - メモリアクセス制御装置 - Google Patents

メモリアクセス制御装置 Download PDF

Info

Publication number
JP2008097543A
JP2008097543A JP2006281884A JP2006281884A JP2008097543A JP 2008097543 A JP2008097543 A JP 2008097543A JP 2006281884 A JP2006281884 A JP 2006281884A JP 2006281884 A JP2006281884 A JP 2006281884A JP 2008097543 A JP2008097543 A JP 2008097543A
Authority
JP
Japan
Prior art keywords
memory
data processing
system bus
access
controller
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
JP2006281884A
Other languages
English (en)
Inventor
Yoshihiro Terajima
義博 寺島
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006281884A priority Critical patent/JP2008097543A/ja
Publication of JP2008097543A publication Critical patent/JP2008097543A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 LSIの用途毎にソフトウエアを開発する必要がなくなり、ソフトウエアを開発する工数を削減することにある。
【解決手段】 第1のメモリへのアクセスをコントロールする第1のメモリコントローラと、第1のメモリコントローラ及びCPUとが接続されるシステムバスと、DMAコントローラを具備する複数のデータ処理回路と、第2のメモリをコントロールする第2のメモリコントローラと、データ処理回路とシステムバス及び第2のメモリコントローラの間に接続され、データ処理回路のアクセス先をシステムバスまたは第2のメモリコントローラに切り換える切り換え器と、システムバスを監視し、システムバスから得られた情報を使用して切り換え器を動的に制御するメモリアクセス領域管理部とからなる。
【選択図】 図1

Description

本発明は、記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリへのアクセスを制御するための装置に関するものである。
近年、LSIの主記憶容量として、記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリが頻繁に使用されている。
このような特徴をもつメモリとしてはシンクロナスDRAM(SDRAM)や、ダブルレートSDRAM(DDR−SDRAM)、ラムバスDRAM(RDRAM)などが良く知られている。これらメモリを主記憶容量として使用するLSIの内部構造の例を図4に示す。
図4において、LSI280はメモリコントローラ220を具備し、バスB241を介して前記主記憶容量となるシステムメモリ230に接続されている。
また、前記メモリコントローラはシステムバスB200に接続されている。前記システムバスB200にはCPU210及びDMAC(ダイレクト・メモリ・アクセス・コントローラ)を含む複数のデータ処理回路が接続されている。
この例では4つのデータ処理回路200、201、202、203が接続されている。例えばこれらデータ処理回路はガンマ変換等の画像処理を行う回路や、データを圧縮・伸張する回路やUSB等のLSI外部とのインタフェースとなる回路等である。
これら複数のデータ処理回路は、DMA(ダイレクト・メモリ・アクセス)開始前に、前記CPU210上で動作するソフトウエアより、それぞれのメモリアクセス領域が割り当てられる。
このようにして前記複数のデータ処理回路は前記システムメモリ230を共有し、使用領域が重ならないように制御されている。
一方、ここで使用している前述のSDRAM等、記憶領域が複数のバンクに分割されておる。該バンクが複数のページを具備するメモリは、アクセス対象のページに対し、アクセスするのに先駆けてアクティブ化(以後、ページオープン)を行わなければライトやリードのアクセスを行うことが出来ない。
また、同じバンクの別のページにアクセスする場合には、これをページミスと呼び、今までアクセスしていたページのプリチャージ(以後、ページクローズ)を行った後に、これからアクセスするページのアクティブ化を行わなければならない。すなわち同じページをアクセスしている期間は連続アクセスが可能だが、異なるページをアクセスする場合には、前述のページクローズ、及びページオープンを行わなければならず、連続アクセスが不可能となり、メモリアクセス効率が低下する。
しかし、このページミスは同一バンクの別のページにアクセスする場合に起こるものであり、異なるバンクに対しては別のページをオープンすることが出来る。
よって、前述のように複数のデータ処理回路がメモリを共有する場合には、それぞれに別のバンクを割り当てることにより、メモリアクセス効率の低下を防ぐことが出来る。
すなわち、前記システムメモリ230が4つのバンク、バンク0、バンク1、バンク2、バンク3を持つ場合には、それぞれのバンクを前記データ処理回路200、201、202、203に割り当てればよい。つまり、前述のソフトウエアであらかじめメモリ割り当てを固定しておけばよい。
しかし、前述のLSIが多用途に使用される場合、用途ごとに使用する前記主記憶容量に用いるメモリサイズを変更したい場合があり、異なるサイズのメモリはそのバンクのサイズも異なる。そのため、ソフトウエアを用途ごとに変更しなければならないという問題があった。すなわち、ソフトウエア開発により多くの工数を要するという問題があった。
また、前述の従来例においてはシステムメモリを共有するデータ処理回路が4つの場合について説明したがこれに限るものではなく、さらに多い場合もある。
また、LSI全体としての処理内容ごとに、同時に動作するデータ処理回路が異なるという場合もあるので、それぞれの場合ごとにメモリバンクの割り当てを変えてソフトウエアを開発することは、ソフトウエアが複雑化するという問題があった。
また、前記複数のデータ処理回路へのメモリアクセス領域の割り当てを、前記CPU上で動作するOS等のメモリマネージメント機能に任せるという方法を取った場合、前述のメモリバンクが意識されない。そのため、メモリアクセス効率が低下し、LSIの性能を低下させるという問題があった。
そこで、本発明の目的は、LSIの用途毎にソフトウエアを開発する必要がなくなり、ソフトウエアを開発する工数を削減することにある。
本発明のメモリアクセス制御装置は、記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリへのアクセスを制御する装置であって、前記メモリを第1のメモリとし、前記第1のメモリへのアクセスをコントロールする第1のメモリコントローラと、前記第1のメモリコントローラ及びCPUとが接続されるシステムバスと、DMAコントローラを具備する複数のデータ処理回路と、第2のメモリをコントロールする第2のメモリコントローラと、前記データ処理回路と前記システムバス及び前記第2のメモリコントローラの間に接続され、前記データ処理回路のアクセス先を前記システムバスまたは第2のメモリコントローラに切り換える切り換え器と、前記システムバスを監視し、前記システムバスから得られた情報を使用して前記切り換え器を動的に制御するメモリアクセス領域管理部とを具備するメモリアクセス制御装置であって、前記メモリアクセス領域管理部が前記システムバスから得る情報が、前記CPUが前記システムバスを介して前記データ処理回路に対して設定するメモリ割り当て情報であり、前記割り当て情報のうち同一のバンクおよび異なるページに割り当てられたものがあった場合で、且つその領域が一時的に使用するものであった場合に、該領域へのアクセスを前記第2のメモリコントローラにアクセスするように、前記メモリアクセス領域管理部が前記切り換え器を制御することを特徴とする。
本発明によれば、LSIの用途毎にソフトウエアを開発する必要がなくなり、ソフトウエアを開発する工数を削減することが出来る。
また、ソフトウエアの複雑化を回避することが出来る。また、そのようなソフトウエアを用いた場合においてもLSIの性能の維持を図ることができる。
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
図1は、本発明の実施形態に係るメモリアクセス制御装置の構成を示す図である。LSI180はメモリコントローラ120を具備し、バスB141を介して主記憶容量となるシステムメモリ130に接続されている。
ここで、前記システムメモリ130は、記憶領域が複数のバンクに分割され、該バンクが複数のページを具備するメモリである。例えば、シンクロナスDRAM(SDRAM)や、ダブルレートSDRAM(DDR−SDRAM)、ラムバスDRAM(RDRAM)等が挙げられる。
前記メモリコントローラはシステムバスB100に接続されている。また、前記システムバスB100にはCPU110が接続されている。さらに前記システムバスB100には切り換え器150、151、152、153が接続され、それぞれを介してDMAC(ダイレクト・メモリ・アクセス・コントローラ)を含むデータ処理回路100、101、102、103が接続されている。
例えばこれらデータ処理回路は、ガンマ変換等の画像処理を行う回路や、データを圧縮・伸張する回路や、LSI外部とのインタフェースとなる回路等である。
前記切り換え器はメモリアクセス領域管理部140により切り換えの制御が行われる。前記メモリアクセス領域管理部140は前記システムバスB100を監視し、CPU110から各データ処理回路に送られる情報を使用して前記複数の切り換え器を制御する。前記複数の切り換え器は、接続されたシステムバスB100とは別の切り換え先として、それぞれローカルメモリコントローラ160に接続されている。
前記ローカルメモリコントローラ160は、システムメモリ130とは別のローカルメモリ170へのアクセスをコントロールする。前記ローカルメモリ170は前記システムメモリ130よりも容量の小さなメモリである。
なお、図1のLSI上には本発案の実施形態に必要な回路のみを記し、その他、本発明の実施形態の説明に不必要な機能回路は省略した。
次に前記LSI180の動作について説明する。前記複数のデータ処理回路はDMA(ダイレクト・メモリ・アクセス)開始前に、前記CPU110上で動作するソフトウエアより、それぞれのアクセス可能なメモリ領域が設定される。
ここで、ソフトウエアは前記CPU110上で動作するOS等のメモリマネージメント機能を利用し、前記各データ処理回路のアクセス可能なメモリ領域を決定するものとする。すなわち、決定されたメモリアクセス領域は、前記システムメモリ130のバンクを考慮していない。本実施形態では前記システムメモリ130がバンク0、バンク1、バンク2、バンク3の4つのバンクを持つものとする。
次にデータ処理回路100の動作手順について、例えば、システムメモリ130からデータを読み込み、そのデータに対してデータ処理を行い、システムメモリ130に書き戻すような動作を行うようなものであるとする。
また、データ処理回路101の動作手順は、前記データ処理回路100がデータ処理を行った後にシステムメモリ130に書き込んだデータを読み出し、所定のデータ処理を行った後、システムメモリ130に書き戻すものとする。
また、データ処理回路102の動作手順は、システムメモリ130から読み出しを行い、所定のデータ処理後、図1に不図示の他の回路、もしくはLSI180の外部に前記処理後のデータを出力するものとする。
また、データ処理回路103の動作手順は、図1に不図示の他の回路、もしくはLSI180の外部からデータを受け取り、所定のデータ処理をした後、処理後のデータをシステムメモリ130に書き込みを行うものとする。
ここで各読み出し先のアドレスをソースアドレスと呼び、書き込み先のアドレスをディスティネーションアドレスと呼ぶ。
これら各データ処理回路に対し、前述のようにCPU110の上で動作するOS等のメモリマネージメント機能を利用し、アクセス可能なメモリ領域を決定した場合の一例を図2に示す。
図2に示したのは、前記メモリアクセス領域管理部140が前述のように前記システムバスB100を監視し、CPU110が各データ処理回路に設定した前記各データ処理回路のアクセス可能なメモリ領域を保存したイメージである。
図2において、データ処理回路100のソースアドレスとデータ処理回路100のディスティネーションアドレスが同一のメモリバンク0に割り当てられているのがわかる。
また、データ処理回路101のソースアドレスは、その処理がデータ処理回路100の処理結果を読み込んで処理を行う特性をもっているため、データ処理回路100のディスティネーションアドレスと同一のアドレスが割り当てられている。
これらの情報より、データ処理回路100のデータ読み出しと、データ処理回路100のデータ書き込み、及びデータ処理回路101のデータ読み出しとが同時に起こると、前記システムメモリ130において、頻繁にページミスが起こる。このように、性能の低下を招くことが予想される。
よって、本実施形態では、このような判断を前記メモリアクセス領域管理部140で行う。そして、前記データ処理回路100の書き込み、及びデータ処理回路101の読み出し先を、切り換え器150、及び151を制御してローカルメモリ170にアクセスするように切り換える。
また、このとき各データ処理回路に与えられたメモリアクセス許可領域のサイズを判定し、前記ローカルメモリ170のサイズ以下の場合にこの切り換えを行う。
また、前記データ処理回路100が書き込みを行って、前期データ処理回路101が読み出しを行うデータは、これら2つのデータ処理回路しか扱うことがない。そのため、前記システムメモリ130に置く必要がなく、両データ処理回路100、及び101が使用したローカルメモリ170上のデータは使用後に無効にすることが出来る。
このことにより、システムメモリ130のバンク0にアクセスするものがデータ処理回路100の読み出しのみになるので、ページミスを軽減することが出来る。すなわち、LSI180の処理性能を低下させることがない。
さらに前述のデータ処理回路はひとつの処理が終了すると、再度CPU110よりアクセス可能なメモリ領域が指定される。
前記メモリアクセス領域管理部140は、これら各データ処理回路にCPU110より指示されるそれぞれのメモリアクセス許可領域を、バスB100を常に監視することにより管理する。そして、ローカルメモリコントローラ160に割り当てたデータ処理回路の処理が終了していた場合で、且つ、新たにデータ処理回路に割り当てられたアクセス領域同士がシステムメモリ130の同一バンクに割り当てられており、ページミスを起きることが判定された場合、再度前述のようなメモリアクセス先の切り換えを行う。
このように順次ページミスを起こすと判断した前記データ処理回路のアクセス先を前記ローカルメモリコントローラ160に切り換える。
なお、本実施形態においては、データ処理回路が4つである場合について説明したが、これに限るものではないことは明らかである。
また、本実施形態においては、複数のデータ処理回路の全てがそれぞれ切り替え器を介してシステムバスまたはローカルメモリにアクセス可能である場合について説明したが、図3に示すように一部のデータ処理回路に限っても問題ない。
また、本実施形態においてはLSIの中にCPUを内蔵するとしたが、LSIの外にあっても構わない。
また、本実施形態においては切り換え器から直接ローカルメモリコントローラに接続する例を示したが、例えばシステムバスとは別のバスに接続し、該別のバスに接続されたローカルメモリコントローラにアクセスしても構わない。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきCPU等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。
本発明の実施形態に係るメモリアクセス制御装置の構成を示す図である。 本発明の実施形態に係るメモリアクセス制御装置におけるメモリアクセス領域管理部の管理情報を示す図である。 他のメモリアクセス制御装置の構成例を示す図である。 従来のメモリアクセス制御装置の例を示す図である。
符号の説明
100、101、102、103 データ処理回路部
110 CPU
120 メモリコントローラ
130 システムメモリ
140 メモリアクセス領域管理部
150、151、152、153 切り替え機
160 ローカルメモリコントローラ
170 ローカルメモリ
180 LSI
B100 システムバス

Claims (2)

  1. 記憶領域が複数のバンクに分割されており、該バンクが複数のページを具備するメモリへのアクセスを制御する装置であって、前記メモリを第1のメモリとし、前記第1のメモリへのアクセスをコントロールする第1のメモリコントローラと、前記第1のメモリコントローラ及びCPUとが接続されるシステムバスと、DMAコントローラを具備する複数のデータ処理回路と、第2のメモリをコントロールする第2のメモリコントローラと、前記データ処理回路と前記システムバス及び前記第2のメモリコントローラの間に接続され、前記データ処理回路のアクセス先を前記システムバスまたは第2のメモリコントローラに切り換える切り換え器と、前記システムバスを監視し、前記システムバスから得られた情報を使用して前記切り換え器を動的に制御するメモリアクセス領域管理部とを具備するメモリアクセス制御装置であって、
    前記メモリアクセス領域管理部が前記システムバスから得る情報が、前記CPUが前記システムバスを介して前記データ処理回路に対して設定するメモリ割り当て情報であり、前記割り当て情報のうち同一のバンクおよび異なるページに割り当てられたものがあった場合で、且つその領域が一時的に使用するものであった場合に、該領域へのアクセスを前記第2のメモリコントローラにアクセスするように、前記メモリアクセス領域管理部が前記切り換え器を制御することを特徴とするメモリアクセス制御装置。
  2. 前記CPU上で動作するソフトウエアが、前記第1のメモリのバンク情報を考慮せずに、前記複数のデータ処理回路のメモリアクセス領域割り当てを行うことを特徴とする請求項1に記載のメモリアクセス制御装置。
JP2006281884A 2006-10-16 2006-10-16 メモリアクセス制御装置 Pending JP2008097543A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006281884A JP2008097543A (ja) 2006-10-16 2006-10-16 メモリアクセス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006281884A JP2008097543A (ja) 2006-10-16 2006-10-16 メモリアクセス制御装置

Publications (1)

Publication Number Publication Date
JP2008097543A true JP2008097543A (ja) 2008-04-24

Family

ID=39380290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006281884A Pending JP2008097543A (ja) 2006-10-16 2006-10-16 メモリアクセス制御装置

Country Status (1)

Country Link
JP (1) JP2008097543A (ja)

Similar Documents

Publication Publication Date Title
US7782683B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
JP5090819B2 (ja) メモリーカード及び該データ格納方法
JP2005235182A (ja) 不揮発性メモリを制御するためのコントローラ
JP2008046964A (ja) 情報記録装置及びその制御方法
CN102279712A (zh) 一种适用于互联网存储系统的存储控制方法、系统和装置
KR20070118533A (ko) 불휘발성 메모리
US20120210045A1 (en) Data access method, and memory controller and memory storage apparatus using the same
JP2003317489A (ja) 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム
WO2006051779A1 (ja) 不揮発性記憶装置の制御方法、メモリコントローラ及び不揮発性記憶装置
JP2003280979A (ja) 情報記憶装置
CN105404591A (zh) 处理器系统及其存储器控制方法
JP2003256269A (ja) 不揮発性記憶装置の制御方法及びメモリ装置
WO2016106933A1 (zh) 一种基于若干分区的mcu芯片信息保护方法和装置
JP2009258925A (ja) 計算機システムおよび計算機システムのメモリ管理方法
JP2007234212A (ja) Nandフラッシュメモリのプログラム方法及びメモリシステムのプログラム方法
JP2008097543A (ja) メモリアクセス制御装置
JP5614337B2 (ja) メモリの制御方法、メモリの制御回路、記憶装置、及び電子機器
JP4895264B2 (ja) 記憶装置および情報処理装置
US20140281160A1 (en) Non-volatile semiconductor storage apparatus
KR101039396B1 (ko) 플래시 메모리의 조각난 저장 영역을 정리하는 방법 및 그를 위한 프로그램을 기록한 컴퓨터로 독출 가능한 기록매체
JP4273038B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法
JP4985108B2 (ja) データ記憶装置およびその制御方法
JP2008130092A (ja) データを管理する装置及び方法
JP2009265839A (ja) 記憶装置
JP2008299513A (ja) データ記憶装置およびその制御方法