IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

<>
  • -メモリシステム 図1
  • -メモリシステム 図2
  • -メモリシステム 図3
  • -メモリシステム 図4
  • -メモリシステム 図5
  • -メモリシステム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024004543
(43)【公開日】2024-01-17
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G06F 12/06 20060101AFI20240110BHJP
【FI】
G06F12/06 523A
G06F12/06 550B
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022104160
(22)【出願日】2022-06-29
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】羅 炯竣
(72)【発明者】
【氏名】滝澤 哲郎
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CA04
5B160CA12
(57)【要約】
【課題】メモリシステムにおいて、半導体メモリ装置へのメモリアクセス性能の低下を抑制する。
【解決手段】メモリシステム100は、複数のバンクグループBG0~BG15を備える半導体メモリ装置120と、半導体メモリ装置にアクセスする演算装置200から半導体メモリ装置へのアクセス要求に応じてコマンドを発行するメモリコントローラ110と、を備え、メモリコントローラは、アクセス要求のデータのデータ長に応じて、かかるデータへのアクセス時のバースト長であるアクセスバースト長BLaを設定し、複数のバンクグループのうちの互いに異なる複数のバンクグループであって、アクセスバースト長に応じた数の複数のバンクグループであるアクセス先バンクグループに対して並列してアクセスを行う。
【選択図】図1
【特許請求の範囲】
【請求項1】
メモリシステム(100)であって、
複数のバンクグループ(BG0~BG15)を備える半導体メモリ装置(120)と、
前記半導体メモリ装置にアクセスする演算装置(200)から前記半導体メモリ装置へのアクセス要求に応じてコマンドを発行するメモリコントローラ(110)と、
を備え、
前記メモリコントローラは、
前記アクセス要求のデータのデータ長に応じて、かかるデータへのアクセス時のバースト長であるアクセスバースト長(BLa)を設定し、
前記複数のバンクグループのうちの互いに異なる複数のバンクグループであって、前記アクセスバースト長に応じた数の複数のバンクグループであるアクセス先バンクグループに対して並列してアクセスを行う、
メモリシステム。
【請求項2】
請求項1に記載のメモリシステムであって、
前記半導体メモリ装置は、n(nは、2の累乗である整数)個のバンクグループと、n本のデータバス(DB0~DB15)と、を備え、
前記メモリコントローラは、前記アクセスバースト長を、前記半導体メモリ装置の最小アクセス単位のバースト長の1/m(mは、m≦nを満たす2の累乗である整数)の長さに設定する、
メモリシステム。
【請求項3】
請求項1または請求項2に記載のメモリシステムであって、
前記メモリコントローラは、連続する論理アドレスに対応するデータが、前記アクセス先バンクグループのうちの互いに異なるバンクグループへ格納されるように、論理アドレスから物理アドレスへの変換を行う、
メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、メモリシステムに関する。
【背景技術】
【0002】
例えば画像処理等を行うSoC(System on Chip)において、演算を実行するデータ量を抑制する技術の開発が進められている。他方、半導体メモリ装置として用いられるDRAM(Dynamic Random Access Memory)においては最小アクセス単位が存在し、その大きさは、SoCから要求されるデータ量を大幅に上回る。一般的に、半導体メモリ装置に対しては、最小アクセス単位ごとにデータの読み書きが行われる。したがって、要求されたデータともに、アクセスが必要ないデータへのアクセスが発生し、メモリシステムのメモリアクセス性能が低下することが起こり得る。特許文献1に記載のメモリシステムでは、最小アクセス単位のバースト長の半分の長さのデータ長ごとに、半導体メモリ装置が備える2つのバンクグループに対して交互にアクセスすることにより、メモリシステムのメモリアクセス性能の低下を抑制している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開2009/130888号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、近年、最小アクセス単位がより大きな64byteである半導体メモリ装置が存在する。このような半導体メモリ装置については、最小アクセス単位の半分の長さのバースト長ごとにアクセスしてもSoCからアクセスを要求されるデータ量を大幅に上回るため、アクセスが必要ないデータへのアクセスが発生し、メモリアクセス性能が低下するという問題が十分に解決され得ない。
【課題を解決するための手段】
【0005】
本開示は、以下の形態として実現することが可能である。
【0006】
本開示の一形態によれば、メモリシステム(100)が提供される。このメモリシステムは、複数のバンクグループ(BG0~BG15)を備える半導体メモリ装置(120)と、 前記半導体メモリ装置にアクセスする演算装置(200)から前記半導体メモリ装置へのアクセス要求に応じてコマンドを発行するメモリコントローラ(110)と、を備え、前記メモリコントローラは、前記アクセス要求のデータのデータ長に応じて、かかるデータへのアクセス時のバースト長であるアクセスバースト長(BLa)を設定し、前記複数のバンクグループのうちの互いに異なる複数のバンクグループであって、前記アクセスバースト長に応じた数の複数のバンクグループであるアクセス先バンクグループに対して並列してアクセスを行う。
【0007】
この形態のメモリシステムによれば、アクセス要求のデータのデータ長に応じてアクセスバースト長を設定し、アクセスバースト長に応じた数の互いに異なるバンクグループに対して並列してアクセスを行うので、データごとに適切なバースト長で適切な数のバンクグループに対して並列にアクセスを実行でき、不要なデータへのアクセスを抑制して、メモリシステムのメモリアクセス性能の低下を抑制できる。
【図面の簡単な説明】
【0008】
図1】本実施形態のメモリシステムの概略構成を示す説明図である。
図2】本実施形態のメモリアクセス処理の手順を示すフローチャートである。
図3】本実施形態のアクセスバースト長決定処理の手順を示すフローチャートである。
図4】本実施形態のメモリシステムの動作の一例の前半部分を表すタイミングチャートである。
図5】本実施形態のメモリシステムの動作の一例の後半部分を表すタイミングチャートである。
図6】比較例のメモリシステムの動作の一例を表すタイミングチャートである。
【発明を実施するための形態】
【0009】
A.実施形態:
A-1.システム構成:
図1に示すように、本実施形態のメモリシステム100は、メモリコントローラ110と半導体メモリ装置120とを備える。メモリシステム100は、演算装置200から発行されるアクセス要求に応じて、データの読み書きを実行する。演算装置200は、例えば、CPUやGPU(Graphics Processing Unit)が該当する。本実施形態では、演算装置200とメモリコントローラ110とは、SoCの一部として同一のチップに実装されている。また、半導体メモリ装置120は、演算装置200とメモリコントローラ110とが実装されたチップとは異なる他のチップに実装されている。なお、メモリシステム100は、演算装置200に限らず、複数の演算装置200からアクセス要求を受信してもよい。
【0010】
メモリコントローラ110は、バス10を介して演算装置200と接続し、演算装置200から発行される半導体メモリ装置120へのアクセス要求を受信する。また、メモリコントローラ110は、バス20を介して半導体メモリ装置120と接続し、アクセス要求に応じて、半導体メモリ装置120に対してコマンドの発行を行う。メモリコントローラ110は、メモリシステム100の動作の基準となるクロック周期に従って、上述したコマンドの発行を行う。
【0011】
メモリコントローラ110は、アクセス要求に含まれるアクセス対象データのデータ長に応じて、アクセスバースト長BLaを設定する。アクセスバースト長BLaは、アクセス対象データへのアクセス時のバースト長を意味する。アクセスバースト長BLaの設定方法については、後述するアクセスバースト長決定処理において説明する。なお、本実施形態では、アクセス対象データのデータ長に応じてアクセスバースト長BLaを設定するか、予め固定長のバースト長を設定するかは、メモリシステム100の起動時に設定することができる。
【0012】
メモリコントローラ110は、アクセス対象データの論理アドレスから、当該データが格納された半導体メモリ装置120上の格納領域を示す物理アドレスへの変換を行う。論理アドレスから物理アドレスへの変換方法については、後述するメモリアクセス処理において説明する。
【0013】
アクセス要求が、半導体メモリ装置120へのデータの書き込みを要求するライトアクセス要求である場合、メモリコントローラ110は、半導体メモリ装置120に対して、アクセス要求で指定されたアドレス(以下、「アクセス対象アドレス」とも呼ぶ)へのデータの書き込みを指示するライトコマンドを発行する。また、アクセス要求が、半導体メモリ装置120からのデータの読み出しを要求するリードアクセス要求である場合、メモリコントローラ110は、半導体メモリ装置120に対して、アクセス対象アドレスからのデータの読み出しを指示するリードコマンドを発行する。以下、ライトコマンドとリードコマンドとを総称して、「アクセスコマンド」とも呼ぶ。なお、メモリコントローラ110は、少なくとも互いに間隔tCCD_Sのクロック間隔を空けて、複数のアクセスコマンドを順に発行する。間隔tCCD_Sは、半導体メモリ装置120の規格により定められている、互いに異なるバンクグループに属する2つのバンクに対して、2つのリードコマンドまたは2つのライトコマンドを続けて発行できる最短のクロック間隔を意味する。
【0014】
半導体メモリ装置120は、ライトコマンドを受けて、アクセス対象アドレスにデータを格納し保持する。また、半導体メモリ装置120は、リードコマンドを受けて、アクセス対象アドレスに保持していたデータを読み出す。また、半導体メモリ装置120は、アクセスコマンドによりアドレスとともにバースト長が指定された場合には、指定されたアドレスを起点として指定されたバースト長の範囲に属するデータを連続して入出力することができる。半導体メモリ装置120は、データ記憶部121と、データバスDB0~DB15と、パラレル-シリアル変換部122(以下、「P-S変換部122」とも呼ぶ)とを備える。本実施形態の半導体メモリ装置120はLPDDR5であり、半導体メモリ装置120の最小アクセス単位は64byteである。
【0015】
データ記憶部121は、バンクグループBG0~BG15を備える。データ記憶部121が備えるバンクグループの数は2の累乗個であることが好ましい。各バンクグループBG0~BG15は複数のバンクからなり、各バンクは、記憶素子であるメモリセルがマトリクス状に配置されて形成されている。各メモリセルは、メモリコントローラ110から発行されるアクセスコマンドに応じて、データの書き込みおよび読み出しが可能に構成されている。
【0016】
P-S変換部122は、メモリコントローラ110から半導体メモリ装置120へのデータの書き込み時には、バス20を介して、メモリコントローラ110から発行された複数のライトコマンドに含まれるデータをシリアルに受信する。P-S変換部122は、互いに異なる複数のデータバスを介して、互いに異なる複数のバンクグループに対して、受信したデータをパラレルに出力することができる。
【0017】
他方、P-S変換部122は、半導体メモリ装置120からメモリコントローラ110へのデータの読み出し時には、互いに異なる複数のデータバスを介して、リードコマンドによりデータの読み出しを指示された複数のバンクグループから読み出されたデータをパラレルに受信することができる。P-S変換部122は、バス20を介して、メモリコントローラ110に対して、受信したデータをシリアルに出力する。このように、本実施形態では、互いに異なる複数のバンクグループに対するアクセスは、互いに異なる複数のデータバスを用いて、データの書き込みと読み込みとのいずれか一方の同じ種類である複数のアクセスを並列して実行することが可能である。
【0018】
A-2.メモリアクセス処理:
メモリシステム100は、演算装置200からアクセス要求を受けて、データの読み出しと書き込みとのいずれかを行うメモリアクセス処理を実行する。図2のステップS5に示すように、演算装置200から受けたアクセス要求がライトアクセス要求である場合、メモリシステム100は、ステップS10、S20、S30、S40およびS50に示すデータ書込処理を実行する。他方、演算装置200から受けたアクセス要求がリードアクセス要求である場合、メモリシステム100は、ステップS12、S22、S32、S42およびS52に示すデータ読出処理を実行する。
【0019】
データ書込処理において、メモリコントローラ110は、ライトアクセス要求によるアクセス対象データの要求データ長RLと、アクセス対象データの書き込み先を指示する論理アドレスとを取得する(ステップS10)。
【0020】
ステップS20において、メモリコントローラ110は、図3に示す、アクセスバースト長決定処理を実行する。本処理において、メモリコントローラ110は、アクセスバースト長BLaを、半導体メモリ装置120の最小アクセス単位のバースト長(以下、「基本バースト長BL」とも呼ぶ)の1/m(mは、m≦nを満たす2の累乗である整数)の長さに設定する。nは、データ記憶部121が備えるバンクグループの数を意味する。本処理において設定されたアクセスバースト長BLaは、アクセス対象データの論理アドレスに紐づいてメモリコントローラ110に記憶され、後述するデータ読出処理においても、アクセス対象データが書き込まれた際に設定されたアクセスバースト長BLaが用いられる。
【0021】
要求データ長RLの長さが基本バースト長BLの半分以上である場合(ステップS210:Yes)、メモリコントローラ110は、アクセスバースト長BLaを基本バースト長BLの長さに設定する(ステップS212)。
【0022】
要求データ長RLの長さが基本バースト長BLの半分未満(ステップS210:No)、かつ、要求データ長RLの長さが基本バースト長BLの1/4以上である場合(ステップS220:Yes)、メモリコントローラ110は、アクセスバースト長BLaを基本バースト長BLの半分の長さに設定する(ステップS222)。
【0023】
要求データ長RLの長さが基本バースト長BLの1/4未満(ステップS220:No)、かつ、要求データ長RLの長さが基本バースト長BLの1/8以上である場合(ステップS230:Yes)、メモリコントローラ110は、アクセスバースト長BLaを基本バースト長BLの1/4の長さに設定する(ステップS232)。
【0024】
要求データ長RLの長さが基本バースト長BLの1/8未満(ステップS230:No)、かつ、要求データ長RLの長さが基本バースト長BLの1/16以上である場合(ステップS240:Yes)、メモリコントローラ110は、アクセスバースト長BLaを基本バースト長BLの1/8の長さに設定する(ステップS242)。
【0025】
要求データ長RLの長さが基本バースト長BLの1/16未満である場合(ステップS240:No)、メモリコントローラ110は、アクセスバースト長BLaを基本バースト長BLの1/16の長さに設定する(ステップS250)。メモリコントローラ110は、アクセスバースト長BLaの設定後、アクセスバースト長決定処理を終了する。
【0026】
図2のステップS30において、メモリコントローラ110は、設定されたアクセスバースト長BLaに応じて、取得した論理アドレスを物理アドレスへ変換する。変換後に得られる物理アドレスは、上述のアクセス対象アドレスに相当する。本実施形態では、メモリコントローラ110は、予め設定された変換規則に従って、論理アドレスを物理アドレスへ変換する。変換規則はアクセスバースト長BLaによって異なる。例えば、各データのアクセスバースト長BLaの長さが基本バースト長BLの半分であって、各データに割り当てられた論理アドレスが連続する複数のデータは、バンクグループBG0とバンクグループBG1とに交互に格納されるように物理アドレスが定められる。また、各データのアクセスバースト長BLaの長さが基本バースト長BLの1/16であって、各データに割り当てられた論理アドレスが連続する複数のデータは、バンクグループBG0~BG15に順に格納されるように物理アドレスを定められる。このように、本実施形態では、メモリコントローラ110は、アクセスバースト長BLaが基本バースト長BLの1/p(pは、2の累乗である整数)の長さである場合、互いに異なるp個のバンクグループ(以下、「アクセス先バンクグループ」とも呼ぶ)に順にデータが格納されるように、論理アドレスから物理アドレスへの変換を行う。
【0027】
ステップS40において、メモリコントローラ110はライトコマンドを生成し、半導体メモリ装置120へライトコマンドを発行する。ライトコマンドは、アクセス対象データと、アクセス対象アドレスとアクセスバースト長BLaとを少なくとも含む。
【0028】
ステップS50において、半導体メモリ装置120は、ライトコマンドを受信して、アクセス対象アドレスに対応するメモリセルにアクセス対象データを書き込む。以上で、メモリシステム100は、データ書込処理を終了しメモリアクセス処理を終了する。
【0029】
データ読出処理において、メモリコントローラ110は、リードアクセス要求によるアクセス対象データの読み出し元を指示する論理アドレスを取得する(ステップS12)。上述のように、アクセス対象データのアクセスバースト長BLaは、アクセス対象データの論理アドレスに紐づいて記憶されており、以下の処理において、アクセス対象データが書き込まれた際に設定されたアクセスバースト長BLaが用いられる。
【0030】
ステップS32において、メモリコントローラ110は、アクセスバースト長BLaに応じて、取得した論理アドレスを物理アドレスへ変換する。上述のステップS30における処理と同様に、メモリコントローラ110は、予め設定された変換規則に従って、論理アドレスを物理アドレスへ変換する。
【0031】
ステップS42において、メモリコントローラ110はリードコマンドを生成し、半導体メモリ装置120に対してリードコマンドを発行する。リードコマンドは、アクセス対象アドレスとアクセスバースト長BLaとを少なくとも含む。
【0032】
ステップS52において、半導体メモリ装置120は、リードコマンドを受信して、アクセス対象アドレスに対応するメモリセルからアクセス対象データを読み出す。以上で、メモリシステム100は、データ読出処理を終了しメモリアクセス処理を終了する。
【0033】
一般に、演算装置200からメモリシステム100へのアクセスでは、連続する論理アドレスに対して、データの書き込みと読み込みとのいずれか一方である同じ種類のアクセスが連続して行われる。本実施形態では、上述のように、連続する論理アドレスに対応するデータは、互いに異なるバンクグループへ格納されるように物理アドレスが定められる。また、上述のように、半導体メモリ装置120は、互いに異なる複数のバンクグループに対してアクセスする場合、互いに異なる複数のデータバスを用いて、各バンクグループへのアクセスを並列して実行可能に構成されている。したがって、メモリシステム100は、演算装置200から連続して発行される複数のアクセス要求に対応するメモリアクセス処理を並列して実行することができ、効率よくメモリアクセスを実行できる。
【0034】
複数のアクセスの並列処理について、図4および図5を用いてより具体的に説明する。図4および図5は、上述のようにLPDDR5として構成された半導体メモリ装置120が、基本バースト長BLを32としてデータの読み出しを実行する場合の動作の一例を示す。図4および図5に示す例において、リードコマンドR0~R3はそれぞれ、データD0~D3の読み出しを指示するコマンドである。データD0~D3のアクセスバースト長BLaはそれぞれ、基本バースト長BLの1/4の長さである。データD0~D3はそれぞれ、バンクグループBG0~BG3に格納されている。半導体メモリ装置120は、リードコマンドR0~R3を受信して、バンクグループBG0~BG3それぞれにおいて、データ出力準備を並列して行う。バンクグループBG0~BG3それぞれにおいてデータ出力準備が完了した後、データD0~D3は、クロック間隔を空けることなく連続して演算装置200へ出力される。
【0035】
他方、同一のバンク、または、同一のバンクグループの互いに異なるページに属する複数のデータを連続して読み出す場合には、ページごとに一連のデータ出力準備が終了しないと他のページについてのデータ出力準備を開始できない。そのため、図6に示すように、ともにバンクグループBG0に属するデータD4およびデータD5に連続してアクセスする場合には、これらのアクセスを並列して実行できず、2つのデータ出力の間にクロック間隔の空きが生じる。
【0036】
以上のように、メモリシステム100は、バンクグループBG0~BG3へアクセスを並列して実行することにより、クロック間隔を空けずに連続してデータD0~D3を読み出すことができるので、メモリアクセス性能の低下を抑制できる。
【0037】
以上説明した実施形態のメモリシステム100によれば、アクセス対象データのデータ長に応じてアクセスバースト長BLaを設定し、アクセスバースト長BLaに応じた数のアクセス先バンクグループに対して並列してアクセスを行うので、アクセス対象データごとに適切なバースト長で並列してアクセスを実行でき、不要なデータへのアクセスを抑制して、メモリシステム100のメモリアクセス性能の低下を抑制できる。
【0038】
また、メモリコントローラ110は、連続する論理アドレスに対応するデータが、アクセス先バンクグループのうちの互いに異なるバンクグループへ格納されるように、論理アドレスから物理アドレスへの変換を行うので、連続する論理アドレスに対応するデータへのアクセス要求を並列して処理できる確率が高まり、メモリシステム100のメモリアクセス性能の低下をより抑制できる。
【0039】
B.他の実施形態:
(B1)上記実施形態において、半導体メモリ装置120は、演算装置200とメモリコントローラ110とが実装されたチップとは異なる他のチップに実装されているが、本開示はこれに限定されない。メモリコントローラ110と半導体メモリ装置120とが同一のチップに実装され、演算装置200は、メモリコントローラ110と半導体メモリ装置120とが実装されたチップとは異なる他のチップに実装されていてもよい。また、メモリコントローラ110と半導体メモリ装置120と演算装置200とが、同一のチップに実装されていてもよい。
【0040】
(B2)上記実施形態において、半導体メモリ装置120は、バンクグループの数と同数のデータバスを備えるが、本開示はこれに限定されない。半導体メモリ装置120のデータ処理速度によっては、半導体メモリ装置120が備えるバンクグループすべてに対して並列してアクセスを実行できないことがある。このような場合には、半導体メモリ装置120のデータ処理速度に応じて、データバスの数は、2以上であってバンクグループの数よりも少ない数であってもよい。かかる形態においても、メモリシステム100は、上記実施形態と同様の効果を奏する。
【0041】
(B3)上記実施形態において、メモリコントローラ110は、例えば、連続する論理アドレスが割り当てられ、各データのアクセスバースト長BLaが基本バースト長BLの1/16である複数のデータが、バンクグループBG0~BG15に順に格納されるように物理アドレスを定めるが、本開示はこれに限定されない。メモリコントローラ110は、連続する論理アドレスが割り当てられ、各データのアクセスバースト長BLaが基本バースト長BLの1/16である複数のデータが、バンクグループBG0~BG7に順に格納されるように物理アドレスを定めてもよい。このように物理アドレスを定めても、メモリシステム100は、上記実施形態と同様の効果を奏する。
【0042】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した形態中の技術的特徴に対応する各実施形態中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【符号の説明】
【0043】
100…メモリシステム、110…メモリコントローラ、120…半導体メモリ装置、200…演算装置、BG0~BG15…バンクグループ、BLa…アクセスバースト長、
DB0~DB15…データバス
図1
図2
図3
図4
図5
図6