JP2008097572A - 演算装置、コンピュータシステム、および携帯機器 - Google Patents

演算装置、コンピュータシステム、および携帯機器 Download PDF

Info

Publication number
JP2008097572A
JP2008097572A JP2007133208A JP2007133208A JP2008097572A JP 2008097572 A JP2008097572 A JP 2008097572A JP 2007133208 A JP2007133208 A JP 2007133208A JP 2007133208 A JP2007133208 A JP 2007133208A JP 2008097572 A JP2008097572 A JP 2008097572A
Authority
JP
Japan
Prior art keywords
processor
data storage
task
data
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007133208A
Other languages
English (en)
Inventor
Satoru Hosoki
哲 細木
Masaichi Nakajima
雅逸 中島
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007133208A priority Critical patent/JP2008097572A/ja
Priority to US11/850,761 priority patent/US8090921B2/en
Priority to CN2007101488008A priority patent/CN101145133B/zh
Publication of JP2008097572A publication Critical patent/JP2008097572A/ja
Pending legal-status Critical Current

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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking

Landscapes

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

Abstract

【課題】省面積化に寄与しつつ、複数のプロセッサと、複数のプロセッサで共用されるキャッシュメモリとが1チップに集積された演算装置を提供する。
【解決手段】1チップに集積された演算装置101は、複数のタスクを並列で実行可能なプロセッサ102−1,102−2と、プロセッサ102−1,102−2で共用されるキャッシュメモリ103とを備え、キャッシュメモリ103は、シングルポートメモリ105−1〜105−nと、読み出しデータ選択部107−1,107−2とを備え、シングルポートメモリ105−1〜105−nの各々は、データ出力ポートが1ポートであり、読み出しデータ選択部107−1,107−2の各々は、プロセッサ102−1,102−2の各々と一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているシングルポートメモリを、シングルポートメモリ105−1〜105−nの中から選択する。
【選択図】図1

Description

本発明は、複数のプロセッサが1チップに集積された演算装置に関し、特に、複数のプロセッサで共用されるキャッシュメモリも一緒に集積された演算装置に関する。
近年、複数のプロセッサが1チップに集積された演算装置に関する技術開発が活発化している。そして、このような演算装置でも、処理性能を上げるために、キャッシュメモリも一緒に集積されているのが一般的である。このため、複数のプロセッサでキャッシュメモリを活用することが重要になる。これに対して、従来、複数のプロセッサでキャッシュメモリを共用する技術が色々と提案されている(例えば、特許文献1参照。)。
特開平1−280860号公報
しかしながら、上記キャッシュメモリは、複数のプロセッサで共用するために、プロセッサごとにデータポートを有し、データポート数分のデータ線を必要とする。ここで、データポートとは、キャッシュメモリからデータが読み出される出力ポートと、キャッシュメモリにデータが書き込まれる入力ポートとの総称である。
例えば、128bitのデータを読み書き可能なキャッシュメモリを2つのプロセッサで共用される場合を例にする。この場合において、データ線は、少なくとも128bit分の信号線を2組必要とする。このため、キャッシュメモリの容量が同じであっても、データポートがマルチポートであるキャッシュメモリは、データポートがシングルポートであるキャッシュメモリと比べれば、回路面積が大きくなるという問題がある。さらに、プロセッサの数が増えれば、データポートの数も増える。このため、プロセッサの数が増えれば増えるほど、上記問題が顕著になる。
そこで、本発明は上記問題に鑑みてなされたものであり、省面積化に寄与しつつ、複数のプロセッサと、複数のプロセッサで共用されるキャッシュメモリとが1チップに集積された演算装置を提供することを目的とする。
上記目的を達成するために、本発明に係わる演算装置は、(a)1チップに集積された演算装置であって、(a1)複数のタスクを並列で実行可能な複数のプロセッサと、(a2)前記複数のプロセッサで共用されるキャッシュメモリとを備え、(a3)前記キャッシュメモリは、複数のデータ記憶部と、複数の読み出しデータ選択部とを備え、(a3−1)前記複数のデータ記憶部の各々は、データ出力ポートが1ポートであり、(a3−2)前記複数の読み出しデータ選択部の各々は、前記複数のプロセッサの各々と一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているデータ記憶部を、前記複数のデータ記憶部の中から選択する。
これによって、データ記憶部とプロセッサとを接続する部分を、読み出しデータ選択部のような単純な選択回路で構成することで、少ないハードウェア量で複数のプロセッサを備える演算装置を構成することができる。さらに、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、(b)(b1)前記複数のデータ記憶部の各々は、メモリアクセス要求入力ポートとデータ入力ポートとのそれぞれが1ポートであり、(b2)前記キャッシュメモリは、複数のメモリアクセス要求選択部を備え、(b2−1)前記複数のメモリアクセス要求選択部の各々は、前記複数のデータ記憶部の各々と一対一で対応付けられ、対応付けられたデータ記憶部に対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、前記複数のプロセッサから個別に出力されたメモリアクセス要求の中から選択するとしてもよい。
これによって、同時に複数のプロセッサから同一のデータ記憶部に対してアクセスがされなくなるので、データ記憶部のメモリアクセス要求入力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。さらに、同時に複数のプロセッサから同一のデータ記憶部に対して、データが書き込まれたり、読み出されたりすることがなくなるので、データ記憶部のデータ入力ポートとデータ出力ポートとも複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。また、同一のデータ記憶部に対するアクセス競合を回避することができるので、アクセス競合による調停を必要としない分、処理性能の向上に寄与する。
または、(c)(c1)前記複数のデータ記憶部の各々は、前記複数のデータ記憶部における1以上のデータ記憶部から各々が構成されている複数のデータ記憶領域のいずれか1つに分類されており、(c2)前記キャッシュメモリは、(c2−1)前記複数のデータ記憶領域における所定のデータ記憶領域に対して所定のタスクが割り付けられたことが示される割付情報を、前記所定のデータ記憶領域と対応付けて保持する割付情報保持部と、(c2−2)前記所定のタスクに対してリフィルが生じた場合は、リフィル可能なデータ記憶領域として、前記割付情報保持部で保持されている割付情報に基づいて、前記複数のデータ記憶領域の中から前記所定のデータ記憶領域を特定する特定部とを備えるとしてもよい。
これによって、所定のタスクの実行に伴い生じたリフィルによって、他のタスクに割り付けられたデータ記憶部が不用意に書き換わることを回避することができる。そして、所定のタスクについては、所定のデータ記憶部にアクセスが制限されるので、同一のデータ記憶部に対するアクセス競合を回避することができる。さらに、同時に複数のプロセッサから同一のデータ記憶部に対してアクセスがされなくなるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
または、(d)(d1)前記キャッシュメモリは、n(nは自然数である。)ウェイセットアソシエイティブ方式のキャッシュメモリであり、(d2)前記複数のデータ記憶部の各々は、前記nウェイの各々と一対一で対応付けられているとしてもよい。
これによって、各データ記憶部の管理を、ウェイごとに存在するチップセレクトで容易に実現することができる。
また、本発明に係わるコンピュータシステムは、(e)(e1)上記演算装置と、(e2)割付プログラムを記憶している主記憶装置とを備え、(e3)前記割付プログラムを実行した前記演算装置は、前記所定のタスクが生成されたときに、前記複数のデータ記憶領域の中から、前記所定のタスクに対して前記所定のデータ記憶領域を割り付け、前記割付情報を前記所定のデータ記憶領域と対応付けて前記割付情報保持部に登録する。
これによって、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクが各データ記憶領域と対応付けられて管理されるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、(f)前記割付プログラムを実行した前記演算装置は、前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のデータ記憶領域の中から、タスクごとに異なるデータ記憶領域を割り付け、タスクごとに異なる割付情報を、タスクごとに異なるデータ記憶領域と対応付けて前記割付情報保持部に登録するとしてもよい。
これによって、任意のプロセッサで任意のタスクが実行される場合でも、タスクごとに異なるデータ記憶領域を割り付けるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
または、(g)前記割付プログラムを実行した前記演算装置は、前記複数のプロセッサの各々と一対一で各々が対応付けられている複数のキャッシュ領域のいずれか1つに前記複数のデータ記憶領域の各々を分類して前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のプロセッサにおける所定のプロセッサで実行されるタスクについては、前記複数のキャッシュ領域において前記所定のプロセッサと対応付けられている所定のキャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行される複数のタスクが個別に識別される複数の割付情報を前記所定のキャッシュ領域と対応付けて前記割付情報保持部に登録するとしてもよい。
これによって、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、(h)前記割付プログラムを実行した前記演算装置は、前記所定のキャッシュ領域を構成する複数のデータ記憶領域の各々を、1つのタスクだけに割り付け可能なデータ記憶領域から構成される第1の部分キャッシュ領域と、複数のタスクに割り付け可能なデータ記憶領域から構成される第2の部分キャッシュ領域とのいずれか1つに分類し、前記所定のプロセッサで実行されるタスクが所定の種類のタスクである場合は、前記第1の部分キャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行されるタスクが所定の種類のタスクでない場合は、前記第2の部分キャッシュ領域の中からデータ記憶領域を割り付けるとしてもよい。
これによって、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、所定のプロセッサで実行される複数のタスクについては、タスクに応じて、タスクごとに異なるデータ記憶領域を割り付けたり、複数のタスクで共用されるデータ記憶領域を割り付けたりすることができるので、タスク切り替えによるキャッシュミスを低減しつつ、処理性能の向上に寄与する。これは、次の例からも容易に理解されることである。
例えば、所定のプロセッサで実行される複数のタスクに対して同一のデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しやすくなる。
一方、これらのタスクに対して異なるデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができなくなる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しにくくなる。
また、本発明に係わる演算装置は、(i)(i1)前記複数のプロセッサは、第1の動作速度で動作する第1のプロセッサと、前記第1の動作速度よりも低速である第2の動作速度で動作する第2のプロセッサとを備え、(i2)前記複数の読み出しデータ選択部は、前記第1のプロセッサに対応する第1の読み出しデータ選択部と、前記第2のプロセッサに対応する第2の読み出しデータ選択部とを備え、(i3)前記キャッシュメモリは、前記第1のプロセッサの動作速度と前記第2のプロセッサの動作速度との速度差に合わせて、前記第2の読み出しデータ選択部から出力されたデータが前記第2のプロセッサに入力する時機を調整する速度差調整部を備えるとしてもよい。
さらに、(j)(j1)前記第1の動作速度は、前記第2の動作速度のk(kは自然数である。)倍であり、(j2)前記キャッシュメモリの動作クロックは、前記第1のプロセッサの動作クロックと同一であり、(j3)前記速度差調整部は、前記キャッシュメモリの動作クロックで換算して、前記第2の読み出しデータ選択部から出力されたデータが前記第2のプロセッサに入力する時機を、前記第1の読み出しデータ選択部から出力されたデータが前記第1のプロセッサに入力する時機に対して、k−1クロック遅延させる遅延回路を備えるとしてもよい。
これによって、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、(k)(k1)前記第1のプロセッサは、動作モードが第1のモードであるときは、前記第1の動作速度で動作し、動作モードが第2のモードであるときは、前記第2の動作速度で動作し、(k2)前記速度差調整部は、前記第1のモードであるときは、前記第2のプロセッサに入力する時機を調整し、前記第2のモードであるときは、前記第2のプロセッサに入力する時機を調整しないとしてもよい。
これによって、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、かつ動作速度の切り替わりのタイミングを意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
なお、本発明は、演算装置として実現されるだけではなく、演算装置を制御する演算装置制御方法などとして実現されるとしてもよい。また、演算装置の機能が組み込まれたLSI(Large Scale Integration)、その機能をFPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)などのプログラマブル・ロジック・デバイスに形成するIP(Intellectual Property)コア、そのIPコアを記録した記録媒体などとして実現されるとしてもよい。また、演算装置を備えるコンピュータシステム、そのコンピュータシステムを制御する方法、その方法を演算装置に実行させるプログラム、そのプログラムを記録した記録媒体などとして実現されるとしてもよい。また、そのコンピュータシステムを備える携帯機器、その携帯機器を制御する方法、その方法を携帯機器に実行させるプログラム、そのプログラムを記録した記録媒体などとして実現されるとしてもよい。
本発明の演算装置によれば、同一のデータ記憶部に対するアクセス競合を回避することができる。さらに、所定のタスクの実行に伴い生じたリフィルによって、他のタスクに割り付けられたデータ記憶部が不用意に書き換わることを回避することができる。このため、所定のタスクについては、所定のデータ記憶部にアクセスが制限されるので、同一のデータ記憶部に対するアクセス競合を回避することができる。
これから、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、データ記憶部とプロセッサとを接続する部分を、読み出しデータ選択部のような単純な選択回路で構成することで、少ないハードウェア量で複数のプロセッサを備える演算装置を構成することができる。
さらに、同一のデータ記憶部に対するアクセス競合を回避することができるので、アクセス競合による調停を必要としない分、処理性能の向上に寄与する。
さらに、各データ記憶部の管理を、ウェイごとに存在するチップセレクトで容易に実現することができる。
また、本発明のコンピュータシステムによれば、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクが各データ記憶領域と対応付けられて管理されるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
また、任意のプロセッサで任意のタスクが実行される場合でも、タスクごとに異なるデータ記憶領域を割り付けるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
また、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。
さらに、所定のプロセッサで実行される複数のタスクに対して異なるデータ記憶領域を割り付けるので、タスク切り替えによるキャッシュミスを低減し、処理性能の向上に寄与する。これは、例えば、所定のプロセッサで実行される複数のタスクに対して同一のデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しやすくなる。一方、これらのタスクに対して異なるデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができなくなる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しにくくなるためである。
このように、本発明によれば、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクは、キャッシュメモリの各データ記憶領域と対応付けられて管理されるので、キャッシュメモリの同一のデータ記憶領域に対してアクセスが競合することなく、タスクを実行することができる。結果、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。さらに、アクセスが競合して調停が必要となる場合に比べれば、性能向上に寄与する。
(実施の形態1)
以下、本発明に係わる実施の形態1について、図面を参照しながら説明する。
本実施の形態における演算装置は、下記(a)〜(d)に示される特徴を備える。
(a)1チップに集積された演算装置であって、(a1)複数のタスクを並列で実行可能な複数のプロセッサと、(a2)複数のプロセッサで共用されるキャッシュメモリとを備え、(a3)キャッシュメモリは、複数のデータ記憶部と、複数の読み出しデータ選択部とを備え、(a3−1)各データ記憶部は、データ出力ポートが1ポートであり、(a3−2)各読み出しデータ選択部は、各プロセッサと一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているデータ記憶部を、複数のデータ記憶部の中から選択する。
(b)(b1)各データ記憶部は、メモリアクセス要求入力ポートとデータ入力ポートとのそれぞれが1ポートであり、(b2)キャッシュメモリは、複数のメモリアクセス要求選択部を備え、(b2−1)各メモリアクセス要求選択部は、各データ記憶部と一対一で対応付けられ、対応付けられたデータ記憶部に対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、複数のプロセッサから個別に出力されたメモリアクセス要求の中から選択する。
(c)(c1)各データ記憶部は、1以上のデータ記憶部から各データ記憶領域が構成されている複数のデータ記憶領域のいずれか1つに分類されており、(c2)キャッシュメモリは、(c2−1)所定のデータ記憶領域に対して所定のタスクが割り付けられたことが示される割付情報を、所定のデータ記憶領域と対応付けて保持する割付情報保持部と、(c2−2)所定のタスクに対してリフィルが生じた場合は、リフィル可能なデータ記憶領域として、割付情報保持部で保持されている割付情報に基づいて、複数のデータ記憶領域の中から所定のデータ記憶領域を特定する特定部とを備える。
(d)(d1)キャッシュメモリは、n(nは自然数である。)ウェイセットアソシエイティブ方式のキャッシュメモリであり、(d2)各データ記憶部は、各ウェイと一対一で対応付けられている。
また、本実施の形態における演算装置を備えるコンピュータシステムは、下記(e),(f)に示される特徴を備える。
(e)(e1)上記演算装置と、(e2)割付プログラムを記憶している主記憶装置とを備え、(e3)割付プログラムを実行した演算装置は、所定のタスクが生成されたときに、複数のデータ記憶領域の中から、所定のタスクに対して所定のデータ記憶領域を割り付け、割付情報を所定のデータ記憶領域と対応付けて割付情報保持部に登録する。
(f)割付プログラムを実行した演算装置は、各データ記憶領域に対するタスクの割り付けを管理し、複数のデータ記憶領域の中から、タスクごとに異なるデータ記憶領域を割り付け、タスクごとに異なる割付情報を、タスクごとに異なるデータ記憶領域と対応付けて割付情報保持部に登録する。
以上の点を踏まえて、本実施の形態における演算装置を備えるコンピュータシステムを例にして説明する。
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図1は、本実施の形態におけるコンピュータシステムの構成を示す図である。図1に示されるように、コンピュータシステム100は、プロセッサ102−1,102−2、キャッシュメモリ103などが1チップに集積された演算装置101を備える。さらに、タスクA171、タスクB172、オペレーティングシステム181などが記憶されているメインメモリ110を備える。
プロセッサ102−1は、あらかじめ、オペレーティングシステム181の制御下において、タスクA171、タスクB172のように、タスクを生成する。このとき、ウェイ割付プログラム182を実行する。これに伴い、ウェイ割付プログラム182を実行中のプロセッサ102−1は、ウェイ管理テーブル183を参照し、生成したタスクに割り付け可能なウェイを決定する。決定したウェイと生成したタスクとを関連付けたウェイ指定情報を生成する。そして、生成したウェイ指定情報を、信号線163−1を介してキャッシュメモリ103に出力する。ここで、ウェイ指定情報には、タスクの識別情報(以下、タスクIDと呼称する。)とウェイの識別情報(以下、ウェイ番号と呼称する。)とが含まれる。
その後、プロセッサ102−1は、タスクを実行するときに、実行するタスクに割り当てられたタスクIDを、信号線154−1を介してキャッシュメモリ103に出力する。タスクを実行している最中にキャッシュメモリ103にアクセスするときに、アクセス先のアドレスを含むメモリアクセス要求を、信号線151−1を介してキャッシュメモリ103に出力する。このとき、アクセス要求が書き込みを目的とする場合は、信号線152−1を介してキャッシュメモリ103にデータを書き込む。アクセス要求が読み出しを目的とする場合は、信号線153−1を介してキャッシュメモリ103からデータを読み出す。ここで、信号線152−1と信号線153−1とは、データの転送サイズに応じた信号線の本数が必要である。
なお、プロセッサ102−2については、プロセッサ102−1と同様の構成のため説明を省略する。また、命令セットがプロセッサ102−1と同一とする。
キャッシュメモリ103は、n(nは正の整数である。)ウェイセットアソシエイティブ方式のキャッシュメモリである。ここでは、一例として、タグメモリ104、データメモリ105、メモリアクセス要求・書き込みデータ選択部106−1〜106−n、読み出しデータ選択部107−1,107−2、領域管理部108、キャッシュヒット判定部109−1〜109−2nなどを備える。
タグメモリ104は、マルチポートメモリ104−1〜104−nから構成される。マルチポートメモリ104−1〜104−nは、ウェイ1〜nに個別に対応するマルチポートメモリである。
マルチポートメモリは、独立にアクセス可能なポートを複数有するメモリである。ここでは、一例として、タグリクエスト入力ポートおよびタグ出力ポートの各ポート数がプロセッサの数と同数であるメモリとする。ここで、タグリクエスト入力ポートとは、プロセッサから出力されたタグリクエストが入力されるポートである。タグ出力ポートとは、入力されたタグリクエストに対応するタグが出力されるポートである。
例えば、マルチポートメモリ104−1においては、信号線151−1と接続されているポートおよび信号線151−2と接続されているポートの各ポートがタグリクエスト入力ポートにあたる。また、信号線156−1と接続されているポートおよび信号線156−2と接続されているポートの各ポートがタグ出力ポートにあたる。
データメモリ105は、シングルポートメモリ105−1〜105−nから構成される。シングルポートメモリ105−1〜105−nは、ウェイ1〜nに個別に対応するシングルポートメモリである。
シングルポートメモリは、独立にアクセス可能なポートを1つしか有しないメモリである。ここでは、一例として、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートの各ポート数が1つであるメモリとする。ここで、メモリアクセス要求入力ポートとは、プロセッサから出力されたメモリアクセス要求が入力されるポートである。データ入力ポートとは、プロセッサから書き込まれるデータが入力されるポートである。データ出力ポートとは、プロセッサに読み出されるデータが出力されるポートである。
例えば、シングルポートメモリ105−1においては、信号線157−1と接続されているポートがメモリアクセス要求入力ポートにあたる。信号線158−1と接続されているポートがデータ入力ポートにあたる。信号線159−1と接続されているポートがデータ出力ポートにあたる。
シングルポートメモリ105−1には、ウェイ1と対応付けられたタスクに読み出されるデータや、そのタスクから書き込まれたデータが格納される。マルチポートメモリ104−1には、シングルポートメモリ105−1に格納されているデータと関連付けられたタグが格納される。
なお、シングルポートメモリ105−2〜105−nについては、シングルポートメモリ105−1と同様の構成により説明を省略する。マルチポートメモリ104−2〜104−nについては、マルチポートメモリ104−1と同様の構成により説明を省略する。
ここで、タグメモリ104に格納されるタグのサイズに比べれば、データメモリ105に格納されるデータのサイズの方が遥かに大きい。このため、データメモリ105だけシングルポートメモリで構成しても、回路面積の省面積化に大きく寄与することができる。
メモリアクセス要求・書き込みデータ選択部106−1〜106−nは、各メモリアクセス要求・書き込みデータ選択部が、シングルポートメモリ105−1〜105−nの各シングルポートメモリと一対一で対応付けられ、対応付けられたシングルポートメモリに対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、プロセッサ102−1,102−2から個別に出力されたメモリアクセス要求の中から選択する。
読み出しデータ選択部107−1,107−2は、各読み出しデータ選択部が、プロセッサ102−1,102−2の各プロセッサと一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているシングルポートメモリを、シングルポートメモリ105−1〜105−nの中から選択する。
領域管理部108は、所定のウェイに対して所定のタスクが割り付けられたことが示されるウェイ情報を、所定のウェイと対応付けて保持し、所定のタスクに対してリフィルが生じた場合は、リフィル可能なウェイとして、保持しているウェイ情報に基づいて、nウェイの中から所定のウェイを特定する。
キャッシュヒット判定部109−1には、タグメモリ104−1から信号線156−1を介してタグが入力される。プロセッサ102−1から信号線151−1を介してメモリアクセス要求が入力される。
キャッシュヒット判定部109−1は、入力されたタグと、入力されたメモリアクセス要求に含まれるアドレスとを比較する。比較した結果をキャッシュヒット情報として出力する。例えば、キャッシュヒット判定部109−1は、タグとアドレスとが一致した場合、すなわち、キャッシュがヒットした場合は、キャッシュヒット情報として0を出力する。一方、タグとアドレスとが一致しなかった場合、すなわち、ヒットしなかった場合は、キャッシュヒット情報として1を出力する。
キャッシュヒット判定部109−2には、タグメモリ104−1から信号線156−2を介してタグが入力される。プロセッサ102−2から信号線151−2を介してメモリアクセス要求が入力される。
キャッシュヒット判定部109−2は、入力されたタグと、入力されたメモリアクセス要求に含まれるアドレスとを比較する。比較した結果をキャッシュヒット情報として出力する。例えば、キャッシュヒット判定部109−2は、タグとアドレスとが一致した場合、すなわち、キャッシュがヒットした場合は、キャッシュヒット情報として0を出力する。一方、タグとアドレスとが一致しなかった場合、すなわち、ヒットしなかった場合は、キャッシュヒット情報として1を出力する。
なお、キャッシュヒット判定部109−3〜109−(2n−1)については、キャッシュヒット判定部109−1と同様の構成により説明を省略する。キャッシュヒット判定部109−4〜109−2nについては、キャッシュヒット判定部109−2と同様の構成により説明を省略する。
メインメモリ110には、キャッシュメモリ103から信号線161を介してアドレスとアクセス要求とが入力される。
メインメモリ110は、メモリコントローラ(不図示)を備える。メモリコントローラ(不図示)は、アクセス要求が書き込み要求である場合は、キャッシュメモリ103から信号線162を介して入力されたデータをアドレスから書き込む。アクセス要求が読み出し要求である場合は、アドレスから読み出したデータを、信号線162を介してキャッシュメモリ103に出力する。
図2は、本実施の形態におけるメモリアクセス要求・書き込みデータ選択部106−1〜106−nの構成を示す図である。図2に示されるように、メモリアクセス要求・書き込みデータ選択部106−1は、メモリアクセス信号選択回路111−1、書き込みデータ選択回路112−1などを備える。
メモリアクセス信号選択回路111−1には、信号線155−1を介してキャッシュヒット判定部109−1から出力されたキャッシュヒット情報(以下、第1のキャッシュヒット情報と呼称する。)が制御信号として入力される。信号線155−2を介してキャッシュヒット判定部109−2から出力されたキャッシュヒット情報(以下、第2のキャッシュヒット情報と呼称する。)が制御信号として入力される。
メモリアクセス信号選択回路111−1は、入力された第1のキャッシュヒット情報と第2のキャッシュヒット情報とに応じて、入力源を選択する。選択した入力源からメモリアクセス要求が入力されると、信号線157−1を介してシングルポートメモリ105−1に、入力されたメモリアクセス要求を出力する。
例えば、メモリアクセス信号選択回路111−1に入力された第1のキャッシュヒット情報が0であり、第2のキャッシュヒット情報が1であるとする。さらに、プロセッサ102−1から出力されたメモリアクセス要求(以下、第1のメモリアクセス要求と呼称する。)が信号線151−1を介して入力されたとする。この場合において、メモリアクセス信号選択回路111−1は、信号線157−1を介してシングルポートメモリ105−1に第1のメモリアクセス要求を出力する。
また、メモリアクセス信号選択回路111−1に入力された第1のキャッシュヒット情報が1であり、第2のキャッシュヒット情報が0であるとする。さらに、プロセッサ102−2から出力されたメモリアクセス要求(以下、第2のメモリアクセス要求と呼称する。)が信号線151−2を介して入力されたとする。この場合において、メモリアクセス信号選択回路111−1は、信号線157−1を介してシングルポートメモリ105−1に第2のメモリアクセス要求を出力する。
なお、メモリアクセス信号選択回路111−1に入力された第1のキャッシュヒット情報が1であり、第2のキャッシュヒット情報が1であるとする。この場合において、メモリアクセス信号選択回路111−1は、第1のメモリアクセス要求および第2のメモリアクセス要求のいずれも出力しない。
また、メモリアクセス信号選択回路111−1に入力された第1のキャッシュヒット情報が0であり、第2のキャッシュヒット情報が0であるとする。この場合において、メモリアクセス信号選択回路111−1は、第1のメモリアクセス要求および第2のメモリアクセス要求のいずれも出力しない。
書き込みデータ選択回路112−1には、キャッシュヒット判定部109−1から出力されたキャッシュヒット情報(以下、第1のキャッシュヒット情報と呼称する。)が信号線155−1を介して制御信号として入力される。また、キャッシュヒット判定部109−2から出力されたキャッシュヒット情報(以下、第2のキャッシュヒット情報と呼称する。)が信号線155−2を介して制御信号として入力される。
書き込みデータ選択回路112−1は、入力された第1のキャッシュヒット情報と第2のキャッシュヒット情報とに応じて、入力源を選択する。選択した入力源から書き込みデータが入力されると、信号線158−1を介してシングルポートメモリ105−1に、入力された書き込みデータを出力する。
例えば、書き込みデータ選択回路112−1に入力された第1のキャッシュヒット情報が0であり、第2のキャッシュヒット情報が1であるとする。さらに、プロセッサ102−1から出力された書き込みデータ(以下、第1の書き込みデータと呼称する。)が信号線152−1を介して入力されたとする。この場合において、書き込みデータ選択回路112−1は、信号線158−1を介してシングルポートメモリ105−1に第1の書き込みデータを出力する。
また、書き込みデータ選択回路112−1に入力された第1のキャッシュヒット情報が1であり、第2のキャッシュヒット情報が0であるとする。さらに、プロセッサ102−2から出力された書き込みデータ(以下、第2の書き込みデータと呼称する。)が信号線152−2を介して入力されたとする。この場合において、書き込みデータ選択回路112−1は、信号線158−1を介してシングルポートメモリ105−1に第2の書き込みデータを出力する。
なお、書き込みデータ選択回路112−1に入力された第1のキャッシュヒット情報が1であり、第2のキャッシュヒット情報が1であるとする。この場合において、書き込みデータ選択回路112−1は、第1の書き込みデータおよび第2の書き込みデータのいずれも出力しない。
また、書き込みデータ選択回路112−1に入力された第1のキャッシュヒット情報が0であり、第2のキャッシュヒット情報が0であるとする。この場合において、書き込みデータ選択回路112−1は、第1の書き込みデータおよび第2の書き込みデータのいずれも出力しない。
なお、メモリアクセス要求・書き込みデータ選択部106−2〜106−nについては、メモリアクセス要求・書き込みデータ選択部106−1と同様の構成により説明を省略する。
図3は、本実施の形態における読み出しデータ選択部107−1,107−2の構成を示す図である。図3に示されるように、読み出しデータ選択部107−1は、読み出しデータ選択回路113−1などを備える。
読み出しデータ選択回路113−1には、キャッシュヒット判定部109−1〜109−(2n−1)から個別に出力されたキャッシュヒット情報(以下、第1のキャッシュヒット情報、・・・、第2n−1のキャッシュヒット情報と呼称する。)が信号線155−1〜155−(2n−1)を介して制御信号として個別に入力される。
読み出しデータ選択回路113−1は、個別に入力された第1のキャッシュヒット情報、・・・、第2n−1のキャッシュヒット情報に応じて、入力源を選択する。選択した入力源から読み出しデータが入力されると、信号線153−1を介してプロセッサ102−1に、入力された読み出しデータを出力する。
例えば、読み出しデータ選択回路113−1に個別に入力された第1のキャッシュヒット情報、・・・、第2n−1のキャッシュヒット情報のうち、第iのキャッシュヒット情報が0であり、それ以外のキャッシュヒット情報が1であるとする。さらに、シングルポートメモリ105−iから出力された読み出しデータ(以下、第iの読み出しデータと呼称する。)が、信号線159−1〜159−nのうち、信号線159−iを介して入力されたとする。この場合において、読み出しデータ選択回路113−1は、信号線153−1を介してプロセッサ102−1に第iの読み出しデータを出力する。
なお、読み出しデータ選択回路113−1に個別に入力された第1のキャッシュヒット情報、・・・、第2n−1のキャッシュヒット情報のうち、複数のキャッシュヒット情報が0であるとする。この場合において、読み出しデータ選択回路113−1は、いずれの読み出しデータも出力しない。
また、読み出しデータ選択回路113−1に個別に入力された第1のキャッシュヒット情報、・・・、第2n−1のキャッシュヒット情報のうち、全てのキャッシュヒット情報が1であるとする。この場合において、読み出しデータ選択回路113−1は、いずれの読み出しデータも出力しない。
なお、読み出しデータ選択部107−2については、読み出しデータ選択部107−1と同様の構成により説明を省略する。
図4は、本実施の形態における領域管理部108の構成を示す図である。図4に示されるように、領域管理部108は、ウェイ情報保持部114、比較器115−1〜115−2n、ウェイ決定部116−1,116−2、NAND回路118−1,118−2、調停部119、タスクID入力レジスタ120−1,120−2などを備える。
ウェイ情報保持部114は、ウェイ情報保持領域114−1〜114−nからなる。ウェイ情報保持領域114−1〜114−nには、ウェイ1〜nに対応するウェイ情報が個別に保持される。各ウェイ情報保持領域には、0からm(mは正の整数である。)までのタスクIDに対して、enableおよびdisableのいずれかの割付情報が個別に設定される。なお、初期値としてdisableが設定されている。
そして、タスクが生成されたときに、ウェイ割付プログラム182によって、生成されたタスクに対して割り付けられたウェイに対応付けられたウェイ情報保持領域に、生成されたタスクが割り付けられたことが示される割付情報(enable)が登録される。また、タスクが消滅したときに、ウェイ割付プログラム182によって、消滅したタスクに対して割り付けられていたウェイに対応付けられたウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報(enable)が削除される。なお、enableが削除されると、disableになる。
ウェイ情報保持領域114−1には、マルチポートメモリ104−1とシングルポートメモリ105−1とが含まれるウェイ1に関するウェイ情報が保持されている。そのウェイ情報には、ウェイ1に割り付けられたタスクIDに対しては、enableが設定され、それ以外のタスクIDに対しては、disableが設定される。なお、ウェイ情報保持領域114−2〜114−nについては、ウェイ情報保持領域114−1と同様の構成により説明を省略する。
さらに、ウェイ情報保持部114には、プロセッサ102−1,102−2から信号線163−1,163−2を介してウェイ情報が個別に入力される。
ウェイ情報保持部114は、個別に入力されたウェイ情報を該当するウェイ情報保持領域に保持する。
比較器115−1には、ウェイ情報保持領域114−1から信号線162−1を介してウェイ情報が入力される。タスクIDレジスタ120−1から信号線164−1を介してタスクIDが入力される。
比較器115−1は、入力されたウェイ情報と、入力されたタスクIDとを比較する。比較した結果をウェイ一致情報として出力する。
比較器115−2には、ウェイ情報保持領域114−1から信号線162−1を介してウェイ情報が入力される。タスクIDレジスタ120−2から信号線164−2を介してタスクIDが入力される。
比較器115−2は、入力されたウェイ情報と、入力されたタスクIDとを比較する。比較した結果をウェイ一致情報として出力する。
なお、比較器115−3〜115−(2n−1)については、比較器115−1と同様の構成により説明を省略する。比較器115−4〜115−2nについては、比較器115−2と同様の構成により説明を省略する。
ウェイ決定部116−1には、比較器115−1〜115−(2n−1)から信号線165−1〜165−(2n−1)を介してウェイ一致情報が個別に入力される。
ウェイ決定部116−1は、個別に入力されたウェイ一致情報に基づいて、リフィル対象のウェイを決定する。決定したウェイに関する情報をリフィルウェイ情報として出力する。
なお、ウェイ決定部116−2については、ウェイ決定部116−1と同様の構成により説明を省略する。
NAND回路118−1には、キャッシュヒット判定部109−1〜109−(2n−1)から信号線155−1〜155−(2n−1)を介してキャッシュヒット情報が個別に入力される。
NAND回路118−1は、個別に入力されたキャッシュヒット情報が全て1である場合は、制御情報として0を出力する。それ以外の場合は、制御情報として1を出力する。なお、NAND回路118−2については、NAND回路118−1と同様の構成により説明を省略する。
調停部119は、NAND回路118−1から出力された制御情報が信号線161−1を介して入力されると、入力された制御情報に基づいて、プロセッサ102−1に割り付けられているウェイをリフィルする必要があるか否かを判定する。
例えば、調停部119に入力された制御情報が1であるとする。この場合において、調停部119は、キャッシュがヒットしているので、プロセッサ102−1に割り付けられたウェイに対してリフィルする必要がないと判定する。
一方、調停部119に入力された制御情報が0であるとする。この場合において、調停部119は、キャッシュがヒットしていないので、プロセッサ102−1に割り付けられたウェイに対してリフィルする必要があると判定する。そして、プロセッサ102−1に割り付けられたウェイに対してリフィルすることを指示するリフィルウェイ指示を、信号線160を介してタグメモリ104とデータメモリ105とに出力する。このとき、信号線166−1を介してウェイ決定部116−1から出力されたリフィルウェイ情報によって、プロセッサ102−1に割り付けられたウェイが特定される。
同様に、調停部119は、NAND回路118−2から出力された制御情報が信号線161−2を介して入力されると、入力された制御情報に基づいて、プロセッサ102−2に割り付けられているウェイをリフィルする必要があるか否かを判定する。
例えば、調停部119に入力された制御情報が1であるとする。この場合において、調停部119は、キャッシュがヒットしていると判定し、プロセッサ102−2に割り付けられたウェイに対してリフィルする必要がないと判定する。一方、調停部119に入力された制御情報が0であるとする。この場合において、調停部119は、キャッシュがヒットしていないと判定し、プロセッサ102−2に割り付けられたウェイに対してリフィルする必要があると判定する。
そして、調停部119は、プロセッサ102−2に割り付けられたウェイに対してリフィルすることを指示するリフィルウェイ指示を、信号線160を介してタグメモリ104とデータメモリ105とに出力する。このとき、ウェイ決定部116−2から信号線166−2を介して調停部119に入力されたリフィルウェイ情報によって、プロセッサ102−2に割り付けられたウェイが特定される。
そして、タグメモリ104とデータメモリ105とを制御するキャッシュコントローラ(不図示)は、領域管理部108から出力されたリフィルウェイ指示が信号線160を介して入力されると、入力されたリフィルウェイ指示に基づいて、リフィルするウェイを特定する。また、メインメモリ110からデータを読み出し、読み出したデータを特定したウェイに書き込む。なお、リフィル対象のウェイが複数存在する場合は、LRU(Least Recently Used)方式、FIFO(First In First Out)方式、ランダム方式などによって、リフィルするウェイを特定する。
タスクID入力レジスタ120−1には、プロセッサ102−1から信号線154−1を介してタスクIDが入力される。
タスクID入力レジスタ120−1は、入力されたタスクIDを保持する。なお、タスクID入力レジスタ120−1については、タスクID入力レジスタ120−1と同様の構成により説明を省略する。
次に、本実施の形態におけるウェイ管理テーブルのデータ構造について説明する。
図5は、本実施の形態におけるウェイ管理テーブルのデータ構造を示す図である。図5に示されるように、ウェイ管理テーブル183は、ウェイとタスクとが対応付けられているテーブルである。各タスクIDにおいて、そのタスクIDのタスクに割り付け可能なウェイについては、enableが設定されている。そのタスクIDのタスクに割り付け不可能なウェイについては、disableが設定されている。例えば、タスクIDが0のタスクについては、ウェイ1が割り付け可能である。
例えば、ウェイ管理テーブル183のウェイ1に関する行のウェイ情報がウェイ情報保持領域114−1に保持されている。同様に、ウェイ管理テーブル183のウェイnに関する行のウェイ情報がウェイ情報保持領域114−nに保持されている。
次に、本実施の形態におけるウェイ割付プログラムによって実行されるウェイ割付処理について説明する。
図6は、本実施の形態におけるウェイ割付処理のフローチャートを示す図である。図6に示されるように、オペレーティングシステム181の制御下において、タスクが生成されると(S101:Yes)、プロセッサ102−1,102−2のいずれかにおいてウェイ割付プログラム182が実行される。具体的には、ウェイ割付プログラム182を実行したプロセッサは、ウェイ管理テーブル183を参照し(S102)、参照したウェイ管理テーブル183から割り付け可能なウェイを決定する(S103)。このとき、タスクごとに異なるウェイを選択する。
そして、割り付け可能なウェイを選択した後、ウェイ情報保持部114を構成するウェイ情報保持領域のうち、選択したウェイに対応するウェイ情報保持領域に、生成されたタスクが割り付けられたことが示される割付情報(enable)を登録する(S104)。ウェイ情報保持部114を更新する(S105)。
また、タスクが消滅すると(S106)、ウェイ管理テーブル183を参照する(S107)。解放されるウェイを特定する(S108)。ウェイ情報保持部114を構成するウェイ情報保持領域のうち、特定したウェイに対応するウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報(enable)を削除する(S109)。ウェイ情報保持部114を更新する(S110)。
以上、本実施の形態における演算装置101によれば、データ記憶部とプロセッサとを接続する部分を、読み出しデータ選択部のような単純な選択回路で構成することで、少ないハードウェア量で複数のプロセッサを備える演算装置を構成することができる。
さらに、所定のタスクの実行に伴い生じたリフィルによって、他のタスクに割り付けられたデータ記憶部が不用意に書き換わることを回避することができる。そして、所定のタスクについては、所定のデータ記憶部にアクセスが制限されるので、同一のデータ記憶部に対するアクセス競合を回避することができる。
さらに、同時に複数のプロセッサから同一のデータ記憶部に対してアクセスがされなくなるので、データ記憶部のメモリアクセス要求入力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。
さらに、同時に複数のプロセッサから同一のデータ記憶部に対して、データが書き込まれたり、読み出されたりすることがなくなるので、データ記憶部のデータ入力ポートとデータ出力ポートとも複数のプロセッサで共用することができる。
これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。さらに、同一のデータ記憶部に対するアクセス競合を回避することができるので、アクセス競合による調停を必要としない分、処理性能の向上に寄与する。
また、本実施の形態におけるコンピュータシステム100によれば、複数のプロセッサで複数のタスクが同時に実行される場合でも、各タスクが各データ記憶領域と対応付けられて管理されるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
さらに、任意のプロセッサで任意のタスクが実行される場合でも、タスクごとに異なるデータ記憶領域を割り付けるので、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。
これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
なお、本実施の形態では、演算装置101の構成を2個のプロセッサで示したが、2個のプロセッサに限定されるものではなく、3個以上のプロセッサでも適用可能である。
また、本実施の形態では、タスクごとに異なるデータ記憶領域を割り付けている。しかし、リフィルが発生することによる処理性能の低下が許容される場合は、一部の複数のタスクについては、同一のデータ記憶領域を割り付けることも可能である。
さらに、本実施の形態では、1つのタスクに対して1つのウェイを割り付けている。しかし、1つのタスクに対して複数のウェイを割り付けるとしてもよい。例えば、1以上のウェイから各データ記憶領域が構成されている複数のデータ記憶領域のいずれか1つに各ウェイが分類されているとする。そして、ウェイ割付プログラム182を実行した演算装置101は、タスクが生成されたときに、複数のデータ記憶領域の中から、生成されたタスクに対してデータ記憶領域を割り付け、ウェイ情報を、そのデータ記憶領域と対応付けてウェイ情報保持部114に登録する。
(実施の形態2)
次に、本発明に係わる実施の形態2について、図面を参照しながら説明する。
本実施の形態におけるコンピュータシステムは、下記(g)に示される特徴を備える。
(g)割付プログラムを実行した演算装置は、各プロセッサと一対一で各キャッシュ領域が対応付けられている複数のキャッシュ領域のいずれか1つに各データ記憶領域を分類して各データ記憶領域に対するタスクの割り付けを管理し、複数のプロセッサにおける所定のプロセッサで実行されるタスクについては、複数のキャッシュ領域において所定のプロセッサと対応付けられている所定のキャッシュ領域の中からデータ記憶領域を割り付け、所定のプロセッサで実行される複数のタスクが個別に識別される複数の割付情報を所定のキャッシュ領域と対応付けて割付情報保持部に登録する。
以上の点を踏まえて、本実施の形態におけるコンピュータシステムについて説明する。なお、実施の形態1における構成と同一の構成については、同一の参照符号を付して説明を省略する。
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図7は、本実施の形態におけるコンピュータシステムの構成を示す図である。図7に示されるように、コンピュータシステム200は、実施の形態1におけるコンピュータシステム100と比べて(例えば、図1参照。)、メインメモリ110の代わりに、メインメモリ210を備える。さらに、メインメモリ210には、オペレーティングシステム181の代わりに、オペレーティングシステム281が展開されている。オペレーティングシステム281は、ウェイ割付プログラム182、ウェイ管理テーブル183の代わりに、ウェイ割付プログラム282、ウェイ管理テーブル283を有する点が異なる。
プロセッサ102−1,102−2のいずれかにおいてウェイ割付プログラム282が実行されるとする。ウェイ1〜nは、第1のキャッシュ領域と第2のキャッシュ領域とに分類されるとする。第1のキャッシュ領域とは、プロセッサ102−1で実行されるタスクに割り付けられるウェイが属する領域である。第2のキャッシュ領域は、プロセッサ102−2で実行されるタスクに割り付けられるウェイが属する領域である。
この場合において、ウェイ割付プログラム282を実行したプロセッサは、複数のタスクのうち、プロセッサ102−1で実行されるタスクと、プロセッサ102−2で実行されるタスクとに分類する。プロセッサ102−1で実行されるタスクについては、第1のキャッシュ領域からウェイを割り付ける。プロセッサ102−2で実行されるタスクについては、第2のキャッシュ領域からウェイを割り付ける。
次に、本実施の形態におけるウェイ管理テーブルのデータ構造について説明する。
図8は、本実施の形態におけるウェイ管理テーブルのデータ構造を示す図である。図8に示されるように、ウェイ管理テーブル283は、実行プロセッサとウェイとタスクとが対応付けられているテーブルである。各タスクIDにおいて、そのタスクIDのタスクに割り付け可能なウェイについては、enableが設定されている。そのタスクIDのタスクに割り付け不可能なウェイについては、disableが設定されている。例えば、タスクIDが0,1のタスクについては、ウェイ1,2(以下、第1のキャッシュ領域と呼称する。)が割り付け可能である。タスクIDが2〜mのタスクについては、ウェイ3〜n(以下、第2のキャッシュ領域と呼称する。)が割り付け可能である。さらに、各タスクIDにおいて、そのタスクIDのタスクが実行されるプロセッサについては、プロセッサ102−1,102−2のいずれかが設定されている。例えば、タスクIDが0,1のタスクについては、プロセッサ102−1で実行される。タスクIDが2〜mのタスクについては、プロセッサ102−2で実行される。
すなわち、ウェイ割付プログラム282を実行したプロセッサによって、プロセッサ102−1で実行されるタスク(タスクIDが0,1のタスク)については、第1のキャッシュ領域からウェイが割り付けられる。プロセッサ102−2で実行されるタスク(タスクIDが2〜mのタスク)については、第2のキャッシュ領域からウェイが割り付けられる。
次に、本実施の形態におけるウェイ割付プログラムによって実行されるウェイ割付処理について説明する。
図9は、本実施の形態におけるウェイ割付処理のフローチャートを示す図である。図9に示されるように、オペレーティングシステム281の制御下において、タスクが生成されると(S101:Yes)、プロセッサ102−1,102−2のいずれかにおいてウェイ割付プログラム282が実行される。具体的には、ウェイ割付プログラム282を実行したプロセッサは、ウェイ管理テーブル283を参照し(S102)、参照したウェイ管理テーブル283から割り付け可能なウェイを決定する(S203)。
このとき、プロセッサ102−1で実行されるタスクについては、第1のキャッシュ領域から選択する。また、プロセッサ102−2で実行されるタスクについては、第2のキャッシュ領域から選択する。
そして、割り付け可能なウェイを選択した後、ウェイ情報保持部114を構成するウェイ情報保持領域のうち、選択したウェイに対応するウェイ保持領域に、生成されたタスクが割り付けられたことが示される割付情報(enable)を登録する(S104)。ウェイ情報保持部114を更新する(S105)。
また、タスクが消滅すると(S106)、ウェイ管理テーブル283を参照する(S107)。解放されるウェイを特定する(S108)。特定したウェイに対応するウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報(enable)を削除する(S109)。ウェイ情報保持部114を更新する(S110)。
以上、本実施の形態におけるコンピュータシステム200によれば、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。
これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
これは、実施の形態1におけるコンピュータシステム100では、全てのタスクが異なるウェイに割り当てられる必要があり、演算装置101の持つウェイの数nが、タスクの数mに比べ少ない場合は、そのままでは使えないという問題がある。
これに対して、本実施の形態におけるコンピュータシステム200によれば、このような問題を解消することができる。
あらかじめ設定されたプロセッサ102−1,102−2でタスクが実行される場合、同時に実行されるタスクが同一の記憶領域に対するアクセス競合を発生させることはなく、一方のプロセッサのキャッシュアクセスにより他方のプロセッサのアクセスが待たされる場合に対し、処理性能の向上が可能となる。また、本実施の形態では複数のウェイからなる記憶領域を割り当てたが、各記憶領域は1つ以上のウェイから構成されればよく、従って本実施の形態に必要なウェイの数は、プロセッサの個数だけあればよい。
(実施の形態3)
次に、本発明に係わる実施の形態3について、図面を参照しながら説明する。
本実施の形態におけるコンピュータシステムは、下記(h)に示される特徴を備える。
(h)割付プログラムを実行した演算装置は、所定のキャッシュ領域を構成する各データ記憶領域を、1つのタスクだけに割り付け可能なデータ記憶領域から構成される第1の部分キャッシュ領域と、複数のタスクに割り付け可能なデータ記憶領域から構成される第2の部分キャッシュ領域とのいずれか1つに分類し、所定のプロセッサで実行されるタスクが所定の種類のタスクである場合は、第1の部分キャッシュ領域の中からデータ記憶領域を割り付け、所定のプロセッサで実行されるタスクが所定の種類のタスクでない場合は、第2の部分キャッシュ領域の中からデータ記憶領域を割り付ける。
以上の点を踏まえて、本実施の形態におけるコンピュータシステムについて説明する。なお、実施の形態2における構成と同一の構成については、同一の参照符号を付して説明を省略する。
図10は、本実施の形態におけるコンピュータシステムの構成を示す図である。図10に示されるように、コンピュータシステム300は、実施の形態2におけるコンピュータシステム200と比べて(例えば、図7参照。)、メインメモリ210の代わりに、メインメモリ310を備える。さらに、メインメモリ310には、オペレーティングシステム281の代わりに、オペレーティングシステム381が展開されている。オペレーティングシステム381は、ウェイ割付プログラム282、ウェイ管理テーブル283の代わりに、ウェイ割付プログラム382、ウェイ管理テーブル383を有する点が異なる。
プロセッサ102−1,102−2のいずれかにおいてウェイ割付プログラム382が実行されるとする。ウェイ1〜nは、第1のキャッシュ領域と第2のキャッシュ領域とに分類されるとする。第1のキャッシュ領域とは、プロセッサ102−1で実行されるタスクに割り付けられるウェイが属する領域である。第2のキャッシュ領域は、プロセッサ102−2で実行されるタスクに割り付けられるウェイが属する領域である。
この場合において、ウェイ割付プログラム382を実行したプロセッサは、複数のタスクのうち、プロセッサ102−1で実行されるタスクと、プロセッサ102−2で実行されるタスクとに分類する。プロセッサ102−1で実行されるタスクについては、第1のキャッシュ領域からウェイを割り付ける。プロセッサ102−2で実行されるタスクについては、第2のキャッシュ領域からウェイを割り付ける。さらに、所定のタスクに対しては、所定のウェイを割り付ける。
図11は、本実施の形態におけるウェイ管理テーブルのデータ構造を示す図である。図11に示されるように、ウェイ管理テーブル383は、実行プロセッサとウェイとタスクとが対応付けられているテーブルである。各タスクIDにおいて、そのタスクIDのタスクに割り付け可能なウェイについては、enableが設定されている。そのタスクIDのタスクに割り付け不可能なウェイについては、disableが設定されている。例えば、タスクIDが0,1のタスクについては、ウェイ1(以下、第1のキャッシュ領域と呼称する。)が割り付け可能である。タスクIDが2のタスクについては、ウェイ2〜n(以下、第2のキャッシュ領域と呼称する。)のうちウェイ2のみが割り付け可能である。タスクIDが3,4のタスクについては、第2のキャッシュ領域のうちウェイ3,4のみが割り付け可能である。タスクIDがmのタスクについては、第2のキャッシュ領域のうちウェイnのみが割り付け可能である。
さらに、各タスクIDにおいて、そのタスクIDのタスクが実行されるプロセッサについては、プロセッサ102−1,102−2のいずれかが設定されている。例えば、タスクIDが0,1のタスクについては、プロセッサ102−1で実行される。タスクIDが2〜mのタスクについては、プロセッサ102−2で実行される。
ここでは、一例として、プロセッサ102−2で実行されるタスクの中で、プロセッサの占有時間の長いタスク(高負荷のタスク)のように、ウェイを占有で使用したいタスクについては、タスクIDとして2やmなどが設定されているとする。さらに、プロセッサの占有時間の短いタスク(低負荷のタスク)のように、ウェイを共有で使用しても支障の少ないタスクについては、タスクIDとして3や4などが設定されているとする。
すなわち、ウェイ割付プログラム382を実行したプロセッサによって、プロセッサ102−1で実行されるタスク(タスクIDが0,1のタスク)については、第1のキャッシュ領域からウェイが割り付けられる。プロセッサ102−2で実行されるタスク(タスクIDが2〜mのタスク)については、第2のキャッシュ領域からウェイが割り付けられる。
さらに、第2のキャッシュ領域については、第2のキャッシュ領域を構成する各ウェイが、1つのタスクだけに割り付け可能なウェイから構成される第1の部分キャッシュ領域と、複数のタスクに割り付け可能なウェイから構成される第2の部分キャッシュ領域とのいずれか1つに分類されている。そして、プロセッサ102−2で実行されるタスクが所定の種類のタスク(高負荷のタスク)である場合は、第1の部分キャッシュ領域の中からウェイが割り付けられる。一方、プロセッサ102−2で実行されるタスクが所定の種類のタスク(高負荷のタスク)でない場合は、第2の部分キャッシュ領域の中からウェイが割り付けられる。
つまり、実施の形態2におけるウェイ割付プログラム282では、ウェイ管理テーブル283により、第1のキャッシュ領域(第2のキャッシュ領域)に属するウェイであれば、第1のキャッシュ領域(第2のキャッシュ領域)から、どれでも割り付け可能であった。しかし、本実施の形態におけるウェイ割付プログラム382では、ウェイ管理テーブル383により、第1のキャッシュ領域(第2のキャッシュ領域)に属するウェイであっても、タスクによって割り付け可能なウェイが限定されている点が異なる。
図12は、本実施の形態におけるウェイ割付処理のフローチャートを示す図である。図12に示されるように、オペレーティングシステム381の制御下において、タスクが生成すると(S101:Yes)、プロセッサ102−1,102−2のいずれかにおいてウェイ割付プログラム382が実行される。具体的には、ウェイ割付プログラム382を実行したプロセッサは、ウェイ管理テーブル383を参照し(S102)、参照したウェイ管理テーブル383から割り付け可能なウェイを決定する(S303)。
このとき、プロセッサ102−1で実行されるタスクについては、第1のキャッシュ領域から選択する。また、プロセッサ102−2で実行されるタスクについては、第2のキャッシュ領域から選択する。なお、各キャッシュ領域から選択するにあたり、タスクによって限定されている中から選択する。
そして、割り付け可能なウェイを選択した後、ウェイ情報保持部114を構成するウェイ情報保持領域のうち、選択したウェイに対応するウェイ保持領域に、生成されたタスクが割り付けられたことが示される割付情報(enable)を登録する(S104)。ウェイ情報保持部114を更新する(S105)。
また、タスクが消滅すると(S106)、ウェイ管理テーブル383を参照する(S107)。解放されるウェイを特定する(S108)。特定したウェイに対応するウェイ情報保持領域から、消滅したタスクが割り付けられていたことが示される割付情報(enable)を削除する(S109)。ウェイ情報保持部114を更新する(S110)。
以上、本実施の形態におけるコンピュータシステム300によれば、所定のキャッシュ領域に分類されたデータ記憶領域の数が、所定のプロセッサで実行されるタスクの数より少ない場合でも、同一のデータ記憶領域に対するアクセス競合を回避しつつ、タスクを実行することができる。これは、プロセッサごとにアクセス可能なデータ記憶領域が制限されるので、同時に複数のプロセッサから同一のデータ記憶領域に対してアクセスがされないことによる。
これから、データ記憶領域を構成する1以上のデータ記憶部に対してもアクセス競合を回避することができるので、メモリアクセス要求入力ポート、データ入力ポート、およびデータ出力ポートのそれぞれを複数のプロセッサで共用することができる。そして、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
さらに、所定のプロセッサで実行される複数のタスクに対して異なるデータ記憶領域を割り付けるので、タスク切り替えによるキャッシュミスを低減し、処理性能の向上に寄与する。
これは、例えば、所定のプロセッサで実行される複数のタスクに対して同一のデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しやすくなる。
一方、これらのタスクに対して異なるデータ記憶領域を割り付けたとする。この場合において、所定のプロセッサに対して多数のタスクを割り付けることができなくなる。しかし、これらのタスク間でタスクを切り替えるときにキャッシュミスが発生しにくくなるためである。
実施の形態2におけるコンピュータシステム200では、同時に実行されるタスク間での同一の記憶領域へのアクセス競合は回避できるが、プロセッサごとに実行されるタスクが切り替わると、それ以前に実行されていたタスクが使用していた記憶領域を使用するため、プロセッサ上で実行されるタスクが切り替わるごとにキャッシュミスが発生し、キャッシュヒット時の処理性能に比べ性能が劣化する可能性がある。
これに対して、本実施の形態におけるコンピュータシステム300によれば、このような問題を解消することができる。
そして、あらかじめ設定されたプロセッサ102−1,102−2でタスクが実行される場合、同時に実行されるタスクが同一の記憶領域に対するアクセス競合を発生させることはなく、一方のプロセッサのキャッシュアクセスにより他方のプロセッサのアクセスが待たされる性能劣化を回避することができる。また、タスク2が割り当てられるウェイ2については、タスク2が実行されるプロセッサ102−2で実行される他のタスクによって使用されることはなく、同時実行されるタスクおよびプロセッサ102−2でのタスク切り替えのいずれによっても更新されることはない。
このように、各プロセッサで実行されるタスクごとに異なるキャッシュ領域を割り当てることで、実施の形態2と同様に、同時実行されるタスクによるアクセス競合による性能劣化を回避可能である。さらに一部のタスクに対してのみ、キャッシュ領域内で他のタスクと異なる記憶領域を割り当てることで、全てのタスク数より少ないウェイ数であっても、タスク切り替えによるキャッシュミスを低減し、処理性能を向上することができる。
(実施の形態4)
次に、本発明に係わる実施の形態4について、図面を参照しながら説明する。
本実施の形態における演算装置は、下記(i)〜(k)に示される特徴を備える。
(i)(i1)複数のプロセッサは、第1の動作速度で動作する第1のプロセッサと、第1の動作速度よりも低速である第2の動作速度で動作する第2のプロセッサとを備え、(i2)複数の読み出しデータ選択部は、第1のプロセッサに対応する第1の読み出しデータ選択部と、第2のプロセッサに対応する第2の読み出しデータ選択部とを備え、(i3)キャッシュメモリは、第1のプロセッサの動作速度と第2のプロセッサの動作速度との速度差に合わせて、第2の読み出しデータ選択部から出力されたデータが第2のプロセッサに入力する時機を調整する速度差調整部を備える。
(j)(j1)第1の動作速度は、第2の動作速度のk(kは自然数である。)倍であり、(j2)キャッシュメモリの動作クロックは、第1のプロセッサの動作クロックと同一であり、(j3)速度差調整部は、キャッシュメモリの動作クロックで換算して、第2の読み出しデータ選択部から出力されたデータが第2のプロセッサに入力する時機を、第1の読み出しデータ選択部から出力されたデータが第1のプロセッサに入力する時機に対して、k−1クロック遅延させる遅延回路を備える。
(k)第2のプロセッサで実行可能な命令セットは、第1のプロセッサで実行可能な命令セットと同一である。
以上の点を踏まえて、本実施の形態における演算装置を備えるコンピュータシステムを例にして説明する。なお、実施の形態3における構成と同一の構成については、同一の参照符号を付して説明を省略する。
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図13は、本実施の形態におけるコンピュータシステムの構成を示す図である。図13に示されるように、コンピュータシステム400は、実施の形態3におけるコンピュータシステム300と比べて(例えば、図10参照。)、演算装置101の代わりに、高速プロセッサ421、低速プロセッサ422、キャッシュメモリ403などが1チップに集積された演算装置401を備える。
高速プロセッサ421は、あらかじめ、オペレーティングシステム381の制御下において、タスクA171、タスクB172のように、タスクを生成する。このとき、ウェイ割付プログラム382を実行する。これに伴い、ウェイ割付プログラム382を実行中の高速プロセッサ421は、ウェイ管理テーブル383を参照し、生成したタスクに割り付け可能なウェイを決定する。決定したウェイと生成したタスクとを関連付けたウェイ指定情報を生成する。そして、生成したウェイ指定情報を、信号線163−1を介してキャッシュメモリ403に出力する。ここで、ウェイ指定情報には、タスクIDとウェイ番号とが含まれる。
その後、高速プロセッサ421は、タスクを実行するときに、実行するタスクに割り当てられたタスクIDを、信号線154−1を介してキャッシュメモリ403に出力する。タスクを実行している最中にキャッシュメモリ403にアクセスするときに、アクセス先のアドレスを含むメモリアクセス要求を、信号線151−1を介してキャッシュメモリ403に出力する。このとき、アクセス要求が書き込みを目的とする場合は、信号線152−1を介してキャッシュメモリ403にデータを書き込む。アクセス要求が読み出しを目的とする場合は、信号線468−1を介してキャッシュメモリ403からデータを読み出す。ここで、信号線152−1と信号線468−1とは、データの転送サイズに応じた信号線の本数が必要である。
また、高速プロセッサ421は、低速プロセッサ422のk倍の動作速度で動作する。ここでは、一例として、k=2として説明する。
低速プロセッサ422は、高速プロセッサ421の動作速度より低速の動作に限定したプロセッサである。また、高速プロセッサ421と比べて、消費電力および面積を低減させたプロセッサである。なお、低速プロセッサ422は、低速の動作に限定するため、プロセッサを構成するトランジスタの閾値電圧を上げたり、トランジスタのサイズを小さくしたりすることができる。また、バッファの段数を減らすこともできる。これらによって、高速プロセッサ421と比べて、消費電力および面積を低減させることができる。
また、低速プロセッサ422は、命令セットが高速プロセッサ421と同一のプロセッサである。
なお、低速プロセッサ422のタスク生成、ウェイ割付処理については、高速プロセッサ421と同様とし、説明を省略する。
キャッシュメモリ403は、n(nは正の整数である。)ウェイセットアソシエイティブ方式のキャッシュメモリである。ここでは、一例として、高速プロセッサ421と同一の速度で動作するものとする。また、キャッシュメモリ103と比べて、新たに、タグ速度差調整部423−1〜423−n、読み出しデータ速度差調整部424などを備える点が異なる。
図14は、本実施の形態におけるタグ速度差調整部の構成を示す図である。図14に示されるように、タグ速度差調整部423−1は、遅延回路425−1などを備える。
タグ速度差調整部423−1には、タグメモリ104−1から信号線156−1を介して高速プロセッサ421用タグ情報が入力される。タグメモリ104−1から信号線156−2を介して低速プロセッサ422用タグ情報が入力される。タグ速度差調整部423−1は、信号線156−1を介して入力された高速プロセッサ421用タグ情報を、そのまま、信号線467−1を介して高速プロセッサ421に出力する。信号線156−2を介して入力された低速プロセッサ422用タグ情報を、遅延回路425−1で(k−1)段分遅延させ、遅延させた低速プロセッサ422用タグ情報を、信号線467−2を介して低速プロセッサ422に出力する。
ここでは、k=2としているので、低速プロセッサ422用タグ情報は、遅延回路425−1で1段分遅延させられる。
なお、タグ速度差調整部423−2〜423−nについては、タグ速度差調整部423−1と同様の構成により説明を省略する。
図15は、本実施の形態における読み出しデータ速度差調整部の構成を示す図である。図15に示されるように、読み出しデータ速度差調整部424は、遅延回路426などを備える。
読み出しデータ速度差調整部424には、読み出しデータ選択部107−1から信号線153−1を介して高速プロセッサ421用読み出しデータが入力される。読み出しデータ選択部107−2から信号線153−2を介して低速プロセッサ422用読み出しデータが入力される。
読み出しデータ速度差調整部424は、信号線153−1を介して入力された高速プロセッサ421用読み出しデータを、そのまま、信号線468−1を介して高速プロセッサ421に出力する。信号線153−2を介して入力された低速プロセッサ422用読み出しデータを、遅延回路426で(k−1)段分遅延させ、遅延させた低速プロセッサ422用読み出しデータを、信号線468−2を介して低速プロセッサ422に出力する。
ここでは、k=2としているので、低速プロセッサ422用読み出しデータは、遅延回路426で1段分遅延させられる。
図16、図17は、本実施の形態における動作例を示すタイミングチャートである。
例えば、図16に示されるように、高速プロセッサ421から信号線151−1を介してキャッシュメモリ403に、タグリクエストQA0およびエントリアドレスAA0が出力され、ウェイ1がヒットしたとする。このとき、ウェイ1に対応するタグメモリ104−1から、タグリクエストQA0およびエントリアドレスAA0によって特定されたタグTA0が出力される。ウェイ1に対応するシングルポートメモリ105−1から、タグTA0に対応する読み出しデータDA0が出力される。キャッシュメモリ403から信号線468−1を介して高速プロセッサ421に、読み出しデータDA0が出力されたとする。
この場合において、タグメモリ104−1にエントリアドレスAA0が入力されてから、タグ速度差調整部423−1にタグTA0が入力されるまでに、キャッシュメモリ403のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のタグメモリの高速プロセッサ用入力ポート(信号線151−1)と、ウェイ1のタグ速度差調整部の高速プロセッサ用入力ポート(信号線156−1)とから示される。
ここで、タグ速度差調整部423−1は、タグメモリ104−1から信号線156−1を介して入力されたタグTA0を遅延させずに、そのまま、信号線467−1を介してキャッシュヒット判定部109−1に出力する。このため、タグ速度差調整部423−1にタグTA0が入力されてから、キャッシュヒット判定部109−1にタグTA0が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中におけるウェイ1のタグ速度差調整部の高速プロセッサ用入力ポート(信号線156−1)と、ウェイ1のタグ速度差調整部の高速プロセッサ用出力ポート(信号線467−1)とから示される。
さらに、シングルポートメモリ105−1にメモリアクセス要求RA0が入力されてから、読み出しデータ速度差調整部424に読み出しデータDA0が入力されるまでに、キャッシュメモリ403のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のデータメモリのメモリアクセス要求入力ポート(信号線157−1)と、読み出しデータ速度差調整部の高速プロセッサ用入力ポート(信号線153−1)とから示される。
ここで、読み出しデータ速度差調整部424は、読み出しデータ選択部107−1から信号線153−1を介して入力された読み出しデータDA0を遅延させずに、そのまま信号線468−1を介して高速プロセッサ421に出力する。このため、読み出しデータ速度差調整部424に読み出しデータDA0が入力されてから、高速プロセッサ421に読み出しデータDA0が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中における読み出しデータ速度差調整部の高速プロセッサ用入力ポート(信号線153−1)と、読み出しデータ速度差調整部の高速プロセッサ用出力ポート(468−1)とから示される。
これから、高速プロセッサ421は、タグリクエストQA0をキャッシュメモリ403に出力してから、キャッシュメモリ403のクロックで2クロック後に、読み出しデータDA0をキャッシュメモリ403から取得する。ここで、キャッシュメモリ403のクロックで2クロックということは、高速プロセッサ421のクロックで換算すると、2サイクルに相当する。これによって、タグリクエストの2サイクル後に、読み出しデータを取得することができる。
なお、タグリクエストQA1〜QA7に対する動作は、タグリクエストQA0と同様の動作により説明を省略する。
一方、図17に示されるように、低速プロセッサ422から信号線151−2を介してキャッシュメモリ403に、タグリクエストQB0およびエントリアドレスAB0が出力され、ウェイ1がヒットしたとする。このとき、ウェイ1に対応するタグメモリ104−1から、タグリクエストQB0およびエントリアドレスAB0によって特定されたタグTB0が出力される。ウェイ1に対応するシングルポートメモリ105−1から、タグTB0に対応する読み出しデータDB0が出力される。キャッシュメモリ403から信号線468−2を介して低速プロセッサ422に、読み出しデータDB0が出力されたとする。
この場合において、タグメモリ104−1にエントリアドレスAB0が入力されてから、タグ速度差調整部423−1にタグTB0が入力されるまでに、キャッシュメモリ403のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のタグメモリの低速プロセッサ用入力ポート(信号線151−2)と、ウェイ1のタグ速度差調整部の低速プロセッサ用入力ポート(信号線156−2)とから示される。
ここで、タグ速度差調整部423−1は、タグメモリ104−1から信号線156−2を介して入力されたタグTB0を1段遅延させ、遅延させたタグTB0を、信号線467−2を介してキャッシュヒット判定部109−2に出力する。このため、タグ速度差調整部423−1にタグTB0が入力されてから、キャッシュヒット判定部109−2にタグ値TB0が入力されるまでに、キャッシュメモリ403のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のタグ速度差調整部の低速プロセッサ用入力ポート(信号線156−2)と、ウェイ1のタグ速度差調整部の低速プロセッサ用出力ポート(信号線467−2)とから示される。
さらに、シングルポートメモリ105−1にメモリアクセス要求RB0が入力されてから、読み出しデータ速度差調整部424に読み出しデータDB0が入力されるまでに、キャッシュメモリ403のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のデータメモリのメモリアクセス要求入力ポート(信号線157−1)と、読み出しデータ速度差調整部の低速プロセッサ用入力ポート(信号線153−2)とから示される。
ここで、読み出しデータ速度差調整部424は、読み出しデータ選択部107−2から信号線153−2を介して入力された低速プロセッサ422用読み出しデータDB0を1段遅延させ、遅延させた読み出しデータDB0を、信号線468−2を介して低速プロセッサ422に出力する。このため、読み出しデータ速度差調整部424に読み出しデータDB0が入力されてから、低速プロセッサ422に読み出しデータDB0が入力されるまでに、キャッシュメモリ403のクロックで1クロックの時間を要する。これは、図中における読み出しデータ速度差調整部の低速プロセッサ用入力ポート(信号線153−2)と、読み出しデータ速度差調整部の低速プロセッサ用出力ポート(468−2)とから示される。
これから、低速プロセッサ422は、タグリクエストQB0をキャッシュメモリ403に出力してから、キャッシュメモリ403のクロックで4クロック後に、読み出しデータDB0を取得する。ここで、キャッシュメモリ403のクロックで4クロックということは、低速プロセッサ422のクロックで換算すると、2サイクルに相当する。これによって、低速プロセッサ422でも高速プロセッサ421と同様に、タグリクエストの2サイクル後に、読み出しデータを取得することができる。
なお、タグリクエストQB1〜QB3に対する動作は、タグリクエストQB0と同様の動作により説明を省略する。
以上、本実施の形態における演算装置401によれば、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。
さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
(実施の形態5)
次に、本発明に係わる実施の形態5について、図面を参照しながら説明する。
本実施の形態における演算装置は、下記(l)に示される特徴を備える。
(l)(l1)第1のプロセッサは、動作モードが第1のモードであるときは、第1の動作速度で動作し、動作モードが第2のモードであるときは、第2の動作速度で動作し、(l2)速度差調整部は、第1のモードであるときは、第2のプロセッサに入力する時機を調整し、第2のモードであるときは、第2のプロセッサに入力する時機を調整しない。
以上の点を踏まえて、本実施の形態における演算装置を備えるコンピュータシステムを例にして説明する。なお、実施の形態4における構成と同一の構成については、同一の参照符号を付して説明を省略する。
先ず、本実施の形態におけるコンピュータシステムの構成について説明する。
図18は、本実施の形態におけるコンピュータシステムの構成を示す図である。図18に示されるように、コンピュータシステム500は、実施の形態4におけるコンピュータシステム400と比べて(例えば、図13参照。)、演算装置401の代わりに、高速プロセッサ521、低速プロセッサ522、キャッシュメモリ503などが1チップに集積された演算装置501を備える。さらに、動作モード端子529を有する。また、キャッシュメモリ503は、キャッシュメモリ403と比べて、タグ速度差調整部423−1〜423−n、読み出しデータ速度差調整部424の代わりに、タグ速度差調整部523−1〜523−n、読み出しデータ速度差調整部524を備える点が異なる。
高速プロセッサ521は、あらかじめ、オペレーティングシステム381の制御下において、タスクA171、タスクB172のように、タスクを生成する。このとき、ウェイ割付プログラム382を実行する。これに伴い、ウェイ割付プログラム382を実行中の高速プロセッサ521は、ウェイ管理テーブル383を参照し、生成したタスクに割り付け可能なウェイを決定する。決定したウェイと生成したタスクとを関連付けたウェイ指定情報を生成する。そして、生成したウェイ指定情報を、信号線163−1を介してキャッシュメモリ503に出力する。ここで、ウェイ指定情報には、タスクIDとウェイ番号とが含まれる。
その後、高速プロセッサ521は、タスクを実行するときに、実行するタスクに割り当てられたタスクIDを、信号線154−1を介してキャッシュメモリ503に出力する。タスクを実行している最中にキャッシュメモリ503にアクセスするときに、アクセス先のアドレスを含むメモリアクセス要求を、信号線151−1を介してキャッシュメモリ503に出力する。このとき、アクセス要求が書き込みを目的とする場合は、信号線152−1を介してキャッシュメモリ503にデータを書き込む。アクセス要求が読み出しを目的とする場合は、信号線468−1を介してキャッシュメモリ503からデータを読み出す。ここで、信号線152−1と信号線468−1とは、データの転送サイズに応じた信号線の本数が必要である。
また、高速プロセッサ521には、動作モード端子529から信号線568を介して動作モード信号が入力される。高速プロセッサ521は、動作モード信号がmode1のときは、低速プロセッサ522のk倍の動作速度で動作し、動作モード信号がmode2のときは、低速プロセッサ522と同一の速度で動作するものとする。ここでは、一例として、k=2として説明する。
低速プロセッサ522は、高速プロセッサ521の最高動作速度より低速の最高動作速度を有する低消費電力のプロセッサである。また、高速プロセッサ521と比べて、消費電力および面積を低減させたプロセッサである。なお、低速プロセッサ522は、低速の動作に限定するため、プロセッサを構成するトランジスタの閾値電圧を上げたり、トランジスタのサイズを小さくしたりすることができる。また、バッファの段数を減らすこともできる。これらによって、高速プロセッサ521と比べて、消費電力および面積を低減させることができる。
また、低速プロセッサ522は、命令セットが高速プロセッサ521と同一のプロセッサである。
なお、低速プロセッサ522のタスク生成、ウェイ割付処理については、高速プロセッサ521と同様とし、説明を省略する。
なお、低速プロセッサ522で実行可能な命令セットは、高速プロセッサ521で実行可能な命令セットと同一であるとする。
キャッシュメモリ503は、n(nは正の整数である。)ウェイセットアソシエイティブ方式のキャッシュメモリである。ここでは、一例として、動作モード端子529から信号線568を介して動作モード信号が入力され、入力された動作モード信号に応じて高速プロセッサ521と同一の速度で動作するものとする。また、キャッシュメモリ403と比べて、タグ速度差調整部423−1〜423−n、読み出しデータ速度差調整部424の代わりに、タグ速度差調整部523−1〜523−n、読み出しデータ速度差調整部524を備える点が異なる。
図19は、本実施の形態におけるタグ速度差調整部の構成を示す図である。図19に示されるように、タグ速度差調整部523−1は、遅延回路525−1、選択回路527−1などを備える。
タグ速度差調整部523−1には、タグメモリ104−1から信号線156−1を介して高速プロセッサ521用タグ情報が入力される。タグメモリ104−1から信号線156−2を介して低速プロセッサ522用タグ情報が入力される。動作モード端子529から信号線568を介して動作モード信号が入力される。
タグ速度差調整部523−1は、信号線156−1を介して入力された高速プロセッサ521用タグ情報を、そのまま、信号線467−1を介して高速プロセッサ521に出力する。
また、タグ速度差調整部523−1は、動作モード信号がmode1であるときは、選択回路527−1で信号線569−1が入力源として選択され、選択された入力源を介して入力された低速プロセッサ522用タグ情報、すなわち、遅延回路525−1で(k−1)段分遅延させた低速プロセッサ522用タグ情報を、信号線467−2を介して低速プロセッサ522に出力する。
ここでは、k=2としているので、低速プロセッサ522用タグ情報は、遅延回路525−1で1段分遅延させられる。
また、タグ速度差調整部523−1は、動作モード信号がmode2であるときは、選択回路527−1で信号線156−2が入力源として選択され、選択された入力源を介して入力された低速プロセッサ522用タグ情報を、信号線467−2を介して低速プロセッサ522に出力する。
なお、タグ速度差調整部523−2〜523−nについては、タグ速度差調整部523−1と同様の構成により説明を省略する。
図20は、本実施の形態における読み出しデータ速度差調整部の構成を示す図である。図20に示されるように、読み出しデータ速度差調整部524は、遅延回路526、選択回路528などを備える。
読み出しデータ速度差調整部524には、読み出しデータ選択部107−1から信号線153−1を介して高速プロセッサ521用読み出しデータが入力される。読み出しデータ選択部107−2から信号線153−2を介して低速プロセッサ522用読み出しデータが入力される。動作モード端子529から信号線568を介して動作モード信号が入力される。
読み出しデータ速度差調整部524は、信号線153−1を介して入力された高速プロセッサ521用読み出しデータを、そのまま、信号線468−1を介して高速プロセッサ521に出力する。
また、読み出しデータ速度差調整部524は、動作モード信号がmode1であるときは、選択回路528で信号線570が入力源として選択され、選択された入力源を介して入力された低速プロセッサ522用読み出しデータ、すなわち、遅延回路526で(k−1)段分遅延させた低速プロセッサ522用読み出しデータを、信号線468−2を介して低速プロセッサ522に出力する。
ここでは、k=2としているので、低速プロセッサ522用読み出しデータは、遅延回路526で1段分遅延させられる。
また、読み出しデータ速度差調整部524は、動作モード信号がmode2であるときは、選択回路528で信号線153−2が入力源として選択され、選択された入力源を介して入力された低速プロセッサ522用読み出しデータを、信号線468−2を介して低速プロセッサ522に出力する。
図21は、本実施の形態における動作例を示すタイミングチャートである。図21に示されるように、まず、動作モードがmode1であるときの動作について説明する。このとき、例えば、低速プロセッサ522から信号線151−2を介してキャッシュメモリ503に、タグリクエストQD0およびエントリアドレスAD0が出力され、ウェイ1がヒットしたとする。これに伴い、ウェイ1に対応するタグメモリ104−1から、タグリクエストQD0およびエントリアドレスAD0によって特定されたタグTD0が出力される。ウェイ1に対応するシングルポートメモリ105−1から、タグTD0に対応する読み出しデータDD0が出力される。キャッシュメモリ503から信号線468−2を介して低速プロセッサ522に、読み出しデータDD0が出力されたとする。
この場合において、タグメモリ104−1にエントリアドレスAD0が入力されてから、タグ速度差調整部523−1にタグTD0が入力されるまでに、キャッシュメモリ503のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のタグメモリの低速プロセッサ用入力ポート(信号線151−2)と、ウェイ1のタグ速度差調整部の低速プロセッサ用入力ポート(信号線156−2)とから示される。
ここで、タグ速度差調整部523−1は、選択回路527−1で信号線569−2が入力源として選択され、遅延回路525−1で1段遅延させられたタグTD0を、信号線467−2を介してキャッシュヒット判定部109−2に出力する。このため、タグ速度差調整部523−1にタグTD0が入力されてから、キャッシュヒット判定部109−2にタグTD0が入力されるまでに、キャッシュメモリ503のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のタグ速度差調整部の低速プロセッサ用入力ポート(信号線156−2)と、ウェイ1のタグ速度差調整部の低速プロセッサ用出力ポート(信号線467−2)とから示される。
さらに、シングルポートメモリ105−1にメモリアクセス要求RD0が入力されてから、読み出しデータ速度差調整部524に読み出しデータDD0が入力されるまでに、キャッシュメモリ503のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のデータメモリのメモリアクセス要求入力ポート(信号線157−1)と、読み出しデータ速度差調整部の低速プロセッサ用入力ポート(信号線153−2)とから示される。
ここで、読み出しデータ速度差調整部524は、選択回路528で信号線570が入力源として選択され、遅延回路526で1段遅延させた低速プロセッサ522用読み出しデータDD0を、信号線468−2を介して低速プロセッサ522に出力する。このため、読み出しデータ速度差調整部524に読み出しデータDD0が入力されてから、低速プロセッサ522に読み出しデータDD0が入力されるまでに、キャッシュメモリ503のクロックで1クロックの時間を要する。これは、図中における読み出しデータ速度差調整部の低速プロセッサ用入力ポート(信号線153−2)と、読み出しデータ速度差調整部の低速プロセッサ用出力ポート(468−2)とから示される。
次に、動作モードがmode2であるときの動作について説明する。このとき、例えば、低速プロセッサ522から信号線151−2を介してキャッシュメモリ503に、タグリクエストQD2およびエントリアドレスAD2が出力され、ウェイ1がヒットしたとする。これに伴い、ウェイ1に対応するタグメモリ104−1から、タグリクエストQD2およびエントリアドレスAD2によって特定されたタグTD2が出力される。ウェイ1に対応するシングルポートメモリ105−1で、タグTD2に対応する読み出しデータDD2が出力される。キャッシュメモリ503から信号線468−2を介して低速プロセッサ522に、読み出しデータDD2が出力されたとする。
この場合において、タグメモリ104−1にエントリアドレスAD2が入力されてから、タグ速度差調整部523−1にタグTD0が入力されるまでに、キャッシュメモリ503のクロックで1クロックの時間を要する。これは、図中におけるウェイ1のタグメモリの低速プロセッサ用入力ポート(信号線151−2)と、ウェイ1のタグ速度差調整部の低速プロセッサ用入力ポート(信号線156−2)とから示される。
ここで、タグ速度差調整部523−1は、選択回路527−1で信号線156−2が入力源として選択され、遅延させずにそのままタグTD2を、信号線467−2を介してキャッシュヒット判定部109−2に出力する。このため、タグ速度差調整部523−1にタグTD2が入力されてから、キャッシュヒット判定部109−2にタグTD2が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中におけるウェイ1のタグ速度差調整部の低速プロセッサ用入力ポート(信号線156−2)と、ウェイ1のタグ速度差調整部の低速プロセッサ用出力ポート(信号線467−2)とから示される。
さらに、シングルポートメモリ105−1にメモリアクセス要求RD2が入力されてから、読み出しデータ速度差調整部524に読み出しデータDD2が入力されるまでに、キャッシュメモリ503のクロックで1クロックの時間を要する。ただし、mode2のときは、mode1のときと比べれば、2倍の時間を要する。これは、図中におけるウェイ1のデータメモリのメモリアクセス要求入力ポート(信号線157−1)と、読み出しデータ速度差調整部の低速プロセッサ用入力ポート(信号線153−2)とから示される。
ここで、読み出しデータ速度差調整部524は、選択回路528で信号線153−2が入力源として選択され、遅延させずにそのまま低速プロセッサ522用読み出しデータDD2を、信号線468−2を介して低速プロセッサ522に出力する。このため、読み出しデータ速度差調整部524に読み出しデータDD2が入力されてから、低速プロセッサ522に読み出しデータDD2が入力されるまでが、同一のクロックサイクル内で行われる。これは、図中における読み出しデータ速度差調整部の低速プロセッサ用入力ポート(信号線153−2)と、読み出しデータ速度差調整部の低速プロセッサ用出力ポート(468−2)とから示される。
これから、高速プロセッサ521は、読み出しデータを取得するにあたって、mode2のときは、mode1のときと比べて2倍の時間を要する。しかし、mode1のときと同じように、タグリクエストの2サイクル後に、読み出しデータを取得することができる。
これに対して、低速プロセッサ522は、読み出しデータを取得するにあたって、mode2のときは、mode1のときと比べて同じである。このため、mode1のときと同じように、タグリクエストの2サイクル後に、読み出しデータを取得することができる。
なお、動作モードの切り替わり前後のタイミングにおいても、タグ速度差調整部523−1の選択回路527−1および読み出しデータ速度差調整部524の選択回路528を動作モード信号によって切り替えるとしてもよい。これによって、連続してキャッシュメモリにアクセスすることができる。
以上、本実施の形態における演算装置501によれば、動作速度の異なる複数のプロセッサがキャッシュメモリを共用する場合でも、複数のプロセッサの各プロセッサは、プロセッサ間の動作速度差を意識することなく、かつ動作速度の切り替わりのタイミングを意識することなく、それぞれ同様のシーケンスで同時にアクセスすることができる。
さらに、動作速度差を調整することができるので、データ記憶部のデータ出力ポートをプロセッサごとに備える必要がなく、複数のプロセッサで共用することができる。これから、マルチポートメモリに比べて、セル面積の小さいシングルポートメモリをデータ記憶部として使用することができ、キャッシュメモリの省面積化に寄与し、低コスト化に寄与する。
また、本実施の形態において、高速プロセッサ521がヒットする場合の動作については、動作モードの切り替えに依存することなく高速プロセッサ521とキャッシュメモリ503が同一の速度で動作するので同様のシーケンスでアクセスすることが可能であり、説明は省略する。
実施の形態4に比較して、動作させるプロセッサと動作モードの組合せによって、より多くの処理性能と消費電力の選択が可能となり、さまざまな処理に対して適切な処理性能・消費電力を有するコンピュータシステムが実現可能となる。
(実施の形態6)
次に、本発明に係わる実施の形態6について、図面を参照しながら説明する。
なお、本実施の形態では、実施の形態1〜5のいずれかにおけるコンピュータシステムを備える携帯機器について説明する。
本実施の形態における携帯機器は、下記(m)に示される特徴を備える。
(m)(m1)実施の形態1〜5のいずれかの演算装置と、(m2)音声データをデコードする音声デコードプログラムと、画像データをデコードする画像デコードプログラムとを記憶している主記憶装置と、(m3)音声デコード結果に基づいて音声を出力する音声出力装置と、(m4)画像デコード結果に基づいて画像を出力する画像出力装置とを備え、(m5)複数のプロセッサのうち、画像デコードプログラムを実行したプロセッサは、画像データをデコードして得られた画像デコード結果を画像出力装置に出力し、(m6)複数のプロセッサのうち、音声デコードプログラムを実行したプロセッサは、音声データをデコードして得られた音声デコード結果を音声出力装置に出力する。
以上の点を踏まえて、本実施の形態における携帯機器について説明する。なお、ここでは、一例として、実施の形態1におけるコンピュータシステム100を備える携帯機器について説明する。
図22は、本実施の形態における携帯機器の構成を示す図である。図22に示されるように、携帯機器631は、コンピュータシステム100、音声出力制御装置633、画像出力制御装置634、データバス635、音声出力装置636、画像出力装置637などを備える。
ここでは、一例として、タスクA171として音声データをデコードするタスク(プログラム)とする。また、タスクB172として画像データをデコードするタスク(プログラム)とする。
演算装置101は、タスクA171とタスクB172とを並列で実行する。例えば、タスクA171をプロセッサ102−2で実行する。タスクB172をプロセッサ102−1で実行する。これに伴い、音声データをデコードして得られた音声デコード結果を、データバス635を介して音声出力制御装置633に出力する。また、画像データをデコードして得られた画像デコード結果を、データバス635を介して画像出力制御装置634に出力する。
なお、各プロセッサでは、画像デコードプログラムおよび音声デコードプログラムのいずれかに限定されて実行される訳ではない。
音声出力制御装置633は、演算装置101からデータバス635を介して入力された音声デコード結果を受信し、受信した音声デコード結果を音声出力装置636に順次転送する。
画像出力制御装置634は、演算装置101からデータバス635を介して入力された画像デコード結果を受信し、受信した画像デコード結果を画像出力装置637に順次転送する。
音声出力装置636は、音声出力制御装置633から順次転送される音声デコード結果に基づいて、音声を出力する。
画像出力装置637は、画像出力制御装置634から順次転送される画像デコード結果に基づいて、画像を出力する。
携帯機器631は、一般的にバッテリによって動作が主となるため、消費電力の抑制が求められる。一方、動画・音声の同時再生においては、高い処理性能が必要となる。このため、低負荷での低消費電力と高負荷での高性能の両方に対応した演算装置が要求される。そこで、実施の形態1におけるコンピュータシステム100の演算装置101を適用することにより、プログラムの処理量(タスク数)に応じてプロセッサの動作数を変化させることができ、低消費電力と高性能を両立した携帯機器を実現することができる。また、複数のプロセッサを備えつつ省面積化された演算装置によって、携帯機器の小型化が可能である。さらに、同一のデータ記憶部に対するアクセス競合を回避することができるので、携帯機器の処理性能向上に寄与する。
(その他)
なお、本発明に係わる演算装置とメインメモリとが1チップに集積されているとしてもよい。
なお、本発明に係わる演算装置は、演算装置の各機能が組み込まれたLSIによって実現されるとしてもよい。
なお、LSIは、フルカスタムLSI、ASIC(Application Specific Integrated Circuit)などのようなセミカスタムLSI、FPGAやCPLDなどのようなプログラマブル・ロジック・デバイス、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスに形成されるとしてもよい。
さらに、演算装置の各機能をLSIに形成する設計データは、ハードウェア記述言語によって記述されたプログラム(以下、HDLプログラムと呼称する。)としてもよい。さらに、HDLプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。ここで、ハードウェア記述言語として、VHDL(Very high speed integrated circuit Hardware Description Language)、Verilog−HDL、SystemCがある。
さらに、設計データは、汎用のコンピュータシステム、組み込みシステムなどのようなハードウェアシステムに読み取り可能な記録媒体に記録されているとしてもよい。さらに、記録媒体を介して他のハードウェアシステムに読み出されて実行されるとしてもよい。そして、これらの記録媒体を介して他のハードウェアシステムに読み取られた設計データが、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。ここで、汎用のコンピュータシステムで読み取り可能な記録媒体として、光学記録媒体(例えば、CD−ROMなど。)、磁気記録媒体(例えば、ハードディスクなど。)、光磁気記録媒体(例えば、MOなど。)、半導体メモリ(例えば、メモリカードなど。)などがある。
または、設計データは、インターネット、ローカルエリアネットワークなどのようなネットワークに接続されているハードウェアシステムに保持されているとしてもよい。さらに、ネットワークを介して他のハードウェアシステムにダウンロードされて実行されるとしてもよい。そして、これらのネットワークを介して他のハードウェアシステムに取得された設計データが、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。ここで、ネットワークとして、地上放送網、衛星放送網、PLC(Power Line Communication)、移動電話網、有線通信網(例えば、IEEE802.3など。)、無線通信網(例えば、IEEE802.11など。)がある。
または、設計データは、通電時にFPGAに転送され得るように、シリアルROMに記録しておくとしてもよい。そして、シリアルROMに記録された設計データは、通電時に、直接、FPGAにダウンロードされるとしてもよい。
または、設計データは、通電時に、マイクロプロセッサによって生成されて、FPGAにダウンロードされるとしてもよい。
本発明は、複数のプロセッサによって共用されるキャッシュメモリを有するコンピュータシステムなどとして、利用することができる。
本発明に係わる実施の形態1におけるコンピュータシステムの構成を示す図 本発明に係わる実施の形態1におけるメモリアクセス要求・書き込みデータ選択部の構成を示す図 本発明に係わる実施の形態1における読み出しデータ選択部の構成を示す図 本発明に係わる実施の形態1における領域管理部の構成を示す図 本発明に係わる実施の形態1におけるウェイ管理テーブルのデータ構造を示す図 本発明に係わる実施の形態1におけるウェイ割付処理のフローチャートを示す図 本発明に係わる実施の形態2におけるコンピュータシステムの構成を示す図 本発明に係わる実施の形態2におけるウェイ管理テーブルのデータ構造を示す図 本発明に係わる実施の形態2におけるウェイ割付処理のフローチャートを示す図 本発明に係わる実施の形態3におけるコンピュータシステムの構成を示す図 本発明に係わる実施の形態3におけるウェイ管理テーブルのデータ構造を示す図 本発明に係わる実施の形態3におけるウェイ割付処理のフローチャートを示す図 本発明に係わる実施の形態4におけるコンピュータシステムの構成を示す図 本発明に係わる実施の形態4におけるタグ速度差調整部の構成を示す図 本発明に係わる実施の形態4におけるデータメモリ出力速度調整部の構成を示す図 本発明に係わる実施の形態4における動作波形を示すタイミングチャート 本発明に係わる実施の形態4における動作波形を示すタイミングチャート 本発明に係わる実施の形態5におけるコンピュータシステムの構成を示す図 本発明に係わる実施の形態5におけるタグ出力速度差調整部の構成を示す図 本発明に係わる実施の形態5におけるデータ出力速度調整部の構成を示す図 本発明に係わる実施の形態5における動作波形を示すタイミングチャート 本発明に係わる実施の形態6における携帯機器の構成を示す図
符号の説明
100〜500 コンピュータシステム
101,401,501 演算装置
102−1,102−2 プロセッサ
103 キャッシュメモリ
104 タグメモリ
105 データメモリ
106−1〜106−n メモリアクセス要求・書き込みデータ選択部
107−1,107−2 読み出しデータ選択部
108 領域管理部
109−1〜109−(2n−1) キャッシュヒット判定部
109−2〜109−2n キャッシュヒット判定部
110〜310 メインメモリ
111−1 メモリアクセス信号選択回路
112−1 書き込みデータ選択回路
113−1 読み出しデータ選択回路
114 ウェイ情報保持部
171 タスクA
172 タスクB
181,281,381 オペレーティングシステム
182,282,382 ウェイ割付プログラム
183,283,383 ウェイ管理テーブル
403 キャッシュメモリ
421 高速プロセッサ
422 低速プロセッサ
423−1〜423−n タグ速度差調整部
424 読み出しデータ速度差調整部
425−1〜425−n 遅延回路
426 遅延回路
503 キャッシュメモリ
521 高速プロセッサ
522 低速プロセッサ
523−1〜523−n タグ速度差調整部
524 読み出しデータ速度差調整部
525−1〜525−n 遅延回路
526 遅延回路
527−1〜527−n 選択回路
528 選択回路
631 携帯機器
633 音声出力制御装置
634 画像出力制御装置
635 データバス
636 音声出力装置
637 画像出力装置

Claims (14)

  1. 1チップに集積された演算装置であって、
    複数のタスクを並列で実行可能な複数のプロセッサと、
    前記複数のプロセッサで共用されるキャッシュメモリとを備え、
    前記キャッシュメモリは、複数のデータ記憶部と、複数の読み出しデータ選択部とを備え、
    前記複数のデータ記憶部の各々は、データ出力ポートが1ポートであり、
    前記複数の読み出しデータ選択部の各々は、前記複数のプロセッサの各々と一対一で対応付けられ、対応付けられたプロセッサに読み出されるデータを記憶しているデータ記憶部を、前記複数のデータ記憶部の中から選択する
    ことを特徴とする演算装置。
  2. 前記複数のデータ記憶部の各々は、メモリアクセス要求入力ポートとデータ入力ポートとのそれぞれが1ポートであり、
    前記キャッシュメモリは、複数のメモリアクセス要求選択部を備え、
    前記複数のメモリアクセス要求選択部の各々は、前記複数のデータ記憶部の各々と一対一で対応付けられ、対応付けられたデータ記憶部に対して割り付けられたタスクを実行しているプロセッサから出力されたメモリアクセス要求を、前記複数のプロセッサから個別に出力されたメモリアクセス要求の中から選択する
    ことを特徴とする請求項1に記載の演算装置。
  3. 前記複数のデータ記憶部の各々は、前記複数のデータ記憶部における1以上のデータ記憶部から各々が構成されている複数のデータ記憶領域のいずれか1つに分類されており、
    前記キャッシュメモリは、
    前記複数のデータ記憶領域における所定のデータ記憶領域に対して所定のタスクが割り付けられたことが示される割付情報を、前記所定のデータ記憶領域と対応付けて保持する割付情報保持部と、
    前記所定のタスクに対してリフィルが生じた場合は、リフィル可能なデータ記憶領域として、前記割付情報保持部で保持されている割付情報に基づいて、前記複数のデータ記憶領域の中から前記所定のデータ記憶領域を特定する特定部とを備える
    ことを特徴とする請求項1に記載の演算装置。
  4. 前記キャッシュメモリは、n(nは自然数である。)ウェイセットアソシエイティブ方式のキャッシュメモリであり、
    前記複数のデータ記憶部の各々は、前記nウェイの各々と一対一で対応付けられている
    ことを特徴とする請求項1に記載の演算装置。
  5. 請求項3に記載の演算装置と、
    割付プログラムを記憶している主記憶装置とを備え、
    前記割付プログラムを実行した前記演算装置は、前記所定のタスクが生成されたときに、前記複数のデータ記憶領域の中から、前記所定のタスクに対して前記所定のデータ記憶領域を割り付け、前記割付情報を前記所定のデータ記憶領域と対応付けて前記割付情報保持部に登録する
    ことを特徴とするコンピュータシステム。
  6. 前記割付プログラムを実行した前記演算装置は、前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のデータ記憶領域の中から、タスクごとに異なるデータ記憶領域を割り付け、タスクごとに異なる割付情報を、タスクごとに異なるデータ記憶領域と対応付けて前記割付情報保持部に登録する
    ことを特徴とする請求項5に記載のコンピュータシステム。
  7. 前記割付プログラムを実行した前記演算装置は、前記複数のプロセッサの各々と一対一で各々が対応付けられている複数のキャッシュ領域のいずれか1つに前記複数のデータ記憶領域の各々を分類して前記複数のデータ記憶領域の各々に対するタスクの割り付けを管理し、前記複数のプロセッサにおける所定のプロセッサで実行されるタスクについては、前記複数のキャッシュ領域において前記所定のプロセッサと対応付けられている所定のキャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行される複数のタスクが個別に識別される複数の割付情報を前記所定のキャッシュ領域と対応付けて前記割付情報保持部に登録する
    ことを特徴とする請求項5に記載のコンピュータシステム。
  8. 前記割付プログラムを実行した前記演算装置は、前記所定のキャッシュ領域を構成する複数のデータ記憶領域の各々を、1つのタスクだけに割り付け可能なデータ記憶領域から構成される第1の部分キャッシュ領域と、複数のタスクに割り付け可能なデータ記憶領域から構成される第2の部分キャッシュ領域とのいずれか1つに分類し、前記所定のプロセッサで実行されるタスクが所定の種類のタスクである場合は、前記第1の部分キャッシュ領域の中からデータ記憶領域を割り付け、前記所定のプロセッサで実行されるタスクが所定の種類のタスクでない場合は、前記第2の部分キャッシュ領域の中からデータ記憶領域を割り付ける
    ことを特徴とする請求項7に記載のコンピュータシステム。
  9. 前記複数のプロセッサは、第1の動作速度で動作する第1のプロセッサと、前記第1の動作速度よりも低速である第2の動作速度で動作する第2のプロセッサとを備え、
    前記複数の読み出しデータ選択部は、前記第1のプロセッサに対応する第1の読み出しデータ選択部と、前記第2のプロセッサに対応する第2の読み出しデータ選択部とを備え、
    前記キャッシュメモリは、前記第1のプロセッサの動作速度と前記第2のプロセッサの動作速度との速度差に合わせて、前記第2の読み出しデータ選択部から出力されたデータが前記第2のプロセッサに入力する時機を調整する速度差調整部を備える
    ことを特徴とする請求項1に記載の演算装置。
  10. 前記第1の動作速度は、前記第2の動作速度のk(kは自然数である。)倍であり、
    前記キャッシュメモリの動作クロックは、前記第1のプロセッサの動作クロックと同一であり、
    前記速度差調整部は、前記キャッシュメモリの動作クロックで換算して、前記第2の読み出しデータ選択部から出力されたデータが前記第2のプロセッサに入力する時機を、前記第1の読み出しデータ選択部から出力されたデータが前記第1のプロセッサに入力する時機に対して、k−1クロック遅延させる遅延回路を備える
    ことを特徴とする請求項9に記載の演算装置。
  11. 前記第2のプロセッサで実行可能な命令セットは、前記第1のプロセッサで実行可能な命令セットと同一である
    ことを特徴とする請求項9に記載の演算装置。
  12. 前記第1のプロセッサは、動作モードが第1のモードであるときは、前記第1の動作速度で動作し、動作モードが第2のモードであるときは、前記第2の動作速度で動作し、
    前記速度差調整部は、前記第1のモードであるときは、前記第2のプロセッサに入力する時機を調整し、前記第2のモードであるときは、前記第2のプロセッサに入力する時機を調整しない
    ことを特徴とする請求項9に記載の演算装置。
  13. 請求項1に記載の演算装置と、
    音声データをデコードする音声デコードプログラムと、画像データをデコードする画像デコードプログラムとを記憶している主記憶装置と、
    音声デコード結果に基づいて音声を出力する音声出力装置と、
    画像デコード結果に基づいて画像を出力する画像出力装置とを備え、
    前記複数のプロセッサのうち、前記画像デコードプログラムを実行したプロセッサは、画像データをデコードして得られた画像デコード結果を前記画像出力装置に出力し、
    前記複数のプロセッサのうち、前記音声デコードプログラムを実行したプロセッサは、音声データをデコードして得られた音声デコード結果を前記音声出力装置に出力する
    ことを特徴とする携帯機器。
  14. 複数のタスクを並列で実行可能な複数のプロセッサと、前記複数のプロセッサで共用されるキャッシュメモリとが1チップに集積された演算装置を制御する制御方法であって、
    所定のタスクが生成されたときに、前記キャッシュメモリにおける複数のデータ記憶領域の中から、前記所定のタスクに対して所定のデータ記憶領域を割り付ける割付ステップと、
    前記複数のプロセッサにおいて前記所定のタスクを実行している所定のプロセッサに読み出されるデータを記憶しているデータ記憶領域を、前記複数のデータ記憶領域の中から選択する選択ステップとを含む
    ことを特徴とする制御方法。
JP2007133208A 2006-09-11 2007-05-18 演算装置、コンピュータシステム、および携帯機器 Pending JP2008097572A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007133208A JP2008097572A (ja) 2006-09-11 2007-05-18 演算装置、コンピュータシステム、および携帯機器
US11/850,761 US8090921B2 (en) 2006-09-11 2007-09-06 Processing device, computer system, and mobile apparatus
CN2007101488008A CN101145133B (zh) 2006-09-11 2007-09-11 运算装置、计算机系统以及移动机器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006246000 2006-09-11
JP2007133208A JP2008097572A (ja) 2006-09-11 2007-05-18 演算装置、コンピュータシステム、および携帯機器

Publications (1)

Publication Number Publication Date
JP2008097572A true JP2008097572A (ja) 2008-04-24

Family

ID=39171142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007133208A Pending JP2008097572A (ja) 2006-09-11 2007-05-18 演算装置、コンピュータシステム、および携帯機器

Country Status (3)

Country Link
US (1) US8090921B2 (ja)
JP (1) JP2008097572A (ja)
CN (1) CN101145133B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022616A (ja) * 2010-07-16 2012-02-02 Panasonic Corp 共有メモリシステム及びその制御方法
JP2012177965A (ja) * 2011-02-25 2012-09-13 Shuichi Takada メモリ制御装置
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2015036873A (ja) * 2013-08-13 2015-02-23 富士通株式会社 キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2015036959A (ja) * 2013-08-16 2015-02-23 富士通株式会社 キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2015060376A (ja) * 2013-09-18 2015-03-30 富士通株式会社 キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2018160055A (ja) * 2017-03-22 2018-10-11 キヤノン株式会社 インターフェース装置およびその制御方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4607958B2 (ja) * 2006-01-20 2011-01-05 パナソニック株式会社 プロセッサおよびプログラム変換装置
JP4940033B2 (ja) * 2007-06-29 2012-05-30 パナソニック株式会社 計算機システム、計算機システムの制御方法および携帯電話機
JP2010244435A (ja) * 2009-04-08 2010-10-28 Panasonic Corp キャッシュ制御装置及びキャッシュ制御方法
GB2496396B (en) * 2011-11-09 2014-07-30 Imagination Tech Ltd Memory access for digital signal processing
US8972665B2 (en) * 2012-06-15 2015-03-03 International Business Machines Corporation Cache set selective power up
CN113537480B (zh) * 2016-12-30 2024-04-02 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
KR20220064665A (ko) * 2020-11-12 2022-05-19 삼성전자주식회사 인공지능 모델을 분산 처리하는 전자 장치 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH035849A (ja) * 1989-06-01 1991-01-11 Fujitsu Ltd 記憶装置アクセス選択方式
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP2002373115A (ja) * 2001-06-14 2002-12-26 Nec Corp 共有キャッシュメモリのリプレイスメント制御方法及びその装置
JP2004178571A (ja) * 2002-11-11 2004-06-24 Matsushita Electric Ind Co Ltd キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム
JP2006139401A (ja) * 2004-11-10 2006-06-01 Nec Corp マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
JPH01280860A (ja) 1988-05-06 1989-11-13 Hitachi Ltd マルチポートキヤツシユメモリを有するマルチプロセツサシステム
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
US6725336B2 (en) * 2001-04-20 2004-04-20 Sun Microsystems, Inc. Dynamically allocated cache memory for a multi-processor unit
US7206949B2 (en) * 2003-03-18 2007-04-17 Matsushita Electric Industrial Co., Ltd. System and method for controlling a clock oscillator and power supply voltage based on the energy consumed for processing a predetermined amount of data
CN1922879A (zh) * 2004-02-23 2007-02-28 松下电器产业株式会社 显示处理装置
EP1763748A1 (en) * 2004-05-27 2007-03-21 Koninklijke Philips Electronics N.V. Signal processing apparatus
JP4753549B2 (ja) * 2004-05-31 2011-08-24 パナソニック株式会社 キャッシュメモリおよびシステム
US8090920B2 (en) * 2004-07-06 2012-01-03 Panasonic Corporation Recording medium, and information processing device and information processing method for the recording medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH035849A (ja) * 1989-06-01 1991-01-11 Fujitsu Ltd 記憶装置アクセス選択方式
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP2002373115A (ja) * 2001-06-14 2002-12-26 Nec Corp 共有キャッシュメモリのリプレイスメント制御方法及びその装置
JP2004178571A (ja) * 2002-11-11 2004-06-24 Matsushita Electric Ind Co Ltd キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム
JP2006139401A (ja) * 2004-11-10 2006-06-01 Nec Corp マルチポートキャッシュメモリ及びマルチポートキャッシュメモリのアクセス制御方式

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2012022616A (ja) * 2010-07-16 2012-02-02 Panasonic Corp 共有メモリシステム及びその制御方法
JP2012177965A (ja) * 2011-02-25 2012-09-13 Shuichi Takada メモリ制御装置
JP2015036873A (ja) * 2013-08-13 2015-02-23 富士通株式会社 キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2015036959A (ja) * 2013-08-16 2015-02-23 富士通株式会社 キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2015060376A (ja) * 2013-09-18 2015-03-30 富士通株式会社 キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2018160055A (ja) * 2017-03-22 2018-10-11 キヤノン株式会社 インターフェース装置およびその制御方法

Also Published As

Publication number Publication date
US20080065833A1 (en) 2008-03-13
US8090921B2 (en) 2012-01-03
CN101145133A (zh) 2008-03-19
CN101145133B (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
JP2008097572A (ja) 演算装置、コンピュータシステム、および携帯機器
US9575901B2 (en) Programmable address-based write-through cache control
TWI551990B (zh) 由n個核共用的快取記憶體、用於由n個核共用的快取記憶體的方法及處理器
CN108984428B (zh) 多核片上系统中的缓存策略
US6260114B1 (en) Computer cache memory windowing
US8904154B2 (en) Execution migration
JP2020511706A (ja) 行バッファ競合を低減するための動的メモリの再マッピング
US20140143557A1 (en) Distributed chip level power system
CN1717664B (zh) 微处理器、高速缓存存储器子系统及计算机系统
US20120079200A1 (en) Unified streaming multiprocessor memory
US20040215893A1 (en) Method for use of ternary cam to implement software programmable cache policies
US20160321205A1 (en) Computing architecture with peripherals
CN108804348B (zh) 并行处理环境中的计算
US20100257316A1 (en) Virtual Barrier Synchronization Cache Castout Election
US20070266126A1 (en) Data processing system and method of data processing supporting ticket-based operation tracking
TW201435734A (zh) 條件阻擋以及急性阻擋的硬體排程之系統及方法
US8832671B1 (en) Conflict-free register allocation
JP2015532994A (ja) メッセージシグナル割込みの通信
EP3353663B1 (en) Providing memory management functionality using aggregated memory management units (mmus)
US9965395B2 (en) Memory attribute sharing between differing cache levels of multilevel cache
Schuchhardt et al. The impact of dynamic directories on multicore interconnects
US7809004B2 (en) Data processing system and processing unit having an address-based launch governor
CN109144722B (zh) 一种多应用高效共用fpga资源的管理系统及方法
US7181575B2 (en) Instruction cache using single-ported memories
US20120324167A1 (en) Multicore processor system and multicore processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130205