JP2021068463A - 共有バス上の複数のデバイスのためのデータ転送技術 - Google Patents

共有バス上の複数のデバイスのためのデータ転送技術 Download PDF

Info

Publication number
JP2021068463A
JP2021068463A JP2021000656A JP2021000656A JP2021068463A JP 2021068463 A JP2021068463 A JP 2021068463A JP 2021000656 A JP2021000656 A JP 2021000656A JP 2021000656 A JP2021000656 A JP 2021000656A JP 2021068463 A JP2021068463 A JP 2021068463A
Authority
JP
Japan
Prior art keywords
memory
source
target
data
bus
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
JP2021000656A
Other languages
English (en)
Other versions
JP7111849B2 (ja
Inventor
チャン,イファ
Yihua Zhang
クック,ジェイムス
Cooke James
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of JP2021068463A publication Critical patent/JP2021068463A/ja
Priority to JP2022115962A priority Critical patent/JP2022132562A/ja
Application granted granted Critical
Publication of JP7111849B2 publication Critical patent/JP7111849B2/ja
Active 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/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/0647Migration mechanisms
    • 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
    • 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/1694Configuration of memory controller to different memory types
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/061Improving I/O performance
    • 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/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Dram (AREA)

Abstract

【課題】メモリコントローラの効率向上と、異なるメモリ間でのデータ転送の効率向上とを可能にする。【解決手段】本開示の方法は、ターゲットメモリで受信されるデータを記憶するための、該ターゲットメモリ内のアドレスを設定することと、前記ターゲットメモリ内の前記アドレスを設定することに基づいて、ソースメモリ及び前記ターゲットメモリの両方へ、前記ソースメモリからの前記データを前記ターゲットメモリに記憶するための単一のコマンドシーケンスを送信することであって、前記単一のコマンドシーケンスは、前記ソースメモリでの第1の動作と前記ターゲットメモリでの第2の動作とを指示する、ことと、を含む。【選択図】図5

Description

[クロスレファレンス]
本特許出願は、米国特許出願第14/928,988号(Zhang et al., 発明の名称「共有バス上の複数のデバイスのためのデータ転送技術」、出願日2015年10月30日)についての優先権を主張する。当該米国特許出願は、本願の譲受人に対して譲渡されたものであり、その参照をもって、本願に明確に組み込まれるものとする。
[技術分野]
以下に述べることは、概して、デバイス間のデータ転送に関するものであり、特には、共有バス上の複数のデバイスのためのデータ転送技術に関する。
メモリデバイスは、コンピュータ、無線通信デバイス、カメラ、デジタルディスプレイ等の種々の電子デバイスにおいて、情報を記憶するために広く使用されている。情報は、メモリデバイスのそれぞれ異なる状態をプログラムすることによって記憶される。例えば、バイナリデバイスは、論理「1」又は論理「0」を表す2つの状態を有する。他のシス
テムでは、2つよりも多くの状態が記憶されることもある。その記憶された情報にアクセスするために、電子デバイスは、メモリデバイスの記憶された状態を読み出し、又は検出し得る。情報を記憶するために、電子デバイスは、メモリデバイスに状態を書き込み、又はプログラムし得る。
ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ダイナミックRAM(DRAM)、同期式ダイナミックRAM(SDRAM)、強誘電体RAM(FeRAM)、磁気RAM(MRAM)、抵抗RAM(RRAM)、フラッシュメモリ、又はその他のものを含む、多くのタイプのメモリデバイスが存在する。メモリデバイスは、揮発性又は不揮発性であり得る。不揮発性メモリ、例えばフラッシュメモリは、外部電源なしでも、長期間に渡ってデータを記憶することができる。揮発性メモリデバイス、例えばDRAMは、外部電源によって定期的にリフレッシュされないと、時間超過により、その記憶された状態を消失してしまうことがある。揮発性メモリの或る態様は、より速い読み出し速度又は書き込み速度等、性能上の利点を提供し得るが、一方、不揮発性メモリの或る態様は、定期的なリフレッシュを行わずともデータを記憶できる等の利点を有し得る。
デバイス間でデータを転送する際、メモリコントローラが、ソースデバイスからメモリコントローラ内のデータ記憶部へデータを読み出し、続いて、そのデータをメモリコントローラ内の上記データ記憶部からターゲットデバイスへ書き込むことがある。更に、多くの場合、メモリコントローラが、揮発性メモリや不揮発性メモリのようなそれぞれ異なる記憶デバイス毎に、異なるタイプのインタフェースを有することがある。そのような設計だと、データの転送を容易にするために、その全てにメモリコントローラが関わることにもなり得る。従って、メモリコントローラの効率向上と、異なる電子デバイス間でのデータ転送の効率向上とを可能にする技術を提供することは、有益であり得る。
本発明の方法は、メモリコントローラで、ターゲットメモリへ転送されるデータに対する、ソースメモリにおけるソースアドレスを特定することであって、前記メモリコントローラ、前記ソースメモリ、及び前記ターゲットメモリの各々がバスに結合されている、ことと、前記メモリコントローラによって、前記ソースアドレスを特定することに少なくとも部分的に基づいて、前記ターゲットメモリに関連付けられたアドレスレジスタにターゲットアドレスを設定することと、前記メモリコントローラによって、少なくとも前記ソースアドレスを含むコマンドを前記バスを介して送信することであって、前記コマンドを送信することは、前記バスを介して前記ソースメモリから前記ターゲットメモリの前記ターゲットアドレスへダイレクトに前記データを転送することを開始し、前記コマンドは、前記ソースメモリでの読み出し動作と前記ターゲットメモリでの書き込み動作とを指示するコマンドシーケンスを含み、前記読み出し動作の少なくとも一部分及び前記書き込み動作の少なくとも一部分が同時に行われる、ことと、を含む。
本発明の装置は、バスに結合されたソースメモリと、前記バスに結合されたターゲットメモリと、前記ターゲットメモリに関連付けられたアドレスレジスタと、前記バスに結合されたメモリコントローラと、を備え、前記メモリコントローラは、前記ターゲットメモリへ転送されるデータに対して、前記ソースメモリにおけるソースアドレスを特定することと、前記ソースアドレスを特定することに少なくとも部分的に基づいて、前記アドレスレジスタにターゲットアドレスを設定することと、少なくとも前記ソースアドレスを含むコマンドを前記バスを介して送信することであって、前記コマンドを送信することは、前記バスを介して前記ソースメモリから前記ターゲットメモリの前記ターゲットアドレスへダイレクトに前記データを転送することを開始し、前記コマンドは、前記ソースメモリでの読み出し動作と前記ターゲットメモリでの書き込み動作とを指示するコマンドシーケンスを含み、前記読み出し動作の少なくとも一部分及び前記書き込み動作の少なくとも一部分が同時に行われる、ことと、を行うように動作可能である。
本開示の実施形態について、以下の図を参照して説明する。
図1は、本開示の種々の実施形態に係る、共有バスを用いたデータ記憶要素間のダイレクトデータ転送を支持する、メモリシステムを含むデバイスのブロック図を示す。 図2は、本開示の種々の実施形態に係る、共有バスを用いたデータ記憶要素間のダイレクトデータ転送を支持するメモリシステムのブロック図を示す。 図3は、本開示の種々の実施形態に係る、共有バスを用いたデバイス間のダイレクトデータ転送を提供する複数のデータ記憶デバイスについてのタイミング図を示す。 図4は、本開示の種々の実施形態に係る、共有バスを用いたデータ記憶要素間のダイレクトデータ転送を支持する電子システムのブロック図を示す。 図5は、本開示の種々の実施形態に係る、共有バスを用いたデータ記憶要素間のダイレクトデータ転送のための方法を示すフローチャート(その1)である。 図6は、本開示の種々の実施形態に係る、共有バスを用いたデータ記憶要素間のダイレクトデータ転送のための方法を示すフローチャート(その2)である。 図7は、本開示の種々の実施形態に係る、共有バスを用いたデータ記憶要素間のダイレクトデータ転送のための方法を示すフローチャート(その3)である。
[詳細な説明]
本開示の種々の実施形態は、コントローラからの関わりを低減した、1つのバスを共有するデバイス間のダイレクトデータ転送を提供する。或る実施形態では、メモリコントローラ等のコントローラと、ソースメモリデバイスと、ターゲットメモリデバイスとが、共有バスに連結され得る。或る実施形態では、共有バスはシリアル・ペリフェラル・インタフェース(SPI)バスであってもよいが、他のタイプのバスも同様に使用可能である。或る例では、コントローラはプロセッサ(例えばマイクロプロセッサ)を含んでもよく、又は、プロセッサの制御下で動作するものであってもよい。コントローラは、ターゲットメモリデバイスへ転送されるデータに対する、ソースメモリデバイスにおけるソースアドレスを特定することが可能である。コントローラは、ターゲットメモリデバイスにおけるターゲットアドレスを特定し、そして、上記バスを介してソースメモリデバイスからターゲットメモリデバイスへのダイレクトなデータ転送を開始し得てもよい。コントローラは、データを読み出すためのコマンドを第1のメモリデバイスへ送信してもよく、このコマンドは第2のメモリデバイスでも受信され得る。上記コマンドに応答して、ソースメモリデバイスがバスにデータを読み出してもよく、また、ターゲットメモリデバイスが上記バスからデータを読み出して、このデータを、コントローラからの更なるコマンド無しで、上記ターゲットアドレスから(ターゲットアドレスを先頭にして)記憶するようにしてもよい。或る実施形態では、第1のメモリデバイスからデータを読み出すためのコマンドが、プロトコル一式又はコマンド一式に従った、第1のメモリデバイスに対する読み出しコマンドであってもよく、また、第1のメモリデバイスによって提供されたデータを第2のメモリデバイスに記憶させるための、第2のメモリデバイスに対する特別なプログラムコマンドであってもよい。
或る実施形態では、コントローラは、ターゲットメモリデバイスへイネーブル信号を提供し、ターゲットアドレスをターゲットメモリデバイス内のターゲットアドレスレジスタに書き込んでもよい。コントローラは、次に、ソースメモリデバイスとターゲットメモリデバイスの両方へイネーブル信号を提供し、それと共に読み出しコマンドを送信してもよい。コントローラは、ソースメモリデバイスとターゲットメモリデバイスにクロックを提供してもよく、このクロックが提供され続ける限り、ソースメモリデバイスがバスへデータを読み出し、ターゲットメモリデバイスがバスからデータを読み込んでもよい。このように、コントローラ、及び/又はコントローラを管理するプロセッサは、単にソース及びターゲットアドレス、読み出しコマンド、イネーブル及びクロック信号を提供することだけで、データ転送への関わりを低減できるようになった。これにより、その他の処理タスクのためのリソースを開放することによってシステム動作を向上させることができ、また、メモリデバイス間で転送されるデータをコントローラが実際に受信する技術によればコントローラで必要とされるキャッシュメモリやバッファメモリ等の内部メモリの量を低減させることができる。更に、当該技術は、データ転送のための他の技術よりも、システム電力及び処理時間を低減することができる。
以上に述べた本開示の実施形態について、デバイス間で転送されるデータを有し得るそれぞれ異なるデバイスを伴った電子システムに関し、以下に更に述べる。メモリコントローラの関わりを低減したダイレクトデータ転送を採用するメモリシステムについての具体的な例を述べる。本開示のこれらの又はその他の実施形態について、共有バスを用いたデバイス間のダイレクトデータ転送に関する、装置図、システム図、及びフローチャートによって更に説明し、また、それらの図を参照して更に述べる。
図1は、本開示の種々の実施形態に係る、共有バスを用いたデバイス間のダイレクトデータ転送を支持するシステム100の図を示す。システム100はデバイス105を含んでおり、このデバイス105は、種々のコンポーネントを接続するか又はそれらを物理的に支持するためのプリント回路基板であるか又はそれを含み得る。デバイス105は、プロセッサ110、BIOSコンポーネント115、周辺コンポーネント120、入力/出力制御コンポーネント125、及びメモリシステム150を含み得る。デバイス105の上記コンポーネントは、デバイスバス130を介して互いに電子通信し得る。図1の例示的なシステム100において、メモリシステム150はメモリコントローラ155、揮発性メモリ160、及び不揮発性メモリ165を含んでおり、それらは共有バス170によってメモリコントローラ155に結合され得る。
プロセッサ110は、メモリコントローラ155を介してメモリシステム150とインタフェースするように構成可能である。或る場合にはプロセッサ110がメモリコントローラ155の機能を実行してもよく、他の場合にはメモリコントローラ155がプロセッサ110に統合されてもよい。プロセッサ110は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又はその他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェアコンポーネントであってもよく、又は、それらのタイプのコンポーネントの組み合わせであってもよく、また、プロセッサ110は、共有バスを用いたデバイス間のダイレクトデータ転送を含む、ここで述べる種々の機能を実行してもよい。プロセッサ110は、例えば、デバイス105に種々の機能又はタスクを行わせるための、メモリシステム150に記憶されたコンピュータ読取可能な命令を実行するように構成されてもよい。
BIOSコンポーネント115は、ファームウェアとして動作される基本入力/出力システム(BIOS)を含むソフトウェアコンポーネントであり、システム100の種々のハードウェアコンポーネントを起動及び作動させ得る。BIOSコンポーネント115は、プロセッサ110と種々のコンポーネント(例えば、周辺コンポーネント120、入力/出力コントローラ125等)との間のデータフローをも管理し得る。BIOSコンポーネント115は、リードオンリメモリ(ROM)、フラッシュメモリ、又はその他の任意の不揮発性メモリに記憶されたプログラム又はソフトウェアを含んでもよい。
周辺コンポーネント120は、デバイス105に統合されている、何らかの入力又は出力デバイスか、又はそのようなデバイスのためのインタフェースであり得る。その一例は、ディスクコントローラ、サウンドコントローラ、グラフィックコントローラ、イーサネットコントローラ、モデム、USBコントローラ、シリアル又はパラレルポート、或いは、周辺コンポーネントインタコネクト(PCI)スロット又はアクセラレーテッドグラフィックポート(AGP)スロット等の周辺カードスロットを含み得る。
入力/出力コントローラ125は、プロセッサ110と、周辺コンポーネント120、入力デバイス135、又は出力デバイス140との間のデータ通信を管理し得る。入力/出力コントローラ125は、デバイス105に統合されていない周辺装置を管理してもよい。或る場合には、入力/出力コントローラ125は、外部周辺装置に対する物理的な接続又はポートとなり得る。
入力135は、デバイス105又はそのコンポーネントへの入力を提供する、デバイス105に外付けされたデバイス又は信号となり得る。これは、ユーザインタフェースや、他のデバイスとの又は他のデバイス間のインタフェースを含んでもよい。或る場合には、入力135は、周辺コンポーネント120を介してデバイス105とインタフェースする周辺装置であってもよく、又は、入力/出力コントローラ125によって管理されてもよい。
出力デバイス140は、デバイス105又はそのコンポーネントのいずれかからの出力を受信するように構成された、デバイス105に外付けされたデバイス又は信号となり得る。出力デバイス140の一例は、ディスプレイ、オーディオスピーカ、印刷装置、他のプロセッサ又はプリント回路基板等を含み得る。或る場合には、出力140は、周辺コンポーネント120を介してデバイス105とインタフェースする周辺装置であってもよく、又は、入力/出力コントローラ125によって管理されてもよい。
上述したように、メモリシステム150は、メモリコントローラ155、揮発性メモリ160、及び不揮発性メモリ165を含んでもよく、これらのメモリは共有バス170によってメモリコントローラ155に連結され得る。或る例では、共有バス170はSPIバスであってもよく、メモリコントローラ155は、揮発性メモリ160及び不揮発性メモリ165の両方にアクセスするための1つのSPIインタフェースを用い得る。メモリコントローラのための種々の既存の設計は、揮発性メモリと不揮発性メモリとに対して別々のインタフェースを用い得るものであり、1つのインタフェースを伴った共有バス170を用いることは、より効果的で、より複雑でない設計を提供し得る。
種々の例のSPIバスは、命令、アドレス、及びデータを、それらの全てを1つのコマンドシーケンスにして含むプロトコルを用いてもよい。そのようなコマンドシーケンスは、特定のコンポーネント(例えば、揮発性メモリ160及び/又は不揮発性メモリ165)にチップイネーブル信号又はチップセレクト信号を提供することによって開始され、また、上記のチップイネーブル信号又はチップセクレト信号を非選択にすることによって終了され得る。SPIプロトコルの上記命令は、実行される動作(例えばメモリ読み出し)を定義し得るものであり、上記アドレスは、上記命令に関連付けられた上記データが配置されるか又は書き込まれる場所を特定し得る。例えば、上記命令は読み出し命令であってもよく、上記アドレスは、揮発性メモリ160又は不揮発性メモリ165から読み出されるデータの先頭メモリ位置を示すソースアドレスであってもよい。種々の例では、SPIプロトコルの命令に続いて、アドレスの提供とデータの出力との間に、データを出力する前にメモリ又はその他のデバイスがデータを検出する(例えば、メモリアレイ内の特定の位置に記憶されたデータを検出する)ことを可能にするためのダミーサイクルを提供してもよい。ここで提供される技術は、幾つかの例について、SPI共有バスを用いたシステムに関して記述される。しかし、当該技術は、コマンド、アドレス、及びデータの全てを1つの同一のチップセレクトイベントとして含み得る同様なコマンドシーケンスを有する他のタイプの共有バスを用いるシステムにおいても使用し得る。
今、図2を参照して、本開示の種々の実施形態に係る、共有バスを用いたデバイス間のダイレクトデータ転送を支持するシステム200の一層具体的な例について述べる。システム200は、図1のメモリシステム150の一例であるメモリシステム150−aを含み得る。メモリシステム150−aは、図1の共有バス170の一例である共有バス170−aに結合された、図1のメモリコントローラ155の一例であるメモリコントローラ155−aを含み得る。共有バス170−aには、それぞれ図1の揮発性メモリ160及び不揮発性メモリ165の一例である揮発性メモリ160−a及び不揮発性メモリ165−aも結合されている。
揮発性メモリ160−aは、第1の動作命令デコーダ205、第1のターゲットアドレスレジスタ210、揮発性メモリアレイ215、及び第1のチップイネーブル220を含み得る。揮発性メモリ160−aは、例えば、メモリシステム150−aに含まれる1つの集積回路又はチップであってもよい。或る例では、揮発性メモリ160−aは、上述したようなコンポーネントを含む一層大きな集積回路からなるメモリモジュールであってもよい。他の例では、第1の動作命令デコーダ205、第1のターゲットアドレスレジスタ210、及び揮発性メモリアレイ215は、1つのメモリモジュールに含まれるディスクリートコンポーネント(例えば、プリント回路基板上に搭載されたコンポーネント)であってもよく、また、第1のチップイネーブル220は、メモリモジュールの上記(及びその他の)コンポーネントを有効にするために使用され得る。
第1の動作命令デコーダ205は、共有バス170−aを介して受信された命令をデコードし、このデコードされた命令に従って動作し得る。第1のターゲットアドレスレジスタ210は、揮発性メモリ160−aへ転送されるデータに対するターゲットアドレスをメモリコントローラ155−aが提供するためのレジスタであり得る。揮発性メモリアレイ215は、メモリセルのアレイ(例えば、DRAMアレイ又はSRAMアレイ)を含んでもよい。第1のターゲットアドレスレジスタ210は、揮発性メモリアレイ215とは別々に示されているが、或る例では、第1のターゲットアドレスレジスタ210は揮発性メモリアレイ215の一部であってもよい。第1のチップイネーブル220は、揮発性メモリ160−aに命令を実行させ且つ共有バス170−aを介して他のコンポーネントと通信させるイネーブルラインであってもよい。
同様に、不揮発性メモリ165−aは、第2の動作命令デコーダ225、第2のターゲットアドレスレジスタ230、不揮発性メモリアレイ235、及び第2のチップイネーブル240を含み得る。不揮発性メモリ165−aは、例えば、メモリシステム150−aに含まれる1つの集積回路又はチップであってもよい。或る例では、不揮発性メモリ165−aは、上述したようなコンポーネントを含む一層大きな集積回路からなるメモリモジュールであってもよい。他の例では、第2の動作命令デコーダ225、第2のターゲットアドレスレジスタ230、及び不揮発性メモリアレイ235は、1つのメモリモジュールに含まれるディスクリートコンポーネント(例えば、プリント回路基板上に搭載されたコンポーネント)であってもよく、また、第2のチップイネーブル240は、メモリモジュールの上記(及びその他の)コンポーネントを有効にするために使用され得る。
第2の動作命令デコーダ225は、共有バス170−aを介して受信された命令をデコードし、このデコードされた命令に従って動作し得る。第2のターゲットアドレスレジスタ230は、不揮発性メモリ165−aへ転送されるデータに対するターゲットアドレスをメモリコントローラ155−aが提供するためのレジスタであり得る。不揮発性メモリアレイ235は、不揮発性メモリセルのアレイ(例えば、EEPROMアレイ又はフラッシュメモリアレイ)を含んでもよい。第2のターゲットアドレスレジスタ230は、不揮発性メモリアレイ235とは別々に示されているが、或る例では、第2のターゲットアドレスレジスタ230は不揮発性メモリアレイ235の一部であってもよい。第2のチップイネーブル240は、不揮発性メモリ165−aに命令を実行させ且つ共有バス170−aを介して他のコンポーネントと通信させるイネーブルラインであってもよい。なお、図2の例は例示及び説明のためのものであり、他の例は他の又は追加のコンポーネントを含んでもよい。例えば、この例では、揮発性メモリ160−aと不揮発性メモリ165とを互いに交換することも可能であり、或いは、共有バス170−a上の異なるデバイス間の更なる通信を可能にする追加のメモリ又はインタフェースが共有バス170−aに結合されることも可能である。
この例におけるメモリコントローラ155−aは、メモリマネージャ245及びチップイネーブル(CE)マネージャ255を含み得る。メモリマネージャ245は、揮発性メモリ160−a及び不揮発性メモリ165−aに、SPIプロトコルに従ったコマンドシーケンスのような命令を提供し得る。メモリコントローラ155−aは、メモリシステム150−aから他のコンポーネントへデータを提供するために、又は、メモリシステム150−aに記憶されるデータを他のコンポーネントから受信するために、他の外部コンポーネントに結合されてもよい。CEマネージャ255は、第1のチップイネーブルライン246を介して揮発性メモリ160−aの第1のチップイネーブル220に結合されてもよく、また、第2のチップイネーブルライン250を介して不揮発性メモリ165−aの第2のチップイネーブル240に結合されてもよい。メモリコントローラ155−aは、揮発性メモリ160−a及び不揮発性メモリ165−aにクロック260を提供してもよい。
上述したように、種々の例に係る共有バス170−aは、SPIバスであり得る。本開示の種々の実施形態は、SPIバスのシリアルプロトコルを使用するものであり、メモリコントローラ155−aと揮発性メモリ160−aと不揮発性メモリ165−aとの間でのデータ転送のための、向上した技術を提供する。揮発性メモリ160−a及び不揮発性メモリ165−aの両方が、メモリコントローラ155−aのサーバントであり、それらは、メモリコントローラ155−aによって別々にアクセスされ得る個々のチップイネーブル220及び240を有している。或る例では、例えばメモリシステムの外部のプロセッサによって実行されるプログラム命令のようなデータが、不揮発性メモリ165−aから揮発性メモリ160−aへロードされ得る。そのような転送のためのロードデータプロセスが、メモリコントローラ155−aからの関わりを制限しつつ、不揮発性メモリ165−aから揮発性メモリ160−aへダイクレトにデータを移動させ得る。同様に、揮発性メモリ160−aからの或るデータは、メモリコントローラ155−aからの関わりを制限しつつ、揮発性メモリ160−aから不揮発性メモリ165−aへダイレクトにデータを移動させ得る書き戻しデータプロセスによって、不揮発性メモリ165−aに書き込まれる必要があり得る。説明を明確にするために、そのようなロードデータプロセス及び書き戻しデータプロセスを別々に記載したが、或る例では、これらの動作は組み合わされてもよい。
データロードプロセスのために、メモリコントローラ155−aは、或る例では、揮発性メモリ160−aへロードされるデータに対して、不揮発性メモリ165−aにおけるソースアドレスを決定し得る。メモリコントローラは、揮発性メモリ160−aにデータを記憶するためのターゲットアドレスも決定し得る。メモリコントローラ155−aは、第1のターゲットアドレスレジスタ210にターゲットアドレスを設定することによって(例えば、第1のチップイネーブル220を有効にし、ターゲットアドレスを第1のターゲットアドレスレジスタ210に書き込み、そして、第1のチップイネーブル220を無効にすることによって)、データロードプロセスを開始し得る。メモリコントローラ155−aは、次に、揮発性メモリ160−a及び不揮発性メモリ165−aの両方で受信されるコマンドシーケンスを、共有バス170−aを介して送信し得る。そのようなコマンドは、或る例では、SPIプロトコルに従って確立された読み出しコマンドであってもよく、また、読み出しコマンド及びソースアドレスを含んでいてもよい。上述したように、不揮発性メモリ165−aから揮発性メモリ160−aへデータを移動させるための既存の技術は、ソースアドレスで始まるデータをメモリコントローラ155−a内のデータキャッシュへ移動させる読み出しコマンドを含むことがある。しかし、ここに記載した技術によれば、不揮発性メモリ165−a及び揮発性メモリ160−aの両方が読み出しコマンドを受信し、コマンドシーケンスを確認し、そして、データをメモリコントローラ155−aに記憶することなく、つまり、メモリコントローラ155−aを実際のデータ移動に関わらせることなく、ダイレクトにデータを転送し得る。
或る例では、メモリマネージャ245が、CEマネージャ255を介して、第1のチップイネーブル220及び第2のチップイネーブル240の両方にチップイネーブル信号を提供することで、不揮発性メモリ165−a及び揮発性メモリ160−aの両方が読み出しコマンドを確認するのを可能にし得る。上述したように、読み出しコマンドの後に、揮発性メモリによって無視されてもよいソースアドレスが続き、そしてメモリコントローラ155−aは不揮発性メモリ165−a及び揮発性メモリ160−aの各々にクロックを提供し得る。不揮発性メモリ165−aは、第2の動作命令デコーダ225でデコードされた読み出しコマンドに従って、不揮発性メモリアレイ235から、ソースアドレスで始まるデータを出力し、そして、クロック260がメモリコントローラ155−aによって提供され続ける限り、ソースアドレスからの連続したメモリ位置にあるデータを出力し続け得る。揮発性メモリ160−aの第1の動作命令デコーダ205は、読み出しコマンドを受信してデコードし、ソースアドレスを無視し、そして、不揮発性メモリ165−aによって共有バス170−aに提供されたデータを、揮発性メモリアレイ215にそのターゲットアドレスの位置から記憶し得る。データの読み出しと、それに対応するデータの記憶は、クロック260が揮発性メモリ160−a及び不揮発性メモリ165−aに提供される持続時間(タイムデュレーション)の間、継続する。そのような方法では、メモリコントローラ155−aは、メモリコントローラ155−aの関わりを制限しながら、かつ、メモリコントローラ155−aのキャッシュ又はバッファにデータを記憶することなしに、不揮発性メモリ165−aから揮発性メモリ160−aへダイレクトにデータを移動させ得る。同様な動作が、不揮発性メモリ165−aから揮発性メモリ160−aへの書き戻し動作に使用されてもよく、その場合、書き戻しデータに対するターゲットアドレスが第2のターゲットアドレスレジスタ230に記憶され、また、揮発性メモリ160−aから共有バス170−aにデータを読み出すための読み出しコマンドが発行される。
上述したように、本開示の種々の実施形態について記載された技術は、第1の動作命令デコーダ205及び第2の動作命令デコーダ225の両方がメモリコントローラ155−aからのコマンドを受信することを含む。データロードプロセスにおいて、不揮発性メモリ165−aは命令を読み出し動作として扱い、一方、揮発性メモリ160−aは同命令を書き込み動作として扱い得る。同様に、書き戻しプロセスにおいては、揮発性メモリ160−aは命令を読み出し動作として扱い、一方、不揮発性メモリ165−aは同命令を書き込み動作として扱い得る。これらの命令は、揮発性メモリ160−a及び不揮発性メモリ165−aの両方に対するタイミング要求を一致させるように定義され得る。これらの命令はまた、そのような命令が各部分に対して一意である限り、SPIプロトコルで定義された既存の不揮発性及び揮発性メモリ読み出しコマンドを利用するものであってもよい。例えば、もし「0Bh」命令(SPIフラッシュ不揮発性メモリにおける既存のFAST読み出しコマンド)が、揮発性メモリ側においていずれのSPI動作にも使用されていなければ、このコマンドは揮発性メモリ側において書き込みコマンドとして定義されてもよい。第1の命令デコーダ205は、次に、FAST読み出しコマンドを理解し、そのコマンドシーケンスを、不揮発性メモリ165−aに期待されるデータ出力についての知識を用いて、書き込みシーケンスに変換し、そして、共有バス170−aに提供されたデータを正しいクロック及びダイミングでラッチすることができる。
更に、上述したように、揮発性メモリ160−a及び不揮発性メモリ165−aの各々がターゲットアドレスレジスタを有し得る。ソースアドレスはコマンドシーケンスの中に提供されるがターゲットアドレスは提供されないので、そのようなアドレスレジスタが使用され得る。例えばロードデータプロセスにおいて、コマンドシーケンスは、不揮発性メモリ165−aが送り出す必要のあるアドレスを含んでいるが、それは、メモリコントローラ155−aが揮発性メモリ160−aについて必要とするターゲットアドレスではない場合もある。よって、自動動作の前に、メモリコントローラ155−aは、揮発性メモリ160−aに、不揮発性メモリ165−aからのデータがロードされる場所であるターゲットアドレスを提供する。同様に、書き戻しプロセスにおいては、メモリコントローラ155−aは揮発性メモリ160−aからのデータが正しい位置に書き戻され得るように、不揮発性メモリ165−aに第2のターゲットアドレスレジスタ230を設定する。或る例では、ソースアドレス及びターゲットアドレスの両方を含む新たなコマンドシーケンスが定義されてもよい。しかし、ターゲットアドレスレジスタを使用することで、既存のプロトコルへの変更を減らすことができ、向上したフレキシビリティを提供し得る。不揮発性メモリ165−aから揮発性メモリ160−aへのデータシャドウイング動作のための動作も、同様に説明し得る。
図3は、本開示の種々の実施形態に係る、共有バスを用いたダイレクトデータ転送を支持する、メモリコントローラからメモリデバイスへ提供される信号のタイミング図300を示す。タイミング図300の信号は、例えば、図1及び図2に関して先に述べたメモリコントローラ155によって提供され得る。図3の例では、不揮発性メモリチップイネーブル信号305(CE#_NVM)が、図1又は図2の不揮発性メモリ165−aのような不揮発性メモリに提供され得る。揮発性メモリチップイネーブル信号310(CE#_RAM)が、図1又は図2の揮発性メモリ160−aのような揮発性メモリに提供され得る。データ信号315(DQ[x:0])が、図1又は図2の共有バス170のような共有バスに提供され得る。クロック320も提供され得る。図3の例には、揮発性メモリから不揮発性メモリへの書き戻し動作のための動作が示されている。
まず、時刻325で、コントローラがローレベルのチップイネーブル信号305を不揮発性メモリに提供し、これにより、データ信号315からのデータを不揮発性メモリにラッチさせ得る。この例では、データ信号315が、第1の期間335中に、ターゲットアドレスを設定するための命令をターゲットアドレスと共に提供し得る。更に、この第1の期間335中、チップイネーブル310はハイになっており、これにより、揮発性メモリを無効のままにし、よって上記命令を受信しないようにする。上記命令に続いて、チップイネーブル信号305がハイにデアサートされ、次に、時刻330でチップイネーブル信号305及び310の両方がローに設定されることで、不揮発性メモリ及び揮発性メモリの両方が有効にされる。持続時間(タイムデュレーション)345の間中、クロック320が同様に両方のメモリに提供され、その際、コントローラが共有バス上にデータ信号315の読み出し命令を提供し、この読み出し命令が不揮発性メモリ及び揮発性メモリの両方で受信される。不揮発性メモリは、上記命令をデコードし、上記命令を書き戻し命令として認識し、上記命令の中に提供されたソースアドレスを無視し、そして次に、共有バスにおける揮発性メモリから該バスに出力されたデータを検出する。不揮発性メモリは、ターゲットアドレスで特定された位置から、上記検出されたデータを記憶する。揮発性メモリも、共有バス上のデータ信号315の読み出し命令をデコードし、この命令からソースアドレスをデコードし、このソースアドレスの位置から記憶されたデータの検出を開始し、そしてこのデータを共有バスに出力する。上述したように、メモリコントローラからのコマンドシーケンスは、揮発性メモリがその記憶データを検出するのを可能にする幾つかのダミーサイクルを含んでもよく、揮発性メモリ及び不揮発性メモリの両方が、データ転送のための正しいタイミングを提供するために、ダミーサイクルの数を知るようにする。これらの動作は、持続時間345の間中、継続する。持続時間345が時刻340で終了すると、メモリコントローラがチップイネーブル信号305及び310の両方を非選択にして、クロック320の提供を中止してもよい。
上記の例は、共有バスに結合され得る異なるメモリコンポーネントについて記述したものだが、ここに記載された技術は、メモリデバイスに加えて設けられた他のデバイスによって、そのようなデバイス間のダイレクトデータ転送に使用されてもよい。例えば、そのような技術は、幾つかの例を挙げれば、センサ、セキュアデジタルカード、及び液晶ディスプレイを含み得る、埋め込み型システムに使用されてもよい。そのような電子デバイスは、コントローラからの関わりを制限した、ここで述べたようなデータ転送のための技術を使用し得る。
図4は、本開示の種々の実施形態に係る、共有バスを用いた異なるタイプのデバイス間のダイレクトデータ転送を支持するシステム400を示す。システム400はデバイス405を含んでもよく、このデバイス405は、種々のコンポーネントを接続するか又は物理的に支持するためのプリント回路基板であるか又はそれを含み得る。デバイス405は、コントローラ420、第1の電子デバイス425、第2の電子デバイス430、入力/出力制御コンポーネント435、及び、随意ではあるが1つ以上の他のコンポーネント440を含み得る。デバイス405のこれらのコンポーネントは、図1又は図2の共有バス170の一例であり得る共有バス445を介して、互いに電子通信し得る。図4の例示的システム400では、第1の電子デバイス425が第1のデータ記憶領域450及びチップイネーブル/クロック入力455を含み得る。同様に、第2の電子デバイス430が第2のデータ記憶領域460及びそれに関連付けられたチップイネーブル/クロック入力465を含み得る。
コントローラ420は、共有バス445を介して、第1の電子デバイス425、第2の電子デバイス430、入力/出力制御コンポーネント435、及び/又は他のコンポーネント440とインタフェースするように構成され得る。コントローラは、或る例では、上述したような方法で、デバイス間のダイレクトデータ転送を開始し得る。或る場合には、コントローラ420は、図1〜3に関して先に述べたメモリコントローラ155の機能を実行し得る。コントローラ420は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)又はその他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェアコンポーネントであってもよく、又は、それらのタイプのコンポーネントの組み合わせであってもよい。コントローラ420は、共有バス445を用いたデバイス間のダイレクトデータ転送を含む、ここに記載された種々の機能を実行し得る。コントローラ420は、例えば、デバイス405に種々の機能又はタスクを実行させるためのコンピュータ読み取り可能な命令を実行するように構成され得る。
入力/出力制御コンポーネント435は、コントローラ420と外部コンポーネントとの間のデータ通信を管理し、外部コンポーネントへの物理的な接続又はポートとなり得る。入力410は、デバイス405又はそのコンポーネントへの入力を提供する、デバイス405に外付けされたデバイス又は信号となり得る。これは、ユーザインタフェース、或いは他のデバイスとの又はそれらの間のインタフェースを含んでもよい。或る場合には、入力435は、デバイス405とインタフェースする周辺装置であってもよく、又は、入力/出力制御コンポーネント435によって管理されてもよい。出力デバイス415は、デバイス405又はそのコンポーネントのいずれかからの出力を受信するように構成された、デバイス405に外付けされたデバイス又は信号となり得る。出力デバイス415の一例は、ディスプレイ、オーディオスピーカ、印刷装置、他のプロセッサ又はプリント回路基板等を含み得る。或る場合には、出力415は、デバイス405とインタフェースする周辺装置であってもよい。
上述したように、コントローラ420は、デバイス405の1つ以上のコンポーネントに、デバイス405の1つ以上の他のコンポーネントへダイレクトにデータを転送させ得る。或る例では、コントローラ420は、CE/クロックコンポーネント460によって、データを転送するデバイスにチップイネーブル信号及びクロック信号を提供し得る。図4の例では、第1の電子デバイス425がソースデバイスであり、第2の電子デバイス430がターゲットデバイスであり得る。よって、第1のデータ記憶領域450に記憶されたデータが、共有バス445を介して、第2の電子デバイスの第2のデータ記憶領域460へ転送され得る。この例では、第1の電子デバイス425がチップイネーブル/クロック入力455を含み、第2の電子デバイス430もチップイネーブル/クロック入力465を含み得る。コントローラは、CE/クロック(Clock)コンポーネント460を用いて、第1の電子デバイス425及び第2の電子デバイス430を選択してクロックを送信し、また、図1〜3に関して先に論じたのと同様な方法で第1の電子デバイス425と第2の電子デバイス430との間でのダイレクトデータ転送を開始及び終了するための命令及びアドレスを、共有バス445に提供し得る。
図5は、本開示の種々の実施形態に係る、共有バスを用いたデバイス間のダイレクトデータ転送のためのフローチャート500の一例を示す。フローチャート500は、共有バスを用いたデバイス間のダイレクトデータ転送の実施形態を示し得るものであって、図1〜4に関して先に述べたデバイス105、メモリシステム150、又はデバイス405において実施され得る。
或る例では、メモリコントローラ155又はコントローラ420のようなデバイスが、ブロック505に示されるように、ターゲットメモリへ転送されるデータに対して、ソースメモリにおけるソースアドレスを特定し得る。そのような特定は、例えば、メモリマネージャ245のようなメモリマネージャによってなされてもよく、また、図1〜4に関して先に述べたように、ソースデバイスに記憶されたデータに対する先頭アドレスを特定するようにしてもよい。例えば、ソースメモリデバイスは、ソースデバイスの不揮発性メモリに記憶された、プロセッサによる実行のためのプログラムコードを含み得る。プロセッサは、このプロセッサで実行されるプログラムコードを特定し、この情報をメモリマネージャに提供し得る。続いて、メモリマネージャが、上記特定されたデータを不揮発性メモリから揮発性メモリすなわちターゲットメモリへ移動させるためにソースアドレスを特定するようにしてもよく、このようにすることで、プロセッサは、プログラムコードの実行のために一層容易に上記ソースアドレスにアクセスし得る。或る例では、コントローラ、ソースメモリ、及びターゲットメモリは、共有バス上のデバイス間でコマンド及びデータを転送するために使用され得る上記共有バスに結合されてもよい。
ブロック510で、デバイスは、図1〜4に関して先に述べたように、ソースメモリからターゲットメモリへのダイレクトなデータ転送を開始するために、ターゲットアドレスをターゲットメモリへ送信し得る。デバイスは、例えば、ターゲットアドレスを、ソースメモリからのデータがターゲットメモリに記憶される場所のアドレスとして特定し得る。例えば、メモリコントローラが、プロセッサによって実行されるプログラムコードを記憶するための揮発性メモリの領域を指定し、この特定された領域の先頭アドレスをターゲットアドレスとして使用し得る。コントローラは、或る例では、ターゲットメモリにおけるチップイネーブルを選択し、ターゲットメモリにクロックを提供し、ターゲットメモリのターゲットアドレスレジスタにターゲットアドレスを設定するためのコマンドを共有バスへ出力し、そしてターゲットアドレスを出力することによって、ターゲットアドレスをターゲットメモリへ送信し得る。ターゲットメモリは、コマンドをデコードし、共有バスからのデータをラッチし、そしてこのデータをターゲットメモリのターゲットアドレスレジスタに記憶し得る。或る例では、ソースメモリが不揮発性メモリであり、ターゲットメモリが揮発性メモリであるが、多くの他の例は、他のタイプのメモリ又は他のタイプのデバイス(例えば、ディスプレイ、センサ、カード等)のデータ記憶コンポーネントであるソースメモリ及びターゲットメモリを提供してもよい。
ブロック515で、デバイスは、図1〜4に関して先に述べたように、ソースメモリからデータを読み出すための読み出しコマンドをソースメモリへ送信し得る。この読み出しコマンドは、データがソースメモリから読み出される旨の指示を含んでいてもよく、また、読み出されるデータに対する先頭アドレスを含んでいてもよい。コントローラは、或る例では、ソースメモリ及びターゲットメモリにおけるチップイネーブルを選択し、ソースメモリ及びターゲットメモリにクロックを提供し、データ出力命令を共有バスへ出力し、そしてソースアドレスを出力することによって、読み出しコマンドを送信し得る。ソースメモリは、(例えば動作命令デコーダで)上記コマンドをデコードし、共有バスからのデータをラッチし、そしてソースアドレスで始まるデータを共有バスへ転送開始し得る。更に、チップイネーブル及びクロックがソースメモリに提供されるのと同時に、チップイネーブル及びクロックがターゲットメモリに提供されると、ターゲットメモリは読み出しコマンドをデコードし、この読み出しコマンドをデータの転送の開始と認定し、読み出しコマンド中のソースアドレスを無視し、そしてソースメモリによって共有バスに提供されたデータの記憶を開始することもできる。
ブロック520で、ソースメモリは、図1〜4に関して先に述べたように、ソースメモリからターゲットメモリへダイレクトにデータを転送し得る。ソースメモリは、共有バスへデータを提供することによって転送を実行し、このデータはターゲットメモリによって共有バスから読み出され得る。そのデータは、ターゲットメモリに予め提供されたターゲットアドレスから(ターゲットアドレスを先頭にして)ターゲットメモリに記憶され得る。そのような転送は、或る例に従えば、その後、クロックがソースメモリ及びターゲットメモリに提供される限り、継続され得る。よって、メモリコントローラ等のデバイスは、ソースメモリから読み出されるデータの量と、ソースメモリからデータが読み出される速度又はターゲットメモリにデータが書き込まれ得る速度とに基づいて、クロックを提供する持続時間(タイムデュレーション)を決定し得る。
図6は、本開示の種々の実施形態に係る、共有バスを用いたデバイス間のダイレクトデータ転送のためのフローチャートの一例を示す。フローチャート600は、共有バスを用いたデバイス間のダイレクトデータ転送の実施形態を示すものであり、図1〜4を参照して先に述べたように、デバイス105、メモリシステム150、又はデバイス405において実施され得る。
或る例では、メモリコントローラ155又はコントローラ420等のデバイスは、ブロック605に示すように、ターゲットデバイスにチップイネーブル及びクロックを提供し得る。チップイネーブル、すなわちチップセレクトと、クロックとは、図1〜4に関して先に述べたのと同様に、ターゲットデバイスに、共有バスから1つ以上のコマンド及び/又はデータを読み出し始めるように促し得る。或る例では、共有バスは、前述したように、SPIバスであるか、又は、コマンドシーケンス内のコマンド及びそれに続くデータを提供する、関連付けられたプロトコルを有する他のタイプのバスであってもよい。
ブロック610で、デバイスは、図1〜4に関して先に述べたのと同様に、ターゲットデバイス内のアドレスレジスタを設定し得る。デバイスは、例えば、ターゲットアドレスを、ソースデバイス(例えばソースメモリデバイス)メモリからのデータがターゲットデバイス(例えばターゲットメモリデバイス)に記憶される際のアドレスとして特定し、このターゲットアドレスをアドレスレジスタに設定し得る。例えば、メモリコントローラが、プロセッサによって実行されるプログラムコードを記憶するための、揮発性メモリの領域を指定し、その特定された領域の先頭アドレスをターゲットアドレスとして使用し得る。
ブロック615で、デバイスは、図1〜4に関して先に述べたのと同様に、ターゲットデバイスへのチップイネーブル及びクロックを無効にし得る。デバイスは、例えば、ターゲットアドレスレジスタに記憶するためのターゲットアドレスを提供した後、ターゲットデバイス(例えばターゲットメモリデバイス)を非選択にすることで、アドレスレジスタを設定するためにターゲットデバイスに提供されているコマンドシーケンスを終了し得る。
ブロック620で、デバイスは、図1〜4に関して先に述べたのと同様に、ソースデバイス及びターゲットデバイスにチップイネーブル及びクロックを提供し得る。上述したように、ソースデバイス及びターゲットデバイスの各々にチップイネーブル及びクロックを提供することで、ソースデバイス及びターゲットデバイスの両方が、共有バスに提供されたコマンドと、このコマンドに続くいずれかのデータとをデコードしようとし、これらのデバイス毎に新たなコマンドシーケンスを開始することになる。
ブロック625で、デバイスは、図1〜4に関して先に述べたのと同様に、ソースデバイスへ読み出しコマンドを送信し、この読み出しコマンドはターゲットデバイスでも受信され得る。ソースデバイスとターゲットデバイスの両方が有効にされ、かつ両方にクロックが送信されるので、読み出しコマンドは各デバイスで受信され得る。或る例では、各デバイスの動作命令デコーダが読み出しコマンドをデコードしてもよく、これにより、ソースデバイスとターゲットデバイスとの間でデータが転送される旨をデバイスに示し得る。
ブロック630で、デバイスは、図1〜4に関して先に述べたのと同様に、転送されるデータの量に対応する持続時間(タイムデュレーション)の間中、ソースデバイスとターゲットデバイスにチップイネーブル及びクロックを提供し得る。ソースデバイスとターゲットデバイスは、このようにしてデータのダイレクト転送を実行し、そこでは、ソースデバイスがデータを共有バスへ提供し、このデータがターゲットデバイスによって共有バスから読み出され得る。そのデータは、ブロック610でアドレスレジスタに提供されたアドレスから、ターゲットデバイスに記憶され得る。デバイス(例えばメモリコントローラ155又はコントローラ420)によってクロック及びチップイネーブルを提供するための持続時間(タイムデュレーション)は、ソースデバイスから読み出されるデータの量と、ソースデバイスからデータが読み出される速度又はターゲットデバイスにデータが書き込まれ得る速度とに基づき得る。
ブロック635で、デバイスは、図1〜4に関して先に述べたのと同様に、持続時間の終了後、ソースデバイスとターゲットデバイスへのチップイネーブル及びクロックを無効にし得る。上記持続時間の後、デバイス(メモリコントローラ155又はコントローラ420)は、データが全て転送されたと判定し、第1のメモリデバイス及び第2のメモリデバイスを非選択にし得る。
図7は、本開示の種々の実施形態に係る、共有バスを用いたデバイス間のダイレクトデータ転送のためのフローチャート700の一例を示す。フローチャート700は、共有バスを用いたデバイス間のダイレクトデータ転送の実施形態を示すものであって、図1〜4を参照して先に述べたように、デバイス105、メモリシステム150、又はデバイス405において実施され得る。
或る例では、ブロック705に示されるように、また、図1〜4に関して先に述べたのと同様に、ターゲットデバイス(例えば、不揮発性メモリ165、揮発性メモリ160、又は第2の電子デバイス430)は、コントローラ(例えば、メモリコントローラ155又はコントローラ420)からターゲットアドレスを受信し得る。コントローラは、或る例では、デバイスに関連付けられたチップイネーブルを選択し、デバイスにクロックを提供し、ターゲットデバイスのターゲットアドレスレジスタにターゲットアドレスを設定するためのコマンドを共有バスへ出力し、そしてターゲットアドレスを出力することによって、ターゲットアドレスを送信し得る。種々の例によれば、ターゲットデバイスは、上記コマンドをデコードし、共有バスからのデータをラッチし、そしてこのデータをターゲットアドレスレジスタに記憶し得る。
ブロック710で、ターゲットデバイスは、図1〜4に関して先に述べたのと同様に、コントローラからソースデバイスへ送信された読み出しコマンドをデコードし得る。この読み出しコマンドは、データがソースデバイスから読み出される旨の指示を含み、また、読み出されるデータに対する先頭アドレスを含み得る。ターゲットデバイスは、(例えば動作命令デコーダで)このコマンドをデコードし、共有バスからデータをラッチし、そしてこのデータをターゲットアドレスから記憶し得る。
ブロック715で、ターゲットデバイスは、図1〜4に関して先に述べたのと同様に、上記コマンドに含まれるソースアドレスを無視し得る。上述したように、ターゲットデバイスは、自身のターゲットアドレスがターゲットアドレスレジスタに記憶させるようにしてもよく、このターゲットアドレスは、ソースデバイスにおいてデータが記憶されているソースアドレスとは異なり得る。よって、もしコマンドがソースアドレスを含んでいれば、ターゲットデバイスは、その情報はターゲットデバイスとは無関係であるとして、単にそれを無視してもよい。上述したように、他の例では、コマンドシーケンスはソースアドレスとターゲットアドレスの両方を含んでいてもよく、その場合、ブロック710及び715の動作は組み合わされてもよく、ソースデバイス及びターゲットデバイスの各々が、他方のデバイスに関連したアドレスを無視してもよい。例えば、コマンドシーケンスは、Add1をソースアドレス、Add2をターゲットアドレスとして、<CMDcode|Add1|Add2>の形式であり得る。そのような例では、ソースデバイス及びターゲットデバイスはチップイネーブルで有効にされ、そして、CMDcodeをデコードすることで、どのデバイスがソースデバイスであってどのデバイスがターゲットデバイスなのかを指定し得るようにしてもよい(又は、そのような指定が、前もってなされてもよい)。
ブロック720で、ターゲットデバイスは、図1〜4に関して先に述べたのと同様に、バス上で入手可能な、ソースデバイスからのデータを特定し得る。バス上で入手可能な当該データは、(コントローラによってソースデバイスへ読み出しコマンドが送信されることで)ソースデバイスから共有バスへ転送されたデータであり得る。或る例では、ターゲットデバイスは、ソースアドレスを共有バスへ提供することと関連付けられた所定数のクロックサイクルと、ソースデバイスがソースアドレスに記憶されたデータを検出するのに十分な時間を提供するための所定数のダミーサイクルとを待って、それに続く共有バス上の情報を、ソースデバイスから転送されてきたデータとして特定するようにしてもよい。
ブロック725で、ターゲットデバイスは、図1〜4に関して先に述べたのと同様に、ソースデバイスからバスへ転送されたデータを、ターゲットアドレスから(ターゲットアドレスを先頭にして)記憶し得る。或る例によれば、そのような転送は、次に、ソースデバイス及びターゲットデバイスにクロックが提供される限り、継続され得る。よって、メモリコントローラ等のデバイスは、ソースデバイスから読み出されるデータの量と、ソースデバイスからデータが読み出される速度又はターゲットデバイスへデータが書き込まれる速度とに基づいて、上記クロックを提供する持続時間(タイムデュレーション)を決定してもよい。
従って、方法500、600、及び700は、共有バスを用いたダイレクトデータ転送を提供し得る。なお、方法500、600、及び700は、可能性のある実施について説明したものであり、上記の動作及びステップは並べ替えるようにしてもよく、或いは、その他の実施が可能なように変更されてもよい。或る例では、方法500、600、及び700のうちの2つ以上からの態様を組み合わせてもよい。
方法について記述する。或る例では、この方法は、メモリコントローラで、ターゲットメモリへ転送されるデータに対する、ソースメモリにおけるソースアドレスを特定することを含み得るものであり、ここで、前記メモリコントローラ、前記ソースメモリ、及び前記ターゲットメモリの各々が1つのバスに結合されている。或る例では、この方法は、前記バスを介して前記ソースメモリから前記ターゲットメモリへダイレクトに前記データの転送を開始するために、前記メモリコントローラによって、ターゲットアドレスを前記ターゲットメモリへ送信することを含み得る。或る例では、この方法は、前記ソースメモリから前記バスへデータを読み出すための読み出しコマンドを前記ソースメモリへ送信することを含み得る。
或る例では、この方法は、前記ソースメモリによって、前記ソースアドレスから始まるデータを前記バスへ転送すること、を含み得る。或る例では、前記読み出しコマンドは前記バスを介して前記ソースメモリへ送信され得る。或る例では、この方法は、前記バスを介し前記ターゲットメモリによって前記読み出しコマンドを受信すること、を含み得る。或る例では、この方法は、前記ソースメモリから前記バスへ提供される後続のデータを、前記ターゲットメモリに前記ターゲットアドレスから記憶すること、を含み得る。
或る例では、前記読み出しコマンドは、データ出力命令と前記ソースアドレスとを含み得る。或る例では、この方法は、前記読み出しコマンドを前記データの転送の開始と認識することを含み得る。或る例では、この方法は、前記ソースアドレスを無視することを含み得る。或る例では、この方法は、前記ソースメモリ及び前記ターゲットメモリの各々にチップイネーブル信号を提供することを含み得る。或る例では、この方法は、タイムデュレーション(持続時間)の間中、前記ソースメモリ及び前記ターゲットメモリにクロックを提供することを含み得る。
或る例では、前記タイムデュレーションは、前記ソースメモリから前記ターゲットメモリへ転送されるデータの量に対応する。或る例では、前記バスは、シリアル・ペリフェラル・インターコネクト(SPI)バスを含み得る。或る例では、前記ソースメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含み、前記ターゲットメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含み得る。
方法について記述する。或る例では、この方法は、ターゲットメモリ及びソースメモリに結合されたバスを介して前記ターゲットメモリで受信されるデータを、前記ターゲットメモリに記憶させるためのターゲットアドレスを設定すること、を含み得る。或る例では、この方法は、前記ソースメモリから前記バスへデータを読み出し且つ該データを前記バスから前記ターゲットメモリに記憶するためのコマンドを、前記ソースメモリ及び前記ターゲットメモリの各々へ送信すること、を含み得る。或る例では、前記ターゲットアドレスを設定することは、前記ターゲットアドレスを前記ターゲットメモリのターゲットアドレスレジスタに提供することを含み得る。或る例では、この方法は、前記ターゲットメモリの動作命令デコーダで、前記コマンドを受信すること、を含み得る。或る例では、この方法は、前記ターゲットメモリで、前記コマンドに続いて、前記バスからの前記データの記憶を前記ターゲットアドレスから開始すること、を含み得る。
或る例では、この方法は、前記ソースメモリによって、ソースアドレスで始まるデータを前記バスへ転送すること、を含み得る。或る例では、この方法は、前記ターゲットメモリによって、前記バスからの前記データを記憶すること、を含み得る。或る例では、前記コマンドは、前記ソースメモリ及び前記ターゲットメモリの各々で受信される1つのコマンドシーケンスを含み得る。或る例では、この方法は、前記ソースメモリ及び前記ターゲットメモリの各々にチップイネーブル信号を提供すること、を含み得る。或る例では、この方法は、タイムデュレーションの間中、前記ソースメモリ及び前記ターゲットメモリにクロックを提供すること、を含み得る。
或る例では、前記タイムデュレーションは、前記ソースメモリから前記ターゲットメモリへ転送されるデータの量に対応する。或る例では、前記バスは、シリアル・ペリフェラル・インターコネクト(SPI)バスを含み得る。或る例では、前記ソースメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含み、前記ターゲットメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含み得る。
装置について記述する。或る例では、この装置は、バスに結合された第1の電子デバイスであって、第1のデータ記憶領域を備える第1の電子デバイスを含み得る。或る例では、この装置は、前記バスに結合された第2の電子デバイスであって、第2のデータ記憶領域を備える第2の電子デバイスを含み得る。或る例では、この装置は、前記バスに結合され且つ前記第1の電子デバイス及び前記第2の電子デバイスと電子通信するコントローラを含み、前記コントローラは、前記第1のデータ記憶領域から前記第2のデータ記憶領域へ転送されるデータに対する、前記第1のデータ領域におけるソースアドレスを特定する手段を支持し得る。或る例では、前記コントローラは、前記第2のデータ記憶領域におけるターゲットアドレスを特定する手段を支持し得る。或る例では、前記コントローラは、前記バスを介して前記第1の電子デバイスから前記第2の電子デバイスへダイレクトに前記データの転送を開始する手段を支持し得る。
或る例では、前記第2の電子デバイスはターゲットアドレスレジスタを含み、前記コントローラは、転送される前記データの記憶のための前記ターゲットアドレスを前記ターゲットアドレスレジスタに設定する手段を更に支持し得る。或る例では、前記第2の電子デバイスは、前記データの前記転送を開始するための読み出しコマンドを前記コントローラから受信するように動作可能な動作命令デコーダを含み得る。或る例では、前記コントローラは、前記第1の電子デバイス及び前記第2の電子デバイスの各々にアクセスするための、前記バスとの単一のインタフェースを含み得る。
或る例では、前記コントローラは、前記第1の電子デバイス及び前記第2の電子デバイスの各々にチップイネーブル信号を提供する手段を支持し得る。或る例では、前記コントローラは、前記第1のデータ記憶領域から前記第2のデータ記憶領域へ転送されるデータの量に対応するタイムデュレーションの間中、前記第1の電子デバイス及び前記第2の電子デバイスの各々にクロックを提供する手段を支持し得る。或る例では、前記第1の電子デバイスは不揮発性メモリ又は揮発性メモリのうちの一方を含み、前記第2の電子デバイスは不揮発性メモリ又は揮発性メモリのうちの一方を含み得る。
装置について記述する。或る例では、この装置は、バスに結合されたソースメモリモジュールを含み得る。或る例では、この装置は、前記バスに結合されたターゲットメモリモジュールを含み得る。或る例では、この装置は、前記バスに結合され且つ前記ソースメモリモジュール及び前記ターゲットメモリモジュールと電子通信するコントローラを含み、前記コントローラは、前記バスを介して前記ターゲットメモリモジュールで受信されるデータの記憶のための、前記ターゲットメモリモジュールにおけるターゲットアドレスを設定する手段を支持し得る。或る例では、前記コントローラは、前記ソースメモリモジュールから前記バスへデータを読み出すための読み出しコマンドを、前記ソースメモリモジュールへ送信する手段を支持し得る。或る例では、前記ターゲットメモリモジュールは、前記ソースメモリモジュールから読み出された前記データを前記バスを介してダイレクトに受信するように動作可能である。
或る例では、前記ターゲットメモリモジュールはターゲットアドレスレジスタを含み、前記コントローラは、転送される前記データの記憶のための前記ターゲットアドレスを前記ターゲットアドレスレジスタに設定する手段を支持し得る。或る例では、前記ターゲットメモリモジュールは、前記コントローラから前記読み出しコマンドを受信するように動作可能な動作命令デコーダを含み得る。或る例では、前記コントローラは、前記ソースメモリモジュール及び前記ターゲットメモリモジュールの各々にチップイネーブル信号を提供する手段を支持し得る。或る例では、前記コントローラは、前記ソースメモリモジュールから前記ターゲットメモリモジュールへ転送されるデータの量に対応するタイムデュレーションの間中、前記ソースメモリモジュール及び前記ターゲットメモリモジュールの各々にクロックを提供する手段を支持し得る。或る例では、前記バスは、シリアル・ペリフェラル・インターコネクト(SPI)バスを含み得る。
ここで述べたことは一例を提供するものであって、特許請求の範囲に記載された範囲、応用可能性、又は例を限定するものではない。本開示の範囲から逸脱することなしに、上述した構成要素の機能や配置を変更してもよい。種々の例は、適宜、種々の手順又はコンポーネントを省略、置換、又は追加するものであってもよい。また、或る例に関して述べた特徴を、他の例で組み合わせるようにしてもよい。
ここで添付図面と関連付けて説明したことは例示的な構成を述べたものであって、実施可能な又は特許請求の範囲の主旨内にある全ての例を示したわけではない。ここで使用した「例」及び「典型的な」という用語は、「一例や一実施例としての役割をなす」という意味であって、「好ましい」や「他の例よりも有利な」という意味ではない。詳細な説明は、ここで述べる技術についての理解を提供するために、詳細な具体例を含んでいる。しかし、本開示の技術は、それらの詳細な具体例なしでも実施され得る。或る例では、記述した例の概念を不明瞭にするのを避けるために、周知の構造及びデバイスをブロック図の形で示してある。
添付図面において、同様なコンポーネント又はフィーチャは、同じ参照符号を有し得る。更に、同じタイプの種々のコンポーネントは、参照符号の後に、ダッシュと、同様なコンポーネント間を区別する第2の符号とを付すことによって、区別され得る。第1の参照符号が本明細書中で使用される場合、この記載は、第2の参照符号にかかわらず、同じ第1の参照符号を有する同様なコンポーネントのいずれにも適用され得る。
ここに記載した情報及び信号は、様々な異なる技術や技法のうちのいずれかを用いて表され得る。例えば、これまでの記載の全体に渡って参照された、データ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場又は磁気粒子、光場又は光粒子、或いはそれらの任意の組み合わせによって表され得る。或る図は、信号を1つの信号として示してもよいが、当業者であれば、その信号は信号のバス(ここで、バスは種々のビット幅を有している)を表し得る、と理解するであろう。
「電子通信」という用語は、コンポーネント間の電子の流れを支持する、コンポーネント間の関係を表している。これは、コンポーネント間の直接的な接続を含み、或いは、それらの中間のコンポーネントを含んでもよい。電子通信しているコンポーネントは、(例えば、通電された回路内で)電子又は信号を動的に交換したり、或いは、(通電されていない回路内で)電子又は信号を動的に交換しないものであってよいが、回路に通電されることに応じて電子又は信号を交換するように構成されるか又はそのように動作可能であり得る。一例として、スイッチ(例えばトランジスタ)を介して物理的に接続された2つのコンポーネントは、当該スイッチの状態(すなわち、開状態又は閉状態)にかかわらず、電子通信している。
ここで論じられたデバイスは、シリコン、ゲルマニウム、シリコン−ゲルマニウム合金、砒化ガリウム、窒化ガリウム等のような半導体基板上に形成されてもよい。或る場合には、基板は半導体ウェハである。他の場合には、基板は、シリコン−オン−グラス(SOG)又はシリコン−オン−サファイア(SOP)等のシリコン−オン−インシュレータ(SOI)基板であってもよく、或いは、他の基板上の半導体材料のエピキシャル層であってもよい。基板又はその部分領域の導電性は、リン、ホウ素、又は砒素を含むがこれらには限定されない種々の化学種を用いてドーピングすることによって、制御され得る。ドーピングは、基板の初期の形成又は成長中に、イオン注入又はその他の任意のドーピング手段によって行い得る。
ここでの開示に関連して記載された種々の例示的なブロック、コンポーネント、及びモジュールは、ここに記載された機能を実行するように設計された、汎用プロセッサ、DS
P、ASIC、FPGA又はその他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジック、ディスクリートハードウェアコンポーネント、或いはそれらの任意の組み合わせを用いて、実施又は実行され得る。汎用プロセッサは、マイクロプロセッサであってもよいが、それに代えて、プロセッサは、いずれかの従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであってもよい。プロセッサは、また、コンピューティングデバイスの組み合わせ(例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと共同動作する1つ以上のマイクロプロセッサ、又は任意の他の同様な構成)として実施されてもよい。
ここに記載された機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実施され得る。プロセッサによって実行されるソフトウェアにおいて実施される場合には、その機能は、コンピュータ読み取り可能媒体上の1つ以上の命令又はコードとして、記憶されるか又は送信され得る。その他の例及び実施は、本開示及び特許請求の範囲の範囲内である。例えば、ソフトウェアの性質上、上述した機能は、プロセッサによって実行されるソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、又はそれらのいずれかの組み合わせを用いて実施可能である。機能を実施するフィーチャも、種々の位置に物理的に配置されてよく、それは、機能の一部がそれぞれ異なる物理的位置で実施されるように分布されることを含む。また、特許請求の範囲を含む本明細書中で使用されているように、項目のリスト(例えば、「・・・のうちの少なくとも1つ」又は「・・・のうちの1つ以上」のようなフレーズによって始まる項目のリスト)中で使用される「又は」は、包括的なリストを示しており、例えば、A、B、又はCのうちの少なくとも1つというリストは、A、又はB、又はC、又はAとB、又はAとC、又はBとC、又はAとBとC(すなわち、A及びB及びC)を意味する。
コンピュータ読み取り可能媒体は、非一時的コンピュータ記憶媒体と、コンピュータプログラムを或る場所から他の場所へ転送可能にする何らかの媒体を含む通信媒体との両方を含む。非一時的記憶媒体は、汎用の又は特定用途向けのコンピュータによってアクセス可能な、何らかの利用可能な媒体であってよい。一例として、非一時的コンピュータ読み取り可能媒体は、RAM、ROM、電気的消去可能なプログラマブルリードオンリメモリ(EEPRPM)、コンパクトディスク(CD)ROM又はその他の光ディスク記憶デバイス、磁気ディスク記憶デバイス又はその他の磁気記憶デバイス、或いは、所望のプログラムコード手段を命令又はデータ構造の形式で担持し又は記憶するように使用可能であって、かつ、汎用又は特定用途向けのコンピュータや汎用又は特定用途向けのプロセッサによってアクセス可能である他の非一時的媒体を含み得るが、これらに限定されない。
また、何らかの接続が、適切にコンピュータ読み取り可能媒体と呼ばれる。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、又は、赤外、高周波、マイクロ波等の無線技術を用いて、ウェブサイト、サーバ、又はその他のリモートソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、又は、赤外、高周波、マイクロ波等の無線技術が、上記媒体の定義に含まれる。ここで使用されるディスク(disk及びdisc)は、CD、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピディスク、及びブルーレイディスクを含み、これらのディスクは、通常、データを磁気的に再生したり、データをレーザで光学的に再生したりする。それらの組み合わせも、コンピュータ読み取り可能媒体の範囲内に含まれ得る。
ここに述べたことは、当業者が本開示を実施又は使用することを可能にするために提供される。本開示に対する種々の変更は、当業者にとって容易になし得るものであり、ここに定義された一般的な原理も、本開示の範囲から逸脱することなく、他の変形例に適用され得る。従って、本開示は、ここに述べた例や設計に限定されるべきものではなく、ここに述べた原理及び新規な特徴と矛盾しない最も広い範囲が本開示に認められるべきである。
100 システム
105 デバイス
110 プロセッサ
115 BIOSコンポーネント
120 周辺コンポーネント
125 入力/出力制御コンポーネント
135 入力
140 出力
150、150−a メモリシステム
155、155−a メモリコントローラ
160、160−a 揮発性メモリ
165、165−a 不揮発性メモリ
170、170−a 共有バス
200 システム
205 第1の動作命令デコーダ
210 第1のターゲットアドレスレジスタ
215 揮発性メモリアレイ
220 第1のチップイネーブル
225 第2の動作命令デコーダ
230 第2のターゲットアドレスレジスタ
235 不揮発性メモリアレイ
240 第2のチップイネーブル
245 メモリマネージャ
246 第1のチップイネーブルライン
250 第2のチップイネーブルライン
255 CEマネージャ
260 クロック
400 システム
405 デバイス
410 入力
415 出力
420 コントローラ
425 第1の電子デバイス
430 第2の電子デバイス
435 入力/出力制御コンポーネント
440 他のコンポーネント
450 第1のデータ記憶領域
455 チップイネーブル/クロック入力
460 第2のデータ記憶領域
465 チップイネーブル/クロック入力

Claims (20)

  1. メモリコントローラで、ターゲットメモリへ転送されるデータに対する、ソースメモリにおけるソースアドレスを特定することであって、前記メモリコントローラ、前記ソースメモリ、及び前記ターゲットメモリの各々がバスに結合されている、ことと、
    前記メモリコントローラによって、前記ソースアドレスを特定することに少なくとも部分的に基づいて、前記ターゲットメモリに関連付けられたアドレスレジスタにターゲットアドレスを設定することと、
    前記メモリコントローラによって、少なくとも前記ソースアドレスを含むコマンドを前記バスを介して送信することであって、前記コマンドを送信することは、前記バスを介して前記ソースメモリから前記ターゲットメモリの前記ターゲットアドレスへダイレクトに前記データを転送することを開始し、前記コマンドは、前記ソースメモリでの読み出し動作と前記ターゲットメモリでの書き込み動作とを指示するコマンドシーケンスを含み、前記読み出し動作の少なくとも一部分及び前記書き込み動作の少なくとも一部分が同時に行われる、ことと、
    を含む方法。
  2. 前記ソースメモリによって、前記ソースアドレスで始まるデータを前記バスへ転送すること、を更に含む請求項1に記載の方法。
  3. 前記コマンドは前記バスを介して前記ソースメモリへ送信され、前記方法は、
    前記バスを介し前記ターゲットメモリによって前記コマンドを受信することと、
    前記ソースメモリから前記バスへ提供される後続のデータを、前記ターゲットメモリに前記ターゲットアドレスから記憶することと、
    を更に含む、請求項2に記載の方法。
  4. 前記コマンドは、データ出力命令と前記ソースアドレスとを含み、前記ターゲットメモリによって前記コマンドを受信することは、
    前記コマンドを前記データの転送の開始と認識することと、
    前記ソースアドレスを無視することと、
    を含む、請求項3に記載の方法。
  5. 前記コマンドを送信することは、
    前記ソースメモリ及び前記ターゲットメモリの各々にチップイネーブル信号を提供することと、
    タイムデュレーションの間、前記ソースメモリ及び前記ターゲットメモリにクロックを提供することと、
    を更に含む、請求項1に記載の方法。
  6. 前記タイムデュレーションは、前記ソースメモリから前記ターゲットメモリへ転送されるデータの量に対応する、請求項5に記載の方法。
  7. 前記バスは、シリアル・ペリフェラル・インターコネクト(SPI)バスを含む、請求項1に記載の方法。
  8. 前記ソースメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含み、前記ターゲットメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含む、請求項1に記載の方法。
  9. バスに結合されたソースメモリと、
    前記バスに結合されたターゲットメモリと、
    前記ターゲットメモリに関連付けられたアドレスレジスタと、
    前記バスに結合されたメモリコントローラと、
    を備えた装置であって、
    前記メモリコントローラは、
    前記ターゲットメモリへ転送されるデータに対して、前記ソースメモリにおけるソースアドレスを特定することと、
    前記ソースアドレスを特定することに少なくとも部分的に基づいて、前記アドレスレジスタにターゲットアドレスを設定することと、
    少なくとも前記ソースアドレスを含むコマンドを前記バスを介して送信することであって、前記コマンドを送信することは、前記バスを介して前記ソースメモリから前記ターゲットメモリの前記ターゲットアドレスへダイレクトに前記データを転送することを開始し、前記コマンドは、前記ソースメモリでの読み出し動作と前記ターゲットメモリでの書き込み動作とを指示するコマンドシーケンスを含み、前記読み出し動作の少なくとも一部分及び前記書き込み動作の少なくとも一部分が同時に行われる、ことと、
    を行うように動作可能である、装置。
  10. 前記ソースメモリは、前記ソースアドレスで始まるデータを前記バスへ転送するように動作可能である、請求項9に記載の装置。
  11. 前記メモリコントローラは、前記コマンドを前記バスを介して前記ソースメモリへ送信するように構成され、
    前記ソースメモリは、前記コマンドを前記バスを介して受信するように構成され、
    前記ターゲットメモリは、前記ソースメモリから前記バスへ提供される後続のデータを記憶するように構成される、請求項10に記載の装置。
  12. 前記コマンドは、データ出力命令と前記ソースアドレスとを含み、前記ターゲットメモリは、前記コマンド中の前記ソースアドレスを無視することに少なくとも部分的に基づき、前記後続のデータを記憶するように構成される、請求項11に記載の装置。
  13. 前記メモリコントローラは、
    前記ソースメモリ及び前記ターゲットメモリの各々にチップイネーブル信号を提供し、かつ、
    タイムデュレーションの間、前記ソースメモリ及び前記ターゲットメモリにクロックを提供する、
    ように動作可能である、請求項9に記載の装置。
  14. 前記タイムデュレーションは、前記ソースメモリから前記ターゲットメモリへ転送されるデータの量に対応する、請求項13に記載の装置。
  15. 前記バスは、シリアル・ペリフェラル・インターコネクト(SPI)バスを含む、請求項9に記載の装置。
  16. 前記ソースメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含み、前記ターゲットメモリは不揮発性メモリ又は揮発性メモリのうちの一方を含む、請求項9に記載の装置。
  17. ターゲットメモリで受信されるデータを記憶するための、該ターゲットメモリ内のアドレスを設定することと、
    前記ターゲットメモリ内の前記アドレスを設定することに少なくとも部分的に基づいて、ソースメモリ及び前記ターゲットメモリの両方へ、前記ソースメモリからの前記データを前記ターゲットメモリに記憶するための単一のコマンドシーケンスを送信することであって、前記単一のコマンドシーケンスは、前記ソースメモリでの第1の動作と前記ターゲットメモリでの第2の動作とを指示する、ことと、
    を含む方法。
  18. 前記単一のコマンドシーケンスは、前記ソースメモリからバスへデータを読み出す指示を含み、該バスは、前記ターゲットメモリ及び前記ソースメモリに結合されている、請求項17に記載の方法。
  19. 前記単一のコマンドシーケンスは、前記ソースメモリ及び前記ターゲットメモリの両方で受信される、請求項17に記載の方法。
  20. 前記第1の動作は、前記ソースメモリでの読み出し動作を含み、前記第2の動作は、前記ターゲットメモリでの書き込み動作を含み、前記読み出し動作及び前記書き込み動作が同時に行われる、請求項17に記載の方法。
JP2021000656A 2015-10-30 2021-01-06 共有バス上の複数のデバイスのためのデータ転送技術 Active JP7111849B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022115962A JP2022132562A (ja) 2015-10-30 2022-07-21 共有バス上の複数のデバイスのためのデータ転送技術

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/928,988 2015-10-30
US14/928,988 US10162558B2 (en) 2015-10-30 2015-10-30 Data transfer techniques for multiple devices on a shared bus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018521830A Division JP2019500669A (ja) 2015-10-30 2016-10-26 共有バス上の複数のデバイスのためのデータ転送技術

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022115962A Division JP2022132562A (ja) 2015-10-30 2022-07-21 共有バス上の複数のデバイスのためのデータ転送技術

Publications (2)

Publication Number Publication Date
JP2021068463A true JP2021068463A (ja) 2021-04-30
JP7111849B2 JP7111849B2 (ja) 2022-08-02

Family

ID=58631094

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2018521830A Pending JP2019500669A (ja) 2015-10-30 2016-10-26 共有バス上の複数のデバイスのためのデータ転送技術
JP2021000656A Active JP7111849B2 (ja) 2015-10-30 2021-01-06 共有バス上の複数のデバイスのためのデータ転送技術
JP2022115962A Pending JP2022132562A (ja) 2015-10-30 2022-07-21 共有バス上の複数のデバイスのためのデータ転送技術

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018521830A Pending JP2019500669A (ja) 2015-10-30 2016-10-26 共有バス上の複数のデバイスのためのデータ転送技術

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022115962A Pending JP2022132562A (ja) 2015-10-30 2022-07-21 共有バス上の複数のデバイスのためのデータ転送技術

Country Status (7)

Country Link
US (5) US10162558B2 (ja)
EP (1) EP3368991A4 (ja)
JP (3) JP2019500669A (ja)
KR (2) KR102189018B1 (ja)
CN (2) CN108369563B (ja)
TW (1) TWI645294B (ja)
WO (1) WO2017075073A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10502622B2 (en) * 2016-06-30 2019-12-10 U.S.A. As Represented By The Administrator Of The National Aeronautics And Space Administration Detector control and data acquisition with custom application specific integrated circuit (ASIC)
US20180039596A1 (en) * 2016-08-04 2018-02-08 Qualcomm Incorporated Supporting internal resistive memory functions using a serial peripheral interface (spi)
CN109791522B (zh) * 2017-09-05 2021-01-15 华为技术有限公司 数据迁移的方法、系统及智能网卡
US10877678B2 (en) * 2018-05-17 2020-12-29 Micron Technology, Inc. Selection component that is configured based on an architecture associated with memory devices
KR102585883B1 (ko) * 2018-09-18 2023-10-10 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 메모리 시스템
US11670123B2 (en) 2018-10-03 2023-06-06 Micron Technology, Inc. Automatic collection of autonomous vehicle logging data
US11086803B2 (en) * 2018-10-05 2021-08-10 Micron Technology, Inc. Dynamically configuring transmission lines of a bus
US11182986B2 (en) * 2018-10-10 2021-11-23 Micron Technology, Inc. Real-time selection of data to collect in autonomous vehicle
US11126251B2 (en) * 2019-03-01 2021-09-21 Micron Technology, Inc. Power management in memory
US10936234B2 (en) * 2019-05-22 2021-03-02 Macronix International Co., Ltd. Data transfer between memory devices on shared bus
US11003384B2 (en) 2019-08-30 2021-05-11 Micron Technology, Inc. Scheduling media management operations based on determined host system usage requirements
US11301132B2 (en) 2019-08-30 2022-04-12 Micron Technology, Inc. Scheduling media management operations based on provided host system usage requirements
US11392547B2 (en) 2020-04-09 2022-07-19 Micron Technology, Inc. Using prefix-delete operations for data containers
US11893276B2 (en) * 2020-05-21 2024-02-06 Micron Technology, Inc. Apparatuses and methods for data management in a memory device
US20220121612A1 (en) * 2020-10-20 2022-04-21 Micron Technology, Inc. Static identifiers for a synchronous interface
CN113282239A (zh) * 2021-05-21 2021-08-20 维沃移动通信有限公司 数据迁移方法、存储器及控制器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001509941A (ja) * 1998-03-25 2001-07-24 レクサー・メディア・インコーポレイテッド 外部ラッチを持たないフラッシュメモリレベリングアーキテクチャ
US20080140914A1 (en) * 2006-12-07 2008-06-12 Tae-Keun Jeon Memory System and Data Transfer Method Thereof
JP2008524748A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレイション メモリシステムにおけるデータ再配置
US20110126066A1 (en) * 2009-11-25 2011-05-26 Samsung Electronics Co., Ltd. Multi-chip memory system and related data transfer method
JP2015056105A (ja) * 2013-09-13 2015-03-23 株式会社東芝 不揮発性半導体記憶装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US6219725B1 (en) * 1998-08-28 2001-04-17 Hewlett-Packard Company Method and apparatus for performing direct memory access transfers involving non-sequentially-addressable memory locations
TW515949B (en) * 2000-06-08 2003-01-01 Via Tech Inc Method for scheduling run sequence of read and write requests
US6678758B2 (en) * 2001-02-05 2004-01-13 Fujitsu Limited Dynamic queuing for read/write requests
JP4017177B2 (ja) 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
CA2420791A1 (en) 2001-03-02 2003-02-05 Infineon Technologies Ag Method of storing a quantity of data in a target memory location and storage system
US20050138233A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Direct memory access control
KR100695890B1 (ko) * 2004-10-29 2007-03-19 삼성전자주식회사 멀티 칩 시스템 및 그것의 데이터 전송 방법
EP1932158A4 (en) * 2005-09-30 2008-10-15 Mosaid Technologies Inc MEMORY WITH OUTPUT CONTROL
US7652922B2 (en) * 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US7506132B2 (en) * 2005-12-22 2009-03-17 International Business Machines Corporation Validity of address ranges used in semi-synchronous memory copy operations
WO2008131058A2 (en) 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US7564391B2 (en) * 2007-11-28 2009-07-21 Texas Instruments Incorporated Sigma delta modulator summing input, reference voltage, and feedback
US8219778B2 (en) * 2008-02-27 2012-07-10 Microchip Technology Incorporated Virtual memory interface
WO2010032226A2 (en) * 2008-09-22 2010-03-25 Nxp B.V. Data processing system comprising a monitor
US8255674B2 (en) * 2009-01-28 2012-08-28 International Business Machines Corporation Implied storage operation decode using redundant target address detection
TWI394050B (zh) 2009-09-29 2013-04-21 Hon Hai Prec Ind Co Ltd 基於串列週邊介面匯流排的設備及其資料傳輸方法
US8938589B2 (en) * 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
WO2013139015A1 (en) * 2012-03-22 2013-09-26 Intel Corporation Hybrid emulation and kernel function processing systems and methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001509941A (ja) * 1998-03-25 2001-07-24 レクサー・メディア・インコーポレイテッド 外部ラッチを持たないフラッシュメモリレベリングアーキテクチャ
JP2008524748A (ja) * 2004-12-21 2008-07-10 サンディスク コーポレイション メモリシステムにおけるデータ再配置
US20080140914A1 (en) * 2006-12-07 2008-06-12 Tae-Keun Jeon Memory System and Data Transfer Method Thereof
US20110126066A1 (en) * 2009-11-25 2011-05-26 Samsung Electronics Co., Ltd. Multi-chip memory system and related data transfer method
JP2015056105A (ja) * 2013-09-13 2015-03-23 株式会社東芝 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
US20240103748A1 (en) 2024-03-28
US11762570B2 (en) 2023-09-19
US10671310B2 (en) 2020-06-02
KR102071454B1 (ko) 2020-01-30
US20170123715A1 (en) 2017-05-04
US20180136873A1 (en) 2018-05-17
CN108369563A (zh) 2018-08-03
JP2022132562A (ja) 2022-09-08
TW201719430A (zh) 2017-06-01
TWI645294B (zh) 2018-12-21
KR20180064542A (ko) 2018-06-14
WO2017075073A1 (en) 2017-05-04
JP2019500669A (ja) 2019-01-10
EP3368991A4 (en) 2019-07-31
CN108369563B (zh) 2021-07-30
US20200326875A1 (en) 2020-10-15
CN113407473A (zh) 2021-09-17
US10635342B2 (en) 2020-04-28
EP3368991A1 (en) 2018-09-05
KR20200011587A (ko) 2020-02-03
US20190138238A1 (en) 2019-05-09
KR102189018B1 (ko) 2020-12-10
JP7111849B2 (ja) 2022-08-02
US10162558B2 (en) 2018-12-25

Similar Documents

Publication Publication Date Title
JP2021068463A (ja) 共有バス上の複数のデバイスのためのデータ転送技術
US9740431B2 (en) Memory controller and method for interleaving DRAM and MRAM accesses
KR100868393B1 (ko) 비휘발성 메모리 제어기 및 휘발성 메모리에 액세스하는방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리
US20160139807A1 (en) Write flow control for memory modules that include or interface with non-compliant memory technologies
KR20170068719A (ko) 반도체장치 및 반도체시스템
TW201039347A (en) A SRAM compatible embedded DRAM system with hidden refresh and dual port capability
US11763861B2 (en) Reduced pin status register
JP2019053727A (ja) メモリ装置、及びそれを含むメモリシステム
WO2015116135A1 (en) Reducing read latency of memory modules
US11972144B2 (en) Dynamic status registers array
CN105989884B (zh) 半导体存储装置及其操作方法
TW202347110A (zh) 用於包括通過記憶體介面的交替記憶體存取操作的方法、裝置和系統
US8971135B2 (en) Semiconductor memory device receiving data in response to data strobe signal, memory system including the same and operating method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220607

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220721

R150 Certificate of patent or registration of utility model

Ref document number: 7111849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150