特開2018-124688(P2018-124688A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社メガチップスの特許一覧

特開2018-124688半導体メモリ装置および半導体メモリシステム
<>
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000003
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000004
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000005
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000006
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000007
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000008
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000009
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000010
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000011
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000012
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000013
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000014
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000015
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000016
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000017
  • 特開2018124688-半導体メモリ装置および半導体メモリシステム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-124688(P2018-124688A)
(43)【公開日】2018年8月9日
(54)【発明の名称】半導体メモリ装置および半導体メモリシステム
(51)【国際特許分類】
   G06F 12/06 20060101AFI20180713BHJP
   G06F 12/14 20060101ALI20180713BHJP
   G06F 13/16 20060101ALI20180713BHJP
【FI】
   G06F12/06 520H
   G06F12/14 510D
   G06F13/16 510F
   G06F12/06 520A
【審査請求】未請求
【請求項の数】14
【出願形態】OL
【全頁数】26
(21)【出願番号】特願2017-14964(P2017-14964)
(22)【出願日】2017年1月31日
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100125704
【弁理士】
【氏名又は名称】坂根 剛
(74)【代理人】
【識別番号】100143498
【弁理士】
【氏名又は名称】中西 健
(74)【代理人】
【識別番号】100104444
【弁理士】
【氏名又は名称】上羽 秀敏
(72)【発明者】
【氏名】大▲高▼坂 久雄
(72)【発明者】
【氏名】今川 雅之
【テーマコード(参考)】
5B017
5B060
5B160
【Fターム(参考)】
5B017AA01
5B017BA01
5B017BB02
5B017CA11
5B060CD17
5B160CD17
(57)【要約】
【課題】外部装置から安全に半導体メモリ装置の揮発性の高速メモリにアクセスすることができる半導体メモリ装置、半導体メモリシステムを実現する。
【解決手段】半導体メモリシステム1000では、ホスト装置H1から、ホストIF1を介して、第2記憶部4にアクセスすることができる。また、ホスト装置H1のメモリ制御部11に第2記憶部4の外部アクセス許可領域の情報を保持し、当該情報により、ホストIF1が、第2記憶部4に対するアクセス制御を行う。
【選択図】図1
【特許請求の範囲】
【請求項1】
ホスト装置と通信可能な半導体メモリ装置であって、
バスと、
前記バスに接続されており、第1のアクセス速度によりデータの読み出しおよび書き込みの少なくとも一方を行う第1記憶部と、
前記バスに接続されており、第1のアクセス速度よりも速い第2のアクセス速度によりデータの読み出しおよび書き込みの少なくとも一方を行う第2記憶部と、
前記バスに接続されているマイクロプロセッサと、
前記バスに接続されており、前記ホスト装置から前記第2記憶部に対して直接アクセス可能なインターフェースを提供するインターフェース部と、
を備える半導体メモリ装置。
【請求項2】
前記第1記憶部は、前記マイクロプロセッサが演算するためのコードを記憶することができ、
前記インターフェース部は、
前記マイクロプロセッサが前記コードを実行したときの演算結果を前記第2記憶部に記憶し、
前記演算結果を前記第2記憶部から読み出し、前記ホスト装置に送信する、
請求項1に記載の半導体メモリ装置。
【請求項3】
前記マイクロプロセッサは、
前記マイクロプロセッサが演算するためのコードを前記第1記憶部から読み出し、前記第2記憶部に記憶する、
請求項1又は2に記載の半導体メモリ装置。
【請求項4】
前記インターフェース部は、
前記ホスト装置から受信したコードを前記第2記憶部に記憶する、
請求項1から3のいずれかに記載の半導体メモリ装置。
【請求項5】
前記インターフェース部は、
前記ホスト装置から前記第2記憶部へのアクセスを許可するメモリ領域である外部アクセス可能領域を設定し、設定した前記外部アクセス可能領域の情報に基づいて、前記第2記憶部へのアクセス制御を行う、
請求項1から4のいずれかに記載の半導体メモリ装置。
【請求項6】
前記外部アクセス可能領域の情報の初期値は、前記第2記憶部の全メモリ領域へのアクセスを禁止することを示す値である、
請求項5に記載の半導体メモリ装置。
【請求項7】
前記第2記憶部のアクセス禁止領域を設定するための情報であるアクセス禁止情報を保持するアクセス禁止情報保持部と、
前記アクセス禁止情報に基づいて、前記第2記憶部のアクセス禁止領域を設定するラッパー部と、
をさらに備える、
請求項6に記載の半導体メモリ装置。
【請求項8】
前記アクセス禁止情報保持部は、一度のみ書き込みができるROMを含み、
前記アクセス禁止情報は、前記ROMに書き込まれる、
請求項7に記載の半導体メモリ装置。
【請求項9】
前記アクセス禁止情報保持部は、
前記アクセス禁止情報を保持するための回路を含み、
前記アクセス禁止情報を、前記回路から出力される信号として、前記ラッパー部に出力する、
請求項7に記載の半導体メモリ装置。
【請求項10】
前記ラッパー部は、
前記マイクロプロセッサからのフェッチアクセス信号がイネーブルを示す信号値であり、かつ、前記マイクロプロセッサから受信した命令フェッチ信号が示すアドレスが前記アクセス禁止領域内である場合に、前記第2記憶部の前記アクセス禁止領域へのアクセスを許可するように前記第2記憶部に対するアクセス制御を行う、
請求項7から9のいずれかに記載の半導体メモリ装置。
【請求項11】
前記ラッパー部は、
前記アクセス禁止情報および前記インターフェース部により設定された前記外部アクセス可能領域の情報に基づいて、前記第2記憶部に対するアクセス制御を行う、
請求項7から10のいずれかに記載の半導体メモリ装置。
【請求項12】
前記ラッパー部は、
前記第2記憶部へのアクセス要求をしているアドレスが、前記外部アクセス可能領域内のアドレスであり、かつ、前記アクセス禁止領域内であると判定した場合、前記第2記憶部への全てのアクセスを禁止する、
請求項7から11のいずれかに記載の半導体メモリ装置。
【請求項13】
前記インターフェース部は、
前記ホスト装置から、前記半導体メモリ装置の前記第2記憶部の全メモリ領域をアクセスするコマンドを受信した場合、前記第2記憶部に記憶されているデータを正常に読み出すことができないことを示すレスポンスを前記ホスト装置に送信する、
請求項1から12のいずれかに記載の半導体メモリ装置。
【請求項14】
ホスト装置と、
請求項1から13のいずれかに記載の半導体メモリ装置と、
を備える半導体メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホスト装置と通信可能な半導体メモリ装置の技術に関する。
【背景技術】
【0002】
半導体メモリ装置は、半導体メモリ(例えば、フラッシュメモリ)と、半導体メモリを制御するマイクロプロセッサとを備える。このような半導体メモリ装置では、マイクロプロセッサが半導体メモリに記憶されるコードやデータを用いて処理することで、多様な処理を実現することができる。
【0003】
処理速度を向上させるために、揮発性の高速メモリ(例えば、SRAM(Static Random Access Memory))を備える半導体メモリも開発されている。
【0004】
揮発性の高速メモリは、高速アクセスが可能なので、CPU処理に用いられるコードやデータが格納される。そして、マイクロプロセッサが、揮発性の高速メモリにアクセスし、マイクロプロセッサによるCPU処理が高速に実現される。つまり、揮発性の高速メモリは、マイクロプロセッサによるCPU処理が安定して実行されることを保証するために、マイクロプロセッサからのみアクセスが許可され、外部装置(ホスト装置)からアクセスされることはない。
【0005】
特許文献1には、キャッシュメモリ(例えば、SRAMを用いて実現されるキャッシュメモリ)と主メモリとCPUとを備えるデジタルシステムの開示がある。特許文献1の技術では、CPUのみが、揮発性の高速メモリであるキャッシュメモリ(例えば、SRAM)にアクセスし、CPU処理を行うことで、高速なCPU処理を実現している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平8−221323号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記のように、揮発性の高速メモリは、マイクロプロセッサによるCPU処理が安定して実行されることを保証するために、マイクロプロセッサからのみアクセスが許可され、外部装置(ホスト装置)からアクセスされることはない。
【0008】
つまり、揮発性の高速メモリは、外部からアクセスを許可するとマイクロプロセッサによるCPU処理が不安定になる危険があるあるため、通常、外部装置(ホスト装置)からのアクセスを許可しない。
【0009】
しかしながら、外部装置(ホスト装置)から安全に半導体メモリ装置の揮発性の高速メモリにアクセスすることができれば、多様な処理を高速に実現することができるため、外部装置(ホスト装置)から安全に半導体メモリ装置の揮発性の高速メモリにアクセスする技術の実現が望まれている。
【0010】
そこで、本発明は、外部装置(ホスト装置)から安全に半導体メモリ装置の揮発性の高速メモリにアクセスすることができる半導体メモリ装置、半導体メモリシステムを実現することを目的とする。
【課題を解決するための手段】
【0011】
上記課題を解決するために、第1の発明は、ホスト装置と通信可能な半導体メモリ装置であって、バスと、第1記憶部と、第2記憶部と、マイクロプロセッサと、インターフェース部と、を備える。
【0012】
第1記憶部は、バスに接続されており、第1のアクセス速度によりデータの読み出しおよび書き込みの少なくとも一方を行う。
【0013】
第2記憶部は、バスに接続されており、第1のアクセス速度よりも速い第2のアクセス速度によりデータの読み出しおよび書き込みの少なくとも一方を行う。
【0014】
マイクロプロセッサは、バスに接続されている。
【0015】
インターフェース部は、バスに接続されており、ホスト装置から第2記憶部に対して直接アクセス可能なインターフェースを提供する。
【0016】
この半導体メモリ装置では、インターフェース部がホスト装置から第2記憶部に対して直接アクセス可能なインターフェースを提供するので、ホスト装置は、インターフェース部を介して、第2記憶部にアクセスすることができる。つまり、この半導体メモリ装置では、ホスト装置からアクセス速度の速い第2記憶装置(例えば、SRAM)に、直接(バッファや、アクセス速度の遅い第1記憶部(例えば、不揮発性メモリ)に、暫定的にデータを保持させることなく)、アクセスすることができる。
【0017】
第2の発明は、第1の発明であって、第1記憶部は、マイクロプロセッサが演算するためのコードを記憶することができる。
【0018】
インターフェース部は、マイクロプロセッサがコードを実行したときの演算結果を第2記憶部に記憶し、演算結果を第2記憶部から読み出し、ホスト装置に送信する。
【0019】
これにより、この半導体メモリ装置では、ホスト装置が、演算結果をインターフェース部を介して、読み出すことができる。
【0020】
なお、「コード」とは、例えば、コード(マイクロプロセッサで演算を行うための命令コード)を含むデータである。
【0021】
第3の発明は、第1または第2の発明であって、マイクロプロセッサは、マイクロプロセッサが演算するためのコードを第1記憶部から読み出し、第2記憶部に記憶する。
【0022】
これにより、この半導体メモリ装置では、マイクロプロセッサが演算するためのコードを第1記憶部から読み出し、第2記憶部に記憶することができる。
【0023】
第4の発明は、第1から第3のいずれかの発明であって、インターフェース部は、ホスト装置から受信したコードを第2記憶部に記憶する。
【0024】
これにより、この半導体メモリ装置では、ホスト装置から受信したコードを第2記憶部に記憶することができる。
【0025】
第5の発明は、第1から第4のいずれかの発明であって、インターフェース部は、ホスト装置から第2記憶部へのアクセスを許可するメモリ領域である外部アクセス可能領域を設定し、設定した外部アクセス可能領域の情報に基づいて、第2記憶部へのアクセス制御を行う。
【0026】
この半導体メモリ装置では、インターフェース部が、外部アクセス許可領域を特定するための情報を、例えば、オフセットOfstと深さDpthにより第2記憶部のメモリ領域を特定することで設定し、当該情報に基づいて、インターフェース部が、ホスト装置からの第2記憶部へのアクセスを許可するか否かを判定する。この半導体メモリ装置では、外部アクセス許可領域を特定するための情報に基づいて、インターフェース部が、ホスト装置からの第2記憶部へのアクセスを許可した場合、ホスト装置は、インターフェース部を介して、第2記憶部にアクセスすることができる。つまり、この半導体メモリ装置では、ホスト装置からアクセス速度の速い第2記憶装置(例えば、SRAM)に、直接(バッファや、アクセス速度の遅い不揮発性メモリ等に、暫定的にデータを保持させることなく)、アクセスすることができる。さらに、この半導体メモリ装置では、上記の通り、インターフェース部が第2記憶装置へのアクセス制御を行い、外部装置(例えば、ホスト装置)からアクセスできる領域を外部アクセス許可領域に限定することができる。これにより、この半導体メモリ装置では、外部装置(例えば、ホスト装置)から不正に半導体メモリ装置の高速メモリである第2記憶部にアクセスされることがない。
【0027】
このように、この半導体メモリ装置では、外部装置(例えば、ホスト装置)から安全に半導体メモリ装置の高速メモリである第2記憶部にアクセスすることができる。
【0028】
第6の発明は、第5の発明であって、外部アクセス可能領域の情報の初期値は、第2記憶部の全メモリ領域へのアクセスを禁止することを示す値である。
【0029】
これにより、外部アクセス可能領域が設定されていない状態においても、外部装置(例えば、ホスト装置)から第2記憶部に不正アクセスされることを適切に防止することができる。
【0030】
第7の発明は、第6の発明であって、アクセス禁止情報保持部と、ラッパー部と、さらに備える。
【0031】
アクセス禁止情報保持部は、第2記憶部のアクセス禁止領域を設定するための情報であるアクセス禁止情報を保持する。
【0032】
ラッパー部は、アクセス禁止情報に基づいて、第2記憶部のアクセス禁止領域を設定する。
【0033】
これにより、半導体メモリ装置では、第2記憶部のアクセス禁止領域への不正なアクセスを適切に防止することができる。
【0034】
第8の発明は、第7の発明であって、アクセス禁止情報保持部は、一度のみ書き込みができるROMを含み、アクセス禁止情報は、ROMに書き込まれる。
【0035】
これにより、この半導体メモリ装置では、アクセス禁止情報は、後から変更されることはないので、第2記憶部のアクセス禁止領域への不正なアクセスを適切に防止することができる。
【0036】
第9の発明は、第7の発明であって、アクセス禁止情報保持部は、アクセス禁止情報を保持するための回路を含み、アクセス禁止情報を、回路から出力される信号として、ラッパー部に出力する。
【0037】
これにより、この半導体メモリ装置では、アクセス禁止情報は、後から変更されることはないので、第2記憶部のアクセス禁止領域への不正なアクセスを適切に防止することができる。
【0038】
第10の発明は、第7から第9のいずれかの発明であって、ラッパー部は、マイクロプロセッサからのフェッチアクセス信号がイネーブルを示す信号値であり、かつ、マイクロプロセッサから受信した命令フェッチ信号が示すアドレスがアクセス禁止領域内である場合に、第2記憶部のアクセス禁止領域へのアクセスを許可するように第2記憶部に対するアクセス制御を行う。
【0039】
これにより、この半導体メモリ装置では、上記条件を満たす場合に、アクセス禁止領域へのアクセスを許可することができる。
【0040】
第11の発明は、第7から第10のいずれかの発明であって、ラッパー部は、アクセス禁止情報およびインターフェース部により設定された外部アクセス可能領域の情報に基づいて、第2記憶部に対するアクセス制御を行う。
【0041】
これにより、この半導体メモリ装置では、アクセス禁止情報および外部アクセス可能領域の情報の両方を用いて、多様な条件により、第2記憶部へのアクセス制御を行うことができる。
【0042】
第12の発明は、第7から第11のいずれかの発明であって、ラッパー部は、第2記憶部へのアクセス要求をしているアドレスが、外部アクセス可能領域内のアドレスであり、かつ、アクセス禁止領域内であると判定した場合、第2記憶部への全てのアクセスを禁止する。
【0043】
これにより、この半導体メモリ装置では、外部装置から第2記憶部4に対して不正なアクセスが実行されようとしている可能性の高い状態を検知でき、外部装置から第2記憶部4に対する不正なアクセスを適切に防止することができる。
【0044】
第13の発明は、第1から第12のいずれかの発明であって、インターフェース部は、ホスト装置から、半導体メモリ装置の第2記憶部の全メモリ領域をアクセスするコマンドを受信した場合、第2記憶部に記憶されているデータを正常に読み出すことができないことを示すレスポンスをホスト装置に送信する。
【0045】
これにより、半導体メモリ装置からホスト装置に送信されるレスポンスを調査することで、第13の発明が実施されているか否かを判定することができる。
【0046】
第14の発明は、ホスト装置と、第1から第13のいずれかの発明である半導体メモリ装置と、を備える半導体メモリシステムである。
【0047】
これにより第1から第13のいずれかの発明である半導体メモリ装置を用いて、半導体メモリシステムを実現することができる。
【発明の効果】
【0048】
本発明によれば、外部装置(ホスト装置)から安全に半導体メモリ装置の揮発性の高速メモリにアクセスすることができる半導体メモリ装置、半導体メモリシステムを実現することができる。
【図面の簡単な説明】
【0049】
図1】第1実施形態に係る半導体メモリシステム1000の概略構成図。
図2】半導体メモリシステム1000の動作シーケンス図。
図3】半導体メモリシステム1000の動作シーケンス図。
図4】初期状態における半導体メモリシステム1000の状態を模式的に示す図。
図5】半導体メモリ装置100が起動した後のマイクロプロセッサ2で実行される起動処理後の半導体メモリシステム1000の状態を模式的に示す図。
図6】ホスト装置H1が半導体メモリ装置100に対して実行予約命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図。
図7】半導体メモリ装置100において第2記憶部4の外部アクセス許可領域が設定されるときの半導体メモリシステム1000の状態を模式的に示す図。
図8】ホスト装置H1が半導体メモリ装置100に対して演算対象データの書き込み命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図。
図9】ホスト装置H1が半導体メモリ装置100に対して演算実行命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図。
図10】ホスト装置H1が半導体メモリ装置100に対して演算結果の読み出し命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図。
図11】第2記憶部4の外部アクセス許可領域が設定されたときの半導体メモリシステム1000の状態を模式的に示す図。
図12】第2実施形態に係る半導体メモリシステム2000の概略構成図。
図13】第2実施形態に係る半導体メモリシステム2000の動作を説明するための図。
図14】第2実施形態の第1変形例の半導体メモリシステム2000Aの概略構成図。
図15】第2実施形態の第2変形例の半導体メモリシステムにおける第2記憶部4に対するアクセス制御方法を決定するための条件を示した表を示す図。
図16】CPUバス構成を示す図。
【発明を実施するための形態】
【0050】
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
【0051】
<1.1:半導体メモリシステムの構成>
図1は、第1実施形態に係る半導体メモリシステム1000の概略構成図である。
【0052】
半導体メモリシステム1000は、図1に示すように、ホスト装置H1と、半導体メモリ装置100とを備える。ホスト装置H1と、半導体メモリ装置100とは、通信路CH1により接続されており、双方向に通信が可能である。なお、通信路は、有線であっても無線であってもよい。ホスト装置H1と、半導体メモリ装置100との間において、通信路CH1を介して、コマンド、データ、クロック信号等の通信が行われる。
【0053】
ホスト装置H1は、通信路CH1を介して、半導体メモリ装置100と接続されている。ホスト装置H1は、半導体メモリ装置100に対して、例えば、コマンド、データ、クロック信号等を送信する。
【0054】
また、ホスト装置H1は、半導体メモリ装置100から送信されるデータ等を受信する。
【0055】
半導体メモリ装置100は、図1に示すように、内部バスBusと、ホストインターフェース(ホストIF)1と、マイクロプロセッサ2と、第1記憶部3と、第2記憶部4とを備える。
【0056】
内部バスBusは、例えば、データバス、制御バス、アドレスバスとから構成されており、半導体メモリ装置100の各機能部と接続されている。そして、半導体メモリ装置100の各機能部は、内部バスBusを介して、各種データの送受信を行うことができる。
【0057】
ホストインターフェース1は、内部バスBusに接続されており、マイクロプロセッサ2と、第2記憶部4と、各種データの送受信を行う。また、ホストインターフェース1は、通信路CH1を介して、ホスト装置H1と接続することができる。ホストインターフェース1は、通信路CH1を介して、コマンド、データ等を送受信する。
【0058】
また、ホストインターフェース1は、メモリ制御部11を備え、メモリ制御部11を用いて、第2記憶部4のアクセス制御を実行する。
【0059】
メモリ制御部11は、第2記憶部4のアクセス制御を実行するために用いられる。メモリ制御部11は、例えば、レジスタにより実現されるものであってもよい。
【0060】
マイクロプロセッサ2は、半導体メモリ装置100の各機能部を制御する。マイクロプロセッサ2は、内部バスBusに接続されている。マイクロプロセッサ2は、半導体メモリ装置100の各機能部へ、内部バスBusを介して、各種データを送信し、また、半導体メモリ装置100の各機能部から、内部バスBusを介して、各種データを受信する。
【0061】
第1記憶部3は、データの読み出し/書き込みを行うことができるメモリである。第1記憶部3は、内部バスBusに接続されており、マイクロプロセッサ2により制御される。
【0062】
第2記憶部4は、高速アクセス可能なメモリ(例えば、SRAM)であり、第1記憶部3のアクセス速度よりも速いアクセス速度で、データの読み出し/書き込みを行うことができる。第2記憶部4は、内部バスBusに接続されており、マイクロプロセッサ2又はホストIF1のメモリ制御部11により制御される。
【0063】
<1.2:半導体メモリシステムの動作>
以上のように構成された半導体メモリシステム1000の動作について、以下、説明する。
【0064】
図2図3は、半導体メモリシステム1000の動作シーケンス図である。
【0065】
図4は、初期状態における半導体メモリシステム1000の状態を模式的に示す図である。
【0066】
図5は、半導体メモリ装置100が起動した後のマイクロプロセッサ2で実行される起動処理後の半導体メモリシステム1000の状態を模式的に示す図である。
【0067】
図6は、ホスト装置H1が半導体メモリ装置100に対して実行予約命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図である。
【0068】
図7は、半導体メモリ装置100において第2記憶部4の外部アクセス許可領域が設定されるときの半導体メモリシステム1000の状態を模式的に示す図である。
【0069】
図8は、ホスト装置H1が半導体メモリ装置100に対して演算対象データの書き込み命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図である。
【0070】
図9は、ホスト装置H1が半導体メモリ装置100に対して演算実行命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図である。
【0071】
図10は、ホスト装置H1が半導体メモリ装置100に対して演算結果の読み出し命令を送信したときの半導体メモリシステム1000の状態を模式的に示す図である。
【0072】
以下では、図2図3の半導体メモリシステム1000の動作シーケンス図を参照しながら説明する。
【0073】
まず、初期状態では、図4に示すように、第2記憶部4はデータが記憶されていない状態である。なお、図4において、第2記憶部4のハッチング部分は、データが記憶されていないことを示している。
【0074】
第1記憶部3には、図4に示すように、常駐コードと、追加機能コードと、秘匿情報とが記憶されている。図4は、常駐コードと、追加機能コードと、秘匿情報とが、それぞれ、第1記憶部3の所定のメモリ領域に記憶されていることを模式的に示している。
【0075】
(ステップS1〜ステップS3):
ステップS1において、半導体メモリ装置100が起動され、マイクロプロセッサ2は、起動処理を実行する。
【0076】
そして、マイクロプロセッサ2は、メモリアクセス処理を実行する。具体的には、マイクロプロセッサ2は、第1記憶部3から常駐コードを読み出し(ステップS2)、読み出した常駐コードを第2記憶部4に書き込む(ステップS3)。
【0077】
ステップS3の完了後、マイクロプロセッサ2は、待機状態となる。
【0078】
図5は、ステップS3の処理が終了したときの半導体メモリシステム1000の状態を示している。
【0079】
(ステップS4):
ステップS4において、ホスト装置H1は、半導体メモリ装置100に対して、実行予約命令Dh(RsvExe)を送信する。なお、「Dh(X)」は、ホスト装置H1が半導体メモリ装置100に対して送信するデータであり、当該データには、Xを実行するために必要な、コマンド、引数(例えば、アドレスのデータ)、処理対象データを特定するための情報、所定のデータ等を含ませることができる。
【0080】
半導体メモリ装置100のホストIF1は、ホスト装置H1から受信したデータ(コマンド)を解析し、当該データ(コマンド)が実行予約命令Dh(RsvExe)であると判定する。そして、ホストIF1は、ホスト装置H1から受信したデータ(実行予約命令Dh(RsvExe))をマイクロプロセッサ2にバスBusを介して転送する。
【0081】
マイクロプロセッサ2は、ホストIF1からのデータ(実行予約命令Dh(RsvExe))を受信する。
【0082】
(ステップS5、S6):
ステップS5において、マイクロプロセッサ2は、ホストIF1から受信した実行予約命令Dh(RsvExe)に従い、メモリアクセス処理を実行する。具体的には、マイクロプロセッサ2は、第1記憶部3から、(1)追加機能コード、(2)秘匿情報を読み出す。なお、秘匿情報は、必要に応じて読み出されるものであってもよい。
【0083】
ステップS6において、マイクロプロセッサ2は、第1記憶部3から読み出した(1)追加機能コード、(2)秘匿情報を第2記憶部4に書き込む。なお、秘匿情報は、必要に応じて書き込まれるようにしてもよい。
【0084】
図6は、ステップS6の処理が終了したときの半導体メモリシステム1000の状態を示している。
【0085】
(ステップS7):
ステップS7において、マイクロプロセッサ2は、第2記憶部4の外部アクセス許可領域を設定する処理を行う。具体的には、マイクロプロセッサ2は、バスBusを介して、ホストIF1のメモリ制御部11に第2記憶部4の外部アクセス許可領域を設定するための情報を出力する。外部アクセス許可領域を設定するための情報は、例えば、第2記憶部4のメモリ領域の先頭アドレスからのオフセットOfstと、および、当該オフセットOfstにより決定される第2記憶部4のメモリ領域のアドレスからの深さDpthである。
【0086】
この場合、「(先頭アドレス)+(オフセットOfst)」で決定されるアドレスから「(先頭アドレス)+(オフセットOfst)+(深さDpth)」で決定されるアドレスまでの第2記憶部4のメモリ領域が、外部アクセス許可領域となる。
【0087】
なお、メモリ制御部11には、第2記憶部4の全メモリ領域へのアクセスを禁止することを示す値が設定されている。これにより、外部アクセス可能領域が設定されていない状態においても、外部装置(例えば、ホスト装置H1)から第2記憶部4に不正アクセスされることを適切に防止することができる。
【0088】
ホストIF1のメモリ制御部11は、マイクロプロセッサ2からの外部アクセス許可領域を設定するための情報(例えば、オフセットOfstと深さDpth)を保持する。ホストIF1は、メモリ制御部11に保持された外部アクセス許可領域設定情報(例えば、オフセットOfstと深さDpth)に基づいて、第2記憶部4のアクセス制御を行う。
【0089】
図7は、ステップS7の処理が終了したときの半導体メモリシステム1000の状態を示している。
【0090】
(ステップS8):
ステップS8において、ホスト装置H1は、半導体メモリ装置100に対して、演算対象データの書き込み命令Dh(Write)を送信する。
【0091】
半導体メモリ装置100のホストIF1は、ホスト装置H1から受信したデータ(コマンド)を解析し、当該データ(コマンド)が演算対象データの書き込み命令Dh(Write)であると判定する。そして、ホストIF1は、ホスト装置H1から受信したデータ(演算対象データの書き込み命令Dh(Write))に基づいて、メモリアクセス処理を実行する。
【0092】
(ステップS9):
ステップS9において、ホストIF1は、演算対象データの書き込み命令Dh(Write)に含まれる演算対象データを抽出し、抽出した演算対象データを第2記憶部4に書き込む。このとき、ホストIF1は、メモリ制御部11に保持されている外部アクセス許可領域の情報を参照し、演算対象データを第2記憶部4の外部アクセス許可領域に書き込む。
【0093】
図8は、ステップS9の処理が終了したときの半導体メモリシステム1000の状態を示している。図8から分かるように、ホスト装置H1から送信された演算対象データが第2記憶部4の外部アクセス許可領域に記憶されている。
【0094】
(ステップS10):
ステップS10において、ホスト装置H1は、半導体メモリ装置100に対して、演算実行命令Dh(Exe)(マイクロプロセッサ起動コマンド)を送信する。
【0095】
半導体メモリ装置100のホストIF1は、ホスト装置H1から受信したデータ(コマンド)を解析し、当該データ(コマンド)が演算実行命令Dh(Exe)であると判定する。そして、ホストIF1は、ホスト装置H1から受信したデータ(演算実行命令Dh(Exe))をマイクロプロセッサ2にバスBusを介して転送する。
【0096】
マイクロプロセッサ2は、ホストIF1からのデータ(実行予約命令Dh(Exe))を受信する。
【0097】
(ステップS11〜S13)
ステップS11において、マイクロプロセッサ2は、ホストIF1から受信した演算実行命令Dh(Exe)に従い、メモリアクセス処理を実行する。具体的には、マイクロプロセッサ2は、第2記憶部4から、(1)追加機能コード、(2)演算対象データ、(3)(必要に応じて)秘匿情報を読み出す。
【0098】
ステップS12において、マイクロプロセッサ2は、第2記憶部4から読み出した(1)追加機能コード、(2)演算対象データ、(3)(必要であれば)秘匿情報を用いて、演算(CPU演算処理)を実行する。
【0099】
ステップS13において、マイクロプロセッサ2は、第2記憶部4に対するメモリアクセス処理を行う。具体的には、マイクロプロセッサ2は、上記演算(CPU演算処理)の実行結果(演算結果)を第2記憶部4の外部アクセス許可領域に書き込む。
【0100】
図9は、ステップS13の処理が終了したときの半導体メモリシステム1000の状態を示している。図9から分かるように、マイクロプロセッサ2が(1)追加機能コード、(2)演算対象データ、(3)(必要であれば)秘匿情報を用いて演算した結果が第2記憶部4の外部アクセス許可領域に記憶されている。
【0101】
なお、ホスト装置H1は、例えば、半導体メモリ装置100に対してポーリングし、半導体メモリ装置100のマイクロプロセッサ2による演算処理が完了したことを把握する。
【0102】
(ステップS14〜S16)
ステップS14において、ホスト装置H1は、半導体メモリ装置100に対して、演算結果の読み出し命令Dh(Read)を送信する。
【0103】
半導体メモリ装置100のホストIF1は、ホスト装置H1から受信したデータ(コマンド)を解析し、当該データ(コマンド)が演算結果の読み出し命令Dh(Read)であると判定する。そして、ホストIF1は、ホスト装置H1から受信したデータ(演算結果の読み出し命令Dh(Read))に基づいて、メモリアクセス処理を実行する。
【0104】
ステップS15において、ホストIF1は、外部アクセス許可領域から演算結果を読み出す。
【0105】
ステップS16において、ホストIF1は、外部アクセス許可領域から読み出した演算結果を含めた送信データを作成し、作成した送信データを送信データDs(Result)として、ホスト装置H1に送信する。
【0106】
ホスト装置H1は、ホストIF1から送信されるデータDs(Result)を受信し、受信したデータDs(Result)から、演算結果を抽出する。
【0107】
以上のように、半導体メモリシステム1000では、ホストIF1のメモリ制御部11に第2記憶部4の外部アクセス許可領域を特定するための情報(例えば、オフセットOfstと深さDpth)を保持し、当該情報に基づいて、ホストIF1が、ホスト装置H1からの第2記憶部4へのアクセスを許可するか否かを判定する。半導体メモリシステム1000では、メモリ制御部11に保持されている情報に基づいて、ホストIF1が、ホスト装置H1からの第2記憶部4へのアクセスを許可した場合、ホスト装置H1は、ホストIF1を介して、第2記憶部4にアクセスすることができる。つまり、半導体メモリシステム1000では、ホスト装置H1からアクセス速度の速い第2記憶装置(例えば、SRAM)に、直接(バッファや、アクセス速度の遅い不揮発性メモリ等に、暫定的にデータを保持させることなく)、アクセスすることができる。さらに、半導体メモリシステム1000では、上記の通り、ホストIF1が第2記憶部4へのアクセス制御を行い、外部装置(例えば、ホスト装置H1)からアクセスできる領域を外部アクセス許可領域に限定することができる。これにより、半導体メモリシステム1000では、外部装置(例えば、ホスト装置H1)から不正に半導体メモリ装置100の高速メモリである第2記憶部4にアクセスされることがない。
【0108】
このように、半導体メモリシステム1000では、外部装置(例えば、ホスト装置H1)から安全に半導体メモリ装置100の高速メモリである第2記憶部4にアクセスすることができる。
【0109】
なお、ここで、半導体メモリシステム1000の使用例として、(A)暗号化機能を追加する場合と、(B)乱数生成機能を追加する場合と、(C)出荷時のテスト機能を追加する場合について、説明する。
【0110】
≪(A)暗号化機能を追加する場合≫
まず、半導体メモリシステム1000の使用例として、(A)暗号化機能を追加する場合について、説明する。
【0111】
この場合、半導体メモリシステム1000では、以下の処理が実行される。
(1)暗号化機能を実現するファームウェア(F/W)が第1記憶部3に格納される。なお、この暗号化機能を実現するファームウェア(F/W)は、常駐コード、追加機能コード、および、秘匿情報として、第1記憶部3に格納される。
(2)マイクロプロセッサ2は、起動時(ブート時)に第1記憶部3に格納されている常駐コードを、第1記憶部3から読み出し、第2記憶部4に書き込む。その後、マイクロプロセッサ2は待機状態となる。
(3)ホスト装置H1は、半導体メモリ装置100に対して、実行予約命令Dh(RsvExe)を送信する。半導体メモリ装置100は、実行予約命令Dh(RsvExe)を受信すると、第1記憶部3から追加機能コードと秘匿情報とを読み出し、読み出した追加機能コードと秘匿情報とを第2記憶部4に書き込む。
【0112】
また、半導体メモリ装置100は、ホストIF1のメモリ制御部11において第2記憶部4の外部アクセス許可領域を設定するための情報を保持する。これにより、半導体メモリ装置100は、ホストIF1により、第2記憶部4の外部アクセス許可領域が設定され、これ以降、ホストIF1により、第2記憶部4へのアクセス制御が実行される。
(4)ホスト装置H1は、半導体メモリ装置100に対して、演算対象データの書き込み命令Dh(Write)を送信する。半導体メモリ装置100は、演算対象データの書き込み命令Dh(Write)を受信し、ホストIF1により、演算対象データを第2記憶部4の外部アクセス許可領域に書き込む。
(5)ホスト装置H1は、半導体メモリ装置100に対して、演算実行命令Dh(Exe)(マイクロプロセッサ起動コマンド)を送信する。
【0113】
半導体メモリ装置100のマイクロプロセッサ2は、第2記憶部4に記憶されている演算対象データに対して、第2記憶部4に記憶されている追加機能コードを使用し暗号化処理を実行する。
【0114】
そして、暗号化処理の演算結果は、第2記憶部4の外部アクセス許可領域に書き込まれる。
(6)ホスト装置H1は、例えば、ポーリングにより、半導体メモリ装置100でのマイクロプロセッサ2の処理が完了したことを確認した後、半導体メモリ装置100に対して、演算結果の読み出し命令Dh(Read)を送信する。半導体メモリ装置100のホストIF1は、暗号化処理の演算結果を、第2記憶部4から読み出し、ホスト装置H1に送信する。
【0115】
以上により、半導体メモリシステム1000において、暗号化機能を追加することができる。
【0116】
≪(B)乱数生成機能を追加する場合≫
次に、半導体メモリシステム1000の使用例として、(B)乱数生成機能を追加する場合について、説明する。
【0117】
この場合、半導体メモリシステム1000では、以下の処理が実行される。
(1)乱数生成機能を実現するファームウェア(F/W)が第1記憶部3に格納される。なお、この乱数生成機能を実現するファームウェア(F/W)は、常駐コード、および、追加機能コードとして、第1記憶部3に格納される。
(2)マイクロプロセッサ2は、起動時(ブート時)に第1記憶部3に格納されている常駐コードを、第1記憶部3から読み出し、第2記憶部4に書き込む。その後、マイクロプロセッサ2は待機状態となる。
(3)ホスト装置H1は、半導体メモリ装置100に対して、実行予約命令Dh(RsvExe)を送信する。半導体メモリ装置100は、実行予約命令Dh(RsvExe)を受信すると、第1記憶部3から追加機能コードを読み出し、読み出した追加機能コードを第2記憶部4に書き込む。
【0118】
また、半導体メモリ装置100は、ホストIF1のメモリ制御部11において第2記憶部4の外部アクセス許可領域を設定するための情報を保持する。これにより、半導体メモリ装置100は、ホストIF1により、第2記憶部4の外部アクセス許可領域が設定され、これ以降、ホストIF1により、第2記憶部4へのアクセス制御が実行される。
(4)ホスト装置H1は、半導体メモリ装置100に対して、演算実行命令Dh(Exe)(マイクロプロセッサ起動コマンド)を送信する。
【0119】
半導体メモリ装置100のマイクロプロセッサ2は、第2記憶部4に記憶されている追加機能コードを使用し乱数生成処理を実行する。
【0120】
そして、乱数生成処理の演算結果は、第2記憶部4の外部アクセス許可領域に書き込まれる。
(6)ホスト装置H1は、例えば、ポーリングにより、半導体メモリ装置100でのマイクロプロセッサ2の処理が完了したことを確認した後、半導体メモリ装置100に対して、演算結果の読み出し命令Dh(Read)を送信する。半導体メモリ装置100のホストIF1は、乱数生成処理の演算結果を、第2記憶部4から読み出し、ホスト装置H1に送信する。
【0121】
以上により、半導体メモリシステム1000において、乱数生成機能を追加することができる。
【0122】
≪(C)出荷時のテスト機能を追加する場合≫
次に、半導体メモリシステム1000の使用例として、(C)出荷時のテスト機能を追加する場合について、説明する。
【0123】
この場合、半導体メモリシステム1000では、以下の処理が実行される。
(1)第2記憶部4の特定番地Adrs_specの命令を実行する機能を実現するファームウェア(F/W)が第1記憶部3に格納される。なお、この機能を実現するファームウェア(F/W)は、常駐コードとして、第1記憶部3に格納される。
(2)マイクロプロセッサ2は、第1記憶部3に記憶されている常駐コードにより起動処理を行い、常駐コードから、第2記憶部4の特定番地Adrs_specの情報を取得する。そして、マイクロプロセッサ2は、取得した特定番地Adrs_specに基づいて、ホストIF1のメモリ制御部11において、第2記憶部4の外部アクセス許可領域を設定するための情報を保持する。
【0124】
図11は、第2記憶部4の外部アクセス許可領域が設定されたときの半導体メモリシステム1000の状態を模式的に示す図である。図11から分かるように、この場合、常駐コードが記憶されているメモリ領域の次の番地(メモリアドレス)に特定番地Adrs_specが設定されており、特定番地Adrs_spec以降のメモリ領域が、外部アクセス許可領域に設定されている。
(3)ホスト装置H1は、半導体メモリ装置100に対して、テストコードの書き込み命令Dh(Write)を送信する。半導体メモリ装置100は、テストコードの書き込み命令Dh(Write)を受信し、ホストIF1により、テストコードを第2記憶部4の特定番地Adrs_spec以降のメモリ領域、すなわち、外部アクセス許可領域に書き込む。
(4)ホスト装置H1は、半導体メモリ装置100に対して、演算実行命令Dh(Exe)(マイクロプロセッサ起動コマンド)を送信する。
【0125】
半導体メモリ装置100のマイクロプロセッサ2は、第2記憶部4に記憶されているテストコードを用いてテスト処理を実行する、
そして、テスト処理の演算結果は、第2記憶部4の外部アクセス許可領域に書き込まれる。
(6)ホスト装置H1は、例えば、ポーリングにより、半導体メモリ装置100でのマイクロプロセッサ2の処理が完了したことを確認した後、半導体メモリ装置100に対して、演算結果の読み出し命令Dh(Read)を送信する。半導体メモリ装置100のホストIF1は、テスト処理の演算結果を、第2記憶部4から読み出し、ホスト装置H1に送信する。
【0126】
以上により、半導体メモリシステム1000において、テスト機能(出荷時のテスト機能)を追加することができる。
【0127】
[第2実施形態]
次に、第2実施形態について、説明する。
【0128】
第1実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
【0129】
<2.1:半導体メモリシステムの構成>
図12は、第2実施形態に係る半導体メモリシステム2000の概略構成図である。
【0130】
図12に示すように、第2実施形態の半導体メモリシステム2000は、第1実施形態の半導体メモリシステム1000において、さらに、ラッパー部5と、アクセス禁止情報保持部6とを備える。
【0131】
ラッパー部5は、第2記憶部4とバスBusとの間に設置されており、アクセス禁止情報保持部6と接続されている。ラッパー部5は、例えば、ラッパー(Wrapper)回路により実現される。ラッパー部5は、アクセス禁止情報保持部6から、第2記憶部4のアクセス禁止領域を設定するためのアクセス禁止情報を取得し、取得したアクセス禁止情報に基づいて、第2記憶部4へのアクセス制御を行う。また、ラッパー部5は、マイクロプロセッサ2からバスBusを介して出力されるフェッチアクセス信号を入力する。ラッパー部5は、フェッチアクセス信号がイネーブルであるとき(イネーブルを示す信号値であるとき)、第2記憶部4からデータを読み出し、読み出したデータをマイクロプロセッサ2にバスBusを介して出力する。
【0132】
アクセス禁止情報保持部6は、第2記憶部4のアクセス禁止領域を設定するためのアクセス禁止情報を記憶保持している。そして、アクセス禁止情報保持部6は、ラッパー部5からの要求に従い、保持しているアクセス禁止情報をラッパー部5に出力する。
【0133】
<2.2:半導体メモリシステムの動作>
以上のように構成された半導体メモリシステム2000の動作について、以下、説明する。
【0134】
なお、第1実施形態と同様の部分については、説明を省略する。
【0135】
半導体メモリシステム2000の基本動作は、図2図3の動作シーケンスに示した第1実施形態の半導体メモリシステム1000と同様である。
【0136】
図13は、第2実施形態に係る半導体メモリシステム2000の動作を説明するための図である。
【0137】
アクセス禁止情報保持部6には、第2記憶部4のアクセス禁止領域を設定するためのアクセス禁止情報が記憶されている。アクセス禁止情報保持部6は、例えば、OTP(One Time Programmable)方式のROMにより実現される。したがって、アクセス禁止情報保持部6に保持されているアクセス禁止情報は、後から変更することはできない。したがって、アクセス禁止情報保持部6に保持されているアクセス禁止情報のセキュリティ強度は高いものとなる。
【0138】
なお、アクセス禁止情報保持部6は、ハードウェア実装されるものであってもよい(ハードワイヤードロジックにより実装されるものであってもよい)。この場合、アクセス禁止情報保持部6を実現するハードウェアは変更できないため、アクセス禁止情報保持部6から出力されるアクセス禁止情報は、後から変更することはできない。したがって、アクセス禁止情報保持部6に保持されているアクセス禁止情報のセキュリティ強度は高いものとなる。
【0139】
ラッパー部5は、アクセス禁止情報保持部6から、第2記憶部4のアクセス禁止領域を設定するためのアクセス禁止情報を取得する。そして、ラッパー部5は、取得したアクセス禁止情報に基づいて、第2記憶部4へのアクセス制御を行う。具体的には、ラッパー部5は、アクセス禁止情報に基づいて、第2記憶部4のアクセス禁止領域を設定する。このアクセス禁止領域は、外部装置(例えば、ホスト装置H1)からのアクセスが禁止されるメモリ領域である。なお、アクセス禁止領域は、マイクロプロセッサ2からの命令フェッチによる読み出しは可能であるメモリ領域である。具体的には、マイクロプロセッサ2からラッパー部5に入力されるフェッチアクセス信号がフェッチイネーブルを示す信号値である場合のみ、マイクロプロセッサ2からの命令フェッチにより、第2記憶部4のアクセス禁止領域のデータ(命令コード)を読み出すことができる。
【0140】
図13は、ラッパー部5により設定されたアクセス禁止領域の一例を模式的に示している。具体的には、図13において、メモリ領域prohibit_AR1、prohibit_AR2が、ラッパー部5により設定されたアクセス禁止領域である。この場合、第2記憶部4において、常駐コードが記憶されているメモリ領域(メモリ領域prohibit_AR1として設定されている領域)と、秘匿情報が記憶されているメモリ領域(メモリ領域prohibit_AR1)が、ラッパー部5により設定されたアクセス禁止領域である。
【0141】
このようにアクセス禁止領域を設定することで、第2記憶部4の常駐コードが記憶されているメモリ領域、および、秘匿情報が記憶されているメモリ領域が、外部装置(例えば、ホスト装置H1)から不正アクセスされることを適切に防止することができる。
【0142】
なお、アクセス禁止領域に記憶されているデータ(コード)の読み出しは、命令フェッチにより、以下のようにして実行される。
【0143】
マイクロプロセッサ2は、フェッチアクセス信号および命令フェッチ信号を、バスBusを介して、ラッパー部5に出力する。
【0144】
ラッパー部5は、マイクロプロセッサ2からのフェッチアクセス信号および命令フェッチ信号を受信し、受信した命令フェッチ信号から、命令フェッチ対象のアドレスを取得する。また、ラッパー部5は、受信したフェッチアクセス信号がイネーブルを示す信号値であるか否かを判定する。そして、ラッパー部5は、受信したフェッチアクセス信号がイネーブルを示す信号値である場合、取得した命令フェッチ対象のアドレスが、第2記憶部4のアクセス禁止領域内のアドレスであるときであっても、当該アドレスからデータ(命令コード)を読み出す。そして、ラッパー部5は、読み出したデータ(命令コード)を、バスBusを介して、マイクロプロセッサ2に出力する。
【0145】
なお、半導体メモリシステム2000では、秘匿情報が命令コードの形式で、第2記憶部4に記憶される。これにより、半導体メモリシステム2000では、図13に示すように、秘匿情報が記憶されているメモリ領域がアクセス禁止領域prohibit_AR2に設定されても、上記処理により、マイクロプロセッサ2からのみ読み出すことができる。
【0146】
つまり、(1)ラッパー部5に入力されているフェッチアクセス信号がイネーブルを示す信号値であり、かつ、(2)ラッパー部5が、マイクロプロセッサ2から、アクセス禁止領域prohibit_AR2に含まれるアドレスのコードを読み出すための命令フェッチ信号を受信したとき、アクセス禁止領域prohibit_AR2から秘匿情報(命令コード形式のデータとして記憶されている秘匿情報)を読み出すことができる。
【0147】
なお、秘匿情報は、例えば、命令コードのフォーマットにおいて、任意のデータを含ませることができるフィールドに含ませるようにしてもよい。
【0148】
以上のように、半導体メモリシステム2000では、ラッパー部5により、アクセス禁止領域を設定することができ、第2記憶部4のアクセス禁止領域に記憶されているデータは、マイクロプロセッサ2から、フェッチアクセス信号がイネーブルであるときのみ、命令フェッチにより読み出される。
【0149】
したがって、半導体メモリシステム2000では、外部装置(例えば、ホスト装置H1)が、第2記憶部4でアクセス禁止領域に設定されたメモリ領域に不正にアクセスすることを効果的に防止することができる。
【0150】
≪第1変形例≫
次に、第2実施形態の第1変形例について説明する
なお、上記実施形態と同様の部分については、詳細な説明を省略する。
【0151】
図14は、第2実施形態の第1変形例の半導体メモリシステム2000Aの概略構成図である。
【0152】
本変形例の半導体メモリシステム2000Aは、第2実施形態の半導体メモリシステム2000において、マイクロプロセッサ2をマイクロプロセッサ2Aに置換し、ラッパー部5をラッパー部5Aに置換した構成を有している。
【0153】
マイクロプロセッサ2Aは、フェッチアクセス信号を出力するための信号線L1によりラッパー部5Aと接続されている。マイクロプロセッサ2Aは、信号線L1により、ラッパー部5Aに、バスBusを介することなく直接、フェッチアクセス信号を出力する。なお、上記以外について、マイクロプロセッサ2Aは、マイクロプロセッサ2と同様である。
【0154】
ラッパー部5Aは、信号線L1によりマイクロプロセッサ2Aと接続されている。ラッパー部5Aは、信号線L1により、マイクロプロセッサ2Aからフェッチアクセス信号を入力する。なお、上記以外について、ラッパー部5Aは、ラッパー部5と同様である。
【0155】
本変形例の半導体メモリシステム2000Aでは、ラッパー部5Aが、マイクロプロセッサ2Aから出力されるフェッチアクセス信号を、信号線L1を介して受信する。
【0156】
そして、半導体メモリシステム2000Aでは、受信したフェッチアクセス信号を用いて、第2実施形態と同様の動作が実行される。
【0157】
これにより、半導体メモリシステム2000Aでは、半導体メモリシステム2000と同様に、外部装置(例えば、ホスト装置H1)が、第2記憶部4でアクセス禁止領域に設定されたメモリ領域に不正にアクセスすることを効果的に防止することができる。
【0158】
≪第2変形例≫
次に、第2実施形態の第2変形例について説明する
なお、上記実施形態、変形例と同様の部分については、詳細な説明を省略する。
【0159】
図15は、第2実施形態の第2変形例の半導体メモリシステムにおける第2記憶部4に対するアクセス制御方法を決定するための条件を示した表を示す図である。
【0160】
本変形例の半導体メモリシステムの構成は、第2実施形態の半導体メモリシステム2000、または、第2実施形態の第1変形例の半導体メモリシステム2000Aの構成と同様である。
【0161】
ラッパー部5(またはラッパー部5A)の処理内容が異なる。
【0162】
本変形例のラッパー部5(またはラッパー部5A)は、図15に示した条件(パターン)により、第2記憶部4に対するアクセス制御方法を決定する。
【0163】
具体的には、本変形例のラッパー部5(またはラッパー部5A)は、以下のパターン1〜パターン4により、アクセス制御方法を決定する。
【0164】
(パターン1):
本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1のメモリ制御部11に保持されているデータ(オフセットOfstおよび深さDpth)から、外部アクセス許可領域を決定する。また、本変形例のラッパー部5(またはラッパー部5A)は、アクセス禁止情報保持部6に保持されているアクセス禁止情報から、アクセス禁止領域を決定する。
【0165】
そして、本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1からアクセスしようとしている第2記憶部4のアドレスが、
(1)外部アクセス許可領域外のアドレスであり、かつ、
(2)アクセス禁止領域内のアドレスである場合、
第2記憶部4の当該アドレスへのアクセスを禁止する。
【0166】
なお、本変形例のラッパー部5(またはラッパー部5A)は、フェッチアクセス信号がイネーブルであることを示す信号である場合、マイクロプロセッサ2(または2A)からの命令フェッチによる当該アドレスへのアクセスは許可する。
【0167】
(パターン2):
本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1のメモリ制御部11に保持されているデータ(オフセットOfstおよび深さDpth)から、外部アクセス許可領域を決定する。また、本変形例のラッパー部5(またはラッパー部5A)は、アクセス禁止情報保持部6に保持されているアクセス禁止情報から、アクセス禁止領域を決定する。
【0168】
そして、本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1からアクセスしようとしている第2記憶部4のアドレスが、
(1)外部アクセス許可領域外のアドレスであり、かつ、
(2)アクセス禁止領域外のアドレスである場合、
第2記憶部4の当該アドレスへのアクセスを禁止する。
【0169】
なお、本変形例のラッパー部5(またはラッパー部5A)は、フェッチアクセス信号がイネーブルであることを示す信号である場合、マイクロプロセッサ2(または2A)からの命令フェッチによる当該アドレスへのアクセスは許可する。
【0170】
(パターン3):
本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1のメモリ制御部11に保持されているデータ(オフセットOfstおよび深さDpth)から、外部アクセス許可領域を決定する。また、本変形例のラッパー部5(またはラッパー部5A)は、アクセス禁止情報保持部6に保持されているアクセス禁止情報から、アクセス禁止領域を決定する。
【0171】
そして、本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1からアクセスしようとしている第2記憶部4のアドレスが、
(1)外部アクセス許可領域内のアドレスであり、かつ、
(2)アクセス禁止領域内のアドレスである場合、
第2記憶部4の当該アドレスへのアクセスを全て禁止する。
【0172】
この場合、外部装置(例えば、ホスト装置H1)からの不正アクセスである可能性が高いため、第2記憶部4の当該アドレスへのアクセスを全て禁止する。
【0173】
(パターン4):
本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1のメモリ制御部11に保持されているデータ(オフセットOfstおよび深さDpth)から、外部アクセス許可領域を決定する。また、本変形例のラッパー部5(またはラッパー部5A)は、アクセス禁止情報保持部6に保持されているアクセス禁止情報から、アクセス禁止領域を決定する。
【0174】
そして、本変形例のラッパー部5(またはラッパー部5A)は、ホストIF1からアクセスしようとしている第2記憶部4のアドレスが、
(1)外部アクセス許可領域内のアドレスであり、かつ、
(2)アクセス禁止領域外のアドレスである場合、
第2記憶部4の当該アドレスへのアクセスを許可する。
【0175】
なお、上記パターン1〜3において、アクセス許可、アクセス禁止の設定内容が異なる状態となるのは、外部アクセス許可領域の設定情報、および/または、アクセス禁止領域の設定情報が不正に変更された、あるいは、ノイズ等により変更されたためと予想される。
【0176】
本変形例の半導体メモリシステムでは、ラッパー部5(またはラッパー部5A)により、上記のようにアクセス制御を行うので、さらにセキュリティ強度の高い、第2記憶部4へのアクセス制御を実現することができる。
【0177】
[他の実施形態]
上記実施形態および変形例を組み合わせて、半導体メモリシステム、半導体メモリ装置を構成するようにしてもよい。
【0178】
また、上記実施形態(変形例を含む)において、ホストIF1のメモリ制御部11により設定される外部アクセス許可領域を設定するための情報は、固定のデータ(値)である必要はなく、例えば、半導体メモリ装置が動作しているときに、所定のタイミングで変更されるものであってもよい。これにより、動的に、第2記憶部4の外部アクセス許可領域を変更することができる。また、外部アクセス許可領域を設定するための情報は、常駐コードの中に含まれるものであってもよい。この場合、ホストIF1は、当該常駐コードから外部アクセス許可領域を設定するための情報を抽出し、当該情報により、第2記憶部4の外部アクセス許可領域を設定(変更)するようにしてもよい。
【0179】
また、上記実施形態(変形例を含む)で説明した半導体メモリ装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
【0180】
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
【0181】
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【0182】
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
【0183】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【0184】
例えば、上記実施形態(変形例を含む)の各機能部を、ソフトウェアにより実現する場合、図16に示したハードウェア構成(例えば、CPU、ROM、RAM、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
【0185】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【0186】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
【0187】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【0188】
また、文言「部」は、「サーキトリー(circuitry)」を含む概念であってもよい。サーキトリーは、ハードウェア、ソフトウェア、あるいは、ハードウェアおよびソフトウェアの混在により、その全部または一部が、実現されるものであってもよい。
【0189】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0190】
1000、2000、2000A 半導体メモリシステム
100、100A、100B 半導体メモリ装置
1 ホストインターフェース(インターフェース部)
11 メモリ制御部
2、2A マイクロプロセッサ
3 第1記憶部
4 第2記憶部
5、5A ラッパー部
6 アクセス禁止情報保持部
Bus 内部バス
H1 ホスト装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16