(57)【要約】【課題】メモリセルアレイとレジスタ部に同時にアクセスする場合であっても良好な処理効率で動作可能なメモリシステムを提供する。【解決手段】本発明のメモリシステムは、データを書き換え可能に記憶するメモリセルアレイと、システム情報を書き換え可能に保持する一又は複数のレジスタからなるレジスタ部とを備え、命令コードＣＣに応じてメモリセルアレイとレジスタ部の同時アクセス動作を実行する。書き込み動作時は、共通のデータ入力バスを介してレジスタ部に対する書き込みデータＤｉを入力し（ＲＷＬ＝１）、続いてメモリセルアレイに対する書き込みデータＤｉを入力する（ＭＷＬ＝４）。一方、読み出し動作時は、共通のデータ出力バスを介してレジスタ部からの読み出しデータＤｏを出力し（ＲＲＬ＝２）、続いてメモリセルアレイからの読み出しデータＤｏを出力する（ＭＲＬ＝５）。【選択図】図７
2009098819.tif 000002
【特許請求の範囲】
【請求項１】
データを書き換え可能に記憶するメモリセルアレイと、
システム情報を書き換え可能に保持する一又は複数のレジスタからなるレジスタ部と、
を備え、
前記メモリセルアレイと前記レジスタ部の同時アクセス動作を要求された場合、書き込み動作時は共通のデータ入力バスを介して前記レジスタ部に対する書き込みデータを入力した後に前記メモリセルアレイに対する書き込みデータを入力し、読み出し動作時は共通のデータ出力バスを介して前記レジスタ部からの読み出しデータを出力した後に前記メモリセルアレイからの読み出しデータを出力する、ことを特徴とするメモリシステム。
【請求項２】
前記メモリセルアレイ及び前記レジスタ部のそれぞれの動作は、コマンドバスを介して入力される命令コードに基づいて制御されることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記命令コードに付随する演算指定コードに基づいて前記レジスタ部に保持される情報を用いた所定の演算を実行する演算回路、をさらに備えることを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記メモリセルアレイのアクセス対象のメモリセルは、アドレスバスを介して入力されるアドレスに基づき指定され、前記レジスタ部のアクセス対象のレジスタは、前記アドレスバスを介して入力されるレジスタ指定情報に基づき指定されることを特徴とする請求項１に記載のメモリシステム。
【請求項５】
データを書き換え可能に記憶するメモリセルアレイと、システム情報を書き換え可能に保持する一又は複数のレジスタからなるレジスタ部とを備えるメモリシステムの制御方法であって、
前記メモリセルアレイと前記レジスタ部を同時にアクセスする動作モードを設定した状態で、書き込み動作時は、共通のデータ入力バスを介して前記レジスタ部に対する書き込みデータを入力した後に前記メモリセルアレイに対する書き込みデータを入力し、読み出し動作時は共通のデータ出力バスを介して前記レジスタ部からの読み出しデータを出力した後に前記メモリセルアレイからの読み出しデータを出力する、ことを特徴とするメモリシステムの制御方法。
【請求項６】
前記メモリセルアレイ及び前記レジスタ部を同時にアクセスする動作モードと、前記メモリセルアレイ及び前記レジスタ部のいずれかのみをアクセスする動作モードとが、選択的に設定可能であることを特徴とする請求項５に記載のメモリシステムの制御方法。
【請求項７】
前記各動作モードの設定に際し、命令コードに応じて前記メモリセルアレイ及び前記レジスタ部に対する読み出し動作又は書き込み動作が指定されるとともに、前記命令コードに付随する演算指定コードに応じて前記レジスタ部に保持される情報を用いた所定の演算の実行が指定されることを特徴とする請求項６に記載のメモリシステムの制御方法。
【請求項８】
前記演算指定コードに応じて指定される所定の演算には、選択されたレジスタの内容を全て０又は１にセットする演算が含まれることを特徴とする請求項７に記載のメモリシステムの制御方法。
【請求項９】
前記演算指定コードに応じて指定される所定の演算には、選択されたレジスタの内容に１を加算又は減算する演算が含まれることを特徴とする請求項７に記載のメモリシステムの制御方法。
【請求項１０】
前記演算指定コードに応じて指定される所定の演算には、選択されたレジスタの内容を１ビット分左にシフト又は右にシフトする演算が含まれる請求項７に記載のメモリシステムの制御方法。
【請求項１１】
請求項１から４のいずれかに記載のメモリシステムと、
複数のプロセッサコアと、バスを介して前記メモリセルアレイ及び前記レジスタ部に対するアクセスを制御する制御ブロックとを含むマルチコアプロセッサと、
を備えることを特徴とするコンピュータシステム。
【請求項１２】
前記メモリシステム及び前記マルチコアプロセッサは、同一の半導体チップ上に構成されることを特徴とする請求項１１に記載のコンピュータシステム。
【請求項１３】
前記メモリシステム及び前記マルチコアプロセッサの各動作を制御するオペレーティングシステムが搭載されていることを特徴とする請求項１１又は１２に記載のコンピュータシステム
【請求項１４】
前記オペレーティングシステムは、複数のスレッドを同時に処理することを特徴とする請求項１３に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理のためのデータを書き換え可能に記憶するメモリセルアレイを備えるメモリシステムに関し、特に、オペレーティングシステム等の制御に用いるシステム情報をメモリセルアレイとは別に設けたレジスタ部に保持する構成を有するメモリシステムに関するものである。
【背景技術】
【０００２】
近年、コンピュータシステムにおける並列処理に対応するため、マルチスレッドやマルチコアを採用したオペレーティングシステム（Operating System）が広く普及している。このようなオペレーティングシステムにより制御されるコンピュータシステムでは、異なるスレッド間、あるいは異なるコア間で互いに送受信する制御情報や、プロセッサへのリソース割り当てにおける優先排他制御に用いるフラグ等が、共有情報として共有メモリの所定の記憶領域に記憶保持される。コンピュータシステムにおいて同時に処理するスレッド数や存在するコアの数が増加する場合、共有情報を頻繁にアクセスする状況が生じるので、上述の記憶領域に対するアクセス回数も急激に増加する。共有情報に対するアクセスは、本来の情報処理のためのメモリへのアクセスに優先することが一般的であるため、共有情報にアクセスする際のレイテンシを確保するために通常のデータをアクセスする際のレイテンシが増大することになるため、コンピュータシステム全体の処理効率を低下させる恐れがある。
【０００３】
一方、従来から並列処理に対応したコンピュータシステムにおける処理効率を向上させる種々の手法が提案されている。例えば、特許文献１には、マルチスレッド計算機システムにおいて、排他制御の際に発生する共有主記憶メモリに対するアクセスを無くし、マルチスレッド処理の効率を向上させる技術が開示されている。また例えば、特許文献２には、マルチプロセッサによる共有メモリのシステムにおいて、排他権を確保するために共有メモリのシステムを頻繁にアクセスすることによって生じるスピンループの空転によるプロセッサの効率低下を防ぐため、キャッシュメモリへのアクセスを監視する方策を採用した技術が開示されている。これ以外にも、並列処理に対応したコンピュータシステムの処理効率の向上を目的とした多くの提案がなされている。
【特許文献１】特許第３５４６６９４号公報
【特許文献２】特開２００６−１５５２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のコンピュータシステムに関して特許文献１、２に開示された技術は、ともに並列処理に伴う排他制御に限定した対策であり、その他の共有メモリに対するアクセスが必要となる制御には適用できないという問題がある。また、特許文献１に開示された技術では、プロセッサエレメントの個数が増加した場合、プロセッサエレメント間の通信頻度が増大し、これがボトルネックとなる可能性がある。さらに、プロセッサエレメントに追加すべき回路ブロックが必要になるため、プロセッサエレメントの個数が増加したときに面積ペナルティも増大が避けられない。一方。特許文献２に開示された技術では、例えば、組み込みシステム用のプロセッサなどのキャッシュメモリを設けないシステムに対しては適用できないという問題がある。
【０００５】
そこで、本発明は上記従来の課題を解決するためになされたものであり、メモリセルアレイとは別にレジスタ部を設け、共通のデータ入出力バスを介してメモリセルアレイとレジスタ部に同時にアクセス可能なメモリシステムを構築し、新たなバス構成を付加することなく並列処理に対応したコンピュータシステムの処理効率の向上を目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のメモリシステムは、データを書き換え可能に記憶するメモリセルアレイと、システム情報を書き換え可能に保持する一又は複数のレジスタからなるレジスタ部とを備え、前記メモリセルアレイと前記レジスタ部の同時アクセス動作を要求された場合、書き込み動作時は共通のデータ入力バスを介して前記レジスタ部に対する書き込みデータを入力した後に前記メモリセルアレイに対する書き込みデータを入力し、読み出し動作時は共通のデータ出力バスを介して前記レジスタ部からの読み出しデータを出力した後に前記メモリセルアレイからの読み出しデータを出力することを特徴としている。
【０００７】
本発明のメモリシステムによれば、データを記憶するメモリセルアレイと、システム情報を保持するレジスタ部の両方にアクセスする場合、書き込み動作及び読み出し動作のいずれに際しても、共通のデータ入力（出力）バスを介して、レジスタ部のデータを先行して入出力し、続いてメモリセルアレイの入出力データを入出力するように制御される。よって、一般に小規模のレジスタ部のレイテンシは、大規模のメモリセルアレイのレイテンシに比べて短いので、データバスを共通化しても互いに支障なく効率的なデータ入出力を行うことができる。従って、並列処理に伴う共有情報等を頻繁にアクセスする場合であっても、そのために不要なメモリアクセスの増加を避けることができ、複雑なハードウェアを設けることなくシステム全体の処理能力を向上させることが可能となる。
【０００８】
本発明のメモリシステムにおいて、前記メモリセルアレイ及び前記レジスタ部のそれぞれの動作は、コマンドバスを介して入力される命令コードに基づいて制御してもよい。
【０００９】
本発明のメモリシステムにおいて、前記命令コードに付随する演算指定コードに基づいて前記レジスタ部に保持される制御情報を用いた所定の演算を実行する演算回路をさらに設けてもよい。
【００１０】
本発明のメモリシステムにおいて、前記メモリセルアレイのアクセス対象のメモリセルを、アドレスバスを介して入力されるアドレスに基づき指定し、前記レジスタ部のアクセス対象のレジスタを、前記アドレスバスを介して入力されるレジスタ指定情報に基づき指定してもよい。
【００１１】
また、上記課題を解決するために、本発明のメモリシステムの制御方法は、データを書き換え可能に記憶するメモリセルアレイと、システム情報を書き換え可能に保持する一又は複数のレジスタからなるレジスタ部とを備えるメモリシステムの制御方法であって、前記メモリセルアレイと前記レジスタ部を同時にアクセスする動作モードを設定した状態で、書き込み動作時は、共通のデータ入力バスを介して前記レジスタ部に対する書き込みデータを入力した後に前記メモリセルアレイに対する書き込みデータを入力し、読み出し動作時は共通のデータ出力バスを介して前記レジスタ部からの読み出しデータを出力した後に前記メモリセルアレイからの読み出しデータを出力する、ことを特徴としている。
【００１２】
本発明のメモリシステムの制御方法において、前記メモリセルアレイ及び前記レジスタ部を同時にアクセスする動作モードと、前記メモリセルアレイ及び前記レジスタ部のいずれかのみをアクセスする動作モードとを、選択的に設定可能としてもよい。
【００１３】
本発明のメモリシステムの制御方法において、前記各動作モードの設定に際し、命令コードに応じて前記メモリセルアレイ及び前記レジスタ部に対する読み出し動作又は書き込み動作を指定するとともに、前記命令コードに付随する演算指定コードに応じて前記レジスタ部に保持される制御情報を用いた所定の演算の実行を指定してもよい。
【００１４】
本発明のメモリシステムの制御方法において、前記演算指定コードに応じて指定される所定の演算に、選択されたレジスタの内容を全て０又は１にセットする演算を含めてもよい。
【００１５】
本発明のメモリシステムの制御方法において、前記演算指定コードに応じて指定される所定の演算に、選択されたレジスタの内容に１を加算又は減算する演算を含めてもよい。
【００１６】
本発明のメモリシステムの制御方法において、前記演算指定コードに応じて指定される所定の演算に、選択されたレジスタの内容を１ビット分左にシフト又は右にシフトする演算を含めてもよい。
【００１７】
さらに、上記課題を解決するために、本発明のコンピュータシステムは、メモリシステムと、複数のプロセッサコアと、バスを介して前記メモリセルアレイ及び前記レジスタ部に対するアクセスを制御する制御ブロックとを含むマルチコアプロセッサとを備えることを特徴としている。
【００１８】
本発明のコンピュータシステムにおいて、前記メモリシステム及び前記マルチコアプロセッサは、同一の半導体チップ上に構成してもよい。
【００１９】
本発明のコンピュータシステムにおいて、前記メモリシステム及び前記マルチコアプロセッサの各動作を制御するオペレーティングシステムを搭載してもよい。
【００２０】
本発明のコンピュータシステムにおいて、前記オペレーティングシステムは、複数のスレッドを同時に処理してもよい。
【発明の効果】
【００２１】
以上説明したように本発明によれば、例えば、マルチスレッドやマルチコアを採用したコンピュータシステムの一部としてメモリシステムを搭載する場合、データを記憶するメモリセルアレイと、共有情報等のシステム情報を保持するレジスタ部に対する同時アクセス動作を可能とすべく、共通のデータバスを介してメモリシステムのシステム情報を先行して入出力した後、メモリセルアレイのデータを入出力するように制御が行われる。このように、大規模のメモリセルアレイのレイテンシが小規模のレジスタ部のレイテンシより長いことを利用し、適正な順序でデータ入出力を行うことができるので、メモリアクセスがボトルネックとなって処理効率が低下することを防止可能となる。また、上記のアクセスに際し、レジスタ部に保持される共有情報等を用いて演算を実行する演算回路により、バックグランドで所定の演算を実行させることができるので、システムの処理効率を一層向上させることができる。このようなメモリシステムを構成する場合、従来のバス構成をそのまま用いることができるとともに、特別の制御回路を設けることが不要であるので、単純なハードウェアを用いてコストを増加させることなく、システム全体の処理効率を向上させることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態について図面を参照しながら説明する。本実施形態では、オペレーティングシステムの並列処理に必要な共有情報等のシステム情報を保持する構成を備えたメモリシステムに対し本発明を適用する場合を説明する。
【００２３】
図１は、本実施形態のメモリシステム１の全体構成を示すブロック図である。図１に示すように、本実施形態のメモリシステム１は、メモリセルアレイ１１、レジスタファイル１２、演算回路１３、命令バッファ１４、デマルチプレクサ１５、１９、２２、命令デコーダ１６、演算指定デコーダ１７、アドレスバッファ１８、アドレスデコーダ２０、レジスタ指定デコーダ２１、データ入力バッファ２３、マルチプレクサ２４、データ出力バッファ２５を含んで構成されている。
【００２４】
メモリセルアレイ１１は、通常の情報処理に用いるデータを記憶する多数のメモリセルからなり、例えば、１Ｇワード×１６ビット（２Ｇバイト）のメモリ空間を有している。レジスタファイル１２は、オペレーティングシステムのシステム情報を書き換え可能に保持するレジスタ群であり、本発明のレジスタ部として機能する。レジスタファイル１２は、例えば、１６ワード×１６ビットの構成（１６個のレジスタ群）を有している。このように、メモリセルアレイ１１とレジスタファイル１２は、共通のビット幅（１６ビット）で構成されている。一方、演算回路１３は、レジスタファイル１２のアクセス時に指定される演算を実行する回路である。なお、本実施形態のメモリシステム１に対しては、メモリセルアレイ１１とレジスタファイル１２を別々にアクセスする動作モードと、両者を同時にアクセスする動作モードを設定可能であるが、詳しくは後述する。
【００２５】
ここで、図２には、本実施形態のメモリシステム１のアドレス構成とデータ入出力構成を示している。図２（Ａ）に示すアドレス構成については、メモリセルアレイ１１のアドレス空間を指定するための３２ビットのメモリセルアレイアドレスと、レジスタファイル１２の特定のレジスタを選択するための４ビットのレジスタ指定情報（レジスタ番号）から構成される（計３６ビット）。また、図２（Ｂ）に示すデータ入出力構成については、メモリセルアレイ１１とレジスタファイル１２がともに１６ビットのビット幅であることを前提としているので、１６ビットのメモリセルアレイデータと１６ビットのレジスタデータから構成される（計３２ビット）。
【００２６】
命令バッファ１４は、４ビット幅のコマンドバスＢ１に接続される。メモリシステム１を制御するための所定の命令のうち、４ビットの命令コードと４ビットの演算指定コードがそれぞれコマンドバスＢ１を経由して時分割で命令バッファ１４に順次入力される。命令バッファ１４に保持される命令はデマルチプレクサ１５に出力され、命令コードと演算指定コードがそれぞれ抽出された後、命令コードが命令デコーダ１６に送出されるとともに、演算指定コードが演算指定デコーダ１７に送出される。
【００２７】
一方、アドレスバッファ１８は、３２ビット幅のアドレスバスＢ２に接続される。メモリシステム１にアクセスするためのアドレスのうち、メモリセルアレイ１１のメモリセルを指定する３２ビットのメモリセルアレイアドレスと、レジスタファイル１２のレジスタを特定する４ビットのレジスタ番号がそれぞれアドレスバスＢ２を経由して時分割でアドレスバッファ１８に順次入力される。アドレスバッファ１８に保持されるアドレスはデマルチプレクサ１９に出力され、メモリセルアレイアドレスとレジスタ番号がそれぞれ抽出された後、メモリセルアレイアドレスがアドレスデコーダ２０に送出されるとともに、レジスタ番号がレジスタ指定デコーダ２１に送出される。
【００２８】
命令デコーダ１６により判別された命令コードに応じて、メモリセルアレイ１１の読み出し動作／書き込み動作が制御されるとともに、レジスタファイル１２の読み出し動作／書き込み動作が制御される。この際、メモリセルアレイ１１においてアクセスされるメモリセルは、アドレスデコーダ２０に入力されたメモリセルアレイアドレスに基づき指定され、レジスタファイル１２においてアクセスされるレジスタは、レジスタ指定デコーダ２１に入力されたレジスタ番号に基づき指定される。また、レジスタファイル１２の指定されたレジスタのデータは演算回路１３に入力される。演算回路１３は、演算指定デコーダ１７に保持される演算指定コードに対応する所定の演算を実行し、その演算結果がレジスタファイル１２の指定されたレジスタに出力される。
【００２９】
データ入力バッファ２３は、１６ビット幅のデータ入力バスＢ３に接続される。外部からの書き込みデータのうち、メモリセルアレイ１１用の１６ビットのデータとレジスタファイル１２用の１６ビットのデータが、データ入力バスＢ３を経由して時分割でデータ入力バッファ２３に順次入力される。データ入力バッファ２３に保持されるデータは、デマルチプレクサ２２に送出される。デマルチプレクサ２２に入力されたデータのうち、メモリセルアレイ１１への１ワード分（１６ビット）の書き込みデータが抽出されるとともに、レジスタファイル１２への１ワード分（１６ビット）の書き込みデータが抽出される。
【００３０】
マルチプレクサ２４には、メモリセルアレイ１１からの１ワード分（１６ビット）の読み出しデータと、レジスタファイル１２からの１ワード分（１６ビット）の読み出しデータが、それぞれ入力される。マルチプレクサ２４では、入力されたデータがシリーズ化され、３２ビットのデータがデータ出力バッファ２５に送出される。データ出力バッファ２５は、１６ビット幅のデータ出力バスＢ４に接続され、マルチプレクサ２４からのデータが時分割でデータ出力バスＢ４を介して外部に出力される。
【００３１】
次に、メモリシステム１を制御するための各種命令を定義した命令セットについて、図３を参照して説明する。図３は、メモリシステム１に対する命令セットの一覧の例であり、４ビットの命令コードと３ビットの演算指定コードにより構成された複数の命令語が示されている。命令セットで定義される命令コードには、何も動作を行わない（ＮＯＰ）場合の命令コード｛００００｝に加え、メモリセルアレイ１１のみにアクセスする場合の命令コード｛０００１｝、｛００１０｝と、レジスタファイル１２のみにアクセスする場合の命令コード｛００１１｝〜｛０１１１｝と、メモリセルアレイ１１とレジスタファイル１２を同時にアクセスする場合の命令コード｛１０００｝〜｛１１０１｝が含まれる。
【００３２】
また、上述の命令セットに含まれる演算指定コードについて、図４を参照して説明する。図４は、図３の各命令コードに付随する演算指定コードの一覧の例であり、４ビットの演算指定コードに対応する演算内容が示されている。図４で定義される演算指定コードには、何も動作を行わない（ＮＯＰ）場合の演算指定コード｛００００｝に加え、選択したレジスタの内容に対する６種類の演算指定コードとして、全て０／１にセットする演算指定コード｛０００１｝、｛００１０｝、１を加算／減算する演算指定コード｛００１１｝、｛０１００｝、１ビット分左／右にシフトする演算指定コード｛０１０１｝｛０１１０｝が含まれる。図４の例では、｛０１１１｝以降の演算指定コードがＮＯＰ（予備）として定義されるので、実質的に演算指定コードの下位３ビットで演算内容が特定される。レジスタファイル１２及び演算回路１３においては、上記の演算指定コードを用いて、フラグ、カウンタ、ステイタスレジスタ等を構成することが可能である。
【００３３】
以下、本実施形態のメモリシステム１における書き込み動作／読み出し動作について、図５〜図８を参照して説明する。図５は、メモリシステム１においてメモリセルアレイ１１をアクセスする際の動作波形を示している。図５の上部から、クロックＣＬＫ及び反転クロック／ＣＬＫ、コマンドバスＢ１、アドレスバスＢ２、データ入力バスＢ３、データ出力バスＢ４のそれぞれの伝送データに関し、所定の時間範囲内の動作波形が示される。本実施形態のメモリシステム１においては、例えば、ＤＤＲ−ＳＤＲＡＭと同様、所定周期のクロックＣＬＫ及び反転クロック／ＣＬＫに同期して動作が制御される。
【００３４】
まず、メモリセルアレイ１１の書き込み動作時には、コマンドバスＢ１から所定の命令コードＣＣと演算指定コードＮＯＰが時分割で入力され、それぞれデマルチプレクサ１５を経由して命令デコーダ１６と演算指定デコーダ１７に送られる。また、アドレスバスＢ２からメモリセルアレイアドレスＡＤＲが入力され、デマルチプレクサ１９を経由してアドレスデコーダ２０に送られる。そして、タイミングＴ０を起点にメモリライトレイテンシＭＷＬが経過した後に、データ入力バスＢ３からデータＤｉが入力され、メモリセルアレイ１１の選択されたアドレスに対する書き込みが行われる。図５に示すように、データＤｉはタイミングＴ４を起点に出力されるので、ＭＷＬ＝４となる。
【００３５】
次に、メモリセルアレイ１１の読み出し動作時には、書き込み動作時と同様の制御に従って、コマンドバスＢ１から所定の命令コードＣＣと演算指定コードＮＯＰが時分割で入力され、アドレスバスＢ２からメモリセルアレイアドレスＡＤＲが入力される。そして、タイミングＴ０を起点にメモリリードレイテンシＭＲＬが経過した後に、メモリセルアレイ１１の選択されたアドレスからの読み出しが行われ、データＤｏがデータ出力バスＢ４から出力される。図５に示すように、データＤｏはタイミングＴ５を起点に出力されるので、ＭＲＬ＝５となる。
【００３６】
図６は、メモリシステム１においてレジスタファイル１２をアクセスする際の動作波形を示している。図６の上部から、クロックＣＬＫ及び反転クロック／ＣＬＫ、コマンドバスＢ１、アドレスバスＢ２、データ入力バスＢ３、データ出力バスＢ４のそれぞれの伝送データに関し、図５と同様の時間範囲内での動作波形が示される。
【００３７】
まず、レジスタファイル１２の書き込み動作時には、コマンドバスＢ１から所定の命令コードＣＣと所定の演算指定コードＯＣが時分割で入力され、それぞれデマルチプレクサ１５を経由して命令デコーダ１６と演算指定デコーダ１７に送られる。また、アドレスバスＢ２からレジスタ番号ＲＥＧ＃が入力され、デマルチプレクサ１９を経由してレジスタ指定デコーダ２１に送られる。そして、タイミングＴ１を起点にレジスタライトレイテンシＲＷＬが経過した後に、データ入力バスＢ３からデータＤｉが入力され、レジスタファイル１２におけるレジスタ番号ＲＥＧ＃のレジスタに対する書き込みが行われる。図６に示すように、データＤｉはタイミングＴ２を起点に出力されるので、ＲＷＬ＝１となる。
【００３８】
次に、レジスタファイル１２の読み出し動作時には、書き込み動作時と同様の制御に従って、コマンドバスＢ１から所定の命令コードＣＣと所定の演算指定コードＯＣが時分割で入力され、アドレスバスＢ２からレジスタ番号ＲＥＧ＃が入力される。そして、タイミングＴ１を起点にレジスタリードレイテンシＲＲＬが経過した後に、レジスタファイル１２におけるレジスタ番号ＲＥＧ＃のレジスタに対する読み出しが行われ、データＤｏがデータ出力バスＢ４から出力される。図６に示すように、データＤｏはタイミングＴ３を起点に出力されるので、ＲＲＬ＝２となる。
【００３９】
図７は、メモリシステム１においてメモリセルアレイ１１とレジスタファイル１２を同時にアクセスする際の動作波形を示している。図７の上部から、クロックＣＬＫ及び反転クロック／ＣＬＫ、コマンドバスＢ１、アドレスバスＢ２、データ入力バスＢ３、データ出力バスＢ４のそれぞれの伝送データに関し、図５及び図６と同様の時間範囲内での動作波形が示される。
【００４０】
まず、書き込み動作時には、コマンドバスＢ１から所定の命令コードＣＣと所定の演算指定コードＯＣが時分割で入力され、それぞれデマルチプレクサ１５を経由して命令デコーダ１６と演算指定デコーダ１７に送られる。また、アドレスバスＢ２からメモリセルアレイアドレスＡＤＲとレジスタ番号ＲＥＧ＃が時分割で入力され、それぞれデマルチプレクサ１９を経由してアドレスデコーダ２０とレジスタ指定デコーダ２１に送られる。そして、図５と同様のメモリライトレイテンシＭＷＬと図６と同様のレジスタライトレイテンシＲＷＬがそれぞれ経過した後に、データ入力バスＢ３から時分割でデータＤｉが入力される。このデータＤｉはデマルチプレクサ２２により抽出され、メモリセルアレイ１１の選択されたアドレスと、レジスタファイル１２におけるレジスタ番号ＲＥＧ＃のレジスタに対し、それぞれ書き込みが行われる。図７に示すように、図５及び図６と同様、ＭＷＬ＝４、ＲＷＬ＝１となる。
【００４１】
次に、読み出し動作時には、書き込み動作時と同様の制御に従って、コマンドバスＢ１から所定の命令コードＣＣと所定の演算指定コードＯＣが時分割で入力され、アドレスバスＢ２からメモリセルアレイアドレスＡＤＲとレジスタ番号ＲＥＧ＃が時分割で入力される。そして、図５と同様のメモリリードレイテンシＭＲＬと図６と同様のレジスタリードレイテンシＲＲＬが経過した後に、メモリセルアレイ１１の選択されたアドレスと、レジスタファイル１２におけるレジスタ番号ＲＥＧ＃のレジスタのそれぞれに対する読み出しが行われる。読み出されたデータはマルチプレクサ２４で統合され、データＤｏとしてデータ出力バスＢ４から時分割で出力される。図７に示すように、図５及び図６と同様、ＭＲＬ＝５、ＲＲＬ＝２となる。
【００４２】
図７において各々のレイテンシＭＷＬ、ＲＷＬ、ＭＲＬ、ＲＲＬを比較すると、レジスタファイル１２中のレジスタをアクセスする時間は、メモリセルアレイ１１のメモリセルをアクセスする時間に比べて短時間であることがわかる。このことは、メモリセルアレイ１１が２Ｇバイトと大容量であるのに対し、レジスタファイル１２は１６ワード×１６ビットと小容量であることを反映している。よって、レジスタファイル１２に対するアクセスレイテンシ（ＲＷＬ、ＲＲＬ）は、メモリセルアレイ１１に対するアクセスレイテンシ（ＭＷＬ、ＭＲＬ）よりも小さい値を設定可能となる。これにより、図７の上部に示すように、書き込み動作時にはデータ入力バスＢ３を経由して、メモリセルアレイ１１に対する書き込みデータを入力するのに先立ち、レジスタファイル１２に対する書き込みデータを入力することが可能となる。また、図７の下部に示すように、読み出し動作時にはデータ出力バスＢ４に、メモリセルアレイ１１からの読み出しデータを出力するのに先立ち、レジスタファイル１２からの読み出しデータを出力することが可能となる。
【００４３】
以上説明したように、本実施形態のメモリシステム１では、メモリセルアレイ１１とレジスタファイル１２のアクセスレイテンシの差を利用して、共通のバスを介して両者を同時にアクセスする場合に円滑な処理を行うことができる。よって、レジスタファイル１２に必要な共有情報が保持される一方、メモリセルアレイ１１に情報処理用のデータが記憶されている場合、それぞれに対し独立にアクセスすることなくデータをやり取りでき、不要なアクセス動作を防止することができる。また、本実施形態の構成を採用すれば、メモリシステム１の従来のバス構成をそのまま用いることができ、新たなバスの追加等は不要であり、かつ新たな付加回路等の面積増加も避けることができるので、低いコストで上記の効果を享受することができる。
【００４４】
ここで、図１に示したメモリシステム１の構成では、データ入力バスＢ３とデータ出力バスＢ４を別々に設ける場合を示したが、これらを一体化したデータ入出力バスを共用する構成を採用してもよい。このように構成すれば、チップ上に構成されるメモリシステム１のパッケージのピン数を削減でき、パッケージコストの低減が可能となる。なお、メモリシステム１をコンピュータシステムの構成要素として含める場合の構成については後述する。
【００４５】
次に、本実施形態のメモリシステム１を含むコンピュータシステムについて、図８及び図９を参照して説明する。図８は、本実施形態のメモリシステム１を含むコンピュータシステムの第１の実施例の構成を示すブロック図である。第１の実施例に係るコンピュータシステムは、インターフェース部３１と、外部記憶装置制御ブロック３２と、オンチップメモリ３３と、コア（１）〜（Ｎ）と表記されるＮ個のプロセッサコア３４と、これらの各構成要素を接続するバスＢ５を含むマルチコアプロセッサ２が１つのチップ上に構成され、それとは別チップ上に本実施形態のメモリシステム１が構成される。
【００４６】
図８のマルチコアプロセッサ２においては、外部記憶装置制御ブロック３２によりメモリシステム１に対するアクセスが制御される。外部記憶装置制御ブロック３２とメモリシステム１の間は、上述のコマンドバスＢ１、アドレスバスＢ２、データ入力バスＢ３及びデータ出力バスＢ４により接続されている。このように、第１の実施例に係るコンピュータシステムでは、メモリシステム１が外部記憶装置として機能する。
【００４７】
また、図９は、本実施形態のメモリシステム１を含むコンピュータシステムの第２の実施例の構成を示すブロック図である。第２の実施例に係るコンピュータシステムは、インターフェース部３１と、オンチップメモリ制御ブロック３５と、本実施形態のメモリシステム１からなるオンチップメモリ１ａと、コア（１）〜（Ｎ）と表記されるＮ個のプロセッサコア３４と、これらの各構成要素を接続する上記の各バスＢ１〜Ｂ５を含むシステムオンチップ３が１つのチップ上に構成されている。
【００４８】
図９のシステムオンチップ３においては、図８のオンチップメモリ３３がメモリシステム１としてのオンチップメモリ１ａに置き換えられ、オンチップメモリ制御ブロック３５によりオンチップメモリ１ａに対するアクセスが制御される。オンチップメモリ制御ブロック３５とオンチップメモリ１ａの間は、上述のコマンドバスＢ１、アドレスバスＢ２、データ入力バスＢ３及びデータ出力バスＢ４により接続されている。このように、第２の実施例に係るコンピュータシステムでは、メモリシステム１がオンチップの記憶装置として機能し、システム全体が同一チップに構成される。
【００４９】
なお、図８又は図９の構成を有するコンピュータシステムには、複数のスレッドを同時に処理できるオペレーティングシステムを搭載することが望ましい。このようなオペレーティングシステムの並列処理に必要な共有情報は、上述した動作に従ってメモリシステム１のレジスタファイル１２に保持されるので、共有情報へのアクセスに伴う処理効率の低下を有効に防止することができる。
【図面の簡単な説明】
【００５０】
【図１】本実施形態のメモリシステム１の全体構成を示すブロック図である。
【図２】本実施形態のメモリシステム１のアドレス構成とデータ入出力構成を示す図である。
【図３】本実施形態のメモリシステム１に対する命令セットの一覧の例を示す図である。
【図４】図３の各命令コードに付随する演算指定コードの一覧の例を示す図である。
【図５】本実施形態のメモリシステム１においてメモリセルアレイ１１をアクセスする際の動作波形を示す図である。
【図６】本実施形態のメモリシステム１においてレジスタファイル１２をアクセスする際の動作波形を示す図である。
【図７】本実施形態のメモリシステム１においてメモリセルアレイ１１とレジスタファイル１２を同時にアクセスする際の動作波形を示す図である。
【図８】本実施形態のメモリシステム１を含むコンピュータシステムの第１の実施例の構成を示す図である。
【図９】本実施形態のメモリシステム１を含むコンピュータシステムの第２の実施例の構成を示す図である。
【符号の説明】
【００５１】
１…メモリシステム
２…マルチコアプロセッサ
３…システムオンチップ
１１…メモリセルアレイ
１２…レジスタファイル
１３…演算回路
１４…命令バッファ
１５、１９、２２…デマルチプレクサ
１６…命令デコーダ
１７…演算指定デコーダ
１８…アドレスバッファ
２０…アドレスデコーダ
２１…レジスタ指定デコーダ
２３…データ入力バッファ
２４…マルチプレクサ
２５…データ出力バッファ
３１…インターフェース部
３２…外部記憶装置制御ブロック
３３、１ａ…オンチップメモリ
３４…プロセッサコア
３５…オンチップメモリ制御ブロック
Ｂ１…コマンドバス
Ｂ２…アドレスバス
Ｂ３…データ入力バス
Ｂ４…データ出力バス
Ｂ５…バス
【図１】
2009098819.tif 000003
【図２】
2009098819.tif 000004
【図３】
2009098819.tif 000005
【図４】
2009098819.tif 000006
【図５】
2009098819.tif 000007
【図６】
2009098819.tif 000008
【図７】
2009098819.tif 000009
【図８】
2009098819.tif 000010
【図９】
2009098819.tif 000011