(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-02
(45)【発行日】2024-02-13
(54)【発明の名称】ライト動作方法
(51)【国際特許分類】
G06F 11/10 20060101AFI20240205BHJP
G06F 12/0804 20160101ALI20240205BHJP
【FI】
G06F11/10 632
G06F12/0804 100
(21)【出願番号】P 2018194291
(22)【出願日】2018-10-15
【審査請求日】2021-08-17
【審判番号】
【審判請求日】2023-05-09
(31)【優先権主張番号】10-2017-0142670
(32)【優先日】2017-10-30
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】崔 炯佑
(72)【発明者】
【氏名】朴 炯俊
(72)【発明者】
【氏名】李 珍雄
【合議体】
【審判長】林 毅
【審判官】稲垣 良一
【審判官】脇岡 剛
(56)【参考文献】
【文献】特開2008-158779(JP,A)
【文献】国際公開第2013/132806(WO,A1)
【文献】特許第6115740(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 11/10
G06F 12/0802 - 12/0804
(57)【特許請求の範囲】
【請求項1】
メインメモリーに現在のデータをライトするためにコンピューティング装置により遂行される方法において、
前記現在のデータのライトが遂行される第1アドレスにより指示される前記メインメモリーの領域のデータが第1キャッシュメモリーにキャッシングされているか否かを判定する動作を含み、
前記第1アドレスにより指示される前記メインメモリーの前記領域の前記データが前記第1キャッシュメモリーにキャッシングされている場合において、前記方法は、
前記第1キャッシュメモリーに前記現在のデータを貯蔵する動作と、
前記現在のデータを基準サイズに変更して、前記第1キャッシュメモリーから前記メインメモリーに出力する動作を包含し、
前記現在のデータは前記基準サイズより小さいサイズであり、前記基準サイズは前記データ及びパリティを前記メインメモリーから送信及び受信するためのサイズと同一であり、前記方法は、
前記メインメモリーに出力する前記基準サイズに変更された前記現在のデータに対するパリティを生成する動作と、
その生成されたパリティを前記メインメモリーにライトする動作であって、
前記生成されたパリティのライトが遂行される第2アドレスにより指示される前記メインメモリーの領域のパリティが第2キャッシュメモリーにキャッシングされているか否かを判定し、
前記第2アドレスにより指示される前記メインメモリーの領域のパリティが前記第2キャッシュメモリーにキャッシングされている場合に、前記第2キャッシュメモリーに、前記生成されたパリティを貯蔵し、
前記生成されたパリティを前記基準サイズに変更して、前記第2キャッシュメモリーから前記メインメモリーに出力する動作と、をさらに包含する方法。
【発明の詳細な説明】
【技術分野】
【0001】
メモリーにアクセスするためのコンピューティング装置及び方法に関し、具体的にはデータ保護を使用するインバンド(In-Band)メモリーにアクセスするためのコンピューティング装置及び方法に関する。
【背景技術】
【0002】
コンピューティング装置は、データ処理のためメモリーにアクセスすることができる。コンピューティング装置はメモリーにデータをライト(write)したり、メモリーからデータをリード(read)したりする時、エラー(error)を検査するためパリティ(parity)情報を使用できる。パリティ情報はデータから発生できる。例えば、コンピューティング装置は、32バイトのデータ毎に2バイトのパリティ情報を使用してデータをライト/リードする時、発生するデータのエラーを確認し、場合によってはエラーが発生したデータを直接に修正することもできる。
【0003】
コンピューティング装置がメモリーにアクセスする時、発生される帯域幅の増加はコンピューティング装置の消耗電力を増加させることができる。従って、コンピューティング装置がメモリーにアクセスする時、帯域幅を効率的に使用する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施例が達成しようとする技術的課題は、プロセッサが、データ保護を使用するインバンドメモリーにアクセスする時、キャッシュメモリーを使用してメモリー帯域幅を最大限に活用するための装置及び方法が提供することである。
【0005】
本願で説明される実施例は、前記されたような技術的課題に限定されず、別の技術的課題を達成するために使用されてもよい。
【課題を解決するための手段】
【0006】
コンピューティング装置は、データ及び前記データのエラーを検査するためのパリティを貯蔵し、前記データ及び前記パリティを基準サイズで送信及び受信するためのメインメモリー(main memory)、前記メインメモリーにアクセスするためのプロセッサ、及びデータをキャッシングするための第1キャッシュメモリーを包含し、前記プロセッサが現在のデータについてのライト作動を要請する場合、前記現在のデータは前記第1キャッシュメモリーに貯蔵され、前記第1キャッシュメモリーは前記貯蔵された現在のデータを前記基準サイズに変更して前記メインメモリーに出力し、前記現在のデータは前記基準サイズより小さいサイズであり得る。
【0007】
キャッシュメモリーを包含するプロセッサにおいて、前記キャッシュメモリーはデータをキャッシングするための第1キャッシュメモリーと前記データのエラーを検査するためのパリティをキャッシングするための第2キャッシュメモリーとを包含し、前記第1キャッシュメモリーは基準サイズのデータをメインメモリーに出力するように構成され、前記第2キャッシュメモリーは前記基準サイズのパリティを前記メインメモリーに出力するように構成され、前記基準サイズは前記データ及び前記パリティを前記メインメモリーから送信及び受信するためのサイズと同一である。
【0008】
メインメモリーに現在のデータをライト(write)するためにコンピューティング装置により遂行される方法において、前記現在のデータのライトが遂行される第1アドレスにより指示される前記メインメモリー領域のデータが第1キャッシュメモリーにキャッシングされているか否かを判定する動作を含み、前記第1アドレスにより指示される前記メインメモリー領域のデータが前記第1キャッシュメモリーにキャッシングされている場合において、前記方法は、前記第1キャッシュメモリーに前記現在のデータを貯蔵する動作と、前記現在のデータを基準サイズに変更して、前記第1キャッシュメモリーから前記メインメモリーに出力する動作とを包含し、前記現在のデータは前記基準サイズより小さいサイズであり、前記基準サイズは前記データ及びパリティを前記メインメモリーから送信及び受信するためのサイズと同一である。
【発明の効果】
【0009】
単位サイズより小さいサイズのデータに対するライト作動が遂行される場合、キャッシュメモリーを用いてインバンドメモリーのバス帯域幅が最大に活用されることができる。帯域幅の浪費が防止されることによって、帯域幅の効率性が向上されることができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、一実施例によるコンピューティング装置のブロック図を示す。
【
図2】
図2は、一実施例によるコンピューティング装置のブロック図を示す。
【
図3A】
図3Aは、一実施例により現在のデータを受信する前のキャッシュメモリー示す。
【
図3B】
図3Bは、一実施例により受信された現在のデータを貯蔵した直後のキャッシュメモリーを示す。
【
図3C】
図3Cは、一実施例により現在のデータを包含する基準サイズのデータを出力するキャッシュメモリーを示す。
【
図3D】
図3Dは、一実施例により要請されたリード(read)データを出力するキャッシュメモリー示す。
【
図4】
図4は、一実施例によるコンピューティング装置の具体的な実施例を示す。
【
図5】
図5は、一実施例によるコンピューティング装置において現在のデータについてのライト作動を遂行する方法の流れ図を示す。
【
図6】図は、一実施例によるコンピューティング装置から生成されたパリティについてのライト作動を遂行する方法の流れ図を示す。
【
図7】
図7は、一実施例によるコンピューティング装置においてリード作動を遂行する方法の流れ図を示す。
【
図8】
図8は、一実施例による電子システムの例示的な構成を示すブロック図である。
【発明を実施するための形態】
【0011】
以下において、本発明の属する技術分野における通常の知識を有する者(以下、通常の技術者)が本発明を容易に実施できるように、添付される図面を参照していくつかの実施例が明確且つ詳細に説明されるであろう。
【0012】
図1は、一実施例によるコンピューティング装置のブロック図を示す。
【0013】
コンピューティング装置100は、プロセッサ120及びメインメモリー160を包含できる。一実施例によるコンピューティング装置100は、コンピュータやモバイル装置であり得る。コンピューティング装置100は、データをメインメモリー160に貯蔵又は記録したり、メインメモリー160からデータをリード(read)したりすることができる。
【0014】
コンピューティング装置100は、データのエラーを検査するためのパリティ情報を使用できる。一実施例によるコンピューティング装置100は、特定のサイズのデータ毎に特定のサイズのパリティ情報を生成できる。例えば、コンピューティング装置100は、32バイトのデータ毎に2バイトのパリティ情報を使用できる。例えば、コンピューティング装置100は、1バイトのデータ毎に1ビットのパリティ情報を使用できる。以下、説明の便宜のため、コンピューティング装置100はデータ保護のため32バイトのデータ毎に2バイトのパリティ情報を使用することと仮定する。
【0015】
プロセッサ120はメインメモリー160にアクセスできる。プロセッサ120はコンピューティング装置100の諸般の作動を制御し、論理演算を遂行できる。一実施例によるプロセッサ120は、システムオンチップ(SoC: System-on-Chip)で構成されることができる。一実施例によるプロセッサ120はASIC(Application Specific Integrated Circuit)、エンベデッドプロセッサ、マイクロプロセッサ、ハードウェア制御ロジック、ハードウェア有限状態機械(FSM)、デジタル信号プロセッサ(DSP)又はこれらの組み合せであり得る。
【0016】
メインメモリー160は、データ及びパリティ情報を貯蔵できる。メインメモリー160はコンピューティング装置100の作動メモリーに使用されることができる。メインメモリー160は、ダイナミックランダムアクセスメモリー(DRAM: Dynamic Random Access Memory)のような揮発性メモリー、又は磁気抵抗ランダムアクセスメモリー(MRAM: Magneto-resistive RAM)、相変化ランダムアクセスメモリー(PRAM: Phase-change RAM)、抵抗変化ランダムアクセスメモリー(RRAM(登録商標): Resistive RAM)、強誘電体ランダムアクセスメモリー(FRAM(登録商標): Ferroelectric RAM)などのような非揮発性メモリーを包含できる。但し、メインメモリー160はデータを貯蔵するための如何なる種類のメモリー装置も包含することが可能であり、これらに制限されない。
【0017】
メインメモリー160は、データとデータのエラーを検査するためのパリティを貯蔵できる。メインメモリー160は、データが貯蔵されるデータ領域162とパリティが貯蔵されるパリティ領域164を包含できる。一実施例によるメインメモリー160は、データ及びパリティを送信又は受信するため同じメモリーバスを使用できる。例えば、メインメモリー160はデータ及びパリティを1つのチャンネルを介して外部と送信及び受信できる。
【0018】
メインメモリー160は、データとパリティを外部と送信又は受信する時、特定のフォーマットを使用できる。例えば、メインメモリー160に入力されたり、メインメモリーから出力されたりするデータ及びパリティの基本サイズの単位は32バイト又は64バイトのサイズであり得る。以下、基準サイズはメインメモリー160がデータ及びパリティを送信及び受信するため使用する基本サイズの単位であってもよい。メインメモリー160のように、データとパリティを同じメモリーに貯蔵し、同じバスを使用してデータとパリティを送信及び受信するメモリーはインバンドメモリー(in-band)と称されることができる。
【0019】
以下、説明の便宜のため、メインメモリー160は32バイトの基準サイズでデータとパリティを外部と送信及び受信することと仮定される。例えば、メインメモリー160は32バイトのメモリー帯域幅を有し得る。
【0020】
以下の説明において、「現在のデータ」とは、現在のプロセッサ120がライト又はリードするためのデータであり、メインメモリー160において使用する基準サイズである32バイトより小さいサイズのデータ(例えば、4バイト)であってもよい。
【0021】
コンピューティング装置100はデータのエラーを検査するためのパリティを生成できる。メインメモリー160はデータとパリティを受信し、パリティに基づいて受信されたデータにエラーがあるか否かを検査することができる。コンピューティング装置100はメインメモリー160からデータとパリティをリードした後、パリティに基づいて受信されたデータにエラーがあるか否かを検査することができる。メインメモリー160にライトされるデータについてのパリティを生成したり、メインメモリー160からリードしたデータをパリティに基づいてエラーを検査したりする動作は、ECC(Error Correcting Code)エンジン(図示せず)において遂行されることができる。
【0022】
一実施例によるプロセッサ120は、メインメモリー160にライトするための32バイトのデータをメインメモリー160に伝達できる。一実施例によるコンピューティング装置100は、32バイトのデータについての2バイトのパリティを生成してメインメモリー160へ伝達できる。メインメモリー160は受信されたデータとパリティに基づいて伝達されたデータにエラーが存在するか否かを検査できる。
【0023】
一実施例によるプロセッサ120は,メインメモリー160にライトするための4バイトサイズの現在のデータをメインメモリー160に伝達できる。一実施例によるコンピューティング装置100は、ライトの要請を遂行するため必要なメインメモリー160上のアドレス情報に基づいて、当該アドレスに貯蔵されている32バイトのデータと32バイトのデータに対応する2バイトのパリティのそれぞれを32バイトの帯域幅を使用してリードできる。プロセッサ120はメインメモリー160からリードした32バイトのデータを現在のデータに基づいて修正できる。コンピューティング装置100は修正された32バイトのデータに対応する2バイトのパリティを生成し、生成された2バイトのパリティに基づいてリードした2バイトのパリティを修正できる。コンピューティング装置100は、修正された32バイトのデータと修正された2バイトのパリティをそれぞれ32バイトの帯域幅を使用してメインメモリー160にライトできる。一実施例によるコンピューティング装置100は4バイトのデータライト動作のため、32バイトのデータリード、2バイトのパリティリード、修正された32バイトのデータライト、生成された2バイトのパリティライトを遂行するから32バイトの帯域幅を4回使用するようになる。
【0024】
図2は、一実施例によるコンピューティング装置のブロック図を示す。
【0025】
以下、プロセッサ220が現在のデータに対するライト又はリードの動作時に、キャッシュメモリーを使用して帯域幅を効率的に使用する実施例が開示される。
【0026】
図2のコンピューティング装置200は、
図1のコンピューティング装置100の具体的な実施例を示す。従って、以下省略された内容であるとしても
図1のコンピューティング装置100に関して記述された内容は、
図2のコンピューティング装置200にも適用されることができる。
図2のプロセッサ220及びメインメモリー260は、それぞれ
図1のプロセッサ120及びメインメモリー160に対応されることができる。
【0027】
コンピューティング装置200はプロセッサ220、キャッシュメモリー240及びメインメモリー260を包含できる。
【0028】
キャッシュメモリー240はデータ又はパリティをキャッシングできる。一実施例によるキャッシュメモリー240は、データをキャッシングするためのデータキャッシュメモリー242及びパリティをキャッシングするためのパリティキャッシュメモリー244の中で少なくとも1つを包含できる。一実施例によるデータキャッシュメモリー242はメインメモリー260上のデータ領域262に貯蔵されたデータをキャッシングできる。一実施例によるパリティキャッシュメモリー244は、メインメモリー260上のパリティ領域264に貯蔵されたパリティをキャッシングできる
【0029】
キャッシュメモリー240はプロセッサ220から受信したデータ又はパリティを貯蔵できる。一実施例により、キャッシングとは、メインメモリー260上のデータ又はパリティをキャッシュメモリー240へ複写して移す動作を意味し、貯蔵とは、プロセッサ220から受信された現在のデータをキャッシュメモリー240内のキャッシングされた空間にライトする動作を意味する。
【0030】
データキャッシュメモリー242及びパリティキャッシュメモリー244のそれぞれは、タグ(tag)情報と複数のキャッシュラインを包含できる。タグ情報は、データがメインメモリー260上でキャッシングされる領域に対する情報を示せる。例えば、タグ情報はメインメモリー上のどの領域のデータがキャッシュメモリーにキャッシングされているかを示せる。複数のキャッシュラインのそれぞれは、データ又はパリティをキャッシング又は貯蔵するための空間である。一実施例によるデータキャッシュメモリー242及びパリティキャッシュメモリー244のそれぞれは、メインメモリー260からキャッシュライン単位でデータ又はパリティをキャッシングできる。
【0031】
一実施例によるデータキャッシュメモリー242及びパリティキャッシュメモリー244のそれぞれは、メインメモリー260の一部の領域に対するデータを32バイト単位(例えば、キャッシュラインのサイズが32バイトである場合)でキャッシングできる。一実施例によるデータキャッシュメモリー242及びパリティキャッシュメモリー244のそれぞれは、非揮発性メモリーであり得る。例えば、データキャッシュメモリー242及びパリティキャッシュメモリー244のそれぞれは、磁気ランダムアクセスメモリー(MRAM: Magnetic Random Access Memory)又はスタティックランダムアクセスメモリー(SRAM: Static RAM)を包含できる。
【0032】
データキャッシュメモリー242及びパリティキャッシュメモリー244のそれぞれは、メインメモリー260が使用する基準サイズでデータ又はパリティをメインメモリー260に出力できる。例えば、ライト動作の場合、データキャッシュメモリー242はプロセッサ220から受信した現在のデータを貯蔵し、貯蔵された現在のデータを基準サイズに変更してメインメモリー260へ出力できる。基準サイズに変更された現在のデータは、データキャッシュメモリー242内に貯蔵された他のデータを包含できる。
【0033】
図2は、キャッシュメモリー240をプロセッサ220と分離して図示されたが、キャッシュメモリー240はプロセッサ220に包含されることができる。例えば、キャッシュメモリー240はプロセッサ220のレベル1(L1)キャッシュメモリー又はレベル2(L2)キャッシュメモリーであり得る。
【0034】
先ず、一実施例により、プロセッサ220がキャッシュメモリー240を使用してメインメモリー260に4バイトサイズの現在のデータをライト(Write)する動作を説明する。
【0035】
プロセッサ220は現在のデータに対するライト動作をメインメモリー260に要請できる。一実施例によるプロセッサ220は現在のデータをメインメモリー260にライトするため、メインメモリー260にアクセスする前に、先にキャッシュメモリー240にアクセスできる。
【0036】
現在のデータは、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリー260上の領域のデータが、キャッシングされたデータキャッシュメモリー242内の空間に貯蔵されることができる。一実施例によるコンピューティング装置200は、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリー260上の領域がデータキャッシュメモリー242にキャッシングされているか否かを判定できる。例えば、コンピューティング装置200は、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリー260上の領域のデータがデータキャッシュメモリー242にキャッシングされているか否かを判定できる。
【0037】
データキャッシュメモリー242又はパリティキャッシュメモリー244に現在のデータ又は現在のパリティのライトが遂行されるアドレスにより指示される領域のデータがキャッシングされている場合、ヒット(Hit)が発生したと言及される。ヒットが発生されると、現在のデータはデータキャッシュメモリー242に貯蔵される。データキャッシュメモリー242に貯蔵された現在のデータは、以後他のデータと共に32バイトサイズでメインメモリー260に出力できる。一実施例により、現在のデータがデータキャッシュメモリー242に貯蔵されて出力される過程が、
図3A乃至
図3Cを参照して詳細に後述される。
【0038】
データキャッシュメモリー242に現在のデータのライトが遂行されるアドレスにより指示される領域のデータが存在しないと、現在のデータはメインメモリー260に貯蔵されることができる。但し、一実施例により、メインメモリー260上の当該アドレス(即ち、ライトが遂行されるアドレス)に位置したデータは、データキャッシュメモリー242内の空いているキャッシュラインに新にキャッシングされることができる。例えば、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリー260上の領域のデータがキャッシュライン単位でデータキャッシュメモリー242に新にキャッシングされることができる。
【0039】
データキャッシュメモリー242又はパリティキャッシュメモリー244に現在のデータ又は現在のパリティのライトが遂行されるアドレスにより指示される領域のデータ又はパリティがキャッシングされていない場合、ミス(miss)が発生したと言及される。例えば、ミスは、データキャッシュメモリー242又はパリティキャッシュメモリー244が初期化されている場合、ライトが遂行されるアドレスにより指示されるメインメモリー260の領域のデータ又はパリティがキャッシングされていない等の場合に発生し得る。
【0040】
一実施例により、プロセッサ220がキャッシュメモリー240を用いてメインメモリー260に対して4バイトサイズの現在のデータについてのリード(Read)作動を遂行する作動を説明する。
【0041】
プロセッサ220はメインメモリーに対し現在のデータについてのリード作動を要請できる。
【0042】
リードの作動の場合にも、プロセッサ220はメインメモリー260にアクセスする前に、先にキャッシュメモリー240にアクセスできる。リードの要請された現在のデータがデータキャッシュメモリー242に存在すると、コンピューティング装置200はデータがデータキャッシュメモリー242からリードがの要請された現在のデータをリードできる。リードの要請された現在のデータがメインメモリー260ではないキャッシュメモリーから出力されたので、コンピューティング装置200はパリティ情報をリードする必要がない。データキャッシュメモリーにヒットが発生した場合に、リードの作動時に必要な帯域幅は4バイトである。
【0043】
若しキャッシュメモリー240にリードの要請された現在のデータが存在しなければ、プロセッサ220はデータをリードするためメインメモリー260にアクセスできる。リードするデータに対するパリティ情報をリードするため、メインメモリー260にアクセスする前に、先にパリティキャッシュメモリー244にアクセスできる。要請されたパリティがパリティキャッシュメモリー244に存在すれば、パリティ情報をメインメモリー260からリードする必要がない。即ち、データキャッシュメモリー242においてミスが発生した場合でも、パリティキャッシュメモリー244でヒットが発生すれば、32バイトデータのリードと2バイトパリティのリードが遂行されるので、4バイトの現在のデータに対するリードの作動時に必要な帯域幅は34バイトとなる。
【0044】
図3Aは一実施例により現在のデータを受信する前のキャッシュメモリーを示す。
【0045】
図3Aを参照して詳細に説明すれば、
図3Aのデータキャッシュメモリー242は現在のデータを受信する前の状態を示す。一実施例によるデータキャッシュメモリー242は8Kバイトのサイズであり得る。一実施例によるデータキャッシュメモリー242は、メインメモリー260のどの領域のデータをキャッシングしているかを示すタグ情報320と、データをキャッシング又は貯蔵するための空間である複数のキャッシュライン(例えば、キャッシュライン#0(341)からキャッシュライン#250(345))を包含できる。複数のキャッシュラインのそれぞれは32バイトのサイズであり得る。即ち、各キャッシュラインはメインメモリー260からデータ又はパリティを外部と送信又は受信するため使用する基準サイズと同一のサイズであり得る。タグ情報320は各キャッシュラインに対応されるように管理されることができる。例えば、タグ情報322はキャッシュライン#1(342)がメインメモリー260のどの領域のデータをキャッシングしているかを示す情報である。
【0046】
一実施例によるデータキャッシュメモリー242の各キャッシュラインは、メインメモリー260の一領域のデータをキャッシングすることができる。
図3Aで「アロケート(割当)」として表示されたキャッシュライン(例えば、キャッシュライン#0(341))はキャッシングされたデータが存在するキャッシュラインであり、「エンプティ(空いている)」として表示されたキャッシュライン(例えば、キャッシュライン#2(343)、キャッシュライン#249(344))は空いているキャッシュラインである。
【0047】
キャッシュライン#1(342)はメインメモリー260のタグ情報320により指示されるメインメモリー260の領域322を包含してキャッシングしている空間であり得る。キャッシュライン#1(342)には「EFGH・・・OPQR」のデータがキャッシングされている。キャッシュライン#1(342)がキャッシングしているメインメモリー260の領域は、現在のデータのライト動作が遂行されるアドレスにより指示されるメインメモリー260上の領域を包含する空間であると仮定される。
【0048】
図3Bは、一実施例により受信された現在のデータを貯蔵した状態のキャッシュメモリーを示す。
図3Bのデータキャッシュメモリー242は
図3Aのデータキャッシュメモリー242が受信された現在のデータを貯蔵した直後の状態を示す。
【0049】
プロセッサ220は、ライトが遂行される4バイトの現在のデータの「ABCD」と共に現在のデータがライトされるアドレス情報をデータキャッシュメモリー242に伝達できる。現在のデータの「ABCD」は、現在のデータがライトされるアドレスにより指示されるメインメモリー260上の領域のデータがキャッシングされた空間に貯蔵され得る。
【0050】
データキャッシュメモリー242はタグ情報320を使用して、ライトが遂行されるアドレスにより指示されるメインメモリー260の領域のデータがキャッシングされているか否かを判定できる。一実施例により、ライトが遂行されるメインメモリー260上のアドレスのデータが、データキャッシュメモリー242内のキャッシュライン#1(342)に存在する、と判定されることが可能である。即ち、ライトが遂行されるアドレスにより指示されるメインメモリー260上の領域がキャッシュライン#1(342)にキャッシングされているので、ヒットが発生した、と判定されることが可能である。
【0051】
キャッシュライン#1(342)に現在のデータの「ABCD」が貯蔵されることができる。一実施例により、キャッシュライン#1(342)に貯蔵された32バイトデータ中でライトが遂行されるアドレスに該当する位置に貯蔵されていた既存データの「EFGH」は「ABCD」に交替されることができる。ライトが遂行される4バイトの現在のデータの「ABCD」はメインメモリー260に伝達される前に、データキャッシュメモリー242に一時的に貯蔵されることができる。
【0052】
図3Cは、一実施例により、現在のデータを含む基準サイズのデータが出力されるキャッシュメモリーを示す。
【0053】
データキャッシュメモリー242の貯蔵された現在のデータの「ABCD」は、メインメモリー260で使用する基準サイズ(例えば、32バイト)のデータに変更され得る。基準サイズに変更された現在のデータは、現在のデータの「ABCD」及びデータキャッシュメモリー242に貯蔵された他のデータ(例えば、「OPQR」)を包含できる。基準サイズに変更された現在のデータはメインメモリー260に伝達できる。即ち、4バイトの現在のデータの「ABCD」は、データキャッシュメモリー242から他のデータと共に32バイトサイズとして出力されることができる。一実施例による他のデータは、現在のデータがデータキャッシュメモリー242貯蔵される以前にデータキャッシュメモリー242に入力され貯蔵されていたものであってもよいし、現在のデータがデータキャッシュメモリー242に貯蔵された以後、データキャッシュメモリー242に入力されて貯蔵されたデータであってもよい。
【0054】
一実施例によるデータキャッシュメモリー242は、もうこれ以上貯蔵空間がない時、キャッシュラインをメインメモリー260に出力できる。例えば、現在のデータがデータキャッシュメモリー242に入力された以後、他のデータが入力されたり、メインメモリー260からデータがキャッシングされてキャッシュライン#2(343)及びキャッシュライン#249(344)の状態が「エンプティ(空いている)」から「アロケート(割当)」に変更されたりすることができる。
【0055】
一実施例によるデータキャッシュメモリー242は、クリーン(Clean)又はフラッシュ(Flush)動作が遂行される時に、キャッシュライン#1(342)のデータをメインメモリー260に出力できる。データキャッシュメモリー242から出力されたキャッシュライン#1(342)のデータは、メインメモリー260のデータ領域262に貯蔵されることができる。即ち、現在のデータがキャッシュメモリー240に一時的に貯蔵され、その後、他のデータと共に32バイトのサイズに出力され得る。出力された32バイトのデータは、メモリーバスの32バイトの帯域幅を全て活用してメインメモリー260に伝達されることができるので、帯域幅の側面から効率的である。
【0056】
一実施例により、データキャッシュメモリー242からキャッシュライン#1(342)のデータが出力されると、出力された32バイトに対する2バイトのパリティが生成されることができる。生成された2バイトパリティも、やはりメインメモリーに260に伝達される前にパリティキャッシュメモリー244に、先に伝達されることができる。
【0057】
パリティキャッシュメモリー244を使用してパリティをメインメモリー260にライトするための方法は、前述したデータキャッシュメモリー242を使用してデータをメインメモリー260にライトするための方法と同一であるので、詳細な説明は省略する。一実施例によるパリティキャッシュメモリー244も、やはり8Kバイト(Byte)のサイズであり得り、パリティキャッシュメモリー244はパリティ情報を貯蔵するための複数のキャッシュラインを包含でき、各キャッシュラインは32バイトのサイズであり得る。即ち、パリティキャッシュメモリー244は、メインメモリー260において使用する基準サイズ(例えば、32バイト)と同じサイズに現在のパリティを変更してメインメモリー260に出力できる。
【0058】
図3Cに示す例では、データキャッシュメモリー242がフラッシュの動作時に、基準サイズのデータが出力されるように説明されたが、現在のデータを含むキャッシュライン#1(342)がメインメモリー260に出力されるのは、必ずしもデータキャッシュメモリー242のフィルアップ(Fill-up)の場合だけに限定されない。例えば、キャッシュライン#1(342)でヒットが発生され、現在のデータが入力されてキャッシュライン#1(342)がフィルアップ(Fill-up)されると、データキャッシュメモリー342に一部の空いている空間が存在しても、キャッシュライン#1(342)がメインメモリー260に出力されることができる。又は、キャッシュライン#1(342)でヒットが発生され、現在のデータが入力された後、次の反復(Iteration)に他のデータがキャッシュライン#1(342)に入力されたことによりキャッシュライン#1(342)がフィルアップされると、データキャッシュメモリー342に一部の空いている空間が存在しても、キャッシュライン#1(342)がメインメモリー260に出力されることができる
【0059】
なお、一実施例により、データキャッシュメモリー342に現在のデータが貯蔵されると同時に、データキャッシュメモリー342は現在のデータのフォーマットだけを変更してメインメモリー260に変更されたフォーマットの現在のデータを出力することもできる。なお、データキャッシュメモリー242とパリティキャッシュメモリー244は相異なるサイズの貯蔵空間を有することが可能であり、キャッシュラインの個数とサイズも多様に設計可能である。
【0060】
図3Dは、一実施例により、要請されたリードのデータを出力するキャッシュメモリーを示す。
【0061】
一実施例によるデータキャッシュメモリー242はプロセッサ220から4バイトサイズのリードデータ「ABCD」を受信できる。リードデータ「ABCD」がデータキャッシュメモリー242に存在すれば、4バイトサイズのデータ「ABCD」がキャッシュメモリー242から出力されることができる。例えば、データのリードが遂行されるアドレスにより指示されるメインメモリー上の領域のデータがデータキャッシュメモリー242のキャッシュライン342にキャッシングされていると、要請されたリードデータはキャッシュライン342から出力されることができる。
【0062】
図4は、一実施例によるコンピューティング装置の具体的な実施例を示す。
図4のコンピューティング装置400は、
図2のコンピューティング装置200の具体的な実施例を示す。従って、以下の説明で省略された内容であったとしても
図2のコンピューティング装置200に関して記述された内容は、
図4のコンピューティング装置400にも適用されることができる。
図4のプロセッサ420及びメインメモリー460は、それぞれ
図2のプロセッサ220及びメインメモリー260に対応されることができる。
図4のデータキャッシュメモリー440とパリティキャッシュメモリー442は、
図2のデータキャッシュメモリー242とパリティキャッシュメモリー244に対応させることができる。
図4は、データキャッシュメモリー440とパリティキャッシュメモリー442を分離して図示しているが、データキャッシュメモリー440とパリティキャッシュメモリー442は同一のキャッシュレイヤー(layer)上に配置されてもよい。
【0063】
一実施例によるメインメモリー460は、データを貯蔵するための領域462とパリティを貯蔵するための領域464で構成されることができる。データを貯蔵するための領域462にはD0からDnまでのデータが貯蔵され得る。D0からDnのそれぞれは32バイトのデータであってもよい。パリティを貯蔵するための領域464にはP0~P15からPn~Pn+15までのパリティを貯蔵できる。P0~P15からPn~Pn+15のそれぞれは32バイトのパリティであってもよく、32バイトのパリティは16個のパリティ単位を包含でき、各パリティ単位のサイズは2バイトである。
【0064】
一実施例によるプロセッサ420は、データを管理するためのデータキャッシュメモリー440と通信できる。例えば、プロセッサ420は4バイトの現在のデータのライト動作を遂行するためデータキャッシュメモリー440に現在のデータを伝達できる。なお、プロセッサ420は、4バイトの現在のデータのリード動作を遂行するためデータキャッシュメモリー440から現在のデータを受信できる
【0065】
一実施例によるデータキャッシュメモリー440は、メインメモリー460のデータ領域462に貯蔵されたデータをキャッシュライン単位でキャッシングできる。データキャッシュメモリー440内の複数のキャッシュラインのそれぞれはメインメモリー460で使用する基準サイズ(ここでは、32バイト)と同じサイズを有し得る。データキャッシュメモリー440は、メインメモリー460上のどの領域のデータをキャッシングしているかを示すタグ情報を有していることができ、各キャッシュライン毎にタグ情報を有していることができる。
【0066】
ライト動作の場合、データキャッシュメモリー440はプロセッサ420から受信された4バイトサイズの現在のデータとデータキャッシュメモリー440に貯蔵された他のデータを含む32バイトサイズのデータをECCエンジン450へ出力できる。他のデータは、受信された現在のデータが貯蔵される以前又は以後に、同一のキャッシュラインに貯蔵されたデータであってもよい。一実施例によるデータキャッシュメモリー440はクリーン又はフラッシュの動作を遂行する時、現在のデータが含まれたキャッシュラインをECCエンジン450に伝達できる。リード動作の場合、要請されたデータがデータキャッシュメモリー440に存在すれば、データキャッシュメモリー440は要請された4バイトサイズの現在のデータをプロセッサ420に出力できる。
【0067】
一実施例によるECCエンジン450はパリティを生成したり、受信されたパリティに基づいてデータについてのエラーを検査したりすることができる。ライト動作の場合、ECCエンジン450はデータキャッシュメモリー440から受信した32バイトサイズののデータ(4バイトの現在のデータが含まれていること)に対する2バイトサイズのパリティを生成できる。リード動作の場合、リードの要請された4バイトの現在のデータがデータキャッシュメモリー440に存在すれば、要請されたデータはメインメモリー460ではないデータキャッシュメモリー440から出力されるので、ECCエンジン450はリードの要請された現在のデータに対するエラー検査を遂行しない。しかし、ECCエンジン450は、要請されたデータがメインメモリー460から出力される場合(例えば、データキャッシュメモリー440でミスが発生した場合)には、リードしたデータに対するエラーを検査するためのパリティ情報を要請できる。ECCエンジン450はパリティキャッシュメモリー442に要請されたパリティが存在する場合、2バイトのパリティをパリティキャッシュメモリー442からリードできる。しかし、パリティキャッシュメモリー442に要請されたパリティが存在しないと(例えば、パリティキャッシュメモリー442においてミスが発生した場合)、メインメモリー460から32バイトの帯域幅を使用して要請されたパリティをリードできる。
【0068】
一実施例によるパリティキャッシュメモリー442は、メインメモリー460のパリティ領域464に貯蔵されたパリティをキャッシュライン単位でキャッシングできる。パリティキャッシュメモリー442とデータキャッシュメモリー440は、それぞれパリティとデータを管理するという点が異なるだけで作動する方式は同一である。例えば、ライト動作の場合、パリティキャッシュメモリー442はECCエンジン450から生成された2バイトサイズのパリティを受信して貯蔵し、貯蔵された2バイトサイズのパリティとパリティキャッシュメモリー442に貯蔵された他のパリティを含む32バイトサイズのパリティをメインメモリー460へ出力できる。他のパリティは、現在受信された2バイトパリティが貯蔵される以前又は以後に、同一のキャッシュラインに貯蔵されたパリティであってもよい。一実施例によるパリティキャッシュメモリー442は、クリーン又はフラッシュの動作を遂行する時、現在のパリティが含まれたキャッシュラインをメインメモリー460へ出力できる。リード動作の場合、ECCエンジン450から要請されたパリティがパリティキャッシュメモリー442内に存在すれば、パリティキャッシュメモリー442は要請された2バイトのパリティをECCエンジン450に出力できる。
【0069】
図5は、一実施例によるコンピューティング装置において、現在のデータに対するライト動作を遂行する方法の流れ図を示す。
【0070】
動作S500において、コンピューティング装置は、現在のデータについてのライト動作を要請できる。
【0071】
動作S510において、コンピューティング装置は、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリーのデータが、データキャッシュメモリーに存在するか(例えば、ヒットが発生したか)否かが判定されることができる。例えば、データキャッシュメモリーのタグ情報を参照して、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリー領域が、データキャッシュメモリーにキャッシングされているか否かが判定されることができる。コンピューティング装置は、タグ情報に基づいて現在のデータが貯蔵されるキャッシュラインを決定できる。現在のデータのアドレスにより指示されるメインメモリー領域のデータがキャッシュメモリーに存在すると、動作S540において、現在のデータがデータキャッシュメモリー内に貯蔵される。現在のデータのアドレスにより指示されるメインメモリー領域のデータがデータキャッシュメモリーに存在しないと、動作S520において現在のデータがメインメモリーにライトされ、動作S530において、現在のデータについてのパリティが生成されて、生成されたパリティがメインメモリーにライトされることができる。
【0072】
動作S520において、コンピューティング装置は、現在のデータをメインメモリーにライトできる。一実施例により、現在のデータのライトが遂行されるアドレスにより指示されるメインメモリー領域のデータが、データキャッシュメモリー内の空いているキャッシュラインに新たにキャッシングされることができる。
【0073】
動作S530において、コンピューティング装置は、現在のデータについて生成されたパリティをメインメモリーにライトできる。生成されたパリティがメインメモリーにライトされる場合も、パリティを管理するパリティキャッシュメモリーを使用して遂行されることができる。パリティキャッシュメモリーを使用してパリティをメインメモリーにライトする方法は、
図6を参照して詳細に後述する。
【0074】
動作S540において、コンピューティング装置は、現在のデータをデータキャッシュメモリーに貯蔵できる。コンピューティング装置は、データキャッシュメモリー内の複数のキャッシュラインのうち、タグ情報に基づいて現在のデータが貯蔵されるキャッシュラインを決定して、決定されたキャッシュラインに現在のデータを貯蔵できる。
【0075】
動作S550において、コンピューティング装置は、データキャッシュメモリーがクリーン又はフラッシュされるか否かを判定する。データキャッシュメモリーが、まだクリーン又はフラッシュ動作を遂行する必要がない場合、受信された現在のデータをメインメモリーに出力しない。データキャッシュメモリーにおいてクリーン又はフラッシュ動作が遂行されると、動作S560及び動作S570において、現在のデータがメインメモリーに出力されて、パリティが生成されることができる。
【0076】
動作S560において、コンピューティング装置は、現在のデータを包含するキャッシュラインのデータをメインメモリーにライトする。一実施例により、データキャッシュメモリー内のキャッシュラインのデータが、順次的又は並列的にメインメモリーに出力されることができる。動作S560において、現在のデータが基準サイズに変更されて出力されることができる。メインメモリーに出力される各キャッシュラインのデータサイズは、メインメモリーにおいて使用される基準サイズと同一の32バイトであるので、帯域幅を最大に活用できる。
【0077】
動作S570において、コンピューティング装置は、データキャッシュメモリーから出力される基準サイズのデータについてのパリティを生成して、生成されたパリティをメインメモリーにライトする。生成されたパリティがメインメモリーにライトされる方法も、やはりパリティを管理するパリティキャッシュメモリーを使用して遂行されることができる。パリティキャッシュメモリーを使用して、パリティをメインメモリーにライトする方法は、
図6を参照して詳細に後述する。
【0078】
図6は、一実施例によるコンピューティング装置から生成されたパリティについてのライト動作を遂行する方法の流れ図を示す。
【0079】
動作S610乃至S650は、
図5の動作S530又はS570に関する詳細な流れ図である。但し、
図5の動作S530又はS570は、
図6に図示される流れ図によって制限されない。
【0080】
動作S600において、コンピューティング装置は、生成されたパリティについてのライト動作を要請する。
【0081】
動作S610において、コンピューティング装置は、生成されたパリティのライトが遂行されるアドレスにより指示されるメインメモリー領域のパリティが、パリティキャッシュメモリーに存在するか(例えば、ヒットが発生したか)否かを判定する。例えば、パリティキャッシュメモリーのタグ情報を参照して、ライトが遂行される、生成されたパリティのアドレスにより指示されるメインメモリー領域のパリティが、パリティキャッシュメモリーにキャッシングされているか否かが判定されることができる。生成されたパリティのアドレスにより指示されるメインメモリー領域のデータが、パリティキャッシュメモリーに存在すると、動作S620において生成されたパリティがパリティキャッシュメモリーに貯蔵される。生成されたパリティのアドレスにより指示されるメインメモリー領域のパリティが、パリティキャッシュメモリーに存在しないと、動作S650において生成されたパリティがメインメモリーにライトされる。
【0082】
動作S620において、コンピューティング装置は、生成されたパリティをパリティキャッシュメモリーに貯蔵する。コンピューティング装置は、パリティキャッシュメモリー内の複数のキャッシュラインのうち、タグ情報に基づいて生成されたパリティが貯蔵されるキャッシュラインを決定して、決定されたキャッシュラインに生成されたパリティを貯蔵できる。
【0083】
動作S630において、コンピューティング装置は、パリティキャッシュメモリーがフラッシュ又はクリーンされるか否かを判定する。パリティキャッシュメモリーが、まだフラッシュ又はクリーン動作を遂行する必要がない場合、現在受信・生成されたパリティをメインメモリーに出力しない。一実施例によるコンピューティング装置は、パリティキャッシュメモリーにおいてフラッシュ又はクリーン動作が遂行される時、動作S640に進んで生成されたパリティをメインメモリーに出力できる。
【0084】
動作S640において、コンピューティング装置は、現在のパリティを包含するキャッシュラインのパリティ情報をメインメモリーにライトする。一実施例により、パリティキャッシュメモリー内のキャッシュラインのパリティが、順次的又は並列的にメインメモリーに出力されることができる。動作S640において、生成されたパリティが基準サイズに変更されて出力されることができる。この場合、各キャッシュラインから出力されるパリティのサイズは、メインメモリーにおいて使用する基準サイズと同一の32バイトであるので、帯域幅を最大に活用できる。
【0085】
動作S650において、コンピューティング装置は、生成されたパリティをメインメモリーにライトする。一実施例により、生成されたパリティのライトが遂行されるアドレスにより指示されるメインメモリー領域のパリティが、パリティキャッシュメモリー内の空いているキャッシュラインに新たにキャッシングされることができる。
【0086】
図7は、一実施例によるコンピューティング装置においてリード動作を遂行する方法の流れ図を示す。
【0087】
動作S700において、コンピューティング装置は、リードデータについてのリード動作を要請する。
【0088】
動作S710において、コンピューティング装置は、リードデータがデータキャッシュメモリーに存在するか(例えば、ヒットが発生したか)否かを判定する。リードデータが、データキャッシュメモリーに存在すると、動作S720において、リードデータがデータキャッシュメモリーから出力されることができる。データキャッシュメモリーから出力されるデータサイズは4バイトである。リードデータが、メインメモリーではないデータキャッシュメモリーから出力されたので、リードデータを検査するためのパリティ情報は必要ではない。リードデータが、データキャッシュメモリーに存在しない場合、コンピューティング装置は、動作S730においてメインメモリーにアクセスできる。
【0089】
動作S730において、コンピューティング装置は、メインメモリーにアクセスしてリードデータをリードできる。メインメモリーから要請されたデータを出力するために32バイトの帯域幅が必要である。なお、コンピューティング装置は、リードしたデータのエラーを検査するためのパリティのリードを、メインメモリーに要請できる。
【0090】
動作S740において、コンピューティング装置は、要請されたパリティがパリティキャッシュメモリーに存在するか(例えば、ヒットが発生したか)否かを判定する。要請されたパリティが、パリティキャッシュメモリーに存在すると、動作S750において、要請されたパリティがパリティキャッシュメモリーから出力されることができる。パリティキャッシュメモリーから出力されるパリティのサイズは2バイトである。要請されたパリティが、パリティキャッシュメモリーに存在しないと、コンピューティング装置は、動作S760においてメインメモリーにアクセスできる。
【0091】
動作S760において、コンピューティング装置は、要請されたパリティをメインメモリーから出力する。メインメモリーからパリティを出力するために、32バイトの帯域幅が必要である。
【0092】
図8は、一実施例によるコンピューティング装置を包含する電子システムの例示的な構成を示すブロック図である。
【0093】
電子システム1000は、メインプロセッサ1101、ワーキングメモリー1200、ストレージ装置1300、通信ブロック1400、ユーザーインターフェース1500、及びバス1600を包含できる。例として、電子システム1000は、デスクトップ(Desktop)コンピュータ、ラップトップ(Laptop)コンピュータ、タブレット(Tablet)コンピュータ、スマートフォン、ウェアラブル(Wearable)装置、ビデオゲーム機(Video Game Console)、ワークステーション(Workstation)、サーバ(Server)、電気自動車などのような電子装置のうち、一つであり得る。一実施例による電子システム1000は、
図2乃至
図4を参照して前述したコンピューティング装置のうち、いずれかを包含できる。例えば、電子システム1000は、
図2のコンピューティング装置200を包含できるが、これに制限されない。
【0094】
メインプロセッサ1101は、電子システム1000の全般的な動作を制御できる。メインプロセッサ1101は、多様な種類の算術演算及び/又は論理演算を処理できる。このため、メインプロセッサ1101は、専用(Special-purpose) 回路(例えば、FPGA(Field Programmable Gate Array)、ASICs(Application Specific Integrated Circuits) など)を包含できる。例として、メインプロセッサ1101は、一つ以上のプロセッサコアを包含でき、汎用プロセッサ、専用プロセッサ、又はアプリケーションプロセッサ(Application Processor)で具現されることができる。
【0095】
ワーキングメモリー1200は、電子システム1000の動作に利用されるデータを貯蔵できる。例として、ワーキングメモリー1200は、メインプロセッサ1101により処理された又は処理されるデータを一時的に貯蔵できる。例として、ワーキングメモリー1200は、DRAM(Dynamic RAM)、SDRAM(Synchronous DRAM)などのような揮発性メモリー、及び/又はPRAM(Phase-change RAM)、MRAM(Magneto-resistive RAM)、ReRAM(Resistive RAM)、FRAM(Ferro-electric RAM)などのような不揮発性メモリーを包含できる。
【0096】
一実施例によるワーキングメモリー1200は、データ保護のために
図2のメインメモリー260で具現されることができる。例えば、ワーキングメモリー1200は、データとデータのエラーを検査するためのパリティ情報が、一つのメモリーに貯蔵されるインバンドメモリー(In-band memory)であり得る。ワーキングメモリー1200は、データ及びパリティを基準サイズで外部と送信及び受信できる。例えば、ワーキングメモリー1200は、32バイト単位でのみデータ及びパリティをバス1600に送信するしたり、バス1600から受信したりすることができる。
【0097】
ストレージ装置1300は、少なくとも一つのメモリー装置及びコントローラを包含できる。ストレージ装置1300のメモリー装置は、電力供給に関係なしにデータを貯蔵できる。例として、ストレージ装置1300は、フラッシュメモリー、PRAM、MRAM、ReRAM、FRAMなどのような不揮発性メモリーを包含できる。例として、ストレージ装置1300は、SSD(Solid State Drive)、カードストレージ、エンベデッド(Embedded)ストレージなどのようなストレージ媒体を包含できる。
【0098】
通信ブロック1400は、電子システム1000の外部装置/システムと通信できる。例として、通信ブロック1400は、LTE(Long Term Evolution)、WIMAX(Worldwide Interoperability for Microwave Acess)、GSM(登録商標(Global System for Mobile communications))、CDMA(Code Division Multiple Access)、Bluetooth(登録商標)、NFC(Near Field Communication), Wi-Fi(Wireless Fidelity)、RFID(Radio Frequency Identification) などのような多様な無線通信規約のうち、少なくとも一つ、及び/又はTCP/IP(Transfer Control Protocol/Internet Protocol)、USB(Universal Serial Bus)、Firewireなどのような多様な有線通信規約のうち、少なくとも一つを支援できる。
【0099】
ユーザーインターフェース1500は、ユーザーと電子システム1000との間の通信を仲裁できる。例として、ユーザーインターフェース1500は、キーボード、マウス、キーパッド、ボタン、タッチパネル、タッチスクリーン、タッチパッド、タッチボール、カメラ、マイク、ジャイロスコープセンサ、振動センサなどのような入力インターフェースを包含できる。例として、ユーザーインターフェース1500は、LCD(Liquid Crystal Display)装置、LED(Light Emitting Diode)表示装置、OLED(Organic LED)表示装置、AMOLED(Active Matrix OLED)表示装置、スピーカー、モータなどのような出力インターフェースを包含できる。
【0100】
バス1600は、電子システム1000の構成要素の間で通信経路を提供できる。電子システム1000の構成要素は、バス1600のバスフォーマットに基づいて互いにデータを交換できる。例として、バスフォーマットは、USB、SCSI(Small Computer System Interface)、PCIe(Peripheral Component Interconnect Express)、M-PCIe(Mobile PCIe)、ATA(Advanced Technology Attachment)、PATA(Parallel ATA)、SATA(Serial ATA)、SAS(Serial Attached SCSI)、IDE(Integrated Drive Electronics), EIDE(Enhanced IDE)、NVMe(Nonvolatile Memory Express)、UFS(Universal Flash Storage)などのような多様なインターフェース規約のうち、一つ以上を包含できる。
【0101】
メインプロセッサ1101は、ワーキングメモリー1200にデータをライトしたり、ワーキングメモリー1200からデータをリードしたりすることができる。
図2乃至
図7を参照して上述したように、メインプロセッサ1101は、ライト及びリード動作時にキャッシュメモリー1150を使用できる。一実施例によるキャッシュメモリー1150は、ワーキングメモリー1200において使用する基準サイズでデータを出力するデータキャッシュメモリーを包含できる。一実施例によるキャッシュメモリー1150は、ワーキングメモリー1200において使用する基準サイズでパリティを出力する、パリティキャッシュメモリーを包含できる。従って、メインプロセッサ1101が、ワーキングメモリー1200において使用する基準サイズよりサイズが小さいデータについてのライト動作を遂行する場合にも、メモリー帯域幅を最大限に活用してデータ又はパリティを入力できるので、帯域幅の浪費を最大限に防止できる。キャッシュメモリー1150は、メインプロセッサ1101に包含されるものと図示したが、一実施例により、バス1600とワーキングメモリー1200との間に位置することもできる。
【0102】
一方、前述した方法は、コンピュータにおいてリードできる記録媒体に、コンピュータがリードできるコードとして具現するのが可能である。コンピュータがリードできる記録媒体は、コンピュータシステムによりリードされることができるデータが貯蔵される全ての種類の記録装置を包含する。コンピュータがリードできる記録媒体の例としては、ROM、RAM、CD-ROM、磁気テープ、フロッピーディスク、光データ貯蔵装置などがあり、またインターネットを通じる伝送などの形態で具現されるのも包含する。なお、コンピュータがリードできる記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でプロセッサがリードできるコードが貯蔵されて、実行されることができる。
【0103】
前記の説明は、本発明を具現するための例示的な構成及び動作を提供するように意図される。本発明の技術思想は、前に説明された実施例だけでなく、前の実施例を単純に変更したり、修正したりして得られる具現も包含するはずである。なお、本発明の技術思想は、前に説明された実施例を、今後容易に変更したり修正したりして達成されることができる具現も包含するはずである。
【産業上の利用可能性】
【0104】
本発明は、帯域幅を効果的に使用してコンピューティング装置におけるインバンドメモリーアクセスによるデータ保護に有用である。
【符号の説明】
【0105】
100、200、400:コンピューティング装置
120、220、420:プロセッサ
160、260、460:メインメモリー
162、262:データ領域
164、264、464:パリティ領域
240,1150:キャッシュメモリー
242、342、440:データキャッシュメモリー
244、442:パリティキャッシュメモリー
320、322:タグ情報
450: ECCエンジン
462: データを貯蔵するための領域
464: パリティを貯蔵するための領域
1000: 電子システム
1101: メインプロペッサ
1200: ワーキングメモリー
1300: ストレージ装置
1400: 通信ブロック
1500: ユーザーインターフェース
1600: バス