JP6226830B2 - 情報処理装置、データアクセス方法およびプログラム - Google Patents

情報処理装置、データアクセス方法およびプログラム Download PDF

Info

Publication number
JP6226830B2
JP6226830B2 JP2014151059A JP2014151059A JP6226830B2 JP 6226830 B2 JP6226830 B2 JP 6226830B2 JP 2014151059 A JP2014151059 A JP 2014151059A JP 2014151059 A JP2014151059 A JP 2014151059A JP 6226830 B2 JP6226830 B2 JP 6226830B2
Authority
JP
Japan
Prior art keywords
data
unit
access request
read
deletion
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.)
Expired - Fee Related
Application number
JP2014151059A
Other languages
English (en)
Other versions
JP2016024779A (ja
Inventor
後藤 真孝
真孝 後藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014151059A priority Critical patent/JP6226830B2/ja
Priority to US14/699,031 priority patent/US20160026394A1/en
Publication of JP2016024779A publication Critical patent/JP2016024779A/ja
Application granted granted Critical
Publication of JP6226830B2 publication Critical patent/JP6226830B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Description

本発明の実施形態は、情報処理装置、データアクセス方法およびプログラムに関する。
近年、データ記憶装置であるUSB(Universal Serial Bus)メモリ、SD(Secure Digital)メモリカード、およびSSD(Solid State Drive)等にNAND(Not AND)型フラッシュメモリ(以下、単にNANDメモリという)が採用され、記憶容量の大容量化および高速な読み書きが実現されている。一般に、NANDメモリは、データの書込み回数がかさむと記憶素子の物理的な損傷を招来することが知られているが、データの読出し回数がかさむことによって、記憶されたデータが壊れていく現象(いわゆる、読出しディスターブ(Read Disturb))が発生する。このようなNANDメモリにおける読出しディスターブに対する対策として、データ記憶装置に記憶されているデータのうち壊れたデータを、所定のアルゴリズムによって修復する技術が提案されている。
しかし、このような技術においては、データ記憶装置からの壊れたデータの読出し時に、データを修復するためのアルゴリズムが実行されるため、読出し時間が増大するという問題点があった。
特開2008−192053号公報
本発明は、上記に鑑みてなされたものであって、記憶装置からデータの読出しを繰り返し行うことにより発生する読出し時間の増大を抑制する情報処理装置、データアクセス方法およびプログラムを提供することを目的とする。
実施形態の情報処理装置は、記憶手段と、アクセス制御手段と、カウント手段と、判定手段と、削除手段と、を備える。記憶手段は、NAND型フラッシュメモリでデータを記憶する。アクセス制御手段は、記憶手段に記憶されたデータへのアクセス要求を出力する。カウント手段は、アクセス要求が読出しの要求である場合、そのアクセス要求が示す記憶手段の記憶領域に対する読出し回数を1増やす。判定手段は、読出し回数が、NAND型フラッシュメモリのブロックにおける読出しの許容回数を、1ブロック内のページ数で除した値の回数以下の回数である所定回数に達したか否かを判定する。削除手段は、判定手段により読出し回数が所定回数に達したと判定された場合、その読出し回数に対応する記憶領域に記憶された第1データを削除する。
第1の実施形態に係る情報処理装置のハードウェア構成を示す図である。 第1の実施形態に係る情報処理装置のソフトウェア構成を示す図である。 SSDの構成図である。 NANDメモリチップの構成図である。 論理セクタと物理セクタとの変換について説明する図である。 第1の実施形態に係る情報処理装置の機能ブロック構成を示す図である。 第1の実施形態のリードカウンタテーブルの例を示す図である。 第1の実施形態のデータアクセス要求に対する処理のフローチャートである。 第1の実施形態の変形例に係る情報処理装置の機能ブロック構成を示す図である。 データ削除前の論理セクタおよび物理セクタの状態の例を示す図である。 データ削除後の論理セクタおよび物理セクタの状態の例を示す図である。 データ書込み後の論理セクタおよび物理セクタの状態の例を示す図である。 第2の実施形態に係る情報処理装置のソフトウェア構成を示す図である。 第2の実施形態に係る情報処理装置の機能ブロック構成を示す図である。 第3の実施形態に係る情報処理装置のソフトウェア構成を示す図である。 第3の実施形態に係る情報処理装置の機能ブロック構成を示す図である。 第3の実施形態に係るリードカウンタテーブルの例を示す図である。 第3の実施形態のアプリケーションからシステムコールが出力された場合の処理のフローチャートである。 第4の実施形態のクライアントサーバシステムの構成例を示す図である。 第4の実施形態の変形例のクライアントサーバシステムの構成例を示す図である。
以下に、図面を参照しながら、本発明の実施形態に係る情報処理装置、データアクセス方法およびプログラムを詳細に説明する。また、以下の図面において、同一の部分には同一の符号が付してある。ただし、図面は模式的なものであるため、具体的な厚みおよび寸法は以下の説明を参酌して判断すべきものである。
(第1の実施形態)
図1は、第1の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。図1を参照しながら、本実施形態に係る情報処理装置10のハードウェア構成について説明する。
情報処理装置10は、PC(Personal Computer)、ワークステーション、またはサーバ等の装置である。図1に示すように、情報処理装置10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、ネットワークI/F14(インターフェース手段)と、ディスプレイ15と、ストレージアクセス部16と、SSD(Solid State Drive)17(記憶手段)と、キーボード18と、マウス19と、CD−ROM(Compact Disc Read Only Memory)ドライブ20と、を備えている。
CPU11は、情報処理装置10全体の動作を制御する装置である。ROM12は、情報処理装置10用のプログラムを記憶している不揮発性記憶装置である。
RAM13は、CPU11のワークエリアとして使用される揮発性記憶装置である。RAM13は、アプリケーションを含む各種プログラム、および情報処理装置10で行われる各種処理に使用されるデータ等を記憶する。RAM13に展開されたOS(Operating System)上でアプリケーションが、CPU11によって実行される。
ネットワークI/F14は、外部機器とインターネット、LAN(Local Area Network)または専用回線等のネットワークを介して、データを通信するためのインターフェースである。
ディスプレイ15は、カーソル、メニュー、ウィンドウ、文字または画像等の各種情報を表示する表示装置である。ディスプレイ15は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、プラズマディスプレイまたは有機EL(Electroluminescence)ディスプレイ等である。
ストレージアクセス部16は、デバイスドライバからのデータアクセス要求に従って、SSD17に対してデータの読出し、書込み、または削除等のアクセスを行う装置である。ストレージアクセス部16は、SSD17と、SATA(Serial Advanced Technology Attachment)等のインターフェース規格で接続される。
SSD17は、記憶媒体としてフラッシュメモリを用いた記憶装置である。SSD17は、本実施形態において、フラッシュメモリとしてNANDメモリを備えている。
キーボード18は、文字、数字、各種指示の選択、およびカーソルの移動等を行う入力装置である。マウス19は、各種指示の選択および実行、処理対象の選択、ならびにカーソルの移動等を行うための入力装置である。
CD−ROMドライブ20は、着脱自在な記憶媒体の一例としてのCD−ROM21に対するデータの読み出しおよび書き込みを制御する装置である。
上述のCPU11、ROM12、RAM13、ネットワークI/F14、ディスプレイ15、ストレージアクセス部16、キーボード18、マウス19、およびCD−ROMドライブ20は、アドレスバスおよびデータバス等のバス22によって互いに通信可能に接続されている。
図2は、第1の実施形態に係る情報処理装置のソフトウェア構成の一例を示す図である。図2を参照しながら、本実施形態に係る情報処理装置10のソフトウェア構成について説明する。
図2に示すように、情報処理装置10のソフトウェアは、アプリケーション30と、OS40と、を含む。
アプリケーション30は、特定の作業を行うために使用されるプログラムである。アプリケーション30は、RAM13に展開されたOS40上で、CPU11により実行される。
OS40は、情報処理装置10の基本的な管理および制御のための機能、ならびにアプリケーション30等のプログラムが共通して使用する基本的な機能等を実装した基本ソフトウェアである。OS40は、システムコール41と、ファイルシステム42と、ブロックデバイス43と、デバイスドライバ44と、を含む。
システムコール41は、OS40のカーネルの機能を利用するためのソフトウェア上のインターフェースであり、カーネルとアプリケーション30との橋渡しの機能を有する。
ファイルシステム42は、記憶装置(本実施形態ではSSD17)に記憶されているデータを所定の管理方式に従って管理するシステムである。
ブロックデバイス43は、記憶装置(本実施形態ではSSD17)にデータを入出力する際、データを所定のまとまりで入出力し、かつ、ランダムアクセスを可能とするデバイスである。
デバイスドライバ44は、ストレージアクセス部16を制御して、SSD17に対するデータの入出力を実現するドライバである。デバイスドライバ44は、アクセス制御モジュール441と、カウンタモジュール442と、判定モジュール443と、削除モジュール444と、を含む。
アクセス制御モジュール441は、ストレージアクセス部16に対して、読出し、書込み、または削除等のデータアクセス要求を送信する機能を実現するソフトウェアモジュールである。
カウンタモジュール442は、後述するカウンタ部442aの機能を実現するソフトウェアモジュールである。判定モジュール443は、後述する判定部443aの機能を実現するソフトウェアモジュールである。削除モジュール444は、後述する削除部444aの機能を実現するソフトウェアモジュールである。
なお、デバイスドライバ44が有するソフトウェアモジュールの構成は、図2に示す構成に限定されるものではなく、各モジュールが実現する機能を実現するソフトウェアであれば、どのようなソフトウェアモジュールの構成であってもよい。
図3は、SSDの構成図である。図4は、NANDメモリチップの構成図である。図5は、論理セクタと物理セクタとの変換について説明する図である。図3〜5を参照しながら、SSD17の構成の概要を説明する。
図3に示すように、SSD17は、NANDメモリ制御部171(メモリ制御手段)と、NANDメモリ部172と、を備えている。
NANDメモリ制御部171は、ストレージアクセス部16から受信した読出し、書込み、または削除等のコマンドに従って、NANDメモリ部172にアクセスする機器である。具体的には、NANDメモリ制御部171は、ストレージアクセス部16から受信したコマンドに従って、読出し、書込み、または削除等の物理コマンドによってNANDメモリ部172にアクセスし、NANDメモリ部172からの物理応答を受信する。この場合、読出しの物理コマンドに対する物理応答は、読出しの対象となるデータを含む。また、書込み、または削除の物理コマンドに対する物理応答は、データの書込み、または削除の完了通知を含む。そして、NANDメモリ制御部171は、NANDメモリ部172から受信した物理応答に対応した応答をストレージアクセス部16に送信する。
NANDメモリ部172は、データを記憶するNAND型フラッシュメモリの本体部分であり、複数のNANDメモリチップ173によって構成されている。
NANDメモリチップ173は、図4に示すように、記憶素子のまとまりであるブロック174を複数(例えば、2048個のブロック)備えて、1プレーンを構成している。ブロック174は、さらに記憶素子のまとまりを細分化した複数のページ174aによって構成されている。ブロック174は、例えば、図4に示すように、128ページ分のページ174aによって構成されている。ページ174aは、例えば、2048バイト(≒2kB)分のデータを記憶することが可能な記憶素子の集合体である。なお、図4では、NANDメモリチップ173が、複数のブロック174で構成されるプレーンを1個備えた例を示しているが、これに限定されるものではなく、2個以上のプレーンを備えるものとしてもよい。
NANDメモリ制御部171は、NANDメモリチップ173に対して、データを読み出す場合、ページ(図4の例では2kB)の単位で行う。一方、NANDメモリ制御部171は、NANDメモリチップ173に対して、データを書き込む場合、および削除する場合、ブロック(図4の例では128ページ)の単位で行う。また、NANDメモリ制御部171は、NANDメモリチップ173に対してデータを上書きすることができない。すなわち、NANDメモリ制御部171は、NANDメモリチップ173に対して、データを上書きする場合、対象のブロックのデータを一度、削除(消去)しなければならない。その後、NANDメモリ制御部171は、データの書込みをブロック単位で行うことができる。
実際には、NANDメモリ制御部171は、外部のストレージアクセス部16に対して、セクタというデータのまとまりの単位でデータアクセス機能を提供する。すなわち、NANDメモリ制御部171は、ストレージアクセス部16に対して、セクタ単位でデータの読出し、書込み、および削除等のアクセス機能を提供する。これによって、ストレージアクセス部16は、NANDメモリ制御部171を介して、NANDメモリ部172に対して、セクタ単位で読出し、書込み、および削除等のアクセスが可能となる。すなわち、NANDメモリ制御部171によるページ単位のデータの読出し、およびブロック単位のデータの書込みおよび削除の制御によって、ストレージアクセス部16によるセクタ単位のデータアクセスが可能となる。ここで、セクタは、例えば、512B(バイト)または4kB等であり、ページ174aの容量と必ずしも等しいわけではない。
NANDメモリ制御部171は、上述のようにストレージアクセス部16に対して、セクタ単位のデータアクセスを提供するために、図5に示すように、論理セクタ501と物理セクタ502(記憶領域、第1記憶領域)との変換を行う。論理セクタは、LBA(Logical Block Addressing)とも呼ばれる。具体的には、NANDメモリ制御部171は、論理セクタ501の番号(以下、論理番号という)と、物理セクタ502の番号(以下、物理番号という)とを対応付ける論物対応表503(対応情報)を有している。論物対応表503は、図5に示すように、論理番号と物理番号とを対応付ける表である。論理セクタ501は、ストレージアクセス部16によってデータの読出し、書込み、および削除等のデータアクセスの対象となる仮想上のセクタである。すなわち、ストレージアクセス部16は、論理セクタ501の論理番号を指定して、データアクセスを行う。一方、物理セクタ502は、実際にNANDメモリ部172に割り当てられた実際の記憶領域としてのセクタである。例えば、図5に示す例の場合、ストレージアクセス部16が、論理番号が「3」の論理セクタ501のデータを読み出すためのコマンドをNANDメモリ制御部171に送信したとする。すると、NANDメモリ制御部171は、論物対応表503によって、論理番号「3」を物理番号「0」に変換し、物理番号「0」の物理セクタ502からデータを読み出し、コマンドに対する応答として、読み出したデータをストレージアクセス部16に送信する。また、NANDメモリ制御部171が、上述の物理コマンドによって物理セクタ502へデータを書込むタイミング、または物理セクタ502のデータを削除するタイミングは、NANDメモリ制御部171の制御方式に依存する。
また、図5の例では、論理セクタ501上にデータが書き込まれていない場合は、対応する物理セクタ502は割り当てられておらず、この場合、対応する物理セクタ502の物理番号は「null」と表現している。なお、図5の例では、論理セクタ501と物理セクタ502とが一対一で対応している例を示したが、これに限定されるものではなく、例えば、1つの論理番号に対して複数の物理セクタ502が対応しているものとしてもよく、あるいは、論理セクタ501および物理セクタ502のデータ粒度がそれぞれ異なるものとしてもよい。
図6は、第1の実施形態に係る情報処理装置の機能ブロック構成の一例を示す図である。図7は、第1の実施形態のリードカウンタテーブルの例を示す図である。図6および7を参照しながら、本実施形態に係る情報処理装置10の機能ブロック構成について説明する。
上述したように、NANDメモリで構成された複数のNANDメモリチップ173を有するNANDメモリ部172では、読出しディスターブと呼ばれる、データの読出し回数がかさむことによって記憶されたデータが壊れていく現象が発生する。読出しディスターブでは、NANDメモリにおいて、仮に、図4に示すブロック174の特定の箇所のページ174aを読み出した場合、同一のブロック174の他の箇所のページ174aにも負荷がかかり、直接読み出したページではない箇所のページに記憶されたデータも壊れていく。そして、読出し回数が許容回数以上発生すると、その部分のデータにエラーが発生し、NANDメモリ制御部171は、データ修復のための修復アルゴリズム(例えば、リードソロモン法によるアルゴリズム等)のような演算負荷の大きいエラー修復処理を実行する。このため、読出しディスターブが発生したブロックに対するデータの読出しにおいては、読出し時間が増大して、遅延が大きくなる。また、読出しディスターブが発生したブロックは、データの削除、および再度の書込みを行わない限り解消されない。そこで、本実施形態では、NANDメモリ部172を構成するすべてのブロック174において、読出し回数が読出しディスターブが発生する回数未満のうちに、データの削除を行う制御を実現する。
図6に示すように、デバイスドライバ44は、RAM13に展開されてCPU11により実行されることで、アクセス制御部441a(アクセス制御手段)、カウンタ部442a(カウント手段)、判定部443a(判定手段)、および削除部444a(削除手段)の各処理部として機能する。
アクセス制御部441aは、上位のソフトウェア(具体的には、ブロックデバイス43)からの要求に従って、ストレージアクセス部16に対して読出し、書込み、または削除等のデータアクセス要求(アクセス要求)を送信する処理部である。また、アクセス制御部441aは、ストレージアクセス部16から、データアクセス要求に応じたデータアクセス応答を受信する。アクセス制御部441aは、CPU11によって実行されるデバイスドライバ44のアクセス制御モジュール441により実現される。データアクセス要求には、NANDメモリ制御部171のどの論理番号の論理セクタ501にアクセスするかを示す論理番号の情報が含まれる。また、書込みのデータアクセス要求には、NANDメモリ制御部171の論理セクタ501に書き込むためのデータが含まれる。また、読出しのデータアクセス要求に対するデータアクセス応答は、ストレージアクセス部16によってSSD17から読み出されたデータが含まれる。また、書込みまたは削除のデータアクセス要求に対するデータアクセス応答は、ストレージアクセス部16によるSSD17へのデータの書込みまたは削除の完了通知を含む。
カウンタ部442aは、アクセス制御部441aが出力するデータアクセス要求を受け取り、図7に示すリードカウンタテーブル600において、データアクセス要求に含まれる論理番号に対応する読出し回数の制御を行う処理部である。そして、カウンタ部442aは、受け取ったデータアクセス要求が読出しのものである場合、リードカウンタテーブル600において、データアクセス要求に含まれる論理番号に対応する読出し回数をカウントアップ(インクリメント)する。また、カウンタ部442aは、受け取ったデータアクセス要求が書込みまたは削除のものである場合、リードカウンタテーブル600において、データアクセス要求に含まれる論理番号に対応する読出し回数を0にリセットする。このようにして、カウンタ部442aは、データアクセス要求が示す論理番号の論理セクタ501に対応する物理セクタ502の累積の読出し回数を、リードカウンタテーブル600に保持する。また、カウンタ部442aは、カウントアップした読出し回数の情報を判定部443aに送る。また、カウンタ部442aは、判定部443aからカウンタリセット要求を受け取った場合、リードカウンタテーブル600において、該当する論理セクタ501の読出し回数を0にリセットする。カウンタ部442aは、CPU11によって実行されるデバイスドライバ44のカウンタモジュール442により実現される。また、リードカウンタテーブル600は、情報処理装置10がシャットダウン状態においてはSSD17に保存されているものとし、情報処理装置10が起動状態においては、SSD17からRAM13に読み出されて、高速に更新可能な状態となるようにし、起動状態からシャットダウン状態となる場合に、現状の読出し回数を維持した状態でSSD17に保存されるものとすればよい。
判定部443aは、カウンタ部442aから受け取った読出し回数が、所定の上限回数(所定回数)以上であるか否かを判定する処理部である。判定部443aは、読出し回数が所定の上限回数以上である場合、該当する論理セクタ501のデータの削除指令を、削除部444aに送り、リードカウンタテーブル600において該当する論理セクタ501の読出し回数のカウンタリセット要求を、カウンタ部442aに送る。判定部443aは、CPU11によって実行されるデバイスドライバ44の判定モジュール443により実現される。ここで、所定の上限回数とは、例えば、以下の式(1)によって算出された回数とする。
(上限回数)=(NANDメモリ固有のブロックにおける読出しの許容回数)/(1ブロック内のページ数) (1)
この式(1)によって算出される回数を上限回数とすることによって、少なくとも、同一ブロックにおいて同じデータの読出しが行われる回数を許容回数以下とすることができるので、読出しディスターブの発生を抑制することができる。
なお、読出し回数についての上限回数を式(1)で算出される回数にすることに限定されるものではなく、式(1)で求まる回数未満の値を上限回数としても、同様の効果を得ることができる。また、式(1)におけるブロックにおける読出しの許容回数とは、この回数より多く読出しを行った場合に必ず読出しディスターブが発生するという趣旨の回数ではなく、あくまで読出しディスターブの発生が抑制できる目安となる上限の回数であることを付言しておく。
削除部444aは、判定部443aから削除指令を受け取った場合、削除指令で示される論理番号の論理セクタ501のデータの削除を要求するデータアクセス要求を、ストレージアクセス部16に送信する処理部である。削除部444aは、CPU11によって実行されるデバイスドライバ44の削除モジュール444により実現される。
ストレージアクセス部16は、アクセス制御部441aから受信した読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するコマンドを、SSD17(具体的には、NANDメモリ制御部171)に送信する。そして、ストレージアクセス部16は、SSD17に送信したコマンドに応じた応答をSSD17から受信する。この場合、読出しのコマンドに対する応答は、読出しの対象となるデータを含む。また、書込み、または削除のコマンドに対応する応答は、データのSSD17への書込み、または削除の完了通知を含む。また、ストレージアクセス部16は、削除部444aから削除のデータアクセス要求を受信した場合、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのコマンドを、SSD17に送信する。
なお、図6に示すアクセス制御部441a、カウンタ部442a、判定部443aおよび削除部444aは、機能を概念的に示したものであって、このような構成に限定されるものではない。
また、図6に示すアクセス制御部441a、カウンタ部442a、判定部443aおよび削除部444aは、ソフトウェアであるプログラムではなく、少なくとも一部がハードウェア回路によって実現されるものとしてもよい。例えば、アクセス制御部441a、カウンタ部442a、判定部443aおよび削除部444aのうち少なくともいずれかがハードウェア回路によって実現される場合、ストレージアクセス部16において実装されるものとしてもよい。
図8は、第1の実施形態のデータアクセス要求に対する処理のフローチャートである。図8を参照しながら、デバイスドライバ44が上位のソフトウェア(具体的には、ブロックデバイス43)からデータのアクセス要求を受け取った場合の処理について説明する。まず、デバイスドライバ44のアクセス制御部441aは、上位のソフトウェアから読出し、書込み、または削除のデータアクセス要求を受け取ると、それぞれの処理に対応するデータアクセス要求をストレージアクセス部16に送信する。
<ステップS11>
デバイスドライバ44のカウンタ部442aは、アクセス制御部441aから送信されたデータアクセス要求を受け取る。そして、カウンタ部442aは、受け取ったデータアクセス要求がデータの読出しの要求であるか否かを判定する。データアクセス要求がデータの読出しの要求でない場合(ステップS11:No)、ステップS12へ進み、データの読出しの要求である場合(ステップS11:Yes)、ステップS14へ進む。
<ステップS12>
カウンタ部442aは、受け取ったデータアクセス要求がデータの書込みまたは削除の要求であるか否かを判定する。データアクセス要求がデータの書込みまたは削除の要求である場合(ステップS12:Yes)、ステップS13へ進み、データの書込みまたは削除のいずれの要求でない場合(ステップS12:No)、処理が終了する。
<ステップS13>
カウンタ部442aは、受け取ったデータアクセス要求がデータの書込みまたは削除の要求である場合、リードカウンタテーブル600において、データアクセス要求が示す論理番号に対応する読出し回数を0にリセットする。これは、例えば、データアクセス要求がデータの書込みの要求である場合、NANDメモリ制御部171によって、データアクセス要求が示す論理番号に対応する論理セクタ501にデータが書き込まれ、論物対応表503において論理番号に対応する物理番号が割り当てられて、その物理番号に対応する物理セクタ502にデータが新たに書き込まれる。これによって、データが書き込まれた物理セクタ502のデータは、読出し回数が0となるからである。また、データアクセス要求がデータの削除の要求である場合、NANDメモリ制御部171によって、データアクセス要求が示す論理番号に対応する論理セクタ501のデータが削除され、論物対応表503において論理番号に対応する物理番号の割り当てがクリア(「null」)されるからである。そして、処理が終了する。
<ステップS14>
カウンタ部442aは、受け取ったデータアクセス要求がデータの読出しの要求である場合、リードカウンタテーブル600において、データアクセス要求が示す論理番号に対応する読出し回数をカウントアップ(インクリメント)する。そして、カウンタ部442aは、カウントアップした読出し回数の情報を、デバイスドライバ44の判定部443aに送る。そして、ステップS15へ進む。
<ステップS15>
判定部443aは、カウンタ部442aから受け取った読出し回数が、所定の上限回数以上であるか否かを判定する。読出し回数が所定の上限回数以上である場合(ステップS15:Yes)、ステップS16へ進み、読出し回数が所定の上限回数未満である場合(ステップS15:No)、処理が終了する。
<ステップS16>
判定部443aは、読出し回数が所定の上限回数以上である場合、リードカウンタテーブル600において読出し回数に対応する論理番号の論理セクタ501のデータの削除指令を、デバイスドライバ44の削除部444aに送る。削除部444aは、判定部443aから削除指令を受け取ると、削除指令で示される論理番号の論理セクタ501のデータの削除を要求するデータアクセス要求を、ストレージアクセス部16に送信する。ストレージアクセス部16は、削除部444aから削除のデータアクセス要求を受信すると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのコマンドを、SSD17のNANDメモリ制御部171に送信する。NANDメモリ制御部171は、ストレージアクセス部16から削除のコマンドを受信すると、コマンドで示される論理番号の論理セクタ501のデータを、物理コマンドによって削除する。そして、NANDメモリ制御部171は、データを削除した論理セクタ501に対応する物理セクタ502のデータ(第1データ)を所定のタイミングで削除する。そして、ステップS17へ進む。
<ステップS17>
判定部443aは、さらに、リードカウンタテーブル600において、データの削除対象である論理セクタ501の論理番号に対応する読出し回数をリセットするためのカウンタリセット要求を、カウンタ部442aに送る。カウンタ部442aは、判定部443aからカウンタリセット要求を受け取ると、リードカウンタテーブル600において、カウンタリセット要求が示す論理番号に対応する読出し回数を0にリセットする。そして、処理が終了する。
以上のように、デバイスドライバ44のカウンタ部442aは、アクセス制御部441aがストレージアクセス部16に送信したデータアクセス要求を受け取り、データアクセス要求が読出しの要求であると判定した場合、データアクセス要求が示す論理番号に対応する読出し回数をカウントアップする。判定部443aは、カウントアップされた読出し回数が、所定の上限回数以上であると判定した場合、読出し回数に対応するSSD17におけるデータの削除指令を、削除部444aに送る。そして、削除部444aは、削除指令に従って、読出し回数に対応するSSD17におけるデータを削除するためのデータアクセス要求によって、ストレージアクセス部16を介して、読出し回数に対応するSSD17におけるデータを削除させるものとしている。これによって、少なくとも、NANDメモリにおける同一の記憶領域のデータの読出しが行われる回数を許容回数以下とすることができるので、読出しディスターブの発生を抑制することができる。よって、記憶装置であるSSD17からのデータを読み出す場合に、データを修復するためのエラー修復処理が実行されることを回避することができ、読出し時間の増大を抑制することができる。
また、判定部443aは、カウントアップされた読出し回数が、所定の上限回数以上であると判定した場合、リードカウンタテーブル600において、データの削除対象である論理セクタ501の論理番号に対応する読出し回数をリセットするためのカウンタリセット要求を、カウンタ部442aに送る。そして、カウンタ部442aは、カウンタリセット要求に従って、リードカウンタテーブル600において、カウンタリセット要求が示す論理番号に対応する読出し回数を0にリセットする。これによって、論理番号に対して論物対応表503により新たに割り当てられる物理番号に対応する物理セクタ502に書き込まれたデータについて、新たに読出しの回数をカウントすることができる。
また、上述の所定の上限回数を、式(1)によって算出される回数以下の回数とすることによって、少なくとも、NANDメモリにおける同一の記憶領域のデータの読出しが行われる回数を許容回数以下とすることができる。これによって、より高い確実性をもって、読出しディスターブの発生を抑制することができ、SSD17からのデータの読出し時間の増大を抑制することができる。
(第1の実施形態の変形例)
本変形例に係る情報処理装置について、第1の実施形態に係る情報処理装置10と相違する点を中心に説明する。本変形例に係る情報処理装置は、図1に示す第1の実施形態に係る情報処理装置10と同様のハードウェア構成を有する。また、本変形例に係る情報処理装置は、図2に示す第1の実施形態に係る情報処理装置10のソフトウェア構成のうち、デバイスドライバ44の代わりにデバイスドライバ45に置換したソフトウェア構成を有する。
図9は、第1の実施形態の変形例に係る情報処理装置の機能ブロック構成の一例を示す図である。図9を参照しながら、本変形例に係る情報処理装置の機能ブロック構成について、第1の実施形態に係る情報処理装置10の機能ブロック構成と相違する点を中心に説明する。
図9に示すように、デバイスドライバ45は、RAM13に展開されてCPU11により実行されることで、アクセス制御部451a(アクセス制御手段)、カウンタ部452a(カウント手段)、判定部453a(判定手段)、および削除部454a(削除手段)の各処理部として機能する。アクセス制御部451a、カウンタ部452a、および判定部453aの機能は、それぞれ第1の実施形態の図6で示したアクセス制御部441a、カウンタ部442a、および判定部443aの機能と同様である。
削除部454aは、判定部453aから削除指令を受け取った場合、削除指令で示される論理番号に対応する物理番号の物理セクタ502のデータの読出しを要求するデータアクセス要求を、ストレージアクセス部16に送信する処理部である。また、削除部454aは、削除指令で示される論理番号の論理セクタ501のデータの削除を要求するデータアクセス要求を、ストレージアクセス部16に送信する。そして、削除部454aは、削除指令で示される論理番号に対応する論理セクタ501に対して、読み出したデータの書込みを要求するデータアクセス要求を、ストレージアクセス部16に送信する。
ストレージアクセス部16は、アクセス制御部451aから受信した読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するコマンドを、SSD17(具体的には、NANDメモリ制御部171)に送信する。そして、ストレージアクセス部16は、SSD17に送信したコマンドに応じた応答をSSD17から受信する。
また、ストレージアクセス部16は、削除部454aから読出しのデータアクセス要求を受信した場合、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを読み出すためのコマンドを、SSD17に送信する。次に、ストレージアクセス部16は、削除部454aから削除のデータアクセス要求を受信した場合、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのコマンドを、SSD17に送信する。そして、ストレージアクセス部16は、削除部454aから書込みのデータアクセス要求を受信した場合、データアクセス要求に含まれる論理番号に対応する論理セクタ501にデータを書き込むためのコマンドを、SSD17に送信する。
図10は、データ削除前の論理セクタおよび物理セクタの状態の例を示す図である。図11は、データ削除後の論理セクタおよび物理セクタの状態の例を示す図である。図12は、データ書込み後の論理セクタおよび物理セクタの状態の例を示す図である。図8および10〜12を参照しながら、本変形例に係る情報処理装置において、デバイスドライバ45が上位のソフトウェア(具体的には、ブロックデバイス43)からデータアクセス要求を受け取った場合の処理について、第1の実施形態と相違する点を中心に説明する。本変形例に係る情報処理の図8に示すステップS11〜S15およびS17の処理は、第1の実施の形態に係る情報処理装置10の処理と同様である。
<ステップS16>
判定部453aは、読出し回数が所定の上限回数以上である場合、リードカウンタテーブル600において読出し回数に対応する論理番号の論理セクタ501のデータの削除指令を、デバイスドライバ45の削除部454aに送る。削除部454aは、判定部453aから削除指令を受け取ると、削除指令で示される論理番号に対応する物理番号の物理セクタ502のデータの読出しを要求するデータアクセス要求を、ストレージアクセス部16に送信する。そして、削除部454aは、送信したデータアクセス要求に対する応答として、ストレージアクセス部16からデータアクセス応答(図示せず)を受信して、上述の削除指令で示される論理番号に対応する物理番号の物理セクタ502から読み出されたデータを取得する。
例えば、削除部454aは、図10に示すように、削除指令で示される論理番号「9」から論物対応表503により変換される物理番号「3」の物理セクタ502から読み出された削除対象のデータを含むデータアクセス応答を受信する。
次に、削除部454aは、削除指令で示される論理番号の論理セクタ501のデータの削除を要求するデータアクセス要求を、ストレージアクセス部16に送信する。ストレージアクセス部16は、削除部454aから削除のデータアクセス要求を受信すると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのコマンドを、SSD17のNANDメモリ制御部171に送信する。NANDメモリ制御部171は、ストレージアクセス部16から削除のコマンドを受信すると、コマンドで示される論理番号の論理セクタ501のデータを、物理コマンドによって削除する。そして、NANDメモリ制御部171は、データを削除した論理セクタ501に対応する物理セクタ502のデータを所定のタイミングで削除する。
例えば、図11に示すように、NANDメモリ制御部171は、ストレージアクセス部16から受信したコマンドで示される論理番号「9」の論理セクタ501のデータを、物理コマンドによって削除する。そして、NANDメモリ制御部171は、論物対応表503において論理番号「9」に対応する物理番号の割り当てをクリアする(「null」を書き込む)。これによって、論理番号と物理番号との対応関係がクリアされるので、物理番号「3」の物理セクタ502へのアクセス(読出し)は生じないことになる。また、NANDメモリ制御部171は、物理番号「3」の物理セクタ502のデータを所定のタイミングで削除する。
そして、削除部454aは、削除指令で示される論理番号に対応する論理セクタ501に対して取得したデータの書込みを要求するデータアクセス要求を、ストレージアクセス部16に送信する。ストレージアクセス部16は、削除部454aから書込みのデータアクセス要求を受信すると、データアクセス要求に含まれる論理番号に対応する論理セクタ501に対して取得したデータを書き込むためのコマンドを、SSD17のNANDメモリ制御部171に送信する。NANDメモリ制御部171は、ストレージアクセス部16から書込みのコマンドを受信すると、コマンドで示される論理番号の論理セクタ501に、コマンドに含まれるデータ(第2データ)を、物理コマンドによって書き込む。そして、NANDメモリ制御部171は、データを書き込んだ論理セクタ501に対して新たに対応付けた物理セクタ502にそのデータを所定のタイミングで書き込む。これによって、所定の上限回数以上となった読出し回数に対応するデータが、新たに割り当てられた物理セクタ502にコピーされることになる。
例えば、図12に示すように、NANDメモリ制御部171は、ストレージアクセス部16から受信したコマンドで示される論理番号「9」の論理セクタ501に、コマンドに含まれるデータを、物理コマンドによって書き込む。次に、NANDメモリ制御部171は、論物対応表503において論理番号「9」に対応する別の新たな物理番号である「4」を割り当てる。そして、NANDメモリ制御部171は、論理番号「9」の論理セクタ501に書き込まれたデータを、論理番号「9」に対応する物理番号「4」の物理セクタ502に所定のタイミングで書き込む。
以上のように、第1の実施形態においては所定の上限回数以上となった読出し回数に対応するSSD17におけるデータを削除のみ行っているのに対し、本変形例では、削除対象のデータを読み出して取得し、削除対象となった物理セクタ502とは異なる新たに割り当てられた物理セクタ502に、取得したデータをコピーするものとしている。これによって、第1の実施形態の効果を奏すると共に、読出しディスターブが発生する前にデータを削除するのみではなく、そのデータを新たに割り当てられた物理セクタ502に書込み(コピー)するので、そのデータを維持することができる。
また、コピーされる論理セクタ501は同一のままでよく、その論理セクタ501に対応する読出し回数はリセットされる。したがって、論理セクタ501に対して新たに割り当てられた物理セクタ502にコピーされたデータを読み出す場合、削除対象となった論理番号と同一の論理番号に基づいて読み出せばよく、継続してそのデータを利用することが可能となる。
(第2の実施形態)
本実施形態に係る情報処理装置について、第1の実施形態に係る情報処理装置10と相違する点を中心に説明する。本実施形態に係る情報処理装置は、図1に示す第1の実施形態に係る情報処理装置10と同様のハードウェア構成を有する。
図13は、第2の実施形態に係る情報処理装置のソフトウェア構成の一例を示す図である。図13を参照しながら、本実施形態に係る情報処理装置のソフトウェア構成について説明する。なお、システムコール41およびファイルシステム42は、第1の実施形態の情報処理装置10のソフトウェア構成である図2に記載されたものと同様であるので、同一符号を付し、ここでの説明を省略する。
図13に示すように、本実施形態に係る情報処理装置のソフトウェアは、アプリケーション30と、OS40aと、を含む。
アプリケーション30は、特定の作業を行うために使用されるプログラムである。アプリケーション30は、RAM13(図1参照)に展開されたOS40a上で、CPU11(図1参照)により実行される。
OS40aは、本実施形態に係る情報処理装置の基本的な管理および制御のための機能、ならびにアプリケーション30等のプログラムが共通して使用する基本的な機能等を実装した基本ソフトウェアである。OS40aは、システムコール41と、ファイルシステム42と、ブロックデバイス46と、デバイスドライバ47と、を含む。
ブロックデバイス46は、記憶装置(SSD17(図1参照))にデータを入出力する際、データを所定のまとまりで行い、かつ、ランダムアクセスを可能とするデバイスである。ブロックデバイス46は、アクセス制御モジュール461と、カウンタモジュール462と、判定モジュール463と、削除モジュール464と、を含む。
アクセス制御モジュール461は、デバイスドライバ47に対して、読出し、書込み、または削除等のデータアクセス要求を送信する機能を実現するソフトウェアモジュールである。
カウンタモジュール462は、後述するカウンタ部462aの機能を実現するソフトウェアモジュールである。判定モジュール463は、後述する判定部463aの機能を実現するソフトウェアモジュールである。削除モジュール464は、後述する削除部464aの機能を実現するソフトウェアモジュールである。
なお、ブロックデバイス46が有するソフトウェアモジュールの構成は、図13に示す構成に限定されるものではなく、各モジュールが実現する機能を実現するソフトウェアであれば、どのようなソフトウェアモジュールの構成であってもよい。
図14は、第2の実施形態に係る情報処理装置の機能ブロック構成の一例を示す図である。図14を参照しながら、本実施形態に係る情報処理装置の機能ブロック構成について、第1の実施形態に係る情報処理装置10のブロック構成と相違する点を中心に説明する。
図14に示すように、ブロックデバイス46は、RAM13に展開されてCPU11により実行されることで、アクセス制御部461a(アクセス制御手段)、カウンタ部462a(カウント手段)、判定部463a(判定手段)、および削除部464a(削除手段)の各処理部として機能する。
アクセス制御部461aは、上位のソフトウェア(具体的には、ファイルシステム42)からの要求に従って、デバイスドライバ47に対して読出し、書込み、または削除等のデータアクセス要求(アクセス要求)を送る処理部である。また、アクセス制御部461aは、デバイスドライバ47から、データアクセス要求に応じたデータアクセス応答を受け取る。アクセス制御部461aは、CPU11によって実行されるブロックデバイス46のアクセス制御モジュール461により実現される。データアクセス要求には、NANDメモリ制御部171のどの論理番号の論理セクタ501にアクセスするかを示す論理番号の情報が含まれる。また、書込みのデータアクセス要求には、NANDメモリ制御部171の論理セクタ501に書き込むためのデータが含まれる。また、読出しのデータアクセス要求に対するデータアクセス応答は、ストレージアクセス部16によってSSD17から読み出されたデータが含まれる。また、書込みまたは削除のデータアクセス要求に対するデータアクセス応答は、ストレージアクセス部16によるSSD17へのデータの書込みまたは削除の完了通知を含む。
カウンタ部462aは、アクセス制御部461aが出力するデータアクセス要求を受け取り、リードカウンタテーブル600(図7参照)において、データアクセス要求に含まれる論理番号に対応する読出し回数の制御を行う処理部である。そして、カウンタ部462aは、受け取ったデータアクセス要求が読出しのものである場合、リードカウンタテーブル600において、データアクセス要求に含まれる論理番号に対応する読出し回数をカウントアップ(インクリメント)する。また、カウンタ部462aは、受け取ったデータアクセス要求が書込みまたは削除のものである場合、リードカウンタテーブル600において、データアクセス要求に含まれる論理番号に対応する読出し回数を0にリセットする。このようにして、カウンタ部462aは、データアクセス要求が示す論理番号の論理セクタ501に対応する物理セクタ502の累積の読出し回数を、リードカウンタテーブル600に保持する。また、カウンタ部462aは、カウントアップした読出し回数の情報を判定部463aに送る。また、カウンタ部462aは、判定部463aからカウンタリセット要求を受け取った場合、リードカウンタテーブル600において、該当する論理セクタ501の読出し回数を0にリセットする。カウンタ部462aは、CPU11によって実行されるブロックデバイス46のカウンタモジュール462により実現される。
判定部463aは、カウンタ部462aから受け取った読出し回数が、所定の上限回数以上であるか否かを判定する処理部である。判定部463aは、読出し回数が所定の上限回数以上である場合、該当する論理セクタ501のデータの削除指令を、削除部464aに送り、リードカウンタテーブル600において該当する論理セクタ501の読出し回数のカウンタリセット要求を、カウンタ部462aに送る。判定部463aは、CPU11によって実行されるブロックデバイス46の判定モジュール463により実現される。ここで、所定の上限回数とは、例えば、上述の式(1)によって算出された回数とする。
なお、読出し回数についての上限回数を上述の式(1)で算出される回数にすることに限定されるものではなく、式(1)で求まる回数未満の値を上限回数としても、同様の効果を得ることができる。
削除部464aは、判定部463aから削除指令を受け取った場合、削除指令で示される論理番号の論理セクタ501のデータの削除を要求するデータアクセス要求を、デバイスドライバ47に送る処理部である。削除部464aは、CPU11によって実行されるブロックデバイス46の削除モジュール464により実現される。
デバイスドライバ47は、アクセス制御部461aから受け取った読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するデータアクセス要求を、ストレージアクセス部16に送信する。そして、デバイスドライバ47は、ストレージアクセス部16に送信したデータアクセス要求に応じたデータアクセス応答をストレージアクセス部16から受信する。この場合、読出しのデータアクセス要求に対するデータアクセス応答は、読出しの対象となるデータを含む。また、書込み、または削除のデータアクセス要求に対応するデータアクセス応答は、データのSSD17への書込み、または削除の完了通知を含む。また、デバイスドライバ47は、削除部464aから削除のデータアクセス要求を受信した場合、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのデータアクセス要求を、ストレージアクセス部16に送信する。
ストレージアクセス部16は、デバイスドライバ47から受信した読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するコマンドを、SSD17(具体的には、NANDメモリ制御部171)に送信する。そして、ストレージアクセス部16は、SSD17に送信したコマンドに応じた応答をSSD17から受信する。この場合、読出しのコマンドに対する応答は、読出しの対象となるデータを含む。また、書込み、または削除のコマンドに対応する応答は、データのSSD17への書込み、または削除の完了通知を含む。
なお、図14に示すアクセス制御部461a、カウンタ部462a、判定部463aおよび削除部464aは、機能を概念的に示したものであって、このような構成に限定されるものではない。
また、図14に示すアクセス制御部461a、カウンタ部462a、判定部463aおよび削除部464aは、ソフトウェアであるプログラムではなく、少なくとも一部がハードウェア回路によって実現されるものとしてもよい。
次に、上述の図8に示したフローチャートに従って、ブロックデバイス46が上位のソフトウェア(具体的には、ファイルシステム42)からデータのアクセス要求を受け取った場合の処理について説明する。まず、ブロックデバイス46のアクセス制御部461aは、上位のソフトウェアから読出し、書込み、または削除のデータアクセス要求を受け取ると、それぞれの処理に対応するデータアクセス要求をデバイスドライバ47に送る。
<ステップS11>
ブロックデバイス46のカウンタ部462aは、アクセス制御部461aから出力されたデータアクセス要求を受け取る。そして、カウンタ部462aは、受け取ったデータアクセス要求がデータの読出しの要求であるか否かを判定する。データアクセス要求がデータの読出しの要求でない場合(ステップS11:No)、ステップS12へ進み、データの読出しの要求である場合(ステップS11:Yes)、ステップS14へ進む。
<ステップS12>
カウンタ部462aは、受け取ったデータアクセス要求がデータの書込みまたは削除の要求であるか否かを判定する。データアクセス要求がデータの書込みまたは削除の要求である場合(ステップS12:Yes)、ステップS13へ進み、データの書込みまたは削除のいずれの要求でない場合(ステップS12:No)、処理が終了する。
<ステップS13>
カウンタ部462aは、受け取ったデータアクセス要求がデータの書込みまたは削除の要求である場合、リードカウンタテーブル600において、データアクセス要求が示す論理番号に対応する読出し回数を0にリセットする。そして、処理が終了する。
<ステップS14>
カウンタ部462aは、受け取ったデータアクセス要求がデータの読出しの要求である場合、リードカウンタテーブル600において、データアクセス要求が示す論理番号に対応する読出し回数をカウントアップ(インクリメント)する。そして、カウンタ部462aは、カウントアップした読出し回数の情報を、ブロックデバイス46の判定部463aに送る。そして、ステップS15へ進む。
<ステップS15>
判定部463aは、カウンタ部462aから受け取った読出し回数が、所定の上限回数以上であるか否かを判定する。読出し回数が所定の上限回数以上である場合(ステップS15:Yes)、ステップS16へ進み、読出し回数が所定の上限回数未満である場合(ステップS15:No)、処理が終了する。
<ステップS16>
判定部463aは、読出し回数が所定の上限回数以上である場合、リードカウンタテーブル600において読出し回数に対応する論理番号の論理セクタ501のデータの削除指令を、ブロックデバイス46の削除部464aに送る。削除部464aは、判定部463aから削除指令を受け取ると、削除指令で示される論理番号の論理セクタ501のデータの削除を要求するデータアクセス要求を、デバイスドライバ47に送る。デバイスドライバ47は、削除部464aから削除のデータアクセス要求を受信すると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのデータアクセス要求を、ストレージアクセス部16に送信する。ストレージアクセス部16は、デバイスドライバ47から削除のデータアクセス要求を受信すると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのコマンドを、SSD17のNANDメモリ制御部171に送信する。NANDメモリ制御部171は、ストレージアクセス部16から削除のコマンドを受信すると、コマンドで示される論理番号の論理セクタ501のデータを、物理コマンドによって削除する。そして、NANDメモリ制御部171は、データを削除した論理セクタ501に対応する物理セクタ502のデータ(第1データ)を所定のタイミングで削除する。そして、ステップS17へ進む。
<ステップS17>
判定部463aは、さらに、リードカウンタテーブル600において、データの削除対象である論理セクタ501の論理番号に対応する読出し回数をリセットするためのカウンタリセット要求を、カウンタ部462aに送る。カウンタ部462aは、判定部463aからカウンタリセット要求を受け取ると、リードカウンタテーブル600において、カウンタリセット要求が示す論理番号に対応する読出し回数を0にリセットする。そして、処理が終了する。
以上のように、本実施形態の情報処理装置は、デバイスドライバではなく、その上位のブロックデバイス46に、第1の実施形態のデバイスドライバ44が実現するアクセス制御部441a、カウンタ部442a、判定部443a、および削除部444aに相当する機能が備えられている。これによっても、第1の実施形態と同様の効果を奏することができる。
(第3の実施形態)
本実施形態に係る情報処理装置について、第1の実施形態に係る情報処理装置10と相違する点を中心に説明する。本実施形態に係る情報処理装置は、図1に示す第1の実施形態に係る情報処理装置10と同様のハードウェア構成を有する。
図15は、第3の実施形態に係る情報処理装置のソフトウェア構成の一例を示す図である。図15を参照しながら、本実施形態に係る情報処理装置のソフトウェア構成について説明する。なお、システムコール41、ファイルシステム42、およびブロックデバイス43は、第1の実施形態の情報処理装置10のソフトウェア構成である図2に記載されたものと同様であるので、同一符号を付し、ここでの説明を省略する。また、デバイスドライバ47は、第2の実施形態の情報処理装置のソフトウェア構成である図13に記載されたものと同様であるので、同一符号を付し、ここでの説明を省略する。
図15に示すように、本実施形態に係る情報処理装置のソフトウェアは、アプリケーション31と、OS40bと、を含む。
アプリケーション31は、特定の作業を行うために使用されるプログラムである。アプリケーション31は、アクセス制御モジュール311と、カウンタモジュール312と、判定モジュール313と、削除モジュール314と、を含む。アプリケーション31は、RAM13(図1参照)に展開されたOS40b上で、CPU11(図1参照)により実行される。
アクセス制御モジュール311は、システムコール41に対して、読出し、書込み、または削除等のシステムコールを送る機能を実現するソフトウェアモジュールである。
カウンタモジュール312は、後述するカウンタ部312aの機能を実現するソフトウェアモジュールである。判定モジュール313は、後述する判定部313aの機能を実現するソフトウェアモジュールである。削除モジュール314は、後述する削除部314aの機能を実現するソフトウェアモジュールである。
なお、アプリケーション31が有するソフトウェアモジュールの構成は、図15に示す構成に限定されるものではなく、各モジュールが実現する機能を実現するソフトウェアであれば、どのようなソフトウェアモジュールの構成であってもよい。
OS40bは、本実施形態に係る情報処理装置の基本的な管理および制御のための機能、ならびにアプリケーション31等のプログラムが共通して使用する基本的な機能等を実装した基本ソフトウェアである。OS40bは、システムコール41と、ファイルシステム42と、ブロックデバイス43と、デバイスドライバ47と、を含む。
図16は、第3の実施形態に係る情報処理装置の機能ブロック構成の一例を示す図である。図17は、第3の実施形態に係るリードカウンタテーブルの例を示す図である。図16および17を参照しながら、本実施形態に係る情報処理装置の機能ブロック構成について、第1の実施形態に係る情報処理装置10のブロック構成と相違する点を中心に説明する。
図16に示すように、アプリケーション31は、RAM13に展開されてCPU11により実行されることで、アクセス制御部311a(アクセス制御手段)、カウンタ部312a(カウント手段)、判定部313a(判定手段)、および削除部314a(削除手段)の各処理部として機能する。
アクセス制御部311aは、システムコール41に対して読出し、書込み、または削除等のシステムコール(アクセス要求)を送る処理部である。また、アクセス制御部311aは、システムコール41から、システムコールに応じたシステムコール応答を受け取る。アクセス制御部311aは、CPU11によって実行されるアプリケーション31のアクセス制御モジュール311により実現される。システムコールには、どのファイルにアクセスするかを示すファイル名等のファイル情報が含まれる。また、書込みのシステムコールには、ファイルのデータを書き込むためのデータが含まれる。また、読出しのシステムコールに対するシステムコール応答は、ストレージアクセス部16によってSSD17から読み出されたファイルのデータが含まれる。また、書込みまたは削除のシステムコールに対するシステムコール応答は、ストレージアクセス部16によるSSD17へのファイルのデータの書込みまたは削除の完了通知を含む。
カウンタ部312aは、アクセス制御部311aが出力するシステムコールを受け取り、図17に示すリードカウンタテーブル600aにおいて、システムコールに含まれるファイル名に対応する読出し回数の制御を行う処理部である。そして、カウンタ部312aは、受け取ったシステムコールが読出しのものである場合、リードカウンタテーブル600aにおいて、システムコールに含まれるファイル名に対応する読出し回数をカウントアップ(インクリメント)する。また、カウンタ部312aは、受け取ったシステムコールが削除のものである場合、リードカウンタテーブル600aにおいて、システムコールに含まれるファイル名に対応する読出し回数を0にリセットする。このようにして、カウンタ部312aは、システムコールが示すファイル名のファイルの累積の読出し回数を、リードカウンタテーブル600aに保持する。また、カウンタ部312aは、カウントアップした読出し回数の情報を判定部313aに送る。また、カウンタ部312aは、判定部313aからカウンタリセット要求を受け取った場合、リードカウンタテーブル600aにおいて、該当するファイル名の読出し回数を0にリセットする。カウンタ部312aは、CPU11によって実行されるアプリケーション31のカウンタモジュール312により実現される。また、リードカウンタテーブル600aは、本実施形態に係る情報処理装置がシャットダウン状態においてはSSD17に保存されているものとし、本実施形態に係る情報処理装置が起動状態においては、SSD17からRAM13に読み出されて、高速に更新可能な状態となるようにし、起動状態からシャットダウン状態となる場合に、現状の読出し回数を維持した状態でSSD17に保存されるものとすればよい。
また、リードカウンタテーブル600aで示されるファイル名に対応する読出し回数とは、そのファイル名のファイルがSSD17の適当な物理セクタに分散して記憶されているので、それらのファイルを構成するデータが記憶された物理セクタ(記憶領域、第2記憶領域)、またはその物理セクタに対応付けられた論理セクタに対応した読出し回数ということができる。
判定部313aは、カウンタ部312aから受け取った読出し回数が、所定の上限回数以上であるか否かを判定する処理部である。判定部313aは、読出し回数が所定の上限回数以上である場合、該当するファイルの削除指令を、削除部314aに送り、リードカウンタテーブル600aにおいて該当するファイル名の読出し回数のカウンタリセット要求を、カウンタ部312aに送る。判定部313aは、CPU11によって実行されるアプリケーション31の判定モジュール313により実現される。ここで、所定の上限回数とは、例えば、上述の式(1)によって算出された回数とする。
なお、読出し回数についての上限回数を上述の式(1)で算出される回数にすることに限定されるものではなく、式(1)で求まる回数未満の値を上限回数としても、同様の効果を得ることができる。
削除部314aは、判定部313aから削除指令を受け取った場合、削除指令で示されるファイル名のファイルの削除を要求するシステムコールを、システムコール41に送る処理部である。削除部314aは、CPU11によって実行されるアプリケーション31の削除モジュール314により実現される。
システムコール41は、アクセス制御部311aから受け取った読出し、書込み、または削除のシステムコールに従って、それぞれの処理に対応するファイルアクセス要求を、ファイルシステム42に送る。そして、システムコール41は、ファイルシステム42に送ったファイルアクセス要求に応じたファイルアクセス応答をファイルシステム42から受信する。この場合、読出しのファイルアクセス要求に対するファイルアクセス応答は、読出しの対象となるファイルを含む。また、書込み、または削除のファイルアクセス要求に対応するファイルアクセス応答は、データのSSD17への書込み、または削除の完了通知を含む。また、システムコール41は、削除部314aから削除のシステムコールを受信した場合、システムコールに含まれるファイル名のファイルを削除するためのファイルアクセス要求を、ファイルシステム42に送信する。
ファイルシステム42は、システムコール41から受け取った読出し、書込み、または削除のファイルアクセス要求に従って、それぞれの処理に対応するデータアクセス要求を、ブロックデバイス43に送る。そして、ファイルシステム42は、ブロックデバイス43に送ったデータアクセス要求に応じたデータアクセス応答をブロックデバイス43から受け取る。この場合、読出しのデータアクセス要求に対応するデータアクセス応答は、読出しの対象となるデータを含む。また、書込み、または削除のデータアクセス要求に対応するデータアクセス応答は、データのSSD17への書込み、または削除の完了通知を含む。
ブロックデバイス43は、ファイルシステム42から受け取った読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するデータアクセス要求をデバイスドライバ47に送る。そして、ブロックデバイス43は、デバイスドライバ47に送ったデータアクセス要求に応じたデータアクセス応答をデバイスドライバ47から受け取る。この場合、読出しのデータアクセス要求に対応するデータアクセス応答は、読出しの対象となるデータを含む。また、書込み、または削除のデータアクセス要求に対応するデータアクセス応答は、データのSSD17への書込み、または削除の完了通知を含む。
デバイスドライバ47は、ブロックデバイス43から受け取った読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するデータアクセス要求をストレージアクセス部16に送信する。そして、デバイスドライバ47は、ストレージアクセス部16に送信したデータアクセス要求に応じたデータアクセス応答をストレージアクセス部16から受信する。この場合、読出しのデータアクセス要求に対応するデータアクセス応答は、読出しの対象となるデータを含む。また、書込み、または削除のデータアクセス要求に対応するデータアクセス応答は、データのSSD17への書込み、または削除の完了通知を含む。
ストレージアクセス部16は、デバイスドライバ47から受信した読出し、書込み、または削除のデータアクセス要求に従って、それぞれの処理に対応するコマンドを、SSD17(具体的には、NANDメモリ制御部171)に送信する。そして、ストレージアクセス部16は、SSD17に送信したコマンドに応じた応答をSSD17から受信する。この場合、読出しのコマンドに対する応答は、読出しの対象となるデータを含む。また、書込み、または削除のコマンドに対応する応答は、データのSSD17への書込み、または削除の完了通知を含む。
なお、図16に示すアクセス制御部311a、カウンタ部312a、判定部313aおよび削除部314aは、機能を概念的に示したものであって、このような構成に限定されるものではない。
また、図16に示すアクセス制御部311a、カウンタ部312a、判定部313aおよび削除部314aは、ソフトウェアであるプログラムではなく、少なくとも一部がハードウェア回路によって実現されるものとしてもよい。
図18は、第3の実施形態のアプリケーションからシステムコールが出力された場合の処理のフローチャートである。図18を参照しながら、アプリケーション31がシステムコールを出力した場合の処理について説明する。まず、アプリケーション31に発生した処理に応じてSSD17にアクセスする必要がある場合、アプリケーション31のアクセス制御部311aは、読出し、書込み、または削除のシステムコールをシステムコール41に送る。
<ステップS31>
アプリケーション31のカウンタ部312aは、アクセス制御部311aから出力されたシステムコールを受け取る。そして、カウンタ部312aは、受け取ったシステムコールがデータの読出しのコールであるか否かを判定する。システムコールがデータの読出しのコールでない場合(ステップS31:No)、ステップS32へ進み、データの読出しのコールである場合(ステップS31:Yes)、ステップS34へ進む。
<ステップS32>
カウンタ部312aは、受け取ったシステムコールがデータの削除のコールであるか否かを判定する。システムコールがデータの削除のコールである場合(ステップS32:Yes)、ステップS33へ進み、データの削除のコールでない場合(ステップS32:No)、処理が終了する。
<ステップS33>
カウンタ部312aは、受け取ったシステムコールが削除のコールである場合、リードカウンタテーブル600aにおいて、システムコールが示すファイル名に対応する読出し回数を0にリセットする。ここで、システムコールが書込みのコールである場合、システムコールが示すファイル名のファイルを構成する物理セクタ502のデータのすべてが書込みの対象となるとは限らない。したがって、システムコールが書込みのコールである場合、システムコールが示すファイル名に対応する読出し回数を0にリセットすることは適当ではないため、読出し回数をそのままとする。そして、処理が終了する。
<ステップS34>
カウンタ部312aは、受け取ったシステムコールがデータの読出しのコールである場合、リードカウンタテーブル600aにおいて、システムコールが示すファイル名に対応する読出し回数をカウントアップ(インクリメント)する。そして、カウンタ部312aは、カウントアップした読出し回数の情報を、アプリケーション31の判定部313aに送る。そして、ステップS35へ進む。
<ステップS35>
判定部313aは、カウンタ部312aから受け取った読出し回数が、所定の上限回数以上であるか否かを判定する。読出し回数が所定の上限回数以上である場合(ステップS35:Yes)、ステップS36へ進み、読出し回数が所定の上限回数未満である場合(ステップS35:No)、処理が終了する。
<ステップS36>
判定部313aは、読出し回数が所定の上限回数以上である場合、リードカウンタテーブル600aにおいて読出し回数に対応するファイル名のファイル(第1データ)の削除指令を、アプリケーション31の削除部314aに送る。削除部314aは、判定部313aから削除指令を受け取ると、削除指令で示されるファイル名のファイルの削除を要求するシステムコールを、システムコール41に送る。システムコール41は、削除部314aから削除のシステムコールを受け取ると、システムコールに含まれるファイル名のファイルを削除するためのファイルアクセス要求を、ファイルシステム42に送る。ファイルシステム42は、システムコール41から削除のファイルアクセス要求を受け取ると、ファイルアクセス要求に含まれるファイル名のファイルを構成するデータを削除するためのデータアクセス要求をブロックデバイス43に送る。具体的には、ファイルシステム42は、ブロックデバイス43に送るデータアクセス要求に、削除対象のデータに対応する論理番号を含める。ブロックデバイス43は、ファイルシステム42から削除のデータアクセス要求を受け取ると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのデータアクセス要求を、デバイスドライバ47に送る。デバイスドライバ47は、ブロックデバイス43から削除のデータアクセス要求を受け取ると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのデータアクセス要求を、ストレージアクセス部16に送信する。ストレージアクセス部16は、デバイスドライバ47から削除のデータアクセス要求を受信すると、データアクセス要求に含まれる論理番号に対応する論理セクタ501のデータを削除するためのコマンドを、SSD17のNANDメモリ制御部171に送信する。NANDメモリ制御部171は、ストレージアクセス部16から削除のコマンドを受信すると、コマンドで示される論理番号の論理セクタ501のデータを、物理コマンドによって削除する。そして、NANDメモリ制御部171は、データを削除した論理セクタ501に対応する物理セクタ502のデータを所定のタイミングで削除する。そして、ステップS37へ進む。
<ステップS37>
判定部313aは、さらに、リードカウンタテーブル600aにおいて、削除対象であるファイルのファイル名に対応する読出し回数をリセットするためのカウンタリセット要求を、カウンタ部312aに送る。カウンタ部312aは、判定部313aからカウンタリセット要求を受け取ると、リードカウンタテーブル600aにおいて、カウンタリセット要求が示すファイル名に対応する読出し回数を0にリセットする。そして、処理が終了する。
以上のように、本実施形態の情報処理装置は、OS40b上で動作するアプリケーション31に、第1の実施形態のデバイスドライバ44が実現するアクセス制御部441a、カウンタ部442a、判定部443a、および削除部444aに相当する機能が備えられている。ただし、データの読出し、書込み、および削除の単位は、セクタ単位ではなく、ファイル単位となっているので、ファイルのファイル名ごとに読出し回数を管理するものとしている。これによっても、第1の実施形態と同様の効果を奏することができる。また、アプリケーション31において、上述の機能を備えることができるので、簡易に実装することが可能となり、SSD17における読出しディスターブの発生の抑制をアプリケーションレベルで簡易に実現することができる。
(第4の実施形態)
本実施形態においては、第1〜3の実施形態いずれかに係る情報処理装置をネットワーク上のウェブキャッシュサーバに適用した例を説明する。
図19は、第4の実施形態のクライアントサーバシステムの構成例を示す図である。図19を参照しながら、本実施形態のネットワーク構成の概要を説明する。
図19に示すように、本実施形態のネットワーク構成は、ウェブサーバ50(情報提供サーバ)と、ウェブサーバ50に接続されたウェブキャッシュサーバ10aと、ネットワークを介してウェブキャッシュサーバ10aに接続されたウェブクライアント55と、を含むクライアントサーバ型の構成である。
ウェブサーバ50は、WWW(World Wide Web)システムにおいて、HTML(Hyper Text Markup Language)文書および画像等のコンテンツを蓄積し、ウェブクライアント55のブラウザ等のアプリケーションの要求に応じて、ネットワークを介して、コンテンツを送信する装置またはシステムである。ウェブサーバ50は、HDD(Hard Disk Drive)51を備えており、HDD51に上述のコンテンツを蓄積している。
ウェブキャッシュサーバ10aは、第1〜3の実施形態いずれかに係る情報処理装置を適用したキャッシュサーバである。ウェブキャッシュサーバ10aは、ウェブサーバ50が提供するコンテンツの複製を蓄積し、ウェブクライアント55からの要求があった場合に、ウェブサーバ50に代わって、ネットワークを介して、コンテンツを提供する装置またはシステムである。ウェブキャッシュサーバ10aは、SSD17を備えており、SSD17に上述のコンテンツの複製を蓄積している。このように、ウェブサーバ50とウェブクライアント55との間に、ウェブキャッシュサーバ10aを介することによって、ネットワークのトラフィック、およびウェブサーバ50のサーバの負荷を低減することができる。
ウェブクライアント55は、ユーザの要求に応じて、ウェブサーバ50(またはウェブキャッシュサーバ10a)に対してコンテンツの送信を要求し、ウェブブラウザ等のアプリケーションによってコンテンツの閲覧を可能とする装置またはシステムである。
以上のように、第1〜3の実施形態いずれかの情報処理装置を、クライアントサーバ型のWWWシステムのウェブキャッシュサーバ10aに適用するものとしている。これによって、ウェブキャッシュサーバ10aが備えるSSD17において、読出しディスターブの発生を抑制し、読出し時間の増大を抑制することができるので、SSD17の高性能な読み書き機能と併せて、キャッシュサーバとしての高速処理が可能となる。
(第4の実施形態の変形例)
本変形例においては、第1〜3の実施形態のいずれかに係る情報処理装置をネットワーク上のデータベースキャッシュサーバに適用した例を説明する。
図20は、第4の実施形態の変形例のクライアントサーバシステムの構成例を示す図である。図20を参照しながら、本変形例のネットワーク構成の概要を説明する。
図20に示すように、本変形例のネットワーク構成は、データベースサーバ60(情報提供サーバ)と、ネットワークを介してデータベースサーバ60に接続されたデータベースキャッシュサーバ10bと、ネットワークを介してデータベースサーバ60およびデータベースキャッシュサーバ10bに接続されたデータベースクライアント65と、を含むクライアントサーバ型の構成である。
データベースサーバ60は、データベース管理システム(DBMS:Database Management System)を稼働させ、様々なデータをデータベースとして蓄積し、データベースクライアント65から要求されたデータを送信したり、要求に従ってデータを書き換える装置またはシステムである。データベースサーバ60は、HDD61を備えており、HDD61にデータベースが構成され、上述の様々なデータを蓄積している。
データベースキャッシュサーバ10bは、第1〜3の実施形態いずれかに係る情報処理装置を適用したキャッシュサーバである。データベースキャッシュサーバ10bは、データベースサーバ60が提供するデータの複製を蓄積し、データベースクライアント65からの要求があった場合に、データベースサーバ60に代わって、ネットワークを介して、データを提供等する装置またはシステムである。データベースキャッシュサーバ10bは、SSD17を備えており、SSD17に上述のデータの複製を蓄積している。このように、データベースサーバ60と共に、データベースキャッシュサーバ10bを設置することによって、例えば、データベースクライアント65からデータベースサーバ60に対して要求したデータを、データベースキャッシュサーバ10bに蓄積させ、次回に同様のデータの要求がデータベースクライアント65からなされた場合、データベースキャッシュサーバ10bから高速にデータを提供することができる。
データベースクライアント65は、ユーザの要求に従って、データベースサーバ60(またはデータベースキャッシュサーバ10b)に対してデータの送信、または、データベースのデータの書換え等を要求する装置またはシステムである。
以上のように、第1〜3の実施形態いずれかの情報処理装置を、クライアントサーバ型のデータベースシステムのデータベースキャッシュサーバ10bに適用するものとしている。これによって、データベースキャッシュサーバ10bが備えるSSD17において、読出しディスターブの発生を抑制し、読出し時間の増大を抑制することができるので、SSD17の高性能な読み書き機能と併せて、キャッシュサーバとしての高速処理が可能となる。
なお、上述の実施形態の情報処理装置において、NANDメモリを備える記憶装置としてSSD17を例に示したが、これに限定されるものではない。すなわち、NANDメモリを備える記憶装置が、USBメモリ、またはSDメモリカード等のその他の記憶装置であってもよい。
また、上述の実施形態の情報処理装置のCPU11で実行されるOSおよびアプリケーションであるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、またはフレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
また、上述の実施形態の情報処理装置のCPU11で実行されるOSおよびアプリケーションであるプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードされることにより提供されるようにしてもよい。また、上述の実施形態の情報処理装置のCPU11で実行されるOSおよびアプリケーションであるプログラムは、インターネット等のネットワーク経由で提供または配布されるようにしてもよい。また、上述の実施形態の情報処理装置のCPU11で実行されるOSおよびアプリケーションであるプログラムは、ROM等に予め組み込んで提供されるようにしてもよい。
また、上述の実施形態の情報処理装置のCPU11で実行されるOSおよびアプリケーションであるプログラムは、上述したCPU11で実行される各機能をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、CPU11が記憶装置(ROM12およびSSD17等)からプログラムを読み出して実行することによって、上述の各機能がコンピュータ上で実現されるようになっている。
以上のように本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、および変更を行うことができる。これらの実施形態およびその変形は、発明の範囲および要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 情報処理装置
10a ウェブキャッシュサーバ
10b データベースキャッシュサーバ
11 CPU
12 ROM
13 RAM
14 ネットワークI/F
15 ディスプレイ
16 ストレージアクセス部
17 SSD
18 キーボード
19 マウス
20 CD−ROMドライブ
21 CD−ROM
22 バス
30、31 アプリケーション
40、40a、40b OS
41 システムコール
42 ファイルシステム
43 ブロックデバイス
44、45 デバイスドライバ
46 ブロックデバイス
47 デバイスドライバ
50 ウェブサーバ
51 HDD
55 ウェブクライアント
60 データベースサーバ
61 HDD
65 データベースクライアント
171 NANDメモリ制御部
172 NANDメモリ部
173 NANDメモリチップ
174 ブロック
174a ページ
311 アクセス制御モジュール
311a アクセス制御部
312 カウンタモジュール
312a カウンタ部
313 判定モジュール
313a 判定部
314 削除モジュール
314a 削除部
441 アクセス制御モジュール
441a アクセス制御部
442 カウンタモジュール
442a カウンタ部
443 判定モジュール
443a 判定部
444 削除モジュール
444a 削除部
451a アクセス制御部
452a カウンタ部
453a 判定部
454a 削除部
461 アクセス制御モジュール
461a アクセス制御部
462 カウンタモジュール
462a カウンタ部
463 判定モジュール
463a 判定部
464 削除モジュール
464a 削除部
501 論理セクタ
502 物理セクタ
503 論物対応表
600、600a リードカウンタテーブル

Claims (10)

  1. NAND型フラッシュメモリでデータを記憶する記憶手段と、
    前記記憶手段に記憶されたデータへのアクセス要求を出力するアクセス制御手段と、
    前記アクセス要求が読出しの要求である場合、該アクセス要求が示す前記記憶手段の記憶領域に対する読出し回数を1増やすカウント手段と、
    前記読出し回数が、前記NAND型フラッシュメモリのブロックにおける読出しの許容回数を、1ブロック内のページ数で除した値の回数以下の回数である所定回数に達したか否かを判定する判定手段と、
    前記判定手段により前記読出し回数が前記所定回数に達したと判定された場合、該読出し回数に対応する前記記憶領域に記憶された第1データを削除する削除手段と、
    を備えた情報処理装置。
  2. 前記カウント手段は、前記判定手段により前記読出し回数が前記所定回数に達したと判定された場合、該読出し回数をリセットする請求項1に記載の情報処理装置。
  3. 前記削除手段は、前記判定手段により前記読出し回数が前記所定回数に達したと判定された場合、前記所定回数に達した前記読出し回数に対応する前記記憶領域の前記第1データを取得し、該記憶領域に記憶された該第1データを削除し、取得した該第1データを前記記憶手段に新たに第2データとして書き込む請求項1に記載の情報処理装置。
  4. 前記アクセス制御手段は、前記記憶手段において、セクタ単位の前記記憶領域である第1記憶領域に記憶されたデータへの前記アクセス要求を出力し、
    前記カウント手段は、前記アクセス要求が書込みまたは削除の要求である場合、該アクセス要求が示す前記第1記憶領域に対する前記読出し回数をリセットする請求項1に記載の情報処理装置。
  5. 前記アクセス制御手段は、前記記憶手段において、セクタ単位の前記記憶領域である第1記憶領域に記憶されたデータへの前記アクセス要求を出力し、
    前記記憶手段は、論理セクタと、前記第1記憶領域である物理セクタとの対応情報を有するメモリ制御手段を有し、
    前記メモリ制御手段は、前記物理セクタに記憶された前記第1データを削除する場合、前記対応情報によって該物理セクタに対応付けられた前記論理セクタのデータを削除する請求項1に記載の情報処理装置。
  6. 前記アクセス制御手段は、前記記憶手段において、ファイル単位の前記記憶領域である第2記憶領域に記憶されたデータに前記アクセス要求する請求項1に記載の情報処理装置。
  7. 前記カウント手段は、前記アクセス要求が削除の要求である場合、該アクセス要求が示す前記第2記憶領域に対する前記読出し回数をリセットする請求項6に記載の情報処理装置。
  8. 情報提供サーバと通信するためのインターフェース手段をさらに備え、
    前記情報提供サーバに対応するキャッシュサーバとして機能する請求項1〜のいずれか一項に記載の情報処理装置。
  9. NAND型フラッシュメモリでデータを記憶する記憶手段に記憶されたデータへのアクセス要求を出力するアクセス制御ステップと、
    前記アクセス要求が読出しの要求である場合、該アクセス要求が示す前記記憶手段の記憶領域に対する読出し回数を1増やすカウントステップと、
    前記読出し回数が、前記NAND型フラッシュメモリのブロックにおける読出しの許容回数を、1ブロック内のページ数で除した値の回数以下の回数である所定回数に達したか否かを判定する判定ステップと、
    前記読出し回数が前記所定回数に達したと判定した場合、該読出し回数に対応する前記記憶領域に記憶された第1データを削除する削除ステップと、
    を有するデータアクセス方法。
  10. NAND型フラッシュメモリでデータを記憶する記憶手段を備えたコンピュータを、
    前記記憶手段に記憶されたデータへのアクセス要求を出力するアクセス制御手段と、
    前記アクセス要求が読出しの要求である場合、該アクセス要求が示す前記記憶手段の記憶領域に対する読出し回数を1増やすカウント手段と、
    前記読出し回数が、前記NAND型フラッシュメモリのブロックにおける読出しの許容回数を、1ブロック内のページ数で除した値の回数以下の回数である所定回数に達したか否かを判定する判定手段と、
    前記判定手段により前記読出し回数が前記所定回数に達したと判定された場合、該読出し回数に対応する前記記憶領域に記憶された第1データを削除する削除手段と、
    して機能させるプログラム。
JP2014151059A 2014-07-24 2014-07-24 情報処理装置、データアクセス方法およびプログラム Expired - Fee Related JP6226830B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014151059A JP6226830B2 (ja) 2014-07-24 2014-07-24 情報処理装置、データアクセス方法およびプログラム
US14/699,031 US20160026394A1 (en) 2014-07-24 2015-04-29 Image processing device, data accessing method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014151059A JP6226830B2 (ja) 2014-07-24 2014-07-24 情報処理装置、データアクセス方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2016024779A JP2016024779A (ja) 2016-02-08
JP6226830B2 true JP6226830B2 (ja) 2017-11-08

Family

ID=55166798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014151059A Expired - Fee Related JP6226830B2 (ja) 2014-07-24 2014-07-24 情報処理装置、データアクセス方法およびプログラム

Country Status (2)

Country Link
US (1) US20160026394A1 (ja)
JP (1) JP6226830B2 (ja)

Families Citing this family (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181051B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10289867B2 (en) 2014-07-27 2019-05-14 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US9729583B1 (en) 2016-06-10 2017-08-08 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
TWI599880B (zh) * 2016-03-22 2017-09-21 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
US11004125B2 (en) 2016-04-01 2021-05-11 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US20220164840A1 (en) 2016-04-01 2022-05-26 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10706447B2 (en) 2016-04-01 2020-07-07 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11244367B2 (en) 2016-04-01 2022-02-08 OneTrust, LLC Data processing systems and methods for integrating privacy information management systems with data loss prevention tools or other tools for privacy design
US10423996B2 (en) 2016-04-01 2019-09-24 OneTrust, LLC Data processing systems and communication systems and methods for the efficient generation of privacy risk assessments
US11544667B2 (en) 2016-06-10 2023-01-03 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10235534B2 (en) 2016-06-10 2019-03-19 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US10565161B2 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for processing data subject access requests
US10565397B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11416109B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US10353673B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10282700B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10565236B1 (en) 2016-06-10 2020-02-18 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11328092B2 (en) 2016-06-10 2022-05-10 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10614247B2 (en) 2016-06-10 2020-04-07 OneTrust, LLC Data processing systems for automated classification of personal information from documents and related methods
US10454973B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10438017B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Data processing systems for processing data subject access requests
US10769301B2 (en) 2016-06-10 2020-09-08 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US11038925B2 (en) 2016-06-10 2021-06-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11475136B2 (en) 2016-06-10 2022-10-18 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11200341B2 (en) 2016-06-10 2021-12-14 OneTrust, LLC Consent receipt management systems and related methods
US11675929B2 (en) 2016-06-10 2023-06-13 OneTrust, LLC Data processing consent sharing systems and related methods
US10353674B2 (en) 2016-06-10 2019-07-16 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10642870B2 (en) 2016-06-10 2020-05-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10586075B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11461500B2 (en) 2016-06-10 2022-10-04 OneTrust, LLC Data processing systems for cookie compliance testing with website scanning and related methods
US10242228B2 (en) 2016-06-10 2019-03-26 OneTrust, LLC Data processing systems for measuring privacy maturity within an organization
US10452864B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for webform crawling to map processing activities and related methods
US11151233B2 (en) 2016-06-10 2021-10-19 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10798133B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10503926B2 (en) 2016-06-10 2019-12-10 OneTrust, LLC Consent receipt management systems and related methods
US10318761B2 (en) 2016-06-10 2019-06-11 OneTrust, LLC Data processing systems and methods for auditing data request compliance
US11416590B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10607028B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US10839102B2 (en) 2016-06-10 2020-11-17 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US11222142B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for validating authorization for personal data collection, storage, and processing
US11188862B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Privacy management systems and methods
US10284604B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing and scanning systems for generating and populating a data inventory
US11403377B2 (en) 2016-06-10 2022-08-02 OneTrust, LLC Privacy management systems and methods
US11146566B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10803200B2 (en) 2016-06-10 2020-10-13 OneTrust, LLC Data processing systems for processing and managing data subject access in a distributed environment
US10685140B2 (en) 2016-06-10 2020-06-16 OneTrust, LLC Consent receipt management systems and related methods
US10796260B2 (en) 2016-06-10 2020-10-06 OneTrust, LLC Privacy management systems and methods
US11520928B2 (en) 2016-06-10 2022-12-06 OneTrust, LLC Data processing systems for generating personal data receipts and related methods
US11228620B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10437412B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US11210420B2 (en) 2016-06-10 2021-12-28 OneTrust, LLC Data subject access request processing systems and related methods
US11438386B2 (en) 2016-06-10 2022-09-06 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11301796B2 (en) 2016-06-10 2022-04-12 OneTrust, LLC Data processing systems and methods for customizing privacy training
US11636171B2 (en) 2016-06-10 2023-04-25 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10509920B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for processing data subject access requests
US10997318B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for generating and populating a data inventory for processing data access requests
US10713387B2 (en) 2016-06-10 2020-07-14 OneTrust, LLC Consent conversion optimization systems and related methods
US11418492B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11651106B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10169609B1 (en) 2016-06-10 2019-01-01 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10275614B2 (en) 2016-06-10 2019-04-30 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11100444B2 (en) 2016-06-10 2021-08-24 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10846433B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing consent management systems and related methods
US10289870B2 (en) 2016-06-10 2019-05-14 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10204154B2 (en) 2016-06-10 2019-02-12 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11651104B2 (en) 2016-06-10 2023-05-16 OneTrust, LLC Consent receipt management systems and related methods
US10706176B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data-processing consent refresh, re-prompt, and recapture systems and related methods
US11341447B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Privacy management systems and methods
US11277448B2 (en) 2016-06-10 2022-03-15 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10706131B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11222309B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems for generating and populating a data inventory
US11294939B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10762236B2 (en) 2016-06-10 2020-09-01 OneTrust, LLC Data processing user interface monitoring systems and related methods
US10592648B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Consent receipt management systems and related methods
US10909265B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US10282559B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US11134086B2 (en) 2016-06-10 2021-09-28 OneTrust, LLC Consent conversion optimization systems and related methods
US11366909B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11087260B2 (en) 2016-06-10 2021-08-10 OneTrust, LLC Data processing systems and methods for customizing privacy training
US10440062B2 (en) 2016-06-10 2019-10-08 OneTrust, LLC Consent receipt management systems and related methods
US11416589B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10592692B2 (en) 2016-06-10 2020-03-17 OneTrust, LLC Data processing systems for central consent repository and related methods
US11023842B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10346637B2 (en) 2016-06-10 2019-07-09 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10949170B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for integration of consumer feedback with data subject access requests and related methods
US10776518B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Consent receipt management systems and related methods
US10726158B2 (en) 2016-06-10 2020-07-28 OneTrust, LLC Consent receipt management and automated process blocking systems and related methods
US11188615B2 (en) 2016-06-10 2021-11-30 OneTrust, LLC Data processing consent capture systems and related methods
US10776517B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US11354434B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11157600B2 (en) 2016-06-10 2021-10-26 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10706174B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for prioritizing data subject access requests for fulfillment and related methods
US11295316B2 (en) 2016-06-10 2022-04-05 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10776514B2 (en) 2016-06-10 2020-09-15 OneTrust, LLC Data processing systems for the identification and deletion of personal data in computer systems
US10944725B2 (en) 2016-06-10 2021-03-09 OneTrust, LLC Data processing systems and methods for using a data model to select a target data asset in a data migration
US11227247B2 (en) 2016-06-10 2022-01-18 OneTrust, LLC Data processing systems and methods for bundled privacy policies
US10885485B2 (en) 2016-06-10 2021-01-05 OneTrust, LLC Privacy management systems and methods
US10509894B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10706379B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Data processing systems for automatic preparation for remediation and related methods
US11025675B2 (en) 2016-06-10 2021-06-01 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10289866B2 (en) 2016-06-10 2019-05-14 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10997315B2 (en) 2016-06-10 2021-05-04 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10678945B2 (en) 2016-06-10 2020-06-09 OneTrust, LLC Consent receipt management systems and related methods
US10510031B2 (en) 2016-06-10 2019-12-17 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10430740B2 (en) 2016-06-10 2019-10-01 One Trust, LLC Data processing systems for calculating and communicating cost of fulfilling data subject access requests and related methods
US10848523B2 (en) 2016-06-10 2020-11-24 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US11562097B2 (en) 2016-06-10 2023-01-24 OneTrust, LLC Data processing systems for central consent repository and related methods
US11138299B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US11144622B2 (en) 2016-06-10 2021-10-12 OneTrust, LLC Privacy management systems and methods
US10949565B2 (en) 2016-06-10 2021-03-16 OneTrust, LLC Data processing systems for generating and populating a data inventory
US10909488B2 (en) 2016-06-10 2021-02-02 OneTrust, LLC Data processing systems for assessing readiness for responding to privacy-related incidents
US10346638B2 (en) * 2016-06-10 2019-07-09 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10585968B2 (en) 2016-06-10 2020-03-10 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US10282692B2 (en) 2016-06-10 2019-05-07 OneTrust, LLC Data processing systems for identifying, assessing, and remediating data processing risks using data modeling techniques
US10496803B2 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing systems and methods for efficiently assessing the risk of privacy campaigns
US11238390B2 (en) 2016-06-10 2022-02-01 OneTrust, LLC Privacy management systems and methods
US10496846B1 (en) 2016-06-10 2019-12-03 OneTrust, LLC Data processing and communications systems and methods for the efficient implementation of privacy by design
US10896394B2 (en) 2016-06-10 2021-01-19 OneTrust, LLC Privacy management systems and methods
US10708305B2 (en) 2016-06-10 2020-07-07 OneTrust, LLC Automated data processing systems and methods for automatically processing requests for privacy-related information
US11625502B2 (en) 2016-06-10 2023-04-11 OneTrust, LLC Data processing systems for identifying and modifying processes that are subject to data subject access requests
US10452866B2 (en) 2016-06-10 2019-10-22 OneTrust, LLC Data processing systems for fulfilling data subject access requests and related methods
US11138242B2 (en) 2016-06-10 2021-10-05 OneTrust, LLC Data processing systems and methods for automatically detecting and documenting privacy-related aspects of computer software
US10873606B2 (en) 2016-06-10 2020-12-22 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10878127B2 (en) 2016-06-10 2020-12-29 OneTrust, LLC Data subject access request processing systems and related methods
US10416966B2 (en) 2016-06-10 2019-09-17 OneTrust, LLC Data processing systems for identity validation of data subject access requests and related methods
US11416798B2 (en) 2016-06-10 2022-08-16 OneTrust, LLC Data processing systems and methods for providing training in a vendor procurement process
US10740487B2 (en) 2016-06-10 2020-08-11 OneTrust, LLC Data processing systems and methods for populating and maintaining a centralized database of personal data
US11343284B2 (en) 2016-06-10 2022-05-24 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
US10572686B2 (en) 2016-06-10 2020-02-25 OneTrust, LLC Consent receipt management systems and related methods
US11481710B2 (en) 2016-06-10 2022-10-25 OneTrust, LLC Privacy management systems and methods
US11366786B2 (en) 2016-06-10 2022-06-21 OneTrust, LLC Data processing systems for processing data subject access requests
US11222139B2 (en) 2016-06-10 2022-01-11 OneTrust, LLC Data processing systems and methods for automatic discovery and assessment of mobile software development kits
US10853501B2 (en) 2016-06-10 2020-12-01 OneTrust, LLC Data processing and scanning systems for assessing vendor risk
US10606916B2 (en) 2016-06-10 2020-03-31 OneTrust, LLC Data processing user interface monitoring systems and related methods
US11336697B2 (en) 2016-06-10 2022-05-17 OneTrust, LLC Data processing systems for data-transfer risk identification, cross-border visualization generation, and related methods
US10181019B2 (en) 2016-06-10 2019-01-15 OneTrust, LLC Data processing systems and communications systems and methods for integrating privacy compliance systems with software development and agile tools for privacy design
US11727141B2 (en) 2016-06-10 2023-08-15 OneTrust, LLC Data processing systems and methods for synching privacy-related user consent across multiple computing devices
US10783256B2 (en) 2016-06-10 2020-09-22 OneTrust, LLC Data processing systems for data transfer risk identification and related methods
US11354435B2 (en) 2016-06-10 2022-06-07 OneTrust, LLC Data processing systems for data testing to confirm data deletion and related methods
US11392720B2 (en) 2016-06-10 2022-07-19 OneTrust, LLC Data processing systems for verification of consent and notice processing and related methods
US11057356B2 (en) 2016-06-10 2021-07-06 OneTrust, LLC Automated data processing systems and methods for automatically processing data subject access requests using a chatbot
US11074367B2 (en) 2016-06-10 2021-07-27 OneTrust, LLC Data processing systems for identity validation for consumer rights requests and related methods
US10467432B2 (en) 2016-06-10 2019-11-05 OneTrust, LLC Data processing systems for use in automatically generating, populating, and submitting data subject access requests
US10013577B1 (en) 2017-06-16 2018-07-03 OneTrust, LLC Data processing systems for identifying whether cookies contain personally identifying information
KR20190088184A (ko) * 2018-01-18 2019-07-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11544409B2 (en) 2018-09-07 2023-01-03 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US10803202B2 (en) 2018-09-07 2020-10-13 OneTrust, LLC Data processing systems for orphaned data identification and deletion and related methods
US11144675B2 (en) 2018-09-07 2021-10-12 OneTrust, LLC Data processing systems and methods for automatically protecting sensitive data within privacy management systems
US11797528B2 (en) 2020-07-08 2023-10-24 OneTrust, LLC Systems and methods for targeted data discovery
EP4189569A1 (en) 2020-07-28 2023-06-07 OneTrust LLC Systems and methods for automatically blocking the use of tracking tools
US11475165B2 (en) 2020-08-06 2022-10-18 OneTrust, LLC Data processing systems and methods for automatically redacting unstructured data from a data subject access request
US11436373B2 (en) 2020-09-15 2022-09-06 OneTrust, LLC Data processing systems and methods for detecting tools for the automatic blocking of consent requests
US20230334158A1 (en) 2020-09-21 2023-10-19 OneTrust, LLC Data processing systems and methods for automatically detecting target data transfers and target data processing
US11397819B2 (en) 2020-11-06 2022-07-26 OneTrust, LLC Systems and methods for identifying data processing activities based on data discovery results
US11687528B2 (en) 2021-01-25 2023-06-27 OneTrust, LLC Systems and methods for discovery, classification, and indexing of data in a native computing system
US11442906B2 (en) 2021-02-04 2022-09-13 OneTrust, LLC Managing custom attributes for domain objects defined within microservices
US11494515B2 (en) 2021-02-08 2022-11-08 OneTrust, LLC Data processing systems and methods for anonymizing data samples in classification analysis
US11601464B2 (en) 2021-02-10 2023-03-07 OneTrust, LLC Systems and methods for mitigating risks of third-party computing system functionality integration into a first-party computing system
WO2022178089A1 (en) 2021-02-17 2022-08-25 OneTrust, LLC Managing custom workflows for domain objects defined within microservices
US11546661B2 (en) 2021-02-18 2023-01-03 OneTrust, LLC Selective redaction of media content
US11533315B2 (en) 2021-03-08 2022-12-20 OneTrust, LLC Data transfer discovery and analysis systems and related methods
US11562078B2 (en) 2021-04-16 2023-01-24 OneTrust, LLC Assessing and managing computational risk involved with integrating third party computing functionality within a computing system
US11620142B1 (en) 2022-06-03 2023-04-04 OneTrust, LLC Generating and customizing user interfaces for demonstrating functions of interactive user environments

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3604466B2 (ja) * 1995-09-13 2004-12-22 株式会社ルネサステクノロジ フラッシュディスクカード
JP5016027B2 (ja) * 2006-05-15 2012-09-05 サンディスク コーポレイション 最終期を計算する不揮発性メモリシステム
JP5073402B2 (ja) * 2007-07-31 2012-11-14 パナソニック株式会社 メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
JP4267682B1 (ja) * 2008-06-04 2009-05-27 株式会社ハギワラシスコム Nandフラッシュメモリのリフレッシュ方法
JP2010145890A (ja) * 2008-12-22 2010-07-01 Sony Corp 画像表示装置、画像表示方法、プログラム
JP5185156B2 (ja) * 2009-02-24 2013-04-17 株式会社東芝 メモリコントローラおよび半導体記憶装置
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP2012098794A (ja) * 2010-10-29 2012-05-24 Kyocera Mita Corp 記憶装置及び画像形成装置
JP5002719B1 (ja) * 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
JP2013045274A (ja) * 2011-08-24 2013-03-04 Nec Corp キャッシュサーバ、コンテンツ配信方法、コンテンツ配信システム及びコンテンツ配信プログラム
US9176800B2 (en) * 2011-08-31 2015-11-03 Micron Technology, Inc. Memory refresh methods and apparatuses
US8930778B2 (en) * 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination

Also Published As

Publication number Publication date
JP2016024779A (ja) 2016-02-08
US20160026394A1 (en) 2016-01-28

Similar Documents

Publication Publication Date Title
JP6226830B2 (ja) 情報処理装置、データアクセス方法およびプログラム
US10229051B2 (en) Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
US9928167B2 (en) Information processing system and nonvolatile storage unit
CN108733507B (zh) 文件备份和恢复的方法和设备
CN110895445B (zh) 数据处理方法和系统
US10891074B2 (en) Key-value storage device supporting snapshot function and operating method thereof
CN110413199B (zh) 用于管理存储系统的方法、设备和计算机可读存储介质
US9891833B2 (en) Eliminating garbage collection in nand flash devices
JP2016170583A (ja) メモリシステムおよび情報処理システム
TWI502594B (zh) 用於快閃儲存裝置之半區塊管理
CN111949605A (zh) 用于实现文件系统的方法、设备和计算机程序产品
JP6130971B2 (ja) データをフラッシュメモリ装置に書き込む方法、フラッシュメモリ装置及び記憶システム
US20130007371A1 (en) Browser Storage Management
JP2014203405A (ja) 情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラム
CN108228088B (zh) 用于管理存储系统的方法和设备
US20080301203A1 (en) Managing a snapshot stored within a file system space for efficient detecting of in-use blocks
JP6215631B2 (ja) コンピュータシステム及びそのデータ管理方法
CN110737395A (zh) I/o管理方法、电子设备和计算机可读存储介质
US8990541B2 (en) Compacting Memory utilization of sparse pages
JP5967308B2 (ja) 情報処理装置、制御回路、制御プログラム、及び制御方法
JP6623731B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2013109404A (ja) 情報処理装置
US10366724B2 (en) Storage control device, storage system and method of controlling a storage device
WO2016051593A1 (ja) 計算機システム
JP6412820B2 (ja) 記憶システム、制御装置、メモリ制御装置、記憶装置、上位装置、制御プログラム及びデータ読み出し方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171010

R151 Written notification of patent or utility model registration

Ref document number: 6226830

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees