JP2016051471A - 半導体装置、半導体システム及びシステムオンチップ - Google Patents

半導体装置、半導体システム及びシステムオンチップ Download PDF

Info

Publication number
JP2016051471A
JP2016051471A JP2015162240A JP2015162240A JP2016051471A JP 2016051471 A JP2016051471 A JP 2016051471A JP 2015162240 A JP2015162240 A JP 2015162240A JP 2015162240 A JP2015162240 A JP 2015162240A JP 2016051471 A JP2016051471 A JP 2016051471A
Authority
JP
Japan
Prior art keywords
data
cache
memory
transmission
semiconductor device
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.)
Granted
Application number
JP2015162240A
Other languages
English (en)
Other versions
JP6641120B2 (ja
Inventor
敦 志 禹
Deum Ji Woo
敦 志 禹
寛 浩 金
Kwan Ho Kim
寛 浩 金
美 卿 金
Mi-Kyung Kim
美 卿 金
範 宇 李
Beom Woo Lee
範 宇 李
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2016051471A publication Critical patent/JP2016051471A/ja
Application granted granted Critical
Publication of JP6641120B2 publication Critical patent/JP6641120B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Abstract

【課題】半導体装置、半導体システム及びシステムオンチップを提供する。
【解決手段】半導体装置は、メモリに直接アクセスしてメモリのあらかじめ定められたアドレスに第1データをライト(write)するDMAモジュールを含み、DMAモジュールはメモリに第1データをライトするための伝送パラメータを設定する設定ユニットと、設定された伝送パラメータに基づいてメモリに伝送する第1データを生成する生成ユニットと、伝送パラメータに基づいてメモリのあらかじめ定められたアドレスに生成された第1データをライトする伝送ユニットを含み、設定ユニットが伝送パラメータを設定することはプロセッサがキャッシュに格納された第2データをメモリのあらかじめ定められたアドレスにフラッシュ(flushing)する区間のあいだに行われ、伝送ユニットがメモリのあらかじめ定められたアドレスに生成された第1データを伝送することはフラッシュが完了した後に行われる。
【選択図】 図1

Description

本発明は半導体装置、半導体システム及びシステムオンチップに関する。
DMA(Direct Memory Access)は、入出力装置制御器がCPU(Central Processing Unit)によるプログラムの実行なしで資料の移動ができるようにしたことを意味する。この方式によって入出力速度を向上させ、CPUと周辺装置との間の速度の差を減らすことができる。入出力装置がDMAを要求するとCPUが主メモリの制御を譲り渡すが、CPUはこの作業をCPUサイクルが終わる時点ごとに許容し得る。
ただし、DMAを内蔵した周辺装置プロセッシングユニットを利用してシステムメモリの特定アドレスに最新データを伝送しようとする場合、メモリの特定アドレスから提供を受けてキャッシュ(cache)に格納された以前データは有効でないため、先ずキャッシュを無効化(例えば、フラッシュ(flushing))させた後にDMAを始める。
特開2004−258935
本発明が解決しようとする課題は、DMA機能をキャッシュの無効化(すなわち、フラッシュ)過程と同時に行うことによって、性能を向上させた半導体装置を提供することにある。
本発明が解決しようとする他の課題は、DMA機能をキャッシュの無効化(すなわち、フラッシュ)過程と同時に行うことによって性能を向上させた半導体システムを提供することにある。
本発明が解決しようとするまた他の課題は、DMA機能をキャッシュの無効化(すなわち、フラッシュ)過程と同時に行うことによって性能を向上させたシステムオンチップ(Systmen on Chip)を提供することにある。
本発明が解決しようとする課題は、以上言及した課題に制限されず、言及されていないまた他の課題は次の記載から当業者に明確に理解できるであろう。
前記課題を解決するための本発明の半導体装置の一実施形態は、メモリに直接アクセスして前記メモリのアドレスに第1データをライト(write)するDMAモジュールを含み、DMAモジュールは、プロセッサがキャッシュに格納された第2データをメモリのあらかじめ定められたアドレスにフラッシュ(flushing)する区間のあいだ、メモリに第1データをライトするための伝送パラメータを設定する設定ユニットと、設定された伝送パラメータに基づいてメモリに伝送する第1データを生成する生成ユニットと、フラッシュが完了した後、伝送パラメータに基づいてメモリのあらかじめ定められたアドレスに生成された第1データをライトする伝送ユニットとを含む。
前記第1データは第2データと異なるデータであり得る。
前記生成ユニットは、生成ユニットが第1データを外部装置から提供されたり前記第1データを直接生成し得る。
前記生成ユニットは外部装置にリード(read)動作またはライト(write)動作を行い得る。
前記第1データが格納されるバッファをさらに含み得る。
前記生成ユニットは第1データをバッファに格納し得る。
前記伝送ユニットはバッファに格納された第1データをメモリに伝送し得る。
前記伝送パラメータは、第1データのサイズまたは第1データが格納されたバッファのアドレスまたはメモリのアドレスを含み得る。
前記設定ユニットは、プロセッサから伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報の提供を受け得る。
前記伝送ユニットは、設定ユニットからキャッシュのフラッシュと関連する情報の提供を受け、キャッシュがフラッシュする区間のあいだ非活性化され得る。
前記伝送ユニットはフラッシュが完了した後、活性化され得る。
前記伝送ユニットはプロセッサからキャッシュのフラッシュと関連する情報の提供を受け得る。
前記伝送ユニットはキャッシュからキャッシュのフラッシュと関連する情報の提供を受け得る。
前記生成ユニットは設定ユニットが伝送パラメータを設定した後、第1データを生成し得る。
前記生成ユニットはフラッシュする区間のあいだに前記第1データを生成し得る。
前記伝送ユニットは、生成ユニットが第1データを生成した後、メモリのアドレスに第1データを伝送し得る。
前記伝送ユニットは、メモリにリード(read)動作またはライト(write)動作を行い得る。
前記第1データが格納されるバッファをさらに含み得る。
前記メモリのアドレスは第1アドレスと第2アドレスとを含み、伝送ユニットは第3データを第1アドレスに伝送する第1伝送動作と、第1伝送動作後に第4データを第2アドレスに伝送する第2伝送動作を行い、第1伝送動作は生成ユニットが第4データを生成するあいだに行われ得る。
前記生成ユニットは、フラッシュする区間のあいだ第3データを生成し、フラッシュが完了した後、第4データを生成し得る。
本発明のその他詳細な内容は詳細な説明及び図面に含まれている。
本発明の一実施形態による半導体装置を説明するブロック図。 図1のDMAモジュールを説明するためのブロック図。 図1の半導体装置の動作を説明するための概略図。 図1の半導体装置の動作を説明するための概略図。 本発明の一実施形態による半導体システムを説明するブロック図。 図5の第2プロセッサを説明するためのブロック図。 本発明の他の実施形態による半導体システムを説明するブロック図。 図7の第2及び第3プロセッサを説明するためのブロック図。 システムオンチップ(System on chip)で実現された図7の半導体システムを説明する図。 本発明のいくつかの実施形態による半導体システムを適用できる例示的な電子システム。 本発明のいくつかの実施形態による半導体システムを適用できる例示的な電子システム。 本発明のいくつかの実施形態による半導体システムを適用できる例示的な電子システム。 図1の半導体装置の動作方法を説明する図。 図1の半導体装置の動作方法を説明する図。 図5の半導体システムの動作方法を説明する図。 図5の半導体システムの動作方法を説明する図。 図7の半導体システムの動作方法を説明する図。 図7の半導体システムの動作方法を説明する図。
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものであり、本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、特許請求の範囲によってのみ定義される。図面に表示する構成要素のサイズおよび相対的なサイズは説明を明瞭するため、誇張したものであり得る。明細書全体にかけて同一参照符号は同一構成要素を指称し、「および/または」は、言及されたアイテムの各々および一つ以上のすべての組合せを含む。
素子(elements)または層が他の素子または層の「上(on)」と指称された場合、他の素子の真上にまたは中間に他の層または他の素子を介在する場合のすべてを含む。一方、素子が「直接上(directly on)」または「真上」と指称される場合は、中間に他の素子または層を介在しないことを示す。
空間的に相対的な用語である「下(below)」、「下(beneath)」、「下部(lower)」、「上(above)」、「上部(upper)」などは図面に図示するように一つの素子または構成要素と異なる素子または構成要素との相関関係を容易に記述するために使用され得る。空間的に相対的な用語は、図面に図示する方向に加え、使用時または動作時の素子の互いに異なる方向を含む用語として理解しなければならない。例えば、図面に図示する素子をひっくり返す場合、他の素子の「下(below)」または「下(beneath)」と記述された素子は他の素子の「上(above)」に置かれる。したがって、例示的な用語である「下」は下と上の方向をすべて含み得る。素子は他の方向にも配向し得、これにより空間的に相対的な用語は配向により解釈される。
本明細書で使用された用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型は文句で特に言及しない限り複数型も含む。明細書で使用される「含む(comprises)」および/または「含む(comprising)」は言及された構成要素以外に一つ以上の他の構成要素の存在または追加を排除しない。
第1、第2などが多様な素子、構成要素を叙述するために使用されるが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために使用するものである。したがって、以下で言及される第1構成要素は本発明の技術的思想内で第2構成要素であり得ることは勿論である。
他に定義されなければ、本明細書で使用されるすべての用語(技術および科学的用語を含む)は、本発明が属する技術分野で通常の知識を有する者が共通に理解できる意味として使用され得る。また一般に使用される辞典に定義されている用語は明白に特別に定義されていない限り理想的にまたは過度には解釈しない。
以下で、図1ないし図4を参照して本発明の一実施形態による半導体装置について説明する。
図1は本発明の一実施形態による半導体装置を説明するブロック図である。図2は図1のDMAモジュールを説明するためのブロック図である。図3及び図4は図1の半導体装置の動作を説明するための概略図である。
以下の説明において、「部」または「モジュール」という用語はソフトウェア構成要素またはFPGAまたはASICのようなハードウェア構成要素を意味し、「部」または「モジュール」はある役割をする。しかし、「部」または「モジュール」はソフトウェアまたはハードウェアに限定される意味ではない。「部」または「モジュール」はアドレシングできる保存媒体にあるように構成でき、1つまたはそれ以上のプロセッサを実行させるようにも構成できる。したがって、一例として「部」または「モジュール」はソフトウェア構成要素、オブジェクト指向ソフトウェア構成要素、クラス構成要素及びタスク構成要素などのように構成要素と、プロセス、関数、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数を含む。構成要素などと「部」または「モジュール」内で提供される機能はさらに小さな類の構成要素及び「部」または「モジュール」に結合されたり、追加的な構成要素などと「部」または「モジュール」にさらに分離できる。
図1を参照すると、本発明の一実施形態による半導体装置100はDMAモジュール110とバッファ160とを含み得る。
DMAモジュール110はメモリ200に直接アクセスし得る。
具体的には、DMAモジュール110はデータを直接生成したり外部装置から提供を受けてバッファ160に格納し得、バッファ160に格納したデータをメモリ200に伝送し得る。
またDMAモジュール110はメモリ200にリード(read)またはライト(write)動作を行い得る。
バッファ160はDMAモジュール110によって提供されたデータを格納し得る。ここで、DMAモジュール110がデータを伝送するときバス(図示せず)を占められない場合が発生し得るため、DMAモジュール110が性能低下なしに円滑に動作できるように十分なサイズのバッファ160が確保されることが好ましい。
具体的には、バッファ160は、DMAモジュール110が一度にメモリ200に伝送できるデータの最大量より大きい余裕空間を有することが好ましい。
追加的には、メモリ200は例えば、DRAMを含み得るが、これに限定されない。またメモリ200は一般データを格納するデータ領域とスペア領域とを含み得る。メモリ200の領域の各々は複数のメモリブロックで構成され得る。このようなメモリ200の詳細な構成は本技術分野の通常的な知識を習得した者によく知られているため詳しい説明は省略する。
図2を参照すると、DMAモジュール110は設定ユニット115、生成ユニット120、伝送ユニット125を含み得る。
設定ユニット115はメモリ200に第1データをライトするための伝送パラメータDPを設定し得る。
具体的には、設定ユニット115はプロセッサ250から伝送パラメータDPと関連する情報(DP.I)の提供を受けて伝送パラメータDPを設定し得る。ここで、伝送パラメータDPは例えば、メモリ200に伝送しようとする第1データのサイズ、メモリ200に伝送しようとする第1データが格納されたバッファ160のアドレス、第1データを伝送しようとするメモリ200のあらかじめ定められたアドレスを含み得るが、これに限定されない。第1データはメモリ200に伝送しようとするデータである。
ここで、プロセッサ250は例えば、CPU(Central Processing Unit)を含み得るが、これに限定されない。また第1データはメモリ200のあらかじめ定められたアドレスに格納しようとする最新データを含み得る。
設定ユニット115はプロセッサ250から伝送パラメータと関連する情報(DP.I)だけでなく、キャッシュの無効化(以下では、フラッシュという)と関連する情報(CI.I)の提供も受け得、提供されたキャッシュのフラッシュと関連する情報(CI.I)に基づいて伝送パラメータDPの設定動作を始めることができる。すなわち、伝送パラメータDPはプロセッサ250から提供された伝送パラメータと関連する情報(DP.I)に基づいて設定され、このような設定動作の開始時点はプロセッサ250から提供されたキャッシュのフラッシュと関連する情報(CI.I)に基づいて決定され得る。
ここで、キャッシュのフラッシュと関連する情報(CI.I)はプロセッサ250で設定ユニット115に提供される場合を示すが、これに限定されない。より具体的には、キャッシュのフラッシュと関連する情報(CI.I)はプロセッサ250から先に設定ユニット115に提供された後、設定ユニット115から伝送ユニット125に提供される場合を示すが、これに限定されない。すなわち、キャッシュのフラッシュと関連する情報(CI.I)はプロセッサ250から設定ユニット115を経ず直接伝送ユニット125に提供され得、キャッシュ300のフラッシュが開始されると、キャッシュ300は自らキャッシュのフラッシュと関連する情報(CI.I)を生成して伝送ユニット125に提供し得る。ただし、説明の便宜上、プロセッサ250から設定ユニット115にキャッシュのフラッシュと関連する情報(CI.I)が提供される場合を例えて説明する。
設定ユニット115が伝送パラメータDPを設定することは、プロセッサ250がキャッシュ300に格納された第2データをメモリ200のあらかじめ定められたアドレスにフラッシュするあいだに行われ得る。ここで、第2データは以前データ(すなわち、アップデートされないデータ)であって、最新データである第1データと異なるデータであり得る。またプロセッサ250はキャッシュ300をフラッシュする動作以外にもキャッシュ300にリードまたはライト動作を行い得る。
設定ユニット115は設定された伝送パラメータDPを生成ユニット120と伝送ユニット125に提供する。また設定ユニット115はキャッシュのフラッシュと関連する情報(CI.I)を伝送ユニット125に提供するため、これについての詳細な説明は後述する。
生成ユニット120は設定された伝送パラメータDPに基づいてメモリ200に伝送する第1データを生成し得る。
具体的には、生成ユニット120は設定ユニット115から伝送パラメータDPの提供を受け得、伝送パラメータDPに基づいて第1データを生成し得る。ここで、生成ユニット120がデータを生成するということは、生成ユニット120がデータを外部装置350から提供されたり(リードしたり)直接生成することを含み得る。また生成ユニット120は生成した第1データをバッファ160に格納(ライト)し得る。
ここで、外部装置350は例えば、MMC(Multi−Media Card)を含み得るが、これに限定されない。
すなわち、生成ユニット120は伝送パラメータDPが指すデータのサイズに合わせて第1データを生成し、生成した第1データを伝送パラメータDPが指すバッファ160のアドレスに格納し得る。
生成ユニット120は外部装置350にリードまたはライト動作を行い得る。前述したとおり、生成ユニット120は第1データを生成するために外部装置350から第1データの提供を受け得るため、生成ユニット120はこのようなリード動作以外に外部装置350にデータをライトする動作も行い得る。
伝送ユニット125は伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データをライトし得る。
具体的には、伝送ユニット125は設定ユニット115から伝送パラメータDPの提供を受け得、伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データを伝送し得る。ここで、伝送ユニット125はバッファ160に格納された第1データをメモリ200に伝送し得る。
すなわち、伝送ユニット125は伝送パラメータDPが指すバッファ160のアドレスに格納された第1データをリードし、伝送パラメータDPが指すメモリ200のあらかじめ定められたアドレスに第1データを伝送(ライト)し得る。
伝送ユニット125がメモリ200のあらかじめ定められたアドレスに第1データを伝送することは、キャッシュ300のフラッシュが完了した後に行われ得る。
また伝送ユニット125は設定ユニット115からキャッシュ300のフラッシュと関連する情報(CI.I)(例えば、キャッシュ300のフラッシュが開始されるという情報)の提供を受け、キャッシュ300がフラッシュする区間のあいだ非活性化され得る。ここで、伝送ユニット125が非活性化する時点はキャッシュ300のフラッシュが開始される前、開始と同時、または開始した後のいずれも可能である。
キャッシュ300のフラッシュが完了した後に、伝送ユニット125は設定ユニット115からキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ300のフラッシュが完了したという情報)の提供を受けて活性化する。
伝送ユニット125はメモリ200にリードまたはライト動作を行い得る。前述したとおり、伝送ユニット125は第1データをメモリ200のあらかじめ定められたアドレスに伝送するため、伝送ユニット125はこのようなライト動作以外にメモリ200からデータをリードする動作も行い得る。
図2及び図3を参照すると、DMAモジュールの動作がキャッシュの無効化(すなわち、フラッシュ)が完了した後に開始される場合を示す。図3は、本発明の一実施形態による半導体装置100が適用されない場合である。
すなわち、プロセッサがキャッシュをフラッシュする区間(Cache Invalidation)(時間t1〜t2)ではDMAモジュールの動作がブロッキングされ得る。これはキャッシュをフラッシュする区間(時間t1〜t2)のあいだDMAモジュールの動作がブロッキングされないと、キャッシュがフラッシュするメモリのアドレスとDMAモジュールがデータを伝送しようとするメモリのアドレスが同じである場合、DMAモジュールが伝送しようとするデータが最新データであるにもかかわらず、キャッシュによってフラッシュされたデータ(すなわち、アップデートされないデータまたは古いデータ)が最新データの上に上書き(over write)し得るからである。
これにより、キャッシュをフラッシュする区間(時間t〜t)ではDMAモジュールの動作がブロッキングされ、キャッシュのフラッシュが完了した時間tからはDMAモジュールの初期設定作業(Initial Setup)(すなわち、設定ユニットが伝送パラメータを設定する)が開始され得る。
DMAモジュールの初期設定作業が時間tに完了すると、時間tからは第1データの生成作業(Data Creation1)(すなわち、生成ユニットが第1データを生成する)が開始され得る。
また時間tで第1データの生成作業が完了すると、時間tからは第2データの生成作業(Data Creation2)(すなわち、生成ユニットが第1データと異なる最新データの第2データを生成する)と第1データの伝送作業(Data transfer 1)(すなわち、伝送ユニットが第1データをメモリに伝送する)が同時に開始され得る。すなわち、DMAモジュールの伝送ユニットの動作と生成ユニットの動作はパイプライン(pipeline)方式で処理され得る。
続いて、時間tで第2データの生成作業と第1データの伝送作業が完了すると、時間tで第2データの伝送作業(Data transfer 2)(すなわち、伝送ユニットが第2データをメモリに伝送すること)が開始され得る。
ここで、第2データが伝送されるメモリのアドレスは第1データが伝送されるメモリのアドレスと異なる。
このように図3の場合、キャッシュによってフラッシュされたデータ(すなわち、アップデートされないデータまたは古いデータ)が最新データの上に上書き(over write)することを防止できるが、キャッシュのフラッシュ時間だけDMAモジュールの遂行時間が遅れるという点から全体的な性能低下の問題を引き起こす。
一方、図2及び図4を参照すると、DMAモジュールの動作がキャッシュの無効化(すなわち、フラッシュ)と同時に開始する場合を示す。図4は、本発明の一実施形態による半導体装置100が適用された場合である。
前述した図3との差異点を中心に説明する。
すなわち、プロセッサ250がキャッシュ300をフラッシュする区間(Cache Invalidation)(時間t′〜t′)で図3とは異なり、DMAモジュール110の動作がブロッキングされないということが分かる。
具体的には、時間t′でキャッシュ300のフラッシュが開始されると同時に、DMAモジュール110の伝送ユニット125が非活性化(Data transfer Disable)する。もちろん、DMAモジュール110の伝送ユニット125が非活性化する時点は前述したとおり、キャッシュ300のフラッシュが開始される前、開始と同時、または開始された後のいずれも可能であるが、説明の便宜上、図4では、キャッシュ300のフラッシュが開始されると同時に行われる場合を説明する。
ここで、伝送ユニット125の非活性化区間は時間t′すなわち、キャッシュ300のフラッシュが完了する時点まで持続する。これはキャッシュ300によってフラッシュされたデータ(すなわち、アップデートされないデータまたは古いデータ)が最新データの上に上書き(over write)することを防止するためである。
キャッシュ300のフラッシュが開始された時間t′より少し経過した時間t′でDMAモジュール110の初期設定作業(Initial Setup)(すなわち、設定ユニット115が伝送パラメータDPを設定すること)が開始され得る。
すなわち、DMAモジュール110の動作がキャッシュ300がフラッシュする区間のあいだ行われ得る。これにより、前述した図3とは異なり、キャッシュ300のフラッシュ時間だけDMAモジュールの遂行時間が遅れることによって発生する全体的な性能低下の問題を防止できる。すなわち、図4でよりキャッシュ300のフラッシュ時間だけDMAモジュール110の遂行時間を操り上げることによって全体的な性能を向上させ得る。
DMAモジュール110の初期設定作業が時間t′に完了すると、時間t′からは第1データの生成作業(Data Creation1)(すなわち、生成ユニットが第1データを生成すること)が開始され得る。ここで、第1データの生成作業はキャッシュ300のフラッシュ区間とパイプライン方式で処理され得る。
具体的には、第1データの生成作業はキャッシュ300のフラッシュ区間中に開始され (すなわち、時間t1′から時間t′の間に始まって)キャッシュのフラッシュ区間が終了する前、終了と同時に、または終了した後に終了し得る。
また時間t′でキャッシュ300のフラッシュが完了すると、時間t′以後からはDMAモジュール110の伝送ユニット125が活性化(Data transfer Enable)する。これにより、第1データの生成作業が時間t′で完了すると、時間t′からは第2データの生成作業(Data Creation2)(すなわち、生成ユニット120が第1データと異なる最新データの第2データを生成すること)と第1データの伝送作業(Data transfer 1)(すなわち、伝送ユニット125が第1データをメモリ200に伝送すること)が同時に開始され得る。
すなわち、DMAモジュール110の伝送ユニット125の動作と生成ユニット120の動作はパイプライン(pipeline)方式で処理され得る。
続いて、時間t′で第2データの生成作業と第1データの伝送作業が完了すると、時間t′で第2データの伝送作業(Data transfer 2)(すなわち、伝送ユニット125が第2データをメモリ200に伝送すること)が開始され得る。
本発明の一実施形態による半導体装置100は、伝送ユニット125の非活性化区間をキャッシュ300のフラッシュが完了する時点まで維持することによって、キャッシュ300によってフラッシュされたデータ(すなわち、アップデートされないデータまたは古いデータ)が最新データの上に上書きすることを防止し得、キャッシュ300のフラッシュ時間だけDMAモジュール110の遂行時間を操り上げることによって全体的な性能を向上させ得る。
また本発明のいくつかの実施形態で、このような設定ユニット115、生成ユニット120、伝送ユニット125はハードウェア形態で実現されるが、本発明がこれに限定されない。すなわち、設定ユニット115、生成ユニット120、伝送ユニット125はソフトウェア形態で実現されてDMAモジュール110にコード(code)形態で格納され得る。
以下では、図5及び図6を参照して本発明の一実施形態による半導体システムについて説明する。前述した図1及び図2の説明と重複する内容は省略する。
図5は本発明の一実施形態による半導体システムを説明するブロック図である。
図6は図5の第2プロセッサを説明するためのブロック図である。
図5を参照すると、本発明の一実施形態による半導体システム400は第1プロセッサ410、キャッシュ420、第2プロセッサ430、バス470を含み得る。
第1プロセッサ410はキャッシュ420に格納されたデータ(例えば、以前データ、すなわち、アップデートされないデータ)をメモリ200のあらかじめ定められたアドレスにフラッシュする。
具体的には、第1プロセッサ410はキャッシュ420をフラッシュする動作以外にもキャッシュ420にリードまたはライト動作を行い得る。また第1プロセッサ410は第2プロセッサ430に伝送パラメータDPと関連する情報及びキャッシュ420のフラッシュと関連する情報を提供し得る。
ここで、第1プロセッサ410は例えば、CPU(Central Processing Unit)を含み得、メモリ200はDRAMを含み得るため、これに限定されない。
キャッシュ420は第1プロセッサ410によってフラッシュされ得る。
具体的には、キャッシュ420は第1プロセッサ410によってメモリ200のあらかじめ定められたアドレスにフラッシュされ得る。またキャッシュ420はバス470を介してメモリ200と接続し得る。
第2プロセッサ430はキャッシュ420に格納されたデータと異なるデータ(最新データ)を生成してメモリ200のあらかじめ定められたアドレスに伝送し得る。
ここで、第2プロセッサ430は内部的にデータを直接生成したり外部装置350から提供を受け得る。
バス470は第1プロセッサ410、第2プロセッサ430、キャッシュ420を互いに接続させるだけでなく、半導体システム400とメモリ200を接続させ得る。
具体的には、第1プロセッサ410が第2プロセッサ430に伝送パラメータDPと関連する情報及びキャッシュ420のフラッシュと関連する情報を提供すること、キャッシュ420がメモリ200のあらかじめ格納されたアドレスにフラッシュすること、第2プロセッサ430がメモリ200のあらかじめ格納されたアドレスにデータを伝送することのすべてをバス470を介して行われ得る。
また、図5では、半導体システム400が第1プロセッサ410、キャッシュ420、第2プロセッサ430、バス470を含む場合を示すが、これに限定されない。すなわち、半導体システム400はメモリ200と外部装置350も含み得る。
図6を参照すると、第2プロセッサ430はDMAモジュール440とバッファ450を含み得る。ここで、第2プロセッサ430は図2の半導体装置100であり得る。
したがって、DMAモジュール440はメモリ200にバス470を介して直接アクセスし得る。
具体的には、DMAモジュール440はメモリ200にデータを伝送するための伝送パラメータDPを設定し、伝送パラメータDPに基づいてメモリ200に伝送しようとするデータを生成してバッファ450に格納し得る。またDMAモジュール440はバッファ450に格納されたデータをメモリ200のあらかじめ定められたアドレスに伝送し得る。ここで、DMAモジュール440はメモリ200に伝送しようとするデータを内部的に直接生成したり外部装置350から提供を受け得る。
また前述したとおり、DMAモジュール440は設定ユニット442、生成ユニット445、伝送ユニット447を含み得るため、これについての詳細な説明は省略する。
また、キャッシュのフラッシュと関連する情報(CI.I)は第1プロセッサ410から第2プロセッサ430(例えば、第2プロセッサ430の設定ユニット442)に提供される場合を示すが、これに限定されない。より詳細には、キャッシュのフラッシュと関連する情報(CI.I)は第1プロセッサ410で先に設定ユニット442に提供された後、設定ユニット442から伝送ユニット447に提供される場合を示すが、これに限定されない。すなわち、キャッシュのフラッシュと関連する情報(CI.I)は第1プロセッサ410で設定ユニット442を経ず、バス470を介して直ちに伝送ユニット447に提供され得、キャッシュ420のフラッシュが開始されると、キャッシュ420は自らキャッシュのフラッシュと関連する情報(CI.I)を生成してバス470を介して伝送ユニット447に提供し得る。
以下では、図7及び図8を参照して本発明の他の実施形態による半導体システムについて説明する。前述した実施形態の説明と重複する内容は省略する。
図7は本発明の他の実施形態による半導体システムを説明するブロック図である。図8は図7の第2及び第3プロセッサを説明するためのブロック図である。
図7を参照すると、本発明の他の実施形態による半導体システム500は第1プロセッサ510、キャッシュ520、第2プロセッサ530、第3プロセッサ580、バス595を含み得る。
第1プロセッサ510はキャッシュ520に格納されたデータ(例えば、以前データ、すなわち、アップデートされないデータ)をメモリ200のあらかじめ定められたアドレスにフラッシュし得る。
具体的には、第1プロセッサ510はキャッシュ520をフラッシュする動作以外にもキャッシュ520にリードまたはライト動作を行い得る。また第1プロセッサ510は第2プロセッサ530に伝送パラメータDPと関連する情報及びキャッシュ520のフラッシュと関連する情報を提供し得る。
ここで、第1プロセッサ510は例えば、CPU(Central Processing Unit)を含み得、メモリ200はDRAMを含み得るため、これに限定されない。
キャッシュ520は第1プロセッサ510によりフラッシュされ得る。
具体的には、キャッシュ520は第1プロセッサ510によりメモリ200のあらかじめ定められたアドレスにフラッシュされ得る。またキャッシュ520はバス595を介してメモリ200と接続され得る。
第2プロセッサ530はキャッシュ520に格納されたデータと異なるデータ(最新データ)をメモリ200のあらかじめ定められたアドレスに伝送し得る。
ここで、第2プロセッサ530は第3プロセッサ580に格納されたデータの提供を受け(すなわち、リードして)メモリ200に伝送し得る。
第3プロセッサ580は外部装置350からメモリ200に伝送しようとするデータの提供を受けて格納し得る。
バス595は第1プロセッサ510、第2プロセッサ530、第3プロセッサ580、キャッシュ520を互いに連結させるだけでなく、半導体システム500とメモリ200を接続させ得る。
具体的には、第1プロセッサ510が第2プロセッサ530に伝送パラメータDPと関連する情報及びキャッシュ520のフラッシュと関連する情報を提供すること、第2プロセッサ530が第3プロセッサ580に伝送パラメータDPを提供すること、第2プロセッサ530が第3プロセッサ580に格納されたデータの提供を受けること、キャッシュ520がメモリ200のあらかじめ格納されたアドレスにフラッシュすること、第2プロセッサ530がメモリ200のあらかじめ格納されたアドレスにデータを伝送することのすべてをバス595を介して行い得る。
図8を参照すると、第2プロセッサ530はDMAモジュール540と第1バッファ560を含み得る。
具体的には、DMAモジュール540は設定ユニット542、生成ユニット545、伝送ユニット547を含み得る。
設定ユニット542はメモリ200に第1データをライトするための伝送パラメータDPを設定し得る。
具体的には、設定ユニット542は第1プロセッサ510からバス595を介して伝送パラメータDPと関連する情報の提供を受けて伝送パラメータDPを設定し得る。ここに伝送パラメータDPは例えば、メモリ200に伝送しようとする第1データのサイズ、メモリ200に伝送しようとする第1データが格納された第1バッファ560のアドレス、メモリ200に伝送しようとする第1データが格納された第2バッファ590のアドレス、第1データを伝送しようとするメモリ200のあらかじめ定められたアドレスを含み得るが、これに限定されない。また第1データはメモリ200に伝送しようとする最新データを含み得る。
設定ユニット542は第1プロセッサ510からバス595を介して伝送パラメータDPと関連する情報だけでなく、キャッシュの無効化(以下では、フラッシュという)と関連する情報(CI.I)の提供も受け得、提供されたキャッシュのフラッシュと関連する情報(CI.I)に基づいて伝送パラメータDPの設定動作を開始し得る。すなわち、伝送パラメータDPは第1プロセッサ510から提供された伝送パラメータDPと関連する情報に基づいて設定され、このような設定動作の開始時点は第1プロセッサ510から提供されたキャッシュのフラッシュと関連する情報(CI.I)に基づいて決定され得る。
ここで、キャッシュのフラッシュと関連する情報(CI.I)は第1プロセッサ510から第2プロセッサ530(例えば、第2プロセッサ530の設定ユニット542)に提供される場合を示すが、これに限定されない。より具体的には、キャッシュのフラッシュと関連する情報(CI.I)は第1プロセッサ510から先に設定ユニット542に提供された後、設定ユニット542から伝送ユニット547に提供される場合を示すが、これに限定されない。すなわち、キャッシュのフラッシュと関連する情報(CI.I)は第1プロセッサ510から設定ユニット542を経ず、バス595を介して直接伝送ユニット547に提供され得、キャッシュ520のフラッシュが開始されると、キャッシュ520は自らキャッシュのフラッシュと関連する情報(CI.I)を生成してバス595を介して伝送ユニット547に提供し得る。ただし、説明の便宜上、第1プロセッサ510から設定ユニット542にキャッシュのフラッシュと関連する情報(CI.I)が提供される場合を例えて説明する。
設定ユニット542が伝送パラメータDPを設定することは、第1プロセッサ510がキャッシュ520に格納された第2データをメモリ200のあらかじめ定められたアドレスにフラッシュするあいだ行われ得る。ここで、第2データは以前データ(すなわち、アップデートされないデータ)であって、最新データである第1データと異なるデータであり得る。
設定ユニット542は設定された伝送パラメータDPを生成ユニット545と伝送ユニット547に提供し得る。また設定ユニット542はキャッシュのフラッシュと関連する情報(CI.I)を伝送ユニット547に提供し得る。
生成ユニット545は設定された伝送パラメータDPに基づいてメモリ200に伝送する第1データを生成し得る。
具体的には、生成ユニット545は設定ユニット542から伝送パラメータDPの提供を受け得、伝送パラメータDPに基づいて第3プロセッサ580の第2バッファ590に格納された第1データの提供を受け得る。また生成ユニット545が第1データの提供を受けることはキャッシュ520がフラッシュする区間のあいだに行われ得る。
ここで、生成ユニット545は第3プロセッサ580の第2バッファ590からバス595を介してデータの提供を受けたり内部的に直接データを生成し得る。
また、生成ユニット545は第1データを伝送パラメータDPが指す第1バッファ560のアドレスに格納できる。
伝送ユニット547は伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データをライトし得る。
具体的には、伝送ユニット547は設定ユニット542から伝送パラメータDPの提供を受け得、伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データを伝送し得る。ここで、伝送ユニット547は第1バッファ560に格納された第1データをメモリ200に伝送し得る。
すなわち、伝送ユニット547は伝送パラメータDPが指す第1バッファ560のアドレスに格納された第1データをリードし、伝送パラメータDPが指すメモリ200のあらかじめ定められたアドレスに第1データを伝送(ライト)し得る。
伝送ユニット547がメモリ200のあらかじめ定められたアドレスに第1データを伝送することは、キャッシュ520のフラッシュが完了した後行われ得る。
また伝送ユニット547は設定ユニット542からキャッシュ520のフラッシュと関連する情報(CI.I)(例えば、キャッシュ520のフラッシュが開始されるという情報)の提供を受けてキャッシュ520がフラッシュする区間のあいだ非活性化し得る。ここで、伝送ユニット547が非活性化する時点はキャッシュ520のフラッシュが開始される前、開始と同時、または開始した後のいずれも可能である。
キャッシュ520のフラッシュが完了した後に、伝送ユニット547は設定ユニット542からキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ520のフラッシュが完了したという情報)の提供を受けて活性化し得る。
伝送ユニット547はメモリ200にリードまたはライト動作を行い得る。前述したとおり、伝送ユニット547は第1データをメモリ200のあらかじめ定められたアドレスに伝送できるため、伝送ユニット547はこのようなライト動作以外にメモリ200にデータをリードする動作も行い得る。
第3プロセッサ580は第2バッファ590を含み得る。
具体的には、第3プロセッサ580は第1データを生成して第2バッファ590に格納し得る。すなわち、第3プロセッサ580は設定ユニット542から伝送パラメータの提供を受け得、提供された伝送パラメータに基づいて外部装置350から第1データの提供を受けたり内部的に第1データを生成し得る。
すなわち、図8に示す半導体システム500は、図6に示す半導体システム400と別に、外部装置350からデータを提供されるプロセッサ(すなわち、第3プロセッサ580)と外部装置350から提供されたデータをメモリ200に伝送するプロセッサ(すなわち、第2プロセッサ530)が別途存在することが分かる。
また図6及び図8に示す半導体システム(400、500)はメモリ200と共に一つのシステムに集積され得る。例示的には、半導体システム(400または500)及びメモリ200は一つのシステムに集積され、メモリカードを構成し得る。例えば、半導体システム(400または500)及びメモリ200は一つのシステムに集積され、PCカード(PCMCIA、personal computer memory card international association)、コンパクトフラッシュ(登録商標)カード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS−MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュ記憶装置(UFS)などのようなメモリカードを構成する。また半導体システム(400または500)及びメモリ200は一つのシステムに集積され、半導体ドライブ(SSD、Solid State Drive)を構成し得る。
また図9を参照すると、本発明の他の実施形態による半導体システム500は第1プロセッサ510、キャッシュ520、第2プロセッサ530、第3プロセッサ580を含み、これらは一つのシステムオンチップ(System on Chip)600で実現され得、これらの各要素はシステムオンチップ内の内部バス、例えばAXI(AMBA Advanced eXtensible Interface)プロトコルに従うバスを介して相互接続できる。また、本発明のいくつかの実施形態で前記システムオンチップは端末機に搭載されるアプリケーションプロセッサ(Application Processor)で実現され得る。本発明のいくつかの実施形態で、前記システムオンチップはメモリ200と外部装置550も含むように実現され得る。
もちろん図7の半導体システム500だけでなく図5の半導体システム400もシステムオンチップで実現され得、これについての具体的な説明は省略する。
また、半導体システム(400または500)は多様な形態のパッケージで実装され得る。例えば、半導体システム(400または500)はPoP(Package on Package)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)などのような方式でパッケージ化されて実装され得る。図10ないし図12は本発明のいくつかの実施形態による半導体システムを適用できる例示的な電子システムである。
図10はタブレットPC1200を示す図であり、図11はノートブック1300を示す図であり、図12はスマートフォン1400を示す図である。本発明のいくつかの実施形態による半導体システム(400、500)はこのようなタブレットPC1200、ノートブック1300、スマートフォン1400などに使用され得る。
また、本発明のいくつかの実施形態による半導体システム(400、500)は例示していない他の集積回路装置にも適用され得ることは当業者に自明である。すなわち、以上では本実施形態による電子システムの例として、タブレットPC1200、ノートブック1300、およびスマートフォン1400だけを挙げているが、本実施形態による電子システムの例はこれに制限されない。本発明のいくつかの実施形態で、電子システムは、コンピュータ、UMPC (Ultra MobilePC)、ワークステーション、ネットブック(net−book)、PDA(Personal Digital Assistants)、ポータブル(portable)コンピュータ、無線電話機(wireless phone)、モバイルフォン(mobile phone)、e−ブック(e−book)、PMP(portable multimedia player)、携帯用ゲーム機、ナビゲーション(navigation)装置、ブラックボックス(black box)、デジタルカメラ(digital camera)、3次元テレビ(3−dimensional television)、デジタルオーディオレコーダ(digital audio recorder)、デジタルオーディオプレーヤ(digital audio player)、デジタル映像レコーダ(digital picture recorder)、デジタル画像プレーヤ(digital picture player)、デジタルビデオレコーダ(digital video recorder)、デジタルビデオプレーヤ(digital video player)などで実現され得る。
以下では、図13及び図14を参照して図1の半導体装置の動作方法について説明する。前述した図1の内容と重複する説明は省略する。
図13及び図14は図1の半導体装置の動作方法を説明する図である。
図2、図13、図14を参照すると、先に、伝送パラメータと関連する情報(DP.I)及びキャッシュのフラッシュと関連する情報(CI.I)を提供する(S100)。
具体的には、設定ユニット115はプロセッサ250から伝送パラメータと関連する情報(DP.I)及びキャッシュのフラッシュと関連する情報(CI.I)の提供を受け得る。
キャッシュ300のフラッシュ開始信号を提供する(S105)。
具体的には、プロセッサ250はキャッシュ300にフラッシュ開始信号を提供し得る。
DMAモジュール110のデータ伝送動作が非活性化される(S107)。
具体的には、設定ユニット115はキャッシュのフラッシュと関連する情報(CI.I)を伝送ユニット125に提供し得る。また伝送ユニット125はキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ300のフラッシュが開始されるという情報)の提供を受けて非活性化し得る。
キャッシュ300のフラッシュが開始される(S110)。
具体的には、キャッシュ300に格納された第2データ(以前データ、すなわち、アップデートされないデータ)はメモリ200のあらかじめ定められたアドレスにフラッシュされ得る。
本発明では、S100、S105、S107、S110が順次に発生する場合を示すが、これに限定されない。すなわち、プロセッサ250はキャッシュ300にフラッシュ開始信号を提供した後(S105)、設定ユニット115に伝送パラメータと関連する情報(DP.I)及びキャッシュのフラッシュと関連する情報(CI.I)を提供(S100)し得る。
したがって、伝送ユニット125が非活性化する時点(S107)はキャッシュ300のフラッシュが開始される時点(S110)より以前、同時、または以後であり得る。
キャッシュ300のフラッシュが開始され後、設定ユニット115はプロセッサ250から提供された伝送パラメータと関連する情報(DP.I)に基づいて伝送パラメータDPを設定し得る。また設定ユニット115は伝送パラメータDPを設定して生成ユニット120に提供する(S113)。
データを生成する(S115)。
具体的には、生成ユニット120は提供された伝送パラメータDPに基づいて第1データ(すなわち、メモリ200のあらかじめ定められたアドレスに伝送しようとする最新データ)を生成し得る。生成ユニット120は内部的に直接第1データを生成したり外部装置350から第1データの提供を受け得る。
バッファ160にデータを格納する(S117)。
具体的には、生成ユニット120は伝送パラメータDPが示すバッファ160のアドレスに第1データを格納し得る。
プロセッサ250はキャッシュ300のフラッシュが終了すると(S120)、設定ユニット115にキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ300のフラッシュが完了したという情報)を提供し得る。しかし、キャッシュ300のフラッシュが終了していない場合、伝送ユニット125の非活性化状態が維持され得る(すなわち、DMAモジュールのデータ伝送動作の非活性化状態を維持)(S122)。
DMAモジュール110のデータ伝送動作が活性化する(S125)。
具体的には、設定ユニット115はプロセッサ250からキャッシュ300のフラッシュが完了したとの情報の提供を受けると、これを伝送ユニット125に提供し得る。
伝送ユニット125はキャッシュ300のフラッシュが完了したという情報の提供を受けて活性化する。
バッファ160に格納されたデータをリードする(S127)。
具体的には、伝送ユニット125は伝送パラメータDPに基づいてバッファ160に格納された第1データをリードし得る。
メモリ200にデータを伝送する(S130)。
具体的には、伝送ユニット125は伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データを伝送し得る。
以下では、図15及び図16を参照して図5の半導体システムの動作方法について説明する。前述した図5の説明と重複する説明は省略する。
図15及び図16は図5の半導体システムの動作方法を説明する図である。
図6、図15、図16を参照すると、先に、伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報(CI.I)を提供する(S200)。
具体的には、第2プロセッサ430のDMにこのモジュール440に含まれた設定ユニット442は第1プロセッサ410から伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報(CI.I)の提供を受け得る。
キャッシュ420のフラッシュ開始信号を提供する(S205)。
具体的には、第1プロセッサ410はキャッシュに無効化(すなわち、フラッシュ)開始信号を提供し得る。
DMAモジュール440のデータ伝送動作が非活性化する(S207)。
具体的には、設定ユニット442はキャッシュのフラッシュと関連する情報(CI.I)を伝送ユニット447に提供し得る。また伝送ユニット447はキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ420のフラッシュが開始されるという情報)の提供を受けて非活性化する。
キャッシュ420のフラッシュが開始される(S210)。
具体的には、キャッシュ420に格納された第2データ(以前データ、すなわち、アップデートされないデータ)はメモリ200のあらかじめ定められたアドレスにフラッシュし得る。
本発明で、S200、S205、S207、S210が順次に発生する場合を示すが、これに限定されない。すなわち、第1プロセッサ410はキャッシュ420にフラッシュ開始信号を提供した後(S205)、設定ユニット442に伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報(CI.I)を提供(S200)し得る。
したがって、伝送ユニット447が非活性化する時点(S207)はキャッシュ420のフラッシュが始まる時点(S210)より以前、同時、または以後でり得る。
キャッシュ420のフラッシュが開始された後、設定ユニット442は第1プロセッサ410から提供された伝送パラメータと関連する情報に基づいて伝送パラメータDPを設定し得る。また設定ユニット442は伝送パラメータDPを設定して生成ユニット445に提供し得る(S213)。
データを生成する(S215)。
具体的には、生成ユニット445は提供された伝送パラメータDPに基づいて第1データ(すなわち、メモリ200のあらかじめ定められたアドレスに伝送しようとする最新データ)を生成し得る。生成ユニット445は内部的に直接第1データを生成したり外部装置350から第1データの提供を受け得る。
バッファ450にデータを格納する(S217)。
具体的には、生成ユニット445は伝送パラメータDPが示すバッファ450のアドレスに第1データを格納し得る。
第1プロセッサ410はキャッシュ420のフラッシュが終了すると(S220)、設定ユニット442にキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ420のフラッシュが完了したという情報)を提供し得る。しかし、キャッシュ420のフラッシュが終了していない場合、伝送ユニット447の非活性化状態が維持され得る(すなわち、DMAモジュールのデータ伝送動作非活性化の状態を維持)(S222)。
DMAモジュール440のデータ伝送動作が活性化する(S225)。
具体的には、設定ユニット442は第1プロセッサ410からキャッシュ420のフラッシュが完了したとの情報の提供を受けると、これを伝送ユニット447に提供し得る。
伝送ユニット447はキャッシュ420のフラッシュが完了したとの情報の提供を受けて活性化する。
バッファ450に格納されたデータをリードする(S227)。
具体的には、伝送ユニット447は伝送パラメータDPに基づいてバッファ450に格納された第1データをリードし得る。
メモリ200にデータを伝送する(S230)。
具体的には、伝送ユニット447は伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データを伝送し得る。
以下では、図17及び図18を参照して図7の半導体システムの動作方法について説明する。前述した図7の説明と重複する内容は省略する。
図17及び図18は図7の半導体システムの動作方法を説明する図である。
図7、図17、図18を参照すると、先に、伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報(CI.I)を提供する(S300)。
具体的には、第2プロセッサ530のDMAモジュール540に含まれた設定ユニット542は第1プロセッサ510から伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報(CI.I)の提供を受け得る。
キャッシュ520のフラッシュ開始信号を提供する(S305)。
具体的には、第1プロセッサ510はキャッシュに無効化(すなわち、フラッシュ)開始信号を提供し得る。
DMAモジュール540のデータ伝送動作が非活性化する(S307)。
具体的には、設定ユニット542はキャッシュのフラッシュと関連する情報(CI.I)を伝送ユニット547に提供し得る。また伝送ユニット547はキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ520のフラッシュが開始されるという情報)の提供を受けて非活性化する。
キャッシュ520のフラッシュが開始される(S310)。
具体的には、キャッシュ520に格納された第2データ(以前データ、すなわち、アップデートされないデータ)はメモリ200のあらかじめ定められたアドレスにフラッシュする。
本発明で、S300、S305、S307、S310が順次に発生する場合を示すが、これに限定されない。すなわち、第1プロセッサ510はキャッシュ520にフラッシュ開始信号を提供した後(S305)、設定ユニット542に伝送パラメータと関連する情報及びキャッシュのフラッシュと関連する情報(CI.I)を提供(S300)し得る。
したがって、伝送ユニット547が非活性化される時点(S307)はキャッシュ520のフラッシュが開始される時点(S310)より以前、同時、以後であり得る。
キャッシュ520のフラッシュが始まった後、設定ユニット542は第1プロセッサ510から提供された伝送パラメータと関連する情報に基づいて伝送パラメータDPを設定し得る。図面に示していないが、第3プロセッサ580は設定ユニット542から伝送パラメータの提供を受け、提供された伝送パラメータに基づいて外部装置350から第1データを提供されたり第1データを生成し得る(S313)。
設定ユニット542は伝送パラメータDPを設定して生成ユニット545に提供し得る(S314)。
図18では、第3プロセッサ580が設定ユニット542から伝送パラメータの提供を受けて第1データを生成する時点(S313)が生成ユニット545が設定ユニット542から伝送パラメータDPの提供を受ける時点(S314)より早い場合を示しているが、これに限定されない。
すなわち、生成ユニット545が設定ユニット542から伝送パラメータDPの提供を受ける時点は、第3プロセッサ580が設定ユニット542から伝送パラメータの提供を受ける時点より以前、同時、以後であり得る。
第2バッファ590からデータをリードする(S315)。
具体的には、生成ユニット545は提供された伝送パラメータDPに基づいて第1データ(すなわち、メモリ200のあらかじめ定められたアドレスに伝送しようとする最新データ)を第2バッファ590からリードし得る。もちろん生成ユニット545は内部的に直接第1データを生成し得るが、説明の便宜上、第2バッファ590に格納された第1データを提供される場合を例えて説明する。
第1バッファ560にデータを格納する(S317)。
具体的には、生成ユニット545は伝送パラメータDPが指す第1バッファ560のアドレスに第1データを格納し得る。
第1プロセッサ510はキャッシュ520のフラッシュが終了すると(S320)、設定ユニット542にキャッシュのフラッシュと関連する情報(CI.I)(例えば、キャッシュ520のフラッシュが完了したとの情報)を提供し得る。しかし、キャッシュ520のフラッシュが終了していない場合、伝送ユニット547の非活性化状態が維持され得る(すなわち、DMAモジュールのデータ伝送動作非活性化の状態を維持)(S322)。
DMAモジュール540のデータ伝送動作が活性化する(S325)。
具体的には、設定ユニット542は第1プロセッサ510からキャッシュ520のフラッシュが完了したとの情報の提供を受けると、これを伝送ユニット547に提供し得る。
伝送ユニット547はキャッシュ520のフラッシュが完了したという情報の提供を受けて活性化し得る。
第1バッファ560に格納されたデータをリードする(S327)。
具体的には、伝送ユニット547は伝送パラメータDPに基づいて第1バッファ560に格納された第1データをリードし得る。
メモリ200にデータを伝送する(S330)。
具体的には、伝送ユニット547は伝送パラメータDPに基づいてメモリ200のあらかじめ定められたアドレスに第1データを伝送し得る。
以上添付する図面を参照して本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、互いに異なる多様な形態で製造され得、本発明が属する技術分野で通常の知識を有する者は、本発明の技術的な思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解できるであろう。上記実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。

Claims (20)

  1. メモリに直接アクセスして前記メモリのアドレスに第1データをライト(write)するDMAモジュールを含み、
    前記DMAモジュールは、
    プロセッサがキャッシュに格納された第2データを前記メモリのアドレスにフラッシュ(flushing)する区間のあいだ、前記メモリに前記第1データをライトするための伝送パラメータを設定する設定ユニットと、
    前記設定された伝送パラメータに基づいて前記メモリに伝送する第1データを生成する生成ユニットと、
    前記フラッシュが完了した後、前記伝送パラメータに基づいて前記メモリのアドレスに前記生成された第1データをライトする伝送ユニットとを含む半導体装置。
  2. 前記第1データは前記第2データと異なるデータである請求項1に記載の半導体装置。
  3. 前記生成ユニットは前記第1データを外部装置から提供されたり前記第1データを直接生成する請求項1に記載の半導体装置。
  4. 前記生成ユニットは前記外部装置にリード(read)動作またはライト(write)動作を行う請求項3に記載の半導体装置。
  5. 前記第1データが格納されるバッファをさらに含む請求項1に記載の半導体装置。
  6. 前記生成ユニットは前記第1データを前記バッファに格納する請求項5に記載の半導体装置。
  7. 前記伝送ユニットは前記バッファに格納された第1データを前記メモリに伝送する請求項6に記載の半導体装置。
  8. 前記伝送パラメータは、前記第1データのサイズまたは前記第1データが格納された前記バッファのアドレスまたは前記メモリのアドレスを含む請求項5に記載の半導体装置。
  9. 前記設定ユニットは、前記プロセッサから前記伝送パラメータと関連する情報及び前記キャッシュのフラッシュと関連する情報の提供を受ける請求項1に記載の半導体装置。
  10. 前記伝送ユニットは、前記設定ユニットから前記キャッシュのフラッシュと関連する情報の提供を受けて前記キャッシュがフラッシュする区間のあいだ非活性化する請求項9に記載の半導体装置。
  11. 前記伝送ユニットは前記フラッシュが完了した後に活性化する請求項10に記載の半導体装置。
  12. 前記伝送ユニットは前記プロセッサから前記キャッシュのフラッシュと関連する情報の提供を受ける請求項1に記載の半導体装置。
  13. 前記伝送ユニットは前記キャッシュから前記キャッシュのフラッシュと関連する情報の提供を受ける請求項1に記載の半導体装置。
  14. 前記生成ユニットは前記設定ユニットが前記伝送パラメータを設定した後、前記第1データを生成する請求項1に記載の半導体装置。
  15. 前記生成ユニットは前記フラッシュする区間のあいだ前記第1データを生成する請求項14に記載の半導体装置。
  16. 前記伝送ユニットは、前記生成ユニットが前記第1データを生成した後、前記メモリのアドレスに前記第1データを伝送する請求項15に記載の半導体装置。
  17. 前記伝送ユニットは、前記メモリにリード(read)動作またはライト(write)動作を行う請求項1に記載の半導体装置。
  18. 前記第1データが格納されるバッファをさらに含む請求項1に記載の半導体装置。
  19. 前記メモリのアドレスは第1アドレスと第2アドレスを含み、
    前記伝送ユニットは前記第3データを前記第1アドレスに伝送する第1伝送動作と、前記第1伝送動作後に前記第4データを前記第2アドレスに伝送する第2伝送動作を行い、
    前記第1伝送動作は前記生成ユニットが前記第4データを生成するあいだに行われる請求項18に記載の半導体装置。
  20. 前記生成ユニットは、
    前記フラッシュする区間のあいだ前記第3データを生成し、
    前記フラッシュが完了した後、前記第4データを生成する請求項18に記載の半導体装置。
JP2015162240A 2014-08-29 2015-08-19 半導体装置、半導体システム及びシステムオンチップ Active JP6641120B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462043595P 2014-08-29 2014-08-29
US62/043,595 2014-08-29
KR10-2014-0143553 2014-10-22
KR1020140143553A KR102261591B1 (ko) 2014-08-29 2014-10-22 반도체 장치, 반도체 시스템 및 시스템 온 칩

Publications (2)

Publication Number Publication Date
JP2016051471A true JP2016051471A (ja) 2016-04-11
JP6641120B2 JP6641120B2 (ja) 2020-02-05

Family

ID=55536943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015162240A Active JP6641120B2 (ja) 2014-08-29 2015-08-19 半導体装置、半導体システム及びシステムオンチップ

Country Status (3)

Country Link
JP (1) JP6641120B2 (ja)
KR (1) KR102261591B1 (ja)
TW (1) TWI682280B (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868818B2 (en) * 2016-09-22 2024-01-09 Advanced Micro Devices, Inc. Lock address contention predictor
KR102526499B1 (ko) * 2020-09-28 2023-05-02 고려대학교 산학협력단 Fpga 기반 캐시 무효화 방법 및 이를 수행하는 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004258935A (ja) * 2003-02-26 2004-09-16 Matsushita Electric Ind Co Ltd 半導体装置
US7376762B2 (en) * 2005-10-31 2008-05-20 Sigmatel, Inc. Systems and methods for direct memory access
US7970989B2 (en) * 2006-06-30 2011-06-28 Intel Corporation Write ordering on disk cached platforms
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture

Also Published As

Publication number Publication date
KR102261591B1 (ko) 2021-06-04
TWI682280B (zh) 2020-01-11
KR20160026599A (ko) 2016-03-09
JP6641120B2 (ja) 2020-02-05
TW201608373A (zh) 2016-03-01

Similar Documents

Publication Publication Date Title
US10296217B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
KR102147993B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
CN105389274B (zh) 半导体装置、半导体系统和片上系统
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
KR20150106132A (ko) 전자 장치의 캐시 메모리 제어 방법 및 장치
KR102479394B1 (ko) 이종 프로세서 시스템 내 캐시들 간에 데이터 이동
US20220413722A1 (en) Storage device set including storage device and reconfigurable logic chip, and storage system including the storage device set
US20150324287A1 (en) A method and apparatus for using a cpu cache memory for non-cpu related tasks
JP6641120B2 (ja) 半導体装置、半導体システム及びシステムオンチップ
JP2018501559A5 (ja)
CN112825041A (zh) 一种内存隔离的装置、内存隔离方法和相关设备
US10783033B2 (en) Device and method for accessing in-band memory using data protection
US20160085690A1 (en) Host and computer system having the same
US9971549B2 (en) Method of operating a memory device
JP2016514882A (ja) コヒーレントバスを介したセマフォ管理シーケンスのパフォーマンスを改善するための方法および装置
US20230169022A1 (en) Operating method of an electronic device
US11593123B2 (en) Methods and apparatus for boot time reduction in a processor and programmable logic device environment
CN110134370B (zh) 一种图形绘制的方法、装置、电子设备及存储介质
TW201621632A (zh) 嵌入式裝置及其記憶體管理方法
CN105808453B (zh) 嵌入式装置及其存储器管理方法
US11321254B2 (en) Computing system for transmitting completion early between serially connected electronic devices
TWI515659B (zh) 動態選擇開機作業系統方法以及使用該方法的裝置
KR20220113500A (ko) 시스템 직접 메모리 접근 엔진 오프로드
CN117234980A (zh) 数据处理系统、方法、装置、设备和存储介质
US10268621B2 (en) Application processor and semiconductor system including the same

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20161222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20161228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191113

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: 20191210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191227

R150 Certificate of patent or registration of utility model

Ref document number: 6641120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250