(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024064625
(43)【公開日】2024-05-14
(54)【発明の名称】メモリ制御システム、DRAM、メモリ制御装置、メモリ制御方法
(51)【国際特許分類】
G06F 12/02 20060101AFI20240507BHJP
【FI】
G06F12/02 580J
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022173360
(22)【出願日】2022-10-28
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110000567
【氏名又は名称】弁理士法人サトー
(72)【発明者】
【氏名】羅 炯竣
(72)【発明者】
【氏名】滝澤 哲郎
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA03
5B160AB17
(57)【要約】
【課題】比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上や低消費電力化を図ることができるメモリ制御システム、DRAM、メモリ制御装置、メモリ制御方法を提供する。
【解決手段】一態様によるメモリ制御システム10は、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM11と、DRAM11へのアクセス元であるマスタ16から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位でのDRAM11へのアクセスを制御するメモリ制御装置12と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM(11)と、
前記DRAMへのアクセス元であるマスタ(16)から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位での前記DRAMへのアクセスを制御するメモリ制御装置(12)と、
を備えるメモリ制御システム。
【請求項2】
前記DRAMに設定可能なバースト長の最大値を最大バースト長とすると、
前記メモリ制御装置は、要求されたデータ量に応じて1から最大バースト長の範囲でバースト長を設定することにより、アクセス単位を設定する請求項1に記載のメモリ制御システム。
【請求項3】
前記DRAMに設定可能なバースト長の最大値を最大バースト長とし、1から最大バースト長までの数値のうち2のべき乗になっているいずれかの数値をNとすると、
前記メモリ制御装置は、バースト長を最大バースト長/Nに設定することにより、アクセス単位を設定する請求項1に記載のメモリ制御システム。
【請求項4】
前記DRAMは、設定されたアクセス単位を超える範囲におけるメモリセル(112)へのアクセスを内部的にマスクする請求項1から3のいずれか一項に記載のメモリ制御システム。
【請求項5】
バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM。
【請求項6】
設定されたアクセス単位を超える範囲におけるメモリセル(112)からのデータの読み出し、又は、メモリセルへのデータの書き込みを内部的にマスクする請求項5に記載のDRAM。
【請求項7】
バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM(11)を制御するものであって、
前記DRAMへのアクセス元であるマスタ(16)から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位での前記DRAMへのアクセスを制御するメモリ制御装置。
【請求項8】
バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM(11)へのアクセスを制御する方法であって、
前記DRAMへのアクセス元であるマスタ(16)から要求されたデータ量に応じてアクセス単位を設定する工程と、
設定したアクセス単位での前記DRAMへのアクセスを制御する工程と、
を含むメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、DRAM(Dynamic Random Access Memory)、DRAMを制御するメモリ制御システム、メモリ制御装置、メモリ制御方法に関する。
【背景技術】
【0002】
従来、高速なデータ処理をするために、SoC(System on a chip)メモリの大規模化、高速化が進められてきた。このうち、DRAMは、システムバスの動作周波数を上げたりデータ転送用のバス幅を広くしたりすることにより、データ転送の高速化や大容量化が図られてきた。そして、例えば特許文献1では、DDR標準のDDR2やDDR3を対象とし、比較的小さなデータへのアクセスが行われる際には基本となるバースト長の半分でのアクセスを可能にすることによって、データの転送効率の向上を図ることが提案されている。なお、DDRは、Double Data Rateの略である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、近年では、データ転送のさらなる高速化や大容量化のために、また、消費電力を低減するために、LPDDRテクノロジ標準のDRAMの採用が広まりつつある。なお、LPDDRは、Low Power Double Data Rateの略である。このLPDDRテクノロジ標準のDRAMは、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位が、DDR標準のものよりも増加している。なお、アクセス単位は、平易に言えば、1回のバーストアクセスで読み込み又は書き込みが行われるデータ量に相当する。
【0005】
例えば、詳細は後述するが、DDR2のアクセス単位は、バス幅が1byteであり、バースト長が4bitであるため4byteになっている。また、DDR3のアクセス単位は、バス幅が1byteであり、バースト長が8bitであることから8byteになっている。
【0006】
これに対して、LPDDR3のアクセス幅は、バス幅が4byteであり、バースト長が8bitであることから32byteになっている。また、LPDDR4のアクセス単位は、バス幅が2byteであり、バースト長が16bitであることから32byteになっている。また、LPDDR5のアクセス単位は、バス幅が2byteであり、バースト長が32bitであることから64byteになっている。
【0007】
しかしながら、SoCで行われる処理によっては、上記したようなアクセス単位の増加が、逆にデータ転送の無駄を発生させてしまうおそれがある。例えば、近年のDNN(Deep Neural Network)の量子化技術や画像圧縮技術の場合、一部の演算において1回の演算に用いるデータ量を例えば2byteや4byte程度まで削減することにより、認識精度や画質を維持しつつ演算量を削減することを可能にしている。
【0008】
しかし、DRAMのアクセス単位が増加したことに伴い、比較的小さいデータを必要とする演算であっても、必要ないデータへのアクセスも行われてしまうことから、SoC側で演算に用いるデータ量を削減したことの効果が薄れてしまう。また、必要ないアクセスが行われることによって無駄な消費電力も発生してしまう。そして、このようなデメリットは、アクセス単位が増加するほど顕著になる。
【0009】
本開示は、上記した事情に鑑みてなされたものであり、その目的は、比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上や低消費電力化を図ることができるメモリ制御システム、DRAM、メモリ制御装置、メモリ制御方法を提供することにある。
【課題を解決するための手段】
【0010】
本開示の一態様によるメモリ制御システム(10)は、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM(11)と、DRAMへのアクセス元であるマスタ(16)から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位でのDRAMへのアクセスを制御するメモリ制御装置(12)と、を備える。これにより、比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上や低消費電力化を図ることができる。
【図面の簡単な説明】
【0011】
【
図1】第1実施形態によるメモリ制御システムの電気的構成を模式的に示す図
【
図3】従来型DRAMのメモリ構成および発生する課題を説明する図
【
図5】アクセス例を従来型DRAMと対比させて説明する図
【発明を実施するための形態】
【0012】
以下、複数の実施形態について図面を参照しながら説明する。また、各実施形態において説明が共通する部位については同一符号を付すものとする。
【0013】
(第1実施形態)
図1に示すように、本実施形態のメモリ制御システム10は、DRAM11と、DRAM11へのアクセスを制御するメモリ制御装置12とを備えている。DRAM11とメモリ制御装置12との間は、システムバス13によって接続されている。また、メモリ制御装置12は、本実施形態ではSoC14の内部に設けられている。このSoC14は、本実施形態では車両に搭載される車両用装置15を構成するものであり、DRAM11へのアクセス元となる複数のマスタ16を備えている。これらのマスタ16は、メモリ制御装置12と内部バス17によって接続されている。ただし、
図1に示す構成やメモリ制御システム10の適用例は一例である。
【0014】
DRAM11は、システムバス13に同期して動作するものであり、バーストアクセスが可能に構成されている。バーストアクセス自体は周知技術であるため説明は省略するが、DRAM11は、基本的には一般的なDDR標準やLPDDRテクノロジ標準のものと同様の態様でバーストアクセスが行われる。
【0015】
また、DRAM11は、メモリ制御装置12からのコマンドの受け付け、メモリセル112からのデータの読み出し、および、メモリセル112へのデータの書き込みなどを制御するI/Oバッファなどで構成された入出力制御ブロック111と、複数のメモリセル112を有するセルアレイ113などで構成されている。
【0016】
また、DRAM11は、一般的なDDR標準やLPDDRテクノロジ標準のものとは異なり、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能に構成されている。このとき、外部からの設定は入出力制御ブロック111によって受け付けられる。また、本実施形態では、アクセス単位の設定はメモリ制御装置12によって行われる。
【0017】
具体的には、DRAM11は、
図2に1/1モード、1/2モード、1/4モード、1/8モードおよび1/16モードとして示すように、異なるアクセス単位でのアクセスが可能に構成されている。なお、
図2では、1つの白丸が1byteのデータを示し、図示上下方向に並んでいる白丸の数がデータ転送用のバス幅に相当し、図示左右方向に並んでいる白丸の数が1回のバーストアクセス時のバースト長を示し、白丸を囲む枠がアクセス単位を示している。以下、バースト長をBL(Burst Length)とも称する。
【0018】
例えば、DRAM11は、1/1モードの場合、バス幅が2byteであり、バースト長が32bitであり、アクセス単位が64byteでのアクセスが可能になる。この1/1モードは、DRAM11の基本的なアクセス単位を示すものであり、このときのバースト長が最大バースト長となる。つまり、DRAM11の基本的なアクセス単位は64byteであり、最大バースト長は本実施形態では32bitとなっている。
【0019】
この1/1モードの場合、DRAM11は、後述する
図3に示すLPDDR5と類似したメモリ構造となっている。そのため、DRAM11は、基本的なピンアサインやパッケージについてはLPDDR5と概ね共通したものにすることができる。以下、DRAM11の基本的なアクセス単位を基本単位(ReqS)とも称し、最大バースト長をBLmaxとも称する。
【0020】
また、DRAM11は、1/2モードの場合、バス幅が2byteであり、バースト長が16bitであり、アクセス単位が32byteでのアクセスが可能になる。つまり、1/2モードでは、アクセス単位が基本単位の1/2となっている。
【0021】
また、DRAM11は、1/4モードの場合、バス幅が2byteであり、バースト長が8bitであり、アクセス単位が16byteでのアクセスが可能になる。つまり、1/4モードでは、アクセス単位が基本単位の1/4となっている。
【0022】
また、DRAM11は、1/8モードの場合、バス幅が2byteであり、バースト長が4bitであり、アクセス単位が8byteでのアクセスが可能になる。つまり、1/8モードでは、アクセス単位が基本単位の1/8となっている。
【0023】
また、DRAM11は、1/16モードの場合、バス幅が2byteであり、バースト長が2bitであり、アクセス単位が4byteでのアクセスが可能になる。つまり、1/16モードでは、アクセス単位が基本単位の1/16となっている。
【0024】
メモリ制御装置12は、DRAM11へのアクセス元であるマスタ16から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位でのDRAM11へのアクセスを制御するものである。以下、DRAM11の基本的なアクセス単位を基本単位(ReqS)とも称し、最大バースト長をBLmaxとも称する。
【0025】
メモリ制御装置12は、
図1に示すように、監視ブロック121、設定ブロック122、発行ブロック123、制御ブロック124などを備えている。監視ブロック121は、具体的な処理については後述するが、DRAM11へのアクセス元となるマスタ16からのデータの要求命令などを監視しており、マスタ16が要求しているデータ量を要求サイズ(Req)として取得する機能部である。
【0026】
このとき、マスタ16としては、例えばCPU、オペレーティングシステム、アプリケーション、SoC14に実装されているDNNの量子化回路や画像圧縮回路などの内部回路や周辺回路などが想定される。ただし、マスタ16となり得るのは例示したものに限定されない。
【0027】
設定ブロック122は、監視ブロック121で取得された要求サイズに応じて、DRAM11にアクセスする際のアクセス単位を設定する機能部である。
【0028】
発行ブロック123は、バーストアクセスのための基本コマンドの発行と、アクセス単位のDRAM11への設定とを行う機能部である。このとき、なお、アクセス単位のDRAM11への設定は、基本コマンドとして使われていない組み合わせの命令として、コマンドとして発行することができる。あるいは、上記したようにLPDDR5と類似したピンアサインとなっているため、LPDDR5における未使用ピンの数本をアクセス単位の設定用ピンとして割り当ることにより、設定されたアクセス単位をDRAM11側で認識できる構成とすることもできる。
【0029】
制御ブロック124は、DRAM11から読み取られたデータ又はDRAM11に書き込みデータの送受信を制御する機能部である。
【0030】
次に、上記した構成の作用および効果について説明する。
まず、あくまでも一例ではあるが、DDR標準やLPDDRテクノロジ標準のメモリの具体的な利用形態とその問題点とについて説明する。以下、本実施形態のDRAM11およびSoC14と区別して示すために、従来のものを便宜的に従来型DRAM、従来型SoCと称する。
【0031】
近年、自動車分野においては、先進運転支援システム(以下、ADAS(Advanced Driver Assistance Systems)と称する)や自動運転(以下、AD(Autonomous Driving System)と称する)の実用化に向けた研究、開発が世界的に進められている。例えば、欧州のEuro NCAP(European New Car Assessment Programme)のような新車の安全性評価基準では、自動緊急ブレーキが評価項目に追加され、その後、歩行者が追加され、さらには、夜間の歩行者やサイクリストなども評価対象に追加されている。そして、このような新車の安全性評価基準にも後押しされ、ADAS/ADの開発が進められた結果、ADAS/ADを巡る技術が急速に発展している。
【0032】
ところで、ADASは、センサなどで取得した認識情報を元に判断/計画を行い、それに従って車両の制御が行われる。そのため、自動運転車両には、それらの演算を行うものとして、自動運転用の従来型SoCが搭載されている。このような従来型SoCは、膨大なデータの処理を行っており、それらの処理データの一時記憶手段として、大容量化を図りやすい揮発性メモリである従来型DRAMを使用している。このため、自動運転システムは、従来型SoCとともに従来型DRAMを搭載している。
【0033】
ただし、自動運転車両では、リアルタイムに処理を行う必要がある。そのため、従来型SoCと従来型DRAMともに演算の大規模化、高速化が進められてきている。そのうち、従来型DRAMは、システムバス13の動作周波数を上げたり、データバスのバス幅を広くしたりする方向で開発が進められてきた。
【0034】
また、自動運転車両における演算には、上記したようにリアルタイム性が求められており、処理や制御を規定の時間内に終わらせる必要がある。そのため、自動運転用のシステムでは、特に高いデータ転送能力が求められている。それと同時に、自動運転用のシステムでは、発熱の観点から低消費電力化も求められている。そのため、自動運転用には、高いデータ転送能力と、低い消費電力という両方の特性を満たせるLPDDRが採用されることがある。
【0035】
ただし、LPDDRも含めたDDR型のものは、I/Oバッファとメモリコアとの間で複数ビットのデータをパラレルに入出力させ、I/Oバッファとデータバスとの間でシリアルにデータを入出力させる動作を行っているため、基本となるアクセス単位、つまりは、1回のバーストサクセスにおいて最小となるアクセス単位が存在している。
【0036】
具体的には、
図3に参考構成例として示すように、従来型DRAMの一例であるDDR2のアクセス単位は4byteであり、DDR3のアクセス単位は8byteであり、LPDDR3のアクセス単位は32byteであり、LPDDR4のアクセス単位は64byteであり、LPDDR5のアクセス単位は64byteである。なお、
図3に示す白丸やそれを囲む枠の意味は
図2と共通する。なお、
図3に示すように、本実施形態のDRAM11のメモリ構造は、LPDDR5と類似したものになっている。また、
図3ではアクセス単位を対比して示しており、1回のバーストアクセスに要する時間はシステムバス13の動作周波数によって異なっている。
【0037】
さて、従来型SoCでは、いくつかの処理において、部分的又は一時的にデータ量を減らす技術が使用されることがある。例えば、認識情報を取得するために画像認識を行う場合には、DNN(Deep Neural Network)の量子化技術や、画像の圧縮技術を使用することがある。そして、それらの技術を使用することにより、一部の演算においては、演算に用いるデータ量を例えば2byteや4byte程度に削減しつつ、認識精度や画質を維持しながら演算量を削減している。ただし、データ量を削減する技術は、例示したDNNの量子化や画像の圧縮に限らず、他の技術にも該当する。
【0038】
その場合、従来型DRAMについては動作の変更が無く、従来型SoCに例示したような技術の導入が進んだ場合、実際に従来型DRAMから読み出したい、または、従来型DRAMに書き込みたいデータ量である要求サイズ(Req)が、アクセス単位を大きく下回るおそれがある。
【0039】
例えば、
図3に参考アクセス例のその1として示すように、LPDDR4にアクセスする際の要求サイズが4byteであったとする。この場合、LPDDR4のアクセス単位は32byteであるため、M回目のバーストアクセスにおいて必要となるアクセスは、バースト長で言えば最初の2bit分である。しかし、従来型DRAMの場合には、残りの14bit分についてもアクセスが行われるため、その14bit分が不要なアクセスになってしまう。
【0040】
そして、不要なアクセスが発生すると、データの転送効率が実質的に劣化してしまうとともに、無駄な消費電力が発生することになる。これは、M+1回目のバーストアクセスについても同様である。
【0041】
また、参考アクセス例のその2として示すように、LPDDR5にアクセスする際には、アクセス単位は64byteである。そのため、M回目のバーストアクセスにおいて必要となるアクセスは、バースト長で言えば最初の2bit分であり、残りの30bit分は不要なアクセスとなる。これは、M+1回目のバーストアクセスについても同様である。
【0042】
あるいは、参考アクセス例のその3として示すように、LPDDR4に対してアクセスを跨ぐようなデータが必要になった場合には、M回目のバーストアクセスとM+1回目のバーストアクセスにおいて、それぞれ15bit分が不要なアクセスとなる。なお、実際にはこのようなアクセスはプログラミングによって回避すると考えられるが、ここでは発生し得る可能性として例示している。
【0043】
このとき、データの転送効率が劣化することを避けるために、例えば時分割でデータ転送を行ったり、前述のように本来の半分のバースト長でのアクセスを可能にしたりしたとする。その場合、例えばDDR2やDDR3のようにバースト長が相対的に短いものであれば、ある程度の改善を見込めるものと考えられる。
【0044】
しかし、LPDDRテクノロジ標準のようにデータのバス幅が相対的に広かったり、バースト長が相対的に長かったりする場合には、アクセス単位が大きいことから、仮にバースト長を半分にしても、2byteや4byteといった比較的データ量が小さいアクセスについては、転送効率や消費電力の改善が困難である。
【0045】
このように、現状では、アクセス単位が増加したことに伴って、比較的小さいデータを必要とする演算であっても、必要ないデータへのアクセスも行われてしまう。その結果、SoC14側で演算に用いるデータ量を削減したことの効果が薄れてしまう。また、必要ないアクセスが行われることによって無駄な消費電力も発生してしまう。
【0046】
そして、I/Oの高速化が進むほどアクセス単位が大きくなるため、LPDDR4やLPDDR5あるいは今後想定される他のメモリにとっては、このようなデメリットがより顕著に表れることになる。そこで、本実施形態では、比較的小さいデータのアクセスが行われる際のデータの転送効率の向上と低消費電力化とを図っている。
【0047】
メモリ制御装置12は、
図3に制御方法を示すように、マスタ16からの要求サイズ(Req)と、DRAM11の基本単位(ReqS)とに基づいてアクセス単位を設定する。このアクセス単位の設定は、設定ブロック122によって行われる。このとき、メモリ制御装置12は、1から最大バースト長までの数値のうち2のべき乗になっているいずれかの数値をNとすると、バースト長を最大バースト長/Nに設定することにより、アクセス単位を設定する。
【0048】
例えば、最大バースト長が32bitの場合、Nは、1、2、4、8、16、32のいずれかである。そして、本実施形態では、メモリ制御装置12は、N=1、N=2、N=4、N=8またはN=16のいずれかに対応するアクセス単位を設定している。これは、設定されるアクセス単位が5種類となり、その5種類を区別するために必要なbit数は3であることから、例えばDRAM11にアクセス単位を設定するために必要となる設定用ピンの数などを削減することができるためである。
【0049】
また、
図3では理解し易くするためにフローチャート形式で示しているが、設定ブロック122は複数の比較器などで構成され、それぞれにおいて例えば基本単位/2や基本単位/4といった所定のデータ量と要求サイズとを並列で比較する。そのため、それぞれの比較結果の組み合わせに基づいてアクセス単位を特定できることから、アクセス範囲の設定は、概ね1クロック程度で行うことができる構成となっている。
【0050】
さて、メモリ制御装置12は、マスタ16からの要求サイズを取得し(S1)、例えば要求サイズが基本単位の1/2よりも大きい場合には(S2:NO)、アクセス単位を基本単位に設定する(S3)。この場合、メモリ制御装置12は、
図2に示す1/1モードの状態、つまりは、バースト長が32bitとなる64byteの範囲をアクセス単位として設定し、アクセス制御を行う(S12)。なお、アクセス制御では、メモリ制御装置12は、発行ブロック123からコマンドとして、あるいは、専用の設定用ピンに信号を出力しつつ、DRAM11に対してバーストアクセスが行われる。
【0051】
そして、DRAM11は、入出力制御ブロック111において、設定されたアクセス単位に必要となるバースト長を特定して内部的に動作し、そのアクセス単位でのデータの読み出し又はデータの書き込みを可能にする。これにより、
図5に指定長アクセス例その1として示すように、黒丸にて示す要求サイズが例えば48byteであった場合には、基本単位(64byte)の1/2よりも大きいことから、バースト長(BL)が最大バースト長(BLmax)に設定され、アクセス単位が64byteに設定されることになる。この場合、比較例として示す従来型DRAMと同様に、基本単位でのアクセスが行われることになる。
【0052】
また、メモリ制御装置12は、要求サイズが基本単位の1/2よりも小さく(S2:YES)、且つ、基本単位の1/4よりも大きい場合には(S4:NO)、アクセス単位を基本単位/2に設定する(S5)。この場合、メモリ制御装置12は、
図2に示す1/2モードの状態、つまりは、バースト長が16bitとなる32byteの範囲をアクセス単位として設定する。
【0053】
これにより、
図5に指定長アクセス例その2として示すように、黒丸にて示す要求サイズが例えば28byteであった場合には、基本単位の1/2よりも小さく、且つ、基本単位の1/4よりも大きいことから、バースト長が最大バースト長/2に設定され、アクセス単位が32byteに設定されることになる。この場合、比較例として示す従来型DRAMでは基本単位でのバーストアクセスが行われるのに対して、その半分のアクセス単位でのアクセスが可能になる。つまり、データの転送効率と低消費電力化とを実現できる。
【0054】
また、メモリ制御装置12は、要求サイズが基本単位の1/4よりも小さく(S2:YES、S4:YES)、且つ、基本単位の1/8よりも大きい場合には(S6:NO)、アクセス単位を基本単位/4に設定する(S7)。この場合、メモリ制御装置12は、
図2に示す1/4モードの状態、つまりは、バースト長が8bitとなる16byteの範囲をアクセス単位として設定する。
【0055】
これにより、
図5に指定長アクセス例その3として示すように、黒丸にて示す要求サイズが例えば15byteであった場合には、基本単位の1/4よりも小さく、且つ、基本単位の1/8よりも大きいことから、バースト長が最大バースト長/4に設定され、アクセス単位が16byteに設定されることになる。この場合、比較例として示す従来型DRAMでは基本単位でのバーストアクセスが行われるのに対して、その1/4のアクセス単位でのアクセスが可能になる。つまり、データの転送効率と低消費電力化とを実現できる。
【0056】
また、メモリ制御装置12は、要求サイズが基本単位の1/8よりも小さく(S2:YES、S4:YES、S6:YES)、且つ、基本単位の1/16よりも大きい場合には(S8:NO)、アクセス単位を基本単位/8に設定する(S9)。この場合、メモリ制御装置12は、
図2に示す1/8モードの状態、つまりは、バースト長が4bitとなる8byteの範囲をアクセス単位として設定する。
【0057】
これにより、
図5に指定長アクセス例その4として示すように、黒丸にて示す要求サイズが例えば6byteであった場合には、基本単位の1/8よりも小さく、且つ、基本単位の1/16よりも大きいことから、バースト長が最大バースト長/8に設定され、アクセス単位が8byteに設定されることになる。この場合、比較例として示す従来型DRAMでは基本単位でのバーストアクセスが行われるのに対して、その1/8のアクセス単位でのアクセスが可能になる。つまり、データの転送効率と低消費電力化とを実現できる。
【0058】
また、メモリ制御装置12は、要求サイズが基本単位の1/16よりも小さい場合には(S2:YES、S4:YES、S6:YES、S8:YES)、アクセス単位を基本単位/16に設定する(S10)。この場合、メモリ制御装置12は、
図2に示す1/16モードの状態、つまりは、バースト長が2bitとなる4byteの範囲をアクセス単位として設定する。
【0059】
これにより、
図5に指定長アクセス例その5として示すように、黒丸にて示す要求サイズが例えば4byteであった場合には、基本単位の1/16よりも小さいことから、バースト長が最大バースト長/16に設定され、アクセス単位が4byteに設定されることになる。この場合、比較例として示す従来型DRAMでは基本単位でのバーストアクセスが行われるのに対して、その1/16のアクセス単位でのアクセスが可能になる。つまり、データの転送効率と低消費電力化とを実現できる。
【0060】
このように、メモリ制御システム10は、マスタ16から要求されたデータ量に応じてアクセス単位を設定可能とすることにより、比較的小さいデータのアクセスが行われる際のデータの転送効率の向上と低消費電力化とを図っている。
【0061】
以上説明した実施形態によれば、次のような効果を得ることができる。
メモリ制御システム10は、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM11と、DRAM11へのアクセス元であるマスタ16から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位でのDRAM11へのアクセスを制御するメモリ制御装置12とを備えている。
【0062】
これにより、DRAM11へのアクセス単位をデータ量に応じて設定することが可能となることから、比較的小さいデータが要求されている際にはアクセス単位を小さく設定することが可能になる。したがって、不要なアクセスが発生することを抑制でき、比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上と低消費電力化とを図ることができる。
【0063】
また、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM11へのアクセスを制御する方法であって、DRAM11へのアクセス元であるマスタ16から要求されたデータ量に応じてアクセス単位を設定する工程と、設定したアクセス単位でのDRAM11へのアクセスを制御する工程と、を含むメモリ制御方法によっても、比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上と低消費電力化とを図ることができる。
【0064】
また、メモリ制御装置12は、DRAM11に設定可能なバースト長の最大値を最大バースト長とし、1から最大バースト長までの数値のうち2のべき乗になっているいずれかの数値をNとすると、バースト長を最大バースト長/Nに設定することにより、アクセス単位を設定する。つまり、メモリ制御装置12は、設定可能なアクセス単位の種類を予め規定している。
【0065】
これにより、マスタ16から要求されたデータ量に応じたDRAM11へのアクセスが可能となり、データの転送効率の向上と低消費電力化とを図ることができる。この場合、必要なデータ量のアクセスができる最小のアクセス単位を設定することにより、データの転送効率の向上と低消費電力化とをさらに促進することができる。さらに、設定可能なアクセス単位の種類が少なくなるため、DRAM11にアクセス単位を設定するために必要になるbit数を削減することができる。そのため、例えば設定用ピンの数や接続するための配線数を削減できるなど、実装上の大きなメリットを得ることができる。
【0066】
また、例えば量子化されたDNNの演算を行うときのようにSoC14において部分的または一時的にデータ量を減らした演算が行われる場合には、演算時のメモリ使用量、つまりは、要求されるデータ量を予め見積もっておき、バースト長のアクティブな調整を行うことが可能となり、不要な消費電流を削減することができる。なお、画像圧縮回路のように演算時のメモリ使用量を予測できるものなどについても同様である。
【0067】
さらに、メモリ制御装置12は、DRAM11に設定可能なバースト長の最大値を最大バースト長とすると、要求されたデータ量に応じて1から最大バースト長の範囲でバースト長を設定することにより、アクセス単位を設定する構成とすることができる。このようにマスタ16から要求されたデータ量に応じてバースト長をアクティブに調整することにより、アクセス単位が調整されて不要なデータのアクセスを低減することができ、データの転送効率の向上と低消費電力化とを図ることができる。また、必要なデータ量のアクセスができる最小のアクセス単位を設定することにより、より細かくアクセス単位を設定することができるため、低消費電力化を大きく促進することができる。
【0068】
また、DRAM11は、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能に構成されている。これにより、マスタ16から要求されたデータ量に応じた読み出しや書き込みが可能になり、比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上と低消費電力化とを図ることができる。
【0069】
また、メモリ制御装置12は、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能なDRAM11を制御するものであって、DRAM11へのアクセス元であるマスタ16から要求されたデータ量に応じてアクセス単位を設定し、設定したアクセス単位でのDRAM11へのアクセスを制御する。これにより、マスタ16から要求されたデータ量に応じた読み出しや書き込みが可能になり、比較的小さいデータ量のアクセスが行われる際のデータの転送効率の向上と低消費電力化とを図ることができる。
【0070】
(第2実施形態)
以下、第2実施形態について説明する。第2実施形態の基本的な構成は第1実施形態と共通するため
図1から
図4も参照しながら説明するが、第2実施形態では、DRAM11の機能が第1実施形態と異なっている。
【0071】
メモリ制御装置12は、マスタ16から要求されたデータ量に応じてアクセス単位を設定する。具体的には、メモリ制御装置12は、
図3に示したようにマスタ16からの要求サイズを取得し(S1)、その要求サイズに応じてアクセス単位を基本単位、基本単位/2、基本単位/4、基本単位/8あるいは基本単位/16の何れかに設定する。
【0072】
また、メモリ制御装置12は、本実施形態の場合、設定したアクセス単位に関わらず、最大バースト長でDRAM11にアクセスする。すなわち、メモリ制御装置12は、要求されたデータ量に応じてバースト長を最大バースト長に設定する、または、1から最大バースト長までの数値のうち2のべき乗になっているいずれかの数値をNとすると、N=1を選択してバースト長を最大バースト長/Nに設定する。
【0073】
一方、DRAM11は、入出力制御ブロック111において、設定されたアクセス単位に基づいて必要となるバースト長を特定するとともに、アクセス単位を超える範囲におけるメモリセル112へのアクセスを内部的にマスクする。つまり、本実施形態のDRAM11は、バースト長を変更するのではなく、内部的なメモリセル112への読み書きを制限することにより、低消費電力かを図っている。
【0074】
これにより、
図6にマスクアクセス例その1として示すように、黒丸にて示す要求サイズが例えば48byteであった場合には、アクセス単位が基本単位に設定されることから、1回のバーストアクセスにおいて64byteのデータが読み出し又は書き込みされることになる。この場合、マスクされない非マスク範囲は基本単位と同じになる。
【0075】
また、マスクアクセス例その2として示すように黒丸にて示す要求サイズが例えば28byteであった場合には、アクセス単位が基本単位/2に設定される。そして、アクセス単位の範囲においては非マスク範囲として示すようにデータの読み出し又は書き込みが行われる一方、アクセス単位を超える範囲については、マスク範囲として示すようにデータの読み出し又は書き込みが内部的にマスクされる。なお、
図6では、データの読み出し又は書き込みが内部的にマスクされた状態を、破線の白丸にて模式的に示している。これにより、アクセス単位を超える範囲についてはメモリセル112への内部アクセスが行われないことから、DRAM11内部で消費される電力を削減することができる。
【0076】
また、マスクアクセス例その3として示すように要求サイズが例えば15byteであった場合には、アクセス単位が基本単位/4に設定され、1回のバーストアクセス中における非マスク範囲とマスク範囲との差が大きくなることから、DARAM内部で消費される電力を基本単位でのアクセスに比べて大きく削減することができる。さらに、マスクアクセス例その4として示すように要求サイズが例えば6byteであった場合や、マスクアクセス例その5として示すように要求サイズが例えば4byteであった場合においては、非マスク範囲とマスク範囲との差がさらに大きくなることから、DARAM内部で消費される電力の低減効果がより一層顕著になる。
【0077】
このように、DRAM11は、バーストアクセスが可能であって、1回のバーストアクセスにおいてデータの読み出し又は書き込みが行われる範囲を示すアクセス単位を、外部から設定可能に構成されていて、設定されたアクセス単位を超える範囲におけるメモリセル112へのアクセスを内部的にマスクする構成となっている。
【0078】
これにより、設定されたアクセス単位を超える範囲におけるメモリセル112からのデータの読み出し、又は、メモリセル112へのデータの書き込みが内部的に行われないことから、データ量に応じてDRAM11で消費される電力を削減することができる。したがって、比較的小さいデータ量のアクセスが行われる際、低消費電力化を大きく促進することができる。
【0079】
(その他の実施形態)
各実施形態では1つのDRAM11をメモリ制御装置12で制御する構成を例示したが、複数のDRAM11をメモリ制御装置12で制御する構成とすることができる。また、例えばDIMM(Dual Inline Memory Module)のように複数のDRAM11をモジュール化したメモリモジュールをメモリ制御装置12によって制御する構成とすることができる。
【0080】
また、各実施形態ではメモリ制御装置12をSoC14に実装する構成を例示したが、メモリ制御装置12をSoC14の外部に接続する構成とすることができる。また、DRAM11およびメモリ制御装置12を共にSoC14の内部に実装する構成とすることができる。
【0081】
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することにより提供された専用コンピュータにより実現されても良い。或いは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によりプロセッサを構成することにより提供された専用コンピュータにより実現されても良い。若しくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路により構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより実現されても良い。又、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていても良い。
【符号の説明】
【0082】
図面中、10はメモリ制御システム、11はDRAM、12はメモリ制御装置、16はマスタ、112はメモリセルを示す。