(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-07
(54)【発明の名称】複数の異なるマスタによって不揮発性メモリに非干渉アクセスするためのメモリコントローラおよび関連するシステムならびに方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20220930BHJP
G06F 13/372 20060101ALI20220930BHJP
【FI】
G06F12/00 570B
G06F12/00 571A
G06F12/00 597U
G06F13/372 C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022507413
(86)(22)【出願日】2020-08-03
(85)【翻訳文提出日】2022-03-04
(86)【国際出願番号】 US2020044792
(87)【国際公開番号】W WO2021026095
(87)【国際公開日】2021-02-11
(32)【優先日】2019-08-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364997
【氏名又は名称】サイプレス セミコンダクター コーポレーション
【氏名又は名称原語表記】Cypress Semiconductor Corporation
【住所又は居所原語表記】198 Champion Court, San Jose, CA 95134, United States of America
(74)【代理人】
【識別番号】100114890
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ハンス ファン アントウェルペン
(72)【発明者】
【氏名】モーガン アンドリュー ウェイトリー
(72)【発明者】
【氏名】クリフォード ズィットロー
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CA09
(57)【要約】
本装置は、複数の処理ソースと、複数の処理ソースからの読み出し要求を、所定の時分割多重(TDM)コマンドスロットに割り当てるように構成されたマルチプレクサ(MUX)と、を含むことができる。メモリコントローラは、MUXから受信した読み出し要求から、前記読み出し要求に割り当てられたTDMコマンドスロットの間に、単方向のコマンドアドレスバス上で不揮発性メモリ(NVM)コマンドおよびアドレスデータを生成することができる。アドレスデータは、少なくともバンクアドレスを含むことができる。本装置は、受信したデータクロックの立ち上がりエッジおよび立ち下がりエッジに同期して、読み出されたデータを単方向の並列データバス上で受信することもできる。読み出されたデータは、所定の順序を有するTDM読み出しスロット内で受信可能である。デマルチプレクサは、それぞれのTDM読み出しスロットの読み出されたデータを、TDM読み出しスロットの位置に基づいて所定の順序で複数の処理ソースのうちの1つに供給することができる。関連する方法およびシステムも開示される。
【特許請求の範囲】
【請求項1】
複数の処理ソースと、
マルチプレクサ(MUX)と、
メモリコントローラと、
デマルチプレクサ(DMUX)と、
を含む装置であって、
前記マルチプレクサ(MUX)は、前記複数の処理ソースからの読み出し要求を、所定の時分割多重(TDM)コマンドスロットに割り当てるように構成されており、
前記メモリコントローラは、前記MUXから受信した読み出し要求から、前記読み出し要求に割り当てられたTDMコマンドスロットの間に、単方向のコマンドアドレスバス上で不揮発性メモリ(NVM)コマンドおよびアドレスデータを生成するように構成されており、前記アドレスデータは、少なくともバンクアドレスを含み、
前記メモリコントローラは、受信したデータクロックの立ち上がりエッジおよび立ち下がりエッジに同期して、読み出されたデータを単方向の並列データバス上で受信するように構成されており、前記読み出されたデータは、所定の順序を有するTDM読み出しスロット内で受信され、
前記デマルチプレクサ(DMUX)は、それぞれのTDM読み出しスロットの前記読み出されたデータを、前記TDM読み出しスロットの位置に基づいて前記所定の順序で前記複数の処理ソースのうちの1つに供給するように構成されている、
装置。
【請求項2】
前記複数の処理ソースは、単一のホスト装置の複数の異なる処理コアである、
請求項1記載の装置。
【請求項3】
それぞれの処理ソースは、NVM装置の割り当てられたバンクのアドレスにのみ読み出し要求を発行し、
1つのバンクは、2つ以下の処理ソースに割り当てられている、
請求項1記載の装置。
【請求項4】
前記MUXは、同じ1つのバンクにアクセスするための複数の異なる処理ソースに、連続するTDM読み出しスロットが割り当てられることを阻止するように構成されている、
請求項3記載の装置。
【請求項5】
前記複数の処理ソースのうちの複数は、比較的大きなシステムのサブシステムをそれぞれ制御するサブシステム制御プロセスであり、
前記複数の処理ソースのうちの少なくとも1つは、前記サブシステム制御プロセスを監視する監督プロセスである、
請求項1記載の装置。
【請求項6】
前記装置は、自動車コントローラであり、
前記サブシステムは、自動車のサブシステムである、
請求項5記載の装置。
【請求項7】
前記コマンドアドレスバスおよび前記並列データバスは、LPDDR4規格に即したシグナリングとの互換性を有する、
請求項1記載の装置。
【請求項8】
方法であって、
少なくとも1つの不揮発性メモリ(NVM)バンクを、コントローラ装置の複数の異なる制御プロセスに割り当て、それぞれの制御プロセスは、割り当てられたNVMバンクにのみアクセス要求を発行し、
前記複数のプロセスからのアクセス要求を、所定の時分割多重(TDM)コマンドスロットに多重化し、
前記コントローラ装置のメモリコントローラ回路の動作により、
前記MUXから受信したアクセス要求から、割り当てられたTDMコマンドスロットの間に、単方向のコマンドアドレスバス上でコマンドおよびアドレスデータを生成し、
受信したデータクロックの立ち上がりエッジおよび立ち下がりエッジに同期して、読み出されたデータを単方向の並列データバス上で受信し、前記読み出されたデータは、所定の順序を有するTDM読み出しスロット内で受信され、
それぞれのTDM読み出しスロットからの前記読み出されたデータを、前記TDM読み出しスロットの位置に基づいて前記所定の順序で前記複数のプロセスのうちの1つに多重分離する、
方法。
【請求項9】
それぞれの制御プロセスは、プロセッサコアによって実行されるプロセスを含む、
請求項8記載の方法。
【請求項10】
1つのバンクが複数の制御プロセスに割り当てられる場合、割り当てられた複数の異なる制御プロセスによる前記バンクへのアクセス要求は、連続するTDMコマンドスロット上では発生しない、
請求項8記載の方法。
【請求項11】
前記メモリコントローラは、LPDDR4規格との互換性を有するシグナリングによってデータを受信および送信する、
請求項8記載の方法。
【請求項12】
前記コマンドおよびアドレスデータは、コマンドのシーケンスとして送信され、それぞれのコマンドは、入力クロックの2つのクロックサイクルにわたって送信されたコマンドおよび/またはアドレス値を含み、
前記コマンドおよびアドレスデータを生成することは、2つ以下のコマンドによって1つのバンクへの読み出し動作を実行することを含む、
請求項8記載の方法。
【請求項13】
前記TDMコマンドスロットは、時間の経過と共に繰り返され、
前記複数の制御プロセスのうちの少なくとも1つは、他の制御プロセスよりも多くのTDMコマンドスロットに割り当てられる、
請求項8記載の方法。
【請求項14】
前記コントローラ装置は、自動車コントローラ装置であり、
前記複数の制御プロセスのうちの複数は、自動車のサブシステムを制御するように構成されており、
少なくとも1つの制御プロセスは、他の制御プロセスを監視する監督プロセスである、
請求項8記載の方法。
【請求項15】
プロセッサ装置と、
NVM装置と、
単方向のコマンドアドレスバスと、
単方向のデータバスと、
を含むシステムであって、
前記プロセッサ装置は、
複数のプロセッサコアと、
それぞれのプロセッサコアからの読み出し要求を、所定の時分割多重(TDM)コマンドスロットに割り当てるように構成されたマルチプレクサ(MUX)と、
前記MUXからの前記読み出し要求に応答して、不揮発性メモリ(NVM)コマンドおよびアドレスデータを生成し、読み出されたデータをTDM読み出しスロット内で受信するように構成されたメモリコントローラと、
それぞれのTDM読み出しスロットの前記読み出されたデータを、前記複数のプロセッサコアのうちの1つに供給するように構成されたデマルチプレクサ(DMUX)と、
を含み、
前記NVM装置は、複数の別個にアドレス指定可能なバンクを含み、
前記単方向のコマンドアドレスバスは、前記コマンドおよびアドレスデータを前記プロセッサ装置から前記NVM装置に送信するように構成されており、
前記単方向のデータバスは、前記読み出されたデータを前記NVM装置から前記プロセッサ装置に送信するように構成されている、
システム。
【請求項16】
前記TDMコマンドスロットは、それぞれ同じ持続時間を有し、
前記NVM装置は、前記コマンドアドレスデータを受信してから対応する読み出されたデータを出力するまでの期間を含むバンクアクセス時間を有し、
前記TDMコマンドスロットの持続時間は、前記バンクアクセス時間よりも短い、
請求項15記載のシステム。
【請求項17】
前記NVM装置は、前記プロセッサ装置から複数の異なるバンクへの読み出し要求が、連続するTDMコマンドスロット上で受信されたことに応答して、前記複数の別個にアドレス指定可能なバンクのうちの第2のバンクにアクセスしている間に、前記複数の別個にアドレス指定可能なバンクのうちの第1のバンクにアクセスするように構成されている、
請求項15記載のシステム。
【請求項18】
前記プロセッサ装置は、前記NVM装置の前記複数の別個にアドレス指定可能なバンクを2つ以下のプロセッサコアに割り当てる構成記憶回路を含み、
前記プロセッサ装置は、
それぞれのプロセッサコアを、前記複数の別個にアドレス指定可能なバンクのうちの1つの割り当てられたバンクにのみアクセスするように制約し、
連続するTDMコマンドスロットへのアクセスが、同じ1つの別個にアドレス指定可能なバンクに発行されることを阻止する、
ように構成されている、
請求項15記載のシステム。
【請求項19】
前記プロセッサ装置は、自動車コントローラ装置であり、
前記複数のプロセッサコアの各々は、自動車サブシステムを制御するためのサブシステム制御プロセスを実行するように構成されており、
少なくとも1つのプロセッサコアは、前記サブシステム制御プロセスを監視する監督プロセスとして構成されており、前記監督プロセスは、少なくとも1つの専用のTDMコマンドスロットを有する、
請求項15記載のシステム。
【請求項20】
前記単方向のコマンドアドレスバスおよび前記単方向のデータバスは、LPDDR4規格との互換性を有する、
請求項15記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2019年8月5日に出願された米国仮特許出願第62/883,019号明細書の利益を主張する2019年12月18日に出願された米国特許出願第16/719,465号明細書の国際出願であり、これら両方の内容全体を参照により本明細書に援用するものとする。
【0002】
技術分野
本開示は、概して、同じ1つの不揮発性メモリ装置にアクセスする複数のマスタ装置およびプロセスを有するシステムに関する。
【背景技術】
【0003】
多くの制御システムは、それぞれ異なるサブシステムを制御する複数のプロセス(例えば、コア)を含むことができる。多くの場合、そのようなプロセスは、不揮発性メモリ(nonvolatile memory:NVM)装置にアクセスすることが望まれている。NVM装置は、電力の不在下でも重要なデータが格納されることを保証することができる。例えば、自動車は、複数のプロセッサコアを有するコントローラを含むことができ、それぞれのコアは、1つの特定のシステムまたは機能のための専用となっている。プロセッサコアは、対応するNVM装置からデータを読み出すことができ、かつ対応するNVM装置にデータを格納することができる。
【0004】
従来のシステムの欠点は、レイテンシであろう。同じ1つのNVM装置に対して複数のプロセスが競合する場合、アクセスに優先順位を付けるために何らかの調停プロセスを採用しなければならない。このような調停がなければ、複数の異なるプロセス間で衝突が発生する可能性があり、これにより、ある1つのプロセスが優先アクセス要求を有する他のプロセスを中断するので、アクセスにおいて予測不可能なレイテンシがもたらされるか、または性能の低下がもたらされる。
【0005】
NVM装置にアクセスする際におけるこのような可変のレイテンシに対処するための1つの方法は、いくつかのNVM装置を特定のプロセスのための専用にした状態で、NVM装置の数を増加させることであってよい。このようなアプローチにより、いくつかのプロセスのためのレイテンシを保証することができるが、結果的に生じるシステムのコストおよびサイズを大幅に増大させる可能性がある。
【図面の簡単な説明】
【0006】
【
図1A】各実施形態による、プロセッサ装置による不揮発性メモリ(NVM)装置への時分割多重(time division multiplex:TDM)アクセスを示す図である。
【
図1B】各実施形態による、プロセッサ装置による不揮発性メモリ(NVM)装置への時分割多重(time division multiplex:TDM)アクセスを示す図である。
【
図2】1つの実施形態によるシステムのブロック図である。
【
図3A】各実施形態による、プロセッサ装置のためのTDMスロット割り当ておよびバンク割り当てを示す表である。
【
図3B】各実施形態による、プロセッサ装置のためのTDMスロット割り当ておよびバンク割り当てを示す表である。
【
図4A】各実施形態によるデータアクセス時間を示す図である。
【
図4B】各実施形態によるデータアクセス時間を示す図である。
【
図5A】各実施形態による、プロセッサ装置の複数の処理コアへのバンク割り当ての例を示す図である。
【
図5B】各実施形態による、プロセッサ装置の複数の処理コアへのバンク割り当ての例を示す図である。
【
図5C】各実施形態による、プロセッサ装置の複数の処理コアへのバンク割り当ての例を示す図である。
【
図6A】各実施形態による、プロセッサ装置によるNVMアクセスを示すタイミング図である。
【
図6B】各実施形態による、プロセッサ装置によるNVMアクセスを示すタイミング図である。
【
図7】各実施形態によるプロセッサ装置の種々の構成を示す表である。
【
図8A】それぞれ異なる実施形態によるプロセッサアクセスを示す図である。
【
図8B】それぞれ異なる実施形態によるプロセッサアクセスを示す図である。
【
図8C】それぞれ異なる実施形態によるプロセッサアクセスを示す図である。
【
図8D】それぞれ異なる実施形態によるプロセッサアクセスを示す図である。
【
図9】各実施形態によるプロセッサ装置のデータアクセス性能を示す表である。
【
図10】1つの実施形態による方法のフローチャートである。
【
図11】各実施形態による自動車制御システムを示す図である。
【
図12A】各実施形態に含めることができる読み出しコマンドを示す図である。
【
図12B】各実施形態に含めることができる読み出しコマンドを示す図である。
【
図13】各実施形態に含めることができるNVM装置のブロック図である。
【
図14】1つの実施形態による自動車システムの図である。
【発明を実施するための形態】
【0007】
各実施形態によれば、コントローラ装置は、複数の処理回路(例えば、コア)を含むことができる。それぞれの処理回路は、NVM装置のバンクにアクセスするための要求を発行することができる。このようなアクセス要求には、時分割多重(TDM)構成でスロットを割り当てることができる。次いで、メモリコントローラ回路が、これらの要求をTDM順序でコマンドアドレス値として、NVM装置へのコマンドアドレスバスを介して発行することができる。読み出し要求の場合には、引き続き、読み出されたデータを、単方向のダブルデータレート(double data rate:DDR)データバスにおいて同様にTDM方式で受信することができる。特定のTDMスロット内で受信された読み出されたデータは、要求を発行してきたプロセスに対応することができる。
【0008】
いくつかの実施形態では、それぞれのプロセスに、NVM装置の少なくとも1つのNVMバンクを割り当てることができ、プロセスは、各自に割り当てられたNVMバンクにのみアクセスする。
【0009】
いくつかの実施形態では、それぞれのプロセスを、NVM装置の2つ以下のNVMバンクに割り当てることができる。
【0010】
いくつかの実施形態では、ある1つのプロセスが1つのTDMスロットにおいてNVMバンクにアクセスした場合には、直後に後続するTDMスロットにおいて別のプロセスがその同じNVMバンクにアクセスすることはできない。
【0011】
いくつかの実施形態では、コントローラ装置は、並列メモリインターフェースを介してNVM装置にアクセスすることができる。並列メモリインターフェースは、JEDECによって公布されたLPDDR4規格との互換性を有することができる。
【0012】
以下の種々の実施形態において、同様の項目は、同じ参照符号によって参照されるが、ただし、先頭の桁は、図面の番号に対応する。
【0013】
図1Aおよび
図1Bは、各実施形態による、プロセッサ装置100および動作を示すブロック図である。プロセッサ装置100は、複数の処理コア102-0~102-3、マルチプレクサ(MUX)104、デマルチプレクサ(DMUX)106、コア割り当てデータ107-0、TDM割り当てデータ107-1および並列DDRメモリコントローラ108を含むことができる。コア(102-0~102-3)は、それぞれ別個の処理タスクのための専用であってよい処理回路を含むことができる。各実施形態によれば、コア(102-0~102-3)を、対応するNVM装置112の1つまたは複数のNVMバンク(図示せず)に割り当てることができる。したがって、コア(102-0~102-3)がNVMバンクに割り当てられると、そのコアは、割り当てられていないバンクへのアクセスを要求することはない。
図1A/
図1Bには4つのコアが図示されているが、プロセッサ装置は、それより多数または少数のコアを有してもよい。
【0014】
MUX104は、コア(102-0~102-3)からのアクセス要求を受信し、これらのアクセス要求をTDM構成で所定のTDMコマンドスロットに割り当てることができる。各実施形態によれば、1つのコア(102-0~102-3)を2つ以上のTDMコマンドスロットに割り当てることはできるが、複数のコア(102-0~102-3)を同じ1つのTDMコマンドスロットに割り当てることはできない。TDMコマンド構成は、所定の順序で循環することができる。いくつかの実施形態では、アクセス要求が、MUX104において正しいTDMコマンドスロットよりも前に受信されると、MUX104は、適切なタイムスロットまでその要求をサービスするのを待機することができる。さらに、所与のTDMコマンドスロットに対するアクセス要求がなければ、MUX104は、要求を発行することができない。
【0015】
MUX104は、任意の適切な形態をとることができる。MUX104は、データバッファのような専用の回路を含むことができ、データバッファは、アクセス要求を受信し、これらのアクセス要求をTDMコマンドスロットに対応する場所に格納し、その後、これらのアクセス要求を適切な時間に出力する。しかしながら、MUX104は、それぞれのコア(102-0~102-3)上で実行される調整されたプロセスであってもよい。それぞれのコア(102-0~102-3)は、アクセス要求を、各自の専用のTDMスロットに限定している。これらは、ほんの2つの例にすぎず、限定するものとみなされるべきではない。当業者であれば、種々の他のMUX構成に想到することができるだろう。
【0016】
DMUX106は、任意の適切な形態をとることができる。MUX104の場合のように、DMUX106も、データバッファのような専用の回路を含むことができ、データバッファは、読み出されたデータを受信し、これらの読み出されたデータをTDMスロットに対応する場所に格納する。その後、このような読み出されたデータを、対応するコア(102-0~102-3)によって読み出すことができる。あるいは、コア(102-0~102-3)は、データを読み出すための複数のアクセスを調整して、各自に割り当てられたTDM読み出しスロット内のデータのみを読み出すことができる。
【0017】
コア割り当てデータ107-0は、どのNVMバンクがどのコア(102-0~102-3)に割り当てられているかを記録することができる。コア割り当てデータ107-0は、構成レジスタを含む、プロセッサ装置100のメモリ回路に格納可能である。図示の特定の実施形態では、コア0は、NVMバンク0および1の両方に割り当てられており、コア1は、NVMバンク1に割り当てられており、コア2は、NVMバンク2に割り当てられており、コア3は、NVMバンク2および3に割り当てられている。TDM割り当てデータ107-1は、どのコアがどのTDMコマンドスロットを有するかを記録することができる。TDM割り当てデータ107-1は、構成レジスタを含む、プロセッサ装置100のメモリ回路に格納可能である。図示の特定の実施形態では、コア3にはTDMスロット0が与えられており、コア0にはTDMスロット1が与えられており、コア2にはTDMスロット2が与えられており、コア1にはTDMスロット3が与えられている。
図1A/
図1Bは、4つのTDMスロットを図示しているが、後で示すように他の実施形態は、これとは異なる数のTDMスロットを含んでいてもよい。
【0018】
メモリコントローラ回路108は、NVM装置112のバンクにアクセスするためのコントローラ回路を含むことができる。各実施形態によれば、メモリコントローラ回路108は、コマンドアドレスバス110を介して並列ビットのシーケンスとしてコマンドおよびアドレスデータを発行することができる。読み出されたデータは、単方向の読み出しデータバス114を介して並列ビットのセットの形態で受信可能である。このような読み出されたデータは、データクロックの立ち下がりエッジおよび立ち上がりエッジと同期してグループ(例えば、バースト)で受信可能である。
【0019】
図1Aは、1つの実施形態による読み出し動作の開始の一例を示す。
【0020】
円1に示されているように、コア(102-0~102-3)は、種々のバンクに対して読み出し要求を発行することができる。
図1Aの例では、コア102-0がNVMバンク0に読み出し要求を発行し、コア102-1がNVMバンク1に読み出し要求を発行し、コア102-2がNVMバンク2に読み出し要求を発行し、コア102-3がNVMバンク3に読み出し要求を発行する。このような要求は、コア割り当てデータ107-0を遵守しているので適切である。種々の読み出し要求は、種々の時間および種々の順序で発生する可能性がある。
【0021】
円2に示されているように、MUX104は、コア(102-0~102-3)によって発行された要求を、TDM割り当てデータ107-1に基づいて順序付けすることができる。読み出し要求は、これらの読み出し要求がいつコア(102-0~102-3)によって発行されたかに関係なく、TDM割り当てデータ107-1に従って順序付け可能である。したがって、読み出し要求を、以下の順序で、すなわち、(コア3によって発行された)バンク3への読み出し(すなわち、TDMスロット0);(コア0によって発行された)バンク0への読み出し(すなわち、TDMスロット1);(コア2によって発行された)バンク2への読み出し(すなわち、TDMスロット2);(コア1によって発行された)バンク1への読み出し(すなわち、TDMスロット3)の順序で、メモリコントローラ回路108に発行することができる。
【0022】
円3に示されているように、メモリコントローラ回路108は、割り当てられたTDMスロット内のコマンドアドレスバス110上で、適切なコマンドおよびアドレスデータを生成することができる。
【0023】
図1Bは、1つの実施形態による、
図1Aに示されている読み出し動作の終了を示す図である。
【0024】
円4に示されているように、プロセッサ装置100によって発行されたコマンドおよびアドレスデータに応答して、NVM装置112は、これらのコマンドおよびアドレスデータを受信した順序で、結果的に生じた読み出されたデータを出力することができる。このような読み出されたデータを、単方向のデータバス114上にDDR形式で出力することができる。
【0025】
円5に示されているように、メモリコントローラ回路108は、NVM装置から読み出されたデータを受信して、これをDMUX106に供給することができる。読み出されたデータのそれぞれのセットは、TDM割り当てデータ107-1によって設定された順序を有するTDM読み出しスロット内で受信可能である。
【0026】
円6に示されているように、DMUX106は、いつそのような読み出されたデータを受信したか(すなわち、読み出されたデータのTDM読み出しスロット)に基づいて、コア(102-0~102-3)によるアクセスのために読み出されたデータを順序付けることができる。
【0027】
このようにして、同じ1つの処理装置の複数の異なるコアが、TDM読み出しアクセスと、結果的に生じた読み出されたデータと、を介して同じ1つのメモリ装置の複数の異なるバンクにアクセスすることを保証することができる。
【0028】
図2は、1つの実施形態によるシステム250のブロック図である。システム250は、プロセッサ装置200およびNVM装置212を含むことができる。プロセッサ装置200は、複数のプロセス(例えば、コア)からコマンド/アドレス値(およびオプションとして書き込みデータ値)を受信することができる。図示の実施形態では、コマンド/アドレスデータは、6つの並列ビット216-0~216-5のセット(AX[0]~AX[5])の形態で受信可能である。コマンド/アドレス値(AX[0]~AX[5])は、複数の異なるプロセスから受信可能であるか、または複数の異なるプロセスからの要求によって生成可能である。さらに、複数のプロセスを1つまたは複数の特定のバンクに割り当てることができる。バンクへのアクセスは、コマンド/アドレス値(AX[0]~AX[5])の形態で受信される上位のアドレスビットによって規定可能である。
【0029】
TDMコマンドMUX204は、コマンドアドレス値(AX[0]~AX[5])を所定のTDMコマンド順序で物理インターフェース(PHY)208に適用することができ、なお、TDMスロットは、特定のプロセス(例えば、コア)のための専用となっている。種々の可能なTDM割り当ての例を、本明細書でさらに詳細に説明することとする。
【0030】
PHY208は、コマンド/アドレス値(AX[0]~AX[5])を、コマンドアドレスバス210(すなわち、6つのコマンドアドレスライン)上で駆動される対応する信号に変換することができる。このようなシグナリングは、既存の並列データインターフェース規格との互換性を有することができ、いくつかの実施形態では、LPDDR4規格との互換性を有することができる。コマンド/アドレス値(AX[0]~AX[5])は、既存の規格との互換性を有するコマンドを構築することができる。しかしながら、いくつかの実施形態では、コマンド/アドレス値(AX[0]~AX[5])は、カスタムのコマンドであってよい。すなわち、規格に準拠したシグナリングによってコマンドを受信することができるが、送信されるビット値は、既存の規格の一部ではない。
【0031】
NVM装置212は、複数のバンク228-0~228-7、インターコネクト230、コマンドキュー224、読み出しデータキュー226およびメモリPHY222を含むことができる。バンク(228-0~228-7)は、それぞれ複数のNVMセルを含むことができる。NVMセルは、データを不揮発的に格納する任意の適切な種類の不揮発性メモリセルであってよい。いくつかの実施形態では、NVMメモリセルは、NOR型アーキテクチャを有する「フラッシュ」型メモリセルであってよい。それぞれのバンク(228-0~228-7)の内部で、NVMセルは、1つまたは複数のアレイの形態に配置可能であり、行アドレスおよび列アドレスによってアクセス可能である。バンク(228-0~228-7)は、別個にアドレス指定可能である。すなわち、NVM装置212の物理的なアドレス指定は、それぞれのバンク(228-0~228-7)毎の別個のバンクアドレスを有することができる。全てのバンク(228-0~228-7)を、インターコネクト230に接続することができる。
【0032】
インターコネクト230は、バンク(228-0~228-7)へのアクセスを可能にすることができ、ほんの数例ではあるが、デコーダ、プログラム回路および読み出し回路(例えば、センスアンプ)のような任意の適切な回路を含むことができる。図示の実施形態では、インターコネクト230は、コマンドキュー224からコマンド/アドレス値を受信し、これに応答して、アドレス指定されたバンク内のNVMセルにアクセスすることができる。インターコネクト230は、バンク(228-0~228-7)から読み出されたデータを受信し、読み出されたデータを読み出しデータキュー226に供給することもできる。
【0033】
コマンドキュー224は、インターコネクト230に供給されたコマンド/アドレス値を受信および格納することができる。いくつかの実施形態では、コマンドキュー224は、コマンド/アドレス値を先入れ先出し方式で供給することができる。しかしながら、コマンド/アドレスデータを、プロセッサ装置200によって規定されたTDM順序で受信してもよいことが理解される。読み出しデータキュー226は、インターコネクト230から読み出されたデータを受信して、これをメモリPHY222に供給することができる。いくつかの実施形態では、読み出しデータキュー226は、読み出されたデータを、受信したコマンド/アドレス値と同じ順序で供給することができる。したがって、読み出されたデータは、プロセッサ装置200によって規定された同じTDM順序に従うことができる。
【0034】
メモリPHY222は、プロセッサ装置200のPHY208に対応するPHYであってよい。したがって、メモリPHY222は、コマンドアドレスバス210上で送信されたコマンドアドレス値を受信し、読み出されたデータをDDRデータバス214上に出力することができる。プロセッサPHY208の場合のように、メモリPHY222は、ほんの一例ではあるがLPDDR4規格のような、既存の並列データインターフェース規格との互換性を有する信号を生成することができる。
【0035】
プロセッサ装置200に戻って参照すると、NVM装置212から読み出されたデータは、PHY208によって受信可能である。結果的に生じるデータ値を、TDM読み出しデータDMUX206に供給することができる。TDMデータDMUX206は、読み出されたデータ値(DX[0]~DX[15])を、TDMコマンドと同じ順序で対応するプロセスに供給することができる。
【0036】
図3Aは、1つの実施形態によるTDMコマンドスロット割り当てを示す表である。
図3Aは、所望のアクセスの種類に応じて、どのようにして任意の数のTDMスロットを作成することができるかを示す。例えば、ある1つのマスタ(例えば、コア0は、スロット0および4を取得する)を、他のマスタよりも多くのTDMコマンドスロットに割り当てることができる(例えば、コア0がスロット0および4を取得する一方で、コア2は、スロット2のみを取得する)。このような構成は、ある1つのコアに他のコアよりも高い帯域幅を与える。
図3Aは、6つのTDMコマンドスロットが使用される例を示しているが、コマンドスロットの数は、必要に応じて増減可能である。TDMコマンドの割り当ては、相対的に固定可能である(例えば、パワーオン時またはリセット時にレジスタによって確立される)が、他の実施形態では、TDMコマンドスロットを動的に割り当てることができるアクティブなTDM制御を、プロセッサ装置が含んでいてもよい。
【0037】
TDMコマンドスロットは、任意の適切なプロセスに割り当て可能であり、したがって、ほんの2つの例ではあるがコアまたはスレッドに応じて割り当て可能である。
【0038】
図3Bは、1つの実施形態によるバンク割り当てを示す表である。それぞれのプロセス(この場合にはコア)を、同じ1つのNVM装置内の特定のアドレス範囲に割り当てることができ、なお、アドレス範囲は、別個にアクセス可能なバンクを含む。このようにして、アクセスを非干渉にすることができるか、または非干渉となるようにスケジューリングすることができる。これによって、プロセスを所定の最大レイテンシの範囲内で提供することができることを保証することができる。図示の例では、コア0およびコア1は、同じ1つのバンク(バンク0)のそれぞれ異なる領域にアクセスすることができる。コア2は、3つのバンク(バンク1,2,3)への単独アクセスと、バンク4の1つの部分へのアクセスと、を有することができる。コア3は、バンク4の別の部分へのアクセスと、バンク5~7への単独アクセスと、を有することができる。いくつかの実施形態では、同じ1つのバンクへのアクセスは、連続するTDMコマンドスロット上では発生することができないようになっている。
【0039】
このようにして、複数のプロセスを、1つのNVM装置の複数の異なるアドレス空間に割り当てることができ、これにより、コアによる全てのアクセスが非干渉となり、固定の最大レイテンシを有することができることが保証される。
【0040】
図4Aは、プロセッサ装置に供給可能であるか、またはプロセッサ装置によって決定可能である遅延値を示す表である。遅延値は、TDM IN-TDM OUT値であってよく、このTDM IN-TDM OUT値は、(読み出しアクセスに対応する)コマンド/アドレス値の適用と、結果的に生じた読み出されたデータと、の間のサイクル数を示唆することができる。このような値によって、プロセッサ装置は、対応するTDMコマンドスロットのための適切なTDM読み出しスロットを確立することが可能となる。
【0041】
図4Bは、各実施形態による読み出し動作に対するレイテンシを示す。プロセッサ装置は、読み出しコマンド(CMD/ADD IN)を発行することができる。コマンドおよびアドレス値は、レイテンシL_inの後、NVM装置に到達することができる。NVM装置は、コマンドおよびアドレスデータの処理と、バンクへのアクセスと、出力バス上での読み出されたデータの駆動と、に対応する、NVM装置の独自のアクセスレイテンシL_nvmを有する。読み出されたデータは、レイテンシL_outの後、プロセッサ装置によって受信可能となり、要求を発行してきたプロセスにとって利用可能となる。全時間は、アクセス時間t_accessであり得る。本明細書でより詳細に示されるように、複数の異なるバンクへのアクセスを時間的に重複させることができるので、コマンド/アドレス値を、アクセス時間(t_access)よりも高速なレートで発行することができる。
【0042】
t_accessに加えて、全レイテンシは、コアのためのTDMタイムスロットが利用可能になると含むことができることが理解される。TDMコマンドスケジュールは繰り返されるので、現在のTDMラウンドでコアがスロットに到達し損なった場合には、次のTDMラウンドにおいてサービスが提供される。すなわち、TDM順序の繰り返しによって、いくらかのレイテンシを伴ってコアにサービスが提供されることが保証される。
【0043】
図5A~
図5Cは、各実施形態による種々のバンク割り当てを示す図である。
図5A~
図5Cは、システムが4つのコア(コア0~コア3)をNVM装置の8つのバンク(バンク0~バンク7)に割り当てているものと仮定している。
【0044】
図5Aは、それぞれのコアにバンク全体が割り当てられている構成を示す。すなわち、コア0にはバンク0/1が割り当てられており、コア1にはバンク2/3が割り当てられており、コア2にはバンク4/5が割り当てられており、コア3にはバンク6/7が割り当てられている。このような構成では、アクセスが干渉する可能性がないので、TDMコマンドのアクセスは、アクセス順序に対する制約を有していなくてもよい。
【0045】
図5Bは、
図3Bに示されているもののような構成を示す。コア0およびコア1には、バンク0のうちのそれぞれ異なる部分が割り当てられている。コア2には、バンク1、バンク2およびバンク3の全部が割り当てられている。さらに、コア2およびコア3には、バンク4のうちのそれぞれ異なる部分が割り当てられている。コア3には、バンク5、バンク6およびバンク7の全部も割り当てられている。このような構成では、それぞれ1つのバンクを共有するコアペアとコアペアとをTDMコマンドの順序で交互にすることによって、衝突を回避することができる。
【0046】
図5Cは、コア(コア2)が3つ以上のバンクに割り当てられている構成を示す。特に、コア2は、バンク1の一部、バンク2ならびにバンク3の全部およびバンク4の一部に割り当てられている。このような構成では、プロセッサ装置は、動的なTDMスケジューリングを採用することができる。例えば、コア2によるアクセスは、バンク1へのアクセスではなかった場合を除いて、コア1によるアクセスの直後に後続する(次のTDMスロットで発生する)ことができず、またその逆も同様である。同様にして、コア2によるバンク4へのアクセスと、コア3によるバンク4へのアクセスも、互いに直後に後続することはできないだろう。TDM順序におけるコアの位置が固定されていないので、このような動的スケジューリングによって結果的に可変のレイテンシ時間が生じる可能性があることに留意されたい。
【0047】
図6Aは、1つの実施形態による、NVM装置へのTDMアクセスのスケジューリングを示すタイミング図である。
図6Aは、
図5Aのような構成に関するアクセスを示し、ここでは、それぞれのコアに(それぞれ異なる)バンク全体が割り当てられている。NVM装置の複数の異なるバンクに同時にアクセスすることができる(が、複数のコアが同じ1つのバンクに同時にアクセスすることはできない)と想定されている。
【0048】
図6Aは、コントローラ装置から(NVM装置に)出力されたコマンドおよびアドレス入力(コマンド/アドレス)と、アドレス指定されたバンクへのアクセス動作(バンクの読み出し)と、を示す。「バンクの読み出し」は、対応するコアによって識別されるが、それぞれ異なるバンクを対象にしていると理解される。
【0049】
時間t0において、コア0のためにアクセス要求を発行することができる。
【0050】
約t1の時点で、コア0のためのアクセス要求は、「バンクの読み出し」におけるコア0によって示されるようにNVM装置によって処理され始めることができる。ほぼ同時に、コア1のために次のアクセス要求を発行することができる。
【0051】
時間t2では、コア0のためのバンクアクセスを継続することができるが、さらに、コア1のためのバンクアクセスを開始することができる。このようなアクセスは、それぞれ異なるバンクに対するものであるので、同時に発生することができる。このことは、時間t2とt3との間でコア0のためのバンクアクセスとコア1のためのバンクアクセスとが重複していることによって示されている。また、約t2の時点で、コア2のためにアクセス要求を発行することができる。
【0052】
約t3において、コア0のためのバンクアクセスを終了することができる。コア1のためのバンクアクセスを継続することができ、コア2のためのバンクアクセスを開始することができる。時間t3とt4との間では、コア1のためのバンクアクセスとコア2のためのバンクアクセスとが同時に発生することができる。また、約t3において、コア3のためにアクセスを発行することができる。
【0053】
コアアクセスは、全てのバンクアクセスが完了するまで、時間に関して重複された形式で継続することができる。
【0054】
引き続き
図6Aを参照すると、コマンドアドレストランザクション(コマンド/アドレス)のための時間は、バンクアクセス時間よりも高速なレートで発生することができることに留意されたい。これにより、高いデータスループット動作を可能にすることができる。さらに、本明細書で述べたように、TDM順序が繰り返されるという性質により、全てのアクセス要求を固定された最大レイテンシでサービスすることができる。
【0055】
図6Bは、別の実施形態による、NVM装置へのTDMアクセスのスケジューリングを示すタイミング図である。
図6Bは、
図5Bのような構成に関するアクセスを示し、ここでは、コア0とコア1とが1つのバンクを共有することができ、コア2とコア3とが1つのバンクを共有している。
図6Bのスケジューリングは、1つのバンクを共有しているコア同士によるアクセスは、隣り合うTDMスロットにおいて発生することができないという制約を示す。このことは、コア0の後に(コア1ではなく)コア2が後続していることと、コア2の後に(コア3ではなく)コア1が後続していることと、を示しているTDM順序によって保証されている。
【0056】
図6Bのスケジューリングは、
図6Aと同じ高いスループット動作と、固定の最大レイテンシと、を有するが、TDM順序の制約(それぞれ同じ1つのNVMバンクを共有しているコアペアとコアペアとが交互になる)が加わっている。
【0057】
本明細書で述べたように各実施形態によれば、複数のプロセスに対してそれぞれ異なる帯域幅割り当てが得られるようにTDMコマンドスロットを変更することができる。すなわち、所望の性能を達成するために、いくつかのプロセス(例えば、コア)に対しては帯域幅を増大させ、他のプロセスに対しては帯域幅を減少させることができる。そのようなアプローチでは、TDMスケジューリングが採用されるので、全てのプロセスが、上限が課されたまたは固定されたレイテンシでNVM装置にアクセスすることを保証することができる。
【0058】
図7では、「コア」は、プロセスの数を示し、「スロット」は、TDMスロットの数を示し、「帯域幅」は、それぞれのコアのための全メモリ帯域幅(四捨五入)を示し、「最悪レイテンシ」は、(TDMスロットにおける)それぞれのコアのための最悪ケースのレイテンシを示し、「TDMスケジュール」は、コア毎のTDMスロット順序(左から右へ)を示す。
図7は、3つの例732-0~732-2を示す。このような例は、限定するものとみなされるべきではない。
【0059】
第1の例732-0は、
図6Aのような構成を示す。それぞれのコアには、TDMスケジュールにおいて同等のアクセス時間が与えられている。TDMスケジュールは、4つのTDMスロットを含む。最悪レイテンシは、それぞれのコアに対して同じであり得る。
【0060】
第2の例732-1は、コア0およびコア1に、コア2およびコア3よりも多く(2倍)のアクセスが与えられている構成を示す。TDMスケジュールは、6つのTDMスロットを含む。図示のように、より広い帯域幅を有するコアは、TDMシーケンス内での各自の位置がより頻繁に出現するので、最悪ケースのレイテンシがより小さくなっている。
【0061】
第3の例732-2は、コア0に、コア2およびコア3の4倍の帯域幅と、コア1の2倍の帯域幅と、が与えられている構成を示す。TDMスケジュールは、8つのTDMスロットを含む。ここでも、より広い帯域幅を有するコアは、最悪ケースのレイテンシがより良好になっている。
【0062】
このようにして、いくつかのプロセスのための帯域幅を他のプロセスの帯域幅よりも増加させるためにTDMアクセスを割り当てることができる。
【0063】
図8A~
図8Dは、本明細書に記載されているようなTDMコマンドスロットを使用するプロセッサ装置による種々のNVMアクセスを示す。図示されている種々の例では、NVM装置への読み出しアクセスが、コマンドクロック(図示せず)の4クロックにわたって送信されるコマンド/アドレス値に応答して発生することができると想定されている。
図8A~
図8Dの各々は、コマンド/アドレス値(コマンド/アドレス)と、結果的に生じるNVM装置におけるバンクアクセス(バンクアクセス)と、結果的に生じるNVM装置からのデータ出力(データ出力)と、を示す。データ出力値は、DDR出力であってよく、クロックサイクル毎に2回、データを並列(例えば、×16)に供給する。さらに、アクセスは、NVM装置の内部でのバンクアクセスよりも高速なレートで発生することができる。
【0064】
図8Aは、アクセス要求がバンクアクセス速度と同じレートで発行される構成を示す。コマンド/アドレス値は、4クロックにわたって発行可能である(それぞれの値は、「A」として示されている)。結果的に生じるバンクアクセスは、約8クロックを費やすことができる。コマンド/アドレス値は、バンクアクセス値よりも高速なレートでは受信されないので、バンクアクセス同士を時間的に重複させる必要はない。それぞれのバンクから、データを8バースト(それぞれのバーストは、Dとして示されている)で出力することができる。1つのバーストは、複数のビット(例えば、×16)であり得ることが理解される。
図8Aの構成では、コマンドが発行されてから全てのデータが出力されるまでの時間(トランザクションレイテンシ、trn)は、28クロックサイクルであり得る。最悪ケースのレイテンシ(twc)は、60クロックサイクルであり得る。したがって、平均レイテンシは、約44クロックサイクルであり得る。
図8Aの構成では、コアは、任意のバンクにアクセスすることができ、かつ任意のバンクを共有することができる。特定の例では、インターフェースクロック速度(コマンドシーケンスが受信される速度)は、800MHzであってよく、その一方で、NVM装置の内部速度は、100MHzであってよい(すなわち、データバーストを10ns毎に供給する)。
【0065】
図8Bは、アクセス要求をバンクアクセス速度よりも高速なレートで発行することができる構成を示す。コマンド/アドレス値は、連続する4クロック期間にわたって発行可能である。したがって、バンクアクセス同士は、時間的に重複する。
図8Bでは、データを8バースト(DDRレートで4サイクル)で出力することができる。このような構成では、トランザクションレイテンシ(trn)は、24クロックサイクルであり得る。最悪ケースのレイテンシ(twc)は、40クロックサイクルであり得る。したがって、平均レイテンシは、約32クロックサイクルであり得る。
図8Bの構成では、後続するアクセスを、同じ1つのバンクに対して行うことができない。特定の例では、インターフェースクロック速度は、800MHzであってよく、その一方で、NVM装置の実効内部速度は、200MHzであってよい(すなわち、データバーストを5ns毎に供給する)。
【0066】
図8Cおよび
図8Dは、
図8Aおよび
図8Bの例よりもバンクアクセス時間に関してより高速なレートでコマンド/アドレス値を入力することができる構成を示す。
【0067】
図8Cは、アクセス要求がバンクアクセス速度の2倍の速度で発行される構成を示す。コマンド/アドレス値は、4クロックにわたって発行可能であり、結果的に生じるバンクアクセスは、約16クロックを費やすことができる。それぞれのバンクから、データを8バーストで出力することができる。
図8Cの構成では、トランザクションレイテンシ(trn)は、44クロックサイクルであり得る。最悪ケースのレイテンシ(twc)は、80クロックサイクルであり得る。したがって、平均レイテンシは、約60クロックサイクルであり得る。
図8Cの構成では、後続するアクセスを、同じ1つのバンクに対して行うことができない。特定の例では、インターフェースクロック速度は、1600MHzであってよく、その一方で、NVM装置の実効内部速度は、200MHzであってよい。
【0068】
図8Dは、アクセス要求をバンクアクセス速度の4倍の速度で発行することができる構成を示す。コマンド/アドレス値は、連続する4クロック期間にわたって発行可能である。したがって、それぞれ異なるバンクへのバンクアクセス同士は、時間的に重複する。
図8Dでは、データを8バーストで出力することができる。このような構成では、トランザクションレイテンシ(trn)は、44クロックサイクルであり得る。最悪ケースのレイテンシ(twc)は、60クロックサイクルであり得る。したがって、平均レイテンシは、約52クロックサイクルであり得る。
図8Dの構成では、コア間でバンクを共有することはできない。特定の例では、インターフェースクロック速度は、1600MHzであってよく、その一方で、NVM装置の実効内部速度は、200MHzであってよい。
【0069】
図9は、種々の実施形態によるプロセッサ装置に関する性能パラメータを示す表である。
図9は、800MHzおよび1600MHz(MT/sの単位でも、クロックサイクル持続時間(ns)でも示されている)の速度の場合における、インターフェースの種々の例に関する値を示す。読み出しバースト(データ出力)は、並列×16およびDDR形式であってよい。読み出しバーストは、16バースト(256b)または8バースト(128b)であってよい。2つのコアまたは4つのコアによって1つのNVMバンクを共有する例を含む、複数の例に関するバンク共有の可能性が示されている。総トランザクションレイテンシの種々の成分は、アドレス転送(コマンドアドレスデータが装置にクロックされる時間)、発行までの遅延(コマンドおよびアドレスデータがNVM装置によって処理される時間)、アレイ読み出し(NVMアレイにアクセスする時間)、データ出力までの遅延(アレイからNVM出力回路へのデータを取得する時間)およびデータ出力(装置からデータをクロックする時間)として示されている。
【0070】
図9は、1つのコアによる種々の帯域幅共有(すなわち、50%のTDMスロット、33%のTDMスロット、25%のTDMスロット、12.5%のTDMスロット)に関する最悪ケースのレイテンシおよび平均レイテンシも示す。
【0071】
図示のように、NVMメモリにアクセスするために複数のコアが競争しなければならないようなシステムに関して、複数のコアは、同じ1つのNVM装置への高いスループットアクセスを有すると共に、短い最悪ケースのレイテンシおよび短い平均レイテンシを有することができる。
【0072】
図10は、1つの実施形態による方法1034のフローチャートである。方法1034は、プロセッサ装置とNVM装置との間でTDM動作を開始することを含むことができる1034-0。このようなアクションは、プロセッサ装置において特定のモードを開始することおよび/またはNVM装置を構成することを含むことができる。いくつかの実施形態によれば、このようなアクションは、特定のTDMスロットにマスタを割り当てることを含むことができる。マスタは、NVMの格納場所にアクセスする必要のある、プロセッサ装置上で実行される種々のプロセスであってよい。さらに、そのようなアクションは、アドレス範囲(例えば、バンク)をマスタに割り当てることを含むことができる。
【0073】
TDM動作が開始されると、方法1034は、いつマスタからコマンドアドレスデータが受信されたかを特定することができる1034-1。受信したコマンドアドレスデータを、マスタ(すなわち、コマンド/アドレスの起点)1034-2に基づいて特定のTDMスロットに割り当てることができる。
【0074】
方法1034はTDMスロットを循環するので、現在のTDMスロットが、受信したコマンドアドレスデータに割り当てられているTDMスロットであるかどうかを判定することができる1034-3。現在のTDMスロットが、割り当てられているTDMスロットである場合(1034-3からのY)、方法1034は、コマンドアドレスデータをNVM装置に送信することができる1034-4。現在のTDMスロットが、割り当てられているTDMスロットではない場合(1034-3からのN)、方法1034は、次のTDMスロットに進むことができる1034-5。TDM動作が終結していない場合(1034-6からのN)、方法1034は、マスタからコマンドアドレスデータを受信するために戻ることができる1034-1。
【0075】
TDM動作が開始されると、方法1034は、TDM IN-OUT遅延タイマを開始することもできる1034-7。このようなタイマは、TDM読み出しデータシーケンスがいつ開始されるかを示すことができる。ある1つのTDM読み出しデータスロット内で、読み出されたデータが検出された場合(1034-8からのY)、そのTDM読み出しデータスロットのTDM読み出しスロット番号に基づいて、その割り当てられた場所に対してデータを読み出すことができる1034-9。読み出されたデータが検出されなかった場合(1034-8からのN)、方法は、次のTDM読み出しデータスロットに進むことができる1034-10。TDM動作が終了しない場合(1034-11からのN)、方法1034は、次のTDM読み出しデータスロットに進むことができる。
【0076】
図11は、別の実施形態による自動車制御システム1150のブロック図である。システム1150は、
図1A/
図1Bまたは
図2に示されているシステムの一例であってよい。システム1150は、処理コア1102-0~1102-3、MUXならびにDMUX1104/1106、メモリコントローラ1108およびシステムI/O1136を含むことができる。コア(1102-0~1102-3)は、プロセッサと、関連する回路(例えば、キャッシュメモリ、バスなど)と、を含むことができる。いくつかの実施形態によれば、いくつかのコア(1102-1~1102-3)を、自動車の1つまたは複数のシステムのための処理タスク(1136-1~1136-3)のための専用にすることができ、その一方で、1つまたは複数の他のコア(1102-0)は、システム1150の種々の動作を管理および/または監視するための監督機能1136-0を実行することができる。メモリコントローラ1108は、コマンドアドレスバス1110およびデータバス1114に接続可能である。システムI/O1138を、種々の自動車システムに接続して、このような他の自動車システムからデータを受信することおよび/またはこのような他の自動車システムにデータを送信することができる。システムI/Oは、限定するわけではないがコントローラエリアネットワーク(CAN)形式のバスを含む、任意の適切なバスシステムのためのインターフェースを含むことができる。
【0077】
コマンドアドレスバス1110は、チップセレクトCS、入力クロックCK_tおよびコマンドアドレスデータCAを含むことができる。データバスは、第1のデータクロックDQS0_tに同期してデータを出力する第1のデータのセットI/O DQ[7:0]と、第2のデータクロックDQS1_tに同期してデータを出力する第2のデータのセットI/O DQ[15:8]と、を含むことができる。
【0078】
NVM装置1112は、LPDDR4 I/F1122、制御回路1140および複数の別個にアクセス可能なNVMバンク1128-0~1128-7を含むことができる。NVM装置1112は、本明細書に記載されたNVM装置のいずれかおよびその均等物と同様の形態をとることができ、かつ/または同様の形態で動作することができる。制御回路1140は、コマンドキュー1124およびデータキュー1126を含むことができる。
【0079】
動作中、コア1102-0~1102-3には、本明細書に記載する実施形態のいずれかまたはその均等物に従ってNVMバンク1128-0~1128-7を割り当てることができる。さらに、コア(1102-0~1102-3)には、それぞれのコアの処理要件に応じてTDMスロットを割り当てることができ、いくつかのコアは、他のコアよりも広い帯域幅を有する。特に、監督機能1136-0を実行することができるコア1140-0には、所定のレイテンシの保証を含む、そのコアの監督ニーズに適した帯域幅を割り当てることができる。
【0080】
自動車コントローラ1100の内部では、プロセス1136-0~1136-3が、必要に応じてメモリ読み出し要求を発行することができる。このような要求を、MUX1104によって、割り当てられたTDMスロットにおいて出力することができる。メモリコントローラ1108は、CSがアクティブである間、そのような要求をコマンドアドレスバスCA上に出力することができる。入力クロックCK_tに同期して、CA上のデータをコマンドシーケンスで出力することができる。いくつかの実施形態では、それぞれのコマンドは、2つのCK_tサイクルで入力可能である。コマンドアドレスバス1110上の信号は、LPDDR4規格との互換性を有することができる。
【0081】
NVM装置1112の内部では、TDM要求を、LPDDR4 I/F1122によって受信して、コマンドキュー1124に格納することができる。その後、そのような要求に従ってNVMバンク(1128-0~1128-7)にアクセスすることができる。NVMバンク(1128-0~1128-7)は、本明細書の各実施形態に関して説明したように別個にアクセス可能である。自動車コントローラ1100から受信した要求に応答して、NVM装置1112は、データキュー1126にデータを出力することができる。データキュー1126内のデータは、LPDDR4 I/F1122によってデータバス1114上で駆動可能である。特に、DQ[7:0]上のデータは、立ち上がりエッジおよび立ち下がりエッジまたはデータクロックDQS0_tにおいて出力可能であり、DQ[15:8]上のデータは、立ち上がりエッジおよび立ち下がりエッジまたはデータクロックDQS1_tにおいて出力可能である。
【0082】
自動車コントローラ1100の内部では、データバス1114上で受信した読み出されたデータをTDM読み出しスロットへと編成することができる。プロセス(1136-0~1136-3)は、各自に割り当てられたTDM読み出しスロットからデータを読み出すことができる。
【0083】
図12Aおよび
図12Bは、1つの実施形態による、プロセッサ装置によって生成することができるメモリ要求動作を示す図である。
図12Aは、1つの実施形態による、LPDDR4インターフェースを介した1つの種類の読み出しアクセスを示すタイミング図である。
図12Aは、入力クロック(CK_t)、チップセレクトCS、コマンドアドレス値(CA)、(CA値によって生成される)対応するコマンド(Command)、データクロックDQ_tおよび並列データ値のセットであると理解されるデータ値DQ(例えば、バイト、ワード、ダブルワードなど)に関する波形を含む。
【0084】
図12Aは、標準的なLPDDR4シーケンスよりも高速にアクセスを行うことができるカスタムの読み出しコマンドの一例を示す。図示のように、2つのコマンド(NVR-1~NVR-2)を、LPDDR4インターフェースにおいて4サイクルCK_t(全レイテンシに3サイクルを加算する)にわたって受信することができる。読み出しレイテンシおよびクロックスキュー期間(RL+tskw)に後続して、データ(DQ)を、データクロック(DQ_t)に同期してダブルデータレートで出力することができる。図示の実施形態では、データは、8以上のバーストシーケンス(例えば、16)で出力可能である。
【0085】
いくつかの実施形態では、NVMセルにアクセスするための読み出しレイテンシ(RL)は、極めて高速に、すなわち20ns未満または約17.5nsで達成可能である。tskw値は、4ns未満または約2.5nsであり得る。したがって、クロック(CK_t)速度が800MHzである場合には、第1のコマンド部分のラッチングからデータの出力までを、たった19クロックサイクル(t_CMD=3サイクル、RL=14サイクル、tskw=2サイクル)とすることができる。
図12Aに示されているもののような高速のコマンドシーケンスにより、迅速なアクセスが次々に実行されることを可能にすることができる。
【0086】
図12Bは、各実施形態における、プロセッサ装置によって生成することができるNVMセル(例えば、バンク)にアクセスするためのコマンドシーケンスを示す表である。コマンドシーケンスは、2つのコマンド、すなわちNVR-1およびNVR-2のみを含むことができる。このことは、4つのコマンド(Activate1-Activate2-Read1-CAS2)を含むことができる従来のLPDDR4の読み出しコマンドとは対照的である。
図12Bは、コマンドの種類を識別するCOMMANDの列、チップセレクト値を識別するCSの列、コマンド/アドレスバス値(CA0~CA5)の列およびクロック値CKの列を含む。図示のように、それぞれのコマンドは、第1のクロック遷移(CK=1)と、直後に後続する同じ種類(例えば、立ち上がりエッジ)の次のクロック遷移(CK=2)と、に適用されるビット値のセットを含む。このようなコマンドは、LPDDR4互換インターフェース上で受信可能であり、LPDDR4コマンドの一般的な形態をとることができる。しかしながら、NVR-1およびNVR-2は、LPDDR4規格の一部ではない。
【0087】
図示の特定の実施形態では、第1のコマンドNVR-1は、上位のアドレス値(例えば、バンクおよび行の値)を含むことができ、その一方で、第2のコマンドNVR-2は、下位のアドレス値(例えば、行および列の値)を含むことができる。しかしながら、コマンドのこの特定のビット形式は、限定するものとみなされるべきではない。
【0088】
図13は、各実施形態によるシステムに含めることができるNVM装置1312のブロック図である。NVM装置1312は、本明細書の各実施形態に示されているもののうちの1つの実装形態であってよい。NVM装置1312は、LPDDR4互換PHY(LPDDR4 PHYと称される)1322、QSPI互換PHY(QSPI PHYと称される)1340、複数のバンク1328-0~1328-7、それぞれのバンク(1328-0~1328-7)のための第1のアクセスパス1342-0~1342-7、それぞれのバンク(1328-0~1328-7)のための第2のアクセスパス1344-0~1344-7、バンクアクセスレジスタ1346および組み込み動作セクション1348を含むことができる。
【0089】
LPDDR4 PHY1322は、チップセレクトCS、クロック入力CK_t、コマンドアドレスCA入力を受信することができ、対応するデータクロック出力DQS0_tと共に第1のデータ出力DQ[7:0]と、対応するデータクロック出力DQS1_tと共に第2のデータ出力DQ[15:8]と、を出力することができる。いくつかの実施形態では、LPDDR4 PHY1322は、いくつかのLPDDR4互換コマンドを処理することができるが、LPDDR4書き込みコマンドを処理することはできない。LPDDR4 PHY1322は、第1のバスシステム1352を介してバンク(1328-0~1328-7)に接続可能である。LPDDR4 PHY1322を介して読み出されるデータの転送レートは、QSPI PHY1340よりも高速であってよい。いくつかの実施形態では、LPDDR4 PHY1322は、LPDDR4 PHY1322を介してアクセス要求をシグナリングするために、組み込み動作セクション1348と通信することができる。
【0090】
QSPI PHY1340は、シリアルデータラインを介して受信した受信コマンドを処理することができる。そのようなコマンドは、読み出しと書き込みとの両方の(例えば、プログラム)コマンドを含むことができる。
【0091】
バンクアクセスレジスタ1346は、それぞれのバンク毎(1328-0~1328-7)に、バンクへのアクセスを制御することができるバンクアクセスデータを格納することができる。いくつかの実施形態では、あるバンク(1328-0~1328-7)に対するバンクアクセスデータがある1つの値を有する場合、そのバンクには、QSPI PHY1340を介してアクセスすることが可能であり、LPDDR4 PHY1322によってアクセスすることは不可能である。バンクアクセスデータが別の値を有する場合、そのバンクには、LPDDR4 PHY1322によってアクセスすることが可能であり、QSPI PHY1340によってアクセスすることは不可能である。
【0092】
それぞれのバンク(1328-0~1328-7)は、行および列の形態で配置された複数のNVMセルを含むことができ、一意のバンクアドレスを介して個別にアクセス可能である。いくつかの実施形態では、NVMセルは、グループ消去可能であってよい(例えば、フラッシュ型セル)。読み出しパス(1342-0~1342-7)は、LPDDR4 PHY1322から第1のバスシステム1352を介して、各自の対応するバンク(1328-0~1328-7)への読み出しアクセスをイネーブルすることができる。読み出し/書き込みパス(1344-0~1344-7)は、QSPI PHY1340から第2のバスシステム1354を介して、各自の対応するバンク(1328-0~1328-7)への読み出しまたは書き込みアクセスをイネーブルすることができる。いくつかの実施形態では、読み出しパス(1342-0~1342-7)および読み出し/書き込みパス(1344-0~1344-7)を、バンクアクセス値に応じてイネーブルまたはディスエーブルすることができる。複数の異なるバンク(1328-0~1328-7)に同時にアクセスすることができる。
【0093】
組み込み動作セクション1348は、書き込みバッファ1348-0、コマンドプロセッサ1348-1およびプロセッサセクション1348-2を含むことができる。書き込みバッファ1348-0は、アドレス指定されたバンク(1328-0~1328-7)への後続のプログラミングのために、QSPI PHY1340から書き込みデータを受信して格納することができる。コマンドプロセッサ1348-1は、QSPI PHY1340上で受信したコマンドデータをデコードして、コマンドを実行するための適切な制御信号を生成することができる。プロセッサセクション1348-2は、NVM装置1312のための種々の機能を実行するために、1つまたは複数の中央処理ユニット(CPU)を含むことができる。このような機能は、バンクアクセス値を設定することを含むことができる。さらに、プロセッサセクション1348-2は、ほんの数例ではあるが、メンテナンスNVMセル(例えば、ウェアレベリング)、セクタアクセス制御(ブートセクタ)、暗号化/復号化のいずれかを提供することができる。
【0094】
図14は、1つの実施形態による自動車システム1460を示す。自動車システム1460は、限定するわけではないが主制御サブシステム1478-0、エンジンパワートレイン制御システム1478-1、サスペンションタイヤ制御システム1478-2、車体制御システム1478-3を含む、多数のサブシステムを有することができる。主制御サブシステム1478-0は、本明細書に開示された実施形態によるプロセッサ装置14000およびNVM装置1412またはその均等物を含むことができる。主制御サブシステム1478-0は、インフォテインメント機能(ナビゲーション、通信、エンターテインメント装置、データストレージ、デジタルオーディオ放送)と、他の全てのシステムの監督監視と、を制御することができる。いくつかの実施形態では、主制御サブシステム1478-0は、
図11に示されているもののうちの1つの実装形態であってよい。このような構成では、プロセッサ装置1400は、本明細書に記載されているような複数のプロセスおよびその均等物を有することができ、これらのプロセスおよびその均等物は、NVM装置1412のバンクにTDM構成でアクセスすることができ、NVM装置1412から読み出されたデータをTDM構成で受信することができる。特に、監督プロセスは、いくらかの最大レイテンシ内で、NVM装置1412への比較的迅速なアクセス(LPDDR4互換シグナリング)を有することができる。
【0095】
本明細書全体を通した「1つの実施形態」または「実施形態」への参照は、その実施形態に関連して記載された特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれていることを意味していることが理解されるべきである。したがって、本明細書の種々の部分における「実施形態」または「1つの実施形態」または「代替的な実施形態」への2回以上の参照は、必ずしも全て同じ実施形態を指しているわけではないことが強調され、理解されるべきである。さらに、特定の特徴、構造、または特性を、本発明の1つまたは複数の実施形態において適切となるように組み合わせてもよい。
【0096】
同様に、本発明の例示的な実施形態の前述の説明では、進歩性のある種々の態様のうちの1つまたは複数の態様の理解を促進する本開示を簡素化する目的で、本発明の複数の異なる特徴が、単一の実施形態、図面、またはそれらの説明において一緒にグループ化されているときがあることが理解されるべきである。しかしながら、この開示手法は、特許請求の範囲が、それぞれの請求項に明示的に記載された特徴よりも多くの特徴を必要とするという意図を反映しているとして解釈されるべきではない。むしろ、進歩性のある態様は、上で開示された単一の実施形態の全ての特徴よりも少ないことにある。したがって、詳細な説明に後続する特許請求の範囲は、これにより、この詳細な説明に明示的に組み込まれており、なお、それぞれの請求項は、本発明の別個の実施形態として独立している。
【国際調査報告】