JP2013235576A - マルチcpuシステムとそれを含むコンピューティングシステム - Google Patents

マルチcpuシステムとそれを含むコンピューティングシステム Download PDF

Info

Publication number
JP2013235576A
JP2013235576A JP2013089640A JP2013089640A JP2013235576A JP 2013235576 A JP2013235576 A JP 2013235576A JP 2013089640 A JP2013089640 A JP 2013089640A JP 2013089640 A JP2013089640 A JP 2013089640A JP 2013235576 A JP2013235576 A JP 2013235576A
Authority
JP
Japan
Prior art keywords
cpu
cache
power
data processing
processing system
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
JP2013089640A
Other languages
English (en)
Other versions
JP5905408B2 (ja
JP2013235576A5 (ja
Inventor
Hoi-Jin Lee
會 鎭 李
Eibin Shin
榮 敏 申
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2013235576A publication Critical patent/JP2013235576A/ja
Publication of JP2013235576A5 publication Critical patent/JP2013235576A5/ja
Application granted granted Critical
Publication of JP5905408B2 publication Critical patent/JP5905408B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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
    • 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/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】マルチCPUシステムとそれを含むコンピューティングシステムとを提供する。
【解決手段】マルチCPUデータ処理システムは、マルチCPUプロセッサを含み、マルチCPUプロセッサは、少なくとも1つの第1コア、第1キャッシュ、及び第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、少なくとも1つの第2コアと第2キャッシュとをアクセスするための第2キャッシュコントローラを含む第2CPUと、を含み、第1キャッシュは、第2キャッシュの共有領域から具現される。
【選択図】図1A

Description

本発明は、マルチCPUシステム(multi−CPU system)に係り、特に、2つのCPUによって物理的に共有されるレベル2(L2)キャッシュを含むマルチCPUシステムとそれを含むコンピューティングシステムとに関する。
CPUの動作周波数が高くなるにつれて、消費電力も増加する。動作周波数及び電圧スケーリング(Dynamic Voltage and Frequency Scaling、DVFS)は、CPU動作周波数と消費電力とを適切に調節するための1つの技術である。
マルチCPUシステムで、キャッシュ(cache)のようなCPU資源の共有は、チップ密度(chip density)を増加させ、消費電力を低下させることができる。しかし、キャッシュ一貫性(cache coherence)を保持するために、増加したプロセスと動作とでトレードオフ(trade−off)が発生する恐れがある。例えば、キャッシュが1つ以上のCPUによって共有される時、データフラッシング(flushing)とスヌーピング(snooping)は、共有キャッシュ使用が1つのCPUから他のCPUにスイッチングされる時に必要である。過度なフラッシング動作とスヌーピング動作は、プロセスレイテンシー(process latency)を増加させ、マルチCPUシステムの全般的な性能に影響を及ぼす可能性がある。
韓国特許出願公開2011−1017068号公報 米国特許第6,434,672号公報 米国特許第6,751,706号公報 米国特許出願公開第2009−0049248号明細書
本発明が解決しようとする技術的な課題は、CPUスケーリング時に、L2キャッシュの一貫性を保持するためのスヌーピング動作のオーバーヘッド(overhead)と前記L2キャッシュのコールドスタート(cold−start)を除去することができるマルチCPUシステムとそれを含むコンピューティングシステムとを提供することにある。また、2つのCPUによって物理的に共有されるL2キャッシュを含むマルチCPUシステムとそれを含むコンピューティングシステムとを提供することにある。
本発明の実施形態によるマルチCPUデータ処理システムは、マルチCPUプロセッサ(multi−CPU processor)を含み、前記マルチCPUプロセッサは、少なくとも1つの第1コア、第1キャッシュ、及び前記第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、少なくとも1つの第2コアと第2キャッシュとをアクセスするための第2キャッシュコントローラを含む第2CPUと、を含み、前記第1キャッシュは、前記第2キャッシュの共有領域から具現される。
前記マルチCPUデータ処理システムは、選択信号に基づいて、前記第1キャッシュコントローラまたは前記第2キャッシュコントローラからデータを前記第1キャッシュに入力する共有回路をさらに含む。前記マルチCPUデータ処理システムは、前記第1CPU、前記第2CPU、及び前記第1キャッシュを独立してターンオンまたはターンオフするための複数の制御信号を出力する電力管理ユニットをさらに含む。
前記電力管理ユニットは、前記第1キャッシュに電源を保持する間に、前記第1キャッシュを除いた前記第1CPUと前記第2CPUとの間で選択的に電源をスイッチ(switch)する。
前記第1キャッシュと前記共有回路は、第1SoC(System on Chip)に具現され、前記第1キャッシュを除いた前記第1CPUは、第2Socに具現される。前記第1キャッシュを除いた前記第1CPUは、第1電力領域に具現され、前記第1キャッシュを除いた前記第2CPUは、第2電力領域に具現され、前記第1キャッシュは、第3電力領域に具現され、前記第1電力領域、前記第2電力領域、及び前記第3電力領域のそれぞれは、独立して制御可能である。
本発明の実施形態によるマルチCPUデータ処理システムは、少なくとも1つの第1コア、第1キャッシュ、及び前記第1キャッシュからデータをアクセスするための第1キャッシュコントローラを含む第1CPUと、少なくとも1つの第2コア及び第2キャッシュからデータをアクセスするための第2キャッシュコントローラを含む第2CPUと、を含み、前記第1キャッシュは、前記第2キャッシュの共有領域から具現され、前記第1キャッシュを除いた前記第1CPUは、第1ダイ(die)に具現され、前記第2CPUは、第2ダイに具現される。
前記マルチCPUデータ処理システムは、選択信号に基づいて、前記第1キャッシュから前記第1キャッシュコントローラまたは前記第2キャッシュコントローラにデータを出力する共有回路をさらに含み、前記共有回路は、前記第2ダイ内に具現される。前記共有回路のための複数の制御信号ラインは、前記第1ダイと前記第2ダイとの間に接続して連結される複数のTSV(Through Silicon Via)を含む。
L1キャッシュと前記第1キャッシュは、共通基板に具現される。少なくとも1つのアドレスライン(address line)は、L1キャッシュと前記第1キャッシュとに共通する。
本発明の実施形態によるマルチCPUプロセッサを利用したデータ処理方法は、1CPUが第1キャッシュコントローラを通じて第1キャッシュをアクセスする段階と、第2CPUが第2キャッシュコントローラを通じて第2キャッシュをアクセスする段階と、前記第1キャッシュのフラッシングなしに前記第1CPUから前記第2CPUにキャッシュアクセス動作をスイッチする段階と、を含み、前記第1キャッシュは、前記第2キャッシュの共有領域から具現される。
前記方法は、スヌーピングなしに前記第1CPUから前記第2CPUにキャッシュアクセス動作をスイッチングする段階をさらに含む。前記方法は、前記第2CPUから前記第1CPUにキャッシュアクセス動作をスイッチングし、前記第2キャッシュの非共有領域に対するフラッシング動作を行う段階をさらに含む。
前記方法は、前記第2CPUから前記第1CPUにキャッシュアクセス動作をスイッチングし、前記第2キャッシュの非共有領域に対するスヌーピング動作を行う段階をさらに含む。
本発明の実施形態によるプロセッサは、少なくとも1つの第1コア、第1キャッシュ、前記第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、少なくとも1つの第2コアと前記第1キャッシュとの保存容量よりも大きな保存容量を有する第2キャッシュをアクセスするための第2キャッシュコントローラを含む第2CPUと、選択信号に基づいて、前記第1キャッシュコントローラを通じて前記第1コアまたは前記第2キャッシュコントローラを通じて前記第2コアから前記第1キャッシュにデータを伝送するマルチプレクサ(multiplexer)と、前記選択信号に基づいて、前記第1キャッシュから前記第1キャッシュコントローラを通じて前記第1コアまたは前記第2キャッシュコントローラを通じて前記第2コアからデータを伝送するためのデマルチプレクサ(demultiplexer)と、を含む。
本発明の実施形態によるマルチCPUデータ処理システムは、マルチCPUプロセッサを含み、前記マルチCPUプロセッサは、少なくとも1つの第1コア、第1キャッシュ、前記第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、少なくとも1つの第2コアと第2キャッシュとをアクセスするための第2キャッシュコントローラを含む第2CPUと、前記第1CPUと前記第2CPUとのうち少なくとも1つに電源を選択的に供給する電力管理ユニット(PMU)と、データバスを通じて前記マルチCPUプロセッサに/からメモリアクセスを制御するメモリコントローラと、を含み、前記第1キャッシュは、前記第2キャッシュの共有領域から具現される。前記マルチCPUデータ処理システムは、スマートフォン、ラップトップPC、またはタブレットPCとして具現される。
本発明の実施形態による複数のCPUを含むマルチCPUシステムは、L2キャッシュの少なくとも一部を複数のCPUが物理的に共有することによって、マルチCPUシステムの面積を減少させることができる。また、マルチCPUシステムでCPUスケーリングが行われる時、スヌーピング動作のオーバーヘッドを除去するか、または減少させることができる。
マルチCPUシステムでCPUスケーリングが行われる時、L2キャッシュのコールドスタートを除去することができる。また、マルチCPUシステムでL2キャッシュの少なくとも一部が、複数のCPUによって物理的に共有されることによって、大量のデータ伝送が可能となる。
本発明の実施形態によるマルチCPUシステムの概略的なブロック図。 図1AのマルチCPUシステムを含むコンピューティングシステムのブロック図。 図1Aの第2CPUに集積されたレベル2(L2)キャッシュの概略的なブロック図。 図1AのマルチCPUの複数の電力領域を示すブロック図。 図1AのマルチCPUのCPUスケーリングの一実施形態を示す図。 図4の本発明の実施形態によるCPUスケーリングプロセスのフローチャート。 図1AのマルチCPUのCPUスケーリングの他の実施形態を説明する概念図。 本発明の実施形態による他のCPUスケーリングプロセスのフローチャート。 本発明の他の実施形態によるマルチCPUシステムの概略的なブロック図。 本発明の実施形態によるボードアセンブリーのブロック図。 本発明の実施形態によるコンピュータプラットフォームを示す図。 本発明の実施形態によるマルチCPUシステムを含むコンピューティングシステムの一実施形態を示す図。 本発明の実施形態によるマルチCPUシステムを製造する方法を説明するフローチャート。
以下、添付した図面を参照して、本発明を詳しく説明する。
図1Aは、本発明の実施形態によるマルチCPU(multi−Central Processing Unit)システムの概略的なブロック図を示す。図1Aを参照すると、マルチCPUシステム100は、システムバス101、マルチCPU103、及びメモリコントローラ105を含む。
ここで、マルチCPUシステム100は、1つのシステムオンチップ(System on Chip、SoC)として具現可能である。例えば、マルチCPUシステム100は、1つのマスク(mask)を用いて具現可能である。
マルチCPU103は、第1CPU110と第2CPU120とを含みうる。実施形態によって、マルチCPU103は、電力管理ユニット(Power Management Unit、PMU)150をさらに含みうる。図1Aでは、説明の便宜上、2つのCPU110、120を含むマルチCPU103が示されているが、本発明の概念は、2つ以上のCPUを含むマルチCPUにそのまま適用可能である。
第1CPU110は、少なくとも1つの第1CPUコア111、113と第1レベル2(level−2、L2)キャッシュコントローラ115とを含みうる。したがって、第1CPU110は、マルチコアCPUとして具現可能である。少なくとも1つの第1CPUコア111、113は、レベル1(level1、L1)キャッシュ、例えば、命令キャッシュ(instruction cache)とデータキャッシュ(data cache)とを含みうる。少なくとも1つの第1CPUコア111、113は、第1レベル2(L2)キャッシュコントローラ115と通信のための周辺回路をさらに含みうる。
第1L2キャッシュコントローラ115は、第1通信チャネルCH1を通じてシステムバス101とインターフェーシングする第1インターフェースブロック117とを含みうる。
第2CPU120は、少なくとも1つの第2CPUコア121、123、第2L2キャッシュコントローラ125、及び少なくとも1つのL2キャッシュ130、140を含みうる。したがって、第2CPU120は、マルチコアCPUとして具現可能である。少なくとも1つの第2CPUコア121、123は、L1キャッシュ、例えば、命令キャッシュとデータキャッシュとを含みうる。少なくとも1つの第2CPUコア121、123は、第2L2キャッシュコントローラ125と通信のための周辺回路をさらに含みうる。
第2L2キャッシュコントローラ125は、第2通信チャネルCH2を通じてシステムバス101とインターフェーシングする第2インターフェースブロック127とを含みうる。この際、第1L2キャッシュコントローラ115と第2L2キャッシュコントローラ125は、構造的に互いに独立して具現され、独立して動作することができる。したがって、各L2キャッシュコントローラ115、125が、システムバス101と通信するためには、別途の通信チャネルCH1、CH2が必要である。
第1CPU110と第2CPU120のそれぞれは、相応するL1キャッシュと相応するL2キャッシュとを含む。L2キャッシュは、データキャッシュであり、L2キャッシュの容量とサイズは、L1キャッシュの容量とサイズよりも大きい。
実施形態を示すために、第1CPU110、第1L2キャッシュコントローラ115及び第1L2キャッシュのようなコンポーネント(components)の‘第1グループ’は、‘スモール(small)’グループ、例えば、スモールCPU110、スモールL2キャッシュコントローラ115などに分類される。第2CPU120、第2L2キャッシュコントローラ125及び第2L2キャッシュのようなコンポーネントの‘第2グループ’は、‘ビッグ(big)’グループ、例えば、ビッグCPU120、ビッグL2キャッシュコントローラ125などに分類される。
第1CPU110は、各L2キャッシュ133、143を含む。第2CPU120は、各L2キャッシュ130、140を含む。図1Aの発明の実施形態によって、各第1(または、スモール)L2キャッシュ133、143は、第1CPU110と第2CPU120とによって機能的に共有されうる。すなわち、各第1L2キャッシュ133、143は、第1CPU110または第2CPU120によってアクセス(access)されうる。ここで、アクセスは、ライト(write)動作またはリード(read)動作のために必要な動作を意味する。
また、各第1(または、スモール)L2キャッシュ133、143は、各第2(または、ビッグ)L2キャッシュ131、141の一部である。例えば、スモールL2キャッシュは、ビッグL2キャッシュの一部から形成されうる。例えば、ビッグL2キャッシュは、2MBメモリ装置であり、スモールL2キャッシュは、スモールCPUとビッグCPUとによって共有され、ビッグL2キャッシュの25%容量、例えば、512KB容量で形成されうる。各第2L2キャッシュ130、140の各非共有領域131及び141は、第2L2キャッシュコントローラ125を通じて第2CPU120によってのみアクセスされうる。例えば、各非共有領域131及び141は、2MBメモリ装置の1.5MBであり得る。
第2L2キャッシュコントローラ125は、共有L2キャッシュ133及び143と非共有L2キャッシュ131及び141とを含んだ第2L2キャッシュ130及び140の全部を同時にアクセスすることができる。しかし、共有L2キャッシュ133及び143は、第1L2キャッシュコントローラ115と第2L2キャッシュコントローラ125とによって同時にアクセスすることはできない。
PMU150は、第1CPU110から出力された第1指示信号IND1と第2CPU120から出力された第2指示信号IND2とのうち少なくとも1つに基づいて、複数の制御信号CTR1、CTR2、及び/または選択信号SELを使って、スモールCPU110とビッグCPU120とに電力を選択的に供給する。
それぞれの指示信号IND1、IND2は、システムバス101を通じてPMU150に供給されうる。各信号SEL、CTR1、及びCTR2は、1つまたはそれ以上の制御モード信号を含みうる。
複数の第1制御信号CTR1に基づいて、第1CPU110は、電力領域(powerdomain)別に電力供給及び/またはリセット(reset)を独立して制御することができる。複数の第2制御信号CTR2に基づいて、第2CPU120は、電力領域別に電力供給及び/またはリセットを独立して制御することができる。また、第1CPU110と第2CPU120は、選択信号SELに応答して、CPUスケーリング(scaling)、すなわち、複数のCPU110、120の間のスイッチング(switching)を制御することができる。
図1Aでは、説明の便宜上、各L2キャッシュ130、140の少なくとも一部133、143が、各CPU110、120によって物理的に共有される構造が示されているが、本発明の技術的思想は、L2キャッシュの代りにレベル3(L3)キャッシュが物理的に共有される構造にも適用可能である。例えば、第2CPU120に具現された機能ブロックは、各CPU110、120、例えば、L2キャッシュまたはL3キャッシュによって共有される。前記機能ブロックが、L3キャッシュである時、各L2キャッシュコントローラは、L3キャッシュコントローラに代替されうる。
各CPU110、120は、各通信チャネルCH1、CH2とシステムバス101とを通じてメモリコントローラ105と通信することができる。メモリコントローラ105は、マルチCPUシステムに接続されたメモリ、例えば、メインメモリをアクセスすることができる。説明の便宜上、各要素101、105は、図1AのマルチCPU103の外部に示されているが、各要素101、105は、マルチCPU103の内部に具現されることもある。
図1Bは、図1AのマルチCPUシステムを含むコンピューティングシステムのブロック図である。図1Bを参照すると、前記コンピューティングシステムは、マルチCPUシステム100とメモリ107とを含みうる。前述したように、メモリコントローラ105は、マルチCPUシステム100とメモリ107との間のデータ通信を制御またはインターフェース(interface)することができる。
図2は、図1Aの第2CPUに集積されたレベル2(L2)キャッシュの概略的なブロック図である。図1Aと図2とに示したように、L2キャッシュ130は、非共有領域(non−shared region)である専用領域131と共有領域133とを含む。また、L2キャッシュ140は、専用領域141と共有領域143とを含む。各L2キャッシュ130、140の構造は、実質的に同一なので、L2キャッシュ130についての説明は、L2キャッシュ140に適用可能である。
共有領域133または143は、L2キャッシュ130または140の一部に具現され、共有領域133または143は、L2キャッシュ130または140の少なくとも1つのアドレスラインを共有する。前述したように、専用領域131は、第2L2キャッシュコントローラ125によってのみアクセスされ、共有領域133は、選択信号SELによって第1L2キャッシュコントローラ115と第2L2キャッシュコントローラ125とのうち何れか1つが選択的にアクセスすることができる。
共有回路は、第1選択器160と第2選択器161とを含む。実施形態によって、前記共有回路は、ビッグCPU120の内部に具現されるが、共有領域133の外部に具現可能である。他の実施形態によって、第1選択器160と第2選択器161は、共有領域133の内部に具現可能である。例えば、第1選択器160は、マルチプレクサとして具現可能であり、第2選択器161は、デマルチプレクサとして具現可能である。他の実施形態によって、前記共有回路は、第1選択器160を含み、第2選択器161を含まないこともある。
第1L2キャッシュコントローラ115が、共有領域133をアクセスしようとする時、第1選択器160は、選択信号SELに応答して、第1L2キャッシュコントローラ115から出力された複数の第1アクセス信号ACC1を共有領域133の第1入力ポートIN1に伝送する。
第1グループまたはスモールグループによるライト動作のために、第1L2キャッシュコントローラ115は、共有領域133にデータをライトし、複数の第1アクセス信号ACC1、例えば、メモリセルアレイ133−1にデータをライトするために必要なデータと複数の制御信号は、第1選択器16を通じて第1入力ポートIN1に伝送することができる。第1グループによるリード動作のために、第1L2キャッシュコントローラ115は、共有領域133に保存されたデータをリードし、複数の第1アクセス信号ACC1、例えば、メモリセルアレイ133−1からデータをリードするために必要なデータと複数の制御信号は、第1選択器160を通じて第1入力ポートIN1に伝送され、共有領域133の第1出力ポートOUT1から出力されたデータは、第2選択器161を通じて第1L2キャッシュコントローラ115に伝送される。
実施形態によって、第2選択器161が含まれない場合、第1出力ポートOUT1から出力されたデータは、第1L2キャッシュコントローラ115に直接伝送することができる。
L2キャッシュコントローラ125のような第2グループまたはビッググループによって共有領域133にアクセスのために、第1選択器160は、選択信号SELに応答して、第2L2キャッシュコントローラ125から出力された複数の第2アクセス信号ACC2を第1入力ポートIN1に伝送する。例えば、第2L2キャッシュコントローラ125が、共有領域133にデータをライトする時、複数の第2アクセス信号ACC2、例えば、メモリセルアレイ133−1にデータをライトするために必要なデータと複数の制御信号は、第1選択器160を通じて第1入力ポートIN1に伝送される。
第2L2キャッシュコントローラ125が、共有領域133に保存されたデータをリードする時、複数の第2アクセス信号ACC2、例えば、メモリセルアレイ133−1からデータをリードするために必要な複数の制御信号は、第2選択器161を通じて第1入力ポートIN1に伝送され、第1出力ポートOUT1を通じて出力されたデータは、第2選択器161を通じて第2L2キャッシュコントローラ125に伝送される。実施形態によって、第2選択器161が含まれない場合、第1出力ポートOUT1から出力されたデータは、第2L2キャッシュコントローラ125に直接伝送することができる。
第2L2キャッシュコントローラ125が、専用領域131にデータをライトする時、第2L2キャッシュコントローラ125から出力された複数の第3アクセス信号ACC3、例えば、メモリセルアレイ133−1にデータをライトするために必要なデータと複数の制御信号は、専用領域131の第2入力ポートIN2に入力される。
第2L2キャッシュコントローラ125が、専用領域131に保存されたデータをリードする時、複数の第3アクセス信号ACC3、例えば、メモリセルアレイ133−1からデータをリードするために必要な制御信号は、第2入力ポートIN2に直接伝送され、専用領域131の第2出力ポートOUT2を通じて出力されたデータは、第2L2キャッシュコントローラ125に直接伝送される。共有回路は、スモールL2キャッシュコントローラまたはビッグL2キャッシュコントローラによって共有L2キャッシュに/からエラーデータのアクセスを防止するための構造を有する。
図3は、図1AのマルチCPUの複数の電力領域を示すブロック図である。
図1と図3とを参照すると、第1CPU110は、電力領域111、113、及び115を含む。複数の第1制御信号CTR1−1〜CTR1−3(集合的に、‘CTR1’)のそれぞれは、電力領域111、113、及び115のそれぞれに供給される。
第1制御信号CTR1−1、CTR1−2、及びCTR1−3のそれぞれによって、電力領域111、113、及び115のそれぞれに供給される電力及び/または電力領域111、113、及び115のそれぞれのリセットが独立して制御される。また、第1インターフェースブロック117が、別途の電力領域と定義される時、別途の制御信号が、第1インターフェースブロック117に供給されることもある。前記別途の制御信号は、第1制御信号CTR1に含まれうる。
第2CPU120は、電力領域121、123、125、131、133、141、及び143を含む。複数の第2制御信号CTR2−1〜CTR2−5(集合的に、‘CTR2’)のそれぞれは、電力領域121、125、123、131、及び141のそれぞれに供給される。
第2制御信号CTR2−1〜CTR2−5のそれぞれによって、電力領域121、125、123、131、133、及び141のそれぞれに供給される電力及び/または電力領域121、125、123、131、133、及び141のそれぞれのリセットが独立して制御される。また、第2インターフェースブロック127が、別途の電力領域と定義される時、別途の制御信号は、第2インターフェースブロック127に供給されうる。前記別途の制御信号は、第2制御信号CTR2に含まれうる。
各共有L2キャッシュ133、143は、各制御信号CTR3−1、CTR3−2によって独立して制御される。各制御信号CTR3−1、CTR3−2は、各制御信号CTR1またはCTR2に含まれることもある。
図4の(A)と(B)は、図1AのマルチCPUのCPUスケーリングの一実施形態を示す。
異なるサイズと異なる能力とを有する複数のCPUを含むマルチCPUデータ処理システムで、ピーク能(peak peformance)は、複数のCPUの間のスケーリング使用(scaling usage)によって達成されうる。例えば、低いワークロード(low workload)で、スモールCPU110は、最適化された電力使用のために、最高MIPS/mW(Millions of Instructions Per Second per milliwatt)で動作する電力駆動CPU(power−driven CPU)として使われる。
高い(high)ワークロードで、ビッグCPU120は、たとえ低いMIPS/mWを有しても、ピーク能で動作する性能駆動CPU(performance−driven CPU)として使われる。ここで、CPUスケーリング(CPU scaling)は、同じ動作電圧でスモールCPU110からビッグCPU120にスイッチングする動作またはビッグCPU120からスモールCPU110にスイッチングする動作を意味する。
すなわち、CPUスケーリングは、動作電圧を変化させなくても、消費電力に対するワークロード遂行能力(例えば、MIPS/mW)を変化させるか、または1つのCPU命令を実行するために必要なエネルギ量を変化させることができる。
図4の(A)を参照すると、スモールCPU110が動作中である時、スモールCPU110の各電力領域111、113、及び115(必要に応じては、117を含む)は、パワーオン状態(POWER ON)であり、ビッグCPU120の各電力領域121〜125、131、及び141(必要に応じては、127を含む)は、パワーオフ状態(POWEROFF)である。
共有L2キャッシュで動作する各電力領域133、143は、パワーオン状態である。第1L2キャッシュコントローラ115は、各選択器160、161を通じて少なくとも1つの共有領域133、143をアクセスすることができる。スモールCPU110のワークロード(workload)が増加すれば、ビッグCPU120へのスケーリングが必要である。スモールCPU110からビッグCPU120にCPUスケーリングまたはCPUスイッチングを行うために、第1CPU110の第1コア111は、第1指示信号IND1を第1通信チャネルCH1とシステムバス101とを通じてPMU150に伝送する。
PMU150は、第1指示信号IND1に応答して、複数の第1制御信号CTR1、複数の第2制御信号CTR2、及び選択信号SELを出力する。したがって、スモールCPU110の電力領域111、113、及び115のそれぞれは、複数の第1制御信号CTR1のそれぞれに応答して、現在作業(job)を中断する。
同時に、ビッグCPU110の電力領域121、123、125、131、及び141のそれぞれは、複数の第2制御信号CTR2−1〜CTR2−5のそれぞれに応答してターンオンされ、前記作業に対する動作を開始または受け継ぐことができる。
スモールCPU110によって使われた少なくとも1つの共有領域133、143は、ビッグCPU120のL2キャッシュ130または140のサブセット(subset)として使われる。スモールCPU110からビッグCPU120へのスケーリング過程は、スヌーピング動作(snooping operation)を要しない。また、ビッグCPU120は、少なくとも1つのL2キャッシュ130、140に対するコールドスタートを行わなくても良い。少なくとも1つのL2キャッシュ130または140の少なくとも1つの専用領域131、141は、電力領域121、123、及び125と共に準備(READY)状態になりうる。
スモールCPU110からビッグCPU120へのCPUスケーリングの間に、少なくとも1つの共有領域133、143に供給される電力は、そのままオン(ON)状態を保持する。また、スモールCPU110からビッグCPU120へのCPUスケーリングの間に、各選択器160、161は、スイッチされるので、第2L2キャッシュコントローラ125は、各選択器160、161を通じて少なくとも1つの共有領域133、143をアクセスすることができる。
したがって、ビッグCPU120を含む構造は、CPUスケーリングまたはCPUスイッチング直後に最適の性能を発揮することができる。
図4の(B)に示したように、スモールCPU110からビッグCPU120へのCPUスケーリング直後、スモールCPU110の各電力領域111、113、及び115は、パワーオフ状態になり、ビッグCPU120の各電力領域121〜125、131、及び141は、パワーオン状態になる。
マルチCPUシステム100が、スヌーピング動作を支援しない時、スモールCPU110は、少なくとも1つの共有領域133、143に保存され、ECC(Error Correction Code)を含まないデータをチャネルCH1、バス101、及びメモリコントローラ105を通じてメモリ107に伝送またはフラッシングする。次いで、ビッグCPU120は、メモリ107に保存されたデータをメモリコントローラ105、バス101、及びチャネルCH2を通じてリードする。ビッグCPU120は、リードされたデータにECCを付け加え、ECC付加されたデータを少なくとも1つの共有領域133、143に保存することができる。
図5は、図4の本発明の実施形態によるCPUスケーリングプロセス(scalingprocess)のフローチャートである。図1Aから図5を参照すると、スモールCPU110からビッグCPU120へのCPUスケーリングは、スモールCPU110が第1指示信号、またはスケーリング信号IND1をイシュイング(issuing)することによって始まる(ステップS110)。PMU150は、スモールCPU110の対応電力領域の電力をターンオフ(turn−off)し、ビッグCPU120の対応電力領域の電力をターンオン(turn−on)し、各共有L2キャッシュ133、143の電力領域の電力を保持する(ステップS120)。
スモールCPU110の動作は停止し、ビッグCPU120の動作はスヌーピング動作なしに始まる(ステップS130)。実施形態によって、スモールCPU110が、少なくとも1つの共有領域133、143に保存されたデータをメモリ107に伝送する時、ビッグCPU120は、必要であれば、メモリ107に保存されたデータを読み出す。
図6の(A)、(B)、(C)、及び(D)は、図1AのマルチCPUのCPUスケーリングの他の実施形態を説明する概念図である。図6の(A)から(D)は、ビッグCPU120からスモールCPU110へのCPUスケーリング過程を示す。
図1Aから図3、及び図6の(A)から(D)を参照すると、図6の(A)に示したように、ビッグCPU120が動作する時、スモールCPU110の各電力領域111、113、及び115は、パワーオフ状態であり、ビッグCPU120の各電力領域121、123、125、131、133、141、及び143は、パワーオン状態である。この際、第2L2キャッシュコントローラ125は、少なくとも1つの共有領域133、143をアクセスすることができる。
ビッグCPU120からスモールCPU110にCPUスケーリングのために、ビッグCPU120の第1コア121は、第2指示信号IND2を第2通信チャネルCH2とシステムバス101とを通じてPMU150に出力する。PMU150は、第2指示信号IND2に応答して、複数の第1制御信号CTR1、複数の第2制御信号CTR2、及び選択信号SELを出力する。
選択信号SELに応答して、各選択器160、161は、少なくとも1つの共有領域133、143と第2L1キャッシュコントローラ115との間の通信チャネルを形成する。
図6の(B)に示したように、スモールCPU110の各電力領域111、113、及び115は、複数の第1制御信号CTR1のそれぞれに応答して、パワーオン状態になり、ビッグCPU120の各電力領域121〜125、130、及び140は、複数の第2制御信号CTR2に応答して、パワーオン状態を保持する。各共有L2キャッシュ133、143の各電力領域は、第2制御信号CTRL3に応答して、パワーオン状態を保持する。
ビッグCPU120の少なくとも1つの電力領域121〜125のデータは、少なくとも1つのL2キャッシュ130、140にアップデートされ、ビッグCPU120は、第2通信チャネルCH2を通じてスヌーピング動作を行いながら、少なくとも1つの専用領域133、143に対するフラッシング動作(flushing operation)を行う。このフラッシング動作によるデータは、チャネルCH2、バス101、及びメモリコントローラ105を通じてメモリ107に伝送することができる。
図6の(C)に示したように、フラッシング動作が行われる間に、ビッグCPU120の各電力領域121、123は、複数の第2制御信号CTR2のうち対応する制御信号のそれぞれに応答して、パワーオフ状態になる。
フラッシング動作が完了すれば、図6の(D)に示したように、ビッグCPU120の各電力領域125、131、及び141は、複数の第2制御信号CTR2のうち対応する制御信号のそれぞれに応答して、パワーオフ状態になる。したがって、CPUスケーリングが完了すれば、スモールCPU110の第1L2キャッシュコントローラ115は、各選択器160、161を通じて少なくとも1つの共有領域133、143をアクセスすることができる。
図6の(A)から(D)に示したように、CPUスケーリングの間に、少なくとも1つの共有領域133、143に供給される各電力は、制御信号CTR3に応答して、そのまま保持される。また、CPUスケーリングの間に、少なくとも1つの共有領域133、143は、第2通信チャネルCH2を通じてスヌーピング動作を行わない。すなわち、少なくとも1つの共有領域133、143が、各CPU110、120によって物理的に共有されるので、スヌーピング動作が行われる全体領域は、減少する利点がある。
図7は、本発明の実施形態による他のCPUスケーリングプロセスのフローチャートである。図6の(A)から図7を参照すると、ビッグCPU120は、第2指示信号IND2をイシュイングしてCPUスケーリング動作を始める(ステップS210)。PMU150は、スモールCPU110の各電力領域をターンオンする(ステップS220)。ビッグCPU120は、少なくとも1つの専用領域131、141に対するスヌーピング動作を行い、各CPUコア121、123の電力は、ターンオフされる(ステップS230)。スヌーピング動作が完了すれば、ビッグCPU120の残りの電力領域131、141、125、及び127の電力は、ターンオフされ(ステップS240)、動作対象CPUは、ビッグCPU120からスモールCPU110に変更される(ステップS250)。
図8の(A)と(B)は、本発明の他の実施形態によるマルチCPUシステムの概略的なブロック図である。図8の(A)と(B)とを参照すると、マルチCPUシステムは、第1CPU110−1と第2CPU120−1とを含む。図8の(A)は、前記マルチCPUシステムの正面図を示し、図8の(B)は、前記マルチCPUシステムの平面図を示す。
図8の(A)と(B)とに示したように、第1CPU110−1は、第2CPU120−1上に積層(stack)される。第1CPU110−1と第2CPU120−1は、互いに異なるチップ(chip)またはダイとして具現可能である。少なくとも1つの共有L2キャッシュ領域133、143は、第2CPU120−1に具現可能である。少なくとも1つの共有L2キャッシュ領域133、143は、垂直的電気的ビア(verticalelectrical vias)、例えば、TSV(Through Silicon Vias)を通じて第1CPU110−1によってアクセスされうる。
スモールCPU110の構成要素を含むチップ110−1は、自分のL2キャッシュを含まない。その代りに、ビッグCPU120の全体L2キャッシュ130、140は、チップ120−1内に位置し、チップ120−1内に物理的に位置するL2キャッシュの共有部分133、143は、スモールCPU110とビッグCPU120とによって使われる。
第1CPU110−1の構造は、図1Aの第1CPU110の構造を含み、第2CPU120−1の構造は、図1Aの第2CPU120の構造を含む。ここで、図1AのPMU150に対応するPMUは、第2CPU120−1に具現可能である。このような実施形態で、CTR1のように、MPUに関連した複数の制御信号は、複数のTSVのうちの少なくとも1つを通じて伝送することができる。
図9は、本発明の実施形態によるボードアセンブリ(board assembly)のブロック図である。図9を参照すると、ボードアセンブリ200は、第1CPU110−2、第CPU120−2、少なくとも1つの共有領域133、143、PMU150、バス210、及びメモリ220を含む。図1A、図8の(A)、(B)、及び図9を参照すると、少なくとも1つの共有領域133、143は、第1CPU110−2と第2CPU120−2とは別途に具現可能である。少なくとも1つの共有領域133、143を除けば、図1Aの第1CPU110の構造と動作は、図9の第1CPU110−2の構造と動作と実質的に同一であり、図1Aの第2CPU120の構造と動作は、図9の第2CPU120−2の構造と動作と実質的に同一である。
第1L2キャッシュコントローラ115または第1インターフェースブロック117は、第1通信チャネルCH1を通じてバス210と通信することができる。第2L2キャッシュコントローラ125または第2インターフェースブロック127は、第2通信チャネルCH2を通じてバス210と通信することができる。各第1通信チャネルCH1、CH2は、電気的通信チャネルまたは光学的通信チャネルとして具現可能である。各L2キャッシュコントローラ115、125は、少なくとも1つの共有領域133、143を選択的にアクセスすることができる。
図10は、本発明の実施形態によるコンピュータプラットフォーム(computerplatform)を示す。図10を参照すると、コンピュータプラットフォーム300は、コンピューティングシステムのような電子装置に使われる。これらの電子装置は、PC(Personal Computer)、デジタルTV、または携帯用装置(portable device)として具現可能である。ここで、携帯用装置は、ラップトップコンピュータ(laptop computer)、携帯電話、スマートフォン(smart phone)、タブレット(tablet)PC、PDA(Personal Digital Assistant)、EDA(Enterprise Digital Assistant)、デジタルスチルカメラ(Digital Still Camera)、デジタルビデオカメラ(Digital Video Camera)、PMP(Portable Multimedia Player)、PDN(Personal NavigationDeviceまたはPortable Navigation Device)、携帯用ゲームコンソール(handheld game console)、または電子ブック(e−book)などとして具現可能である。
コンピュータプラットフォーム300は、マルチCPUシステム100、インターフェースブロック320、及びメモリ330を含む。実施形態によって、コンピュータプラットフォーム300は、無線インターフェースブロック340とディスプレイ350とのうち少なくとも1つをさらに含みうる。
マルチCPUシステム100は、インターフェースブロック320を通じてメモリ330、無線インターフェースブロック340、またはディスプレイ350と通信することができる。インターフェースブロック320は、多様なインターフェース制御機能を行う1つまたはそれ以上の回路ブロックを含む。前記制御機能は、メモリアクセス制御、グラフィック制御、入出力インターフェース制御、または無線ネットワークアクセス制御などを含む。
これらの回路ブロックのそれぞれは、別途の独立したチップとして具現されるか、マルチCPUシステム100の一部として具現されるか、またはマルチCPUシステム100の内部に具現可能である。
メモリ330は、インターフェースブロック320を通じてマルチCPUシステム100とデータを送受信することができる。無線インターフェースブロック340は、アンテナを通じてコンピュータプラットフォーム300を無線ネットワーク、例えば、移動通信ネットワークまたは無線LAN(Local Area Network)に接続させることができる。
図11は、本発明の実施形態によるマルチCPUシステムを含むコンピューティングシステムの一実施形態を示す。図11を参照すると、コンピューティングシステム400は、PC、データサーバ、ラップトップコンピュータ、または携帯用装置として具現可能である。
コンピューティングシステム400は、マルチCPUシステム100、パワーソース420、メモリ430、複数の入出力ポート440、拡張カード450、ネットワーク装置460、及びディスプレイ470を含みうる。実施形態によって、コンピューティングシステム400は、カメラモジュール480をさらに含みうる。
マルチCPUシステム100は、要素420〜480のうち少なくとも1つの動作を制御することができる。パワーソース420は、要素103、及び430〜480のうち少なくとも1つに動作電圧を供給することができる。メモリ430は、揮発性メモリまたは不揮発性メモリとして具現可能である。実施形態によって、メモリ430に対するデータアクセス動作、例えば、リード動作、ライト動作(または、プログラム動作)、またはイレーズ動作を制御することができるメモリコントローラは、マルチCPUシステム100に集積(または、内蔵)されうる。
他の実施形態によって、メモリコントローラは、マルチCPUシステム100とメモリ430との間に別途に具現可能である。複数の入出力ポート440は、コンピューティングシステム400にデータを伝送するか、またはコンピューティングシステム400から出力されたデータを外部装置に伝送しうる複数のポートを意味する。例えば、入出力ポート440は、コンピュータマウスのようなポインティング装置(pointing device)を接続するためのポート、プリンタを接続するためのポート、またはUSBドライブを接続するためのポートのうち少なくとも1つを含みうる。拡張カード450は、SD(Secure Digital)カードまたはMMC(MultiMediaCard)として具現可能である。実施形態によって、拡張カード450は、SIM(Subscriber Identification Module)カードまたはUSIM(Universal Subscriber Identity Module)カードであり得る。
ネットワーク装置460は、コンピューティングシステム400を有線ネットワークまたは無線ネットワークに接続させる装置を意味する。ディスプレイ470は、メモリ430、入出力ポート440、拡張カード450、またはネットワーク装置460から出力されたデータをディスプレイすることができる。カメラモジュール480は、光学イメージを電気的なイメージに変換することができるモジュールを意味する。したがって、カメラモジュール480から出力された電気的なイメージは、メモリ430、または拡張カード450に保存することができる。また、カメラモジュール480から出力された電気的なイメージは、マルチCPUシステム100の制御によってディスプレイ470を通じてディスプレイされうる。
図10と図11とには、マルチCPUシステム100が、各コンピューティングシステム300または400の要素として示されているが、実施形態によって、マルチCPUシステム100は、マルチCPU103またはボードアセンブリ200に代替されうる。この場合、各コンピューティングシステム300または400の構造は、マルチCPU103またはボードアセンブリ200に適するように変更されうる。
図12は、本発明の実施形態によるマルチCPUシステムを製造する方法を説明するフローチャートである。図1Aと図12とを参照すると、半導体基板が準備される(ステップS310)。この半導体基板上に少なくとも1つの第1CPUコア111、113に接続された第1L2キャッシュコントローラ115を含む第1CPU110と、少なくとも1つの第2CPUコア121、123に接続された第2L2キャッシュコントローラ125を含む第2CPU120とが形成される(ステップS320)。
第1CPU110と第2CPU120とのオーバーラップ領域133、143に、第1L2キャッシュコントローラ115と第2L2キャッシュコントローラ125とによって選択的にアクセス可能な共有L2キャッシュが形成される。
この半導体基板上に、システムバス101、システムバス101と第1キャッシュコントローラ115との間に第1通信チャネルCH1、及びシステムバス101と第2キャッシュコントローラ125との間に第2通信チャネルCH2が形成される。実施形態によって、S310段階とS320段階は、同時に具現されることもあり、互いに異なる時間に具現されることもある。
図8の(A)と(B)とに示したように、第1CPU110−1と第2CPU120−1が、互いに異なるチップまたはダイに形成された後、第1CPU110−1と第2CPU120−1が、少なくとも1つの共有領域133、143を共有できるように、垂直的電気的ビア(TSV)を通じて互いに接続されうる。
本発明は、マルチCPUプロセッサまたはそれを含むマルチCPUデータ処理システムに使用可能である。
100:マルチCPUシステム
101:システムバス
103:マルチCPU
110:第1CPU
111、113:CPUコア
115:L2キャッシュコントローラ
117:第1インターフェースブロック
120:第2CPU
121、123:CPUコア
125:L2キャッシュコントローラ
130、140:L2キャッシュ
131、141:L2キャッシュの専用領域
133、143:L2キャッシュの共有領域
127:第2インターフェースブロック
210:バス
220:メモリ

Claims (27)

  1. マルチCPUプロセッサ(multi−CPU processor)を含み、
    前記マルチCPUプロセッサは、
    少なくとも1つの第1コア、第1キャッシュ、及び前記第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、
    少なくとも1つの第2コアと第2キャッシュとをアクセスするための第2キャッシュコントローラを含む第2CPUと、を含み、前記第1キャッシュは、前記第2キャッシュの共有領域から具現されるマルチCPUデータ処理システム。
  2. 選択信号に基づいて、前記第1キャッシュコントローラまたは前記第2キャッシュコントローラからデータを前記第1キャッシュに入力する共有回路をさらに含む請求項1に記載のマルチCPUデータ処理システム。
  3. 前記第1CPU、前記第2CPU、及び前記第1キャッシュを独立してターンオンまたはターンオフするための複数の制御信号を出力する電力管理ユニットをさらに含む請求項1に記載のマルチCPUデータ処理システム。
  4. 前記電力管理ユニットは、前記第1キャッシュに電源を保持する間に、前記第1キャッシュを除いた前記第1CPUと前記第2CPUとの間で選択的に電源をスイッチする請求項3に記載のマルチCPUデータ処理システム。
  5. 前記第1キャッシュと前記共有回路は、第1SoCに具現され、前記第1キャッシュを除いた前記第1CPUは、第2Socに具現される請求項2に記載のマルチCPUデータ処理システム。
  6. 前記第1キャッシュを除いた前記第1CPUは、第1電力領域に具現され、前記第1キャッシュを除いた前記第2CPUは、第2電力領域に具現され、前記第1キャッシュは、第3電力領域に具現され、
    前記第1電力領域、前記第2電力領域、及び前記第3電力領域のそれぞれは、独立して制御可能な請求項5に記載のマルチCPUデータ処理システム。
  7. 少なくとも1つの第1コア、第1キャッシュ、及び前記第1キャッシュからデータをアクセスするための第1キャッシュコントローラを含む第1CPUと、
    少なくとも1つの第2コア及び第2キャッシュからデータをアクセスするための第2キャッシュコントローラを含む第2CPUと、を含み、
    前記第1キャッシュは、前記第2キャッシュの共有領域から具現され、
    前記第1キャッシュを除いた前記第1CPUは、第1ダイに具現され、前記第2CPUは、第2ダイに具現されるマルチCPUデータ処理システム。
  8. 選択信号に基づいて、前記第1キャッシュから前記第1キャッシュコントローラまたは前記第2キャッシュコントローラにデータを出力する共有回路をさらに含み、前記共有回路は、前記第2ダイ内に具現される請求項7に記載のマルチCPUデータ処理システム。
  9. 前記共有回路のための複数の制御信号ラインは、前記第1ダイと前記第2ダイとの間に接続して連結される複数のTSV(Through Silicon Via)を含む請求項8に記載のマルチCPUデータ処理システム。
  10. L1キャッシュと前記第1キャッシュは、共通基板に具現される請求項7に記載のマルチCPUデータ処理システム。
  11. 少なくとも1つのアドレスラインは、L1キャッシュと前記第1キャッシュとに共通する請求項7に記載のマルチCPUデータ処理システム。
  12. 前記第1キャッシュを除いた前記第1CPUは、第1電力領域に位置し、前記第1キャッシュを除いた前記第2CPUは、第2電力領域に位置し、前記第1キャッシュは、第3電力領域に位置する請求項7に記載のマルチCPUデータ処理システム。
  13. 前記第3電力領域がパワーオンを保持する間に、前記第1電力領域と前記第2電力領域とに電力を選択的に供給する電力管理ユニットをさらに含む請求項12に記載のマルチCPUデータ処理システム。
  14. 前記マルチCPUデータ処理システムは、スマートフォン、ラップトップPC、またはタブレットPCとして具現される請求項7に記載のマルチCPUデータ処理システム。
  15. 前記第1キャッシュは、L2キャッシュまたは前記L3キャッシュである請求項7に記載のマルチCPUデータ処理システム。
  16. 第1CPUが第1キャッシュコントローラを通じて第1キャッシュをアクセスする段階と、
    第2CPUが第2キャッシュコントローラを通じて第2キャッシュをアクセスする段階と、
    前記第1キャッシュのフラッシング(flushing)なしに前記第1CPUから前記第2CPUにキャッシュアクセス動作をスイッチする段階と、を含み、
    前記第1キャッシュは、前記第2キャッシュの共有領域から具現されるマルチCPUプロセッサを利用したデータ処理方法。
  17. 選択信号に基づいて、前記第1CPUまたは前記第2CPUから前記第2キャッシュに入力されるデータをマルチプレクシング(Multiplexing)する段階をさらに含む請求項16に記載のマルチCPUプロセッサを利用したデータ処理方法。
  18. スヌーピング(snooping)なしに前記第1CPUから前記第2CPUにキャッシュアクセス動作をスイッチングする段階をさらに含む請求項16に記載のマルチCPUプロセッサを利用したデータ処理方法。
  19. 前記第2CPUから前記第1CPUにキャッシュアクセス動作をスイッチングし、前記第2キャッシュの非共有領域に対するフラッシング動作を行う段階をさらに含む請求項16に記載のマルチCPUプロセッサを利用したデータ処理方法。
  20. 前記第2CPUから前記第1CPUにキャッシュアクセス動作をスイッチングし、前記第2キャッシュの非共有領域に対するスヌーピング動作を行う段階をさらに含む請求項16に記載のマルチCPUプロセッサを利用したデータ処理方法。
  21. 少なくとも1つの第1コア、第1キャッシュ、前記第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、
    少なくとも1つの第2コアと前記第1キャッシュとの保存容量よりも大きな保存容量を有する第2キャッシュをアクセスするための第2キャッシュコントローラを含む第2CPUと、
    選択信号に基づいて、前記第1キャッシュコントローラを通じて前記第1コアまたは前記第2キャッシュコントローラを通じて前記第2コアから前記第1キャッシュにデータを伝送するマルチプレクサと、
    前記選択信号に基づいて、前記第1キャッシュから前記第1キャッシュコントローラを通じて前記第1コアまたは前記第2キャッシュコントローラを通じて前記第2コアからデータを伝送するためのデマルチプレクサと、
    を含むプロセッサ。
  22. 前記第1キャッシュは、前記第2キャッシュの共有領域から具現される請求項21に記載のプロセッサ。
  23. マルチCPUプロセッサを含み、
    前記マルチCPUプロセッサは、
    少なくとも1つの第1コア、第1キャッシュ、前記第1キャッシュをアクセスするための第1キャッシュコントローラを含む第1CPUと、
    少なくとも1つの第2コアと第2キャッシュとをアクセスするための第2キャッシュコントローラを含む第2CPUと、
    前記第1CPUと前記第2CPUとのうち少なくとも1つに電源を選択的に供給する電力管理ユニット(PMU)と、
    データバスを通じて前記マルチCPUプロセッサに/からメモリアクセスを制御するメモリコントローラと、を含み、前記第1キャッシュは、前記第2キャッシュの共有領域から具現されるマルチCPUデータ処理システム。
  24. 前記電力管理ユニットは、前記第1キャッシュに電源が供給される間に、前記第1CPUと前記第2CPUとのターンオンまたはターンオフを独立して制御するための複数の制御信号を出力する請求項23に記載のマルチCPUデータ処理システム。
  25. 前記第1キャッシュを除いた前記第1CPUは、第1電力領域に位置し、前記第1キャッシュを除いた前記第2CPUは、第2電力領域に位置し、前記第1キャッシュは、第3電力領域に位置する請求項23に記載のマルチCPUデータ処理システム。
  26. 前記電力管理ユニットは、前記第3電力領域に電源が供給される間に、前記第1電力領域と前記第2電力領域との間で電力を選択的にスイッチする請求項25に記載のマルチCPUデータ処理システム。
  27. 前記マルチCPUデータ処理システムは、スマートフォン、ラップトップPC、またはタブレットPCとして具現される請求項23に記載のマルチCPUデータ処理システム。
JP2013089640A 2012-05-08 2013-04-22 マルチcpuシステムとそれを含むコンピューティングシステム Active JP5905408B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120048455A KR101858159B1 (ko) 2012-05-08 2012-05-08 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
KR10-2012-0048455 2012-05-08

Publications (3)

Publication Number Publication Date
JP2013235576A true JP2013235576A (ja) 2013-11-21
JP2013235576A5 JP2013235576A5 (ja) 2015-11-19
JP5905408B2 JP5905408B2 (ja) 2016-04-20

Family

ID=49475645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013089640A Active JP5905408B2 (ja) 2012-05-08 2013-04-22 マルチcpuシステムとそれを含むコンピューティングシステム

Country Status (6)

Country Link
US (2) US8949534B2 (ja)
JP (1) JP5905408B2 (ja)
KR (1) KR101858159B1 (ja)
CN (1) CN103389961B (ja)
DE (1) DE102013104198A1 (ja)
TW (1) TWI601065B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016427A (ja) * 2015-07-01 2017-01-19 株式会社東芝 プロセッサシステム、メモリ制御回路およびメモリシステム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2901235B1 (en) * 2012-09-25 2020-05-27 Intel Corporation Digitally phase locked low dropout regulator
DE102013106699B3 (de) * 2013-06-26 2014-02-27 Fujitsu Technology Solutions Intellectual Property Gmbh Computersystem mit einem Abwesenheitsmodus
KR20150050135A (ko) * 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
CN103823712B (zh) * 2014-03-17 2017-05-10 杭州华三通信技术有限公司 一种多cpu虚拟机系统的数据流处理方法和装置
KR102164099B1 (ko) * 2014-03-28 2020-10-12 삼성전자 주식회사 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치
US20150370707A1 (en) * 2014-06-24 2015-12-24 Qualcomm Incorporated Disunited shared-information and private-information caches
FR3043476B1 (fr) * 2015-11-05 2018-09-28 Dolphin Integration Systeme et procede de gestion d'alimentation
US9871020B1 (en) 2016-07-14 2018-01-16 Globalfoundries Inc. Through silicon via sharing in a 3D integrated circuit
JP6740456B2 (ja) * 2016-08-01 2020-08-12 ティーエスヴイリンク コーポレイション 多重チャネルキャッシュメモリおよびシステムメモリデバイス
US10275280B2 (en) 2016-08-10 2019-04-30 International Business Machines Corporation Reserving a core of a processor complex for a critical task
US10248457B2 (en) 2016-08-10 2019-04-02 International Business Machines Corporation Providing exclusive use of cache associated with a processing entity of a processor complex to a selected task
US10248464B2 (en) * 2016-10-24 2019-04-02 International Business Machines Corporation Providing additional memory and cache for the execution of critical tasks by folding processing units of a processor complex
US10223164B2 (en) 2016-10-24 2019-03-05 International Business Machines Corporation Execution of critical tasks based on the number of available processing entities
US10147464B1 (en) * 2017-06-20 2018-12-04 Apple Inc. Managing power state in one power domain based on power states in another power domain
KR20200104601A (ko) 2019-02-27 2020-09-04 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR102456173B1 (ko) 2017-10-27 2022-10-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN108170255B (zh) * 2018-01-24 2020-07-03 苏州国芯科技股份有限公司 一种控制装置
CN110688331B (zh) * 2018-07-05 2021-08-17 珠海全志科技股份有限公司 一种SoC芯片及读取数据的方法
KR102456176B1 (ko) 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11573891B2 (en) 2019-11-25 2023-02-07 SK Hynix Inc. Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR20210063724A (ko) 2019-11-25 2021-06-02 에스케이하이닉스 주식회사 메모리 시스템
KR102406449B1 (ko) 2020-06-25 2022-06-08 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11755476B2 (en) 2020-04-13 2023-09-12 SK Hynix Inc. Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device
KR102495910B1 (ko) 2020-04-13 2023-02-06 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102435253B1 (ko) 2020-06-30 2022-08-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010003042A (ja) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd マルチcpuシステムおよびプログラマブルコントローラ
JP2010534377A (ja) * 2007-07-20 2010-11-04 インテル・コーポレーション 低電力モード中にキャッシュされた情報を保存する技術

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6434672B1 (en) 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
DE60041444D1 (de) 2000-08-21 2009-03-12 Texas Instruments Inc Mikroprozessor
JP2004179442A (ja) * 2002-11-28 2004-06-24 Renesas Technology Corp マルチチップモジュール
US7349285B2 (en) * 2005-02-02 2008-03-25 Texas Instruments Incorporated Dual port memory unit using a single port memory core
US8028131B2 (en) * 2006-11-29 2011-09-27 Intel Corporation System and method for aggregating core-cache clusters in order to produce multi-core processors
US20090006756A1 (en) * 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
US7827357B2 (en) 2007-07-31 2010-11-02 Intel Corporation Providing an inclusive shared cache among multiple core-cache clusters
US8433851B2 (en) 2007-08-16 2013-04-30 International Business Machines Corporation Reducing wiring congestion in a cache subsystem utilizing sectored caches with discontiguous addressing
US8131941B2 (en) 2007-09-21 2012-03-06 Mips Technologies, Inc. Support for multiple coherence domains
US20110238925A1 (en) 2008-10-02 2011-09-29 Dan Robinson Cache controller and method of operation
KR101017068B1 (ko) 2008-11-25 2011-02-25 서울대학교산학협력단 개별 l2 캐시를 사용하는 멀티 프로세서 환경에서의 누설 에너지를 고려한 캐시 공유 방법
JP2010180156A (ja) 2009-02-05 2010-08-19 Chiba Univ 1,2−ジオールからの低級飽和アルデヒド製造方法
KR101215732B1 (ko) 2010-11-05 2013-01-09 구기승 릴 포장 카세트
US8793686B2 (en) * 2011-06-08 2014-07-29 Microsoft Corporation Operating system decoupled heterogeneous computing
US9158693B2 (en) * 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010534377A (ja) * 2007-07-20 2010-11-04 インテル・コーポレーション 低電力モード中にキャッシュされた情報を保存する技術
JP2010003042A (ja) * 2008-06-19 2010-01-07 Koyo Electronics Ind Co Ltd マルチcpuシステムおよびプログラマブルコントローラ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017016427A (ja) * 2015-07-01 2017-01-19 株式会社東芝 プロセッサシステム、メモリ制御回路およびメモリシステム

Also Published As

Publication number Publication date
DE102013104198A1 (de) 2013-11-14
JP5905408B2 (ja) 2016-04-20
US20130304992A1 (en) 2013-11-14
US9606920B2 (en) 2017-03-28
US20150143048A1 (en) 2015-05-21
TWI601065B (zh) 2017-10-01
CN103389961A (zh) 2013-11-13
CN103389961B (zh) 2017-10-27
TW201403465A (zh) 2014-01-16
KR20130125039A (ko) 2013-11-18
US8949534B2 (en) 2015-02-03
KR101858159B1 (ko) 2018-06-28

Similar Documents

Publication Publication Date Title
JP5905408B2 (ja) マルチcpuシステムとそれを含むコンピューティングシステム
US10705588B2 (en) Enabling a non-core domain to control memory bandwidth in a processor
US10566075B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
US10943635B2 (en) Memory device shared by two or more processors and system including the same
JP5960842B2 (ja) ハイブリッドなライトスルー/ライトバックキャッシュポリシーマネージャ、ならびに関連するシステムおよび方法
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
EP2657846A1 (en) Managing operational state data in memory module
KR100758301B1 (ko) 메모리 카드 및 그것의 데이터 저장 방법
US8621159B2 (en) Shared access memory scheme
JP2013206474A (ja) メモリ装置及びメモリ装置の動作方法
KR20120082836A (ko) 복수의 회로들에서의 성능 파라미터들 조정
KR20100096762A (ko) 시스템 온 칩 및 이를 포함하는 전자 시스템
KR102161689B1 (ko) L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
KR102031952B1 (ko) 메모리 장치 및 메모리 장치의 동작방법
KR20150106144A (ko) 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
US20160358642A1 (en) Mobile device and operation method thereof
JP2017068806A (ja) 情報処理装置および情報処理方法
JP2006031263A (ja) 半導体装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151001

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151001

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20151001

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20151021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160316

R150 Certificate of patent or registration of utility model

Ref document number: 5905408

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250