JP2018514867A - Dspエンジンおよび改良されたコンテキストスイッチ能力を有する中央処理ユニット - Google Patents

Dspエンジンおよび改良されたコンテキストスイッチ能力を有する中央処理ユニット Download PDF

Info

Publication number
JP2018514867A
JP2018514867A JP2017553983A JP2017553983A JP2018514867A JP 2018514867 A JP2018514867 A JP 2018514867A JP 2017553983 A JP2017553983 A JP 2017553983A JP 2017553983 A JP2017553983 A JP 2017553983A JP 2018514867 A JP2018514867 A JP 2018514867A
Authority
JP
Japan
Prior art keywords
dsp
context
integrated circuit
circuit device
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017553983A
Other languages
English (en)
Other versions
JP2018514867A5 (ja
Inventor
マイケル キャザーウッド,
マイケル キャザーウッド,
デイビッド ミッキー,
デイビッド ミッキー,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip 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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of JP2018514867A publication Critical patent/JP2018514867A/ja
Publication of JP2018514867A5 publication Critical patent/JP2018514867A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

集積回路デバイスは、デジタル信号処理(DSP)エンジンを含む第1の中央処理ユニットと、複数のコンテキストであって、各コンテキストは、複数のレジスタを伴うCPUコンテキストと、DSPコンテキストとを有し、DSPコンテキストは、制御ビットと、複数のDSPレジスタとを有し、集積回路デバイスのリセット後、全てのDSPコンテキストの制御ビットは、DSPコンテキストの制御ビットに書き込まれたデータが、全ての他のDSPコンテキストの個別の制御ビットに書き込まれるように、ともにリンクされ、他のコンテキストへのコンテキストスイッチおよび別のDSPコンテキストの制御ビットの少なくとも1つの修正後のみ、別のコンテキストの制御ビットは、リンクから切り離され、DSPコンテキストの独立制御ビットを形成する、コンテキストとを有する。

Description

(関連特許出願)
本願は、2015年4月30日に出願された共有に係る米国仮特許出願第62/154,993号に対する優先権を主張するものであり、該米国仮特許出願は、あらゆる目的のために本明細書中に援用される。
(技術分野)
本開示は、中央処理ユニット(CPU)に関し、特に、CPUおよび集積デジタル信号処理エンジン(DSP)を伴うマイクロコントローラに関する。
(背景)
内蔵システムは、中央処理ユニット(CPU)と、メモリと、複数の周辺デバイスとを備え、シングルチップシステムまたはシングルチップマイクロコントローラを形成する。CPUはさらに、本願の譲受人によって製造されたdsPICコア等のデジタル信号処理能力を有するように拡張されてもよい。例えば、図1Aに示されるように、処理ユニットは、本願の譲受人によって製造されたdsPICコア等の付加的デジタル信号処理(DSP)エンジンを伴う、CPUを備えてもよい。詳細な情報は、例えば、参照することによって本明細書に組み込まれる、Microchip Technologies Inc.によって2006年に公開されたデータシートDS70049Cである、参照マニュアル「dsPIC30F Family Reference Manual」から入手可能である。
図から分かるように、本コアは、X Data RAMおよび別個のY Data RAM等の典型的デジタル信号処理能力と、RAMの両方が並行してアクセスされ得るように、RAMおよびレジスタファイルと結合されるDSPエンジンとを有する。本処理コアの他の典型的要素も、示される。DSPエンジン自体は、別個のコアではない。むしろ、DSPエンジンは、付加的DSP典型的命令を用いてCPUを拡張する。加えて、本従来のDSP拡張マイクロコントローラは、図1Aの下に、システムバスを通してコアと結合されるある周辺デバイスを示す。図1Bは、図1Aのブロック図のDSPエンジンのより詳細なブロック図を示す。図1Aおよび図1Bに示される処理コアは、デジタル信号処理能力を備える、シングル処理コアである。コアのうちの1つとしてマルチコアデバイス内で使用されることもできる。
そのようなデバイスの改良されたコンテキストスイッチ能力の必要性が存在する。
ある実施形態によると、集積回路デバイスは、デジタル信号処理(DSP)エンジンを含む、第1の中央処理ユニットと、複数のコンテキストであって、各コンテキストは、複数のレジスタを備えるCPUコンテキストと、DSPコンテキストとを備え、DSPコンテキストは、制御ビットと、複数のDSPレジスタとを備え、集積回路デバイスのリセット後、全てのDSPコンテキストの制御ビットは、DSPコンテキストの制御ビットに書き込まれているデータが、全ての他のDSPコンテキストの個別の制御ビットに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび別のDSPコンテキストの制御ビットのうちの少なくとも1つの修正後のみ、別のコンテキストの制御ビットは、リンクから切り離され、DSPコンテキストの独立制御ビットを形成する、コンテキストとを備えてもよい。
さらなる実施形態によると、制御ビットは、制御レジスタの一部であることができる。さらなる実施形態によると、制御レジスタは、DSPコンテキストの一部ではなく、リンクされない、非DSPビットを備えてもよい。さらなる実施形態によると、集積回路デバイスのリセット後、DSPコンテキストの全てのレジスタは、DSPコンテキストの1つのレジスタに書き込まれているデータが、全ての他のDSPコンテキストの個別のレジスタに書き込まれるように、ともにリンクされることができ、別のコンテキストへのコンテキストスイッチおよび別のDSPコンテキストの制御レジスタの修正後のみ、別のコンテキストのレジスタは、リンクから切り離され、DSPコンテキストの独立レジスタを形成する。さらなる実施形態によると、DSPコンテキストレジスタは、DSPエンジンのステータスを示す、ステータスレジスタの少なくとも所定の数のビットを備えてもよい。さらなる実施形態によると、複数のDSPレジスタは、少なくとも1つのアキュムレータを備えてもよい。さらなる実施形態によると、複数のDSPレジスタは、DSPエンジンのために使用されるCPUコンテキストの一部ではない、少なくとも1つのワーキングレジスタを備えてもよい。さらなる実施形態によると、複数のDSPレジスタは、CPUコンテキストの一部ではない、少なくとも1つのさらなるワーキングレジスタを備えてもよい。さらなる実施形態によると、制御ビットは、DSPエンジンを制御および構成するように動作可能なDSPエンジン制御レジスタの一部であることができる。さらなる実施形態によると、DSPエンジン制御レジスタは、ループ制御ビットと、アキュムレータ制御ビットと、少なくとも1つの乗算器制御ビットとを備えてもよい。さらなる実施形態によると、DSPエンジン制御レジスタはさらに、CPUインタラプトプライオリティ制御ビットを備えてもよい。さらなる実施形態によると、DSPエンジン制御レジスタは、プログラム空間可視性制御ビットを備えてもよい。さらなる実施形態によると、コンテキストスイッチ後の少なくとも1つのアキュムレータの修正は、関連付けられたDSPコンテキストの切り離しをトリガしない。さらなる実施形態によると、DSPコンテキストの切り離し後、集積回路デバイスの後続リセットは、再び、全てのDSP制御ビットをリンクさせてもよい。さらなる実施形態によると、集積回路デバイスはさらに、第2の中央処理ユニットを備えてもよい。さらなる実施形態によると、第2の中央処理ユニットは、マスタとして動作し、第1の中央処理ユニットは、スレーブとして動作する。さらなる実施形態によると、第1の中央処理ユニットは、集積回路デバイスの第1のマイクロコントローラユニットの処理ユニットであって、第2の中央処理ユニットは、集積回路デバイスの第2のマイクロコントローラユニットの処理ユニットである。さらなる実施形態によると、第1のマイクロコントローラユニットは、第2のマイクロコントローラユニットおよびランダムアクセスプログラムメモリを結合するインターフェースを通して第2の中央処理ユニットによってロードされるように構成される、ランダムアクセスプログラムメモリを備える。
別の実施形態によると、デジタル信号処理(DSP)エンジンを含む、第1の中央処理ユニットを備える、集積回路デバイスを動作させるための方法は、複数のコンテキストを提供するステップであって、各コンテキストは、CPUコンテキストと、DSPコンテキストとを備え、DSPコンテキストは、制御ビットと、複数のDSPレジスタとを備える、ステップと、集積回路デバイスをリセットするステップであって、リセットは、現在のDSP制御ビットに書き込まれているデータが、全ての他のDSPコンテキストの制御ビットに書き込まれるように、全てのDSPコンテキストの制御ビットをともにリンクさせる、ステップと、別のコンテキストにスイッチングし、別のコンテキストのDSPコンテキストの少なくとも1つの制御ビットを修正するステップであって、別のコンテキストの制御ビットは、リンクから切り離され、独立制御ビットを形成する、ステップとを含んでもよい。
本方法のさらなる実施形態によると、制御ビットは、制御レジスタの一部であることができる。本方法のさらなる実施形態によると、制御レジスタは、DSPコンテキストの一部ではなく、リンクされない、非DSPビットを備えてもよい。本方法のさらなる実施形態によると、集積回路デバイスのリセット後、DSPコンテキストの全てのレジスタは、DSPコンテキストの1つのレジスタに書き込まれているデータが、全ての他のDSPコンテキストの個別のレジスタに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび別のDSPコンテキストの制御レジスタの修正後のみ、別のコンテキストのレジスタは、リンクから切り離され、DSPコンテキストの独立レジスタを形成する。本方法のさらなる実施形態によると、DSPコンテキストは、DSPエンジンのステータスを示す、ステータスレジスタの少なくとも所定の数のビットを備えてもよい。本方法のさらなる実施形態によると、DSPコンテキストは、少なくとも1つのアキュムレータを備える。本方法のさらなる実施形態によると、DSPコンテキストは、CPUコンテキストの一部ではない、DSPエンジンのために使用される少なくとも1つのワーキングレジスタを備えてもよい。本方法のさらなる実施形態によると、DSPコンテキストは、CPUコンテキストの一部ではない、少なくとも1つのさらなるワーキングレジスタを備えてもよい。本方法のさらなる実施形態によると、本方法はさらに、該制御ビットを備える制御レジスタを用いてDSPエンジンを制御するステップを含んでもよい。本方法のさらなる実施形態によると、コンテキストスイッチ後の少なくとも1つのアキュムレータの修正は、関連付けられたDSPコンテキストの切り離しをトリガしない。本方法のさらなる実施形態によると、DSPコンテキストの切り離し後、集積回路デバイスの後続リセットは、再び、全てのDSP制御ビットをリンクさせる。
図1Aは、従来のDSP拡張マイクロコントローラのブロック図を示す。 図1Aは、従来のDSP拡張マイクロコントローラのブロック図を示す。 図1Bは、DSPエンジンの詳細を示す。 図2は、種々の実施形態による、プログラマモデルを示す。 図2は、種々の実施形態による、プログラマモデルを示す。 図3は、種々の実施形態による、コア制御レジスタを示す。 図3は、種々の実施形態による、コア制御レジスタを示す。 図4は、複数のDSPコンテキストの第1の例示的構成を示す。 図5は、複数のDSPコンテキストの第2の例示的構成を示す。 図6は、種々の実施形態による、デュアルコアマイクロコントローラを示す。
dsPIC33ファミリ等のDSP能力を伴う従来のマイクロコントローラは、全てのDSP動作が1つのみのコンテキスト内で行われるであろうと仮定して、CPU W−レジスタに限定される、CPUコンテキストスイッチングを提供する。デバイスの性能増加に伴って、システムの複雑性が増すにつれて、全てのDSPコンテキストのためのDSPエンジン構成が常時一貫していない場合がある、マルチDSPコンテキスト内でDSPアプリケーションコードをサポートする必要がある。DSPエンジン構成が一貫していると仮定されるであろう、1つを上回るコンテキスト内でDSPコードを実行するために、dsPICデバイス内に組み込まれたDSPエンジン等の処理デバイス内の別個のDSPエンジンの必要がある。バックワードコード互換性を維持するために、同一使用モデルにデフォルトの高度な手段が、要求される。
種々の実施形態によると、シングルまたはマルチコア、特に、デュアルコア、マイクロコントローラのための各コンテキスト内の独立DSPエンジン構成を用いて、DSPコンテキストスイッチングを追加する方法およびデバイスが、バックワードコード互換性を損なわずに、提供されることができる。
種々の実施形態によると、DSPコンテキストが、既存のコンテキストスイッチング機構に追加され、独立DSPコンテキスト構成のためのサポートが、提供される。加えて、1つを上回るコンテキストにおいてすでにDSPコードを実行している、既存のアプリケーションコードとのバックワード互換性が、維持されることができる(同一DSPエンジン構成を使用して)。
ある実施形態によると、インタラプトベースの透過性ハードウェアコンテキストスイッチングが、提供される。本アーキテクチャは、DSPコンテキストとの従来のCPUコンテキストスイッチを拡大する。したがって、DSPコンテキストは、基本的に、CPUコンテキストに追加される。いくつかの実施形態によると、コンテキストスイッチングは、例外処理の間、バックグラウンドで生じる(すなわち、ゼロオーバーヘッドを伴う)。言い換えると、CPUは、コンテキストを保存するために、任意の付加的命令を実行する必要がない。これは、並列DSPプロセスを用いて、アプリケーションにおけるコンテキストスイッチング時間を大幅に短縮させ得る。DSPエンジン構成は、したがって、各コンテキストにおいて異なり得る。
図2は、レジスタファイル210およびDSPエンジンのアキュムレータ220のワーキングレジスタならびに図1Aに示されるようなDSPコアにおいて使用されるような他の典型的DSPレジスタ等のコアのレジスタを示す。例えば、図2は、データテーブルページアドレスレジスタ230と、Xデータ空間読取ページアドレスレジスタ232と、Xデータ空間書込ページアドレスレジスタ234と、Yページアドレスレジスタ236と、反復ループカウンタレジスタ238と、Doループレジスタ240と、ステータスレジスタ250とを示す。加えて、図2は、種々の実施形態による拡張を示す。
dsPICコアにおいて実装されるもの等のDSPエンジンを伴う従来の処理コアは、レジスタW0からW3と、図2に示されないスタック上での例外処理の間にスタックされる、図2ではSRLとして示される、ステータスレジスタ250の下位部分252(LSバイト)とを含む、CPUコンテキストを備える。レジスタW0からW3に関して、複数の付加的シャドウレジスタ212が、コンテキスト毎に提供されてもよい。
改良されたCPU/DSPコンテキストは、従来のCPUコンテキスト(シャドウレジスタ212)に加え、DSPコンテキストを含む。したがって、組み合わせられたCPU/DSPコンテキストは、例えば、付加的コンテキストレジスタファイル214が提供される、レジスタW0からW14と、付加的コンテキストアキュムレータ222が提供される、アキュムレータAccA、AccB220と、付加的コンテキストレジスタ256が提供される、ビットOA、OB、SA、SB、OAB、およびSABを伴う上位部分254を含む、ステータスレジスタSRの上位部分254(MSバイト、DSPステータス)とを含み得る。ステータスレジスタ250(LSバイト)の下位バイト252は、再び、例外処理の間、スタックされる。さらに、DSPコンテキストは、例えば、図3に示されるように、少なくともそのフラグUS、SATA、SATB、SATDW、ACCSAT、RND、IFを含む、DSP制御レジスタCORCON260を含んでもよい。制御レジスタ260はさらに、図3に示されるように構成され、早期ループ終了制御ビットEDTと、DOループネスティングレベルステータスビットと、インタラプトプライオリティレベルステータスビットと、データ空間内のプログラム空間可視性イネーブルビットPSVとを備えてもよい。USビットは、DSPエンジンが、符号ありまたは符号なしモードで乗算するかどうかを制御するために使用される。EDTビットは、現在のループ反復の終了時の早期終了を制御する。DLビットは、ループネスティングレベルステータスを制御する。SATA、SATB、およびSATDWは、それぞれ、アキュムレータおよびデータ空間レジスタの飽和関数を制御する。ACCSATビットは、アキュムレータの飽和モードを制御する。IPL3ビットは、CPUインタラプトプライオリティレベルを選択する。PSVビットは、プログラム空間がデータ空間内で可視であるかどうかを制御する。RNDビットは、丸めモードを制御し、IFビットは、乗算モードを制御する。
図2および3に示される特定の実施形態は、4つの付加的コンテキストCTXT0..CTXT4を提供し得る。他のDSP設計は、個別の設計、特に、より多いまたはより少ないスタックされたレジスタに応じて、異なるDSPコンテキストを提供してもよい。同様に、異なるCPUタイプは、CPUおよび/またはDSPコンテキストのための異なるレジスタを含んでもよい。
リセット終了後、バックグラウンドDSP制御レジスタ、図2および3に示される実施例では、CORCON(DSP制御専用)レジスタへの全ての書込は、全てのDSPコンテキスト内で複製されるであろう。本シナリオは、図4に示される。DSPコンテキストは全て、リンクされ、現在のDSPコンテキスト0への書込は、全ての他のDSPコンテキストDSPコンテキスト1..4内で置換されるであろう。したがって、最初に、リセット後、コアは、DSPエンジンのための別個のコンテキストを提供しない、以前のコアとまさに同じように挙動する。
ある実施形態によると、5つの異なるコンテキストCTXT0..4が利用可能となるであろうと仮定される。各コンテキストは、シャドウ化されたレジスタを伴うCPUコンテキストと、DSPコンテキストとを備える。しかしながら、前述のように、DSPのための付加的コンテキストは、DSPコンテキストのコンテンツがある程度リンクされており、したがって、全てのDSPコンテキストが、制御ビット内に記憶されるものと同一の必須情報を備えるため、リセット後、まだ完全に可視ではない。したがって、5つのセットのアクティブおよびシャドウレジスタならびにスタックが利用可能であるが、CPUのための5つのアクティブおよびシャドウレジスタのみが、真に独立している。言い換えると、212のためのシャドウレジスタのみが、リンクされていない。一実施形態によると、DSPエンジンのあるレジスタは、独立しているが、DSP制御レジスタのその関連付けられた制御ビットは、そうではない。最初に、リセット後、図4に示されるように、同様に5つのDSPコンテキストが存在するが、これらの5つのDSPコンテキストの少なくとも制御ビットは、最初に、リンクされ、点線に示されるように、個々に変更可能ではない。したがって、一実施形態によると、図3に示されるように、制御レジスタCORCONのDSP関連ビットは、全てのコンテキストに対して同じである。コンテキストスイッチが生じない限り、DSPコンテキスト内のこれらの制御ビットの任意の変更は、自動的に、全ての他のDSPコンテキストに転送されるであろう。別の実施形態によると、本リンク付け機能性は、DSPコンテキストの全てのレジスタおよび制御ビットに拡張される。
ある実施形態によると、前述のように、コンテキストリンク付けは、CORCONレジスタのDSP部分にのみ適用され得る。任意の他のDSPコンテキストレジスタへの変更は、他のコンテキストを通して複製され得ず、それらのレジスタに関するそれらのDSPコンテキストは、リンクされない。しかしながら、他の実施形態によると、本原理は、DSPコンテキスト全体に適用される。これは、一実施形態によると、全てのコンテキストを、または別の実施形態によると、全ての制御ビットを結合する、リンク410によって図4に示される。ある実施形態によると、同じことは、アキュムレータ220が、種々の実施形態に従って任意のDSPコンテキスト内で改変される場合のみ当てはまり得る。したがって、そのような実施形態では、リセット後、アキュムレータ220への任意の変更は、自動的に、他のコンテキストのために、アキュムレータ222内でも行われるであろう。前述のようなリンク付け機能は、大部分の実装の全ての機能性がこれらのビットの初期化を要求するであろうため、DSPエンジンの制御ビットとのみ使用されてもよい。しかしながら、他の実施形態によると、本リンク付け機能は、DSPコンテキストのより多くまたは全てのレジスタに拡張されることができる。
バックグラウンドコンテキスト(コンテキスト0)からのコンテキストスイッチが開始され、DSP制御レジスタCORCON260の修正が生じた後、個別のDSPコンテキストは、リンク410から取り出されるであろう。例えば、図5に示されるように、コンテキスト0からコンテキスト1へのスイッチおよびDSP制御レジスタ260の修正は、DSPコンテキスト1をリンク410から取り出させ、ここで、個々に、別個のアクセス420を通して改変され得る。制御ビットのみをリンクする実施形態では、同一効果は、DSPコンテキストの残りのレジスタがすでに別個であるため、これらの制御ビットをリンクから取り出すことによって遂行される。
したがって、DSPコンテキストの分離は、バックグラウンドコンテキストCTX0からのコンテキストスイッチが生じ、DSP制御レジスタCORCON260が修正されることを要求する。他の実施形態によると、DSPコンテキストを分離させるための別のトリガが、使用されてもよい。次いで、新しいコンテキストのDSPコンテキストは、リンク410から取り出されるであろう。図5に示される実施例では、DSPコンテキスト1は、その現在の条件においてリンクから取り出され、ローカルCORCON DSP制御ビット(図5におけるDSPコンテキスト1)は、適宜、更新されるであろう。バックグラウンドCORCON(DSPコンテキスト0)への後続書込は、DSPコンテキスト1のためのローカルCORCON DSP制御ビットにもはや影響を及ぼさないであろうが、依然として、図5に示されるように、リンク410を通して依然としてリンクされる、全ての他のコンテキストを更新する。これは、次のデバイスリセットが生じるまで、各DSPコンテキストに適用されるであろう。したがって、DSPコンテキストは、リンクされたステータスに留まり、バックグラウンドコンテキスト0に結び付けられ得るか、または、そのリンクは、バックグラウンドコンテキストからのスイッチング後、いったんコンテキストの少なくとも1つのDSP制御ビットが改変されると、自動的に切り離されてもよい。別のコンテキストへの任意のスイッチは、同一条件下で個別のDSPコンテキストの分離を生じさせることができる。前述のように、アキュムレータ内の変更は、切り離しをトリガし得ず、DSP制御レジスタ260内のDSPエンジンの一般的制御の変更のみ、リンク410からの分離をトリガするであろう。
dsPIC33コア等の既存のDSPエンジンコードでは、DSPエンジン構成は、バックグラウンドコンテキスト内で確立されるであろう(典型的には、初期化の間)と仮定される。コンテキストスイッチが生じない限り、任意の構成または再構成は、自動的に、全ての他のDSPコンテキストに影響を及ぼすであろう。したがって、種々の実施形態による改良されたコア設計は、従来のコア設計と完全にバックワード互換性があり得る。種々の実施形態は、ユーザが、別のCPUコンテキスト内からDSPエンジンを構成することを待機し、DSPコード実行のために他で有効となるであろうと仮定する場合のみ、バックワード互換性を提供しなくてもよい。しかしながら、バックワード互換性目的のために、本シナリオは、非常に稀であって、したがって、容認可能であろう。
DSP能力を伴う改良された処理コアはさらに、デュアルまたはマルチコアデバイス内に実装されてもよい。デュアルコアデバイスは、図6に示されるように設計され、マスタ処理デバイスと、スレーブ処理デバイスとを備えてもよい。処理デバイスは両方とも、図1−3に従って設計されてもよく、それぞれ、図6に示されるように、関連付けられた周辺デバイスを備えてもよく、それによって、各デバイスは、別個のマイクロコントローラを集積回路デバイス内に形成してもよい。通信リンクモジュール630が、異なる処理コアの制御を可能にするために提供されてもよい。図6に示されるように、デュアルまたはマルチコア処理デバイス600は、マスタ中央処理ユニット(CPU)612と、それぞれがスレーブ中央処理ユニット622を有する、1つまたはスレーブユニット620とを伴う、マスタマイクロコントローラ610を有するように設計されることができ、各スレーブ中央処理ユニット622のコア設計は、概して、マスタCPU612のコア設計と同じまたは類似し、特に、前述のように、DSP拡張コアを伴って設計されてもよい。しかしながら、他の実施形態によると、スレーブCPU622は、マスタCPU612と異なってもよく、スレーブCPU622のみ、前述のDSP能力を有してもよい。マスタマイクロコントローラは、図6に示されるように、その独自のセットの周辺デバイスを有する。スレーブユニット620は、その独自のセットの周辺デバイスを有し、したがって、それ自体でマイクロコントローラを形成してもよく、またはそうではなくてもよい。したがって、各マスタおよびスレーブデバイスは、より多いまたはより少ない完全に独立した処理デバイスを形成し、専用バスまたは通信インターフェース630と通信してもよい。図6は、マスタマイクロコントローラ610と、単一スレーブマイクロコントローラ620とを伴う、そのような設計を示す。通信インターフェース630は、2つのコア610、620間の通信を可能にするように提供される。各プロセッサ612、622は、示されるように、Harvardアーキテクチャ内に設計されてもよい。しかしながら、種々の実施形態による原理は、von Neumannアーキテクチャにも容易に変換され得る。マスタユニットは、例えば、プログラムメモリとして使用されるフラッシュメモリ616およびデータメモリとして使用されるランダムアクセスメモリ614を備え、それぞれ、マスタコア612と結合される。
図6に示されるように、スレーブユニット620は、フラッシュメモリを伴わずに設計されることができる。代わりに、専用プログラムランダムアクセスメモリ626が、提供される。本メモリが揮発性であるという事実に起因して、種々の実施形態によると、マスタ610を通してロードされるであろう。本設計選択肢は、フラッシュ技術によって提供されるボトルネックが回避されるという利点を有する。フラッシュメモリは、概して、RAMより低速である。故に、読取遅延がなく、スレーブは、より速い実行速度で動作されることができ、これは、例えば、SMPSアプリケーション等のある高速アプリケーションにとって非常に有益であり得る。前述のように、1つを上回るスレーブユニット620が、種々の実施形態によると、実装されてもよい。両コアが同じである場合、マスタコア612は、スレーブユニット622内に実装されないか、またはスレーブユニット内では機能しないかのいずれかであり得る、付加的命令を含むように設計されることができる。これらの付加的命令は、フラッシュメモリ616または外部ソースからスレーブデバイス620のPRAM626の中へのデータの転送を可能にする。例えば、ある実施形態によると、複数のコアは、単一チップデバイス内に実装されてもよく、各コアは、割り当てられた構成レジスタを有してもよく、そのようなレジスタのビットのうちの1つは、個別のユニットがマスタであるかまたはスレーブであるかを定義してもよい。論理は、コアのうちの1つのみがマスタとして設定されることを可能にするように存在してもよい。いったん本ビットが設定されると、付加的命令は、実行されることが可能にされ得る。他のユニット(スレーブ)では、これらの命令は、実行され得ない、例えば、それらは、不正オペコードとして解釈され得る。
マスタユニット610によってPRAM626にアクセスするための制御論理は、図6に示されるように、バッファ/コンパレータユニット618とともに、マスタユニット内に位置することができる。代替として、類似ユニットは、スレーブユニット620内に配列されてもよい。いずれかのユニットが、マスタユニット610またはスレーブユニット620のいずれかに排他的にPRAMのアクセスを付与するように設計される。他の実施形態は、論理のある部分をマスタコア内に、他の部分をスレーブコア内に設置する、または論理を両ユニットの外側に配列してもよい。同様に、通信インターフェース630は、いずれかのユニットの内側または完全に両ユニットの外側にあってもよい。PRAMアクセスユニット618のための付加的制御が、通信インターフェース630によって提供されてもよい。実施形態は、デュアルコア実装に限定されない。当業者は、他の実装も可能性として考えられることを認識するであろう。

Claims (29)

  1. 集積回路デバイスであって、
    デジタル信号処理(DSP)エンジンを含む、第1の中央処理ユニットと、
    複数のコンテキストであって、各コンテキストは、複数のレジスタを備えるCPUコンテキストと、DSPコンテキストとを備え、前記DSPコンテキストは、制御ビットと、複数のDSPレジスタとを備え、前記集積回路デバイスのリセット後、全てのDSPコンテキストの制御ビットは、前記DSPコンテキストの制御ビットに書き込まれているデータが、全ての他のDSPコンテキストの個別の制御ビットに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび別のDSPコンテキストの制御ビットのうちの少なくとも1つの修正後のみ、前記別のコンテキストの制御ビットは、前記リンクから切り離され、前記DSPコンテキストの独立制御ビットを形成する、コンテキストと、
    を備える、集積回路デバイス。
  2. 前記制御ビットは、制御レジスタの一部である、請求項1に記載の集積回路デバイス。
  3. 前記制御レジスタは、DSPコンテキストの一部ではなく、リンクされない、非DSPビットを備える、請求項2に記載の集積回路デバイス。
  4. 前記集積回路デバイスのリセット後、DSPコンテキストの全てのレジスタは、DSPコンテキストの1つのレジスタに書き込まれているデータが、全ての他のDSPコンテキストの個別のレジスタに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび前記別のDSPコンテキストの制御レジスタの修正後のみ、前記別のコンテキストのレジスタは、前記リンクから切り離され、前記DSPコンテキストの独立レジスタを形成する、前記請求項のいずれか1項に記載の集積回路デバイス。
  5. 前記DSPコンテキストレジスタは、前記DSPエンジンのステータスを示す、ステータスレジスタの少なくとも所定の数のビットを備える、前記請求項のいずれか1項に記載の集積回路デバイス。
  6. 前記複数のDSPレジスタは、少なくとも1つのアキュムレータを備える、前記請求項のいずれか1項に記載の集積回路デバイス。
  7. 前記複数のDSPレジスタは、前記DSPエンジンのために使用される前記CPUコンテキストの一部ではない、少なくとも1つのワーキングレジスタを備える、前記請求項のいずれか1項に記載の集積回路デバイス。
  8. 前記複数のDSPレジスタは、前記CPUコンテキストの一部ではない、少なくとも1つのさらなるワーキングレジスタを備える、前記請求項のいずれか1項に記載の集積回路デバイス。
  9. 前記制御ビットは、前記DSPエンジンを制御および構成するように動作可能なDSPエンジン制御レジスタの一部である、前記請求項のいずれか1項に記載の集積回路デバイス。
  10. 前記DSPエンジン制御レジスタは、ループ制御ビットと、アキュムレータ制御ビットと、少なくとも1つの乗算器制御ビットとを備える、請求項9に記載の集積回路デバイス。
  11. 前記DSPエンジン制御レジスタはさらに、CPUインタラプトプライオリティ制御ビットを備える、請求項9または請求項10に記載の集積回路デバイス。
  12. 前記DSPエンジン制御レジスタは、プログラム空間可視性制御ビットを備える、請求項9−11のいずれか1項に記載の集積回路デバイス。
  13. コンテキストスイッチ後の前記少なくとも1つのアキュムレータの修正は、関連付けられたDSPコンテキストの切り離しをトリガしない、請求項6に記載の集積回路デバイス。
  14. DSPコンテキストの切り離し後、前記集積回路デバイスの後続リセットは、再び、全てのDSP制御ビットをリンクさせる、前記請求項のいずれか1項に記載の集積回路デバイス。
  15. 第2の中央処理ユニットを備える、前記請求項のいずれか1項に記載の集積回路デバイス。
  16. 前記第2の中央処理ユニットは、マスタとして動作し、前記第1の中央処理ユニットは、スレーブとして動作する、請求項15に記載の集積回路デバイス。
  17. 前記第1の中央処理ユニットは、前記集積回路デバイスの第1のマイクロコントローラユニットの処理ユニットであり、前記第2の中央処理ユニットは、前記集積回路デバイスの第2のマイクロコントローラユニットの処理ユニットである、請求項15または請求項16に記載の集積回路デバイス。
  18. 前記第1のマイクロコントローラユニットは、前記第2のマイクロコントローラユニットおよびランダムアクセスプログラムメモリを結合するインターフェースを通して前記第2の中央処理ユニットによってロードされるように構成される、ランダムアクセスプログラムメモリを備える、請求項15−17のいずれか1項に記載の集積回路デバイス。
  19. デジタル信号処理(DSP)エンジンを含む、第1の中央処理ユニットを備える、集積回路デバイスを動作させるための方法であって、
    複数のコンテキストを提供するステップであって、各コンテキストは、CPUコンテキストと、DSPコンテキストとを備え、前記DSPコンテキストは、制御ビットと、複数のDSPレジスタとを備える、ステップと、
    前記集積回路デバイスをリセットするステップであって、リセットは、現在のDSP制御ビットに書き込まれているデータが、全ての他のDSPコンテキストの制御ビットに書き込まれるように、全てのDSPコンテキストの制御ビットをともにリンクさせる、ステップと、
    別のコンテキストにスイッチングし、前記別のコンテキストのDSPコンテキストの少なくとも1つの制御ビットを修正するステップであって、前記別のコンテキストの制御ビットは、前記リンクから切り離され、独立制御ビットを形成する、ステップと、
    を含む、方法。
  20. 前記制御ビットは、制御レジスタの一部である、請求項19に記載の方法。
  21. 前記制御レジスタは、DSPコンテキストの一部ではなく、リンクされない、非DSPビットを備える、請求項20に記載の方法。
  22. 前記集積回路デバイスのリセット後、DSPコンテキストの全てのレジスタは、DSPコンテキストの1つのレジスタに書き込まれているデータが、全ての他のDSPコンテキストの個別のレジスタに書き込まれるように、ともにリンクされ、別のコンテキストへのコンテキストスイッチおよび前記別のDSPコンテキストの制御レジスタの修正後のみ、前記別のコンテキストのレジスタは、前記リンクから切り離され、前記DSPコンテキストの独立レジスタを形成する、請求項20または請求項21に記載の方法。
  23. 前記DSPコンテキストは、前記DSPエンジンのステータスを示すステータスレジスタの少なくとも所定の数のビットを備える、請求項19−22のいずれか1項に記載の方法。
  24. 前記DSPコンテキストは、少なくとも1つのアキュムレータを備える、請求項19−23のいずれか1項に記載の方法。
  25. 前記DSPコンテキストは、前記CPUコンテキストの一部ではない、前記DSPエンジンのために使用される少なくとも1つのワーキングレジスタを備える、請求項19−24のいずれか1項に記載の方法。
  26. 前記DSPコンテキストは、前記CPUコンテキストの一部ではない、少なくとも1つのさらなるワーキングレジスタを備える、請求項25に記載の方法。
  27. 前記制御ビットを備える制御レジスタを用いて前記DSPエンジンを制御するステップをさらに含む、請求項19−26のいずれか1項に記載の方法。
  28. コンテキストスイッチ後の前記少なくとも1つのアキュムレータの修正は、関連付けられたDSPコンテキストの切り離しをトリガしない、請求項24−27のいずれか1項に記載の方法。
  29. DSPコンテキストの切り離し後、前記集積回路デバイスの後続リセットは、再び、全てのDSP制御ビットをリンクさせる、請求項19−28のいずれか1項に記載の方法。

JP2017553983A 2015-04-30 2016-04-29 Dspエンジンおよび改良されたコンテキストスイッチ能力を有する中央処理ユニット Pending JP2018514867A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562154993P 2015-04-30 2015-04-30
US62/154,993 2015-04-30
US15/141,817 2016-04-28
US15/141,817 US10802866B2 (en) 2015-04-30 2016-04-28 Central processing unit with DSP engine and enhanced context switch capabilities
PCT/US2016/030141 WO2016176585A1 (en) 2015-04-30 2016-04-29 Central processing unit with dsp engine and enhanced context switch capabilities

Publications (2)

Publication Number Publication Date
JP2018514867A true JP2018514867A (ja) 2018-06-07
JP2018514867A5 JP2018514867A5 (ja) 2019-05-23

Family

ID=56087502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017553983A Pending JP2018514867A (ja) 2015-04-30 2016-04-29 Dspエンジンおよび改良されたコンテキストスイッチ能力を有する中央処理ユニット

Country Status (7)

Country Link
US (1) US10802866B2 (ja)
EP (1) EP3289443B1 (ja)
JP (1) JP2018514867A (ja)
KR (1) KR20170141205A (ja)
CN (1) CN107548488B (ja)
TW (1) TW201706829A (ja)
WO (1) WO2016176585A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014153158A1 (en) 2013-03-14 2014-09-25 Icon Health & Fitness, Inc. Strength training apparatus with flywheel and related methods
EP3086865B1 (en) 2013-12-26 2020-01-22 Icon Health & Fitness, Inc. Magnetic resistance mechanism in a cable machine
WO2015191445A1 (en) 2014-06-09 2015-12-17 Icon Health & Fitness, Inc. Cable system incorporated into a treadmill
US10940360B2 (en) 2015-08-26 2021-03-09 Icon Health & Fitness, Inc. Strength exercise mechanisms
TWI644702B (zh) 2015-08-26 2018-12-21 美商愛康運動與健康公司 力量運動機械裝置
US10293211B2 (en) 2016-03-18 2019-05-21 Icon Health & Fitness, Inc. Coordinated weight selection
US10441840B2 (en) 2016-03-18 2019-10-15 Icon Health & Fitness, Inc. Collapsible strength exercise machine
US10252109B2 (en) 2016-05-13 2019-04-09 Icon Health & Fitness, Inc. Weight platform treadmill
US10661114B2 (en) 2016-11-01 2020-05-26 Icon Health & Fitness, Inc. Body weight lift mechanism on treadmill
TWI703500B (zh) * 2019-02-01 2020-09-01 睿寬智能科技有限公司 可縮短內文交換時間之方法及其半導體裝置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109329A (en) * 1987-02-06 1992-04-28 At&T Bell Laboratories Multiprocessing method and arrangement
US6128641A (en) * 1997-09-12 2000-10-03 Siemens Aktiengesellschaft Data processing unit with hardware assisted context switching capability
US6238323B1 (en) * 1999-09-14 2001-05-29 The Simonson Family Limited Partnership Rlllp Cable crossover exercise apparatus
US7117346B2 (en) * 2002-05-31 2006-10-03 Freescale Semiconductor, Inc. Data processing system having multiple register contexts and method therefor
KR100679050B1 (ko) 2005-12-12 2007-02-06 삼성전자주식회사 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치
KR100770034B1 (ko) * 2006-03-02 2007-10-26 삼성전자주식회사 복수의 레지스터 파일을 이용한 문맥 교환 방법 및 시스템
US7979684B2 (en) * 2006-08-07 2011-07-12 Qualcomm Incorporated Method and context switch device for implementing design-for-testability functionality of latch-based register files
US8407715B2 (en) 2007-04-30 2013-03-26 National Tsing Hua University Live range sensitive context switch procedure comprising a plurality of register sets associated with usage frequencies and live set information of tasks
US9619231B2 (en) 2013-03-12 2017-04-11 Microchip Technology Incorporated Programmable CPU register hardware context swap mechanism
US10228941B2 (en) * 2013-06-28 2019-03-12 Intel Corporation Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register

Also Published As

Publication number Publication date
TW201706829A (zh) 2017-02-16
WO2016176585A1 (en) 2016-11-03
KR20170141205A (ko) 2017-12-22
EP3289443B1 (en) 2020-03-25
EP3289443A1 (en) 2018-03-07
CN107548488A (zh) 2018-01-05
US10802866B2 (en) 2020-10-13
CN107548488B (zh) 2021-09-03
US20160321075A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
JP2018514867A (ja) Dspエンジンおよび改良されたコンテキストスイッチ能力を有する中央処理ユニット
US7487302B2 (en) Service layer architecture for memory access system and method
CN114816664A (zh) Gpu虚拟化
US9092275B2 (en) Store operation with conditional push of a tag value to a queue
US20160179388A1 (en) Method and apparatus for providing programmable nvm interface using sequencers
JP2016526716A (ja) 複数のPCIeリンク幅をサポートするためのデュアルPHYの使用
US11182150B2 (en) Zero packet loss upgrade of an IO device
US9870318B2 (en) Technique to improve performance of memory copies and stores
WO2017054541A1 (zh) 一种处理器及其处理任务的方法、存储介质
JP2017504870A (ja) 自律的メモリの方法及びシステム
CN114691354A (zh) 动态分解及线程分配
KR101855379B1 (ko) 그래픽 프로세서에 의한 향상된 뱅크화된 메모리 액세스 효율
TWI567651B (zh) 緊實脈絡狀態管理技術
KR100781358B1 (ko) 데이터 처리 시스템 및 그의 데이터 처리방법
CN117480498A (zh) 在运行时间为裸金属服务器动态提供PCIe器件
JP6143841B2 (ja) コンテキストスイッチを伴うマイクロコントローラ
US20230267169A1 (en) Sparse matrix dense vector multliplication circuitry
CN117112466B (zh) 一种数据处理方法、装置、设备、存储介质及分布式集群
WO2019196638A1 (zh) 基于xip方式的嵌入式系统及其资源优化方法
US8799529B2 (en) Direct memory access controller and operating method thereof
EP2799979B1 (en) Hardware abstract data structure, data processing method and system
US20230385040A1 (en) Splitting vector processing loops with an unknown trip count
US10180847B2 (en) Circuitry for configuring entities
Chauhan et al. Reconfiguration of fpga for domain specific applications using embedded system approach
CN113646744A (zh) 针对未对齐的存储器操作将存储器访问加宽至对齐的地址

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210105