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

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

▶ 株式会社デンソーの特許一覧 ▶ トヨタ自動車株式会社の特許一覧 ▶ 株式会社ミライズテクノロジーズの特許一覧

<>
  • 特開-SoCモジュール 図1
  • 特開-SoCモジュール 図2
  • 特開-SoCモジュール 図3
  • 特開-SoCモジュール 図4
  • 特開-SoCモジュール 図5
  • 特開-SoCモジュール 図6
  • 特開-SoCモジュール 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023167230
(43)【公開日】2023-11-24
(54)【発明の名称】SoCモジュール
(51)【国際特許分類】
   G06F 11/10 20060101AFI20231116BHJP
   G06F 12/02 20060101ALI20231116BHJP
【FI】
G06F11/10 648
G06F12/02 510A
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022078247
(22)【出願日】2022-05-11
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】滝澤 哲郎
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160AA13
(57)【要約】
【課題】SoCモジュールにおいて、アクセス効率の低下を抑制する。
【解決手段】SoCモジュール1000は、演算装置110、120、130と、書込先論理アドレスを決定しアクセス要求を発行するアドレス領域決定部200と、書込先論理アドレスを利用してデータアドレスとエラー訂正コードアドレスとを生成するアドレス生成部330であって、書込データのエラー訂正の要否およびデータ長に応じて、書込データとエラー訂正コードとがともに半導体メモリ装置の最小アクセス単位に含まれるように物理アドレス空間に配置されることと、書込データとエラー訂正コードとが互いに最小アクセス単位よりも離れるように物理アドレス空間に配置されることと、のいずれかを選択的に実現するアドレス生成部とを備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
半導体メモリ装置(2000)に対してデータの読み書きを実行し、データの読み出し時にはデータのエラー訂正を選択的に実行するSoCモジュール(1000)であって、
前記半導体メモリ装置への書込データを発行する演算装置(110、120、130)と、
前記書込データを受信して、前記書込データについての前記エラー訂正の要否およびデータ長に応じて、前記書込データの書き込み先の論理アドレスである書込先論理アドレスを決定し、前記書込データと前記書込先論理アドレスとを含むアクセス要求を発行するアドレス領域決定部(200)と、
前記書込先論理アドレスを利用して、前記半導体メモリ装置の物理アドレス空間における、前記書込データを書き込むデータアドレスと、前記書込データに対して前記エラー訂正を実行する際に用いられるエラー訂正コードを書き込むエラー訂正コードアドレスと、を生成するアドレス生成部(330)であって、前記書込データの前記エラー訂正の要否およびデータ長に応じて、前記書込データと前記エラー訂正コードとがともに前記半導体メモリ装置の最小アクセス単位に含まれるように前記物理アドレス空間に配置されることと、前記書込データと前記エラー訂正コードとが互いに前記最小アクセス単位よりも離れるように前記物理アドレス空間に配置されることと、のいずれかを選択的に実現するアドレス生成部と、
を備える、
SoCモジュール。
【請求項2】
請求項1に記載のSoCモジュールであって、
前記アクセス要求を受信して、前記書込先論理アドレスが、前記物理アドレス空間に対応する論理アドレス空間における第1論理アドレス領域と、前記論理アドレス空間において前記第1論理アドレス領域とは異なる第2論理アドレス領域と、のうちのいずれの領域に属するかについての判定を実行するアドレス領域判定部(320)を、さらに備え、
前記アドレス生成部は、前記アドレス領域判定部による前記判定の結果に応じて、前記書込先論理アドレスを利用して、前記データアドレスと前記エラー訂正コードアドレスとを生成する第1アドレス生成部(331)および第2アドレス生成部(332)を有し、
前記第1論理アドレス領域は、前記論理アドレス空間において連続する領域であって、前記エラー訂正が必要であり、かつ、予め設定された第1閾値以下のデータ長を有するデータを格納する領域として予め設定されている領域であり、
前記第2論理アドレス領域は、前記論理アドレス空間において連続する領域であって、前記エラー訂正が必要であり、かつ、前記第1閾値以上である予め設定された第2閾値以上のデータ長を有するデータおよび前記エラー訂正を必要としないデータを格納する領域として予め設定されている領域であり、
前記アドレス領域判定部は、前記第1論理アドレス領域と前記第2論理アドレス領域とのうち、いずれの領域に属する論理アドレスを、前記書込先論理アドレスとして前記書込データを前記論理アドレス空間に割り当てるかを決定し、
前記第1アドレス生成部は、前記アドレス領域判定部において、前記書込先論理アドレスが前記第1論理アドレス領域に属すると判定された場合に、前記アドレス領域判定部から受信した前記書込先論理アドレスを利用して、前記書込データと前記エラー訂正コードとがともに前記最小アクセス単位に含まれる記憶領域に記憶されるように、前記データアドレスと前記エラー訂正コードアドレスとを生成し、
前記第2アドレス生成部は、前記アドレス領域判定部において、前記書込先論理アドレスが前記第2論理アドレス領域に属すると判定された場合に、前記アドレス領域判定部から受信した前記書込先論理アドレスを利用して、前記書込データと前記エラー訂正コードとが互いに前記最小アクセス単位よりも離れた記憶領域に記憶されるように、前記データアドレスと前記エラー訂正コードアドレスとを生成する、
SoCモジュール。
【請求項3】
請求項2に記載のSoCモジュールであって、
前記第1論理アドレス領域は、前記論理アドレス空間のうち、論理アドレスが0である記憶領域を含む連続する領域であり、
前記第2論理アドレス領域は、前記論理アドレス空間のうち、前記第1論理アドレス領域を除いた領域である、
SoCモジュール。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、SoCモジュールに関する。
【背景技術】
【0002】
半導体メモリ装置としてのDRAM(Dynamic Random Access Memory)と、ECC(Error Check and Correct)機能を備えるメモリコントローラとを備え、データに対応して生成されるエラー訂正コードを用いてデータのエラー検出・訂正処理を行うSoC(System on Chip)モジュールが存在する(特許文献1)。半導体メモリ装置におけるデータとエラー訂正コードとの格納方法としては、PlanarフォーマットとPackedフォーマットとが知られている。Planarフォーマットでは、データとエラー訂正コードとを互いに異なる領域に配置する。Packedフォーマットでは、データとエラー訂正コードとを最小アクセス単位内となるように配置する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-139764号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
Planarフォーマットでは、データとエラー訂正コードとを互いに異なる領域に配置するため、データとともにエラー訂正コードも読み出す場合、最小アクセス単位の制約により、必要でない他のエラー訂正コードも併せて読み出す必要がある。このため、データ長の小さいデータを読み出す場合にはアクセス効率が低下する。他方、Packedフォーマットでは、データとエラー訂正コードとを最小アクセス単位内となるように配置するため、データ長が小さいデータであっても、必要とするデータおよびエラー訂正コードのみ読み出せるが、エラー訂正コードの読み出しが不要な場合でも常にデータとともにエラー訂正コードを読み出すこととなる。このため、データのみにアクセスする場合でもアクセス効率の低下を抑制できない。
【0005】
このようなことから、一般に、データ長の大きいデータにアクセスする場合にはPlanarフォーマットが有利であり、データ長の小さいデータにアクセスする場合にはPackedフォーマットが有利である。しかしながら、特許文献1に記載のSoCモジュールでは、このような両者の利点が両立できず、アクセスするデータ量やエラー訂正コードの要否によっては、アクセス効率が低下するおそれがある。
【課題を解決するための手段】
【0006】
本開示は、以下の形態として実現することが可能である。
【0007】
本開示の一形態によれば、SoCモジュール(1000)が提供される。このSoCモジュールは、半導体メモリ装置(2000)に対してデータの読み書きを実行し、データの読み出し時にはデータのエラー訂正を選択的に実行するSoCモジュールであって、前記半導体メモリ装置への書込データを発行する演算装置(110、120、130)と、前記書込データを受信して、前記書込データについての前記エラー訂正の要否およびデータ長に応じて、前記書込データの書き込み先の論理アドレスである書込先論理アドレスを決定し、前記書込データと前記書込先論理アドレスとを含むアクセス要求を発行するアドレス領域決定部(200)と、前記書込先論理アドレスを利用して、前記半導体メモリ装置の物理アドレス空間における、前記書込データを書き込むデータアドレスと、前記書込データに対して前記エラー訂正を実行する際に用いられるエラー訂正コードを書き込むエラー訂正コードアドレスと、を生成するアドレス生成部(330)であって、前記書込データの前記エラー訂正の要否およびデータ長に応じて、前記書込データと前記エラー訂正コードとがともに前記半導体メモリ装置の最小アクセス単位に含まれるように前記物理アドレス空間に配置されることと、前記書込データと前記エラー訂正コードとが互いに前記最小アクセス単位よりも離れるように前記物理アドレス空間に配置されることと、のいずれかを選択的に実現するアドレス生成部と、を備える。
【0008】
この形態のSoCモジュールによれば、半導体メモリ装置へデータを書きこむ際に、書込データのエラー訂正の要否およびデータ長に応じて、データとエラー訂正コードとを、最小アクセス単位内に含まれるように物理アドレス空間に配置するか、互いに最小アクセス単位よりも離れるように物理アドレス空間に配置するかを決定できる。このため、データ長の小さいデータを読み出す場合には必要とするデータおよびエラー訂正コードのみ読み出し、エラー訂正が必要ないデータを読み出す場合にはデータのみ読み出すので、SoCモジュールのアクセス効率の低下を抑制できる。
【図面の簡単な説明】
【0009】
図1】本実施形態のSoCモジュールの概略構成を表す説明図である。
図2】Packedフォーマットにおけるデータとエラー訂正コードとの配置を示す説明図である。
図3】Planarフォーマットにおけるデータとエラー訂正コードとの配置を示す説明図である。
図4】本実施形態の物理アドレス空間の構成を模式的に表す説明図である。
図5】本実施形態のデータ書込処理の手順を示すフローチャートである。
図6】データ書込処理におけるステップS510からステップS532の処理の手順を示す説明図である。
図7】本実施形態の書込先論理アドレス決定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0010】
A.実施形態:
A1.システム構成:
図1に示すように、本実施形態のSoCモジュール1000は、演算装置110~130と、アドレス領域決定部200と、メモリコントローラ300とからなる。SoCモジュール1000は、バス600を介して半導体メモリ装置2000と互いに接続されている。半導体メモリ装置2000は、SoCモジュール1000が発行するコマンドにより指定される任意の記憶単位について、データの読み書きが可能に構成されている。本実施形態の半導体メモリ装置2000はDRAMである。
【0011】
SoCモジュール1000は、演算装置110~130が発行するデータの書き込み要求または読み出し要求に応じてコマンドを生成し、半導体メモリ装置2000へ発行する。また、SoCモジュール1000はエラー訂正機能を備え、半導体メモリ装置2000へのデータの書き込み時に生成したエラー訂正コードを利用して、半導体メモリ装置2000からのデータの読み出し時に、データのエラー検出および訂正が可能に構成されている。なお、本実施形態では、エラー訂正は、データごとに設定されたエラー訂正要否に応じて選択的に実行可能である。
【0012】
演算装置110~130は、例えば、CPUやGPU(Graphics Processing Unit)が該当する。演算装置110~130は、半導体メモリ装置2000へのデータの書き込みを要求する際に、書込データを発行する。本実施形態では、演算装置110~130は、書込データが、読み出す際にエラー訂正が必要なデータであるか否かを示す情報(以下、「エラー訂正要否情報」とも呼ぶ)を書込データとともに発行する。なお、SoCモジュール1000が備える演算装置は複数に限定されず、ひとつでもよい。
【0013】
アドレス領域決定部200は、バス400を介して演算装置110~130と互いに接続されている。アドレス領域決定部200は、演算装置110~130から発行された書込データを受信して、書込データについてのエラー訂正の要否およびデータ長に応じて、第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に書込データの書き込み先の論理アドレス(以下、「書込先論理アドレスAL」とも呼ぶ)を割り当てるかを決定する。本実施形態では、書込先論理アドレスALは、2進数で表される32bitのビット列である。なお、書込先論理アドレスALは32bitに限定されず、読み書きされるデータの種類に応じて、任意のビット数で表されてもよい。
【0014】
第1論理アドレス領域と第2論理アドレス領域とは、半導体メモリ装置2000の物理アドレス空間に対応する論理アドレス空間において連続する互いに異なる領域である。本実施形態では、第1論理アドレス領域は、論理アドレス空間のうち、論理アドレスが0である記憶領域を含む領域であり、第2論理アドレス領域は、論理アドレス空間のうち、第1論理アドレス領域を除いた領域である。第1論理アドレス領域と第2論理アドレス領域との境界を示し、第2論理アドレス領域の始点となる論理アドレス(以下、「境界論理アドレス」とも呼ぶ)は、後述する第1境界物理アドレスAPb1に対応する論理アドレスとして予め設定される。書込先論理アドレスALをどのように割り当てるかについては、後述する書込先論理アドレス決定処理において説明する。アドレス領域決定部200は、書込データと書込先論理アドレスALとを少なくとも含むアクセス要求を発行する。本実施形態では、アクセス要求は、上述したエラー訂正要否情報をさらに含む。
【0015】
メモリコントローラ300は、バス500を介してアドレス領域決定部200と互いに接続されている。メモリコントローラ300は、アドレス領域決定部200から発行されたアクセス要求を受信して、アクセス要求の種類に応じてコマンドを生成する。メモリコントローラ300は、生成したコマンドを半導体メモリ装置2000へ発行する。メモリコントローラ300は、エラー訂正処理部310と、アドレス領域判定部320と、アドレス生成部330と、メモリアクセス部340とを備える。
【0016】
エラー訂正処理部310は、半導体メモリ装置2000にデータを書き込む際には、アクセス要求のうちの書込データに対応するエラー訂正コードを生成する。本実施形態では、エラー訂正処理部310は、64bitのデータに対して、8bitのエラー訂正コードを生成する。エラー訂正処理部310は、生成したエラー訂正コードと書込データとを発行する。また、エラー訂正処理部310は、半導体メモリ装置2000からデータを読み出す際には、読出データとともに読み出されたエラー訂正コードを用いて、読出データのエラー検出および訂正を実行する。
【0017】
アドレス領域判定部320は、アクセス要求のうちの書込先論理アドレスALが、上述した第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に属するかについての判定を実行する。アドレス領域判定部320は、アドレス生成部330へ書込先論理アドレスALおよび判定の結果を発行する。
【0018】
アドレス生成部330は、第1アドレス生成部331と第2アドレス生成部332とを備える。第1アドレス生成部331と第2アドレス生成部332とは、アドレス領域判定部320による判定の結果に応じて、アドレス領域判定部320から発行された書込先論理アドレスALを利用して、半導体メモリ装置2000も物理アドレス空間における、書込データを書き込むアドレス(以下、「データアドレスAPd」とも呼ぶ)と、上述したエラー訂正コードを書き込むアドレス(以下、「エラー訂正コードアドレスAPe」とも呼ぶ)とを生成する。
【0019】
本実施形態では、データアドレスAPdとエラー訂正コードアドレスAPeとは、PackedフォーマットとPlanarフォーマットとのうちのいずれかに従うように配置される。Packedフォーマットは、書込データとエラー訂正コードとが、ともに半導体メモリ装置2000の最小アクセス単位に含まれる記憶領域に記憶されるように配置する配置方法を意味する。Planarフォーマットは、書込データとエラー訂正コードとが、互いに最小アクセス単位よりも離れた記憶領域に記憶されるように配置する配置方法を意味する。最小アクセス単位は、半導体メモリ装置2000の規格により定められている。本実施形態では、半導体メモリ装置2000の最小アクセス単位は512bitである。
【0020】
図2に示すアクセスブロックABaは、Packedフォーマットに従って配置された書込データおよびエラー訂正コードを半導体メモリ装置2000の最小アクセス単位ごとに分割して得られるデータである。アクセスブロックABaは、7個のデータブロックDB0~DB6と、各データブロックDB0~DB6に対応する7個のエラー訂正コードEC0~EC6とからなる。同じ番号が付されたデータブロックとエラー訂正コードとは、互いに対応することを示している。本実施形態では、各データブロックはそれぞれ、8bitのデータDT8個からなり、各データDTがひとつの物理アドレスを占有する。このように、Packedフォーマットにおいては、書込データとエラー訂正コードとが共通のアクセスブロックABaに含まれるように配置される。なお、ハッチングを付して示す物理アドレスは、データとエラー訂正コードとの比率と、最小アクセス単位との関係により余った物理アドレスであり、本実施形態では使用されない物理アドレスである。
【0021】
図3に示すアクセスブロックABbは、Packedフォーマットに従って配置された書込データおよびエラー訂正コードのうちのデータ部分を、半導体メモリ装置2000の最小アクセス単位ごとに分割して得られるデータである。アクセスブロックABbは、8個のデータブロックDB10~DB17からなる。また、アクセスブロックABcは、Packedフォーマットに従って配置された書込データおよびエラー訂正コードのうちのエラー訂正コード部分を、半導体メモリ装置2000の最小アクセス単位ごとに分割して得られるデータである。アクセスブロックABcは、64個のエラー訂正コードからなる。図3においては、データブロックDB10~DB17に対応するエラー訂正コードEC10~EC17にのみ符号を振って示している。このように、Planarフォーマットにおいては、データとエラー訂正コードとは、アクセスブロックABbとアクセスブロックABcとに分けて配置される。本実施形態では、データブロックとそれに対応するエラー訂正コードとは、半導体メモリ装置2000において、互いに異なるページに記憶されるように配置される。なお、データブロックとそれに対応するエラー訂正コードとは、半導体メモリ装置2000において、同一のページに記憶されるように配置されてもよい。
【0022】
図4に示すように、本実施形態では、物理アドレス空間は、第1物理アドレス領域と第2物理アドレス領域とに区分される。本実施形態では、物理アドレス空間は、第1物理アドレス領域が、物理アドレス空間のうち、物理アドレスが0である記憶領域を含むように区分されている。第1物理アドレス領域は、複数のアクセスブロックABaからなる。
【0023】
第2物理アドレス領域は、データ格納領域とエラー訂正コード格納領域とからなる。データ格納領域は、複数のアクセスブロックABbからなる。エラー訂正コード格納領域は、複数のアクセスブロックABcからなる。第2物理アドレス領域の始点であって、ハッチングを付して示す第1境界物理アドレスAPb1は、任意に設定可能な変数として、予め第2アドレス生成部332に設定されている。また、エラー訂正コード格納領域の始点であって、クロスハッチングを付して示す第2境界物理アドレスAPb2は、任意に設定可能な変数として、予め第2アドレス生成部332に設定されている。
【0024】
アドレス領域判定部320において書込先論理アドレスALが第1論理アドレス領域に属すると判定された場合に、第1アドレス生成部331は、アドレス領域判定部320から発行された書込先論理アドレスALを利用して、書込データとエラー訂正コードとが第1物理アドレス領域に配置されるように、データアドレスAPdとエラー訂正コードアドレスAPeとを生成する。データアドレスAPdとエラー訂正コードアドレスAPeとの具体的な生成方法については、後述するデータ書込処理において説明する。
【0025】
アドレス領域判定部320において書込先論理アドレスALが第2論理アドレス領域に属すると判定された場合に、第2アドレス生成部332は、アドレス領域判定部320から発行された書込先論理アドレスALを利用して、書込データとエラー訂正コードとが第2物理アドレス領域に配置されるように、データアドレスAPdとエラー訂正コードアドレスAPeとを生成する。データアドレスAPdとエラー訂正コードアドレスAPeとの具体的な生成方法については、後述するデータ書込処理において説明する。
【0026】
メモリアクセス部340は、エラー訂正処理部310から発行された書込データおよびエラー訂正コードと、第1アドレス生成部331または第2アドレス生成部332から発行されたデータアドレスAPdおよびエラー訂正コードアドレスAPeとを含む、半導体メモリ装置2000へ発行するコマンドを生成する。より具体的には、メモリアクセス部340は、データアドレスAPdへのデータの書き込みを指示するコマンド(以下、「データライトコマンド」とも呼ぶ)と、エラー訂正コードアドレスAPeへのエラー訂正コードの書き込みを指示するコマンド(以下、「エラー訂正コードライトコマンド」とも呼ぶ)とを生成する。メモリアクセス部340は、生成したデータライトコマンドおよびエラー訂正コードライトコマンドを半導体メモリ装置2000へ発行する。
【0027】
A2.メモリアクセス処理:
SoCモジュール1000は、半導体メモリ装置2000へデータを書き込む際に、図5および図6に示すデータ書込処理を実行する。なお、SoCモジュール1000が半導体メモリ装置2000からデータを読み出す際の処理は、エラー訂正機能を備えるSoCモジュールにおいて一般的に実行される処理と同様であるため、説明は省略する。
【0028】
図5のステップS100において、演算装置110~130のうちのいずれかひとつが、書込データおよびエラー訂正要否情報を発行する。
【0029】
ステップS200において、アドレス領域決定部200は、図7に示す、書込先論理アドレス決定処理を実行する。書込先論理アドレス決定処理は、上述したように、書込データについてのエラー訂正の要否およびデータ長に応じて、第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に書込先論理アドレスALを割り当てるかを決定する処理である。
【0030】
図7のステップS310において、アドレス領域決定部200は、書込データが、読出し時にエラー訂正が必要なデータであるか否かを判定する。本判定は、書込データに付加されたエラー訂正要否情報に従って実行される。書込データが、読出し時にエラー訂正が必要なデータでない場合(ステップS310:No)、アドレス領域決定部200は、書込先論理アドレスALを第2論理アドレス領域に割り当てて(ステップS352)、書込先論理アドレス決定処理を終了する。
【0031】
書込データが、読出し時にエラー訂正が必要なデータである場合(ステップS310:Yes)、アドレス領域決定部200は、書込データのデータ長が、予め設定された第1閾値以下であるか否かを判定する(ステップS320)。本実施形態では、第1閾値は、1024bitである。なお、第1閾値は、1024bitに限らず、任意の値が設定されてもよい。書込データのデータ長が第1閾値以下である場合(ステップS320:Yes)、アドレス領域決定部200は、書込先論理アドレスALを第1論理アドレス領域に割り当てて(ステップS350)、書込先論理アドレス決定処理を終了する。
【0032】
書込データのデータ長が第1閾値より大きい場合(ステップS320:No)、アドレス領域決定部200は、書込データのデータ長が、予め設定された第2閾値以上であるか否かを判定する(ステップS330)。本実施形態では、第2閾値は、2048bitである。なお、第2閾値は、2048bitに限らず、第1閾値以上である任意の値が設定されてもよい。書込データのデータ長が第2閾値以上である場合(ステップS330:Yes)、アドレス領域決定部200は、書込先論理アドレスALを第2論理アドレス領域に割り当てて(ステップS352)、書込先論理アドレス決定処理を終了する。
【0033】
書込データのデータ長が第2閾値より小さい場合(ステップS330:No)、アドレス領域決定部200は、第2論理アドレス領域に比べて、第1論理アドレス領域の方が空き領域が多いか否かを判定する(ステップS340)。第1論理アドレス領域の方が空き領域が多い場合(ステップS340:Yes)、アドレス領域決定部200は、書込先論理アドレスALを第1論理アドレス領域に割り当てて(ステップS350)、書込先論理アドレス決定処理を終了する。第2論理アドレス領域の方が空き領域が多い場合(ステップS340:No)、アドレス領域決定部200は、書込先論理アドレスALを第2論理アドレス領域に割り当てて(ステップS352)、書込先論理アドレス決定処理を終了する。以上で、書込先論理アドレス決定処理についての説明を終了する。
【0034】
図5のステップS300において、アドレス領域決定部200は、メモリコントローラ300へアクセス要求を発行する。上述したように、アクセス要求は、書込データと、書込先論理アドレスALと、エラー訂正要否情報とを含む。
【0035】
ステップS400において、エラー訂正処理部310は、アクセス要求のうちの書込データに対応するエラー訂正コードを生成し、書込データとともに発行する。なお、書込データがエラー訂正を必要としないデータである場合、本ステップは省略されてもよい。
【0036】
ステップ400と並列して、図6に示すステップS510において、アドレス領域判定部320は、アクセス要求のうちの書込先論理アドレスALが、第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に属するかについての判定を実行する。アドレス領域判定部320は、書込先論理アドレスALが上述した境界論理アドレスよりも小さい場合には、書込先論理アドレスALが第1論理アドレス領域に属すると判定する。他方、アドレス領域判定部320は、書込先論理アドレスALが境界論理アドレス以上である場合には、書込先論理アドレスALが第2論理アドレス領域に属すると判定する。
【0037】
ステップS510において書込先論理アドレスALが第1領域に属すると判定された場合、アドレス領域判定部320は、第1アドレス生成部331へ書込先論理アドレスALを発行する(ステップS520)。
【0038】
ステップS530において、第1アドレス生成部331は、書込先論理アドレスALからデータアドレスAPdおよびエラー訂正コードアドレスAPeを生成する。
【0039】
第1アドレス生成部331において、データアドレスAPdは、以下に示す式(1)~(3)により求められる。
【0040】
APd[31:6]={AL[31:3]/7}…(1)
APd[5:3]=AL[31:3]%7…(2)
APd=APd[31:6]×64+APd[5:3]×8…(3)
【0041】
式(1)において、「AL[31:3]」は、32bitのビット列で表された書込先論理アドレスALのうちの下位3ビットを取り除く処理を意味し、この処理は、書込先論理アドレスALを8で除す処理に相当する。上述のように、ひとつのデータブロックには8個のデータが含まれるので、この処理により、データアドレスAPdが属するデータブロック(以下、「所属データブロック」とも呼ぶ)のひとつ前のデータブロックが、第1論理アドレス領域において何番目のデータブロックにあたるかが求められる。さらに、これを7で除した商の整数部を得る処理を行う。ひとつのアクセスブロックには7個のデータブロックが含まれるので、この処理により、データアドレスAPdが属するアクセスブロック「以下、「所属アクセスブロック」とも呼ぶ」のひとつ前のアクセスブロックが、第1論理アドレス領域において何番目のアクセスブロックにあたるかが求められる。
【0042】
式(2)は、書込先論理アドレスALを8で除した商をさらに7で除した余りを得る処理を意味する。余りのうちの整数部分は、所属アクセスブロックにおいて、所属データブロックのひとつ前のデータブロックが、何番目のデータブロックにあたるかを示している。
【0043】
最小アクセス単位は512bit、すなわち64byteで表されるので、「APd[31:6]」に64を掛けることにより、所属アクセスブロックまでの物理アドレスの総数が得られる。また、データブロックは64bit、すなわち8byteで表されるため、「APd[5:3]」に8を掛けることにより、所属アクセスブロックにおける、データアドレスAPdまでの物理アドレスの総数が得られる。したがって、式(3)においてこれらを足すことにより、データアドレスAPdが求められる。
【0044】
第1アドレス生成部331において、エラー訂正コードアドレスAPeは、以下に示す式(4)により求められる。
【0045】
APe=(AL[31:3]+1)×64-8+{AL[31:3]%7}…(4)
【0046】
式(4)において、上述のように「AL[31:3]」は、所属データブロックのひとつ前のデータブロックが、第1論理アドレス領域において何番目のデータブロックにあたるかを示している。そのため、「(AL[31:3]+1)×64」は、所属アクセスブロックの次のアクセスブロックの始点の物理アドレスに相当する。エラー訂正コードは、アクセスブロックの末尾8個の物理アドレスを占めているので、かかるアドレスから8を引いたアドレスが、所属アクセスブロックにおいて最初にエラー訂正コードが配置される物理アドレスに相当する。したがって、かかるアドレスに「{AL[31:3]%7}」を足すことにより、所属アクセスブロックにおいて所属データブロックが何番目にあたるかに応じたオフセットが加えられ、エラー訂正コードアドレスAPeが求められる。
【0047】
他方、ステップS510において書込先論理アドレスALが第2領域に属すると判定された場合、アドレス領域判定部320は、第2アドレス生成部332へ書込先論理アドレスALを発行する(ステップS522)。
【0048】
ステップS532において、第2アドレス生成部332は、書込先論理アドレスALからデータアドレスAPdおよびエラー訂正コードアドレスAPeを生成する。
【0049】
第2アドレス生成部332において、データアドレスAPdは、以下に示す式(5)により求められる。
【0050】
APd=AL+APb1/8…(5)
【0051】
上述のように、第1境界物理アドレスAPb1は、第2物理アドレス領域の始点となる物理アドレスを意味し、その大きさは、第1物理アドレス領域に属する物理アドレスの総数に相当する。第1論理アドレス領域において、データとエラー訂正コードとは、上述のように8:1の比率であるので、「APb1/8」は、第1論理アドレスにおいてエラー訂正コードが割り当てられた物理アドレスの総数に相当する。したがって、書込先論理アドレスALに「APb1/8」を足すことにより、データアドレスAPdが求められる。
【0052】
第2アドレス生成部332において、エラー訂正コードアドレスAPeは、以下に示す式(6)により求められる。
【0053】
APe=APb2+{(AL-APb1×7/8)[31:3]}…(6)
【0054】
上述のように、第1論理アドレス領域において、データとエラー訂正コードとは、8:1の比率であるので、「APb1×7/8」は、第1論理アドレスにおいてデータが割り当てられた物理アドレスの総数に相当する。すなわち、「AL-APb1×7/8」は、第2物理アドレス領域に割り当てられたデータのうち、データアドレスAPdまでに割り当てられたデータの総数を示す。さらに、このデータ総数を8で除した商の整数部を得ることにより、第2物理アドレス領域において、所属データブロックが何番目のデータブロックにあたるかが求められる。したがって、第2境界物理アドレスAPb2に「{(AL-APb1×7/8)[31:3]}」を足すことにより、第2物理アドレス領域において、所属データブロックが何番目のデータブロックにあたるかに応じたオフセットが加えられ、エラー訂正コードアドレスAPeが求められる。
【0055】
ステップS400と、ステップS530またはステップS532との終了後、言い換えれば、書込データ、エラー訂正コード、データアドレスAPdおよびエラー訂正コードアドレスAPeが生成された後、メモリアクセス部340は、上述したデータライトコマンドおよびエラー訂正コードライトコマンドを生成し、半導体メモリ装置2000へ発行する(ステップS600)。本ステップの終了後、SoCモジュール1000は、データ書込処理を終了する。
【0056】
以上説明した実施形態のSoCモジュール1000によれば、半導体メモリ装置2000へデータを書きこむ際に、書込データのエラー訂正の要否およびデータ長に応じて、物理アドレス空間にデータとエラー訂正コードとを、Packedフォーマットに従って配置するか、Planarフォーマットに従って配置するかを決定できる。このため、データ長の小さいデータを読み出す場合には必要とするデータおよびエラー訂正コードのみ読み出し、エラー訂正が必要ないデータを読み出す場合にはデータのみ読み出すので、SoCモジュール1000のアクセス効率の低下を抑制できる。
【0057】
B.他の実施形態:
(B1)上記実施形態において、演算装置110とアドレス領域決定部200とは独立した機能部であるが、本開示はこれに限定されない。演算装置は、アドレス領域決定部200に相当する機能部を備えてもよい。
【0058】
(B2)上記実施形態において、SoCモジュール1000はアドレス領域判定部320を備え、アドレス領域判定部320において、書込先論理アドレスALが、第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に属するかについての判定を実行するが、本開示はこれに限定されない。SoCモジュール1000は、アドレス領域判定部320を備えなくてもよい。かかる形態では、例えば、書込先論理アドレスALが第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に属するかについての情報(以下、「書込先論理アドレス所属情報」とも呼ぶ)を含むアクセス要求をアドレス領域決定部200が発行してもよい。かかるアクセス要求をアドレス生成部330が受信して、書込先論理アドレス所属情報を利用することにより、第1アドレス生成部331と第2アドレス生成部332とのどちらが、データアドレスAPdおよびエラー訂正コードアドレスAPeを生成するかが決定されてもよい。かかる形態によれば、書込先論理アドレスALについての判定を行う必要がないので、SoCモジュール1000の処理性能の低下を抑制できる。
【0059】
(B3)上記実施形態において、第1論理アドレス領域が、論理アドレス空間のうち、論理アドレスが0である記憶領域を含むが、本開示はこれに限定されない。第2論理アドレス領域が、論理アドレス空間のうち、論理アドレスが0である記憶領域を含んでもよい。
【0060】
(B4)上記実施形態において、物理アドレス空間は、第1物理アドレス領域が、物理アドレス空間のうち、物理アドレスが0である記憶領域を含むように区分されるが、本開示はこれに限定されない。物理アドレス空間は、第2物理アドレス領域が、物理アドレス空間のうち、物理アドレスが0である記憶領域を含むように区分されてもよい。
【0061】
(B5)上記実施形態において、第1閾値と第2閾値とは、互いに異なる値が設定されているが、本開示はこれに限定されない。第1閾値と第2閾値とは同じ値が設定されてもよい。言い換えれば、第1論理アドレス領域と第2論理アドレス領域とのうち、いずれの領域に書込先論理アドレスALを割り当てるかは、ひとつの閾値により決定されてもよい。かかる形態によれば、データ長の判定回数を減らすことができるので、SoCモジュール1000の処理性能の低下を抑制できる。
【0062】
(B6)上記実施形態において、アドレス領域決定部200は、書込先論理アドレス決定処理のステップS340において、第2論理アドレス領域に比べて、第1論理アドレス領域の方が空き領域が多いか否かを判定するが、本開示はこれに限定されない。アドレス領域決定部200は、例えば、データ長が第1閾値より大きく、かつ、データ長が第2閾値より小さい場合に、ステップS340における判定を実行することなく、書込先論理アドレスALを第1論理アドレスへ割り当ててもよい。かかる形態によれば、第1論理アドレス領域と第2論理アドレス領域との空き領域を確認する必要がないので、SoCモジュール1000の処理性能の低下を抑制できる。
【0063】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した形態中の技術的特徴に対応する各実施形態中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0064】
本開示に記載の制御部およびその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部およびその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部およびその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサおよびメモリと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【符号の説明】
【0065】
110…演算装置、200…アドレス領域決定部、330…アドレス生成部、1000…SoCモジュール、2000…半導体メモリ装置
図1
図2
図3
図4
図5
図6
図7