JP2021157295A - メモリ制御装置 - Google Patents
メモリ制御装置 Download PDFInfo
- Publication number
- JP2021157295A JP2021157295A JP2020054625A JP2020054625A JP2021157295A JP 2021157295 A JP2021157295 A JP 2021157295A JP 2020054625 A JP2020054625 A JP 2020054625A JP 2020054625 A JP2020054625 A JP 2020054625A JP 2021157295 A JP2021157295 A JP 2021157295A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data block
- memory
- bank
- command
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】LPDDR5(Low Power Double Data Rate)などの高速で低消費電力なDRAMにおいて、駆動周波数によってバンクモードを変更しても、BG(Bank Group)モードにおける転送ペナルティを隠蔽しメモリ帯域を向上させることが可能なメモリ制御装置を提供する。【解決手段】メモリアクセス制御装置において、メモリコントローラ部102のバンキング制御部104は、駆動周波数によって切り替わるバンクモードについて、バンクモード毎にメモリアクセス方法を切り替えるコマンド生成部及びBGモードにおける転送ペナルティを隠蔽するため、最小アクセス単位でバンクグループをインタリーブするようにメモリ上のデータ配置およびデータ転送を制御するデータ並び替え部106を有する。【選択図】図2
Description
本発明は、DRAMを制御するメモリ制御装置に関する。
半導体デバイスを有するコンシューマー向けの電子機器は、半導体技術の向上により、年々、高性能化、小型化が進んでいる。
例えば、デジタルカメラやスマートフォンでは、膨大な画像データを高速に処理するために、高性能な画像処理LSI(Large−Scale Integrated Circuit)を搭載している。
このような画像処理LSIは、画像処理能力を上げるために、一時記憶手段として揮発性メモリであるDRAM(Dynamic Random Access Memory)を搭載している。
またコンシューマー向けの電子機器では、DRAMとして、例えばLPDDR(Low Power Double Data Rate)などの高速で低消費電力なDRAMが使用されている。
特許文献1では、DRAMへのアクセスをより効率的に実行するため、メモリマスターからのアクセス要求に対し、DRAMの最小アクセス単位毎に複数のDRAMデバイスへ、連続して交互にアクセスするチップ間インタリーブに関する技術が公開されている。
しかしながら、特許文献1に開示されている技術では、ひとつのDRAMデバイスへのアクセスについて着目すると、メモリマスターからの要求頻度によっては、連続したアクセス要求が溜まるため、結果、同一バンクに連続して書き込むことになる。
よって、LPDDR5特有のBGモードで発生する同一バンクグループへの連続アクセスにおける転送ペナルティは解消できない。
本発明は、上記の問題点に鑑み、メモリのバンクモードによってメモリアクセス方法を切り替えることで、BGモードにおける転送ペナルティを抑制し、メモリ帯域を向上させる技術を提供することを目的とする。
上記目的を達成するために、本発明のメモリ制御装置は、駆動周波数によってバンクモードが異なるメモリ手段と、第一駆動周波数における第一バンクモードと、第一駆動周波数より高周波な第二駆動周波数における第二バンクモードのいずれかにバンクモードを切り替えるバンクモード切り替え手段と、前記メモリ手段へのアクセス要求を出すメモリマスター手段と、前記メモリマスター手段から要求される前記メモリ手段への書き込みデータ列を、前記メモリ手段の最小アクセス単位で複数のデータブロックに分割するデータブロック分割手段と、それぞれのデータブロックに対応したコマンドを発行するコマンド発行手段と、を有し、隣接する前記データブロックを、異なるバンクグループに連続して交互に書き込むことを特徴とする。
本発明によれば、LPDDR5において、駆動周波数によってバンクモードを変更しても、BGモードにおける転送ペナルティを隠蔽しメモリ帯域を向上させることが可能となる。
以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
以下の実施例1から7において、DRAMを制御するメモリ制御装置について説明する。ここで、DRAMは、JEDEC(Join Electron Device Engineering Council)で規格化されたLPDDR5に準拠するDRAMである。
LPDDR5では、DVFS(Dynamic Voltage Frequency Scaling)が追加され、動的な電圧と駆動周波数の変更が可能となった。またLPDDR5では、バンク構成の使い方であるバンクモードが複数あり、駆動周波数によって、バンクモードが変わる仕様が規格化されている。
特にDRAMへの最小バースト単位であるBL(Burst Length)16とBL32をコマンド単位で使い分ける場合、低速な駆動周波数では16B(Bank)モード、高速な駆動周波数ではBG(Bank Group)モードを使用することになる。ここで、BGモードでは、転送時にデータラインにおける転送ペナルティが発生する。
図1(a)は、16BモードにおけるBL32でのデータ転送を示しているが、BL16では、データラインにおいて、コマンドC0に対するデータD00、D01と、コマンドC1に対するデータD10、D11を連続して流すことが可能である。
しかし、BGモードでは、図1(b)に示したように、同じBL32によるデータ転送でも、例えばコマンドC2に対するデータD20とD21はBL16分のT1期間、データ転送を開ける必要があると規格化されている。
但し、この転送ペナルティ期間T1は、別のバンクグループへの転送データを入れ込むことができるため、コマンドC3のアクセス先がコマンドC2のバンクグループと異なれば、図1(b)に示したように、データラインにおいて転送データを連続発行可能となる。
また、この転送ペナルティはBGモード固有のものだが、BL16のデータ転送でも、同一バンクグループへのアクセスが連続する場合は、データラインにおいて、T1期間分の転送ペナルティが発生する。
本発明にかかるメモリアクセス制御装置、およびメモリアクセス制御方法は、転送ペナルティを抑制し、メモリ帯域を向上させる技術を提供することを可能とする。
実施例1では、本発明のメモリアクセス制御装置において、データブロック単位でバンクグループ間をインタリーブアクセスする場合のメモリアクセス制御方法を説明する。
実施例2では、本発明のメモリアクセス制御装置において、ライン単位でバンクグループ間をインタリーブアクセスする場合のメモリアクセス制御方法を説明する。
実施例3では、本発明のメモリアクセス制御装置において、あらかじめメモリの論理アドレス空間をバンキング方法によって分けた場合のメモリアクセス制御方法を説明する。
実施例4では、本発明のメモリアクセス制御装置において、最後にメモリライトした時のバンキング方法をメモリの論理アドレス空間毎に記録した場合のメモリアクセス制御方法を説明する。
<実施例1>
図2において、メモリマスター部100は、メモリへのアクセス要求元となる回路モジュールで、例えば、画像処理LSIにおいて、メモリから画像データを入出力して画像処理する画像処理回路などが相当する。
図2において、メモリマスター部100は、メモリへのアクセス要求元となる回路モジュールで、例えば、画像処理LSIにおいて、メモリから画像データを入出力して画像処理する画像処理回路などが相当する。
次にメモリバス101は、例えばAMBA(Advanced Microcontroller Bus Architecture)で定義されているプロトコルを利用した内部バスである。
メモリマスター部100は、メモリバス101を介してメモリアクセス要求をメモリコントローラ部102に送信する。
ここで、メモリアクセス要求とは、メモリへのアクセス情報として、アドレス情報、ライト/リードのアクセス方向情報、データ長といったコマンド系の情報と、ライト時はメモリマスター部100から送信されるデータ情報が含まれる。
また、メモリマスター部100は複数存在している場合もあるため、メモリコントローラ部102に到達したメモリアクセス要求は、リクエスト調停部103で、他のメモリマスター部100からの要求とともに調停される。
調停されたメモリアクセス要求は、後段のバンキング制御部104に伝わる。バンキング制御部104では、コマンド生成部105において、受信したメモリアクセス要求の情報に含まれるアドレス情報やライト/リードのアクセス方向情報を基にメモリアクセス用のコマンドを生成する。
この時、コマンド生成部105では、受信したアドレス情報を基に、メモリアクセス用の物理アドレスを決定するため、バンキング制御もコマンド生成により実現することが可能である。
また例えば不図示のCPU(Central Processor Unit)から、メモリの駆動周波数に基づくバンクモードを、予めコマンド生成部105に通知しておくことでバンクモードによってバンキング制御を切り替えることが可能である。
更にコマンド生成部105では、メモリアクセス要求に含まれるデータ長の情報から、メモリ界面における最小アクセス単位でのコマンド発行数を決定する。よってコマンド生成部105では、データ長の情報を基に、BL16でアクセスするか、BL32でアクセスするかもコマンド生成として決定する。
次にライト時にメモリマスター部100から送信されるデータ情報は、データ並び替え部106において、メモリ界面における最小アクセス単位で分割し、複数のデータブロックを生成する。
データ並び替え部106で生成されたデータブロックは、コマンド生成部105からの指示に従い、後段のDRAM−IF部107へデータブロック単位で送信する。
ここで、コマンド生成部105からの指示によって、後段のDRAM−IF部107へのデータブロック送信順は任意に並び替えることが可能である。
リード時も同様にDRAM−IF部107から受信したリードデータをデータ並び替え部106で受け取り、コマンド生成部105の指示にしたがって、データブロック単位で任意に並び替え、メモリマスター部100へ送信することが可能である。
次にバンキング制御部105で生成されたコマンドとデータブロックは、DRAM−IF部107に送信される。
DRAM−IF部107では、コマンド発行部108において、バンキング制御部104から受信した情報を基に、DRAM110に対しコマンドライン111を介してコマンドを発行する。
コマンド発行部108では、バンキング制御部105から受信した情報を基に、ライトやリードのコマンドを発行するだけでなく、リフレッシュなどのJEDECで規格化されているその他コマンドを自動発行する機能も有している。
またDRAM−IF部107では、データ送受信部109において、ライト時は、バンキング制御部104から受信したデータブロックを、データライン112を介してDRAM110へ送信する。
同様にリード時は、DRAM−IF部107のデータ送受信部109において、DRAM110から送信されるデータを、データライン112を介して受信し、バンキング制御部104へ送信する。
ここで、コマンド発行部108では、図1に示したように、データライン112においてデータブロックが連続転送されるようJEDECの規格に従い、連続するコマンド間隔を調整して、DRAM110に対しコマンドを発行する。
次に図3から図6を用いて、バンクモード毎のデータ並び替え方法とDRAM110におけるデータ配置イメージについて説明する。
図3は、例えば画像処理回路を有するメモリマスター部100が入出力する画像データの模式図である。
図3において、D00、D10、D01、D11はデータブロックで、それぞれ水平方向に隣接したデータである。
以下、D00からD11のデータブロックを例にして、DRAM110への転送イメージを説明していく。
また、メモリマスター部100からのメモリアクセス要求としては、図3に示したデータブロックの配置順で送受信を要求するものとする。
図4は、バンクモードに依らずBL16で、DRAM110へデータを連続アクセスした場合のデータ転送とデータ配置の模式図である。
BL16による連続メモリアクセスでは、コマンド単位、つまりデータブロック単位で、異なるバンクグループ間をインタリーブする。
ここで、図4に示したようにDRAM110はB0からB15までの16個のバンクから構成されており、16Bモードでは16個のバンクを個別にリフレッシュなどの制御が可能である。
またBGモードでは、それぞれのバンクは、B0からB3はBG0、B4からB7はBG1、B8からB11はBG2、B12からB15はBG3のように、4つのバンクグループと、1つのバンクグループ辺り4つのバンクで構成される。
次に、図4のライトデータ転送イメージ400において、W00、W10、W01、W11はBL16のライトコマンドで、W00とW01はBG0へのライトコマンドで、W10とW11はBG2へのライトコマンドである。
図4のライトデータ転送イメージ400に示したように、バンクモードに依らず、ライトのコマンドは、データブロックD00、D10、D01、D11の順でデータライン112を転送するように、W00、W10、W01、W11の順で発行する。
また、データブロックD00、D10、D01、D11の順は、メモリマスター部100から送信されるデータ順なので、データ並び替え部106では、データブロックの並び替えを行わずDRAM110へ送信する。
これにより、データブロック単位で異なるバンクグループ間をインタリーブしながら連続ライトすることになり、特にBGモードでは、図1に示したような転送ペナルティを隠蔽する形でDRAM110への連続ライトアクセスが可能となる。
次に、図4のリードデータ転送イメージ401について説明する。
図4のリードデータ転送イメージ401において、R00、R10、R01、R11はBL16のリードコマンドで、R00とR01はBG0へのリードコマンドで、R10とR11はBG2へのリードコマンドである。
図4のリードデータ転送イメージ401に示したように、バンクモードに依らず、リードのコマンドは、データブロックD00、D10、D01、D11の順でデータライン112を転送するように、R00、R10、R01、R11の順で発行する。
DRAM110から送信されるデータブロックは、D00、D10、D01、D11の順で送信されるため、データ並び替え部106において、データブロックの並び替えを行わずメモリマスター部100へリードデータを送信する。
これにより、データブロック単位で異なるバンクグループ間をインタリーブしながら連続リードすることになり、特にBGモードでは、図1に示したような転送ペナルティを隠蔽する形でDRAM110への連続リードアクセスが可能となる。
次に図5を用いて、BGモードにおけるBL32で、DRAM110への連続ライト、または連続リードした場合のデータ転送とデータ配置について説明する。
図5のライトデータ転送イメージ500において、W0、W1は、BL32のライトコマンドで、W0はBG0へのライトコマンドで、W1はBG2へのライトコマンドである。よって、W0に対するデータブロックはD00とD01で、W1に対するデータブロックはD10とD11になる。
ここでBGモードでは、図1に示したように異なるバンクグループへの連続アクセスにおいて、BL16単位でそれぞれのコマンドに対するデータブロックを入れ子にすることで、連続的にデータライン112を転送することができる。
よって、図5のライトデータ転送イメージ500に示したように、ライト時は、データ並び替え部106においてデータ並び替えをせずに、BL32のコマンドを連続発行し、D00、D10、D01、D11の順で転送が可能である。
これにより、データブロック単位で異なるバンクグループ間をインタリーブしながら連続ライトすることになり、BGモードにおいて発生する転送ペナルティを隠蔽する形でDRAM110への連続アクセスが可能となる。
次に、図5のリードデータ転送イメージ501について説明する。
図5のリードデータ転送イメージ501において、R0、R1はBL32のリードコマンドで、R0はBG0へのリードコマンドで、R1はBG2へのリードコマンドである。ここでリードにおいても、BGモードでは、図1に示したように異なるバンクグループへの連続アクセスにおいて、BL16単位でそれぞれのコマンドに対するデータブロックを入れ子にすることで、連続的にデータライン112を転送することができる。
よって、図5のリードデータ転送イメージ501に示したように、リード時は、リードコマンドR0とR1を連続発行することで、DRAM110の出力は、D00、D10、D01、D11の順でデータライン112を転送することになる。
これにより、リード時においても、データ並び替え部106においてデータ並び替えをせずに、メモリマスター部100へデータブロックを送信することが可能となる。以上により、BGモードのBL32コマンドによるデータ転送では、データ並び替えをせずにコマンドを連続発行し、データブロック単位で異なるバンクグループ間をインタリーブすることで、BGモードにおける転送ペナルティの隠蔽が可能となる。
次に図6を用いて、16BモードにおけるBL32で、DRAM110への連続ライト、または連続リードした場合のデータ転送とデータ配置について説明する。
図6のライトデータ転送イメージ600において、W0、W1は、BL32のライトコマンドである。
また、図6のライトデータ転送イメージ600において、W0はBG0に属するB0へのライトコマンドで、W1はBG2に属するBG2へのライトコマンドである。ここで、16Bモードにおいても、DRAM110におけるデータ配置は、BGモードと同じようにするため、BGモードにおけるBG0に属するB0からB3と、BG2に属するB8からB11をデータブロック単位でインタリーブするようにデータ配置する。
本実施形態の説明では、BG0とBG2をデータブロック単位でインタリーブする方法を例にして説明しているが、別のバンクグループ間、或いはバンク間をインタリーブするようなデータ配置でも構わない。
次に、16Bモードでは、BGモードと異なり、BL16単位のデータライン112における転送ペナルティが存在しないため、一つのBL32コマンドに対して二つのデータブロックが連続してデータライン112を転送することになる。
そこで、ライト時はデータ並び替え部106において、例えばBG2に配置予定のD10とBG0へ配置予定のD01のデータブロックについて前後位置をいれかえる。
このデータ並び替えにより、W0とW1を連続発行することで、図6のライトデータ転送イメージ600に示したように、D00、D01、D10、D11の順でデータライン112を転送することが可能である。
以上により、16BモードのBL32においても、DRAM110におけるデータ配置をBGモードと同様に、連続するデータブロックをバンクグループ間でインタリーブした配置にすることが可能となる。
次に、図6のリードデータ転送イメージ601について説明する。
図6のリードデータ転送イメージ601において、R0、R1はBL32のリードコマンドで、R0はB0へのリードコマンドで、R1はB8へのリードコマンドである。
16Bモードでは、リードにおいても、BGモードと異なり、BL16単位のデータライン112における転送ペナルティが存在しないため、一つのBL32コマンドに対して二つのデータブロックが連続してデータライン112を転送することになる。
よって、図6のリードデータ転送イメージ601に示したように、リード時は、リードコマンドR0とR1を連続発行することで、DRAM110の出力は、D00、D01、D10、D11の順でデータライン112を転送することになる。
受信したデータは、データ並び替え部106において、D01とD10を並び替えた上でメモリマスター部100へデータブロックを送信する。これによりメモリマスター部100にとっては、図3で示した画像データにおけるデータブロックの配置順でデータを受信することが可能となる。
以上により、16BモードのBL32によるデータ転送では、送受信時にデータ並び替え部106においてデータブロックを並び替えることで、連続アクセスした場合でもDRAM110におけるデータ配置をBGモードと等しくすることが可能となる。
本実施形態では、バンクモードによらずDRAM110におけるデータ配置を同じようにするための構成とデータ転送方法を示した。
これにより、ライト時とリード時でバングモードが異なる場合でも、データブロック単位でバンクグループ間をインタリーブするため、BGモードにおける転送ペナルティの隠蔽が可能となり、連続したメモリアクセスでもメモリ帯域性能の劣化を防ぐことになる。
<実施例2>
本実施形態は、実施例1と同じメモリアクセス制御装置の構成をとるが、DRAM110におけるデータ配置を画像データにおけるライン単位でバンクグループ間をインタリーブする点が異なるため、実施例1との差分を図7から図11を用いて説明する。
本実施形態は、実施例1と同じメモリアクセス制御装置の構成をとるが、DRAM110におけるデータ配置を画像データにおけるライン単位でバンクグループ間をインタリーブする点が異なるため、実施例1との差分を図7から図11を用いて説明する。
図7は、図3と同じように、例えば画像処理回路を有するメモリマスター部100が入出力する画像データの模式図である。
図7において、画像データは複数ラインで構成されるが、以降では、最上ラインのLine0と、Line0に隣接する次ラインのLine1を使用して説明する。
また、Line0では、DL00からDL0nまでのn個のデータブロックが存在し、Line1では、DL10からDL1nまでのn個のデータブロックが存在する。
次に、図8は、16Bモードにおいて、ライン単位でバンクグループ間をインタリーブしたライト時のデータ転送とデータ配置の模式図である。
図8のライトデータ転送イメージ800において、WL00からWL0X、及びWL10からWL1XはBL32のライトコマンドである。また、WL00からWL0Xは、B0からB3へのライトコマンドで、WL10からWL1XはB8からB11へのライトコマンドである。
つまりBGモードにおいては、B0からB3に配置されたデータはBG0に属し、B8からB11に配置されたデータはBG2に属すことになる。
ここで、16Bモードでは、BGモードと異なり、BL16単位のデータライン112における転送ペナルティが存在しないため、一つのBL32コマンドに対して二つのデータブロックが連続してデータライン112を転送することになる。
よって、図8のライトデータ転送イメージ800に示したように、初めにWL00からWL0Xによって、Line0のDL00からDL0nをライトし、その後、WL10からWL1Xによって、Line1のDL10からDL1nをライトする。
以上の様に、16Bモードにおけるライト時は、ライン単位でバンクグループ間をインタリーブしてDRAM110に画像データをデータ配置する。
またこれらのライン単位でのライトアクセスは、実施例1で説明したメモリマスター部100からのメモリアクセス要求に基づいて実行される。
次に図9を用いて、16Bモードにおいて、ライン単位でバンクグループ間をインタリーブしてDRAM110にデータ配置された画像データをリードする時のデータ転送について説明する。
図9のリードデータ転送イメージ900において、RL00からRL0Xは、Line0のDL00からDL0nのデータブロックに対する16BモードにおけるBL32のリードコマンドである。
同様にRL10からRL1Xは、Line1のDL10からDL1nのデータブロックに対する16BモードにおけるBL32のリードコマンドである。
リードにおいても、16Bモードでは、BGモードと異なり、BL16単位のデータライン112における転送ペナルティが存在しないため、一つのBL32コマンドに対して二つのデータブロックが連続してデータライン112を転送することになる。
よって、図9のリードデータ転送イメージ900に示したように、初めにRL00からRL0Xによって、Line0のDL00からDL0nをリードし、その後、RL10からRL1Xによって、Line1のDL10からDL1nをリードする。
以上の様に、16Bモードにおけるリード時は、ライン単位でバンクグループ間をインタリーブしてDRAM110にデータ配置された画像データをリードする。またこれらのライン単位でのリードアクセスは、実施例1で説明したメモリマスター部100からのメモリアクセス要求に基づいて実行される。
次に図10と図11を用いて、前述したライン単位でバンクグループ間をインタリーブしてDRAM110にデータ配置した画像データを、BGモードでリードする時のデータ転送について説明する。
図10は、図2のバンキング制御部104において、本実施形態特有のデータ保持部200を追加した構成を示しており、その他のブロックは実施例1で説明した構成と同じである。
図10において、データ保持部200は、リード時にDRAM110から送信され、DRAM−IF部107を介して、データ並び替え部106に到達したデータブロックについて任意にデータを保持するブロックである。
このデータ保持部200は、SRAM(Static Randam Access Memory)などの一時記憶メモリで構成されており、画像データの1ライン分程度の容量を持つ。
次に図11を用いて、ライン単位でバンクグループ間をインタリーブしてDRAM110にデータ配置された画像データを、BGモードでリードする時のデータ転送について説明する。
図11のリードデータ転送イメージ1100において、RL00からRL0Xは、Line0のDL00からDL0nのデータブロックに対するBGモードにおけるBL32のリードコマンドである。
同様にRL10からRL1Xは、Line1のDL10からDL1nのデータブロックに対する16BモードにおけるBL32のリードコマンドである。
ここで、BGモードでは、図1で示したように、同一バンクグループへの連続アクセスでは、データライン112においてBL16間隔で転送ペナルティが発生してしまう。また、例えば画像処理回路のようなメモリマスター部100では、通常、画像データをライン単位でDRAM110にライトやリードをして、画像処理を行う。
そこで、本実施形態では、16Bモードにおいて、ライン単位でバンクグループ間をインタリーブしてDRAM110にデータ配置した画像データをBGモードで読み出す際、メモリマスター部100からの要求に対し、次のラインを先読みする。
この先読みよって、BGモードで発生する転送ペナルティを隠蔽することが可能となる。
図11を用いて、先読み方法について説明する。図11において、例えば、メモリマスター部100からLine0のデータについてリードのメモリアクセス要求が、メモリコントローラ部102に到達したとする。
通常ならBGモードでは、DRAM110に配置されたLine0のデータDL00からDL0nは、BL16毎に転送ペナルティを発生させながら間欠的にデータライン112を通ることになる。これにより、メモリ帯域は半分程度に低下してしまう。
そこで、メモリマスター部100からのLine0に対するリード要求が来たとき、メモリコントローラ部102におけるコマンド生成部105において、次ラインのLine1もリードするためのコマンドを生成する。
更に、図11のリードデータ転送イメージ1100に示したように、Line0に対するリードコマンドのRL00からRL0Xと、Line1に対するリードコマンドのRL10からRL1Xを、DRAM110に対し交互に発行する。
これにより、図11のリードデータ転送イメージ1100に示したように、データライン112において、D00からD0n、及びD10からD1nのデータは連続して転送することが可能となる。
次にDRAM110から転送されたデータは、データ並び替え部106に到達すると、先読みしたLine1に対するデータDL10からDL1nは、データ保持部200へ送られる。
また元々メモリマスター部100からのメモリアクセス要求であったLine0に対するデータDL00からDL0nは、メモリマスター部100へ送られる。ここで、前述したように通常の画像処理では、Line0のリードが完了すると次ラインの画像データが必要になるため、メモリマスター部100からはLine1に対するメモリアクセス要求が発行される。
図11に示したように、Line1に対するデータDL10からDL1nは先読みによって、既にデータ保持部200に格納されているため、メモリコントローラ部102は、データ保持部200のデータをメモリマスター部100に送る。
これにより、Line1のリードについては、DRAM110へのアクセスが発生することなく、メモリマスター部100のメモリアクセス要求を満たすことが可能となる。以上により、本実施形態の構成によれば、16Bモードでライトする際は、ライン単位でバンクグループ間をインタリーブし、BGモードでリードする際は、次ラインのデータを先読みすることで、BGモードの転送ペナルティを隠蔽することが可能となる。
<実施例3>
本実施形態は、実施例1、2と同じメモリアクセス制御装置の構成をとるが、DRAM110におけるデータ配置の管理方法が異なるため、その差分について図12を用いて説明する。
本実施形態は、実施例1、2と同じメモリアクセス制御装置の構成をとるが、DRAM110におけるデータ配置の管理方法が異なるため、その差分について図12を用いて説明する。
図12は、例えば不図示のCPUによって、あらかじめメモリの論理アドレス空間をバンキング方法によって使い分けた場合のDRAM110におけるメモリ領域を示した模式図である。
ここで、バンキング方法とは、以下に説明するBGバンキングと16Bバンキングを指す。
例えば、図12において、BGバンキング領域300は、実施例1で示したデータブロック単位でバンクグループ間をインタリーブするデータ配置を、ライト時、リード時に関わらす行い、基本的にBGモードでのみ使用する領域である。
但し、駆動周波数の変更により、16Bモードで、BGバンキング領域300からデータをリードする必要が発生した場合は、実施例1で示したようにデータ並び替え部106でデータ並び替えすることで、連続したデータリードが可能である。
また図12において、16Bバンキング領域301は、実施例2で示したライン単位でバンクグループ間をインタリーブするデータ配置、またはバンクグループを意識しないでバンク間でのインタリーブを行う領域で、基本的には16Bモードで使用する。
ここでも、駆動周波数の変更により、BGモードで、16Bバンキング領域301からデータをリードする必要が発生した場合は、実施例2に示したようにライト時はライン単位でバンクグループ間をインタリーブするデータ配置にする。更に、BGモードでリードする際に次ラインを先読みすることで、メモリ帯域を劣化させることなく連続したデータリートが可能となる。
よって、本実施形態の構成によれば、バンクモードによってアクセスする領域をあらかじめ分けておくことで、駆動周波数を動的に変更する場合でも、BGモードにおける転送ペナルティを軽減することが可能となる。
<実施例4>
本実施形態は、実施例1、2と同じメモリアクセス制御装置の構成をとるが、DRAM110におけるデータ配置の管理方法が実施例3とも異なるため、その差分について図13を用いて説明する。
本実施形態は、実施例1、2と同じメモリアクセス制御装置の構成をとるが、DRAM110におけるデータ配置の管理方法が実施例3とも異なるため、その差分について図13を用いて説明する。
図13は、本実施形態におけるDRAM110の論理アドレス空間を、バンキング方法によって領域管理した場合のメモリ領域を示した模式図である。
本実施形態では、例えば不図示のCPUによって、メモリへの最後のライトアクセス時に、その領域におけるバンキング方法を記録しておく。
例えば図13において、領域311は最後にライトアクセスした時は、BGモードなので、BGバンキングとして記録される。
同様に領域312は16Bバンキング、領域313はBGバンキング、領域314は16Bバンキングとして、DRAM110における領域が不図示のCPUによって管理される。これにより、動的にDRAM110の駆動周波数を変更した場合でも、実施例3の様に、それぞれの領域におけるバンキング方法と、リード時のバンクモードによって、最適な読み出し方法を選択することが可能となる。
よって、本実施形態の構成によれば、最後にライトアクセスした時のバンキング方法を領域毎に記録しておくことで、駆動周波数を変更したことによって、異なるバンクモードでリードする際も、BGモードの転送ペナルティを軽減することが可能となる。
<実施例5>
ところで、LPDDR5では、データコピー機能による省電力機能が追加された。
ところで、LPDDR5では、データコピー機能による省電力機能が追加された。
この機能は、転送データのうちリファレンスデータと一致した箇所に関して、実際に転送は行わず、LPDDR5やメモリコントローラ内部で該当データを復元するものである。具体的には、DRAMインターフェースのデータ端子DQ0を介して転送されるデータパターンがDQ1〜7を介して転送されるデータパターンと全て一致した場合、DQ0とデータコピーが有効である情報のみを転送し、DQ1〜7は転送を行わない。受信側は、データコピーが有効である情報をもとに、DQ0のデータパターンをDQ1〜7へコピーすることにより、元のデータパターンを復元する。DQ8とDQ9〜15の関係も同様である。
データパターンの一致判定は、8ビート転送毎に行われる。このように、より少ないデータ端子を用いてデータ転送することにより、データ端子のトグル率を下げ、DRAMのIO及びコア電力を削減することできる。
実施例5のメモリ制御装置は、画像データをDRAMに格納する場合に、画像データに対するデータパターン一致率を向上し、DRAMと画像処理エンジン間のデータ転送を省電力化することを実現する。
図14は、画像処理システムの概略構成を示したブロック図である。画像処理システム1400は、イメージセンサー1401と画像処理エンジン1402とDRAM1403を備えている。画像処理システム1400は、DRAM1403を複数備えても良い。イメージセンサー1401は画像処理エンジン1402と接続され、画像処理エンジン1402はDRAM1403と接続される。
次に、図15を用いて伝送路1404および画像処理エンジン1402およびDRAM1403の構成を示す。
伝送路1404は、一般的なDRAMインターフェースの信号群であり、差動クロックCK_t/CK_cやチップセレクトCS、コマンド/アドレス信号CA[6:0]、データ信号DQ[15:0]などが含まれる。
画像処理エンジン1402は、画像処理マスター1503とメモリバス1502とメモリコントローラ1501を備える。画像処理マスターは複数備えても良い。その他、不図示のCPUやシステムバス、イメージセンサー1401のインターフェース部を備えるが、本発明に無関係のため説明を省略する。
画像処理マスター1503は、イメージセンサー1401でキャプチャした画像データに対し、何らかの処理をした後、もしくは処理する過程で、メモリバス2002を介してメモリコントローラ1501との間でデータ転送する。メモリコントローラ1501は、伝送路1404を介して、DRAM1403との間でデータ転送する。
画像処理エンジン1402内にあるメモリコントローラ1501は、データコピー機能に対応しており、エンコード処理部1512とエンコード処理部1513とインターフェース回路1514を備える。
本発明では、データコピー機能に対応したメモリコントローラ1501内に、データ変換処理部1511を備えることが特徴である。データ変換処理部1511の説明は後述する。
DRAM1403もまた、データコピー機能に対応しており、インターフェース回路1524とデコード処理部1522とデコード処理部1523と記憶部1520を備える。続いて、メモリコントローラ1501とDRAM1403に関わるデータコピー機能について説明する。
DRAM1403への書き込みデータのデータコピー機能は、メモリコントローラ1501内のエンコード処理部1512とDRAM1403内のデコード処理部1522が対になり実現される。同様に、DRAM1403からの読み込みデータのデータコピー機能は、DRAM1403内のデコード処理部1523とメモリコントローラ1501内のエンコード処理部1513が対になり実現される。
まず、画像処理エンジン1402からDRAM1403への書き込みデータのデータコピー機能の処理について説明する。
メモリコントローラ1501内のエンコード処理部1512は、DRAM1403に対する書き込みデータのうち、DQ0を介して転送されるデータパターンがDQ1〜7を介して転送されるデータパターンと全て一致するか否かを判定し、一致した場合、データコピーが有効である情報をコマンド/アドレス信号付加する。また、DQ0を介するデータパターンのみを転送し、DQ1〜7を介するデータパターンは転送しない。DRAM1403内のデコード処理部1522は、データコピーが有効である情報を受け取り、示された有効箇所に対して、DQ0を介して転送されたデータパターンをDQ1〜7にコピーし、元のデータを復元して、記憶部1520に記憶する。
次に、DRAM1403から画像処理エンジン1402への読み出しデータのデータコピー機能の処理については、上記書き込みデータの説明のうち、エンコードとデコードの関係が逆になるだけのため、説明を省略する。
続いて、図16と図17を用いて、画像データと伝送路1404上のデータ配置を説明する。図16(a)は、例えば水平320ピクセル、垂直240ラインの輝度画像であり、1ピクセル当たり8ビットの分解能をもつ。この画像は、左から右に進むにすれ、段階的に暗くなる画像である。図16(b)は、図16(a)のラインNにおける輝度信号グラフである。枠1600は、輝度値200のピクセルが水平方向に8ピクセル連続した後、輝度値147のピクセルが水平方向に8ピクセル連続した範囲を示している。
図17(a)は、枠1600の輝度値をピクセルとビットに分解した図である。図17(c)は、図17(a)の画像データを、伝送路1404を介して転送する際のDQ0〜7端子に現れるデータパターンを示している。図示のとおり、8ビット分解能の画像は、ピクセルとビート、分解能ビットとDQ端子ビットがそれぞれ一致した状態で伝送路1404を介して転送される。
ここで、枠1701および枠1702は、データコピー機能のリファレンスとなるDQ0端子上のデータパターンである。枠1701は、最初の8ビートのリファレンスデータであり、枠1702は、2回目の8ビートのリファレンスデータである。枠1701は全て“0”のデータで構成されるが、最初の8ビートにおいて、DQ3及びDQ6〜7に“1”となるデータがあるため、データコピー機能が有効にならない。同様に、2回目の8ビートにおいても、枠1702で示されるデータパターンに対し、DQ2〜3およびDQ5〜6に異なるデータがあるため、データコピー機能が有効にならない。したがって、メモリコントローラ1501またはDRAM1403は、図17(a)の画像データを全てのDQ端子を用いてデータ転送する。
一方で、図17(b)の画像データでは、枠1701内のデータパターンが“00010011”であり、DQ1〜7端子もすべて同じデータパターンになるため、データコピー機能が有効になる。枠1702においても、DQ0とDQ1〜7のデータパターンが一致しているため、データコピー機能が有効になる。図17(d)は、図17(b)の画像データをエンコード処理部1512またはデコード処理部1523で処理した後のDQ0〜7端子に現れる転送データであり、DQ1〜7端子は非転送状態になる。
このように、リファレンスデータに対して、ビット値が一致しているビートが連続するような画像データが多ければ、その分データコピー機能が有効化される確率が上がる。
そこで、本発明は、画像データが近傍のピクセル値が同じ値になる確率が高いことに着目し、ビット値を一致させやすくする変換方法を考案した。
そこで、本発明は、画像データが近傍のピクセル値が同じ値になる確率が高いことに着目し、ビット値を一致させやすくする変換方法を考案した。
これより、図18および図19を用いて本実施例における画像データの変換方法について説明する。
図18はメモリコントローラ1501内のデータ変換処理部1511の構成である。データ変換処理部1511は、ピクセルビット変換部1800と、レート変換部1802および1804で構成される。経路1810から経路1813への経路がDRAM1403への書き込みデータ処理、経路1823から経路1822への経路が、DRAM1403からの読み出しデータ処理に関わる。
経路1810および経路1822は、メモリバス2002と接続されるデータレーンを示しており、本実施例では、128ビット幅で構成される。これを画像データに換算すると、分解能8ビット16ピクセル分のデータ幅となる。経路1810A/Bおよび経路1811A/Bは、16ピクセルを半分に分割した8ピクセル分、つまり64ビット幅のデータレーンである。
レート変換部1802は、DRAM1403への書き込みデータ128ビット幅を16ビット幅に変換する。逆に、レート変換部1804は、DRAM1403からの読み込みデータ16ビット幅を128ビット幅に変換する。
次に、ピクセルビット変換部1800について説明する。
図19は、図18における経路1810A/Bおよび経路1811A/Bで転送される画像データを図示したものである。データ1910Aは、経路1810Aで伝送されるデータレーンであって、ピクセル8〜15番目の画像データを示す。ビット列1911Aは、データ1910Aをビット列で示したものである。
データ1910Bは、経路1810Bで伝送されるデータレーンであって、ピクセル0〜7番目の画像データを示す。ビット列1911Bは、データ1910Bをビット列で示したものである。例えばp0[0]は、ピクセル0のビット0を示す。
ピクセルビット変換部1800は、DRAM1403への書き込みデータの場合、図19で示すとおり、ビット列1911Aおよびビット列1911Bを、それぞれビット列1912Aおよびビット列1912Bへ変換する。DRAM1403からの読み込みデータの場合は、ビット列1912Aおよびビット列1912Bをそれぞれビット列1911Aおよびビット列1911Bへ変換する。つまり、8つのピクセルに格納されているビット列から、同じ番号のビットを8つ集めて、一つのピクセルとして再構築する処理を行う。
ここで、図17(b)は、図17(a)の画像データをピクセルビット変換した後である。前述したように、図17(b)は、枠1701および枠1702のどちらも、DQ0〜7端子全てのデータパターンが一致するため、図17(d)に示す通り、データコピー機能が有効になる。
本実施例では、8ピクセル単位のデータ変換例を示したが、8バイト単位のデータであれば、問題なく変換可能である。したがって、本実施例によるデータ変換方法は、画像データだけに限定されるものではない。
このように、本実施の形態における画像処理システムを用いれば、LPDDR5で追加されたデータコピー機能が有効化される確率が上がり、DRAMと画像処理エンジン間のデータ転送を省電力化できる。
<実施例6>
本実施例では、図20および図21を用いて、データ変換例を説明する。
本実施例では、図20および図21を用いて、データ変換例を説明する。
図20のメモリコントローラ2001は、データ変換判定部2010が追加された。データ変換判定部2010は、メモリバス1502からDRAM1403に対するデータ転送要求の中から、アドレス情報を取得し、データ変換すべきアドレス範囲に対するデータ転送要求か否かを判定する。上記アドレス範囲は、不図示のCPUのレジスタやハードウェア的に決定しても良い。
図21は、図20のデータ変換判定部2010を含んだメモリコントローラ2001における、データ変換処理部2011である。図18で示されたデータ変換処理部1511に対して、セレクタ2101および制御信号2112が追加された。
経路2110から経路2113への経路がDRAM1403への書き込みデータ処理、経路2123から経路2122への経路が、DRAM1403からの読み出しデータ処理に関わる。制御信号2112は、データ変換判定部2010の出力であり、ピクセルビット変換部1800による処理前後の信号のいずれかをセレクタ2101または2103にて選択することにより、データ変換の可否を選択している。
このように、データ変換の対象となるデータが格納されるアドレス範囲を設定し、適応的にデータ変換することにより、データコピー機能が有効化される確率が上がり、DRAMと画像処理エンジン間のデータ転送を省電力化できる。
なお、データ変換判定部2010は、メモリバス2002からDRAM1403に対するデータ転送要求の中から、そのデータが画像データであることを示す情報を取得し、データ変換の可否を判定するものであってもよい。
<実施例7>
LPDDR5では新しい低消費電力ステートとしてDeep Sleep Modeが追加されている。Deep Sleep ModeはSDRAMへのアクセスがないとき、データ保持に必要な最小限の動作を行い、電力を削減するステートである。DeepSleep Modeは、LPDDR5以前から搭載されている低消費電力ステートであるSRPower Downの改良版であり、さらに消費電力を低減できるメリットがある。
実施例7は、Deep Sleep Modeからの復帰を速やかに実行するメモリ制御装置、およびメモリ制御方法を提供する。
LPDDR5では新しい低消費電力ステートとしてDeep Sleep Modeが追加されている。Deep Sleep ModeはSDRAMへのアクセスがないとき、データ保持に必要な最小限の動作を行い、電力を削減するステートである。DeepSleep Modeは、LPDDR5以前から搭載されている低消費電力ステートであるSRPower Downの改良版であり、さらに消費電力を低減できるメリットがある。
実施例7は、Deep Sleep Modeからの復帰を速やかに実行するメモリ制御装置、およびメモリ制御方法を提供する。
図22は、本発明に掛かる実施例1における撮像装置のブロック図である。
撮像装置は、光学部2201、撮像部2202、画像処理エンジン2210、2つのDRAM(ダイナミックランダムアクセスメモリー)2230、2231、表示部2232、記録部2233、視線センサー2240、接眼センサー2241、グリップセンサー2242、カメラマイコン2243を有する。
光学部2201は着脱可能なレンズであり、光学部2201が取り込んだ光を撮像部2202が受け、画像信号に変換する機能を有する。変換された画像信号は画像処理エンジン2210の入力部2211に出力される。
画像処理エンジン2210は半導体集積回路であり、撮像部2202から入力した画像信号の画像処理機能を有する。詳細は後述する。
DRAM2230はLPDDR5対応のSDRAMであり、画像処理中の画像の一時記録や各種パラメータの記録部として使われる。
DRAM2231はLPDDR5対応のSDRAMであり、画像処理中の画像の一時記録や各種パラメータの記録部として使われる。なお本実施例において、DRAM2231は静止画撮影モード時や動画記録時などの広帯域が必要なときのみ使用され、ライブビュー撮影においてはDeepSleepModeに遷移しているものとする。
表示部2232は、例えばEVF(Electronic View Finder)や液晶ディスプレイであり、ライブビュー画像の表示や再生画像の表示などを行う。また、タッチパネル構成になっていてもよい。
記録部2233は、着脱可能な可搬メモリであり、撮像画像の記録などに用いられる。視線センサー2240は、撮影者の視線を検知するセンサーであり、撮影者が表示部2232を見ているか否かを判定する機能を有する。
接眼センサー2241は、撮影者が撮像装置のファインダーに顔を近づけたか否かを判定する機能を有する。グリップセンサー2242は、撮影者が撮像装置を握っているか否かを判定する機能を有する。カメラマイコン2243は、撮影者側を撮影する機能を有する小型カメラであり、撮影者の顔を検出する機能を有する。
次に画像処理エンジン2210の詳細を説明する。
画像処理エンジン2210は、入力部2211、画像処理部2212、CPU2213、メモリ制御部2214、メモリ制御部2215、表示制御部2216、視線センサー制御部2217、接眼センサー制御部2218、グリップセンサー制御部2219、カメラマイコン制御部2220、記録制御部2221を有している。
入力部2211は撮像部2202の出力信号である画像信号を入力し、内部バスに出力する。内部バスに出力された画像信号は、一度DRAM2230、2231へ記録してもいいし、画像処理部2212に送ってもよく限定されない。
画像処理部2212は、画像信号に対して所定の画像処理を行う機能を有する。所定の画像処理とは、光学部2201や撮像部2202の補正処理(欠陥画素補正)、AF(AutoFocus)、AE(Auto Exposure)、AWB(AutoWhite Balance)処理、データ符号化処理、データ復号化処理などを実施するものとする。
CPU2213は、一般的なCPUであり、DRAM2230、DRAM2231に記録されているプログラムを実行する機能を有する。また、電源ボタンやシャッターボタン、モードダイアルなどの各種スイッチ(不図示)からの信号を受信して、撮像装置の動作モードを判定・変更する機能も有する。
メモリ制御部2214、メモリ制御部2215は、各処理部からの要求を受け、DRAM2230、DRAM2231に対して各種データの書き込み、読み出しを行う機能を有する。
表示制御部2216は画像信号を入力し、表示部2232に表示するための表示用画像を生成し、出力する機能を有する。
視線センサー制御部2217は、視線センサー2240を制御する機能を有する。接眼センサー制御部2218は、接眼センサー2241を制御する機能を有する。グリップセンサー制御部2219は、グリップセンサー2242を制御する機能を有する。カメラマイコン制御部2220は、カメラマイコン2243を制御する機能を有する。記録制御部2221は、画像信号を記録部2233へ記録する機能と、記録部2233からの読み出し及び再生を行う機能を有する。
次に、図23において、LPDDR5 SDRAMにおけるDeep Sleep Modeのステートダイアグラムについて簡単に説明する。LPDDR5 SDRAMの低消費電力ステートには、図23に示す4つのステート(Idle、DeepSleep Mode、SR Power Down、SelfRefresh Mode)が存在する。Idleはコマンド待ちのステートである。SR PowerDownは通常のアクセスはできないが、自動的にリフレッシュ処理が実行されるため、消費電力を削減しながら記録データが保持できるステートである。DeepSleep ModeはLPDDR5から追加されたステートであり、SRPower Downよりもさらに消費電力削減効果が高いステートである。しかしながら、Idleに復帰するまでに、SRPower DownとSelf Refresh Modeを経由して復帰する必要があるため、復帰に時間が掛かってしまうという課題がある。
次に、図24のフローチャートを用いて、撮像装置の制御フローを説明するが、本フローチャートは撮像装置の電源が投入されたことに応じて開始する。
まず、ステップS2401において、ライブビュー撮影処理が行われる。具体的には、光学部2201によって取り込まれた光は撮像部2202で画像信号に変換され、画像処理エンジン2210の入力部2211に取り込まれる。入力部2211はメモリ制御部2214を介して、DRAM2230に画像信号を記録する。次に画像処理部2212がメモリ制御部2214を介してDRAM2230から画像信号を読み出し、欠陥画素補正や現像処理やリサイズ処理などの画像処理を実行する。最後に表示制御部2216が画像を表示部2232に表示する。なお、ライブビュー撮影処理における画像データの一時置き場としてはDRAM2230が使われ、DRAM2231はDeepSleep Modeに遷移しているものとする。また、OVF(opticalviewfinder)を搭載している撮像装置でファインダー撮影している場合は、ライブビュー撮影処理は行われない。
次に、ステップS2402において、視線センサー2240、接眼センサー2241、グリップセンサー2242、カメラマイコン2243のいずれかによって撮影者が検知されたか否かをCPU2213が判定する。撮影者が検知されていない場合は、ステップS2401へ戻りライブビュー撮影処理を繰り返しながら各種センサーが撮影者を検知するのを待つ。撮影者が検知された場合は、ステップS2403へ進む。なお、ここでは4つのセンサーを搭載しているが、撮影者を検出する手段が1つあれば十分であり限定されない。
次に、ステップS2403において、メモリ制御部2215がDRAM2231のステートをDeepSleep ModeからSR Power Downに遷移させる。次に、ステップS2404において、ステップS2401同様にライブビュー撮影処理を行う。
次に、ステップS2405において、CPU2213がシャッターボタンの半押し(SW1)を検知したかを判定する。シャッターボタンの半押しを検知していない場合は、ステップS2404に戻り、ライブビュー画像を表示し続けながらシャッターボタンが半押しされるのを待つ。シャッターボタンの半押しを検知した場合は、ステップS2406へ進む。
次に、ステップS2406において、メモリ制御部2215がDRAM2231のステートをSRPower DownからIdleに遷移させる。
次に、ステップ307において、ステップS2401、ステップS2407同様にライブビュー撮影処理を行う。
次に、ステップS2408において、CPU2213がシャッターボタンの全押し(SW2)を検知したかを判定する。シャッターボタンの全押しを検知していない場合は、ステップS2407に戻り、ライブビュー画像を表示し続けながらシャッターボタンが全押しされるのを待つ。シャッターボタンの全押しを検知した場合は、ステップS2409へ進む。
次に、ステップS2409において、静止画撮影処理が行われる。具体的には、光学部2201によって取り込まれた光は撮像部2202で画像信号に変換され、画像処理エンジンの入力部2211に取り込まれる。入力部2211はメモリ制御部2214とメモリ制御部2215を介して、DRAM2230とDRAM2231に画像信号を記録する。次に画像処理部2212がメモリ制御部2214とメモリ制御部2215を介して、DRAM2230とDRAM2231から画像信号を読み出し、欠陥画素補正や現像処理や符号化処理を実行する。最後に符号化済みの画像信号を記録制御部2221が記録部2233に記録して、一連の静止画撮影処理が完了する。なお、DRAM2230とDRAM2231の使い分けに関しては、例えば、現像処理と検出処理などで使うDRAMを分けたり、連写モードであれば奇数枚と偶数枚で分けたりするなどが考えられ限定されるものではない。
最後に、ステップS2410において、メモリ制御部2215がDRAM2231のステートをIdleからDeepSleep Modeに遷移させる。なお、静止画撮影処理終了後も各種センサーが撮影者を検知していた場合でも、撮影画像を表示部2232に表示している間は、DRAM2231のステートをDeepSleep Modeに遷移させる。これは撮影者が撮影画像を確認するために表示部2232を見たり、撮像装置のボディをグリップし続けたりすることが考えられるためである。
以上で、図24のフローチャートの説明を終了する。図24のフローに示すように、各種センサーによる検知とSW1の2段階に分けて、DRAMのステートをDeepSleepModeからIdleまで復帰させることで復帰時間を分散させることができる。
なお、ステップS2402において、各種センサーが撮影者を検知した後、ステップS2403において各種センサーが撮影者を検知しなくなった場合、一定時間DRAM2231のステートをSRPowerDownに保っていてもよい。これは撮影中に撮影者が被写体に指示を出すために表示部2232やファインダーから目を離すことが考えられるためである。一定時間経過後も各種センサーが撮影者を検知しない場合は、DRAM2231のステートをDeepSleep Modeに戻す。
図24のフローチャートでは静止画撮影処理について説明したが、動画撮影においても同様であり限定されるものではない。
100 メモリマスター部
101 メモリバス
102 メモリコントローラ部
103 リクエスト調停部
104 バンキング制御部
105 コマンド生成部
106 データ並び替え部
107 DRAM−IF部
108 コマンド発行部
109 データ送受信部
110 DRAM
111 コマンドライン
112 データライン
200 データ保持部
101 メモリバス
102 メモリコントローラ部
103 リクエスト調停部
104 バンキング制御部
105 コマンド生成部
106 データ並び替え部
107 DRAM−IF部
108 コマンド発行部
109 データ送受信部
110 DRAM
111 コマンドライン
112 データライン
200 データ保持部
Claims (14)
- 駆動周波数によってバンクモードが異なるメモリ手段と、
第一駆動周波数における第一バンクモードと、
第一駆動周波数より高周波な第二駆動周波数における第二バンクモードのいずれかにバンクモードを切り替えるバンクモード切り替え手段と、
前記メモリ手段へのアクセス要求を出すメモリマスター手段と、
前記メモリマスター手段から要求される前記メモリ手段への書き込みデータ列を前記メモリ手段の最小アクセス単位で複数のデータブロックに分割するデータブロック分割手段と、
それぞれのデータブロックに対応したコマンドを発行するコマンド発行手段と、
を有し、
隣接する前記データブロックを、異なるバンクグループに連続して交互に書き込むことを特徴とするメモリ制御装置。 - 前記コマンド発行手段は、1つのデータブロックごとにコマンドを発行する第一コマンドと、2つのデータブロックごとにコマンドを発行する第二コマンドと、を有し、
第一コマンド発行手段と第二コマンド発行手段を前記メモリマスター手段からの要求に応じて切り替えることを特徴とする請求項1に記載のメモリ制御装置。 - 前記第二バンクモードにおいて、
第一データブロックに隣接する第二データブロックと、前記第二データブロックに隣接する第三データブロックと、前記第三データブロックに隣接する第四データブロックを前記第一データブロック、前記第二データブロック、前記第三データブロック、前記第四データブロックの順に連続して前記メモリ手段のデータラインに流し、
前記第一コマンド、或いは前記第二コマンドを連続発行して前記第一データブロックと前記第三データブロックを、第一バンクグループに書き込み、
前記第二データブロックと前記第四データブロックを、第二バンクグループに書き込むことを特徴とする請求項1又は2に記載のメモリ制御装置。 - 前記第一バンクモードにおいて、前記第一データブロックと前記第二データブロックと前記第三データブロックと前記第四データブロックを前記第一データブロック、前記第三データブロック、前記第二データブロック、前記第四データブロックの順に並び替えて前記メモリ手段のデータラインに流し、
前記第一コマンド、或いは前記第二コマンドを連続発行して前記第一データブロックと前記第三データブロックを、第一バンクに書き込み、
前記第二データブロックと前記第四データブロックを、第二バンクに書き込むことを特徴とする請求項1又は2に記載のメモリ制御装置。 - 前記第一バンクは、前記第二バンクモードにおいて前記第一バンクグループに属したバンクで、前記第二バンクは、前記第二バンクモードにおいて前記第二バンクグループに属したバンクであることを特徴とする請求項4に記載のメモリ制御装置。
- 前記メモリ手段からデータ列のデータブロックを読み出す読み出し手段をさらに備え、前記第二バンクモードにおいて、前記第一バンクグループに格納されている前記第一データブロックと前記第三データブロックを前記第二コマンドで読み出し、
前記第二バンクグループに格納されている前記第二データブロックと前記第四データブロックを前記第二コマンドで読み出し、
読み出したデータブロックが前記第一データブロック、前記第二データブロック、前記第三データブロック、前記第四データブロックの順で前記メモリ手段から出力するように前記第二コマンドを連続発行することを特徴とする請求項1又は2に記載のメモリ制御装置。 - 前記メモリ手段からデータ列のデータブロックを読み出す読み出し手段をさらに備え、
前記第一バンクモードにおいて、前記第一バンクグループに格納されている前記第一データブロックと前記第三データブロックを前記第二コマンドで前記メモリ手段から読み出し、
その後、前記第二バンクグループに格納されている前記第二データブロックと前記第四データブロックを前記第二コマンドで前記メモリ手段から読み出し、
読み出したデータブロックを前記第一データブロック、前記第二データブロック、前記第三データブロック、前記第四データブロックの順に並び替えて前記メモリマスター手段にデータを返すことを特徴とする請求項1又は2に記載のメモリ制御装置。 - 前記第一バンクモードにおいて、第一データ列のデータブロックを前記第一バンクに書き込み、
前記第一データ列とアドレスが隣接する第二データ列のデータブロックを前記第二バンクに書き込むことを特徴とする請求項1もしくは2、又は請求項5に記載のメモリ制御装置。 - 前記メモリ手段からデータ列のデータブロックを読み出す読み出し手段をさらに備え、前記第一バンクモードにおいて、前記第一バンクから前記第一データ列を前記第一コマンド、或いは前記第二コマンドを連続発行して読み出し、
前記第二バンクモードにおいて、前記第一バンクグループから前記第一データ列のデータブロックを前記第一コマンド、或いは前記第二コマンドを発行し読み出し、
前記メモリマスター手段の要求に依らず、連続して前記第二バンクグループから前記第二データ列のデータブロックを前記第一コマンド、或いは前記第二コマンドを発行し読み出し、
異なるバンクグループのデータブロックを連続して交互に読み出すことを特徴とする請求項8に記載のメモリ制御装置。 - 同時に読み出した前記第二データ列のデータブロックを一時保持する保持手段を有し、前記メモリマスター手段から、前記第二データ列の読み出し要求が来た時に、前記保持手段に格納されたデータを返すことを特徴とする請求項8又は9に記載のメモリ制御装置。
- 前記メモリ手段において、データブロック単位でバンクグループをインタリーブしてデータ配置する第一領域とデータ列単位でバンクグループをインタリーブしてデータ配置する第二領域を論理アドレス空間として定め、
前記第一バンクモードでは、前記第一領域にアクセスし、前記第二バンクモードでは、前記第二領域にアクセスすることを特徴とする請求項1乃至10のいずれか1項に記載のメモリ制御装置。 - 前記メモリ手段において、領域毎に最後に書き込みアクセスした際の、データ配置が前記第一領域か前記第二領域かを記録しておくデータ配置記録手段を有し、
前記メモリ手段よりデータを読み出す際に、前記データ配置記録手段の記録情報より、読み出し方法を切り替えることを特徴とする請求項1乃至10のいずれか1項に記載のメモリ制御装置。 - 撮像装置に設けられ、画像を一時的に記録するメモリ手段を制御するメモリ制御装置であって、
前記同期型メモリを制御するメモリ制御部は、前記撮像装置の撮影待機状態において前記同期型メモリのステートを第1ステートに遷移させ、撮影者を検知したら前記同期型メモリのステートを第2ステートに遷移させ、その後、撮影開始指示が前記撮像装置に入力されたことに応じて前記同期型メモリのステートを第3ステートに遷移させることを特徴とするメモリ制御装置。 - 撮像装置に設けられ、画像を一時的に記録するメモリ手段を制御するメモリ制御装置であって、
前記メモリ手段に書きこむ画像データを8バイト単位でデータ変換する変換手段と、前記データ変換された画像データを前記メモリ手段に書き込む制御手段と、を備えることを特徴とするメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020054625A JP2021157295A (ja) | 2020-03-25 | 2020-03-25 | メモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020054625A JP2021157295A (ja) | 2020-03-25 | 2020-03-25 | メモリ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021157295A true JP2021157295A (ja) | 2021-10-07 |
Family
ID=77918387
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020054625A Pending JP2021157295A (ja) | 2020-03-25 | 2020-03-25 | メモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021157295A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4246337A1 (en) * | 2022-03-14 | 2023-09-20 | MediaTek Inc. | Electronic system and method for controlling burst length to access memory device of electronic system |
-
2020
- 2020-03-25 JP JP2020054625A patent/JP2021157295A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4246337A1 (en) * | 2022-03-14 | 2023-09-20 | MediaTek Inc. | Electronic system and method for controlling burst length to access memory device of electronic system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8904069B2 (en) | Data processing apparatus and image processing apparatus | |
US11385832B2 (en) | Memory controller and method performed by the memory controller | |
JP2015109037A (ja) | 画像処理装置 | |
JP6263025B2 (ja) | 画像処理装置及びその制御方法 | |
JP2021157295A (ja) | メモリ制御装置 | |
JP2007257774A (ja) | メモリ制御装置 | |
JP6098366B2 (ja) | 画像データ処理装置及び画像データ処理方法 | |
JP2008172410A (ja) | 撮像装置、画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体 | |
US11783880B2 (en) | Operating method of memory device for extending synchronization of data clock signal, and operating method of electronic device including the same | |
WO2009081551A1 (ja) | メモリ装置及びその制御方法 | |
JP6210742B2 (ja) | データ処理装置およびデータ転送制御装置 | |
JP2000013639A (ja) | 画像信号処理装置 | |
JP2006109224A (ja) | 撮像装置 | |
JP5623150B2 (ja) | 電子機器及びその制御方法 | |
EP4057286A1 (en) | Operating method of memory device for extending synchronization of data clock signal, and operating method of electronic device including the same | |
JPH07311842A (ja) | 画像記憶装置 | |
JP4930825B2 (ja) | 撮像装置及びデータ転送装置 | |
JP4633078B2 (ja) | カラー画像処理装置および画像メモリアクセス制御方法 | |
JP4666980B2 (ja) | データ処理装置 | |
JP2008269348A (ja) | メモリ制御装置およびメモリ制御方法 | |
JP2008021335A (ja) | 不揮発性記憶装置、不揮発性記憶装置の書込み方法およびコントローラ | |
JP2020030521A (ja) | 画像処理装置 | |
JP6124615B2 (ja) | メモリ制御装置、メモリ制御方法およびメモリ制御装置を有する撮像装置 | |
JP2002091823A (ja) | 画像表示装置に使用されるメモリ制御装置 | |
JP2021096739A (ja) | メモリ制御装置、メモリ制御方法および撮像装置 |