JP5237739B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5237739B2
JP5237739B2 JP2008251122A JP2008251122A JP5237739B2 JP 5237739 B2 JP5237739 B2 JP 5237739B2 JP 2008251122 A JP2008251122 A JP 2008251122A JP 2008251122 A JP2008251122 A JP 2008251122A JP 5237739 B2 JP5237739 B2 JP 5237739B2
Authority
JP
Japan
Prior art keywords
clock
bus
processor core
supplied
information processing
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.)
Expired - Fee Related
Application number
JP2008251122A
Other languages
English (en)
Other versions
JP2010086030A (ja
Inventor
雅文 小野内
弘之 水野
雄介 菅野
真 佐圓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008251122A priority Critical patent/JP5237739B2/ja
Priority to US12/466,696 priority patent/US8239695B2/en
Publication of JP2010086030A publication Critical patent/JP2010086030A/ja
Application granted granted Critical
Publication of JP5237739B2 publication Critical patent/JP5237739B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Description

本発明は、情報処理装置に関し、特に、複数の汎用プロセッサ、あるいは、複数の専用プロセッサを用いて高い処理性能を省電力で実現する処理方式に関するものである。
例えば、複数の汎用プロセッサ、あるいは複数の専用プロセッサを用いて高い処理性能を実現する方式として、高い処理性能を持つ汎用プロセッサを多数集積する技術が存在する。このような技術として、例えば、非特許文献1や非特許文献2には、80個のプロセッシングエンジン(PE)を搭載したネットワークチップが示されている。一例として、非特許文献2のネットワークチップは、1.07Vの電源電圧、4.27GHzのクロック周波数で動作し、97Wの消費電力で1.0TFLOPSの処理性能を備えている。
また、特許文献1には、CPU部、メモリ部、周辺回路等の回路ブロックに対し個別に電源電圧を供給する電源供給部を有し、回路ブロックごとに個別に供給する電圧を可変にすることが可能なマイクロコントローラが記載されている。
特開2006−39623号 S.Vangal、他13名、"An 80-Tile 1.28TFLOPS Network-on-Chip in 65nm CMOS"、2007 IEEE International Solid-State Circuits Conference Digest of Technical Papers、2007年2月、p.98−99 S. Vangal、他14名、"An 80-Tile Sub-100-W TeraFLOPS Processor in 65-nm CMOS"、IEEE Journal of Solid-State Circuits、Vol.43、No.1、2008年1月、p.29−41
従来では、プロセス技術の進歩によりトランジスタの微細化を進めることで、動作周波数の高速化や、電源電圧を下げることによる低電力化が実現されてきた。ところが、最近はプロセスの微細化を行い電源電圧を下げても、スイッチング電流の減少よりもリーク電流の増加が勝り、これまでのような電力スケーリングが望めなくなってきた。さらに、プロセスの微細化を行うことでトランジスタ性能のバラつきも顕著となり、動作周波数の向上も頭打ちとなってきている。その一方で、プロセスの微細化により、現在のSoC(System−on−a−Chip)では数十個のプロセッサコアが搭載可能となり、次世代のSoCでは〜100個のプロセッサコアが搭載されることが予想される。
このような背景のもとで、前述した非特許文献1および非特許文献2では、1チップ上に高性能なプロセッサコアを80個集積することで非常に高い処理性能を実現している。しかし、この方式では絶対性能向上のためにプロセッサコアを高周波数(例えば数GHz)で動かそうとすると、電源電圧も高くしなければならないため消費電力が増大し、結果として性能電力比は、大きく低下してしまう。
具体的には、図23に示すように、電源電圧を高くすると周波数(=処理性能)は電源電圧に対しリニアで向上するが、消費電力は電源電圧の3乗で増加するため、性能電力比(=処理性能/電力)は2乗で悪化してしまう。例えば、非特許文献2に開示された数値を用いて性能(=TFLOPS)あたりの電力(W)を計算すると、プロセッサコアの動作周波数が1GHzと5.67GHzのときの比は0.38となり、ほぼ3分の1に低下していることが分かる。特に、5.67GHz動作時には200W以上の電力を消費しており、SoCの冷却も大きな課題となってしまう。このように、今後のSoCにおいて、処理性能の向上はもちろんであるが、それを如何に省電力で実現するかということが重要になってきている。
また、特許文献1では、回路ブロック毎に個別に供給電圧を低減することにより、個別に消費電力を低減することが可能となる。しかし、特許文献1には、消費電力を低減しつつ性能電力比を向上する構成については記載も示唆もされていない。
本発明の前記ならびにそれ以外の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
すなわち、本発明の代表的な実施の形態による情報処理装置は、第1演算部を含む第1プロセッサコアと、第2演算部を含む第2プロセッサコアと、各プロセッサコアに共通接続されたバスとを有するものとなっている。そして、バスには、第1演算部への供給電源電圧や第2演算部への供給電源電圧よりも高い電源電圧が供給され、かつ、第1演算部への供給クロックや第2演算部への供給クロックよりも高周波数のクロックが供給されることが特徴となっている。このような構成を用いると、プロセッサコアでの消費電力を抑制しつつ、各プロセッサコアでの処理性能の低下をバスの高速動作によって補償でき、結果的に、高い処理性能と高い性能電力比を備えた情報処理装置を実現可能になる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すると、プロセッサコアの性能電力比を向上させることができるため、それを多数並列動作させることで高い処理性能と高い性能電力比を実現できる。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
本実施の形態による情報処理装置は、高い処理性能と同時に高い性能電力比を実現するために、多数の汎用プロセッサコア、専用プロセッサコアには低い電源電圧を印加し低周波数で動作させ、グローバルクロック、バス、メモリ、PLLのような発振回路(以下ではこれら4要素をまとめてグローバル系と呼ぶことにする)には高い電源電圧を印加し高周波数で動作させる方式を用いている。この方式を用いると、プロセッサコアの電源電圧を低くすることで、プロセッサコア1つあたりの性能電力比を電源電圧に対して2乗で改善することができる。ただし、周波数の低下に伴って処理性能もリニアに低下してしまうが、これに関しては多数のプロセッサコアを並列動作させることで絶対性能を確保することができる。さらに、多数のプロセッサコアが並列動作することで発生する多量のデータ通信は、グローバル系を高速動作させることでその通信性能を確保することができる。
この方式は、一般的なマルチプロセッサコアのSoCでは、プロセッサコアで消費する電力が大半を占め、グローバル系で消費する電力の割合が小さいという性質を利用している。したがって、グローバル系を高速動作させたとしても相対的に消費電力の増加は抑制され、SoC全体として見た場合に性能電力比を向上させることができる。例えば、0.8Vで動作する64個の汎用プロセッサコアが1.0Vと1GHzで動作するバスで接続されたSoCを想定して試算した結果、汎用プロセッサコアの動作周波数を10MHzから20,40,80MHzと向上させた場合に、電力増加量は3,9,20%となり、性能電力比は1.94,3.68,6.66倍と向上することが分かった。以降、この方式を適用した情報処理装置のより詳細な構成例等に関して説明を行う。
図1は、本発明の実施の形態1による情報処理装置において、その構成の一例を示すブロック図である。図1では、SoC上の主なIP(Intellectual Property)をブロックで、信号線を実線で、クロックを点線で、電源を太線で示している。図1に示す情報処理装置(Soc)は、主なIPの一例として、汎用(あるいは専用)プロセッサコアPE0〜PE63、バスBS、発振器PLL、その他のモジュールMOD0〜MOD7、オンチップメモリON_MEM、メモリコントローラDBSC、高電圧信号用のバッファ回路BUFH等を備えている。DBSCは、オフチップメモリOFF_MEMと接続される。PE0〜PE63,MOD0〜MOD7,ON_MEM,DBSCのそれぞれは、バスインタフェースBSIFや分周器DIVなどを含んで構成される。なお、ここでは便宜的にPEを64個、MODを8個記載したが、その個数は0個以上の幾つであっても良い。
PE0〜PE63,MOD0〜MOD7,ON_MEM,DBSCは、それぞれ信号線SigP0〜SigP63,SigM0〜SigM7,SigOM,SigDを介してBSと接続される。なお、便宜的にこれらの信号線は1本で代表したが、0本以上の何本であっても構わない。PLLからは各IPに高電圧・高周波数のクロックCLKHがバッファ回路BUFHによって分配される。なお、ここでは簡単のためにBUFHを代表して1個のみ記載したが、BUFHはCLKHの伝播経路上に幾つあっても良い。PLL,BS,ON_MEM,DBSCには高電源電圧VDDHが供給され、高電圧・高周波数で動作する。一方、PE0〜PE63,MOD0〜MOD7には高電源電圧VDDHと低電源電圧VDDLの両方が供給される。PE0〜PE63,MOD0〜MOD7は、後で述べるように、内部にあるBSIF,DIV以外にVDDLが供給され、低電圧・低周波数で動作する。BSIF,DIVにはVDDH,VDDLの両方が供給され、異なる電圧・周波数で動作するブロック間の仲介を行う。以下、異なる電圧・周波数で動作するブロック間の仲介を行うためのブロックをインタフェース部と呼び、本実施の形態ではBSIF、DIVがインタフェース部BICに該当する。ここで、それぞれの電源電圧は、例えば、VDDHが1.0〜1.2V、VDDLが0.6〜0.8Vなどである。
図2は、図1の一部を抜き出してIP周りの結線の状態をより詳細に記載したものである。図2では、IPとして、PE0,PE1、メモリ用調停ブロックARBD、メモリリード信号選択ブロックSEL_R、メモリライト信号選択ブロックSEL_W、DBSCが示され、このうちARBD,SEL_R,SEL_Wが図1のBSに相当する。さらに、PE内部の電源結線を説明するために代表としてPE0の内部のみを詳細に記述している。ここでは、多数の構成要素を代表して演算器ALU、命令デコーダINSTDEC、キャッシュCACHEを記載したが、これ以外の要素から構成されていても構わない。これらの回路群が、PEの内部で実際に演算を行う。以下、このように実際に演算処理を行う回路群を、演算部CPULと呼ぶ。
PE0内部に供給される電源はVDDL,VDDHの2種類があるが、BSIF,DIVには周波数変換とレベル変換を行うためにVDDL,VDDHの2種類が供給される。それ以外のALU,INSTDEC,CACHE等は低周波数(図示しないクロックCLKL)で動作するためVDDLのみが供給される。また、この例では、PE0,PE1,DBSCの3つの例で説明するが、勿論、PEが3個以上であってもよく、またDBSCの代わりにMODや他のPEであっても構わない。ARBD,SEL_R,SEL_W,DBSCは、VDDHが供給され、高電圧・高周波数で動作する。一方、PE0,PE1は、VDDH,VDDLの両方が供給され、BSIF,DIV以外は低電圧・低周波数で動作する。BSIF,DIVは、異なる電圧振幅・異なる周波数で動作するブロックの仲介を行う。以上の説明では、電源電圧はVDDHとVDDLの2種類に限定しクロックをCLKHとCLKLの2種類に限定したが、3種以上の電源及びクロックを併用することも可能である。その場合は、バスBSに、最も高電圧の電源や、高周波数のクロックを供給することが望ましい。バスBSは、最も負荷がかかる回路であるため、バスBSに高電圧の電源及び高周波数のクロックを供給することにより、通信の高安定性及び高性能が実現できるからである。
以上の通り、本実施の形態の情報処理装置は、バスBSとインタフェース部BICに演算部CPULより高電圧の電源及び高周波数のクロックが供給されることを特徴とする。この構成は、前述の特許文献1とは異なる方法で、消費電力を低減しつつ性能電力比を向上できるという顕著な効果を有する。その詳細を以下で説明する。
前述の通り、電源電圧を上昇させると、それに伴い性能電力比は電圧の2乗で悪化する。逆に、電圧を低下させることで、性能電力比を2乗で向上することが可能となる。従って、消費電力を低減するためには、供給電圧を低減することは極めて有効である。しかしながら、供給電圧を低減することは、演算性能をも低減することにつながる。そのため特許文献1においては、動作中は供給電圧を上昇させ、待機中に供給電圧を低減することで演算性能を実現している。しかしながらこの方式では、動作中のプロセッサコアに対する消費電力の低減は期待できない。
これに対し実施の形態1においては、バスBS及びインタフェース部BICよりも低電圧及び低周波数のクロックを演算部CPULに供給することで個々のプロセッサコアの消費電力を低減し、かつ複数個のプロセッサコアを並列にバスBSに接続することで、SoC全体としての演算性能を向上している。このことにより、前述の性能電力比を大幅に向上することが可能となる。すなわち、供給する電圧を増加させ個々のプロセッサの演算性能を上昇させるのではなく、プロセッサの個数を増加させつつ供給する電圧を低減させることにより、性能電力比を向上させることを可能としたのである。
ここで、全ての構成要素に対し供給電圧やクロック周波数を低減することが可能なわけではない。特に、バスBSやインタフェース部BIC等を含むグローバル系は、複数のプロセッサコアによる大量の負荷がかかる点と、プロセッサ間の通信速度を低下させてはかえって性能を悪化させることとなる点により、高電圧の電源及び高周波数のクロックを供給して、通信性能を保障することが性能向上につながる。それに対し、一般的なマルチコアプロセッサのSoCにおいてはプロセッサコアで消費する電力が大半を占めており、前述の通りプロセッサコアの数を増加させることで性能を確保することも可能であるため、プロセッサコアにおける電源を低電圧としクロックを低周波数とすることで、大幅に消費電力を低減することが可能になる。このような理由により、本実施の形態の情報処理装置は、バスBSとインタフェース部BICに演算部CPULより高電圧の電源及び高周波数のクロックが供給される構成とした。
図2において、PE0とARBDの間は、PE0からARBDに対するリクエスト信号(アドレス信号含む)Req0Aと、Req0Aに対するアクノリッジ信号Ack0Aと、ARBDからPE0に対するリクエスト信号(アドレス信号含む)ReqA0と、ReqA0に対するアクノリッジ信号AckA0で結ばれる。PE1とARBDの間は、PE1からARBDに対するリクエスト信号(アドレス信号含む)Req1Aと、Req1Aに対するアクノリッジ信号Ack1Aと、ARBDからPE1に対するリクエスト信号(アドレス信号含む)ReqA1と、ReqA1に対するアクノリッジ信号AckA1で結ばれる。PE0とSEL_Rの間は、データ信号Data0Rで、PE1とSEL_Rの間はデータ信号Data1Rでそれぞれ結ばれる。PE0とSEL_Wの間は、データ信号Data0Wで、PE1とSEL_Wの間はデータ信号Data1Wでそれぞれ結ばれる。
ARBDとDBSCの間は、ARBDからDBSCに対するリクエスト信号(アドレス信号含む)ReqADと、ReqADに対するアクノリッジ信号AckADと、DBSCからARBDに対するリクエスト信号(アドレス信号含む)ReqDAと、ReqDAに対するアクノリッジ信号AckDAで結ばれる。ARBDとSEL_Rの間は、リード制御信号CtlRで、ARBDとSEL_Wの間は、ライト制御信号CtlWでそれぞれ結ばれる。SEL_RとDBSCの間は、データ信号DataDRで、SEL_WとDBSCの間はデータ信号DataDWでそれぞれ結ばれる。ここで、いずれの信号線も便宜的に1本で代表させたが、複数本で構成されても良い。また、この図は簡単のために2個のPEに対してDBSC1個としたが、m対nの任意の構成をとっても良い。
図3は、図2の第1の動作例として、PE0からDBSCに対してリードリクエストが発行された際の動作波形を示している。高振幅・高周波数で駆動されるCLKHの時刻T0において、PE0からDBSCに対してリードリクエストとアドレスが発行されたとすると、時刻T0においてReq0AはInvalid状態からリード命令R0Aへと変化する。ARBDは、R0Aを受けて他からのリードリクエストがなければアクノリッジ信号を返し、時刻T1ではAck0AがInvalidからアクノリッジ命令A0Aへと変化している。続いて、ARBDは、DBSCに対しリードリクエストとアドレスの発行を行い、時刻T2ではReqADがリード命令RADに変化している。DBSCは、RADを受けて他からのリクエストがなければアクノリッジ信号を返すため、時刻T3ではAckADがInvalidからアクノリッジ命令AADへと変化している。
次いで、DBSCは、リードリクエストが発行されたアドレスに応じてOFF_MEMへの読み出し動作を行い(この例では2クロックを要したと仮定している)、該当データが得られた時点でARBDへ読み出し結果通知リクエスト命令RDAを発行し、同時にDataDRに読出し結果Data0を出力する。従って、時刻T6では、ReqDAがInvalidからRDAへと、DataDRがInvalidからData0へと変化している。ARBDは、RDAを受けて、他からのリクエストがなければアクノリッジ信号ADAを返し、DataDRをSEL_R内のバッファに格納する。このとき時刻T7では、AckDAがInvalidからADAへと変化している。
引き続き、ARBDは、PE0に対し読み出し結果通知リクエスト命令RA0を発行すると共に、DBSCとPE0を接続するためCtlRをSPE0に変化させ、Data0Rに先ほど格納したData0を出力する。このとき、時刻T8では、ReqA0がInvalidからRA0へと、CtlRがInvalidからSPE0へと、Data0RがInvalidからData0へと変化している。以降は、PE0が要求したデータ量の読み出しが完了するまでこの動作が繰り返される。図3の例では、Data0とData1からなる2回の読出し動作が行われている。
図4は、図2の第2の動作例として、PE0とPE1から同時にDBSCに対してリードリクエストが発行された際の動作波形を示している。高振幅・高周波数で駆動するCLKHの時刻T0において、PE0およびPE1からDBSCに対してリードリクエストとアドレスが発行されたとすると、時刻T0において、Req0AはInvalid状態からリード命令R0Aへと、Req1AはInvalid状態からリード命令R1Aへと変化する。ARBDは、R0A,R1Aを同時に受けるので、スケジューリングポリシーに基づき、例えばPE0とPE1に対して交互にリード動作を許可する。このスケジューリングポリシーは予め決めておいても良いし、動的に変更しても良い。この例では、時刻T1でPE0に対してアクノリッジ信号を返し、時刻T3でPE1に対してアクノリッジ信号を返しており、時刻T1ではAck0AがInvalidからアクノリッジ命令A0Aへと、時刻T3ではAck1AがInvalidからアクノリッジ命令A1Aへと変化している。
引き続きARBDは、DBSCに対しPE0とPE1のリードリクエストとアドレスの発行を連続して行うので、ReqADは、時刻T2でPE0からのリードリクエスト命令を反映したリード命令RADに、時刻T4でPE1のリードリクエスト命令を反映したリード命令RADに、時刻T6で再びPE0のリードリクエスト命令を反映したリード命令RADに、時刻T8でPE1のリードリクエスト命令を反映したリード命令RADに変化する。DBSCは、RADを受けて他からのリクエストがなければアクノリッジ信号を返すため、AckADは、時刻T3でInvalidからPE0からのリードリクエスト命令に対応するアクノリッジ命令AADへと、時刻T5でPE1からのリードリクエスト命令に対応するアクノリッジ命令AADへと、時刻T7でPE0からのリードリクエスト命令に対応するアクノリッジ命令AADへと、時刻T9でPE1からのリードリクエスト命令に対応するアクノリッジ命令AADへと順番に変化する。
DBSCは、リードリクエストが発行されたアドレスに応じてOFF_MEMへの読み出し動作を行い(この例では2クロックを要したと仮定している)、該当データが得られた時点でARBDへ読み出し結果通知リクエスト命令RDAを発行し、同時にDataDRに読出し結果を出力する。ここでは、時刻T6にてReqDAがInvalidからPE0からのリードリクエスト命令に対応するRDAへと、DataDRがInvalidからData00へと変化し、時刻T8にてReqDAがPE1からのリードリクエスト命令に対応するRDAへと、DataDRがData10へと変化し、時刻T10にてReqDAがPE0からのリードリクエスト命令に対応するRDAへと、DataDRがData01へと順番に変化している。
ARBDは、RDAを受けて、他からのリクエストがなければアクノリッジ信号ADAを返し、DataDRをSEL_R内のバッファに格納する。このとき、AckDAは、時刻T7でInvalidからADAへと、時刻T9でInvalidからADAへと、時刻T11でInvalidからADAへと順に変化している。引き続きARBDは、PE0とPE1に対し読み出し結果通知リクエスト命令AA0,AA1を連続して発行すると共に、DBSCとPE0,PE1を連続して接続するためCtlRをSPE0,SPE1と連続して変化させ、Data0R,Data1Rに先ほど格納したData00,Data10を順番に出力する。このとき時刻T8では、ReqA0がInavlidからRA0へと、CtlRがInvalidからSPE0へと、Data0RがInvalidからData00へと変化し、時刻T10ではReqA1がInvalidからRA1へと、CtlRがSPE1へと、Data1RがInvalidからData10へと変化している。以降は、PE0,PE1が要求したデータ量の読み出しが完了するまでこの動作が繰り返される。
図5は、図1あるいは図2のプロセッサコアPEの構成例を示している。ここでは、例としてPE0で説明を行うが、これ以外のPE、あるいはMODも同様の構成をとる。また、PE0を構成するモジュールのうち、演算器、キャッシュなど一般的なものは簡単のため記載せず、本実施の形態により設けられたモジュールのみを記載している。図5のPE0は、モジュールとして、コマンド生成ブロックCMD_0,CMD_1、データレジスタDREG_L,DREG_H、レベルシフタLS_C,LS_D、分周器DIVを含んでいる。ここで、コマンド生成ブロック、データレジスタ、およびレベルシフタは、図1または図2におけるバスインタフェースBSIFを構成する。
CMD_0,DREG_Lは、低電圧電源VDDLが供給され、低振幅・低周波数クロックCLKLに同期して動作する。CMD_0は、DREG_Lに対してデータラッチ用の制御信号CtlLを出力する。CMD_1,DREG_Hは、高電圧電源VDDHが供給され、高振幅・高周波数クロックCLKHに同期して動作する。CMD_1は、DREG_Hに対してデータラッチ用の制御信号CtlHを出力する。LS_C,LS_Dは、VDDL,VDDHの両方が供給され、異なる振幅で動作するモジュール間のレベル変換を行う。また、DIVは、VDDL,VDDHの両方が供給され、前述したレベル変換機能を備えることに加え、高周波数クロックCLKHから低周波数クロックCLKLへの周波数の変換も行う。
CMD_0とLS_Cの間は、CMD_0からLS_Cに対するリクエスト信号(アドレス信号含む)Req0Lと、Req0Lに対するアクノリッジ信号Ack0Lと、LS_CからCMD_0に対するリクエスト信号(アドレス信号含む)ReqL0と、ReqL0に対するアクノリッジ信号AckL0で接続される。LS_CとCMD_1の間は、LS_CからCMD_1に対するリクエスト信号(アドレス信号含む)Req0Hと、Req0Hに対するアクノリッジ信号Ack0Hと、CMD_1からLS_Cに対するリクエスト信号(アドレス信号含む)ReqH0と、ReqH0に対するアクノリッジ信号AckH0で接続される。DREG_LとLS_Dの間は、データ入出力信号Data0RL,Data0WLで接続される。LS_DとDREG_Hの間は、データ入出力信号Data0RH,Data0WHで接続される。CMD_1,DREG_HとバスBSとを接続する信号Req0A,Ack0A,ReqA0,AckA0,Data0R,Data0Wは、図2で説明したものと同一である。DIVには、高振幅・高周波数クロックCLKHと、低振幅・低周波数クロックCLKLが接続される。
以上で述べた信号のうち、Req0L,Ack0L,ReqL0,AckL0,Data0RL,Data0WL,Req0H,Ack0H,ReqH0,AckH0,Data0RH,Data0WHは、低周波数で動作する。また、Req0A,Ack0A,ReqA0,AckA0,Data0R,Data0Wは、高周波数で動作する。ここで、周波数の差を吸収するため、Data0RL,Data0WL,Data0RH,Data0WHは、例えば512bitなどの広いビット幅で構成され、Data0R,Data0Wは128bitなどの狭いビット幅で構成される。なお、便宜的にこれらの信号線は1本で代表したが、0本以上の何本であっても構わない。
以上の通り、図5の構成例において、データレジスタDREG_Hは、バスとの間は狭いビット幅であるData0R、Data0Wで接続され、データレジスタDREG_Lとの間はより広いビット幅であるData0RH,Data0RL、Data0WH,Data0WLで接続される。そして、図6で後述するように、データレジスタDREG_Hはバスとの間での複数回分の通信のデータを蓄え、データレジスタDREG_Lと通信することが可能である。この構成により、演算部CPULとインタフェース部BIC及びバスBSとの間の動作周波数が異なっても、その動作周波数の差を吸収し正常な通信を行うことが可能となる。さらにレベルシフタLS_C及びLS_Dにより、演算部CPULとインタフェース部BIC及びバスBSとの間で動作電圧が異なっても、その差を吸収し正常な通信を行うことが可能となる。
よって、図5の構成に基づいて、動作周波数及び電源電圧を演算部CPULとインタフェース部BIC及びバスBSとの間で異ならせる構成を実現することが可能となる。
ここで、Data0R及びData0Wのビット幅(自然数nとする)と、Data0RH,Data0RL、Data0WH及びData0WLとの間のビット幅(自然数mとする)との大きさの差は、n<mであれば特に限定されないが、mはnの整数倍であるとより好適である。バスBSとDREG_Hとの複数回の通信により、DREG_HとDREG_Lとの間のビット幅mに等しいデータ量を蓄えることができ、効率的に通信を行えるためである。
さらに、CMD_1は、高周波数CLKHで動作しているため、上記複数回のデータを蓄える通信を行う際に、高速でバスより送信されるAck0AやReqA0をCLKHに同期して受け取ることが可能となる。そのため、Data0RまたはData0Wの通信を、高速に行うことが可能となる。
図6は、図5の動作例として、PE0からDBSCに対してリードリクエストが発行された際の動作波形を示している。高振幅・高周波数で動作するクロックCLKHと低振幅・低周波数で動作するクロックCLKLの周波数比は16:1としている。まず、CMD_0からCMD_1に対してリードリクエスト命令が発行されたとすると、時刻T0においてReq0LがInvalidからリードリクエスト命令R0DLへと変化し、LS_Cを通過後はハイレベルの同リードリクエスト命令R0DHへと変換される。CMD_1は、R0DHを受けるとバスに対しリードリクエスト命令を発行する。ここでは、R0DH(R0DL)が256bitの読出し命令、バスのデータ幅が128bitであると仮定し、R0DH(R0DL)に伴いバスに対して2回のリードアクセス命令R0Aを発行する。このR0Aに対してバス内のモジュールがアクノリッジ信号A0Aを返す。ここでは仮に1クロック後にA0Aが返されると仮定している。従って、時刻T1においてReq0AはInvalidからR0Aに変化し、時刻T3に再びR0Aが発行されている。Ack0Aは時刻T2にInvalidからA0Aに変化しており、時刻T4にも再びInvalidからA0Aに変化している。
ここではR0Aの発行が2回完了したので、Ack0Hにアクノリッジ命令A0AHが返される。A0AHはLS_Cによって低振幅の同命令A0ALへと変換される。従って、時刻T6にAck0HはInvalidからA0AHへと変化しており、それに伴ってAck0LもA0ALと変化している。R0Aが発行されてからあるクロック数が経過すると(ここでは8クロック後)、ReqA0にバスよりリードアクセスの結果を通知するリクエスト命令RA0が続けて(ここでは2回)発行されるとともに、Data0Rは、読出し結果Data0からData1へと続けて変化する。これに対して、CMD_1は、AckA0にアクノリッジ命令AA0を順次(ここでは2回)出力し、DREG_Hに対してはデータ取込み命令S0Aを順次(ここでは2回)発行する。これによって、DREG_Hでは、例えば、128bitのデータが2回取り込まれ、256bitのデータとして纏められる。
以上の例では2回の通信により128bitのデータを256bitのデータにまとめたが、これは2回に限定されない。バスとDREG_Hとの間の複数回の通信によるデータを蓄え、DREG_HとDREG_Lの間のビット幅で通信を行うことを特徴とし、これにより動作周波数の差を吸収することが可能となる。
以上でCMD_0から発行されたリードリクエスト命令は完了したので、CMD_1は、CMD_0に向けて、同命令に応じたリクエスト信号ReqH0としてリードリクエストの結果通知命令RA0Hを発行する。同時に、DREG_Hは、DREG_Lに向けて前述したData0とData1を纏めたデータData0〜1Hを出力する。RA0Hは、LS_Cによって同命令RA0Lへと変換され、また、Data0〜1HはLS_Dによって低振幅のData0〜1Lへと変換される。CMD_0は、RA0Lを受取ると、同命令に対するアクノリッジ命令AA0Lを返し、DREG_Lに対してはCtlLとしてデータ取込み制御信号SD0を発行する。これにより、DREG_LにリードされたData0,Data1が格納される。
以上の動作を実現することで、CLKLで動作するPE0(CMD_0)から見ると、リードリクエスト命令(R0DL)を発行して1クロック後にはリードリクエスト結果通知(RA0L)が返され、さらにその1クロック後にはリクエストを要求したデータが格納されることになる。ここで、Data0〜1H,Data0〜1LはCLKHに同期して送信される(T14など)。一方、受信側はCLKLに同期して受信する(T15など)。
なお、ここでは、PE0からDBSCに対してリードリクエストが発行された場合で動作の説明を行ったが、PE0からDBSCに対してライトリクエストが発行された場合は、データの流れが逆になるものの、図6とほぼ同様の動作となる。簡単に説明すると、まず、PE0は、ライトしたいデータをDREG_Lに蓄えた後に、リクエスト信号Req0Lとしてライトリクエスト命令を発行する。このDREG_Lのデータはレベル変換を経てDREG_Hに転送される。その後、PE0は、CMD_0とCMD_1間、ならびにCMD_1とバス間において適宜ハンドシェイク(リクエスト命令やアクノリッジ命令の送受信)を行いながら、バスの使用権が得られた段階で、DREG_Hのデータをバスのビット幅毎に分割しながらCLKHの周期で順次バスに転送する。このデータは、DBSCの制御を受けながらオフチップメモリOFF_MEMに順次書き込まれる。
図7は図2のPE0,PE1,ARBD,SEL_R,SEL_Wの構成例をより詳細に示したものである。PE0,PE1は図5のPE0と同様の構成であり、PE0,PE1とARBD,SEL_R,SEL_W間の結線は図2と同様である。
図8、図9は、図7の動作例として、PE0,PE1から同時にDBSCに対してリードリクエストが発行された際の動作波形を示している。高振幅・高周波数で動作するクロックCLKHと低振幅・低周波数で動作するクロックCLKLの周波数比は図5と同様に16:1としている。図8において、まず、PE0においてCMD_0LからCMD_0Hに対してリードリクエスト命令が発行されたとすると、時刻T0においてReq0LがInvalidからリードリクエスト命令R0DLへと変化し、LS_C0を通過後はハイレベルの同リードリクエスト命令R0DHへと変換される。CMD_0Hは、R0DHを受けるとバスに対しリードリクエスト命令を発行する。ここでは、R0DH(R0DL)が128bitの読出し命令、バスのデータ幅が128bitであると仮定し、R0DH(R0DL)に伴いバスに対して1回のリードアクセス命令R0Aを発行する。このR0Aに対してバス内のモジュールがアクノリッジ信号A0Aを返す。ここでは仮に1クロック後にA0Aが返されると仮定している。従って、時刻T1においてReq0AはInvalidからR0Aに変化している。また、Ack0Aは時刻T2にInvalidからA0Aに変化している。ここではR0Aの発行が1回完了したので、Ack0Hにアクノリッジ命令A0AHが返される。A0AHはLS_C0によって低振幅の同命令A0ALへと変換される。従って、時刻T4にAck0HはInvalidからA0AHへと変化しており、それに伴ってAck0LもA0ALと変化している。
この図8の動作と並行して、PE1においても以下のように同様の動作が行われている。図9において、まず、PE1を起点としてCMD_1LからCMD_1Hに対してリードリクエスト命令が発行されたとすると、時刻T0においてReq1LがInvalidからリードリクエスト命令R1DLへと変化し、LS_C1を通過後はハイレベルの同リードリクエスト命令R1DHへと変換される。CMD_1Hは、R1DHを受けるとバスに対しリードリクエスト命令を発行する。ここでは、R1DH(R1DL)が128bitの読出し命令、バスのデータ幅が128bitであると仮定し、R1DH(R1DL)に伴いバスに対して1回のリードアクセス命令R1Aを発行する。このR1Aに対してバス内のモジュールがアクノリッジ信号A1Aを返す。ここでは、PE0からも同様のリードリクエストがARBDへ発行されることから、PE0からのリードリクエスト信号が優先されたとし3クロック後にA1Aが返されると仮定している。従って、時刻T1においてReq1AはInvalidからR1Aに変化している。また、Ack1Aは時刻T4にInvalidからA1Aに変化している。ここではR1Aの発行が1回完了したので、Ack1Hにアクノリッジ命令A1AHが返される。A1AHはLS_C1によって低振幅の同命令A1ALへと変換される。従って、時刻T6にAck1HはInvalidからA1AHへと変化しており、それに伴ってAck1LもA1ALと変化している。
PE0とPE1から同時に発行されたリードリクエスト信号を受取ったARBDは,前述したように設定された優先度に基づいてPE0とPE1にアクノリッジ信号を返す。それと共に、それぞれのリードリクエストをDBSCへと送信する。ここでは、PE0が優先され、PE0からのリードリクエスト、PE1からのリードリクエストの順でDBSCへ送信すると仮定する。
従って、図8および図9に示すように、PE0とPE1からR0AとR1Aが発行されてからあるクロック数が経過すると(ここでは8クロック後)、ReqA0とReqA1に、バスよりリードアクセスの結果を通知するリクエスト命令RA0とRA1が続けて(ここでは2回)発行されるとともに、Data0R,Data1Rは、Invalidから読出し結果Data0,Data1へとそれぞれ変化する。これに対して、PE0において、CMD_0Hは、AckA0にアクノリッジ命令AA0を発行し、DREG_0Hへのデータ取り込み信号CtlH0に対してはデータ取込み命令S0Aを発行する。これによって、DREG_0Hでは、例えば、128bitのデータが1回取り込まれる。一方、PE1において、CMD_1Hは、AckA1にアクノリッジ命令AA1を発行し、DREG_1Hへのデータ取り込み信号CtlH1に対してはデータ取込み命令S1Aを発行する。これによって、DREG_1Hでは、例えば、128bitのデータが1回取り込まれる。
以上でCMD_0L,CMD_1Lからそれぞれ発行されたリードリクエスト命令は完了したので、CMD_0H,CMD_1Hは、CMD_0L,CMD_1Lに向けて、同命令に応じたリクエスト信号ReqH0,ReqH1としてリードリクエストの結果通知命令RA0H,RA1Hをそれぞれ発行する。同時に、DREG_0H,DREG_1Hは、DREG_0L,DREG_1Lに向けて前述したData0H,Data1Hをそれぞれ出力する。RA0H,RA1Hは、LS_C0,LS_C1によって同命令RA0L,RA1Lへとそれぞれ変換され、また、Data0H,Data1HはLS_D0,LS_D1によって低振幅のData0L,Data1Lへとそれぞれ変換される。CMD_0L,CMD_1Lは、RA0L,RA1Lを受取ると、同命令に対するアクノリッジ命令AA0L,AA1Lをそれぞれ返し、DREG_0L,DREG_1Lに対してはCtl0L,Ctl1Lとしてデータ取込み制御信号SD0,SD1をそれぞれ発行する。これにより、DREG_0L,DREG_1Lに、リードされたData0,Data1がそれぞれ格納される。
以上の動作を実現することで、CLKLで動作するPE0(CMD_0L),PE1(CMD_1L)から見ると、リードリクエスト命令(R0DL,R1DL)を発行して1クロック後にはリードリクエスト結果通知(RA0L,RA1L)が返され、さらにその1クロック後にはリクエストを要求したデータが格納されることになる。
図10は、図8と図9の対比のため、図8と図9の一部を抜粋した動作波形である。図10に示した通り、図7の構成例では、T0においてPE0からリードリクエスト命令R0DLが発行され、かつPE1からリードリクエスト命令R1DLが発行された場合に、時刻T9においてData0RがInvalidから読み出し結果Data0へと変化し、時刻T11においてData1RがInvalidから読み出し結果Data1へと変化している。
このように図7の構成例においては、複数のプロセッサコアからCLKLに合わせてリード要求があった場合に、CLKHに合わせて読み出し結果をデータ転送する。以上の例ではPE0とPE1から同時にリードリクエスト命令が発行されたが、これはリードリクエスト命令に限定されない。例えば、リードリクエスト命令とライトリクエスト命令の組み合わせであっても良いし、ライトリクエスト命令のみであっても良い。すなわち、図7の構成例は、低周波数のクロックCLKL0(またはCLKL1)に対応する時刻に複数のデータ転送要求(リードリクエスト、ライトリクエスト、またはこれらの組み合わせ)があった場合に、それぞれに対応するデータ転送を、高周波数のクロックCLKH0(またはCLKH1)に合わせて、異なるタイミングで行うことを特徴とする。このような動作は、演算部に低周波数のクロックが供給され、バスに高周波数のクロックが供給される構成により可能となる。さらに、CMD_0H(CMD_1H)が、高周波数CLKH0(CLKH1)で動作しているため、上記通信を行う際に返信されるAck0A(Ack1A)をCLKH0(CLKH1)に同期して受け取ることが可能となる。そのため、Data0RまたはData0W(Data1RまたはData1W)の通信を、高速に行うことが可能となる。
このような構成により、演算部が低電圧・低周波数で動作していても、バスの高周波数に基づき高速にデータ転送を行うことが可能となり、SoC全体で見た演算性能を向上させることが可能となる。
また、従来のマルチコアではバスを介して接続されるPE数が数個程度であったため、それぞれのPEからメモリへアクセスできるバス構成とすることで、複数のPEから同時にメモリアクセスが発生したとしても、アクセスレイテンシをある程度は抑えることができた。しかし、PE数が数十個にもなると従来のバス構成では面積オーバヘッド、アクセスレイテンシが大きくなってしまう。そこで、本実施の形態で述べたようにバスを演算部に対し高電圧・高周波数で動作させることにより、図7〜図9の例で示したとおり、各PEからメモリへのアクセスパスを複数設けなくとも、各PEから見たメモリアクセスレイテンシを従来と同程度に小さくすることができる。さらに、各プロセッサコアPE0,PE1に設定された優先度に従い、優先度の高いプロセッサコアに対するデータ転送を優先的に行う構成により、より優先度の高いプロセッサコアからのデータ転送要求に対し、低レイテンシのアクセスを可能とする。
以上の図7〜図10の実施の形態は、図5、図6の実施の形態と併用することが可能である。すなわち、それぞれのプロセッサコアが、バスBSとDREG_Hとの間の複数回の通信によるデータを蓄え、DREG_HとDREG_Lの間のビット幅で通信を行い、かつ、低周波数のクロックCLKL0(またはCLKL1)に対応する時刻に複数のデータ転送要求(リードリクエスト、ライトリクエスト、またはこれらの組み合わせ)があった場合に、それぞれに対応するデータ転送を、高周波数のクロックCLKH0(またはCLKH1)に合わせて、異なるタイミングで行うことが可能である。例えば、バスの周波数が演算部の周波数の4倍である場合には、2回分のデータをレジスタに蓄える通信を、2つのコアに対し行うことが可能である。この構成により、より演算性能を向上させることが可能となる。
ここで、図5〜図10の実施の形態を別の観点から捉えると、以下のように考えることもできる。すなわち、各プロセッサコアの演算部に低周波数のクロックCLKLを、バスに高周波数のクロックCLKHを供給し、低周波数のクロックCLKLの1周期の間に、バスと各プロセッサコアとの間で、複数回のデータ通信を行うことを特徴とする。この特徴によれば、図5、図6のように、低周波数のクロックの1周期の間に、バスBSとバスインタフェースBSIF(インタフェース部BIC)の間で複数回分のデータを蓄えて演算部に送信する通信方式も可能となり、あるいは図7〜図10のように低周波数のクロックの1周期の間に、複数のプロセッサコアPEとバスBSとの間で通信を行うことも可能となる。よって、SoC全体で見た演算性能を向上することも可能となる。
さらに図5〜図10の実施の形態を別の観点から捉えると、以下のように考えることもできる。すなわち、各プロセッサコアの演算部に低周波数のクロックCLKLを、バスに高周波数のクロックCLKHを供給し、低周波数のクロックCLKLの1周期の間に、インタフェース部BICがバスBSにデータ転送要求を発行し、インタフェース部BICはバスBSから前記データ転送要求に対応するアクノリッジ信号を受信し、その後前記データ転送要求に対応するデータ転送を行う。この特徴からも、図5、図6のように、低周波数のクロックの1周期の間に、バスBSとインタフェース部BICの間で複数回分のデータを蓄えて演算部に送信する通信方式も可能となり、あるいは図7〜図10のように低周波数のクロックの1周期の間に、複数のプロセッサコアPEとバスBSとの間で通信を行うことも可能となる。よって、SoC全体で見た演算性能を向上させることが可能となる。
図11は、図1あるいは図2のメモリコントローラDBSCの構成例を示している。ここでは、例としてDBSCで説明を行うが、これがオンチップメモリON_MEMであっても、外部メモリOMEMをオンチップメモリと読み替えることで同様の動作をすると考えて良い。また、DBSCを構成するモジュールのうち、アドレス生成、バッファなど一般的なものは簡単のため記載せず、本実施の形態により設けられたモジュールのみを記載している。図11のDBSCは、モジュールとして、命令用のレベルシフタ兼バッファブロックLSBF_Cと、データ用のレベルシフタ兼バッファブロックLSBF_Dを含んでいる。LSBF_C,LSBF_Dで行うレベルシフトは、VDDHとVDDL間のレベルシフトではなく、VDDHとOMEMの動作電圧間のレベルシフトである。ただし、OMEMがVDDHで動作する場合には、レベルシフトを行う必要はなく、以下に説明するようなデータフローの制御のみを行う。
LSBF_C,LSBF_Dは、いずれも高電圧VDDHが供給され、高振幅・高周波数クロックCLKHに同期して動作する。LSBF_Cとバスの間は、LSBF_Cからバスに対するリクエスト信号(アドレス信号含む)ReqDAと、ReqDAに対するアクノリッジ信号AckDAと、バスからLSBF_Cに対するリクエスト信号(アドレス信号含む)ReqADと、ReqADに対するアクノリッジ信号AckADで接続される。LSBF_CとOMEMの間は、LSBF_CからOMEMに対するリクエスト信号(アドレス信号含む)ReqMと、ReqMに対するアクノリッジ信号AckMで接続される。LSBF_Dとバスの間は、データ入出力信号DataDR,DataDWで接続される。LSBF_DとOMEMの間は、データ入出力信号DataMR,DataMWで接続される。なお、便宜的にこれらの信号線は1本で代表したが、0本以上の何本であっても構わない。
図12は、図11の動作例として、バスからOMEMに対して2回リードリクエストが発行された際の動作波形を示している。まず、バスからDBSCに対してリードリクエスト命令RADが発行されたとすると、時刻T0においてReqADがInvalidからリードリクエスト命令RADへと変化し、時刻T2においてもReqADが2回目のRADへと変化する。LSBF_Cは、RADを受けるとバスに対しアクノリッジ命令AADを発行し、OMEMに対してはリードリクエスト命令RDMを発行する。このRDMに対してOMEMは、要求されたデータData0の出力を行うのと共にアクノリッジ信号ADMを返す。ここでは仮にRDMを受けてから1クロック後にADMが返されると仮定している。
従って、時刻T1においてAckADはInvalidからAADに変化し、時刻T2においてReqMはInvalidからRDMへと、DataMRはInvalidからData0へと変化し、時刻T3においてAckMはInvalidからADMへと変化する。LSBF_Cは、OMEMにADMを発行するのと同時にLSBF_Dに対してデータ格納命令SMEMを発行する。LSBF_Dは、それを受けてDataMRの値Data0を自身のローカルバッファに格納する。LSBF_Cは、DataMRがLSBF_Dのローカルバッファに格納された後にバスに対してリードリクエストの結果通知命令RDAを発行する。この例では他モジュールからのリクエストがないため、1クロック後にバスからLSBF_Cに同命令に対するアクノリッジ命令ADAが発行される。
図13は、図1、図2、図5における分周器DIVの第1の構成例を示している。図13のDIVは、歯抜け型クロック分周器DIV_Clk0とレベルシフタLS_Clkから構成される。DIV_Clk0は、高振幅・高周波数クロックCLKHが入力され、それを、指定された周期で波形を間引いた高振幅・歯抜けクロックCLKM0に変換する。この周期は、例えば、4、8、16などである。CLKM0は、さらにLS_Clkを通過し低振幅の歯抜けクロックCLKL0へと変換される。この様子を示したのが図14である。このような歯抜けによる周波数変換は実装が容易であるため、歯抜けクロックで低振幅・低周波数動作するブロックのタイミング設計に特に問題がなければ、小面積で実現できるメリットがある。さらに、低振幅・低周波数動作するブロックのタイミング設計に余裕があり、かつ、クロック信号線のタイミングのずれが少なく、CLKL0が伝播途中で消失することがなければ、低振幅・低周波数動作するブロックの電源電圧と周波数を適宜変更することでさらに低電力化を図ることが可能である。
図15は、図1、図2、図5における分周器DIVの第2の構成例を示している。図15のDIVは、デューティ比50%のクロック分周器DIV_Clk1とレベルシフタLS_Clkから構成される。DIV_Clk1には、高振幅・高周波数クロックCLKHが入力され、指定された周期で分周された高振幅・低周波数クロックCLKM1に変換される。この周期は、例えば、4、8、16などである。CLKM1は、さらにLS_Clkを通過し低振幅・低周波数クロックCLKL1へと変換される。この様子を示したのが図16である。このようなデューティ比50%を保持した周波数変換は、実装やタイミング設計が図13の場合ほど容易ではないが、低振幅・低周波数動作するブロックの電源電圧と周波数を適宜変更することで低電力化が可能である。
(実施の形態2)
図17は、本発明の実施の形態2による情報処理装置において、その構成の一例を示すブロック図である。図17の構成例は、図1の構成例と比較して、図1の発振器PLLの代わりに、高振幅・高周波数クロックCLKHの発振器PLLHと、低振幅・低周波数クロックCLKLの発振器PLLLとを個別に搭載している。PLLHには高電圧VDDHが供給され、PLLLには低電圧VDDLが供給される。PLLHとPLLLは、クロックコントローラCKCTLからのクロック制御信号ClkEnによって制御される。CLKHは高振幅、高周波数用のバッファ回路BUFHによって伝播され、CLKLは低振幅、低周波数用のバッファ回路BUFLによって伝播される。なお、BUFH,BUFLともに代表して1個のみを記載したが、BUFHはCLKHの伝播経路上に、そして、BUFLはCLKLの伝播経路上にいくら配置しても構わない。
特に図17の構成例は、発振器PLLLを設けることにより、個々のプロセッサコアPEに低周波数・低振幅のクロックを発生するための機構を無くすことが可能であるという効果を有する。この効果は特に、大量のプロセッサコアを搭載する際に有効となる。それぞれのプロセッサコアにおいて当該機構が不要となるため、回路面積を大幅に低減することが可能となるからである。
図18は、図17のプロセッサコアPEの構成例を示している。ここでは、例としてPE0で説明を行うが、これ以外のPE、あるいはMODも同様の構成をとる。図18のPE0は、図5に示したPE0と比較して、DIVがクロック同期ブロックSYNに置換されたこと以外は図5と同様である。SYNには、高電圧VDDH、低電圧VDDLが供給される。そして、高振幅・高周波数クロックCLKHと、低振幅・低周波数クロックCLKLの2つが入力され、CLKHに同期するよう位相の調整された低振幅・低周波数クロックCLKL2を出力する。なお、CMD_0,DREG_Lには、図5におけるCLKLの代わりにこのCLKL2が供給される。
図19は、図17、図18の動作例として、クロック制御信号ClkEnの通知を受けた場合のCLKH,CLKL,CLKL2の動作例を示している。時刻T1において、ClkEnがオンとなりPLLH,PLLLからクロックCLKH,CLKLが出力される。理想的には、PE0に到着したCLKH,CLKLに位相差のないことが望ましいが、現実的にT2−T1の位相差が生じてしまったとする。このような場合は、SYNがバッファなどにより遅延を調整し、この例では位相が遅れているCLKHから見て位相差の少ないCLKL2を出力する。
以上のように、本実施の形態2の情報処理装置は、SoCの配線領域に余裕があり、高振幅・高周波数クロックと、低振幅・低周波数クロックを別々に実装することができるのであれば、PEやMOD内部での分周が不要になるので、小面積化または低電力化が実現できる。
(実施の形態3)
図20は、本発明の実施の形態3による情報処理装置において、その構成の一例を示すブロック図である。SoCの面積に余裕があるのであれば、オンチップメモリモジュールを2つ(ON_MEM0,ON_MEM1)搭載することが可能になる。ON_MEM内部の電源結線を述べるため、代表してON_MEM0のみの内部を記述している。ON_MEM0の主な構成要素としてはバスインタフェースBSIFおよび分周器DIVを含むインタフェース部BIC2や、アドレスコントローラADRCおよびメモリセルアレイARYを含む記憶部MEMBなどがあるが、これ以外の要素から構成されていても構わない。ON_MEM0に供給される電源はVDDH,VDDLの2種類があるが、周波数変換とレベル変換を行うBSIF,DIVを含むインタフェース部BIC2には、VDDH,VDDLの2種類が供給され、ADRC,ARYを含む記憶部MEMBにはVDDLのみが供給される。BSIF,DIVは、例えば、図5と同様の構成を用いることができる。
多数のプロセッサコアは、全体で1つのクラスタを構成することは稀で、一般的には複数のクラスタに分けられそれぞれのクラスタが別の処理を行うのが普通である。それらのグループがオンチップメモリへアクセスする頻度に応じて、ON_MEM0とON_MEM1へ適宜振り分けられることで,オンチップメモリ1個から見たアクセス頻度を低減させることができる。例えば、64個のPEと7個のMODをオンチップメモリへのアクセス頻度が偏らないように2つのグループに分けることで、オンチップメモリの周波数を半分にしても従来同様のスループットを維持することができる。この際、例えばON_MEM0において、BSIFは、高周波数で動作するバスBSと接続され、命令やデータのキューを管理するため高周波数で動作するが、それ以外の構成要素(例えばADRC,ARYなどを有する記憶部MEMB)は低周波数で動作することができる。
以上のようにすれば、PE,MODに加えてオンチップメモリ(記憶部MEMB)も低振幅,低周波数で動作できるようになるので、さらに低電力化が可能となる。本実施の形態3では、搭載するオンチップメモリモジュールを2つとしたが、それ以上であっても構わないし、逆にメモリへのアクセス負荷が小さいのであれば1個でも構わない。なお、本実施の形態3は、勿論、実施の形態2と組み合わせて用いることも可能である。
(実施の形態4)
図21は、本発明の実施の形態4による情報処理装置において、その構成の一例を示すブロック図である。SoCの面積に余裕があるのであれば、メモリコントローラを2つ(DBSC0,DBSC1)搭載することが可能になる。DBSC0,DBSC1は、例えば、図5と同様のバスインタフェースBSIFや分周器DIVを有するインタフェース部BIC3と、BSIFで電圧とレジスタ幅を変換された内部コマンド信号INT_CMDと内部データ信号INT_DATAを外部メモリOFF_MEM_DPへ外部コマンド信号EXT_CMDと外部データ信号EXT_DATAとして送受信するメモリアクセスコントローラMACCとを備える。このとき、MACCは外部メモリOFF_MEM_DPとのアクセス・レスポンスなどの各種レイテンシを吸収するためにバッファやFIFOなどの構造をとることもある。このようにすれば、PE,MODに加え、メモリコントローラ(メモリアクセスコントローラMACC)も低振幅、低周波数で動作できるようになるので、さらに低電力化が可能となる。
本実施の形態4では、オフチップメモリOFF_MEM_DPをデュアルポートとしDBSC0,DBSC1と接続したが、オフチップメモリを2つ搭載しDBSC0,DBSC1とそれぞれ接続しても良い。また、本実施の形態4では搭載するメモリコントローラを2つとしたが、それ以上であっても構わないし、逆に1個であっても構わない。さらに、メモリコントローラとオフチップメモリとの接続形態も、シングルポート、デュアルポート、トリプルポートなどを適宜組み合わせて構わない。なお、本実施の形態4は、勿論、実施の形態2および/または実施の形態3と組み合わせて用いることも可能である。
(実施の形態5)
図22は、本発明の実施の形態5による情報処理装置において、そのチップレイアウトの一例を示す概略図である。図22において、太い実線は低電圧の電源幹線のうちモジュール界面に配置されるものを示し、斜線は高電圧の電源幹線のうちモジュール界面に配置されるものを示す。低電圧の電源幹線は、プロセッサコア毎に各プロセッサコアの周囲に沿って配置され、高電圧の電源幹線は、当該プロセッサコアを取り囲むように配置されたバスに沿って配置されるのが特徴となっている。
この特徴により、2種の電源を配置する際のレイアウトを効率よく行うことが可能となり、レイアウトの容易性又は回路規模の点で有利となる。特に、低電圧の電源幹線は個々のプロセッサに供給されるため、安定していることが要求される。そのため、本実施の形態のレイアウトを用いて個別に低電圧の電源を供給することで、各プロセッサコアを低電圧の電源VDDLで動作させることをより安定して行うことが可能となる。
以上に述べたように、本発明の各実施の形態を用いると、代表的には、性能電力比の高いプロセッサコアを多数並列動作させることで絶対性能を確保しつつ省電力化が可能となるという効果が得られる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
本実施の形態による情報処理装置は、特に、1個の半導体チップに多数のプロセッサが搭載された情報処理装置に適用して有益な技術であり、これに限らず、各種マルチプロセッサシステム全般に対して広く適用可能である。
本発明の実施の形態1による情報処理装置において、その構成の一例を示すブロック図である。 図1の情報処理装置において、そのIP周りの詳細な構成例を示すブロック図である。 図2の動作例を示す波形図である。 図2の他の動作例を示す波形図である。 図1あるいは図2の情報処理装置において、そのプロセッサコアの詳細な構成例を示すブロック図である。 図5の動作例を示す波形図である。 図2の情報処理装置において、そのプロセッサコアの詳細な構成例を示すブロック図である。 図7の動作例を示す波形図である。 図7の動作例を示す波形図である。 図7の動作例を示す波形図である。 図1あるいは図2の情報処理装置において、そのメモリコントローラの構成例を示すブロック図である。 図11の動作例を示す波形図である。 図1、図2、図5の情報処理装置において、その分周器の構成例を示すブロック図である。 図13の動作例を示す波形図である。 図1、図2、図5の情報処理装置において、その分周器の他の構成例を示すブロック図である。 図15の動作例を示す波形図である。 本発明の実施の形態2による情報処理装置において、その構成の一例を示すブロック図である。 図17の情報処理装置において、そのプロセッサコアの詳細な構成例を示すブロック図である。 図17、図18におけるクロック同期ブロックの動作例を示す波形図である。 本発明の実施の形態3による情報処理装置において、その構成の一例を示すブロック図である。 本発明の実施の形態4による情報処理装置において、その構成の一例を示すブロック図である。 本発明の実施の形態5による情報処理装置において、そのチップレイアウトの一例を示す概略図である。 LSIにおける電源電圧と周波数と性能電力比の関係を示す説明図である。
符号の説明
ADRC アドレスコントローラ
ALU 演算器
ARBD 調停ブロック
ARY メモリセルアレイ
BIC インタフェース部
BS バス
BSIF バスインタフェース
BUFH,BUFL バッファ回路
CACHE キャッシュ
CKCTL クロックコントローラ
CMD コマンド生成ブロック
CPUL 演算部
DBSC メモリコントローラ
DIV 分周器
DREG データレジスタ
INSTDEC 命令デコーダ
LS レベルシフタ
LSBF レベルシフタ兼バッファブロック
MACC メモリアクセスコントローラ
MEMB 記憶部
MOD モジュール
OFF_MEM オフチップメモリ
OMEM 外部メモリ
ON_MEM オンチップメモリ
PE プロセッサコア
PLL,PLLL,PLLH 発振器
SEL 選択ブロック
SYN クロック同期ブロック

Claims (22)

  1. 第1プロセッサコアと、
    第2プロセッサコアと、
    前記第1プロセッサコア及び前記第2プロセッサコアが共通に接続されるバスとを有し、
    前記第1プロセッサコアは、演算を行うための第1演算部を有し、
    前記第2プロセッサコアは、演算を行うための第2演算部を有し、
    前記バスには、前記第1演算部に供給される最も高い電圧の電源よりも高い電圧の電源が供給され、かつ前記第2演算部に供給される最も高い電圧の電源よりも高い電圧の電源が供給され、
    前記バスには、前記第1演算部に供給される最も高い周波数のクロックよりも高い周波数のクロックが供給され、かつ前記第2演算部に供給される最も高い周波数のクロックよりも高い周波数のクロックが供給され
    前記第1プロセッサコアは、前記バスと前記第1演算部との間のデータの入出力を行うための第1インタフェース部をさらに有し、
    前記第2プロセッサコアは、前記バスと前記第2演算部との間のデータの入出力を行うための第2インタフェース部をさらに有し、
    前記第1演算部には、第1電源及び第1クロックが供給され、
    前記第2演算部には、第2電源及び第2クロックが供給され、
    前記バスには、前記第1電源及び前記第2電源よりも高い電圧の第3電源が供給され、かつ前記第1クロック及び前記第2クロックよりも高い周波数の第3クロックが供給され、
    前記第1インタフェース部には、前記第1電源及び前記第3電源が供給され、かつ前記第1クロック及び前記第3クロックが供給され、
    前記第2インタフェース部には、前記第2電源及び前記第3電源が供給され、かつ前記第2クロック及び前記第3クロックが供給されることを特徴とする情報処理装置。
  2. 請求項記載の情報処理装置において、
    前記第1クロックの第1周期において、前記バスは、前記第1プロセッサコアとの間で複数回のデータの転送を行うことが可能であり、
    前記第2クロックの第1周期において、前記バスは、前記第2プロセッサコアとの間で複数回のデータの転送を行うことが可能であることを特徴とする情報処理装置。
  3. 請求項記載の情報処理装置において、
    前記第1プロセッサコアは、第1の時刻において、前記バスと前記第1プロセッサコアの間の第1データ転送を要求するための第1データ転送要求信号を前記バスに送信し、
    前記第2プロセッサコアは、前記第1の時刻において、前記バスと前記第2プロセッサコアの間の第2データ転送を要求するための第2データ転送要求信号を前記バスに送信し、
    前記バスは、第2の時刻において前記第1データ転送を行い、
    前記バスは、前記第2の時刻とは異なる第3の時刻において前記第2データ転送を行い、
    前記第1の時刻、前記第2の時刻及び前記第3の時刻は、前記第1クロックの1周期の範囲内にあり、
    前記第1の時刻、前記第2の時刻及び前記第3の時刻は、前記第2クロックの1周期の範囲内にあることを特徴とする情報処理装置。
  4. 請求項記載の情報処理装置において、
    前記第2の時刻は、前記第3の時刻より早く、
    前記第1プロセッサコア及び前記第2プロセッサコアには、優先度が設定され、
    前記第1プロセッサコアの優先度は、前記第2プロセッサコアの優先度よりも高いことを特徴とする情報処理装置。
  5. 請求項記載の情報処理装置において、
    前記第1インタフェース部は、前記バスに第1データ転送要求信号を送信し、前記バスより前記第1データ転送要求信号に対応するアクノリッジ信号を受信するための第1コマンド生成ブロックをさらに有し、
    前記第2インタフェース部は、前記バスに第2データ転送要求信号を送信し、前記バスより前記第2データ転送要求信号に対応するアクノリッジ信号を受信するための第2コマンド生成ブロックをさらに有し、
    前記第1コマンド生成ブロック及び前記第2コマンド生成ブロックには、前記第3クロックが供給されることを特徴とする情報処理装置。
  6. 請求項記載の情報処理装置において、
    前記第1インタフェース部は、前記第1電源及び前記第1クロックが供給される第1レジスタと、前記第3電源及び前記第3クロックが供給される第2レジスタとを具備する第1バスインタフェースをさらに有し、
    前記第2レジスタは、前記バスとの間はnビット幅(nは自然数)で接続され、前記第1レジスタとの間は、mビット幅(mはnより大きい自然数)で接続され、
    前記第2レジスタは、前記バスから受信する複数分のデータを蓄え、前記第1レジスタに送信することを特徴とする情報処理装置。
  7. 請求項記載の情報処理装置において、
    前記第2レジスタから前記第1レジスタに送信されるデータは、前記第1クロックに同期して送信されることを特徴とする情報処理装置。
  8. 請求項記載の情報処理装置において、
    前記第1バスインタフェースは、第1データの振幅を第2データの振幅に変換し前記第2データの振幅を前記第1データの振幅に変換するための第1レベルシフタをさらに有し、
    前記第2レジスタは、前記第1レベルシフタを経由して前記第1レジスタに前記第2データを送信することを特徴とする情報処理装置。
  9. 請求項記載の情報処理装置において、
    前記第1レジスタを制御するための第1コマンド生成ブロックと、
    前記第2レジスタを制御するための第2コマンド生成ブロックとをさらに有し、
    前記第1レジスタには前記第1クロックが供給され、前記第2レジスタには前記第3クロックが供給されることを特徴とする情報処理装置。
  10. 請求項記載の情報処理装置において、
    前記第1コマンド生成ブロックからの第1命令の振幅を前記第2コマンド生成ブロックが生成する命令の振幅に変換し、前記第2コマンド生成ブロックからの第2命令を前記第1コマンド生成ブロックが生成する命令の振幅に変換する第2レベルシフタをさらに有し、
    前記第1コマンド生成ブロックと前記第2コマンド生成ブロックとの間の通信は、前記第2レベルシフタを介して行われることを特徴とする情報処理装置。
  11. 請求項記載の情報処理装置において、
    前記第1演算部に前記第1クロックを供給し、前記第2演算部に前記第2クロックを供給するための第1発振回路と、
    前記バス、前記第1インタフェース部及び前記第2インタフェース部に前記第3クロックを供給するための第2発振回路とをさらに有することを特徴とする情報処理装置。
  12. 請求項11記載の情報処理装置において、
    前記第1プロセッサコアは、前記第1クロックと前記第3クロックの間の位相を合わせるための第1クロック同期ブロックをさらに有し、
    前記第2プロセッサコアは、前記第2クロックと前記第3クロックの間の位相を合わせるための第2クロック同期ブロックをさらに有することを特徴とする情報処理装置。
  13. 請求項記載の情報処理装置において、
    前記バス、前記第1インタフェース部及び前記第2インタフェース部に前記第3クロックを供給するための第1発振回路をさらに有し、
    前記第1インタフェース部は、前記第3クロックを前記第1クロックに変換して前記第1演算部に供給するための第1分周器を有し、
    前記第2インタフェース部は、前記第3クロックを前記第2クロックに変換して前記第2演算部に供給するための第2分周器を有することを特徴とする情報処理装置。
  14. 請求項記載の情報処理装置において、
    前記バスとの間のデータの入出力を行うための第3インタフェース部と、データを記憶するための記憶部とを具備するオンチップメモリをさらに有し、
    前記記憶部には、前記第1電源及び前記第1クロックが供給され、
    前記第3インタフェース部には、前記第3電源及び前記第3クロックが供給されることを特徴とする情報処理装置。
  15. 請求項記載の情報処理装置において、
    前記バスとの間のデータの入出力を行うための第4インタフェース部と、前記情報処理装置の外部のメモリと通信を行うための通信部を有するメモリコントローラをさらに有し、
    前記通信部には、前記第1電源及び前記第1クロックが供給され、
    前記第4インタフェース部には、前記第3電源及び前記第3クロックが供給されることを特徴とする情報処理装置。
  16. 請求項記載の情報処理装置において、
    第1、第2及び第3電源線をさらに有し、
    前記第1プロセッサコア及び前記第2プロセッサコアは、前記バスに面して配置され、
    前記第1電源線は、前記第1プロセッサコアに沿って配置され、前記第1プロセッサコアに前記第1電源を供給し、
    前記第2電源線は、前記第2プロセッサコアに沿って配置され、前記第2プロセッサコアに前記第2電源を供給し、
    前記第3電源線は、前記バスに沿って配置され、前記バスに前記第3電源を供給することを特徴とする情報処理装置。
  17. 第1プロセッサコアと、
    第2プロセッサコアと、
    前記第1プロセッサコア及び前記第2プロセッサコアが共通に接続されるバスとを有し、
    前記第1プロセッサコアは、演算を行うための第1演算部を有し、
    前記第2プロセッサコアは、演算を行うための第2演算部を有し、
    前記第1演算部には、第1クロックが供給され、
    前記第2演算部には、第2クロックが供給され、
    前記バスには、前記第1クロック及び前記第2クロックより周波数の高い第3クロックが供給され、
    前記第1クロックの1周期の間に、前記バスと前記第1プロセッサコアとの間で複数回のデータの入出力を行い、
    前記第2クロックの1周期の間に、前記バスと前記第2プロセッサコアとの間で複数回のデータの入出力を行い
    前記第1プロセッサコアは、前記バスと前記第1演算部との間のデータの入出力を行うための第1インタフェース部をさらに有し、
    前記第2プロセッサコアは、前記バスと前記第2演算部との間のデータの入出力を行うための第2インタフェース部をさらに有し、
    前記第1演算部には、第1電源が供給され、
    前記第2演算部には、第2電源が供給され、
    前記バスには、前記第1電源及び前記第2電源よりも電圧の高い第3電源が供給され、
    前記第1インタフェース部には、前記第1電源及び前記第3電源が供給され、かつ前記第1クロック及び前記第3クロックが供給され、
    前記第2インタフェース部には、前記第2電源及び前記第3電源が供給され、かつ前記第2クロック及び前記第3クロックが供給されることを特徴とする情報処理装置。
  18. 請求項17記載の情報処理装置において、
    前記第1プロセッサコアは、第1の時刻において、前記バスと前記第1プロセッサコアの間の第1データ転送を要求するための第1データ転送要求信号を前記バスに送信し、
    前記第2プロセッサコアは、前記第1の時刻において、前記バスと前記第2プロセッサコアの間の第2データ転送を要求するための第2データ転送要求信号を前記バスに送信し、
    前記バスは、第2の時刻において前記第1データ転送を行い、
    前記バスは、前記第2の時刻とは異なる第3の時刻において前記第2データ転送を行い、
    前記第1の時刻、前記第2の時刻及び前記第3の時刻は、前記第1クロックの1周期の範囲内にあり、
    前記第1の時刻、前記第2の時刻及び前記第3の時刻は、前記第2クロックの1周期の間にあることを特徴とする情報処理装置。
  19. 請求項17記載の情報処理装置において、
    前記第1プロセッサコアは、前記バスと前記第1演算部との間のデータの入出力を行うための第1インタフェース部をさらに有し、
    前記第2プロセッサコアは、前記バスと前記第2演算部との間のデータの入出力を行うための第2インタフェース部をさらに有し、
    前記第1インタフェース部は、前記バスから受信する複数回分のデータを蓄え、前記第1演算部に送信し、
    前記第2インタフェース部は、前記バスから受信する複数回分のデータを蓄え、前記第2演算部に送信することを特徴とする情報処理装置。
  20. 第1プロセッサコアと、
    第2プロセッサコアと、
    前記第1プロセッサコア及び前記第2プロセッサコアが共通に接続されるバスとを有し、
    前記第1プロセッサコアは、演算を行うための第1演算部と、前記バスと前記第1演算部との間のデータの入出力を行うための第1インタフェース部とを有し、
    前記第2プロセッサコアは、演算を行うための第2演算部と、前記バスと前記第2演算部との間のデータの入出力を行うための第2インタフェース部とを有し、
    前記第1演算部には、第1クロックが供給され、
    前記第2演算部には、第2クロックが供給され、
    前記バスには、前記第1クロック及び前記第2クロックより周波数の高い第3クロックが供給され、
    前記第1インタフェース部は、前記バスに第1データ転送要求を送信し、前記バスから前記第1データ転送要求に対応する第1アクノリッジ信号を受信し、その後前記第1データ転送要求に対応する第1データ転送を行い、
    前記第2インタフェース部は、前記バスに第2データ転送要求を送信し、前記バスから前記第2データ転送要求に対応する第2アクノリッジ信号を受信し、その後前記第2データ転送要求に対応する第2データ転送を行い、
    前記第1データ転送要求の送信、前記第1アクノリッジ信号の受信及び前記第1データ転送は、前記第1クロックの1周期の間に行われ、
    前記第2データ転送要求の送信、前記第2アクノリッジ信号の受信及び前記第2データ転送は、前記第2クロックの1周期の間に行われ
    前記第1演算部には、第1電源が供給され、
    前記第2演算部には、第2電源が供給され、
    前記バスには、前記第1電源及び前記第2電源よりも電圧の高い第3電源が供給され、
    前記第1インタフェース部には、前記第1電源及び前記第3電源が供給され、かつ前記第1クロック及び前記第3クロックが供給され、
    前記第2インタフェース部には、前記第2電源及び前記第3電源が供給され、かつ前記第2クロック及び前記第3クロックが供給されることを特徴とする情報処理装置。
  21. 請求項20記載の情報処理装置において、
    前記第1プロセッサコアは、第1の時刻において、前記第1データ転送要求信号を前記バスに送信し、
    前記第2プロセッサコアは、前記第1の時刻において、前記第2データ転送要求信号を前記バスに送信し、
    前記バスは、第2の時刻において前記第1データ転送を行い、
    前記バスは、前記第2の時刻とは異なる第3の時刻において前記第2データ転送を行い、
    前記第1の時刻、前記第2の時刻及び前記第3の時刻は、前記第1クロックの1周期の範囲内にあり、
    前記第1の時刻、前記第2の時刻及び前記第3の時刻は、前記第2クロックの1周期の間にあることを特徴とする情報処理装置。
  22. 請求項20記載の情報処理装置において、
    前記第1インタフェース部は、前記バスから受信する複数回分のデータを蓄え、前記第1演算部に送信し、
    前記第2インタフェース部は、前記バスから受信する複数回分のデータを蓄え、前記第2演算部に送信することを特徴とする情報処理装置。
JP2008251122A 2008-09-29 2008-09-29 情報処理装置 Expired - Fee Related JP5237739B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008251122A JP5237739B2 (ja) 2008-09-29 2008-09-29 情報処理装置
US12/466,696 US8239695B2 (en) 2008-09-29 2009-05-15 Information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008251122A JP5237739B2 (ja) 2008-09-29 2008-09-29 情報処理装置

Publications (2)

Publication Number Publication Date
JP2010086030A JP2010086030A (ja) 2010-04-15
JP5237739B2 true JP5237739B2 (ja) 2013-07-17

Family

ID=42058899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008251122A Expired - Fee Related JP5237739B2 (ja) 2008-09-29 2008-09-29 情報処理装置

Country Status (2)

Country Link
US (1) US8239695B2 (ja)
JP (1) JP5237739B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569278B2 (en) 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
US9424098B2 (en) * 2012-08-31 2016-08-23 Silicon Graphics International Corp. Dynamic resource scheduling
WO2014080244A1 (en) * 2012-11-22 2014-05-30 Freescale Semiconductor, Inc. Processor core arrangement, computing system and methods for designing and operating a processor core arrangement
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9377836B2 (en) * 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9658671B2 (en) * 2015-09-28 2017-05-23 Qualcomm Incorporated Power-aware CPU power grid design

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2668981B2 (ja) * 1988-09-19 1997-10-27 富士通株式会社 半導体集積回路
JP2002049443A (ja) * 2000-08-03 2002-02-15 Hitachi Ltd 内部降圧制御方式
JP4182801B2 (ja) * 2003-04-24 2008-11-19 日本電気株式会社 マルチプロセサシステム
JP4559148B2 (ja) 2004-07-22 2010-10-06 富士通セミコンダクター株式会社 マイクロコントローラ、およびマイクロコントローラの電源供給方法
JP2006072597A (ja) * 2004-09-01 2006-03-16 Seiko Epson Corp データ処理装置及びデータ処理方法
US7779287B2 (en) * 2005-08-22 2010-08-17 Intel Corporation Reducing power consumption in multiprocessor systems
US7263457B2 (en) * 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages

Also Published As

Publication number Publication date
US20100083011A1 (en) 2010-04-01
JP2010086030A (ja) 2010-04-15
US8239695B2 (en) 2012-08-07

Similar Documents

Publication Publication Date Title
JP5237739B2 (ja) 情報処理装置
JP3960583B2 (ja) 半導体メモリ装置及びこれを含むメモリモジュールを有するシステム
US8205111B2 (en) Communicating via an in-die interconnect
US8443122B2 (en) Asynchronous upsizing circuit in data processing system
US9158679B2 (en) Data buffer with a strobe-based primary interface and a strobe-less secondary interface
JP2009004032A (ja) 半導体メモリ装置、半導体メモリ装置の動作方法
JP2007251329A (ja) プログラマブルロジックデバイス
US8593185B2 (en) Clock divider circuit and system LSI having same
WO2022068149A1 (zh) 数据加载和存储系统及方法
US6735712B1 (en) Dynamically configurable clocking scheme for demand based resource sharing with multiple clock crossing domains
Gutta et al. A low-power integrated x86–64 and graphics processor for mobile computing devices
TW200805373A (en) A multi-port semiconductor device and method thereof
US10304530B2 (en) Per-pin compact reference voltage generator
US6847640B1 (en) High speed physical circuits of memory interface
JP4952177B2 (ja) 記憶装置
JP2002033457A (ja) 半導体集積回路装置
US12032428B2 (en) Asynchronous FIFO for power-domain crossing
JP2008251060A (ja) 半導体記憶装置
US8164973B2 (en) Storage apparatus and method of controlling storage apparatus
US20220391008A1 (en) Asynchronous fifo for power-domain crossing
KR20140070041A (ko) 반도체 집적회로와 그 동작 방법
TWI794949B (zh) 用於組態及狀態暫存器之獨立時脈之單晶片系統及方法
JP2004326222A (ja) データ処理システム
JP2009259114A (ja) システム半導体装置
US20230104271A1 (en) System on chip and application processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120614

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees