説明

情報処理システム、制御システム及び半導体装置

【課題】制御システムがメモリシステムのバンクグループにアクセスする際の効率を高めることが可能な情報処理システムを提供する。
【解決手段】本発明の情報処理システムは、例えば、メモリシステム20と、アクセス制御部15を含む制御システム13とを備えている。メモリシステム20は、記憶領域が複数のバンクにより構成され、この複数のバンクが複数のバンクグループにグループ化されている。アクセス制御部15は、複数のプロセシングエンジンによるアクセスの優先順位に対応し、バンクグループ毎にレイテンシを含むアクセス情報を第1のレジスタ15aに保持し、バスマスタ11aを介してプロセシングエンジンからのアクセス要求を受けたとき、第1のレジスタ15aを参照し、その内容に基づいてアクセス対象のバンクグループに対するアクセスをフレキシブルに制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、それぞれが情報を記憶する複数のバンクグループを有するメモリシステムと、複数のプロセシングエンジンからの前記メモリシステムへのアクセス要求を制御して、それぞれ対応する前記情報を処理する制御システムとを備える情報処理システムに関する。
【背景技術】
【0002】
従来から、情報処理システムとして、情報を処理するバスマスタのデータ転送を制御する制御装置と、情報を記憶するDRAM等のメモリ装置とをバスを介して接続し、バスマスタとメモリ装置との間でデータを送受信する形態が知られている。例えば、特許文献1には、複数のバスマスタのデータ転送を制御するシステムLSIと、複数のバンクを有するメモリとを備えたバスシステムが開示されている。特許文献1のバスシステムは、各バスマスタがメモリをアクセスする際、バスアクセスの順番を適切に制御してアクセス効率を高めるとともに、各バスマスタのアクセス要求の優先順位を考慮した制御を行い、優先順位の変更を可能としてメモリバスの占有を回避可能な構成が開示されている。また、特許文献2には、データ転送の優先順位の情報と格納先アドレスとを関連付けてメインメモリに記憶し、優先順位が最も高いデータを選択的に出力する構成が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−205313号公報
【特許文献2】特開2008−276638号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記従来のシステムにおいて、複数のバスマスタからのアクセス要求が連続的に行われる状況が想定される。例えば、特許文献1のバスシステムにおいて、優先順位の低い第1のバスマスタからのアクセス要求によりメモリセルを含むバンクからのリード動作を開始した直後に、第1のバスマスタより優先順位の高い第2のバスマスタからのアクセス要求がなされる場合もある。しかし、特許文献1のバスシステムは、バンク毎にデータ転送のレイテンシを設定することができないので、優先順位が低い第1のバスマスタのデータリードが終了するまで、優先順位が高い第2のバスマスタのデータリードが待たされる恐れがある。更に、特許文献1のバスシステムは、バンク毎にデータ転送のバースト長を設定することができないので、1回のアクセスで扱うデータサイズ(バーストデータビット長)が大きいバスマスタがアクセスを開始するとバスシステム全体のバス効率を高めることは困難である。さらに、特許文献2においても、バンク毎にレイテンシやバースト長を設定する構成については開示、示唆されておらず、特許文献1と同様の課題を有することは明らかである。
【課題を解決するための手段】
【0005】
本発明の情報処理システムの第1の側面は、情報を記憶し、それぞれが複数のバンクにより構成される複数のバンクグループを有するメモリシステムと、アクセス対象として前記複数のバンクグループにそれぞれ対応し、前記情報を処理する複数のプロセシングエンジンと、前記複数のプロセシングエンジンから前記メモリシステムに対するアクセスを制御するメモリ制御部と、を含む制御システムと、前記情報を、前記メモリシステム及び前記メモリ制御部の間で伝送するデータ線と、前記メモリ制御部に含まれ、前記複数のバンクグループにそれぞれ対応したコマンドの発行から前記データ線を基準としたデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報がストアされる第1のレジスタと、を備え、前記複数のレイテンシの値のそれぞれは、前記複数のプロセシングエンジンによるアクセスの優先順位に対応付けられ、前記メモリ制御部は、前記複数のプロセシングエンジンのそれぞれのアクセス要求に対応して、前記複数のレイテンシを含むアクセス情報を元に、前記複数のバンクグループの少なくとも2つのバンクグループへのコマンドの発行の順序を制御する、ことを特徴としている。
【0006】
本発明の情報処理システムの第2の側面は、情報を記憶し、それぞれが複数のバンクにより構成される複数のバンクグループを有するメモリ部と、アクセス対象として前記複数のバンクグループにそれぞれ対応し、前記情報を処理する複数のプロセシングエンジン部と、前記複数のプロセシングエンジン部から前記メモリ部に対するアクセスを制御するメモリ制御部と、前記情報を、前記メモリ部及び前記メモリ制御部の間で伝送するデータ線と、前記メモリ制御部に含まれ、前記複数のバンクグループにそれぞれ対応したコマンドの発行から前記データ線を基準としたデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報がストアされる第1のレジスタと、を備え、前記複数のレイテンシの値のそれぞれは、前記複数のプロセシングエンジン部によるアクセスの優先順位にそれぞれ対応付けられ、前記メモリ制御部は、前記複数のプロセシングエンジン部のそれぞれのアクセス要求に対応して、前記複数のレイテンシを含むアクセス情報を元に、前記複数のバンクグループの少なくとも2つのバンクグループへのコマンドの発行の順序を制御する、ことを特徴としている。
【0007】
本発明の半導体装置は、それぞれが複数のバンクにより構成される複数のバンクグループを含む記憶領域と、前記複数のバンクグループにそれぞれ対応し、外部から供給されるコマンドからデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報を設定する第2のレジスタと、アクセス対象の前記複数のバンクグループへのアクセスを、それぞれ対応する前記第2のレジスタにストアされた複数のレイテンシの情報を元に制御する制御回路とを備えることを特徴としている。
【発明の効果】
【0008】
本発明によれば、メモリシステムと制御システムとからなる情報処理システムにおいて、アクセスの優先順位の高低に応じたアクセス情報をバンクグループ毎に予め設定することができる。例えば、優先順位の高いプロセシングエンジンからアクセス要求を受けた後に、優先順位の低いプロセシングエンジンからアクセス要求を受けた状況においても、優先順位の高い側に対し小さいレイテンシを設定することで、対応するバンクグループのデータ転送を先行して実行することを可能とし、プロセシングエンジンの情報処理の効率を高めることができる。好ましくは、バンクグループ毎のアクセス情報として、データサイズ(バーストデータビット長)の大きさに適合するバースト長を含めて設定すれば、データサイズの大きいアクセス要求に必要なコマンド発行回数を減らすことでき、コマンドバス及びアドレスバスのバス効率の向上を図り、効率的なパイプライン制御を実行可能となる。
【図面の簡単な説明】
【0009】
【図1】本発明を適用した情報処理システムの概略の構成例を示すブロック図である。
【図2】図1の外部メモリ制御部の構成を示すブロック図である。
【図3】図1のDRAMの全体構成を示すブロック図である。
【図4】図3のDRAMにおけるバンクグループの構成例を示している。
【図5】DRAMへのアクセスに関連する設定方法に関し、バスマスタ毎のアクセスパターン及びアクセスパターンに対応するCL/BLレジスタの設定値の具体例を示す図である。
【図6】DRAMのモードレジスタの設定方法を説明する図である。
【図7】DRAMモードレジスタに対してCASレイテンシ及びバースト長を設定する際のアドレスフィールドの内容とCL/BL設定レジスタの設定値の具体例を示す図である。
【図8】システムLSIによるDRAMへのアクセス時のアクセスパターンの具体例を示す図である。
【発明を実施するための形態】
【0010】
まず、本発明の課題を解決する技術思想の代表的な例を挙げる。ただし、本願の請求対象は、この技術思想に限定されるものではなく、本願の特許請求の範囲に記載された内容にあることは言うまでもない。
【0011】
本発明の情報処理システムの一つの側面によれば、制御システムの複数のプロセシングエンジンは、それぞれ対応する複数のバンクグループに割り当てた記憶情報を読み書きする際に、メモリ制御部へアクセス要求を行う。メモリ制御部は、メモリ制御部が有し、複数のバンクグループにそれぞれ対応して複数のプロセシングエンジンのアクセスの優先順位に関連づけられた複数のレイテンシ情報がストアされた第1のレジスタを参照する。そして、第1のレジスタの情報に基づいて、バスマスタとすべきプロセシングエンジンを判別し、対応するバンクグループへのアクセスを順次制御してメモリシステムとの間でデータ転送を実行させる。よって、複数のプロセシングエンジンの要求に対応した複数のバンクグループへのアクセス制御に際し、それぞれのアクセス要求の順番に制約されることなく、アクセスの優先順位に応じた適切なアクセス順序に従ってメモリシステムを制御(アクセス)することができる。例えば、優先順位が低いアクセス要求の後に優先順位が高いアクセス要求を受けたとしても、後者のレイテンシが前者に比べて短く設定されていれば、後者に対応するバンクグループを先行してアクセスすることができる。従って、各プロセシングエンジンによるアクセス時のデータ転送に際し、情報処理の効率を高める視点から、優先順位が高いプロセシングエンジンにデータを迅速に提供することができる。
【0012】
本発明の技術思想の一例は、例えば、図1及び図2に示すように、メモリシステム20と制御システム10からなる情報処理システムに対して適用される。メモリシステム20は、情報を記憶する記憶領域が複数のバンクにより構成され、複数のバンクは複数のバンクグループにグループ化されている。制御システム10は、情報を処理する複数のプロセシングエンジン11(1)〜11(4)と、それぞれのプロセシングエンジン11(1)〜11(4)によるメモリシステム20へのアクセスを制御する外部メモリ制御部13とを含む。以下、外部メモリ制御部13を、単にメモリ制御部13と呼ぶことがある。メモリ制御部13は、アクセス制御部15及びDRAM制御部16を含む。アクセス制御部15は、調停ポリシーを有し、複数のプロセシングエンジン11(1)〜11(4)からの要求の度に、後述する複数のプロセシングエンジン11(1)〜11(4)毎に優先順位の情報が定義されたアクセス情報を参照して、メモリシステム20へのアクセスの順序を調整(計算)して決定する。複数のプロセシングエンジン11(1)〜11(4)は、それぞれ複数のバンクグループに対応付けられる。メモリシステム20は、複数のバンクグループが共有するデータポート18を有する。データポート18は、データ線17を介して制御システム10とデータを通信する。DRAM制御部16は、アクセス制御部15からのアクセス制御信号に従って、実際にメモリシステム20へのコマンド、アドレス、データ、等を送受信する。このような構成の情報処理システムにおいて、メモリ制御部13には第1のレジスタ(15a)が設けられる。第1のレジスタ(15a)には、アクセス情報として、複数のレイテンシ情報及び複数のバースト長情報が格納される。複数のレイテンシ情報及び複数のバースト長情報は、それぞれ対応する複数のバンクグループに対応する情報であり、複数のプロセシングエンジン11(1)〜11(4)にそれぞれ対応する情報でもある。レイテンシ情報は、DRAM制御部16及びメモリシステム20の間の遅延に相当する。例えば、DRAM制御部16が発行するコマンドと、対応するデータとを、DRAM制御部16が発行するクロック(同期信号)の数を基準に定義される情報である。バースト長情報は、コマンドに対応するアクセス単位としてのデータのビット長(以降、バースト長と呼ぶことがある)を、定義する情報である。第1のレジスタ(15a)に保持されるアクセス情報は、各プロセシングエンジン11(1)〜11(4)のアクセスの優先順位に対応付けられている。メモリ制御部13は、バスマスタとなるプロセシングエンジン11からアクセス要求を受けたとき、アクセス対象のバンクグループに対するアクセスを第1のレジスタ(15a)の内容に基づいて制御する。この調停ポリシーの一例として、アクセスの優先順位が低いプロセシングエンジン11(4)のアクセス要求を受けた後に、アクセスの優先順位が高いプロセシングエンジン11(1)のアクセス要求を受けた状況において、前者のレイテンシに比べて後者のレイテンシを短く設定しておくことにより、優先順位が高いアクセスを先行して実行することができる。言い換えると、メモリ制御部13は、優先順位が低いアクセス要求に対応する第1のコマンド発行を、優先順位が高いアクセス要求に対応する第2のコマンド発行よりも先行して行う。他方、メモリシステム20は、レイテンシの違いによって、第2のコマンドに対応する第2のデータを、第1のコマンドに対応する第1のデータよりも先行して、データポート18及びデータ線17を介してメモリ制御部13へ供給する。つまり、第2のデータは第1のデータを、時間軸を基準に「追い越している」と言える。第2のコマンドのレイテンシの値が、第1のコマンドのレイテンシの値よりも小さいからである。バスマスタ11aは、随時複数のプロセシングエンジン11(1)〜11(4)からのアクセス要求を、アクセス制御部15へ伝えるとともに、アクセス制御部15は第1及び第2のコマンドの順序に対応したアクセス許可(システムバスSBが含むアドレス線等の占有権)をバスマスタ11aへ知らせる。複数のプロセシングエンジン11(1)〜11(4)は、第1及び第2のコマンドの順序に対応したアクセスに関連するアドレス情報等を、システムバスSBを介してDRAM制御部16へそれぞれ供給する。バスマスタ11aは、第1及び第2のデータの順序に対応したアクセス許可(システムバスSBを含むデータ線の占有権)をバスマスタ11aへ知らせる。なお、メモリ制御部13は、前述した「追い越し」ができるか否かを、バスマスタ11aからの要求の度に、第1のレジスタ(15a)を参照して、計算している。なお、図2におけるバスマスタ11aは、図1における複数のプロセシングエンジン11(1)〜11(4)にそれぞれ論理的に対応付けされる。
【0013】
以下、各図面に沿って詳細に説明する。
【0014】
図1は、本発明を適用した情報処理システムの概略の構成例を示すブロック図である。図1の情報処理システムは、情報処理システム全体の動作を制御する制御システムであるシステムLSI10と、情報処理システムで用いるデータを記憶するメモリシステムであるDRAM20とを備えている。システムLSI10は、4個のプロセシングエンジン11と、I/O部12と、外部メモリ制御部13と、オンチップメモリ14とを含んで構成されるとともに、これらの構成要素の間のデータを伝送するシステムバスSBが設けられている。また、外部メモリ制御部13とDRAM20との間は、クロック、コマンド、アドレス、データをそれぞれのバス線を介して伝送可能に構成されている。なお、バス線を、単にバスと呼ぶことがある。このうち、クロック、コマンド、アドレスは外部メモリ制御部13からDRAM20に向けて送信されるが、データは外部メモリ制御部13とDRAM20との間で双方向に送受信される。
【0015】
図1の例においては、4個のプロセシングエンジン11として、MPU11(1)と、映像処理エンジン11(2)と、音声処理エンジン11(3)と、通信制御エンジン11(4)が搭載されている。これらのプロセシングエンジン11は、DRAM20にアクセスする際のバスマスタとして機能する。システムLSI10は、MPU11(1)の制御の下、映像処理エンジン11(2)が画像データを処理し、音声処理エンジン11(3)が音声データを処理し、これらのデータを通信制御エンジン11(4)が外部と通信するマルチメディアLSIとして機能する。また、I/O部12は、システムLSI10のI/O動作を制御し、オンチップメモリ14は、主にMPU11(1)の制御に必要なデータを保持する。
【0016】
なお、図1では、制御システムが1つのシステムLSI10によって構成される例を示しているが、これに限られず、複数のチップにより制御システムを構成してもよい。例えば、システムLSI10はI/O部12、外部メモリ制御部13、オンチップメモリ14のみを含めて構成し、それぞれのプロセシングエンジン11を別々のチップに構成し、その全体が制御システムとして機能するようにしてもよい。また、図1では、メモリシステムがDRAM20としての1つのDRAMチップC1(図4参照)によって構成される例を示しているが、1つのDRAMチップに限らず複数のDRAMチップを用いてメモリシステムを構成してもよい。この場合にはバンクグループを個々のDRAMチップ内に構成してもよいし、異なるチップでバンクグループを構成してもよい。更に、システムLSI10が、メモリシステム20を含んでいてもよい。
【0017】
図2は、図1の外部メモリ制御部13の構成を示すブロック図である。図2に示すように、外部メモリ制御部13は、アクセス制御部15とDRAM制御部16とを含んで構成される。アクセス制御部15は、プロセシングエンジン11であるバスマスタ11aによるDRAM20に対するアクセス要求を調停し、調停ポリシーに従ってバスマスタ11aにアクセス許可を送出する。アクセス許可を受け取ったバスマスタ11aに対しては、システムバスSB及びDRAM20との間のバス線を用いるバス権が付与される。言い換えれば、アクセス制御部15は、第1のレジスタ(15a)に格納されているアクセス情報(複数のレイテンシ情報及び複数のバースト長情報)を元に、各プロセシングエンジン11(1)〜11(4)からのアクセス要求を調停する。
【0018】
アクセス制御部15には、DRAM20に対するCASレイテンシCLとバースト長BLを設定するCL/BLレジスタ15a(本発明の第1のレジスタ)が含まれる。後述するように本実施形態のDRAM20は、4個のバンクからなる4個のバンクグループ(計16個のバンク)から構成されるので、CL/BLレジスタ15aには、4個のバンクグループにそれぞれ対応する4個のCASレイテンシCL及び4個のバースト長BLを含むアクセス情報が個別に設定される。なお、バンクとは、互いに非排他制御の関係にあるメモリ領域を示す。言い換えれば、例えば、2つのバンクがそれぞれ対応する外部からのアクセス要求に対応してアクティブ状態になることが可能である。MPU11(1)は、バスマスタ11a毎にアクセス対象であるバンクグループとアクセス時のアクセスパターンに最適なCASレイテンシCL及びバースト長BLを決定し、それをCL/BLレジスタ15aに対して最初に設定する。続いてアクセス制御部15はその制御対象であるDRAM20に対して、後述するようにモードレジスタを用いてバンクグループ毎にCASレイテンシCL及びバースト長BLの値を設定する。その決定及び設定は、システムのコールドスタート、ハードウェアリセット、ソフトウェアリセット、パワーダウン等において、適宜実施される。前述したように、アクセス制御部15は、バスマスタ11aからの優先順位が付けられたそれぞれの要求に対して、その都度、「追い越し」ができるか否かを計算し、アクセス許可を出す。そして、アクセス制御部15は、上述のアクセス許可を送出したバスマスタ11aに対応するCASレイテンシCL及びバースト長BLとアクセス対象のバンクグループアドレスを、アクセス制御信号としてDRAM制御部16に送出する。
【0019】
DRAM制御部16は、バスマスタ11aからのアクセス要求に対応してDRAM20のアクセス仕様に沿った制御を実行する。すなわち、DRAM制御部16は、アクセス制御部15から受け取ったアクセス制御信号と、システムバスSBを介して受け取ったバンクアドレス、等とを参照し、DRAM20の制御に必要なクロック、コマンド、アドレスを送出するとともに、DRAM20との間でバス線を介してデータを送受信する。バスマスタ11aのアクセス要求がライト動作(DRAM20にデータを書き込む)である場合は、所定のレイテンシが経過した後にバスマスタ11aの書き込みデータをDRAM20に送出する。また、バスマスタ11aのアクセス要求がリード動作(DRAM20からデータを読み出す)である場合は、所定のレイテンシが経過した後に読み出しデータをDRAM20から受け取ってバスマスタ11aに転送する。
【0020】
図3は、図1のDRAM20の全体構成を示すブロック図である。本実施形態では、例えば、外部クロックの立ち上がり及び立ち下がりの両方に同期してデータ転送を行うダブルデータレート(DDR)型のDRAM20を想定する。図3に示すように、DRAM20は、記憶領域である4個のバンクグループBG(それぞれ、バンクグループBG(0)〜BG(3)と表記する)を備えている。また、各々のバンクグループBGに付随するロウ系回路として、ロウデコーダ21及びアレイ制御回路22が設けられるとともに、各々のバンクグループBGに付随するカラム系回路として、センスアンプ列23、カラムデコーダ24、CL/BL制御回路25が設けられる。さらに、DRAM20は、クロック発生回路30と、ロウアドレスバッファ31と、カラムアドレスバッファ32と、モードレジスタ33と、コマンドデコーダ34と、チップ制御回路35と、入出力制御回路36と、データ入出力バッファ37を備えている。
【0021】
図3において、DRAM制御部16から供給されるアドレスには、バンクグループアドレスと、バンクアドレスと、ロウアドレス及びカラムアドレスが含まれる。このうち、バンクグループアドレス、バンクアドレス、ロウアドレスはロウアドレスバッファ31に保持されてロウデコーダ21に送られる。ここで前述したようにメモリシステムが複数のDRAMチップで構成され、かつバンクグループBGを異なるDRAMチップで構成する際には、バンクグループアドレスはチップ選択信号/CSとして供給されてもよい。また、カラムアドレスはカラムアドレスバッファ32に保持されてカラムデコーダ24に送られる。アレイ制御回路22による制御の下、ロウデコーダ21により選択されたワード線とカラムデコーダ24により選択されたビット線とに対応するメモリセルに対するアクセスが行われる。入出力制御回路36は、センスアンプ列23とデータ入出力バッファ37との間のデータ転送を制御し、データ入出力バッファ37に保持されるデータがDQ端子群を経由してDRAM制御部16との間で入出力される。この入出力制御回路36は、バースト長BLの最大値を保持可能なFIFOにより構成されるラッチ回路を含んでいてもよい。また、CL/BL制御回路24は、カラム系回路によるデータ転送時に、CASレイテンシCL及びバースト長BLに適合する動作を制御する。
【0022】
クロック発生回路30は、DRAM制御部16から供給される相補の外部クロックCK、/CK及びクロックイネーブル信号CKEを受け、クロックイネーブル信号CKEがハイレベルに制御されたときにクロックCK、/CKに基づいて内部クロックを発生する。図3に示すように、クロック発生回路30から出力される内部クロックは、DRAM20の各部に供給される。コマンドデコーダ34は、DRAM制御部16から供給されるコマンドであるチップ選択信号/CS及び制御信号/RAS、/CAS、/WEに基づいてDARM10に対するコマンドを判別する。コマンドデコーダ34により判別されたコマンドは、チップ制御回路35に送出される。チップ制御回路35は、コマンドデコーダ34から受け取ったコマンドの種別に応じてDRAM20の各部の動作を制御する。チップ制御回路35による動作制御は、クロック発生回路30が発生する内部クロックに連動して行われる。
【0023】
モードレジスタ33は、上記コマンドのうちモードレジスタ設定コマンドが入力されたとき、上記アドレスに基づきDRAM20の動作モードを選択的に設定し、その設定情報をチップ制御回路35に送出する。モードレジスタ33は、設定情報を保持するレジスタ群を備えている。モードレジスタ33のレジスタ群には、バンクグループBG毎のCASレイテンシCL及びバースト長BLを設定するCL/BL設定レジスタ(本発明の第2のレジスタ)が含まれ、CL/BL設定レジスタに保持される設定情報が上述のCL/BL制御回路25に送られるが、詳しくは後述する。
【0024】
図4は、図3のDRAM20におけるバンクグループBGの構成例を示している。図3のDRAM20が構成されるDRAMチップC1は、同サイズの矩形の4個のバンクグループBG(バンクグループBG(0)〜BG(3))を含む。また、各々のバンクグループBGは、同サイズの矩形の4個のバンクを含む。すなわち、DRAMチップC1の全体は、4個のバンクグループBGにグループ化された16個のバンク(16進表示でバンク0〜Fと表す)を含み、バンク0〜3がバンクグループBG(0)を構成し、バンク4〜7がバンクグループBG(1)を構成し、バンク8〜BがバンクグループBG(2)を構成し、バンクC〜FがバンクグループBG(3)を構成する。16個のバンク0〜Fの各々は、複数のワード線と複数のビット線の各交点に形成された複数のメモリセルを備えている。そして、バンクグループアドレス及びバンクアドレスにより、任意のバンクグループBG内の任意のバンクを選択し、ロウアドレス及びカラムアドレスにより選択バンク内の任意のメモリセルを選択することができる。
【0025】
なお、図4の例では、4個のバンクグループBGを1つのDRAMチップC1に割り当てて構成しているが、前述したように異なるバンクグループBGを別々のDRAMチップC1に割り当てて構成してもよい。この場合、異なるDRAMチップC1に割り当てられたバンクグループBGを選択するために、バンクグループアドレスの代わりに、それぞれのDRAMチップC1に固有のチップ選択信号/CSを用いてもよい。また、モードレジスタ33のCL/BL設定レジスタは、DRAMチップC1毎に1つ設ければよい。このような構成を採用したとき、図1のシステムLSI10は、複数のバンクグループBGに対応する所定数のDRAMチップC1を1つのメモリシステム(DRAM20)として制御する。
【0026】
次に、バスマスタ11aによるDRAM20へのアクセスに関連する設定方法に関し、図5〜図8を参照して説明する。まず、図5は、バスマスタ11a毎のアクセスパターンと、アクセスパターンに対応するCL/BLレジスタ15aの設定値との具体例を示している。図5に示すアクセスパターンは、4個のプロセシングエンジン11(図1)がバスマスタ11aとなる場合において、それぞれのアクセスの優先順位とデータサイズを含む。また、アクセスパターンに対応するバンクグループBG毎のレジスタ設定値は、アクセス対象のバンクグループBG(0〜3の番号)と、アクセス時に設定されるCASレイテンシCL及びバースト長BLを含む。なお、図5においては、DRAM20のデータバス幅が8バイトであることを想定し、データサイズは8バイトの所定数倍の関係にある。
【0027】
具体的には、MPU11(1)、映像処理エンジン11(2)、音声処理エンジン11(3)、通信制御エンジン11(4)がそれぞれバスマスタ11aとなる場合において、この順にバンクグループBG(0)、BG(1)、BG(2)、BG(3)にそれぞれ割り当てられる。このとき、MPU11(1)及び映像処理エンジン11(2)はアクセス優先順位がそれぞれ「高」に設定され、音声処理エンジン11(3)はアクセス優先順位が「中」に設定され、通信制御エンジン11(4)はアクセス優先順位が「低」に設定される。また、それぞれのアクセス優先順位に対応するCASレイテンシCLについては、MPU11(1)はCL=4に設定され、映像処理エンジン11(2)はCL=4に設定され、音声処理エンジン11(3)はCL=8に設定され、通信制御エンジン11(4)はCL=12に設定される。このように、アクセス優先順位が高いほど、CASレイテンシCLが小さく設定されていることがわかる。
【0028】
また、アクセスパターンのデータサイズは、1回のメモリアクセスで取り扱うデータのサイズである。具体的には、MPU11(1)のデータサイズは32バイトに設定され、映像処理エンジン11(2)のデータサイズは64バイトに設定され、音声処理エンジン11(3)のデータサイズは32バイトに設定され、通信制御エンジン11(4)のデータサイズは128バイトに設定される。また、それぞれのデータサイズに対応するバースト長BLについては、MPU11(1)はBL=4に設定され、映像処理エンジン11(2)はBL=8に設定され、音声処理エンジン11(3)はBL=4に設定され、通信制御エンジン11(4)はBL=16に設定される。このように、図5では、データサイズがバースト長BLの8倍に設定される例を示しているが、かかる例に制約されることなくデータサイズとバースト長BLの関係を設定してもよい。
【0029】
なお、バスマスタ11aは、図5で設定されているアクセス対象のバンクグループBGを主にアクセスするが、他のバンクグループBGをアクセスする状況も想定される。この場合、バスマスタ11aは、アクセス対象のバンクグループBGに対応して設定されたCASレイテンシCL及びバースト長BLを用いることになる。ただし、かかるアクセスが頻繁に生じると、メモリシステムLSI10全体の性能低下を招く恐れがある。よって、本実施形態では、システムLSI10内のオンチップメモリ14を用いて、4個のプロセシングエンジン11が相互間のデータをやり取りするようにし、上述のアクセスの頻度を減らすことでシステムLSI10全体の性能低下を抑制することができる。
【0030】
図6は、DRAM20のモードレジスタ33の設定方法を説明する図である。最上部にはクロックCK、/CKの周期に連動して、1〜16の範囲内で順次更新されるクロックサイクルTを示している。そして、T=2のタイミングで、クロックイネーブル信号CKEがハイレベルを保持した状態で、チップ選択信号/CS及び制御信号/RAS、/CAS、/WEがいずれもローレベルとなる。これにより、コマンドデコーダ34にはモードレジスタ設定コマンドが入力される。このとき、T=2のタイミングでアドレスが有効となり、アドレスフィールドの状態に従って、モードレジスタ33に情報が設定される。その後、T=3のタイミングで、チップ選択信号/CSがローレベル、かつ制御信号/RAS、/CAS、/WEがそれぞれハイレベルとなる。これにより、コマンドデコーダ34にはNOPコマンドが入力される。これ以降、T=3からT=13までの期間中、NOPコマンドが保持され、この期間においてモードレジスタ33の値の更新が完了する。そして、T=14のタイミングで、制御信号/RASがローレベルに変化し、一般のコマンドを入力可能なアクティブ状態に移行する。
【0031】
図7は、モードレジスタ33に対してCASレイテンシCL及びバースト長BLを設定する際、アドレスフィールドの内容とCL/BL設定レジスタの設定値の具体例を示している。アドレスフィールドは全部で20ビットから構成され、図7(A)に示すように、バンググループBGを指定する2ビットBG1、BG0と、バンクグループBG内のバンクを指定する2ビットBA1、BA0と、バンク内のアドレスを指定するビットA15〜A0を含む。図6のモードレジスタ設定コマンドの入力時におけるアドレスフィールドは、例えば3ビットBA1、BA0、A15の値がいずれも1であるときに、CL/BL設定モードとして判別される。この場合、2ビットBG1、BG0の値により指定されるバンクグループBGに対応するCL/BL設定レジスタに対し、アドレスフィールドの下位6ビットA5〜A0の値が設定される。具体的には、CL/BL設定レジスタのCASレイテンシCLとして4ビットA5〜A2の値が設定され、CL/BL設定レジスタのバースト長BLとして2ビットA1、A0の値が設定される。
【0032】
図7(B)には、アドレスフィールドのビットA5〜A2とCASレイテンシCLのレジスタ値の関係と、アドレスフィールドのビットA1、A0とバースト長BLのレジスタ値の関係をそれぞれ示している。図7(B)の例では、ビットA5〜A2の16パターンのうちの9パターンに対し、CASレイテンシCLの4〜12の範囲内のレジスタ値が割り当てられ、ビットA1、A0の4パターンのうちの3パターンに対し、バースト長BLの4、8、16のレジスタ値が割り当てられている。アドレスフィールドの他のパターンについては未使用(予備)である。なお、4個のバンクグループBLに対応する4個のCL/BL設定レジスタの値を設定するときは、アドレスフィールドの上位2ビットBG1、BG0の値を変更しながら、モードレジスタ33の設定サイクルを4回繰り返せばよい。
【0033】
図8は、システムLSI10によるDRAM20へのアクセス時のアクセスパターンの具体例を示している。図8において、左端に示すクロックサイクルT及びクロックCK、/CKの意味は図6と同様である。また、i=0、1、2、3に関して左端に示す4つの入力C/A(i)は、バンクグループBG(i)に対するコマンド及びアドレスの入力を意味する。また、同様にi=0、1、2、3に関して左端に示す4つの入出力DQ(i)はバンクグループBG(i)に対するデータの入出力を意味する。それぞれの入力C/A(i)には、外部メモリ制御部13から所定のタイミングで発行されるコマンドが示される。具体的なコマンドとしては、アクセス対象のバンクを活性化するバンクアクティブコマンドAと、データを読み出すリードコマンドRと、データを読み出した後にビット線を自動的にプリチャージするリードプリチャージコマンドRPと、バンクをプリチャージするバンクプリチャージコマンドPが含まれる。これらのコマンドは、同時入力されるアドレスに従って実行される。
【0034】
なお、図8においては、全てのバンクグループBGに対してコマンドバス、アドレスバス、データバスが共用されるため、2個以上のコマンド、アドレス、データが同じタイミングで重ならないように制御される。また、図8の例では、コマンドとアドレスの最小の入力間隔は、同一のバンクグループBGに対してはクロックサイクルTの4周期分であり、異なるバンクグループBGに対してはクロックサイクルTの2周期分である。
【0035】
図8において、例えば、MPU11(1)によりアクセスされるバンクグループBG(0)に着目すると、T=1のタイミングで発行されるバンクアクティブコマンドAによりアドレスを指定されたバンクの1ページ(1本のワード線に対応するデータ)が活性化される。その後、T=5のタイミングで発行されるリードコマンドRにより、活性化されたページ内の指定アドレスを先頭にしたデータの読み出しが指示される。このとき、バンクグループBG(0)は、図5に示すように、CL=4、BL=4に設定されているので、T=5から4周期が経過したT=9のタイミングから、バースト長BLが4ビットのバーストリード動作が開示される。なお、本実施形態では上述したようにDDR型のDRAM20を想定しているので、クロックサイクルTの1周期内に2ビットのデータがバーストモードで入出力される。これ以降、リードコマンドR、プリチャージコマンドP、バンクアクティブコマンドA等の一連のコマンドが所定のクロックサイクルTのタイミングで実行される。
【0036】
また、他のバンクグループBG(1)〜BG(3)に関しても、上述の流れに従って、順次コマンドが実行されていく。ここで、例えば、音声処理エンジン11(3)によりアクセスされるバンクグループBG(2)に着目すると、図5に示すように、アクセス優先順位がMPU11(1)より低い「中」に設定され、CASレイテンシCLはMPU11(1)の2倍のCL=8に設定されている。そのため、T=3のタイミングでリードコマンドRが発行されるが、その後のリードコマンドRに対応するバンクグループBG(0)の読み出しが先に実行され、その後にバンクグループBG(2)の読み出しが実行されることがわかる。つまり、本実施形態の制御により、コマンドの発行タイミングに関わらず、相対的にアクセスの優先順位が高いバンクグループBGに対する動作を先行して行うことができるため、プロセシングエンジン11の情報処理の効率を向上させる効果が得られる。また、本実施形態の制御では、バースト長BLをバンクグループBG毎に設定可能であるため、全てのバンクグループBGを同じバースト長BL(例えば、BL=4)でアクセスする場合と比べると、コマンド及びアドレスを発行する回数を大幅に減らすことができる。これにより、コマンド/アドレスを発行する回数が多くなる場合でも、複数のバンクグループBGにおいて効率的なパイプライン制御を行うことが可能となる。
【0037】
なお、本実施形態では、DRAM20に対するリード動作を前提として説明したが、DRAM20に対するライト動作に関しても本発明の適用が可能である。この場合のライト動作には、図2のアクセス制御部15のCL/BLレジスタ15aに設定されるCASレイテンシCLの値をライト動作に共用してもよいが、これとは別にバンクグループBG毎のCASライトレイテンシCWLを設定する別のレジスタを設けてもよい。そして、バスマスタ11aとなるプロセシングエンジン11のライト要求を受け、DRAM20にライトコマンドを発行し、対応するバンクグループBG内の所定のバンクに対しデータを書き込むことができる。
【0038】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能である。例えば、本実施形態のメモリシステムとして、揮発性のメモリセルにより構成されるDRAM20を示したが、本発明は、不揮発性のメモリセルにより構成されるメモリシステムや、揮発性と不揮発性のメモリセルの両方により構成されるメモリシステムに対しても適用可能である。この場合、複数のプロセシングエンジン11にそれぞれ対応する複数のバンクグループBG毎に、揮発性と不揮発性のメモリセルをフレキシブルに選択することができる。例えば、第1のメモリチップには、揮発性のメモリセルからなる第1のバンクグループを構成し、第2のメモリチップには、不揮発性メモリセルからなる第2のバンクグループを構成し、第1及び第2のメモリチップと制御システムとの間を、TSV(Through Silicon Via)を介して接続する構造を採用してもよい。
【0039】
また、本実施形態に示した複数のプロセシングエンジン11は、上記の例に限られず、多様なアプリケーションのエンジンに適用することができる。この場合、例えば、CPU(Central Processing Unit)、MCU(Micro Control Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、ASSP(Application Specific Standard Product)等をプロセシングエンジン11として用いる場合であっても本発明を適用可能である。また、本発明を適用可能な半導体装置の製品形態としては、例えば、SOC(System on Chip)、MCP(Multi Chip Package)、POP(Package on Package)など、多様なパッケージ形態を挙げることができる。このうち、MCPにおいては、制御システムとして機能するチップと記憶領域を有するメモリチップとをTSVを介して接続する構造を有していてもよい。また、複数のプロセシングエンジン11を含むチップと制御システムとして機能するチップとをTSVを介して接続する構造としてもよい。更に、SOCにおいては、複数のプロセシングエンジンと制御チップとを1チップ上に構成してもよい。このような任意の製品形態あるいはパッケージ形態を含むシステムに対し、広く本発明を適用することができる。
【0040】
また、本発明の情報処理システムに含まれるトランジスタとしては、電界効果トランジスタ(Field Effect Transistor: FET)を用いることができ、MOS(Metal Oxide Semiconductor)以外にもMIS(Metal-Insulator Semiconductor)等の様々なFETを用いることができる。また、システム内に一部のバイポーラ型トランジスタを有してもよい。
【0041】
本発明の適用対象には、種々の開示要素の多様な組み合わせ又は選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想に従って当業者であればなし得るであろう各種変形、修正を含むことは言うまでもない。
【符号の説明】
【0042】
10…システムLSI
11…プロセシングエンジン
11(1)…MPU
11(2)…映像処理エンジン
11(3)…音声処理エンジン
11(4)…通信制御エンジン
11a…バスマスタ
12…I/O部
13…外部メモリ制御部
14…オンチップメモリ
15…アクセス制御部
15a…CL/BLレジスタ
16…DRAM制御部
17…データ線
18…データポート
20…DRAM
21…ロウデコーダ
22…アレイ制御回路
23…センスアンプ列
24…カラムデコーダ
25…CL/BL制御回路
30…クロック発生回路
31…ロウアドレスバッファ
32…カラムアドレスバッファ
33…モードレジスタ
34…コマンドデコーダ
35…チップ制御回路
36…入出力制御回路
37…データ入出力バッファ
BG…バンクグループ
BL…バースト長
C1…DRAMチップ
CL…CASレイテンシ
SB…システムバス

【特許請求の範囲】
【請求項1】
情報を記憶し、それぞれが複数のバンクにより構成される複数のバンクグループを有するメモリシステムと、
アクセス対象として前記複数のバンクグループにそれぞれ対応し、前記情報を処理する複数のプロセシングエンジンと、前記複数のプロセシングエンジンから前記メモリシステムに対するアクセスを制御するメモリ制御部と、を含む制御システムと、
前記情報を、前記メモリシステム及び前記メモリ制御部の間で伝送するデータ線と、
前記メモリ制御部に含まれ、前記複数のバンクグループにそれぞれ対応したコマンドの発行から前記データ線を基準としたデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報がストアされる第1のレジスタと、を備え、
前記複数のレイテンシの値のそれぞれは、前記複数のプロセシングエンジンによるアクセスの優先順位に対応付けられ、
前記メモリ制御部は、前記複数のプロセシングエンジンのそれぞれのアクセス要求に対応して、前記複数のレイテンシを含むアクセス情報を元に、前記複数のバンクグループの少なくとも2つのバンクグループへのコマンドの発行の順序を制御する、ことを特徴とする情報処理システム。
【請求項2】
前記アクセス情報は、更に、前記複数のバンクグループにそれぞれ対応し、1回のアクセス単位毎にデータを構成する複数のビットを時系列に転送する数を示すバースト長を含む、ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記複数のレイテンシの値のそれぞれは、前記複数のプロセシングエンジンの前記優先順位が高いほど、小さい値に設定される、ことを特徴とする請求項1に記載の情報処理システム。
【請求項4】
前記データ線は、前記複数のバンクグループのそれぞれの前記情報を伝送する、ことを特徴とする請求項1に記載の情報処理システム。
【請求項5】
前記メモリシステムは、更に、
前記複数のバンクグループにそれぞれ対応したコマンドの発行からデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報がストアされる第2のレジスタと、
アクセス対象の前記複数のバンクグループへのアクセスを、それぞれ対応する前記第2のレジスタにストアされた複数のレイテンシの情報を元に制御する制御回路と、
を備えることを特徴とする請求項1に記載の情報処理システム。
【請求項6】
前記メモリ制御部は、前記第1のレジスタが有するアクセス情報と同じアクセス情報を、前記第2のレジスタに設定する設定コマンドを発行する、ことを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記メモリ制御部は、
前記複数のプロセシングエンジンのそれぞれのアクセス要求を調停し、バスマスタとなるプロセシングエンジンにアクセス許可を送出し、そのプロセシングエンジンから前記メモリ制御部を経由して前記メモリシステムに至るバス占有権をそのバスマスタに付与する、ことを特徴とする請求項1に記載の情報処理システム。
【請求項8】
前記コマンドは、前記メモリシステムからデータを読み出すリードコマンドである、ことを特徴とする請求項7に記載の情報処理システム。
【請求項9】
前記コマンドは、前記メモリシステムにデータを書き込むライトコマンドである、ことを特徴とする請求項7に記載の情報処理システム。
【請求項10】
前記メモリ制御部は、前記コマンドに先立って、アクセス対象のバンクを活性化するバンクアクティブコマンドを発行する、ことを特徴とする請求項8又は9に記載の情報処理システム。
【請求項11】
前記複数のプロセシングエンジンのうちの少なくとも1つのプロセシングエンジンと前記メモリ制御部は、1つのチップ内に構成される、ことを特徴とする請求項1に記載の情報処理システム。
【請求項12】
前記メモリシステムは、1又は複数のチップにより構成される、ことを特徴とする請求項1に記載の情報処理システム。
【請求項13】
情報を記憶し、それぞれが複数のバンクにより構成される複数のバンクグループを有するメモリ部と、
アクセス対象として前記複数のバンクグループにそれぞれ対応し、前記情報を処理する複数のプロセシングエンジン部と、
前記複数のプロセシングエンジン部から前記メモリ部に対するアクセスを制御するメモリ制御部と、
前記情報を、前記メモリ部及び前記メモリ制御部の間で伝送するデータ線と、
前記メモリ制御部に含まれ、前記複数のバンクグループにそれぞれ対応したコマンドの発行から前記データ線を基準としたデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報がストアされる第1のレジスタと、を備え、
前記複数のレイテンシの値のそれぞれは、前記複数のプロセシングエンジン部によるアクセスの優先順位にそれぞれ対応付けられ、
前記メモリ制御部は、前記複数のプロセシングエンジン部のそれぞれのアクセス要求に対応して、前記複数のレイテンシを含むアクセス情報を元に、前記複数のバンクグループの少なくとも2つのバンクグループへのコマンドの発行の順序を制御する、ことを特徴とする制御システム。
【請求項14】
前記アクセス情報は、更に、前記複数のバンクグループにそれぞれ対応し、1回のアクセス単位毎にデータを構成する複数のビットを時系列に転送する数を示すバースト長を含む、ことを特徴とする請求項13に記載の制御システム。
【請求項15】
前記メモリ部は、更に、前記複数のバンクグループにそれぞれ対応したコマンドの発行からデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報がストアされる第2のレジスタを含む、ことを特徴とする請求項13または14に記載の制御システム。
【請求項16】
前記第1及び第2のレジスタにストアされるアクセス情報は、同一の情報である、ことを特徴とする請求項15に記載の制御システム。
【請求項17】
それぞれが複数のバンクにより構成される複数のバンクグループを含む記憶領域と、
前記複数のバンクグループにそれぞれ対応し、外部から供給されるコマンドからデータ転送の開始までの時間間隔である複数のレイテンシを含むアクセス情報を設定する第2のレジスタと、
アクセス対象の前記複数のバンクグループへのアクセスを、それぞれ対応する前記第2のレジスタにストアされた複数のレイテンシの情報を元に制御する制御回路と、
を備えることを特徴とする半導体装置。
【請求項18】
前記アクセス情報は、更に、前記複数のバンクグループにそれぞれ対応し、1回のアクセス単位毎にデータを構成する複数のビットを時系列に転送する数を示すバースト長を含む、ことを特徴とする請求項17に記載の半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate