JP2018524739A - 複数のインターフェースによるメモリ空間へのコンカレントアクセス - Google Patents

複数のインターフェースによるメモリ空間へのコンカレントアクセス Download PDF

Info

Publication number
JP2018524739A
JP2018524739A JP2018502230A JP2018502230A JP2018524739A JP 2018524739 A JP2018524739 A JP 2018524739A JP 2018502230 A JP2018502230 A JP 2018502230A JP 2018502230 A JP2018502230 A JP 2018502230A JP 2018524739 A JP2018524739 A JP 2018524739A
Authority
JP
Japan
Prior art keywords
interface
storage bank
application
storage
circuit
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
JP2018502230A
Other languages
English (en)
Other versions
JP6363316B1 (ja
Inventor
ニティンクマール・バロット
イーファン・リー
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Application granted granted Critical
Publication of JP6363316B1 publication Critical patent/JP6363316B1/ja
Publication of JP2018524739A publication Critical patent/JP2018524739A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

メモリデバイスへのアクセスを容易にするシステム、方法および装置について説明する。メモリデバイス内のメモリ空間は、複数のストレージバンク領域に分割される。その後、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路は、1つまたは複数のアプリケーション使用要件に基づいて複数のインターフェースグループに分類される。複数のインターフェースグループのうちの各インターフェースグループは、複数のストレージバンク領域からの対応するストレージバンク領域に割り当てられる。次いで、各インターフェースグループと対応するストレージバンク領域との間のアクセスが提供され、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする。

Description

関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年7月21日に米国特許商標庁に出願された非仮出願第14/805,185号の優先権および利益を主張する。
本開示は、一般に情報記憶デバイスに関し、より詳細には、複数のアプリケーションインターフェース回路による情報記憶デバイスのストレージ領域へのコンカレントアクセス(Concurrent Access)を容易にすることに関する。
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な成長をとげている。ワイヤレスサービスプロバイダは現在、多岐にわたる機能およびサービスを提供し、情報、リソースおよび通信に対するかつてないレベルのアクセスをユーザに提供している。これらのサービス向上と歩調を合わせて、モバイル電子デバイス(たとえば、携帯電話、タブレット、ラップトップなど)は、これまでよりも機能が豊富で複雑になってきている。今では、モバイル電子デバイスは通常、モバイルデバイスユーザが自分のモバイルデバイス上で複雑で電力集約的なソフトウェアアプリケーション(たとえば、ビデオストリーミング、マルチメディア処理など)を実行することを可能にする、複数のプロセッサ、システムオンチップ(SoC)、複数のメモリ、および他のリソース(たとえば、パワーレールなど)を含む。モバイルデバイスおよび関連の技術の人気が高まり、その使用が広がり続けるにつれて、モバイルデバイスの実行能力および電力消費特性を改善することは、モバイルデバイス設計者にとって重要で困難な設計基準になると予想されている。
本明細書で開示する実施形態は、メモリデバイスにアクセスするためのシステム、方法および装置を提供する。
本開示の一態様では、メモリデバイスにアクセスするための方法は、メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割するステップと、1つまたは複数のアプリケーション使用要件に基づいて、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類するステップと、複数のインターフェースグループのうちの各インターフェースグループを複数のストレージバンク領域からの対応するストレージバンク領域に割り当てるステップと、各インターフェースグループと対応するストレージバンク領域との間のアクセスを提供するステップとを含む。第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする。ストレージバンク領域は、別々に電力制御され得る。
1つまたは複数のアプリケーション使用要件は、アプリケーションストレージサイズ要件、アプリケーションインターフェース帯域幅要件、またはアプリケーションインターフェースレイテンシ要件のうちの少なくとも1つを含み得る。アクセスは、複数のインターフェースグループとストレージバンク領域との間のコンカレントデータフローを管理する複数のルータによって提供され得る。複数のルータは、アプリケーションインターフェース回路と複数のストレージバンク領域との間に配置され得る。複数のルータのうちの各ルータは、異なるストレージバンク領域のストレージバンクを含む、ストレージバンクの対応するセットに隣接して配置され得る。いくつかの態様によれば、メモリデバイスにアクセスするための方法は、低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信するステップをさらに含み得る。
本開示の一態様では、メモリデバイスにアクセスするための装置は、メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割するための手段と、1つまたは複数のアプリケーション使用要件に基づいて、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類するための手段と、複数のインターフェースグループのうちの各インターフェースグループを複数のストレージバンク領域からの対応するストレージバンク領域に割り当てるための手段と、各インターフェースグループと対応するストレージバンク領域との間のアクセスを提供するための手段とを含む。第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする。いくつかの態様によれば、メモリデバイスにアクセスするための装置は、低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信するための手段と、ストレージバンク領域を別々に電力制御するための手段とをさらに含み得る。
本開示の一態様では、メモリデバイスにアクセスするための装置は、メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割することと、1つまたは複数のアプリケーション使用要件に基づいて、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類することと、複数のインターフェースグループのうちの各インターフェースグループを複数のストレージバンク領域からの対応するストレージバンク領域に割り当てることと、各インターフェースグループと対応するストレージバンク領域との間のアクセスを提供することとを行うように構成された少なくとも1つのプロセッサを含む。第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする。
本開示の一態様では、プロセッサ可読記憶媒体は、少なくとも1つの処理回路によって実行されると、少なくとも1つの処理回路に、メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割することと、1つまたは複数のアプリケーション使用要件に基づいて、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類することと、複数のインターフェースグループのうちの各インターフェースグループを複数のストレージバンク領域からの対応するストレージバンク領域に割り当てることと、各インターフェースグループと対応するストレージバンク領域との間のアクセスを提供することとを行わせる1つまたは複数の命令を有する。第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする。
装置の動作を制御するように構成された処理回路を含む装置を示す図である。 N相極性符号化データリンクを採用する装置のためのシステムアーキテクチャを示す図である。 装置のいくつかの態様を示すブロック図である。 デバイス内のモジュール/回路/プロセッサの機能編成を示す図である。 メモリ空間におけるメモリストレージバンクの編成を示す図である。 本開示による、メモリを編成するための例示的な論理的トポロジを示す図である。 本開示による、メモリを編成するための例示的な物理的トポロジを示す図である。 メモリ空間の編成を示す図である。 本開示の態様によるルータを示す図である。 メモリを編成するための物理的トポロジを示す図である。 メモリデバイスにアクセスする方法を示すフローチャートである。 本開示の1つまたは複数の態様による、メモリデバイスにアクセスすることに関連する動作をサポートするように構成された装置の図である。
次に、図面を参照しながら様々な態様について説明する。以下の説明では、説明の目的で、1つまたは複数の態様の完全な理解を与えるために多数の具体的な詳細を記載する。しかしながら、そのような態様がこれらの具体的な詳細なしに実践される場合があることは明らかであろう。
本出願で使用する「構成要素」、「モジュール」、「システム」などの用語は、限定はしないが、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアなどの、コンピュータ関連のエンティティを含むものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってもよい。例として、コンピューティングデバイス上で動作するアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在することができ、構成要素は、1つのコンピューティングデバイス上に局在化される、および/または、2つ以上のコンピューティングデバイス間で分散される場合がある。加えて、これらの構成要素は、様々なデータ構造を記憶した様々なコンピュータ可読媒体から実行することができる。構成要素は、ローカルシステム内の、分散システム内の、および/または、インターネットなどのネットワークにわたる別の構成要素と対話する1つの構成要素からのデータなどの、1つまたは複数のデータパケットを有する信号などに従うローカルプロセスおよび/またはリモートプロセスにより、信号を用いて他のシステムと通信する場合がある。
さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、別段に規定されていない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」という句は、自然包括的並べ替えのいずれかを意味するものとする。すなわち、「XはAまたはBを採用する」という句は、以下の場合のいずれかによって満たされる。XはAを採用する。XはBを採用する。またはXはAとBの両方を採用する。加えて、本出願および添付の特許請求の範囲で使用する冠詞「a」および「an」は、別段に規定されていない限り、または単数形を対象とすることが文脈から明らかでない限り、概して「1つまたは複数の」を意味するものと解釈されるべきである。
「コンピューティングデバイス」および「モバイルデバイス」という用語は、本明細書では、サーバ、パーソナルコンピュータ、スマートフォン、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、ウルトラブック、パームトップコンピュータ、携帯情報端末(PDA)、ワイヤレス電子メール受信機、マルチメディアインターネット対応携帯電話、全地球測位システム(GPS)受信機、ワイヤレスゲームコントローラ、およびプログラマブルプロセッサを含む同様のパーソナル電子デバイスのうちのいずれか1つまたはすべてを指すために互換的に使用される。様々な態様は、限定されたリソース(たとえば、処理能力、バッテリーなど)を有するモバイルデバイス(たとえば、スマートフォン、ラップトップコンピュータなど)において特に有用であるが、態様は、改善されたプロセッサ性能および低減されたエネルギー消費から恩恵を受けることができる任意のコンピューティングデバイスにおいて概して有用である。
「マルチコアプロセッサ」という用語は、本明細書では、プログラム命令を読み取り、実行するように構成された2つ以上の独立した処理ユニットまたはコア(たとえば、中央処理ユニット(CPU)コアなど)を含む単一の集積回路(IC)チップまたはチップパッケージを指すために使用される。「マルチプロセッサ」という用語は、本明細書では、プログラム命令を読み取り、実行するように構成された2つ以上の処理ユニットを含むシステムまたはデバイスを指すために使用される。
「システムオンチップ」(SOC)という用語は、本明細書では、単一の基板上に統合された複数のリソースおよび/またはプロセッサを含む単一の集積回路(IC)チップを指すために使用される。単一のSOCは、デジタル、アナログ、混合信号、および無線周波数機能のための回路構成を含んでもよい。単一のSOCはまた、任意の数の汎用および/または専用プロセッサ(デジタル信号プロセッサ、モデムプロセッサ、ビデオプロセッサなど)、メモリブロック(たとえば、ROM、RAM、Flashなど)、およびリソース(たとえば、タイマー、電圧調整器、発振器など)を含んでもよく、それらのうちのいずれかまたはすべては、1つまたは複数のコアに含まれてもよい。
いくつかの異なるタイプのメモリおよびメモリ技術が利用可能であるか、または将来企図され、それらのすべては、様々な態様とともに使用するのに適している。そのようなメモリ技術/タイプは、相変化ランダムアクセスメモリ(PRAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、不揮発性ランダムアクセスメモリ(NV RAM)、擬似ランダムアクセスメモリ(PSRAM)、ダブルデータレート(DDR)同期ダイナミックランダムアクセスメモリ(SDRAM)、ならびに当技術分野で知られている他のランダムアクセスメモリ(RAM)および読取り専用メモリ(ROM)技術を含む。DDR SDRAMメモリは、DDRタイプ1 SDRAMメモリ、DDRタイプ2 SDRAMメモリ、DDRタイプ3 SDRAMメモリ、またはDDRタイプ4 SDRAMメモリであり得る。上述のメモリ技術の各々は、たとえば、コンピュータまたは他のデジタル電子デバイスにおいて使用するための、またはそれらが使用するための命令、プログラム、制御信号、および/またはデータを記憶するのに適した要素を含む。個々のタイプのメモリ、インターフェース、規格またはメモリ技術に関連する用語および/または技術的詳細に対するいかなる参照も説明を目的とするものにすぎず、請求項の文言に具体的に記載されていない限り、特許請求の範囲を特定のメモリシステムまたは技術に限定するものではない。
近年、モバイルコンピューティングデバイスのアーキテクチャは複雑さが増してきており、今では一般に、複数のプロセッサコア、システムオンチップ(SOC)、コプロセッサ、専用プロセッサ(たとえば、通信モデムチップ、GPS受信機など)を含む機能モジュール、複合メモリシステム、複雑な電気的相互接続(たとえば、バスおよび/またはファブリック)、および、複雑で電力集約的なソフトウェアアプリケーション(たとえば、ビデオストリーミングアプリケーションなど)を実行する多数の他のリソースを含む。この複雑さの増大に伴って、新しいメモリ管理ソリューションは、モバイルデバイスの計算および電力管理の性能を改善することが要求される。
現行のデバイスは、(マシンツーマシンプロトコルおよびマシンツーヒューマンプロトコルを含む)多くの異なる通信プロトコルを利用しており、したがって、高度の並列処理、すなわち、異なる通信プロトコルが複数の手段を介してメモリ空間にコンカレントにアクセスする能力を必要とする。これは、いくつかの通信プロトコル間のブロックされない対話および/またはデータ転送を要求する。データの大部分は、専用ストレージチップ(たとえば、DRAM、フラッシュなど)に記憶される。別個のチップの性質により、データは、いくつかの機能チップ間で相互動作するように設計されたインターフェースを介してアクセスされる。高度のコンカレントアクセス要件により、インターフェースはしばしば障害を受け、絶えず修正される(たとえば、DDR、DDR2、DDR3、DDR4、LP DDR、eMMC、シリアルフラッシュ、およびRAMBUS)。
本開示のいくつかの態様は、マルチプロトコル通信デバイスのインターフェースおよびアクセス合理化のための高い自由度を可能にするストレージ編成を対象とする。一態様では、「実装境界」を超えた、ストレージ機能に固有の多くの内部自由度を明らかにするために、インターフェース戦略が操作される。これは、電力に関してより低いコストでのより高いコンカレンシーと、アグリゲートされたプラットフォーム実装とを可能にする。したがって、より少ないジュール合計に対して、より多くの機能が実行され得る。
ストレージ編成は、通信ICの要求に応えるために、3次元で量子化され得る。一態様は、ピンごと、単位待ち時間ごとのインターフェースアクセス並列処理を含み得る。たとえば、複数のインターフェースは、並行してメモリ(アクセス領域)の部分にコンカレントにアクセスし得る。アクセスは、メモリサイズ要件、帯域幅要件、および/またはレイテンシ要件などのインターフェース使用要件に基づき得る。別の態様は、電力セグメント化を含み得る。たとえば、アクセス領域は、主要な事例向けに動的に最適化された複数の下位調整領域がデバイスアプリケーションによって命じられたとおりの瞬間に使用されることを可能にするために、別々に電力制御され得る。
ストレージ編成は、共有電力領域内のアグリゲートされたストレージバンクおよびインターフェースバンドルを用いた、空間的にマッピングされた擬似キャッシュ実装と、コンカレントメモリアクセスおよび経路発見をサポートして、ストレージセルの任意のワードへの到達を可能にし、参照の局所性とレイテンシをトレードオフするために必要な分離を可能にする、高速スイッチネットワークであるルータ(マイクロルータ)と、インプレース計算へのコンカレントでコンテンションフリーのアクセス(Concurrent and Contention Free Access)を可能にする複数のインターフェースポートとをさらに提供し得る。
本発明のいくつかの態様は、電話、モバイルコンピューティングデバイス、アプライアンス、自動車用電子機器、アビオニクスシステムなどの、デバイスの下位構成要素を含み得る電子構成要素間に配備される通信リンクに適用可能であり得る。図1を参照すると、たとえば、装置100は、装置100の動作を制御するように構成された処理回路102を含み得る。処理回路102は、ソフトウェアアプリケーションにアクセスし、それを実行し、装置100内の論理回路および他のデバイスを制御することができる。一例では、装置100は、無線周波数(RF)通信トランシーバ106を介して、無線アクセスネットワーク(RAN)、コアアクセスネットワーク、インターネットおよび/または別のネットワークと通信するワイヤレス通信デバイスを含み得る。RF通信トランシーバ106は、処理回路102に動作可能に結合され得る。処理回路102は、特定用途向け集積回路(ASIC)108などの1つまたは複数のICデバイスを含み得る。ASIC108は、1つまたは複数の処理デバイス、論理回路などを含み得る。処理回路102は、処理回路102によって実行され得る命令およびデータを維持し得るプロセッサ可読ストレージ112を含み得、および/またはそれに結合され得る。処理回路102は、オペレーティングシステム、および、ワイヤレスデバイスのストレージ112内に存在するソフトウェアモジュールの実行をサポートし可能にするアプリケーションプログラミングインターフェース(API)110レイヤのうちの1つまたは複数によって制御され得る。ストレージ112は、読取り専用メモリ(ROM)もしくはランダムアクセスメモリ(RAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリデバイス、または処理システムおよびコンピューティングプラットフォームにおいて使用され得る任意のメモリデバイスを含み得る。処理回路102は、装置100を構成し動作させるために使用される動作パラメータおよび他の情報を維持することができるローカルデータベース114を含むおよび/またはそれにアクセスすることができる。ローカルデータベース114は、データベースモジュール/回路/プロセッサまたはサーバ、フラッシュメモリ、磁気媒体、EEPROM、光媒体、テープ、ソフトディスクまたはハードディスクなどのうちの1つまたは複数を使用して実装され得る。処理回路はまた、構成要素の中でも、アンテナ122、ディスプレイ124などの外部デバイス、ボタン128およびキーパッド126などのオペレータ制御に動作可能に結合され得る。
図2は、ワイヤレスモバイルデバイス、携帯電話、モバイルコンピューティングシステム、ワイヤレス電話、ノートブックコンピュータ、タブレットコンピューティングデバイス、メディアプレーヤ、ゲームデバイスなどの装置200のいくつかの態様を示すブロック図である。装置200は、通信リンク220を介してデータおよび制御情報を交換する複数のICデバイス202および230を含み得る。通信リンク220は、互いに極めて近接して配置されるか、または装置200の異なる部分に物理的に配置される場合があるICデバイス202および230を接続するために使用され得る。一例では、通信リンク220は、ICデバイス202および230を担持するチップキャリア、基板または回路板上に設けられる場合がある。別の例では、第1のICデバイス202は、フリップフォンのキーパッドセクションに配置されるとともに、第2のICデバイス230は、フリップフォンのディスプレイセクションに配置されてよい。通信リンク220の一部分は、ケーブル接続または光接続を含み得る。
通信リンク220は、複数のチャネル222、224および226を含み得る。1つまたは複数のチャネル226は双方向であってもよく、半二重モードおよび/または全二重モードで動作することができる。1つまたは複数のチャネル222、224は単方向であってもよい。通信リンク220は、一方向においてより高い帯域幅を提供する非対称であってもよい。本明細書で説明する一例では、第1の通信チャネル222は順方向リンク222と呼ばれることがあり、第2の通信チャネル224は逆方向リンク224と呼ばれることがある。ICデバイス202および230の両方が通信リンク220上で送信および受信するように構成される場合でも、第1のICデバイス202はホスト、マスタおよび/または送信機として指定されることがあり、第2のICデバイス230はクライアント、スレーブおよび/または受信機として指定されることがある。一例では、順方向リンク222は、第1のICデバイス202から第2のICデバイス230にデータを通信するときにより高いデータレートで動作することができるとともに、逆方向リンク224は、第2のICデバイス230から第1のICデバイス202にデータを通信するときにより低いデータレートで動作することができる。
ICデバイス202および230はそれぞれ、プロセッサ、あるいは他の処理回路もしくは処理デバイスおよび/またはコンピューティング回路もしくはコンピューティングデバイス206、236を含み得る。一例では、第1のICデバイス202は、ワイヤレストランシーバ204およびアンテナ214を介したワイヤレス通信を維持することを含む、装置200のコア機能を実行することができ、第2のICデバイス230は、ディスプレイコントローラ232を管理するかまたは動作させるユーザインターフェースをサポートすることができ、カメラコントローラ234を使用してカメラまたはビデオの入力デバイスの動作を制御することができる。ICデバイス202および230のうちの1つまたは複数によってサポートされる他の特徴は、キーボード、音声認識構成要素、および他の入力デバイスまたは出力デバイスを含み得る。ディスプレイコントローラ232は、液晶ディスプレイ(LCD)パネル、タッチスクリーンディスプレイ、インジケータなどのディスプレイをサポートする回路およびソフトウェアドライバを含み得る。記憶媒体208および238は、それぞれの処理回路206および236、ならびに/またはICデバイス202および230の他の構成要素によって使用される命令およびデータを維持するように適合された、一時的記憶デバイスおよび/または非一時的記憶デバイスを含み得る。各処理回路206、236ならびにその対応する記憶媒体208および238と、他のモジュール/プロセッサおよび回路との間の通信は、それぞれ、1つまたは複数のバス212および242によって容易にされ得る。
逆方向リンク224は、順方向リンク222と同じ方法で動作し得る。順方向リンク222および逆方向リンク224は、同等の速度でまたは異なる速度で送信することが可能であってもよく、速度は、データ転送レートおよび/またはクロッキングレートとして表され得る。順方向および逆方向のデータレートは、適用例に応じて、実質的に同じであってもよく、または桁が異なってもよい。いくつかの適用例では、単一の双方向リンク226は、第1のICデバイス202と第2のICデバイス230との間の通信をサポートし得る。順方向リンク222および/または逆方向リンク224は、たとえば、順方向リンク222および逆方向リンク224が同じ物理接続を共有し、半二重様式で動作するとき、双方向モードで動作するように構成可能であり得る。
いくつかの例では、逆方向リンク224は、同期のために、制御のために、電力管理を容易にするために、および/または設計を簡単にするために、順方向リンク222からクロッキング信号を導出する。クロッキング信号は、順方向リンク222上で信号を送信するために使用されるシンボルクロックの周波数を分割することによって取得される周波数を有し得る。シンボルクロックは、順方向リンク222上で送信されるシンボル内で重畳されるか、またはさもなければ符号化され得る。シンボルクロックの派生物であるクロッキング信号の使用により、送信機および受信機(トランシーバ210、240)の高速同期が可能になり、トレーニングおよび同期を可能にするためのフレーミングの必要なしに、データ信号の高速の開始および停止が可能になる。
いくつかの例では、単一の双方向リンク226は、第1の処理デバイス(第1のICデバイス)202と第2の処理デバイス(第2のICデバイス)230との間の通信をサポートし得る。場合によっては、第1の処理デバイス202および第2の処理デバイス230は、処理デバイスとダイナミックランダムアクセスメモリ(DRAM)などのメモリデバイスとの間で送信されるデータ信号、アドレス信号および制御信号の符号化および復号を行う。一例では、バス212および/または242のうちの1つまたは複数は、様々な符号化技法のうちの1つを使用して、DRAMへのアクセスを提供し得る。
図3は、本開示の様々な態様を実装するのに適した、システムオンチップ(SOC)300内の例示的な構成要素および相互接続を示す。SOC300は、デジタル信号プロセッサ(DSP)302、モデムプロセッサ304、グラフィックスプロセッサ306、およびアプリケーションプロセッサ308などの、いくつかの異種プロセッサを含み得る。各プロセッサ302、304、306、308は、1つまたは複数のコアを含むことができ、各プロセッサ/コアは、他のプロセッサ/コアとは無関係に動作を実行することができる。プロセッサ302、304、306、308は、仮に信号がオフチップで移動する場合に可能となるよりもはるかに高い周波数/クロックレートで動作することができるように、互いに極めて近接して(たとえば、単一の基板、ダイ、集積チップなどの上で)編成されることがある。コアが近接していることで、オンチップメモリおよびリソース(たとえば、電圧レール)の共有、ならびにコア間のより協調した連携も可能になり得る。
SOC300は、センサーデータ、アナログデジタル変換、ワイヤレスデータ送信を管理し、他の特殊な動作(たとえば、高精細ビデオの復号、ビデオ処理など)を実行するためのアナログ回路構成およびカスタム回路構成314を含み得る。SOC300は、電圧調整器、発振器、位相ロックループ、周辺ブリッジ、データコントローラ、システムコントローラ、アクセスポート、タイマー、ならびにコンピューティングデバイス上で動作しているプロセッサおよびソフトウェアクライアントをサポートするために使用される他の同様の構成要素などの、様々なシステム構成要素およびリソース316をさらに含み得る。システム構成要素およびリソース316ならびにカスタム回路構成314はまた、カメラ、電子ディスプレイ、ワイヤレス通信デバイス、外部メモリチップなどの周辺デバイスとインターフェースするための回路構成を含み得る。
SOC300は、ユニバーサルシリアルバス(USB)コントローラ324、および1つまたは複数のメモリコントローラ326をさらに含み得る。SOC300はまた、各々が内部SOC構成要素のうちの2つ以上によって共有され得るクロック318および電圧調整器320などの、SOC300の外部のリソースと通信するための入力/出力モジュール/回路/プロセッサ(図示せず)を含み得る。
プロセッサ302、304、306、308は、再構成可能な論理ゲートのアレイを含むおよび/またはバスアーキテクチャを実装する場合がある、相互接続/バスモジュール/回路/プロセッサ330を介して、USBコントローラ324、メモリコントローラ326、システム構成要素およびリソース316、カスタム回路構成314、ならびに他のシステム構成要素に相互接続され得る。一態様では、相互接続/バスモジュール/回路/プロセッサ330は、図2のバス212および/またはバス242と同等であり得る。通信はまた、高性能ネットワークオンチップ(NoC)などの高度な相互接続によって提供され得る。
メモリコントローラ326は、メモリ328との間のデータのフローを管理するように構成された専用ハードウェアモジュール/回路/プロセッサであり得る。一態様では、メモリコントローラ326は、メモリロケーションに対応する行および列を選択する、メモリロケーションからデータを読み取るかまたはメモリロケーションにデータを書き込むなど、メモリ328とインターフェースするための論理を含み得る。
別の態様では、ルータ340は、メモリ328内に埋め込まれ得る。カスタム回路構成314、システム構成要素およびリソース316、ならびに/またはメモリコントローラ326を介して、ルータ340は、アプリケーションインターフェース回路とメモリ328のメモリロケーション(たとえば、ストレージバンク領域)との間のコンカレントアクセス(データフロー)を管理し得る。たとえば、ルータ340は、第1のインターフェースグループのあるアプリケーションインターフェース回路がメモリ328のあるメモリロケーションにアクセスすることを可能にするが、第2のインターフェースグループの異なるアプリケーションインターフェース回路は、メモリ328の異なるメモリロケーションにアクセスする。一態様では、ルータ340の各々は、メモリロケーションの対応するセットに隣接して配置され得る。したがって、低レイテンシ要件を有するデータは、メモリロケーションへの最低レイテンシアクセスを提供するルータ340を介して、インターフェースグループのアプリケーションインターフェース回路からメモリロケーションに送信され得る。ルータ340の各々は、メモリロケーションに対応する行および列を選択する、メモリロケーションからデータを読み取るかまたはメモリロケーションにデータを書き込むなど、メモリ328とインターフェースするための論理を含み得る。
図4は、デバイス400内のモジュール/回路/プロセッサの機能編成を示す図である。デバイス400は、情報を記憶するように構成された情報ストレージモジュール/回路/プロセッサ402を含み得る。情報ストレージモジュール/回路/プロセッサ402は、たとえば、フラッシュメモリ、DRAM、DDRメモリなどであり得る。デバイス400はまた、情報ストレージモジュール/回路/プロセッサ402とデバイス400の他のモジュール/回路/プロセッサとの間の情報をアーカイブするおよび/または取り出すように構成されたモジュール/回路/プロセッサ404を含み得る。デバイス400はまた、補充/調整モジュール/回路/プロセッサ406およびエネルギー貯蔵/勾配モジュール/回路/プロセッサ408などの、電力制御/消費専用のモジュール/回路/プロセッサを含み得る。マルチメディアサブシステムモジュール/回路/プロセッサ410は、ディスプレイモジュール/回路/プロセッサ、カメラモジュール/回路/プロセッサ、スピーカーモジュール/回路/プロセッサ、マイクロフォンモジュール/回路/プロセッサ、ハプティクスモジュール/回路/プロセッサ、およびセンサーモジュール/回路/プロセッサなどの、いくつかの異なる技術構成要素とともに動作し得る。通信サービスサブシステムモジュール/回路/プロセッサ420はまた、GPSモジュール/回路/プロセッサ、近距離通信(NFC)モジュール/回路/プロセッサ、ワイヤレスワイドエリアネットワーク(WWAN)モジュール/回路/プロセッサ、ワイヤレスローカルエリアネットワーク(WLAN)モジュール/回路/プロセッサ、FMモジュール/回路/プロセッサ、およびBluetooth(登録商標)モジュール/回路/プロセッサなどの、いくつかの異なる技術構成要素とともに動作し得る。マルチメディアサブシステムモジュール/回路/プロセッサ410および通信サービスサブシステムモジュール/回路/プロセッサ420の下には、変換モジュール/回路/プロセッサ422および対話モジュール/回路/プロセッサ424があり得る。マルチメディアサブシステムモジュール/回路/プロセッサ410および通信サービスサブシステムモジュール/回路/プロセッサ420の上には、異種計算モジュール/回路/プロセッサ426およびセキュリティ問題モジュール/回路/プロセッサ428があり得る。
図4に示すように、複数の技術構成要素(たとえば、ディスプレイモジュール/回路/プロセッサ、カメラモジュール/回路/プロセッサ、スピーカーモジュール/回路/プロセッサ、マイクロフォンモジュール/回路/プロセッサ、GPSモジュール/回路/プロセッサ、NFCモジュール/回路/プロセッサ、WWANモジュール/回路/プロセッサ、WLANモジュール/回路/プロセッサ、および/またはFMモジュール/回路/プロセッサ)は、データ/コーディングを記憶するおよび/または取り出すために、共通の情報ストレージモジュール/回路/プロセッサ402にアクセスする(破線矢印によって示される)必要があり得る。しかしながら、以前のシステムは、長い遅延を伴う高いコストで、異なる技術構成要素が共通の情報ストレージモジュール/回路/プロセッサ402にアクセスすることを可能にする。したがって、低減されたコストおよびより短い遅延で、複数の技術構成要素が共通の情報ストレージにコンカレントにアクセスすることを可能にするシステムが必要とされている。
図5は、メモリ空間500におけるメモリストレージバンク(アレイ)の編成を示す図である。ストレージバンクは、共通データインターフェース502および共通アドレスインターフェース504を介して、異なる技術構成要素によってアクセスされ得る。図5に示すように、共通データインターフェース502および共通アドレスインターフェース504は、すべてのストレージバンクにアクセスするために使用され得る。
複数のアプリケーション(たとえば、複数の技術構成要素)が同時にメモリにアクセスすることを望む場合がある並列システムでは、単一インターフェース(共通データインターフェース502/共通アドレスインターフェース504)が、複数のアプリケーションがメモリにアクセスすることができる利用可能な唯一の手段であること(図5で「単一の自由度」506と呼ばれる)により、ボトルネック510が生じる。したがって、アプリケーションは、別のアプリケーションがすでに単一インターフェースを介してメモリにアクセスしている場合、メモリにアクセスするのを待たなければならない。メモリ内では、メモリの異なるストレージバンクに別々にアクセスすることが可能であるという点で、「いくつかの内部自由度」508が利用可能である。しかしながら、異なるアプリケーションがそれぞれ、異なるストレージバンクを使用することを望む場合でも、異なるアプリケーションは、異なるストレージバンクにアクセスするために単一インターフェースを通ることを強制される。したがって、アクセスは、単一インターフェースが複数のアクセス試行を処理する能力によって制限される。単一インターフェースのボトルネック510を克服するために、以前のソリューションは、単一インターフェースの処理速度を上げて、メモリにアクセスすることを望む複数のアプリケーションに適応すべきである。しかしながら、処理速度を上げることは、単一インターフェースがより多くの電力を消費するという犠牲を払うことになるので、以前のソリューションには問題がある。
上記で述べた問題を克服するために、本開示の態様は、メモリを編成するための代替方式を提供する。図6は、本開示による、メモリを編成するための例示的な論理的トポロジを示す図600である。メモリは、DDR BankN 602(N)までのDDR Bank0 602(0)、DDR Bank1 602(1)、およびDDR Bank2 602(2)を含むDDRメモリを含み得る。メモリは、FLASH BankN 604(N)までのFLASH Bank0 604(0)およびFLASH Bank1 604(1)を含むFLASHメモリをさらに含み得る。メモリバンクとの間の通信は、メモリNoC606などの高度な相互接続によって提供され得る。シリアライザ/デシリアライザ(SERDES)インターフェース608a、608b、610a、および610bなどのいくつかのインターフェースは、メモリNoC606とともに動作して、メモリバンクのうちの1つまたは複数にアクセスし得る。一例では、アプリケーションは、SERDESインターフェース608aまたは608bを使用するロングリーチチャネルを介して、メモリバンクのうちの1つまたは複数にアクセスし得る。別の例では、アプリケーションは、SERDESインターフェース610aまたは610bを使用するショートリーチチャネルを介して、メモリバンクのうちの1つまたは複数にアクセスし得る。DDRアクセスチャネル612も、メモリNoC606とともに動作して、メモリバンクのうちの1つまたは複数にアクセスするために提供され得る。
図7は、本開示による、メモリを編成するための例示的な物理的トポロジを示す図700である。図7に示すように、論理ダイ702はトポロジの下端にあり得る。DRAMダイ704は、論理ダイ702の上に配置され得る。FLASHダイ706は、DRAMダイ704の上に配置され得る。最後に、パッケージカプセル化部708は、FLASHダイ706の上にあり得る。
図8は、メモリ空間800の編成を示す図である。図9は、本開示の態様によるルータ900を示す図である。ルータ900は、いくつかのトランジスタ、たとえば、第1のトランジスタ902、第2のトランジスタ904、第3のトランジスタ906、第4のトランジスタ908、第5のトランジスタ910、第6のトランジスタ912、第7のトランジスタ914、および第8のトランジスタ916を含み得る。ルータ900は、ルータ構成モジュール/回路/プロセッサ920に結合されたルータ制御モジュール/回路/プロセッサ918をさらに含み得る。ルータ制御モジュール/回路/プロセッサ918は、ルータ900の動作を制御するように構成され得る。ルータ構成モジュール/回路/プロセッサ920は、ストレージバンク/ストレージバンク領域とアプリケーションインターフェース回路との間のデータのルーティングに関連する構成情報を記憶するように構成され得る。ルータ900はまた、第1の電力制御モジュール/回路/プロセッサ922および第2の電力制御モジュール/回路/プロセッサ924を含み得る。
一態様では、トランジスタ902から916の各々のゲートは、ルータ制御モジュール/回路/プロセッサ918の出力部に結合される。第1のトランジスタ902、第2のトランジスタ904、第3のトランジスタ906、および第4のトランジスタ908の各々のドレインは、ルータ制御モジュール/回路/プロセッサ918の入力部および第2の電力制御モジュール/回路/プロセッサ924の入力部に結合される。第2の電力制御モジュール/回路/プロセッサ924の出力部は、アップストリーム検知モジュール/回路/プロセッサ(たとえば、図8の検知モジュール/回路/プロセッサ804)に結合される。第2の電力制御モジュール/回路/プロセッサ924はさらに、電力スイッチおよび接地ノードに結合される。
第5のトランジスタ910、第6のトランジスタ912、第7のトランジスタ914、および第8のトランジスタ916の各々のソースは、ルータ構成モジュール/回路/プロセッサ920の出力部および第1の電力制御モジュール/回路/プロセッサ922の出力部に結合される。第1の電力制御モジュール/回路/プロセッサ922の入力部は、アップストリーム検知モジュール/回路/プロセッサ(たとえば、検知モジュール/回路/プロセッサ804)に結合される。第1の電力制御モジュール/回路/プロセッサ922はさらに、電力スイッチおよび接地ノードに結合される。
一例として、ルータ900は、いくつかのアプリケーションインターフェース回路(たとえば、インターフェース回路812)と4つのストレージバンク領域(たとえば、図8の4つのストレージバンク領域806)との間のコンカレントデータフローを管理するように構成され得る。したがって、トランジスタ902から916の各々は、特定のストレージバンク領域のストレージバンクとのデータフロー動作を容易にするために、そのようなストレージバンクに接続され得る。たとえば、第1のトランジスタ902のソースは、第1のストレージバンク領域(バンク領域A)のストレージバンク出力部に結合され、第5のトランジスタ910のドレインは、バンク領域Aのストレージバンク入力部に結合され、第2のトランジスタ904のソースは、第2のストレージバンク領域(バンク領域B)のストレージバンク出力部に結合され、第6のトランジスタ912のドレインは、バンク領域Bのストレージバンク入力部に結合され、第3のトランジスタ906のソースは、第3のストレージバンク領域(バンク領域C)のストレージバンク出力部に結合され、第7のトランジスタ914のドレインは、バンク領域Cのストレージバンク入力部に結合され、第4のトランジスタ908のソースは、第4のストレージバンク領域(バンク領域D)のストレージバンク出力部に結合され、第8のトランジスタ916のドレインは、バンク領域Dのストレージバンク入力部に結合される。
図10は、メモリを編成するための物理的トポロジを示す図1000である。図10に示すように、トポロジは、ストレージダイ1002と、インターポーザ1004と、インターフェース(IF)/論理ダイ1006と、マルチプロセッサモデムIC1008とを含む。ストレージダイ1002は、相互接続の第1のセット1012によってインターポーザ1004に結合される。インターポーザ1004は、相互接続の第2のセット1014によってIF/論理ダイ1006およびマルチプロセッサモデムIC1008に結合される。相互接続の第3のセット1016は、IF/論理ダイ1006および/またはマルチプロセッサモデムIC1008を他のダイまたはプリント回路板(PCB)(図示せず)に結合し得る。
図6から図10を参照すると、本開示は、メモリにアクセスするための個々のインターフェースを有するために、異なるアプリケーション(異なる技術構成要素)を提供する。メモリにアクセスする異なるアプリケーションは、メモリが常駐する同じSOC(オンチップ)上にあってもよく、またはメモリが常駐するSOCとは異なるSOC(オフチップ)上にあってもよい。したがって、アプリケーションは、上記で説明した単一インターフェース方式などにおいて、アプリケーションがアクセス試行を完了するのを待つ必要なしに、それらのそれぞれのインターフェースを介してメモリ(ストレージバンク)の所望の部分にアクセスすることができる。
図8を参照すると、メモリ空間800は、より高い自由度を可能にする、電力制御モジュール/回路/プロセッサ802、検知モジュール/回路/プロセッサ804、メモリストレージバンク領域806、メモリストレージバンク808、およびルータ810の編成を提供する。メモリ空間800の周囲には、メモリストレージバンク808にアクセスする異なるアプリケーションを表すアプリケーションインターフェース回路812がある。
図8に示すように、ストレージバンク808は、ストレージバンク領域(アクセス領域)806にグループ化される。従来は、ストレージバンク808の各々は、行および列によって識別/編成され得る。今では、本開示は、ストレージバンク808をストレージバンク領域806にグループ化することによって編成の別のレイヤを実装する。ストレージバンク領域806は、異なるアプリケーションインターフェース回路812との間の異なるフローを適応させるための、専用メモリ領域への高速経路を提供する。各ストレージバンク領域806は、専用メモリ領域への高速アクセスを可能にするルータ810に接続される。ルータ810は、メモリ空間800に埋め込まれ、異なるアプリケーションインターフェース回路812との間のすべての異なるフローに対する減結合動作を可能にする。ルータ810を介して、複数のインターフェース回路812には高い自由度が提供される、すなわち、インターフェース回路には、所望のメモリストレージバンク808にコンカレントに/同時にアクセスするための複数の手段が提供される。したがって、上記で説明した単一インターフェース方式などにおいて、追加のバッファリングが防止される。
一態様では、ルータ810は、ストレージバンク領域806の各々を所与のアプリケーションインターフェース回路812に動的に割り振るために使用され得る構成可能要素である。ストレージバンク領域806に対するアプリケーションインターフェース回路812の近接度は、ルータホップの数によって決定され得る。アプリケーションインターフェース回路812からストレージバンク領域806までの距離は、合計遅延を決定する。
図8に関して説明した方式によれば、異なるアプリケーションインターフェース回路812からの少数のトランザクションは、重複するまたは共有されたメモリアクセスを有する。主に、メモリストレージバンク808は、多かれ少なかれ、個々のアプリケーションインターフェース回路812専用である。したがって、スループットを増加させることができ、コストを下げることができ、全体的な電力消費量を低減することができる。
本開示の一態様によれば、再び図8を参照すると、メモリデバイス内のメモリ空間800は、いくつかのストレージバンク領域(アクセス領域)806に分割され得る。さらに、メモリ空間800にアクセスすることを意図する(異なるアプリケーションを表す)アプリケーションインターフェース回路812は、1つまたは複数のアプリケーション要件に基づいて複数のインターフェースグループに分類され得る。1つまたは複数のアプリケーション要件は、アプリケーションストレージサイズ要件、アプリケーションインターフェース帯域幅要件、および/またはアプリケーションインターフェースレイテンシ要件を含み得る。複数のインターフェースグループのうちの各インターフェースグループは、対応するストレージバンク領域806に割り当てられ得る。
複数のルータ810(たとえば、ルータ/マイクロルータ810a〜810f)は、複数のインターフェースグループとストレージバンク領域との間のコンカレントデータフローを管理する。したがって、ルータ810は、各インターフェースグループと対応するストレージバンク領域806との間のアクセスを提供する。具体的には、ルータ810は、別のインターフェースグループの別のインターフェース回路(たとえば、インターフェース回路812b)が、それ自体の対応するストレージバンク領域(たとえば、ストレージバンク領域806b)にアクセスするのと同時に(コンカレントに)、あるインターフェースグループのあるインターフェース回路(たとえば、インターフェース回路812a)が、その対応するストレージバンク領域(たとえば、ストレージバンク領域806a)にアクセスするのを可能にする。
複数のルータ810のうちの各ルータは、ストレージバンクの対応するセットに隣接して配置される。ストレージバンクの対応するセットは、異なるストレージバンク領域のストレージバンクを含み得る。たとえば、ルータ810fは、ストレージバンク領域806bおよびストレージバンク領域806cからのストレージバンク808を含むストレージバンクのセットに隣接して配置される。一態様では、低レイテンシ要件を有するデータがインターフェースグループのインターフェース回路から対応するストレージバンク領域のストレージバンクに送信されるべきであるとき、データは、ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信され得る。たとえば、インターフェース回路812aからの低レイテンシ要件を有するデータがストレージバンク領域806c内のストレージバンクに送信されるべきであるとき、データは、ストレージバンクへの最低レイテンシアクセスを提供するルータ810を介して送信され得る。
さらなる態様では、ストレージバンク領域806は、電力制御モジュール/回路/プロセッサ802を介して別々に電力制御される。これは、特定のストレージバンク領域に対応するインターフェースグループの使用要件に従って、ストレージバンク領域806の各々を別々に動的に最適化することを可能にする。
一態様では、インターフェース回路812がグループ化され得、割り当てられるストレージバンク領域を決定し、どのルータがストレージバンク領域にアクセスするかをシステム構成メッセージを介して知ることができる。アプリケーションインターフェース回路812が、特定のストレージバンク808に記憶するために情報/データをルータ810に送信するとき、アプリケーションインターフェース回路812は、情報/データ内にアドレスビット/トークンを含む。アドレスビット/トークンは、アプリケーションインターフェース回路812がアクセスすることを望む特定のストレージバンク領域806および/または特定のストレージバンク808を識別し得る。情報/データがルータ810によって受信されると、ルータ810は、どのストレージバンク808に情報/データを記憶するかをアドレスビット/トークンを介して決定し得る。アドレスビット/トークンがルータ810によって管理されるストレージバンク808に属する場合、ルータ810は、情報/データを適切なストレージバンク808に記憶する。アドレスビット/トークンがルータ810によって管理されるストレージバンクに属さない場合、ルータ810は、さらなる処理のために情報/データを適切なルータに転送する。
一態様では、アプリケーションインターフェース回路812は、アプリケーションインターフェース回路によって最も頻繁に使用されるストレージバンクアドレスが1つのルータホップを使用してアクセスされ得るように構成され得る。アプリケーションインターフェース回路によってあまり頻繁に使用されないストレージバンクアドレスは、複数のルータホップを使用してアクセスされ得る。
図11は、メモリデバイス(たとえば、メモリ328またはメモリ空間800)にアクセスする方法を示すフローチャートである。方法は、装置(たとえば、装置100またはSOC300)によって実行され得る。
1102において、装置は、メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割し得る。一態様では、装置は、ストレージバンク領域を別々に電力制御し得る。
1104において、装置は、1つまたは複数のアプリケーション使用要件に基づいて、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路(たとえば、インターフェース回路812)を複数のインターフェースグループに分類し得る。1つまたは複数のアプリケーション使用要件は、アプリケーションストレージサイズ要件、アプリケーションインターフェース帯域幅要件、またはアプリケーションインターフェースレイテンシ要件を含み得る。
1106において、装置は、複数のインターフェースグループのうちの各インターフェースグループを複数のストレージバンク領域からの対応するストレージバンク領域に割り当て得る。
1108において、装置は、各インターフェースグループと対応するストレージバンク領域との間のアクセスを提供し得る。一態様では、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする。アクセスは、複数のインターフェースグループとストレージバンク領域との間のコンカレントデータフローを管理する複数のルータ(たとえば、ルータ340、ルータ810、またはルータ900)によって提供され得る。複数のルータは、アプリケーションインターフェース回路と複数のストレージバンク領域との間に配置され得る。
一態様では、複数のルータのうちの各ルータは、ストレージバンクの対応するセットに隣接して配置され、ストレージバンクの対応するセットは、異なるストレージバンク領域のストレージバンクを含む。したがって、1110において、装置は、低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信し得る。
図12は、本開示の1つまたは複数の態様(たとえば、上記で説明した図11の方法に関連する態様)による、メモリデバイスにアクセスすることに関連する動作をサポートするように構成された装置1200の図である。装置1200は、通信インターフェース(たとえば、少なくとも1つのトランシーバ)1202と、記憶媒体1204と、ユーザインターフェース1206と、メモリデバイス1208と、処理回路1210とを含む。
これらの構成要素は、図12の接続線によって概略的に表される、シグナリングバスまたは他の適切な構成要素を介して互いに結合され得、および/または互いと電気通信するように配置され得る。シグナリングバスは、処理回路1210の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスおよびブリッジを含み得る。シグナリングバスは、通信インターフェース1202、記憶媒体1204、ユーザインターフェース1206、およびメモリデバイス1208の各々が処理回路1210に結合され、および/または処理回路1210と電気通信するように、様々な回路を互いにリンクさせる。シグナリングバスはまた、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの様々な他の回路(図示せず)をリンクさせ得るが、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明しない。
通信インターフェース1202は、装置1200のワイヤレス通信を容易にするように適合され得る。たとえば、通信インターフェース1202は、ネットワーク内の1つまたは複数の通信デバイスに関して双方向に情報の通信を容易にするように適合された回路構成および/またはコーディング(たとえば、命令)を含み得る。通信インターフェース1202は、ワイヤレス通信システム内のワイヤレス通信のための1つまたは複数のアンテナ1212に結合され得る。通信インターフェース1202は、1つまたは複数のスタンドアロン受信機および/または送信機、ならびに1つまたは複数のトランシーバを用いて構成され得る。図示の例では、通信インターフェース1202は、送信機1214および受信機1216を含む。
メモリデバイス1208は、1つまたは複数のメモリデバイスを表し得る。図示のように、メモリデバイス1208は、装置1200によって使用される他の情報とともに、ネットワーク関連の情報1218を維持し得る。いくつかの実装形態では、メモリデバイス1208および記憶媒体1204は、共通メモリ構成要素として実装される。メモリデバイス1208はまた、処理回路1210または装置1200の何らかの他の構成要素によって操作されるデータを記憶するために使用され得る。
記憶媒体1204は、プロセッサ実行可能コーディングまたは命令(たとえば、ソフトウェア、ファームウェア)などのコーディング、電子データ、データベース、または他のデジタル情報を記憶するための1つまたは複数のコンピュータ可読、機械可読、および/またはプロセッサ可読デバイスを表し得る。記憶媒体1204はまた、コーディングを実行するときに処理回路1210によって操作されるデータを記憶するために使用され得る。記憶媒体1204は、ポータブルまたは固定の記憶デバイスと、光記憶デバイスと、コーディングを記憶する、含むまたは搬送することが可能な様々な他の媒体とを含む、汎用または専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。
限定ではなく例として、記憶媒体1204は、磁気記憶デバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、およびコンピュータによってアクセスされ、読み取られ得るコーディングを記憶するための任意の他の適切な媒体を含み得る。記憶媒体1104は、製造品(たとえば、コンピュータプログラム製品)において具現化され得る。例として、コンピュータプログラム製品は、パッケージング材料の中のコンピュータ可読媒体を含み得る。上記に鑑みて、いくつかの実装形態では、記憶媒体1204は非一時的(たとえば、有形)記憶媒体であり得る。
記憶媒体1204は、処理回路1210が記憶媒体1204から情報を読み取り、記憶媒体1204に情報を書き込むことができるように、処理回路1210に結合され得る。すなわち、記憶媒体1204は、少なくとも1つの記憶媒体が処理回路1210と一体である例および/または少なくとも1つの記憶媒体が処理回路1210から分離されている(たとえば、装置1200内にある、装置1200の外部にある、複数のエンティティにわたって分散されている、など)例を含め、記憶媒体1204が少なくとも処理回路1210によってアクセス可能であるように、処理回路1210に結合され得る。
記憶媒体1204によって記憶されているコーディングおよび/または命令は、処理回路1210によって実行されると、処理回路1210に本明細書で説明する様々な機能および/またはプロセス動作のうちの1つまたは複数を実行させる。たとえば、記憶媒体1204は、処理回路1210の1つまたは複数のハードウェアブロックにおける動作を調整するように、ならびにそれらのそれぞれの通信プロトコルを利用するワイヤレス通信用の通信インターフェース1202を利用するように構成された動作を含み得る。
処理回路1210は、一般に、記憶媒体1204上に記憶されたそのようなコーディング/命令の実行を含む処理のために適合される。本明細書で使用する「コーディング」または「命令」という用語は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるか、またはそれ以外の名称で呼ばれるかにかかわらず、限定はしないが、プログラミング、命令、命令セット、データ、コーディング、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数などを含むように広く解釈されるべきである。
処理回路1210は、データを取得、処理および/または送信し、データのアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成される。処理回路1210は、少なくとも1つの例では、適切な媒体によって与えられる所望のコーディングを実装するように構成された回路構成を含み得る。たとえば、処理回路1210は、1つまたは複数のプロセッサ、1つまたは複数のコントローラ、および/または実行可能コーディングを実行するように構成された他の構造として実装され得る。処理回路1210の例は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せを含み得る。汎用プロセッサは、マイクロプロセッサ、ならびに任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路1210はまた、DSPとマイクロプロセッサの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、ASICとマイクロプロセッサ、または任意の他の数の様々な構成などのコンピューティング構成要素の組合せとして実装され得る。処理回路1210のこれらの例は説明のためであり、本開示の範囲内の他の適切な構成も企図される。
本開示の1つまたは複数の態様によれば、処理回路1210は、本明細書で説明する装置のいずれかまたはすべてのための特徴、プロセス、機能、動作および/またはルーチンのいずれかまたはすべてを実行するように適合され得る。処理回路1210に関して本明細書で使用する「適合される」という用語は、本明細書で説明する様々な特徴による特定のプロセス、機能、動作および/またはルーチンを実行するように構成されること、採用されること、実装されること、および/またはプログラムされることのうちの1つまたは複数が行われる処理回路1210を指し得る。
装置1200の少なくとも1つの例によれば、処理回路1210は、メモリ空間を分割する回路/モジュール1220、アプリケーションインターフェース/インターフェースグループを分類する回路/モジュール1222、インターフェースグループ/ストレージバンク領域を割り当てる回路/モジュール1224、アクセスを提供する回路/モジュール1226、データを送信する回路/モジュール1228、および電力制御回路/モジュール1230のうちの1つまたは複数を含み得る。
メモリ空間を分割する回路/モジュール1220は、たとえば、メモリデバイス1208内のメモリ空間を複数のストレージバンク領域に分割することに関するいくつかの機能を実行するように適合された回路構成および/または命令(たとえば、記憶媒体1204上に記憶された、メモリ空間を分割する命令1232)を含み得る。
アプリケーションインターフェース/インターフェースグループを分類する回路/モジュール1222は、たとえば、1つまたは複数のアプリケーション使用要件に基づいて、メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類することに関するいくつかの機能を実行するように適合された回路構成および/または命令(たとえば、記憶媒体1204上に記憶された、アプリケーションインターフェース/インターフェースグループを分類する命令1234)を含み得る。1つまたは複数のアプリケーション使用要件は、アプリケーションストレージサイズ要件、アプリケーションインターフェース帯域幅要件、および/またはアプリケーションインターフェースレイテンシ要件を含み得る。
インターフェースグループ/ストレージバンク領域を割り当てる回路/モジュール1224は、たとえば、複数のインターフェースグループのうちの各インターフェースグループを複数のストレージバンク領域からの対応するストレージバンク領域に割り当てることに関するいくつかの機能を実行するように適合された回路構成および/または命令(たとえば、記憶媒体1204上に記憶された、インターフェースグループ/ストレージバンク領域を割り当てる命令1236)を含み得る。
アクセスを提供する回路/モジュール1226は、たとえば、各インターフェースグループと対応するストレージバンク領域との間でアクセスを提供することであって、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする、提供することに関するいくつかの機能を実行するように適合された回路構成および/または命令(たとえば、記憶媒体1204上に記憶された、アクセスを提供する命令1238)を含み得る。アクセスを提供する回路/モジュール1226は、複数のインターフェースグループとストレージバンク領域との間のコンカレントデータフローを管理する複数のルータを介してアクセスを提供し得、複数のルータは、アプリケーションインターフェース回路と複数のストレージバンクとの間に配置される。
データを送信する回路/モジュール1228は、たとえば、低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信することに関するいくつかの機能を実行するように適合された回路構成および/または命令(たとえば、記憶媒体1204上に記憶された、データを送信する命令1240)を含み得る。
電力制御回路/モジュール1230は、たとえば、ストレージバンク領域を別々に電力制御することに関するいくつかの機能を実行するように適合された回路構成および/または命令(たとえば、記憶媒体1204上に記憶された、電力制御命令1242)を含み得る。
上述のように、記憶媒体1204によって記憶されている命令は、処理回路1210によって実行されると、処理回路1210に本明細書で説明する様々な機能および/またはプロセス動作のうちの1つまたは複数を実行させる。たとえば、記憶媒体1204は、メモリ空間を分割する命令1232、アプリケーションインターフェース/インターフェースグループを分類する命令1234、インターフェースグループ/ストレージバンク領域を割り当てる命令1236、アクセスを提供する命令1238、データを送信する命令1240、および電力制御命令1242のうちの1つまたは複数を含み得る。
開示したプロセスにおけるステップの特定の順序または階層は、例示的な手法の例示であることを理解されたい。プロセスにおけるステップの特定の順序または階層は、設計上の選好に基づいて並べ替えられてもよい。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示された特定の順序または階層に限定されるものではない。
前述の説明は、いかなる当業者も本明細書で説明する様々な態様を実践することを可能にするために提供される。これらの態様に対する様々な修正は当業者に容易に明らかになり、本明細書で定義した一般原理は他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に示す態様に限定されるものではなく、文言通りの特許請求の範囲と一致するすべての範囲を与えられるべきであり、単数形の要素への言及は、そのように明記されていない限り、「唯一無二の」ではなく、「1つまたは複数の」を意味するものとする。別段に明記されていない限り、「いくつかの」という用語は、1つまたは複数を指す。当業者に知られているか、後で知られることになる、本開示全体にわたって説明する様々な態様の要素のすべての構造的および機能的等価物は、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。さらに、本明細書で開示するものは、そのような開示が特許請求の範囲において明示的に列挙されているかどうかにかかわらず、公に供されるものではない。いかなるクレーム要素も、要素が「ための手段」という句を使用して明確に列挙されていない限り、ミーンズプラスファンクションとして解釈されるべきではない。
100 装置
102 処理回路
106 無線周波数(RF)通信トランシーバ、RF通信トランシーバ
108 特定用途向け集積回路(ASIC)、ASIC
110 アプリケーションプログラミングインターフェース(API)
112 プロセッサ可読ストレージ、ストレージ
114 ローカルデータベース
122 アンテナ
124 ディスプレイ
126 キーパッド
128 ボタン
200 装置
202 ICデバイス、第1のICデバイス、第1の処理デバイス
204 ワイヤレストランシーバ
206 処理回路
208 記憶媒体
210 トランシーバ
212 バス
214 アンテナ
220 通信リンク
222 チャネル、第1の通信チャネル、順方向リンク
224 チャネル、第2の通信チャネル、逆方向リンク
226 チャネル、単一の双方向リンク
230 ICデバイス、第2のICデバイス、第2の処理デバイス
232 ディスプレイコントローラ
234 カメラコントローラ
236 処理回路
238 記憶媒体
240 トランシーバ
242 バス
300 システムオンチップ(SOC)、SOC
302 デジタル信号プロセッサ(DSP)、プロセッサ
304 モデムプロセッサ、プロセッサ
306 グラフィックスプロセッサ、プロセッサ
308 アプリケーションプロセッサ、プロセッサ
314 アナログ回路構成およびカスタム回路構成、カスタム回路構成
316 システム構成要素およびリソース
318 クロック
320 電圧調整器
324 USBコントローラ
326 メモリコントローラ
328 メモリ
330 相互接続/バスモジュール/回路/プロセッサ
340 ルータ
400 デバイス
402 情報ストレージモジュール/回路/プロセッサ
404 モジュール/回路/プロセッサ
406 補充/調整モジュール/回路/プロセッサ
408 エネルギー貯蔵/勾配モジュール/回路/プロセッサ
410 マルチメディアサブシステムモジュール/回路/プロセッサ
420 通信サービスサブシステムモジュール/回路/プロセッサ
422 変換モジュール/回路/プロセッサ
424 対話モジュール/回路/プロセッサ
426 異種計算モジュール/回路/プロセッサ
428 セキュリティ問題モジュール/回路/プロセッサ
500 メモリ空間
502 共通データインターフェース
504 共通アドレスインターフェース
506 単一の自由度
508 いくつかの内部自由度
510 ボトルネック
600 図
602(0) DDR Bank0
602(1) DDR Bank1
602(2) DDR Bank2
602(N) DDR BankN
604(0) FLASH Bank0
604(1) FLASH Bank1
604(N) FLASH BankN
606 メモリNoC
608a シリアライザ/デシリアライザ(SERDES)インターフェース、SERDESインターフェース
608b シリアライザ/デシリアライザ(SERDES)インターフェース、SERDESインターフェース
610a シリアライザ/デシリアライザ(SERDES)インターフェース、SERDESインターフェース
610b シリアライザ/デシリアライザ(SERDES)インターフェース、SERDESインターフェース
612 DDRアクセスチャネル
700 図
702 論理ダイ
704 DRAMダイ
706 FLASHダイ
708 パッケージカプセル化部
800 メモリ空間
802 電力制御モジュール/回路/プロセッサ
804 検知モジュール/回路/プロセッサ
806 ストレージバンク領域、メモリストレージバンク領域
806a ストレージバンク領域
806b ストレージバンク領域
806c ストレージバンク領域
808 メモリストレージバンク
810 ルータ
810a〜810f ルータ/マイクロルータ
812 インターフェース回路、アプリケーションインターフェース回路
812a インターフェース回路
812b インターフェース回路
900 ルータ
902 第1のトランジスタ
904 第2のトランジスタ
906 第3のトランジスタ
908 第4のトランジスタ
910 第5のトランジスタ
912 第6のトランジスタ
914 第7のトランジスタ
916 第8のトランジスタ
918 ルータ制御モジュール/回路/プロセッサ
920 ルータ構成モジュール/回路/プロセッサ
922 第1の電力制御モジュール/回路/プロセッサ
924 第2の電力制御モジュール/回路/プロセッサ
1000 図
1002 ストレージダイ
1004 インターポーザ
1006 インターフェース(IF)/論理ダイ、IF/論理ダイ
1008 マルチプロセッサモデムIC
1012 相互接続の第1のセット
1014 相互接続の第2のセット
1016 相互接続の第3のセット
1200 装置
1202 通信インターフェース
1204 記憶媒体
1206 ユーザインターフェース
1208 メモリデバイス
1210 処理回路
1212 アンテナ
1214 送信機
1216 受信機
1218ネットワーク関連の情報
1220 メモリ空間を分割する回路/モジュール
1222 アプリケーションインターフェース/インターフェースグループを分類する回路/モジュール
1224 インターフェースグループ/ストレージバンク領域を割り当てる回路/モジュール
1226 アクセスを提供する回路/モジュール
1228 データを送信する回路/モジュール
1230 電力制御回路/モジュール
1232 メモリ空間を分割する命令
1234 アプリケーションインターフェース/インターフェースグループを分類する命令
1236 インターフェースグループ/ストレージバンク領域を割り当てる命令
1238 アクセスを提供する命令
1240 データを送信する命令
1242 電力制御命令

Claims (24)

  1. メモリデバイスにアクセスする方法であって、
    前記メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割するステップと、
    1つまたは複数のアプリケーション使用要件に基づいて、前記メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類するステップと、
    前記複数のインターフェースグループのうちの各インターフェースグループを前記複数のストレージバンク領域からの対応するストレージバンク領域に割り当てるステップと、
    各インターフェースグループと前記対応するストレージバンク領域との間のアクセスを提供するステップであって、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする、ステップと
    を備える方法。
  2. 前記1つまたは複数のアプリケーション使用要件が、
    アプリケーションストレージサイズ要件、
    アプリケーションインターフェース帯域幅要件、または
    アプリケーションインターフェースレイテンシ要件
    のうちの少なくとも1つを含む、請求項1に記載の方法。
  3. 前記アクセスが、前記複数のインターフェースグループと前記複数のストレージバンク領域との間のコンカレントデータフローを管理する複数のルータによって提供され、前記複数のルータが、前記アプリケーションインターフェース回路と前記複数のストレージバンク領域との間に配置される、請求項1に記載の方法。
  4. 前記複数のルータのうちの各ルータが、異なるストレージバンク領域のストレージバンクを含む、ストレージバンクの対応するセットに隣接して配置される、請求項3に記載の方法。
  5. 低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、前記ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信するステップをさらに含む、請求項4に記載の方法。
  6. 前記複数のストレージバンク領域を別々に電力制御するステップをさらに含む、請求項1に記載の方法。
  7. メモリデバイスにアクセスするための装置であって、
    前記メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割するための手段と、
    1つまたは複数のアプリケーション使用要件に基づいて、前記メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類するための手段と、
    前記複数のインターフェースグループのうちの各インターフェースグループを前記複数のストレージバンク領域からの対応するストレージバンク領域に割り当てるための手段と、
    各インターフェースグループと前記対応するストレージバンク領域との間のアクセスを提供するための手段であって、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする、手段と
    を備える装置。
  8. 前記1つまたは複数のアプリケーション使用要件が、
    アプリケーションストレージサイズ要件、
    アプリケーションインターフェース帯域幅要件、または
    アプリケーションインターフェースレイテンシ要件
    のうちの少なくとも1つを含む、請求項7に記載の装置。
  9. アクセスを提供するための前記手段が、前記複数のインターフェースグループと前記複数のストレージバンク領域との間のコンカレントデータフローを管理する複数のルータを含み、前記複数のルータが、前記アプリケーションインターフェース回路と前記複数のストレージバンク領域との間に配置される、請求項7に記載の装置。
  10. 前記複数のルータのうちの各ルータが、異なるストレージバンク領域のストレージバンクを含む、ストレージバンクの対応するセットに隣接して配置される、請求項9に記載の装置。
  11. 低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、前記ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信するための手段をさらに含む、請求項10に記載の装置。
  12. 前記複数のストレージバンク領域を別々に電力制御するための手段をさらに含む、請求項7に記載の装置。
  13. メモリデバイスにアクセスするための装置であって、
    前記メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割することと、
    1つまたは複数のアプリケーション使用要件に基づいて、前記メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類することと、
    前記複数のインターフェースグループのうちの各インターフェースグループを前記複数のストレージバンク領域からの対応するストレージバンク領域に割り当てることと、
    各インターフェースグループと前記対応するストレージバンク領域との間のアクセスを提供することであって、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする、提供することと
    を行うように構成された少なくとも1つの処理回路
    を備える装置。
  14. 前記1つまたは複数のアプリケーション使用要件が、
    アプリケーションストレージサイズ要件、
    アプリケーションインターフェース帯域幅要件、または
    アプリケーションインターフェースレイテンシ要件
    のうちの少なくとも1つを含む、請求項13に記載の装置。
  15. 前記少なくとも1つの処理回路が、前記複数のインターフェースグループと前記複数のストレージバンク領域との間のコンカレントデータフローを管理する複数のルータを介して前記アクセスを提供するように構成され、前記複数のルータが、前記アプリケーションインターフェース回路と前記複数のストレージバンク領域との間に配置される、請求項13に記載の装置。
  16. 前記複数のルータのうちの各ルータが、異なるストレージバンク領域のストレージバンクを含む、ストレージバンクの対応するセットに隣接して配置される、請求項15に記載の装置。
  17. 前記少なくとも1つの処理回路が、低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、前記ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信するようにさらに構成される、請求項16に記載の装置。
  18. 前記少なくとも1つの処理回路が、前記複数のストレージバンク領域を別々に電力制御するようにさらに構成される、請求項13に記載の装置。
  19. 少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、
    メモリデバイス内のメモリ空間を複数のストレージバンク領域に分割することと、
    1つまたは複数のアプリケーション使用要件に基づいて、前記メモリ空間にアクセスするように構成されたアプリケーションインターフェース回路を複数のインターフェースグループに分類することと、
    前記複数のインターフェースグループのうちの各インターフェースグループを前記複数のストレージバンク領域からの対応するストレージバンク領域に割り当てることと、
    各インターフェースグループと前記対応するストレージバンク領域との間のアクセスを提供することであって、第1のインターフェースグループの第1のアプリケーションインターフェース回路は第1の対応するストレージバンク領域にアクセスし、第2のインターフェースグループの第2のアプリケーションインターフェース回路は第2の対応するストレージバンク領域にアクセスする、提供することと
    を行わせる1つまたは複数の命令を有するプロセッサ可読記憶媒体。
  20. 前記1つまたは複数のアプリケーション使用要件が、
    アプリケーションストレージサイズ要件、
    アプリケーションインターフェース帯域幅要件、または
    アプリケーションインターフェースレイテンシ要件
    のうちの少なくとも1つを含む、請求項19に記載のプロセッサ可読記憶媒体。
  21. 前記アクセスが、前記複数のインターフェースグループと前記複数のストレージバンク領域との間のコンカレントデータフローを管理する複数のルータによって提供され、前記複数のルータが、前記アプリケーションインターフェース回路と前記複数のストレージバンク領域との間に配置される、請求項19に記載のプロセッサ可読記憶媒体。
  22. 前記複数のルータのうちの各ルータが、異なるストレージバンク領域のストレージバンクを含む、ストレージバンクの対応するセットに隣接して配置される、請求項21に記載のプロセッサ可読記憶媒体。
  23. 前記1つまたは複数の命令がさらに、前記少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、低レイテンシ要件を有するデータを、インターフェースグループのアプリケーションインターフェース回路から対応するストレージバンク領域のストレージバンクに、前記ストレージバンクへの最低レイテンシアクセスを提供するルータを介して送信させる、請求項22に記載のプロセッサ可読記憶媒体。
  24. 前記1つまたは複数の命令がさらに、前記少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、前記複数のストレージバンク領域を別々に電力制御させる、請求項19に記載のプロセッサ可読記憶媒体。
JP2018502230A 2015-07-21 2016-06-27 複数のインターフェースによるメモリ空間へのコンカレントアクセス Expired - Fee Related JP6363316B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/805,185 US9690494B2 (en) 2015-07-21 2015-07-21 Managing concurrent access to multiple storage bank domains by multiple interfaces
US14/805,185 2015-07-21
PCT/US2016/039665 WO2017014924A1 (en) 2015-07-21 2016-06-27 Concurrent access to memory space by multiple interfaces

Publications (2)

Publication Number Publication Date
JP6363316B1 JP6363316B1 (ja) 2018-07-25
JP2018524739A true JP2018524739A (ja) 2018-08-30

Family

ID=56409208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018502230A Expired - Fee Related JP6363316B1 (ja) 2015-07-21 2016-06-27 複数のインターフェースによるメモリ空間へのコンカレントアクセス

Country Status (7)

Country Link
US (1) US9690494B2 (ja)
EP (1) EP3326071A1 (ja)
JP (1) JP6363316B1 (ja)
KR (1) KR101871655B1 (ja)
CN (1) CN107851074A (ja)
BR (1) BR112018001224A2 (ja)
WO (1) WO2017014924A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces
US9898484B2 (en) * 2015-08-10 2018-02-20 American Express Travel Related Services Company, Inc. Systems, methods, and apparatuses for creating a shared file system between a mainframe and distributed systems
CN110286854B (zh) * 2019-06-12 2021-10-29 北京达佳互联信息技术有限公司 群成员管理和群消息处理的方法、装置、设备及存储介质
CN111506519B (zh) * 2020-04-22 2021-04-27 上海安路信息科技股份有限公司 为fpga码点分配sram单元的方法及系统
US11675413B2 (en) * 2020-09-30 2023-06-13 Dell Products L.P. Reducing power consumption of memory devices at an information handling system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009071070A (ja) * 2007-09-13 2009-04-02 Sony Corp 集積装置およびそのレイアウト方法、並びにプログラム
JP2009532782A (ja) * 2006-03-30 2009-09-10 シリコン イメージ,インコーポレイテッド マルチポート・メモリ・デバイスにおけるインターポート通信
JP2010514018A (ja) * 2006-12-22 2010-04-30 モサイド・テクノロジーズ・インコーポレーテッド 独立リンクおよびバンク選択
JP2011503710A (ja) * 2007-11-09 2011-01-27 プルラリティー リミテッド しっかりと連結されたマルチプロセッサのための共有メモリ・システム
JP2013101617A (ja) * 2011-11-09 2013-05-23 Imagination Technologies Ltd デジタル信号処理用のメモリアクセス
US20140181428A1 (en) * 2012-12-23 2014-06-26 Advanced Micro Devices, Inc. Quality of service support using stacked memory device with logic die
WO2014178856A1 (en) * 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Memory network
US20150036416A1 (en) * 2013-08-05 2015-02-05 Samsung Electronics Co., Ltd. Multi-channel memory device with independent channel power supply structure and method of controlling power net

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6853382B1 (en) 2000-10-13 2005-02-08 Nvidia Corporation Controller for a memory system having multiple partitions
KR101318116B1 (ko) 2005-06-24 2013-11-14 구글 인코포레이티드 집적 메모리 코어 및 메모리 인터페이스 회로
KR100735612B1 (ko) 2005-12-22 2007-07-04 삼성전자주식회사 멀티패쓰 억세스블 반도체 메모리 장치
JPWO2007099659A1 (ja) * 2006-03-01 2009-07-16 パナソニック株式会社 データ転送装置及びデータ転送方法
KR20100084605A (ko) * 2007-05-31 2010-07-27 더 유니버시티 오브 레딩 프로세서
US7882327B2 (en) 2007-07-31 2011-02-01 Advanced Micro Devices, Inc. Communicating between partitions in a statically partitioned multiprocessing system
JP5404433B2 (ja) * 2010-01-08 2014-01-29 株式会社東芝 マルチコアシステム
US8397195B2 (en) * 2010-01-22 2013-03-12 Synopsys, Inc. Method and system for packet switch based logic replication
CN102063274B (zh) * 2010-12-30 2013-10-09 华为技术有限公司 存储阵列和存储系统及数据访问方法
JP2012146201A (ja) * 2011-01-13 2012-08-02 Toshiba Corp オンチップルータ及びそれを用いたマルチコアシステム
US8644104B2 (en) 2011-01-14 2014-02-04 Rambus Inc. Memory system components that support error detection and correction
US8804394B2 (en) 2012-01-11 2014-08-12 Rambus Inc. Stacked memory with redundancy
US9047090B2 (en) 2012-08-07 2015-06-02 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
CN103049408B (zh) * 2012-12-28 2015-06-17 苏州国芯科技有限公司 一种多接口sram读写控制电路及方法
JP5943109B1 (ja) * 2015-03-10 2016-06-29 日本電気株式会社 半導体チップ、集積回路、及びデータ転送方法
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009532782A (ja) * 2006-03-30 2009-09-10 シリコン イメージ,インコーポレイテッド マルチポート・メモリ・デバイスにおけるインターポート通信
JP2010514018A (ja) * 2006-12-22 2010-04-30 モサイド・テクノロジーズ・インコーポレーテッド 独立リンクおよびバンク選択
JP2009071070A (ja) * 2007-09-13 2009-04-02 Sony Corp 集積装置およびそのレイアウト方法、並びにプログラム
JP2011503710A (ja) * 2007-11-09 2011-01-27 プルラリティー リミテッド しっかりと連結されたマルチプロセッサのための共有メモリ・システム
JP2013101617A (ja) * 2011-11-09 2013-05-23 Imagination Technologies Ltd デジタル信号処理用のメモリアクセス
US20140181428A1 (en) * 2012-12-23 2014-06-26 Advanced Micro Devices, Inc. Quality of service support using stacked memory device with logic die
WO2014178856A1 (en) * 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Memory network
US20150036416A1 (en) * 2013-08-05 2015-02-05 Samsung Electronics Co., Ltd. Multi-channel memory device with independent channel power supply structure and method of controlling power net

Also Published As

Publication number Publication date
KR20180011338A (ko) 2018-01-31
US20170024143A1 (en) 2017-01-26
KR101871655B1 (ko) 2018-06-26
EP3326071A1 (en) 2018-05-30
CN107851074A (zh) 2018-03-27
BR112018001224A2 (pt) 2018-09-11
JP6363316B1 (ja) 2018-07-25
WO2017014924A1 (en) 2017-01-26
US9690494B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
JP6363316B1 (ja) 複数のインターフェースによるメモリ空間へのコンカレントアクセス
US10991446B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
JP6092971B2 (ja) ダイ上インターコネクトのためのアーキテクチャ
US11481343B1 (en) Transporting request types with different latencies
US11789885B2 (en) Ordered delivery of data packets based on type of path information in each packet
US10649922B2 (en) Systems and methods for scheduling different types of memory requests with varying data sizes
US11797311B2 (en) Asynchronous pipeline merging using long vector arbitration
US20140006770A1 (en) Mechanism for facilitating dynamic multi-mode memory packages in memory systems
US11675588B2 (en) Tile-based result buffering in memory-compute systems
US9792974B2 (en) Memory system including plurality of DRAM devices operating selectively
US9817759B2 (en) Multi-core CPU system for adjusting L2 cache character, method thereof, and devices having the same
US20230045945A1 (en) High bandwidth gather cache
US11455262B2 (en) Reducing latency for memory operations in a memory controller
US11698853B2 (en) Saturating local cache in memory-compute systems
CN116569151A (zh) 多通道存储器系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180117

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180117

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180521

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180627

R150 Certificate of patent or registration of utility model

Ref document number: 6363316

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees