JP2021022061A - ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法 - Google Patents

ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法 Download PDF

Info

Publication number
JP2021022061A
JP2021022061A JP2019137091A JP2019137091A JP2021022061A JP 2021022061 A JP2021022061 A JP 2021022061A JP 2019137091 A JP2019137091 A JP 2019137091A JP 2019137091 A JP2019137091 A JP 2019137091A JP 2021022061 A JP2021022061 A JP 2021022061A
Authority
JP
Japan
Prior art keywords
memory
access control
bus
control information
access
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
Application number
JP2019137091A
Other languages
English (en)
Inventor
本山 雅彦
Masahiko Motoyama
雅彦 本山
健太郎 梅澤
Kentaro Umezawa
健太郎 梅澤
信太郎 幅
Shintaro Haba
信太郎 幅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2019137091A priority Critical patent/JP2021022061A/ja
Priority to US16/802,054 priority patent/US11216390B2/en
Publication of JP2021022061A publication Critical patent/JP2021022061A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Abstract

【課題】バスマスターごとにメモリへのアクセスを制限するための管理情報の不正な書き換えを防止することが可能なストレージ装置を提供する。【解決手段】ストレージ装置1において、コントローラ10は、SecurityCPU11と、CPU12−1〜Nと、バス22と、メモリアクセス制御装置13−1〜Mと、アクセス制御専用バス21とを有する。メモリアクセス制御装置は、自身が格納するアクセス制御情報に基づき、バス22を用いたCPUによるキャッシュとして用いるメモリへのアクセスを制御する。SecurityCPUは、アクセス制御専用バスを用いて、アクセス制御情報内の対応する識別子をCPUに設定する。CPUは、メモリへのアクセス時、設定された識別子をバスに出力する。メモリアクセス制御装置は、バスに出力された識別子とアクセス制御情報とを照合して、メモリへのアクセスの可否を判定する。【選択図】図1

Description

本発明の実施形態は、ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法に関する。
近年、HDD(hard disk drive)やSSD(solid state drive)などといった様々なストレージ装置が広く普及している。この種のストレージ装置は、たとえばSoC(System On a Chip)として構成されるコントローラによって、ストレージへのデータの書き込みや、ストレージからのデータの読み出しなどが制御されている。
コントローラを構成するSoCには、通常、プロセッサと、プロセッサがキャッシュやワークエリアとして使用するメモリとが搭載される。メモリは、SoC外に設けられる場合もある。また、プロセッサは、複数搭載される場合がある。さらに、SoC内には、プロセッサとメモリとを接続するためのバスが実装される。プロセッサが複数搭載される場合、バスを介してメモリへアクセスする当該複数のプロセッサは、それぞれ、バスマスターとして動作する。
複数のバスマスターがメモリへアクセスする環境下においては、バスマスターごとにメモリへのアクセスを制御することが必要になる場合がある。たとえば、あるバスマスターがメモリ上に書き込んだデータを、他のバスマスターが不正に読み出したり書き換えたりできないようにするための方策が求められる。
特開2007−109053号公報 特開2008−97173号公報 米国特許出願公開第2011/191562号明細書 特開2001−175606号公報
たとえば、メモリ上の各領域について、複数のバスマスターそれぞれのアクセス可否などを示す情報を管理し、この管理情報に基づき、バスマスターごとにメモリへのアクセスを制御するといった方法が知られている。この方法の場合、管理情報の不正な書き換えを防止することが必要となる。
本発明が解決しようとする課題は、バスマスターごとにメモリへのアクセスを制限するための管理情報の不正な書き換えを防止することが可能なストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法を提供することである。
実施形態によれば、ストレージ装置は、ストレージと、コントローラとを具備する。前記コントローラは、ホストからのコマンドに基づき、前記ストレージへのデータの書き込みおよび前記ストレージからのデータの読み出しを制御する。前記コントローラは、第1プロセッサと、第2プロセッサと、第1バスと、メモリアクセス制御装置と、第2バスとを有する。前記第1プロセッサは、前記第2プロセッサと比較してセキュリティ強度の高いプロセッサである。前記第1バスは、前記第2プロセッサが、キャッシュまたはワークエリアとして用いるメモリへアクセスするためのバスである。前記メモリアクセス制御装置は、前記メモリ上の領域の範囲を示す情報と、各領域に対応づけられた識別子とを含むアクセス制御情報を保持するメモリアクセス制御情報テーブルを管理し、前記メモリアクセス制御情報テーブルに基づき、前記第1バスを用いた前記第2プロセッサによる前記メモリへのアクセスを制御する。前記第2バスは、前記第1プロセッサが、前記第2プロセッサおよび前記メモリアクセス制御装置へアクセスするためのバスである。前記第1プロセッサは、前記第2バスを用いて、前記メモリアクセス制御情報テーブルを設定するとともに、前記メモリアクセス制御情報テーブルが保持する識別子の中の前記第2プロセッサがアクセスを許可されている前記メモリ上の領域の範囲に対応する識別子を第2プロセッサに設定する。前記複数の第2プロセッサは、前記メモリへのアクセス時、前記メモリへのアクセスを要求する制御情報とともに、前記第1プロセッサによって設定された前記識別子を前記第1バスに出力する。前記メモリアクセス制御装置は、前記第1バスに出力された前記識別子と前記メモリアクセス制御情報テーブルとを照合して、前記第2プロセッサが要求する前記メモリへのアクセスの可否を判定する。
第1実施形態のストレージ装置の一構成例を示す図。 第1実施形態のストレージ装置における管理情報の一設定例を示す図。 第1実施形態のストレージ装置におけるアクセス管理モジュールの動作手順を示すフローチャート。 第1実施形態のストレージ装置におけるメモリへのアクセス時のバスマスターの動作手順を示すフローチャート。 第1実施形態のストレージ装置におけるメモリアクセス制御装置の動作手順を示すフローチャート。 第2実施形態のストレージ装置における管理情報の一設定例を示す図。
以下、実施の形態について、図面を参照して説明する。
(第1実施形態)
まず、第1実施形態について説明する。
図1は、本実施形態のストレージ装置1の一構成例を示す図である。
ストレージ装置1は、PCIe(登録商標)などのインタフェースを介して接続されるホストからコマンドを受信し、そのコマンドに対応する処理を実行して、その処理結果をホストへ送信する。ストレージ装置1が受信するコマンドには、データの書き込みを要求するライトコマンドや、データの読み出しを要求するリードコマンドなどが含まれる。
ストレージ装置1は、たとえばSoC(system on a chip)として構成されるコントローラ10と、たとえばフラッシュメモリであるストレージ20とを有する。
コントローラ10は、Security CPU11を含む複数のCPU(11,12−1,12−2,…,12−N)を有する。Security CPU11内に格納されている情報へのアクセス手段は限られており、その情報の信頼性が保証される。Security CPU11は、一般的なCPU(12−1,12−2,…,12−N)と比較してセキュリティ強度の高いCPUである。Security CPU11は、動作の安全性が確保されたCPUであり、たとえばRoots of Trustとして機能することができる。以下、一般的なCPU12−1,12−2,…,12−Nを、CPU12と総称することがある。ここでは、Security CPU11は、たとえばストレージ20に格納されている一プログラムであるアクセス管理モジュール11Aを実行するものと想定する。アクセス管理モジュール11Aについては後述する。また、以下、アクセス管理モジュール11Aに基づくSecurity CPU11の動作などを、アクセス管理モジュール11Aを主体として記載することがある。
一方、CPU12は、たとえばストレージ20に格納されているファームウェアを実行するものと想定する。このファームウェアは、ストレージ20へのデータの書き込みやストレージ20からのデータの読み出しなどの処理の手順を示すプログラムである。CPU12は、識別情報レジスタ121を有する。識別情報レジスタ121についても後述する。
また、コントローラ10は、複数のメモリアクセス制御装置(13−1,13−2,…,13−M)と、たとえばSRAMである複数のメモリ(14−1,14−2,…,14−M)とを有する。以下、メモリアクセス制御装置13−1,13−2,…,13−Mを、メモリアクセス制御装置13と総称することがあり、メモリ14−1,14−2,…,14−Mを、メモリ14と総称することがある。メモリ14は、CPU12によってキャッシュやワークエリアとして使用される。つまり、コントローラ10は、内部メモリであるメモリ14をデータの一時的な格納領域として利用しながら、不揮発性メモリ30へのデータの書き込み処理および不揮発性メモリ30からのデータの読み出し処理を実行する。なお、メモリ14は、コントローラ10の外部に設けられ、メモリアクセス制御装置13経由でバス22に接続されるものであってもよい。
メモリアクセス制御装置13は、CPU12によるメモリ14へのアクセスを制御するために、メモリ14と一対一に対応して設けられるデバイスである。この制御のために、メモリアクセス制御装置13は、レジスタなどにメモリアクセス制御情報テーブル131を格納する。メモリアクセス制御情報テーブル131は、アクセス管理モジュール11Aによって設定される。メモリアクセス制御装置13は、電子回路として構成されるものであってもよいし、プロセッサとメモリとを備え、メモリに格納されているプログラムをプロセッサが実行することによって構成されるものであってもよい。
さらに、コントローラ10は、Security CPU11、CPU12およびメモリアクセス制御装置13を相互に接続するバスとして、アクセス制御専用バス21と、バス22との2つのバスを有する。アクセス制御専用バス21は、アクセス管理モジュール11Aが、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131を設定するためのバスである。また、アクセス制御専用バス21は、同じくアクセス管理モジュール11Aが、メモリアクセス制御情報テーブル131に含まれる、メモリ14へのアクセスの制御のために設定した識別子をCPU12の識別情報レジスタ121に格納するためのバスである。アクセス制御専用バス21については、Security CPU11だけがバスマスターとして動作する。CPU12の識別情報レジスタ121は、アクセス制御専用バス21経由でのみアクセスすることができ、また、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131も、アクセス制御専用バス21経由でのみアクセスすることができる。つまり、CPU12の識別情報レジスタ121へのアクセスは、アクセス管理モジュール11Aのみに制限されており、また、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131へのアクセスも、同じくアクセス管理モジュール11Aのみに制限されている。
一方、バス22は、CPU12が、メモリ14へアクセスするためのバスである。メモリ14は、メモリアクセス制御装置13を介してバス22へ接続される。換言すれば、メモリアクセス制御装置13は、バス22とメモリ14との間に介在するように設けられる。バス22については、Security CPU11と、CPU12とが、バスマスターとして動作する。つまり、Security CPU11も、バス22を用いてメモリアクセス制御装置13経由でメモリ14へアクセスすることができる。
このように、本ストレージ装置1は、一般的なバス22に加えて、アクセス制御専用バス21を有している。また、本ストレージ装置1は、このアクセス制御専用バス21経由でCPU12およびメモリアクセス制御装置13にアクセスするアクセス管理モジュール11Aを有している。
たとえば、メモリ14−1を領域Aと領域Bとの2つの領域に分け、領域AはCPU12−1とCPU12−2とに割り当て、領域BはCPU12−3に割り当てる場合を想定する。換言すれば、領域AへのアクセスはCPU12−1とCPU12−2とのみに限定し、領域BへのアクセスはCPU12−3のみに限定する場合を想定する。
この場合、アクセス管理モジュール11Aは、アクセス制御専用バス21経由で、図2に示すように、メモリ14−1に対応するメモリアクセス制御装置13−1内のメモリアクセス制御情報テーブル131を設定するとともに、CPU12−1,12−2,12−3それぞれの識別情報レジスタ121の値を設定する。
メモリアクセス制御情報テーブル131は、識別子フィールドa1と、領域情報フィールドa2とを有する。アクセス管理モジュール11Aは、領域Aへのアクセスに用いる識別子を当該領域A用に確保したメモリアクセス制御情報テーブル131内の1エントリの識別子フィールドa1に格納する。また、アクセス管理モジュール11Aは、領域Bへのアクセスに用いる識別子を当該領域B用に確保したメモリアクセス制御情報テーブル131内の1エントリの識別子フィールドa1に格納する。ここでは、領域Aへのアクセスに用いる識別子が1、領域Bへのアクセスに用いる識別子が2に設定されている。
また、アクセス管理モジュール11Aは、メモリ14−1上における領域Aの範囲を示す領域情報を当該領域A用に確保したメモリアクセス制御情報テーブル131内の1エントリの領域情報フィールドa2に格納する。アクセス管理モジュール11Aは、メモリ14−1上における領域Bの範囲を示す領域情報を当該領域B用に確保したメモリアクセス制御情報テーブル131内の1エントリの領域情報フィールドa2に格納する。領域情報は、たとえば開始アドレスと終了アドレスとである。
そして、アクセス管理モジュール11Aは、領域Aへのアクセスに用いる識別子(1)をCPU12−1とCPU12−2との識別情報レジスタ121に格納し、領域Bへのアクセスに用いる識別子(2)をCPU12−3の識別情報レジスタ121に格納する。
前述したように、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131の設定と、CPU12の識別情報レジスタ121の値の設定とは、アクセス制御専用バス21経由でのみ可能である。つまり、アクセス制御専用バス21のバスマスターとして唯一動作するアクセス管理モジュール11Aのみに制限されている。よって、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131や、CPU12の識別情報レジスタ121の値などの管理情報の不正な書き換えは防止される。
たとえば、CPU12−1がメモリ14−1の領域Aへアクセスする場合、CPU12−1は、メモリ14−1へのアクセスを要求する制御情報に加えて、識別情報レジスタ121に格納されている識別子をバス22へ出力する。制御情報は、たとえばコマンドと称される情報であって、データの書き込み/読み出しのいずれであるのか、すなわちそのアクセスの種類を示す情報と、そのアクセスが対象とするメモリ上のアドレス情報とを含む。また、制御情報は、メモリ14−1を示す情報、つまり、複数のメモリ14の中のいずれか1つのメモリ14を示す情報を含む。
たとえば、AMBA AXIバスの場合、データ転送用のチャネルとは別に、AWUSER、ARUSER、WUSER、RUSERなどといった、ユーザー情報を転送可能なチャネルが定義されている。このAMBA AXIバスをバス22として適用すれば、制御情報に加えて、識別子を出力することができる。
メモリアクセス制御装置13−1は、メモリ14−1へのアクセスを要求する制御情報がバス22に出力された場合、その制御情報に含まれるアドレス情報をメモリアクセス制御情報テーブル131と照合して、領域Aへのアクセスであることを認識する。また、メモリアクセス制御装置13−1は、その制御情報に加えてバス22へ出力された識別子をメモリアクセス制御情報テーブル131と照合して、そのアクセスの可否を判定する。CPU12−1の識別情報レジスタ121には1が格納されているので、そのアクセスは許可される。アクセスが許可される場合、メモリアクセス制御装置13−1は、その制御情報をメモリ14−1へ転送する。そして、メモリアクセス制御装置13−1は、その制御情報に応じてメモリ14−1から転送されてくる情報をバス22へ出力する。
なお、Security CPU11に関しては、たとえば、特別の識別子を設け、この識別子を用いてメモリ14へのアクセスを行うことで、いずれのメモリ14のいずれの領域へのアクセスも許可されるようにしてもよいし、または、メモリアクセス制御情報テーブル131に設定されていない領域のみアクセスが許可されるようにしてもよい。メモリアクセス制御情報テーブル131に設定されていない領域とは、いずれのCPU12にも割り当てられていない領域である。
CPU12−2の識別情報レジスタ121にも1が格納されているので、CPU12−2によるメモリ14−1の領域Aへのアクセスは許可される。一方、CPU12−3の識別情報レジスタ121には、1ではなく2が格納されているので、CPU12−3によるメモリ14−1の領域Aへのアクセスは拒否される。アクセスが拒否される場合、メモリアクセス制御装置13−1は、エラーを示す情報をバス22へ出力する。
逆に、識別情報レジスタ121に2が格納されているCPU12−3は、メモリ14−1の領域Bへのアクセスが許可されるが、識別情報レジスタ121に2ではなく1が格納されているCPU12−1とCPU12−2とは、メモリ14−1の領域Bへのアクセスが拒否される。
本ストレージ装置1においては、CPU12−3の識別情報レジスタや、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131の書き換えは、アクセス制御専用バス21経由でのみ可能としている。よって、たとえばこれらを書き換えたりすることによる、CPU12−3から領域Aへの不正なアクセスのような不正行為を防止することができる。なお、この不正行為のために行われ得る書き換えは、CPU12−3の識別情報レジスタの値を2から1へ書き換えること、メモリアクセス制御情報テーブル131内の領域Aの識別子フィールドa1を1から2へ書き換えること、または、メモリアクセス制御情報テーブル131内の領域Bの領域情報フィールドa2を領域Aの範囲を含むように書き換えることなどである。
なお、ここでは、メモリ14−1の領域A用にメモリアクセス制御情報テーブル131内の1エントリを確保し、その識別子フィールドa1に格納した識別子を、CPU12−1の識別情報レジスタ121とCPU12−2の識別情報レジスタ121とに格納することで、CPU12−1とCPU12−2とがメモリ14−1の領域Aにアクセスできるようにする例を示した。これに代えて、たとえば、メモリ14−1の領域A用にメモリアクセス制御情報テーブル131内の2エントリを確保し、一方の識別子フィールドa1にはCPU12−1が使用する識別子を格納し、他方の識別子フィールドa1にはCPU12−2が使用する識別子を格納することで、CPU12−1とCPU12−2とがメモリ14−1の領域Aにアクセスできるようにしてもよい。この場合、双方の領域情報フィールドa2には、同じ情報、つまり、メモリ14−1上における領域Aの範囲を示す領域情報が格納される。
図3は、アクセス管理モジュール11Aの動作手順を示すフローチャートである。
アクセス管理モジュール11Aは、メモリアクセスに用いる識別子と、メモリ上における領域の範囲を示す領域情報とを含む、メモリアクセス制御装置13のメモリアクセス制御情報テーブル131を、アクセス制御専用バス21経由で設定する(S11)。
また、アクセス管理モジュール11Aは、メモリアクセス制御情報テーブル131に含まれる識別子を、アクセス制御専用バス21経由でCPU12の識別情報レジスタ121へ格納する(S12)。
図4は、ストレージ20へのデータの書き込みやストレージ20からのデータの読み出しなどの処理の手順を示すプログラムであるファームウェアを実行し、メモリ14へのアクセスのためにバス22のバスマスターとして動作するCPU12の動作手順を示すフローチャートである。
CPU12は、メモリ14へアクセスする場合、メモリへのアクセスを要求する制御情報をバス22に出力する(S21)、また、CPU12は、その制御情報に加えて、識別情報レジスタ121に格納されている識別子をバス22に出力する(S22)。CPU12は、制御情報に対する応答の情報をバス22から取得する(S23)。
図5は、メモリアクセス制御装置13の動作手順を示すフローチャートである。
メモリアクセス制御装置13は、対応するメモリ14へのアクセスを要求する制御情報がバス22に出力されたか否かを監視する(S31)。出力されている場合(S31:YES)、この制御情報を出力したCPU12は、当該制御情報とともに識別子をバス22に出力しているので、メモリアクセス制御装置13は、その識別子をバス22から取得する(S32)。
メモリアクセス制御装置13は、取得した識別子と、制御情報に含まれるアクセス領域とをメモリアクセス制御情報テーブル131と照合する(S33)。この照合の結果、メモリ14へのアクセスを許可と判定した場合(S34:YES)、メモリアクセス制御装置13は、バス22に出力された制御情報をメモリ14へ転送する(S35)。メモリ14へのアクセスを許可と判定する場合とは、制御情報に含まれるアクセス領域に対応するメモリ14の領域へのアクセスが許可されている識別子と、取得した識別子が一致する場合である。そして、メモリアクセス制御装置13は、その制御情報に応じてメモリ14から転送されてくる情報をバス22へ出力する(S36)。
一方、メモリ14へのアクセスを拒否と判定した場合(S34:NO)、メモリアクセス制御装置13は、エラーを示す情報をバス22へ出力する(S37)。
このように、本ストレージ装置1は、アクセス管理モジュール11Aと、アクセス制御専用バス21とを設け、かつ、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131やCPU12の識別情報レジスタ121の値などの管理情報へのアクセスを、アクセス管理モジュール11Aのみがバスマスターとして動作するアクセス制御専用バス21経由に限定する構成を有しているため、管理情報の不正な書き換えを防止することが可能である。
なお、ここで説明したバスマスターごとのメモリへのアクセスの制御の方法は、ストレージ装置1のコントローラ10内におけるCPU12によるメモリ14へのアクセスの制御に限定されず、複数のバスマスターがバス経由でメモリへアクセスするシステムにおける当該複数のバスマスターによるメモリへのアクセスの制御全般に適用可能である。
(第2実施形態)
次に、第2実施形態について説明する。なお、ここでは、第1実施形態と同一の構成要素については同一の符号を用い、それらについての重複する説明を省略する。
本実施形態のストレージ装置1は、第1実施形態において説明した、バスマスターごとにメモリへのアクセスを制御するための管理情報の不正な書き換えを防止する構成を有するストレージ装置1に関して、さらに、書き込みのみ許可(WO)、読み出しのみ許可(RO)、アクセス禁止(Deny)、書き込みおよび読み出しのいずれも許可(RW)などのアクセスの種類をバスマスターごとに制御する。そのために、本実施形態のストレージ装置1においては、図6に示すように、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131が、アクセスの種類を示す情報(WO,RO,Deny,RW)を格納する属性フィールドa3をさらに有する。そして、本実施形態のストレージ装置1においては、アクセス管理モジュール11Aが、この属性フィールドa3に適切な値を設定し、メモリアクセス制御装置13が、この属性フィールドa3を含むメモリアクセス制御情報テーブル131に基づき、CPU12によるメモリ14へのアクセス可否を判定することによって、さらに、アクセスの種類をバスマスターごとに制御する。
図6は、CPU12−1,12−2,12−3のそれぞれについて、メモリ14−1上の領域A,領域Bへのアクセスを以下の通りに制御する場合におけるメモリアクセス制御情報テーブル131と識別情報レジスタ121との一設定例を示している。
・CPU12−1
領域A:書き込みのみ許可、領域B:書き込みおよび読み出しのいずれも許可
・CPU12−2
領域A:読み出しのみ許可、領域B:書き込みおよび読み出しのいずれも許可
・CPU12−3
領域A:アクセス禁止、領域B:書き込みおよび読み出しのいずれも許可
アクセス管理モジュール11Aは、たとえば、領域Aおよび領域Bに対して、CPU12−1用の識別子として1、CPU12−2用の識別子として2、CPU12−3用の識別子として3をそれぞれ割り当てる。また、アクセス管理モジュール11Aは、領域A用として、CPU12−1,CPU12−2,CPU12−3に対応させて、メモリアクセス制御情報テーブル131内の3エントリを確保し、かつ、領域B用として、CPU12−1,CPU12−2,CPU12−3に対応させて、メモリアクセス制御情報テーブル131内の3エントリを確保する。そして、アクセス管理モジュール11Aは、CPU12−1,CPU12−2,CPU12−3用に領域Aおよび領域Bのそれぞれに対して3つずつ割り当てた識別子を、領域A用および領域B用として3つずつ確保した6つのエントリの識別子フィールドa1に格納するとともに、書き込みのみ許可、読み出しのみ許可、アクセス禁止、書き込みおよび読み出しのいずれも許可などを示す値を属性フィールドa3に格納する。より詳しくは、メモリ14−1上の領域A,領域Bへのアクセスが前述の通りに制御されるように格納する。つまり、図6に示すように格納する。
ここで、CPU12がバス22に出力する、メモリ14へのアクセスを要求する制御情報には、そのアクセスの種類を示す情報が含まれているものとする。本実施形態のストレージ装置1におけるメモリアクセス制御装置13は、さらに、このアクセスの種類を示す情報をメモリアクセス制御情報テーブル131と照合して、メモリ14へのアクセス可否を判定する。
たとえば、CPU12−1が、メモリ14−1の領域Aへのデータの書き込みを要求する制御情報をバス22へ出力した場合、メモリ14−1に対応させて設けられるメモリアクセス制御装置13−1は、このアクセスを許可する。一方、CPU12−1が、当該領域Aからのデータの読み出しを要求する制御情報をバス22へ出力した場合、メモリアクセス制御装置13−1は、このアクセスを拒否する。つまり、CPU12−1によるメモリ14−1の領域Aへのアクセスについて、本ストレージ装置1は、データの書き込みは許可するが、データの読み出しは拒否するといった、同一の領域へのアクセスを、アクセスの種類別に制御する。
そして、さらにアクセスの種類をバスマスターごとに制御する本ストレージ装置1においても、メモリアクセス制御装置13内のメモリアクセス制御情報テーブル131の属性フィールドa3は、アクセス管理モジュール11Aのみがバスマスターとして動作するアクセス制御専用バス21経由でのみ書き換え可能であるので、第1実施形態と同様、管理情報の不正な書き換えを防止することが可能である。
なお、ここで説明したバスマスターごとのメモリへのアクセスの制御の方法も、ストレージ装置1のコントローラ10内におけるCPU12によるメモリ14へのアクセスの制御に限定されず、複数のバスマスターがバス経由でメモリへアクセスするシステムにおける当該複数のバスマスターによるメモリへのアクセスの制御全般に適用可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ストレージ装置、10…コントローラ、11…Security CPU、11A…アクセス管理モジュール、12…一般的なCPU、13…メモリアクセス制御装置、14…メモリ、20…ストレージ、21…アクセス制御専用バス、22…バス、30…不揮発性メモリ、121…識別情報レジスタ、131…メモリアクセス制御情報テーブル。

Claims (10)

  1. ストレージと、
    前記ストレージへのデータの書き込みおよび前記ストレージからのデータの読み出しを制御するコントローラと、
    を具備し、
    前記コントローラは、
    第1プロセッサと、
    第2プロセッサと、
    前記第2プロセッサが、キャッシュまたはワークエリアとして用いるメモリへアクセスするための第1バスと、
    前記メモリ上の領域の範囲を示す情報と、各領域に対応づけられた識別子とを含むアクセス制御情報を保持するメモリアクセス制御情報テーブルを管理し、前記メモリアクセス制御情報テーブルに基づき、前記第1バスを用いた前記第2プロセッサによる前記メモリへのアクセスを制御するメモリアクセス制御装置と、
    前記第1プロセッサが、前記第2プロセッサおよび前記メモリアクセス制御装置へアクセスするための第2バスと、
    を有し、
    前記第1プロセッサは、前記第2プロセッサと比較してセキュリティ強度の高いプロセッサであり、
    前記第1プロセッサは、前記第2バスを用いて、前記メモリアクセス制御情報テーブルを設定するとともに、前記メモリアクセス制御情報テーブルが保持する識別子の中の前記第2プロセッサがアクセスを許可されている前記メモリ上の領域の範囲に対応する識別子を前記第2プロセッサに設定し、
    前記第2プロセッサは、前記メモリへのアクセス時、前記メモリへのアクセスを要求する制御情報とともに、前記第1プロセッサによって設定された前記識別子を前記第1バスに出力し、
    前記メモリアクセス制御装置は、前記第1バスに出力された前記識別子と前記メモリアクセス制御情報テーブルとを照合して、前記第2プロセッサが要求する前記メモリへのアクセスの可否を判定する、
    ストレージ装置。
  2. 前記メモリアクセス制御情報テーブルの設定が、前記第2バス経由で前記第1プロセッサからのみに限定されている請求項1に記載のストレージ装置。
  3. 前記第2プロセッサは、前記識別子を格納するレジスタを有し、
    前記レジスタへの前記識別子の格納が、前記第2バス経由で前記第1プロセッサからのみに限定されている、
    請求項1または2に記載のストレージ装置。
  4. 前記メモリアクセス制御装置は、前記制御情報に含まれるアドレス情報に基づき、前記第2プロセッサがアクセス対象とする前記メモリ上の領域を判定する請求項1〜3のいずれか1項に記載のストレージ装置。
  5. 前記アクセス制御情報は、各領域において許可されるアクセスの種類を示す情報をさらに含み、
    前記メモリアクセス制御装置は、前記制御情報に含まれるアクセスの種類を示す情報と前記メモリアクセス制御情報テーブルとをさらに照合して、前記第2プロセッサが要求する前記メモリへのアクセスの可否を判定する、
    請求項4に記載のストレージ装置。
  6. 前記メモリは、前記コントローラ内に設けられている請求項1〜5のいずれか1項に記載のストレージ装置。
  7. メモリと、
    第1バスと、
    前記第1バスを用いて前記メモリへアクセスする複数のバスマスターと、
    前記メモリ上の領域の範囲を示す情報と、各領域に対応づけられた識別子とを含むアクセス制御情報を保持するメモリアクセス制御情報テーブルを管理し、前記メモリアクセス制御情報テーブルに基づき、前記第1バスを用いた前記複数のバスマスターによる前記メモリへのアクセスを制御するメモリアクセス制御装置と、
    前記メモリアクセス制御情報テーブルを設定するとともに、前記メモリアクセス制御情報テーブルが保持する識別子の中の前記複数のバスマスターの少なくとも1つがアクセスを許可されている前記メモリ上の領域の範囲に対応する識別子を、当該複数のバスマスターの少なくとも1つに設定するアクセス管理装置と、
    前記アクセス管理装置が、前記複数のバスマスターおよび前記メモリアクセス制御装置へアクセスするための第2バスと、
    を具備し、
    前記複数のバスマスターの1つは、前記メモリへのアクセス時、前記メモリへのアクセスを要求する制御情報とともに、前記アクセス管理装置によって設定された前記識別子を前記第1バスに出力し、
    前記メモリアクセス制御装置は、前記第1バスに出力された前記識別子と前記メモリアクセス制御情報テーブルとを照合して、前記複数のバスマスターの1つが要求する前記メモリへのアクセスの可否を判定する、
    メモリアクセス制御システム。
  8. 前記メモリアクセス制御情報テーブルの設定が、前記第2バス経由で前記アクセス管理装置からのみに限定されている請求項7に記載のメモリアクセス制御システム。
  9. 前記複数のバスマスターは、前記識別子を格納するレジスタを有し、
    前記レジスタへの前記識別子の格納が、前記第2バス経由で前記アクセス管理装置からのみに限定されている、
    請求項7または8に記載のメモリアクセス制御システム。
  10. 第1バスを用いたバスマスターによるメモリへのアクセスを制御するメモリアクセス制御方法であって、
    前記メモリ上の領域の範囲を示す情報と、各領域に対応づけられた識別子とを含むアクセス制御情報を、第2バスを用いてメモリアクセス制御情報テーブルに設定することと、
    前記第2バスを用いて、前記アクセス制御情報に含まれる識別子の中の前記バスマスターがアクセスを許可されている前記メモリ上の領域の範囲に対応する識別子を前記バスマスターに設定することと、
    前記バスマスターが、前記メモリへのアクセスを要求する制御情報とともに、前記設定された前記識別子を前記第1バスに出力したことに応じて、
    前記第1バスに出力された前記識別子と前記アクセス制御情報とを照合して、前記バスマスターが要求する前記メモリへのアクセスの可否を判定することと、を含む、
    メモリアクセス制御方法。
JP2019137091A 2019-07-25 2019-07-25 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法 Pending JP2021022061A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019137091A JP2021022061A (ja) 2019-07-25 2019-07-25 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法
US16/802,054 US11216390B2 (en) 2019-07-25 2020-02-26 Storage device, memory access control system, and memory access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019137091A JP2021022061A (ja) 2019-07-25 2019-07-25 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2021022061A true JP2021022061A (ja) 2021-02-18

Family

ID=74187836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019137091A Pending JP2021022061A (ja) 2019-07-25 2019-07-25 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法

Country Status (2)

Country Link
US (1) US11216390B2 (ja)
JP (1) JP2021022061A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT202000009364A1 (it) * 2020-04-29 2021-10-29 St Microelectronics Srl Procedimento per accedere a una memoria e circuito corrispondente
US20210117359A1 (en) * 2020-12-24 2021-04-22 Krishna Kumar Nagar User Signals for Data Transmission Over a Bus Interface Protocol

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
JP2001175606A (ja) 1999-12-20 2001-06-29 Sony Corp データ処理装置、データ処理機器およびその方法
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법
US6826640B1 (en) * 2003-06-04 2004-11-30 Digi International Inc. Bus bandwidth control system
TWI251747B (en) * 2004-01-29 2006-03-21 Via Tech Inc Method for facilitating read completion in a computer system supporting write posting operations
JP4587756B2 (ja) * 2004-09-21 2010-11-24 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2007109053A (ja) 2005-10-14 2007-04-26 Matsushita Electric Ind Co Ltd バスアクセス制御装置
JP4469783B2 (ja) 2005-11-28 2010-05-26 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
JP4756603B2 (ja) 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム
US20110191562A1 (en) 2010-02-02 2011-08-04 Broadcom Corporation Apparatus and method for partitioning, sandboxing and protecting external memories
EP3279796B1 (en) * 2016-08-02 2020-07-15 NXP USA, Inc. Resource access management component and method therefor
JP7018833B2 (ja) * 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
US11216390B2 (en) 2022-01-04
US20210026787A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
CN100580642C (zh) 通用串行总线存储设备及其访问控制方法
KR20170139438A (ko) 디디알 호환 비동기 메모리 모듈 시스템 및 그것의 동작 방법
US5089951A (en) Microcomputer incorporating memory
US10339333B2 (en) Method and apparatus for controlling application to access memory
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
US20080209108A1 (en) System and method of page buffer operation for memory devices
JP2012128850A (ja) メモリ保護ユニットおよび記憶素子へのアクセスコントロール方法
JP7213879B2 (ja) 間接アクセスメモリコントローラ用のメモリ保護装置
WO2010097925A1 (ja) 情報処理装置
US11216390B2 (en) Storage device, memory access control system, and memory access control method
JP3979826B2 (ja) メモリコントローラ、メモリシステム及びメモリの制御方法
JP2021507362A (ja) 間接アクセスメモリコントローラ向けの保護機能を追加するための機器
CN107644173A (zh) 用于控制应用程序访问存储器的方法和装置
CN101620652B (zh) 一种保护存储器数据的主板、计算机和方法
US20140372653A1 (en) Storage Device with Multiple Interfaces and Multiple Levels of Data Protection and Related Method Thereof
JP2010009454A (ja) 情報処理装置
US20080183974A1 (en) Dual Ported Memory with Selective Read & Write Protection
JP2005515536A (ja) 所望のセキュリティを用いた入出力デバイスにアクセスするための方法及び装置
US20060136634A1 (en) Data address security device and method
JP2008234188A (ja) 情報処理装置
JP4972410B2 (ja) フラッシュメモリ内でのアクセスを制御するための方法、およびこのような方法の実施のためのシステム
US10909272B2 (en) Storage compute appliance with user authentication and memory allocation capabilities
US20200192824A1 (en) Security memory device and operation method thereof
JP4810930B2 (ja) 情報処理システム
US11366775B2 (en) Data storage device with an exclusive channel for flag checking of read data, and non-volatile memory control method