<実施の形態1>
<概要>
以下、本発明に係るメモリアクセス制御装置の一例として、記憶領域を利用するマスタと、マスタからの記憶領域へのアクセスを制御するメモリアクセスコントローラとを有するシステムLSI(Large Scale Integration)チップと、マスタに利用される記憶領域を有するメモリチップとが、複数のマイクロバンプを介して互いに接続されることで積層されてなる集積回路について説明する。
この集積回路は、製造時の検査結果に基づいて、システムLSIチップとメモリチップとを接続する複数のマイクロバンプの中に接続不良が発生していない場合は、高機能向け良品として選定される。そして、システムLSIチップとメモリチップとを接続する複数のマイクロバンプのうちの所定のマイクロバンプ群の中に接続不良が発生してしまっている場合であっても、接続不良の数が所定数未満のときには、高機能向け良品の一部の機能が制限された普及向け良品として選定される。
以下、本実施の形態1に係る集積回路の概要について、図面を用いて説明する。
図1は、集積回路100の断面を模式的に示した断面図である。
同図において、システムLSIチップ101は、内部に、記憶領域を利用する複数のマスタと、マスタからの記憶領域へのアクセスを制御するメモリアクセスコントローラとを有するロジックチップであって、トランジスタ形成層124と配線形成層123とを備える。そして、トランジスタ形成層124には、配線形成層123に形成される配線上の信号を、トランジスタ形成層124側主表面外部に引き出すためのTSV(Through Silicon Via)が配置されている。
このシステムLSIチップ101は、利用する外部メモリとして192MBの記憶領域が確保され、7GB/sのメモリ帯域幅が確保される場合には、外部メモリを利用して、デジタルテレビ放送番組を1番組デコードする機能を有し、利用する外部メモリとして256MBの記憶領域が確保され、10GB/sのメモリ帯域幅が確保される場合には、外部メモリを利用して、デジタルテレビ放送番組を2番組同時デコードする機能を有する。
メモリチップ102は、内部に、システムLSIチップ101に含まれるマスタに利用される記憶領域を有する汎用メモリチップであって、トランジスタ形成層121と配線形成層122とを備える。
リードフレーム(lead frame)103は、システムLSIチップ101を支持固定し、システムLSIチップ101のTSV端子のそれぞれと、集積回路100外部の基板(図示せず)における端子のそれぞれとを接続する。
システムLSIチップ101とメモリチップ102とは、互いに、配線形成層が対向するように重ね合わせされ、複数のマイクロバンプ111を介して互いに接続されている。
システムLSIチップ101とメモリチップ102とを接続するマイクロバンプのうち、メモリチップ102から読み出すデータと、メモリチップ102へ書き込むデータとを伝達するためのマイクロバンプ群(以下、「メモリデータ用マイクロバンプ群」と呼ぶ。)は、512個のマイクロバンプで構成される。
システムLSIチップ101とメモリチップ102とを接続するマイクロバンプの中に接続不良マイクロバンプが含まれない場合には、システムLSIチップ101は、10GB/sの帯域幅でメモリチップ102を利用する。そして、メモリデータ用マイクロバンプ群の中に、接続不良マイクロバンプが存在してしまっている場合であっても、その数が128個以下であれば、システムLSIチップ101は、接続不良マイクロバンプを用いずにメモリチップ102と通信することで、7GB/sの帯域幅でメモリチップ102を利用する。
システムLSIチップ101とリードフレーム103とは、システムLSIチップ101のトランジスタ形成層124側主表面がリードフレーム103と対向するように、互いに重ね合わせられ、複数のバンプ113を介して互いに接続されている。
そして、システムLSIチップ101とメモリチップ102とリードフレーム103とは、樹脂によって1つのパッケージ(図示せず)内に封入されている。
図2(a)は、高機能向け良品である集積回路100を模式的に示す模式図である。
同図において、システムLSIチップ101とメモリチップ102との間の線のそれぞれは、システムLSIチップ101とメモリチップ102との間を接続するマイクロバンプのそれぞれを模式的に示している。
高機能向け良品は、システムLSIチップ101とメモリチップ102との間を接続するマイクロバンプの中に接続不良となるマイクロバンプが含まれていない状態の集積回路100のことをいう。この状態において、システムLSIチップ101は、メモリチップ102を外部メモリとして、256MBのメモリ領域を利用し、10GB/sの帯域幅でメモリチップ102とデータ通信を行う。
図2(b)は、普及向け良品である集積回路100を模式的に示す模式図である。
同図において、システムLSIチップ101とメモリチップ102との間の線のそれぞれは、図2(a)と同様に、システムLSIチップ101とメモリチップ102との間を接続するマイクロバンプのそれぞれを模式的に示している。そして、これらの線の一部が断線しているように表記することで、マイクロバンプの一部に接続不良マイクロバンプが含まれていることを示している。
普及向け良品は、メモリデータ用マイクロバンプ群の中に、128個以下の接続不良マイクロバンプが存在している状態の集積回路100のことをいう。この状態において、システムLSIチップ101は、メモリチップ102を外部メモリとして、192MBのメモリ領域を利用し、7GB/sの帯域幅でメモリチップとデータ通信を行う。
図3(c)は、不良品である集積回路100を模式的に示す模式図である。
同図において、システムLSIチップ101とメモリチップ102との間の線のそれぞれは、図2(a)、(b)と同様に、システムLSIチップ101とメモリチップ102との間を接続するマイクロバンプのそれぞれを模式的に示している。そして、これらの線の一部が断線しているように表記することで、マイクロバンプの一部に接続不良マイクロバンプが含まれていることを示している。
不良品は、メモリデータ用マイクロバンプ群の中に、129個以上の接続不良マイクロバンプが存在している状態、又はメモリデータ用マイクロバンプ群以外のマイクロバンプの中に接続不良のマイクロバンプが存在している状態のことをいう。この状態において、システムLSIチップ101は、メモリチップ102を利用して、デジタルテレビ放送番組をデコードすることができない。
以下、集積回路100の詳細について、図面を用いて説明する。
<構成>
図3は、メモリチップ102の主要なハードウエアの概要構成図である。
同図に示される通り、メモリチップ102は、バンクA310、バンクB320、バンクC330、バンクD340、IO回路350とから構成される。
バンクA310とバンクB320とバンクC330とバンクD340とは、それぞれ、512ビット(=64B)単位で読み出しと書き込みとが行われ、12ビットのロウアドレスと8ビットのカラムアドレスとで指定される64MBの記憶領域を有するメモリであって、それぞれ、IO回路350に接続される。
IO回路350は、バンクA310とバンクB320とバンクC330とバンクD340とシステムLSIチップ101とに接続され、バンクA310とバンクB320とバンクC330とバンクD340とのいずれかから読み出される512ビットのデータを外部に出力する機能と、外部から入力される512ビットのデータをバンクA310とバンクB320とバンクC330とバンクD340とのいずれかへ出力する機能とを有する。
図4は、システムLSIチップ101内の各マスタが使用する論理アドレスとメモリチップ102における記憶領域を指す物理アドレスとの対応を示すアドレスの構成図である。システムLSIチップ内の各マスタはメモリチップ102のロウやカラムなどの物理アドレスを意識せず使用できるように論理アドレスというアドレスを使う。本実施例では、1Bが1つのアドレスに対応する32ビットの論理アドレスを使用している。
同図に示されるように、メモリチップ102の記憶領域に対応する論理アドレスは、6ビットの固定値領域401と2ビットのメモリチップ102のバンクアドレス領域402と8ビットのカラムアドレス領域403と12ビットのロウアドレス領域404、及び4ビットの固定値領域405とから構成される。この中でバンクアドレス領域402と8ビットのカラムアドレス領域403と12ビットのロウアドレス領域404とがメモリチップ102の物理アドレスとなっている。
バンクアドレス領域402は、メモリチップ102に含まれる、4つのバンク(バンクA310、バンクB320、バンクC330、バンクD340:図3参照)のうちのいずれであるかを示すアドレスを格納する領域である。
カラムアドレス領域403は、バンクにおけるカラムを指定するカラムアドレスを格納する領域である。
ロウアドレス領域404は、バンクにおけるロウを指定するロウアドレスを格納する領域である。
固定値領域401は、データの読み出し、書き込み単位が64Bとなっていることに対応して、固定値"0x00"と設定されている。これは論理アドレスがバイト単位のアドレッシングであることのためである。
固定値領域405は、固定値"0x3"と設定されている。論理アドレスはシステム全体のアドレスマッピングとなっているため、外部メモリ以外の例えば内部メモリのアドレス等にも使用する。このため、マスタが外部メモリにアクセスする際には、その領域を指し示す0x3を論理アドレスの先頭の固定値領域405に明示してアクセスする。
なお、論理アドレスから物理アドレス変換の変換方法は図4に限定されるわけではなく、メモリチップ102の仕様と各マスタのメモリアクセスパターンなどを考慮してメモリアクセスオーバヘッドがでないように最適化してもよい。
図5は、システムLSIチップ101の主要なハードウエア構成要素を示す構成図である。
同図示される通り、システムLSIチップ101は、第1マスタ501、第2マスタ502〜第nマスタ503、メモリアクセスコントローラ510、冗長救済回路520とから構成される。これらのうち、メモリアクセスコントローラ510は、さらに、第1マスタインターフェース511、第2マスタインターフェース512〜第nマスタインターフェース513、コマンドアービタ(command arbiter)516、データバッファ517、外部メモリ制御回路519とから構成される。
第1マスタ501は、メモリアクセスコントローラ510の第1マスタインターフェース511に接続されるプロセッサであって、メモリアクセスコントローラ510を介してメモリチップ102の記憶領域を利用する。この第1マスタ501は、メモリチップ102の記憶領域に記憶されているプログラムを実行することで、様々な機能を実現する。
第2マスタ502は、メモリアクセスコントローラ510の第2マスタインターフェース512に接続されるデコーダであって、プロセッサである第1マスタ501によって制御され、メモリアクセスコントローラ510を介してメモリチップ102の記憶領域を利用し、メモリチップ102の記憶領域に記憶されている、符号化された映像データを復号する機能を有する。
第nマスタ503は、メモリアクセスコントローラ510の第nマスタインターフェース513に接続されるエンコーダであって、プロセッサである第1マスタ501によって制御され、メモリアクセスコントローラ510を介してメモリチップ102の記憶領域を利用し、メモリチップ102の記憶領域に記憶されている、映像データを符号化する機能を有する。
冗長救済回路520は、外部メモリ制御回路519に接続され、内部にイーヒューズ(eFUSE)回路521を含み、集積回路100の外部から、LSIテスタ等を用いてイーヒューズ回路521に情報が書き込まれることによって、接続不良となっているマイクロバンプを特定するマイクロバンプIDを記憶する機能を有する。
ここで、イーヒューズ回路521に情報を書き込むとは、イーヒューズ回路521に含まれる複数のイーヒューズのうち、書き込む情報に対応する特定のイーヒューズ群にエレクトロマイグレーション(electromigration)を発生させて、それらのイーヒューズ群を断線させることをいう。
また、記憶するマイクロバンプIDの対象となるマイクロバンプは、メモリデータ用マイクロバンプ群に限られ、メモリチップ102へ送信する物理アドレス、命令等を伝達するためのマイクロバンプ群を含まない。
第1マスタインターフェース511は、第1マスタ501とコマンドアービタ516とデータバッファ517とに接続され、内部に、第1マスタ501から送り出された、メモリチップ102の記憶領域を利用するためのコマンド(以下、「マスタからのメモリコマンド」と呼ぶ)を記憶するコマンドバッファを有し、第1マスタ501から送り出されたマスタからのメモリコマンドを受け付けて、コマンドバッファに一時的に記憶し、記憶しているマスタからのメモリコマンドをコマンドアービタ516に出力する機能と、データバッファ517から送り出された、メモリチップ102の記憶領域から読み出されたデータを受け付けて、第1マスタ501に出力する機能と、第1マスタ501から送り出された、メモリチップ102の領域へ書き込むデータを受け付けて、データバッファ517へ出力する機能とを有する。
ここで、マスタからのメモリコマンドは、読み出し又は書き込みのいずれかを示すアクセス種情報と、利用する記憶領域の開始アドレスを示す論理アドレスと、利用する記憶領域のビット幅を示すビット幅情報(バースト数)とを含む。
第2マスタインターフェース512は、第1マスタインターフェース511と同様の回路であって、第2マスタ502とコマンドアービタ516とデータバッファ517とに接続される。
第nマスタインターフェース513は、第1マスタインターフェース511、第2マスタインターフェース512と同様の回路であって、第nマスタ503とコマンドアービタ516とデータバッファ517とに接続される。
コマンドアービタ516は、第1マスタインターフェース511と第2マスタインターフェース512〜第nマスタインターフェース513と外部メモリ制御回路519とに接続され、複数のマスタインターフェースから送り出された、マスタからのメモリコマンドを受け付ける機能と、複数のマスタからのメモリコマンドを受け付けた場合に、予め定められた優先順位付与方法に基づいて、受け付けたマスタからのメモリコマンドのそれぞれに優先順位を付与する機能と、付与された優先順位が最も高いものから順に、外部メモリ制御回路519に送る機能とを有する。
データバッファ517は、第1マスタインターフェース511と第2マスタインターフェース512〜第nマスタインターフェース513と外部メモリ制御回路519とに接続され、第1マスタインターフェース511〜第nマスタインターフェース513からのメモリへ書き込むデータを受け付けて、外部メモリ制御回路519に送る機能と、外部メモリ制御回路519からの、メモリから読み出されたデータを受け付けて、第1マスタインターフェース511〜第nマスタインターフェース513のうちのいずれかに送る機能とを有する。
図6は、外部メモリ制御回路519の主要な機能構成を示す構成図である。
同図に示される通り、外部メモリ制御回路519は、通常用アドレス変換部601、救済用アドレス変換部602、セレクタ603、コマンドキュー(command queue)604、コマンド発行制御部605、タイミング管理部606、データ線冗長救済部611、データ並べ替え部612、属性付与部613、Rデータアラインメントバッファ(data alignment buffer)614、データ並べ替え部615、Wデータアラインメントバッファ616等から構成される。
通常用アドレス変換部601は、コマンドアービタ516とセレクタ603とに接続され、以下の2つの機能を有する。
機能1:コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域の開始アドレスを指す論理アドレスを、メモリチップ102における、バンクA310、バンクB320、バンクC330、バンクD340の4つのバンクからなる256MBの記憶領域のうちのmビットからなる記憶領域の開始アドレスを指す外部メモリの物理アドレスに変換する通常アドレス変換機能。
ここで、mビットからなる記憶領域とは、マスタからのコマンドに含まれるビット幅情報がmビットを示す場合における記憶領域のビット幅のこと(バースト数×データ幅)である。
機能2:通常アドレス変換機能を利用して変換された物理アドレスを用いて、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できる命令(以後、「メモリ命令」と呼ぶ。)に変換する命令変換機能。
ここで、メモリ命令とは、読み出し又は書き込みのいずれかを示すアクセス種情報と、利用する記憶領域の開始アドレスを示す物理アドレスとを含み、読み出しと書き込みとのビット幅は、512ビット(=64B)で固定されている。
図7(a)は、通常用アドレス変換部601に、マスタからのメモリコマンドが入力された場合に、通常用アドレス変換部601が、マスタからのメモリコマンドをメモリ命令に変換して出力し、その結果、メモリチップ102から、データが読み出されるときのタイミングチャートの一例である。ここでは、マスタからのメモリコマンドが、メモリチップ102から、"0x30000000"となる論理アドレスを開始アドレスとする、連続する192Bのデータを読み出すコマンドの場合の例を示している。
通常用アドレス変換部601は、192Bのデータを読み出すマスタからのメモリコマンドを受けると、通常アドレス変換機能と命令変換機能とを利用して、バンクA310とバンクB320とバンクC330とにおいて、互いに同じロウアドレス"0x000"と互いに同じコラムアドレス"0x00"とによって指される64Bの記憶領域からデータを読み出す"RDa"メモリ命令と"RDb"メモリ命令と"RDc"メモリ命令との3つのメモリ命令を生成して出力する。
すると、メモリチップ102は、64Bのデータからなる"DTa"をバンクA310から読み出し、64Bからなる"DTb"をバンクB320から読み出し、64Bからなる"DTc"をバンクC330から読み出して出力する。
図8(a)は、上記例における、"DTa"が格納されている領域と、"DTb"が格納されている領域と"DTc"が格納されている領域とを、模式的に示した模式図である。
同図に示される通り、上記例においては、"DTa"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTb"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTc"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x00"となる。
再び図6に戻って、外部メモリ制御回路519の説明を続ける。
救済用アドレス変換部602は、コマンドアービタ516とセレクタ603とに接続され、以下の2つの機能を有する。
機能1:コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域の開始アドレスを指す論理アドレスを、メモリチップ102における、バンクA310、バンクB320、バンクC330の3つのバンクからなる192MBの記憶領域のうちのmビットからなる記憶領域の開始アドレスを指す物理アドレスと、メモリチップ102におけるバンクD340からなる64MBの記憶領域のうちのkビットからなる記憶領域の開始アドレスを指す物理アドレスとに変換する救済アドレス変換機能。
ここで、mビットからなる記憶領域とkビットからなる記憶領域との関係は、kビットからなる記憶領域が、(1)mビットからなる記憶領域のうち、バンクA310における記憶領域を指すロウアドレスとカラムアドレスとの組によって示されるバンクDの記憶領域と、(2)mビットからなる記憶領域のうち、バンクB320における記憶領域を指すロウアドレスとカラムアドレスとの組によって示されるバンクDの記憶領域と、(3)mビットからなる記憶領域のうち、バンクC330における記憶領域を指すロウアドレスとカラムアドレスとの組によって示されるバンクDの記憶領域との3つの記憶領域を含む記憶領域となる関係となっている。
機能2:救済アドレス変換機能を利用して変換された物理アドレスを用いて、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できるメモリ命令に変換する命令変換機能。
図7(b)は、救済用アドレス変換部602に、マスタからのメモリコマンドが入力された場合に、救済用アドレス変換部602が、マスタからのメモリコマンドをメモリ命令に変換して出力し、その結果、メモリチップ102から、データが読み出されるときの、タイミングチャートの一例である。ここでは、マスタからのメモリコマンドが、メモリチップ102から、"0x30000000"となる論理アドレスを開始アドレスとする、連続する192Bのデータを読み出すコマンドの場合の例を示している。
救済用アドレス変換部602は、192Bのデータを読み出すマスタからのメモリコマンドを受けると、救済アドレス変換機能と命令変換機能とを利用して、バンクA310とバンクB320とバンクC330とにおいて、互いに同じロウアドレス"0x000"と互いに同じカラムアドレス"0b00"とで指される64Bの記憶領域からデータを読み出す"RDa"メモリ命令と"RDb"メモリ命令と"RDc"メモリ命令との3つのメモリ命令と、バンクD340からデータを読み出す"RDd"メモリ命令とを生成して出力する。ここで、 "RDa"メモリ命令と"RDb"メモリ命令と"RDc"メモリ命令とにおけるロウアドレスとカラムアドレスとの組が互いに同じものであるため、"RDd"メモリ命令におけるロウアドレスとカラムアドレスとの組も、これら他のコマンドにおけるロウアドレスとカラムアドレスとの組と同じものとなる。
すると、メモリチップ102は、64Bのデータからなる"DTa"をバンクA310から読み出し、64Bからなる"DTb"をバンクB320から読み出し、64Bからなる"DTc"をバンクC330から読み出し、64Bのデータからなる"DTd"をバンクD340から読み出して出力する。
図8(b)は、上記例における、"DTa"が格納されている領域と"DTb"が格納されている領域と"DTc"が格納されている領域と"DTd"が格納されている領域とを、模式的に示した模式図である。
同図に示される通り、上記例においては、"DTa"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTb"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTc"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTd"が格納されている領域の開始物理アドレスは、バンクD340のロウアドレス"0x000"とカラムアドレス"0x00"となる。
この救済の時の論理アドレスと物理アドレスの変換は図4の変換ルールではなく以下のような変換ルールを使用する。バンクアドレスは論理アドレスを0x0040で割った時の商が3の倍数ならバンクA310,3の倍数+1ならバンクB320,3の倍数+2ならバンクC330とする。同様にカラムアドレスは0x0080で割ったときの商であり、ロウアドレスは0x0080×カラム数で割った商となる。
再び図6に戻って、外部メモリ制御回路519の説明を続ける。
セレクタ603は、通常用アドレス変換部601と救済用アドレス変換部602とコマンド発行制御部605と冗長救済回路520とに接続され、以下の機能を有する。
機能:冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、(1)接続不良となっているマイクロバンプが存在しない場合には、通常用アドレス変換部601から送られるメモリ命令を選択して、コマンドキュー604に出力し、(2)接続不良となっているマイクロバンプが存在する場合には、救済用アドレス変換部602から送られるメモリ命令を選択して、コマンドキュー604に出力する機能。
コマンドキュー604は、セレクタ603とコマンド発行制御部605とに接続され、セレクタ603から送り出されるメモリ命令を、コマンド発行制御部605に読み出されるまで一時的に記憶する機能を有する。
タイミング管理部606は、コマンド発行制御部605に接続され、一定の条件に基づいて、現在発行可能となるメモリ命令を特定するためのタイミング制約情報を、逐次生成して記憶する機能を有する。
コマンド発行制御部605は、コマンドキュー604とタイミング管理部606とメモリチップ102とに接続され、タイミング管理部606に記憶されているタイミング制約情報を参照して、コマンドキュー604に一時的に記憶されているメモリ命令の中から発行可能なメモリ命令を読み出して、読み出したメモリ命令を、メモリチップ102へアウトオブオーダ(out of order)で発行する機能を有する。
データ線冗長救済部611は、メモリチップ102とデータ並べ替え部612とデータ並べ替え部615と冗長救済回路520とに接続され、以下の4つの機能を有する。
機能1:メモリチップ102から読み出された64Bの読み出しデータを受け取り、冗長救済回路420に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在しない場合は、受け取った読み出しデータを、そのままデータ並べ替え部612へ出力する機能。
機能2:メモリチップ102から読み出された64Bの読み出しデータを受け取り、冗長救済回路420に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在する場合は、受け取った読み出しデータから、接続不良となっているマイクロバンプに対応する位置のビットを間引いて、間引いた読み出しデータを左詰めして、データ並べ替え部612へ出力する機能。
図9は、接続不良となっているマイクロバンプが存在する場合において、データ線冗長救済部611にメモリチップ102から読み出しデータが入力されたときの、データ線冗長救済部611への入力データと、データ線冗長救済部611からの出力データとの関係を示す模式図である。ここで、同図は、入力データである64B(=512ビット)のデータのうち、hビット目901、iビット目902、jビット目903、kビット目904、lビット目905、mビット目906、nビット目907が、接続不良となっているマイクロバンプに対応する位置のビットとなっている場合の例を示している。
同図に示されるように、データ線冗長救済部611は、入力データから、接続不良となっているマイクロバンプに対応する位置のビットを間引いて、間引いた読み出しデータを左詰めして出力する。
再び図6に戻って、データ線冗長救済部611の機能説明を続ける。
機能3:データ並べ替え部615から送られた64Bのデータを受け取り、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在しない場合は、受け取ったデータを、そのままメモリチップ102へ出力する機能。
機能4:データ並べ替え部615から送られた64Bのデータを受け取り、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在する場合は、受け取ったデータに対して、接続不良となっているマイクロバンプに対応する位置に、その位置より上位ビット側が右シフトされるようにダミービット(例えば"0b0")を挿入して、メモリチップ102へ出力する機能。
図10は、接続不良となっているマイクロバンプが存在する場合において、データ線冗長救済部611にデータ並べ替え部615から読み出しデータが入力されたときの、データ線冗長救済部611への入力データと、データ線冗長救済部611からの出力データとの関係を示す図である。ここで、同図は、出力データである64B(=512ビット)のデータのうち、hビット目1001、iビット目1002、jビット目1003、kビット目1004、lビット目1005、mビット目1006、nビット目1007が、接続不良となっているマイクロバンプに対応する位置のビットとなっている場合の例を示している。
同図に示されるように、データ線冗長救済部611は、入力データから、接続不良となっているマイクロバンプに対応する位置に、その位置より上位ビット側が右シフトされるようにダミービットを挿入して、挿入したデータを出力する。
再び図6に戻って、外部メモリ制御回路519の説明を続ける。
データ並べ替え部612は、データ線冗長救済部611と属性付与部613とに接続され、以下の機能を有する。
機能:コマンド発行制御部605がメモリ命令をアウトオブオーダ発行した場合において、データ線冗長救済部611から、アウトオブオーダで発行された命令に呼応してメモリチップ102から読み出されたデータが送られてきたときに、これらのデータを、インオーダ(in order)となるようにリオーダ(reorder)して、属性付与部613に出力する機能。
属性付与部613は、データ並べ替え部612とRデータアラインメントバッファ614とに接続され、データ並べ替え部612から送られる読み出しデータに、読み出し元となるマスタのIDを属性情報として付与して、Rデータアラインメントバッファ614に出力する機能を有する。
Rデータアラインメントバッファ614は、属性付与部613とデータバッファ617と冗長救済回路620とに接続され、以下の5つの機能を有する。
機能1:冗長救済回路620に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在しない場合に、属性付与部613から送られる読み出しデータを、そのままデータバッファ517へ出力する機能。
機能2:冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在する場合に、属性付与部613から送られる読み出しデータを、一時的に記憶する機能。
機能3:冗長救済回路620に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプがkビット(k>0)存在する場合において、バンクA310に記憶されていた読み出しデータ(以後、「読み出しデータA」と呼ぶ。)が、属性付与部613から送られてきたときに、読み出しデータAが記憶されていた記憶領域を指すロウアドレスとカラムアドレスとの組と同じロウアドレスとカラムアドレスとの組で指されるバンクDの記憶領域に記憶されていた読み出しデータ(以後、「読み出しデータD1」と呼ぶ。)が入力されるまで待機し、読み出しデータD1が入力されると、読み出しデータD1の[0:k]からなるビット列を、読み出しデータAの[511−k:511]に挿入することで読み出しデータA1を生成して、データバッファ517へ出力する機能。
機能4:冗長救済回路620に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプがkビット(k>0)存在する場合において、バンクB320に記憶されていた読み出しデータ(以後、「読み出しデータB」と呼ぶ。)が、属性付与部613から送られてきたときに、読み出しデータBが記憶されていた記憶領域を指すロウアドレスとカラムアドレスとの組と同じロウアドレスとカラムアドレスとの組で指されるバンクDの記憶領域に記憶されていた読み出しデータ(以後、「読み出しデータD2」と呼ぶ。)が入力されるまで待機し、読み出しデータD2が入力されると、読み出しデータD2の[128:128+k]からなるビット列を、読み出しデータBの[511−k:511]に挿入することで読み出しデータB1を生成して、データバッファ517へ出力する機能。
機能5:冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプがkビット(k>0)存在する場合において、バンクC330に記憶されていた読み出しデータ(以後、「読み出しデータC」と呼ぶ。)が、属性付与部613から送られてきたときに、読み出しデータCが記憶されていた記憶領域を指すロウアドレスとカラムアドレスとの組と同じロウアドレスとカラムアドレスとの組で指されるバンクDの記憶領域に記憶されていた読み出しデータ(以後、「読み出しデータD3」と呼ぶ。)が入力されるまで待機し、読み出しデータD3が入力されると、読み出しデータD3の[256:256+k]からなるビット列を、読み出しデータCの[511−k:511]に挿入することで読み出しデータC1を生成して、データバッファ517へ出力する機能。
図11は、接続不良となっているマイクロバンプがkビット(k>0)存在する場合において、互いに同じロウアドレスと互いに同じカラムアドレスとの組によって指される、バンクA310の記憶領域から読み出された第1データと、バンクB320の記憶領域から読み出された第2データと、バンクC330の記憶領域から読み出された第3データと、バンクD340の記憶領域から読み出された第4データとが、Rデータアラインメントバッファ614に入力されたときに、Rデータアラインメントバッファ614が行う処理を模式的に示した模式図である。
同図に示されるように、Rデータアラインメントバッファ614は、第1データの[511−k:511]に、第4データの[0:k]からなるビット列を挿入して出力し、第2データの[511−k:511]に、第4データの[128:128+k]からなるビット列を挿入して出力し、第3データの[511−k:511]に、第4データの[256:256+k]からなるビット列を挿入して出力する。
再び図6に戻って、外部メモリ制御回路519の説明を続ける。
Wデータアラインメントバッファ616は、データ並べ替え部615とデータバッファ517と冗長救済回路520とに接続され、以下の3つの機能を有する。
機能1:冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在しない場合に、データバッファ517から送られるデータを、そのままデータ並べ替え部615へ出力する機能。
機能2:冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在する場合に、データバッファ517から送られるデータを、一時的に記憶する機能。
機能3:冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプがkビット(k>0)存在する場合において、1つのマスタからのメモリコマンドに基づく、バンクA310に書き込むこととなる書き込みデータ(以下、「書き込みデータA」と呼ぶ。)、又は/及びバンクB320に書き込むこととなる書き込みデータ(以下、「書き込みデータB」と呼ぶ。)、又は/及びバンクC330に書き込むこととなる書き込みデータ(以下、「書き込みデータC」と呼ぶ。)が、データバッファ517から送られてきたときに、(1)これらの書き込みデータのうち、互いに同じロウアドレスと互いに同じカラムアドレスとによって指される記憶領域へ書き込まれることとなるデータの組のそれぞれについて、書き込みデータAの[511−k:511]からなるビット列を[0:k]とし、書き込みデータBの[511−k:511]からなるビット列を[128:128+k]とし、書き込みデータCの[511−k:511]からなるビット列を[255:255+k]とする書き込みデータDを生成し、(2)送られてきた全ての書き込みデータと、生成した全ての書き込みデータDとをデータ並べ替え部615へ出力する機能。
図12は、接続不良となっているマイクロバンプがkビット(k>0)存在する場合において、1つのマスタからのメモリコマンドに基づく、互いに同じロウアドレスと互いに同じカラムアドレスとの組によって指される、バンクA310の記憶領域へ書き込むこととなる第5データと、バンクB320の記憶領域へ書き込むこととなる第6データと、バンクC330の記憶領域へ書き込むこととなる第7データとが入力されたときに、Wデータアラインメントバッファ616が行う処理を模式的に示した模式図である。
同図に示されるように、Wデータアラインメントバッファ616は、第5データの[511−k:511]からなるビット列を、[0:k]とし、第6データの[511−k:511]からなるビット列を、[128:128+k]とし、第7データの[511−k:511]からなるビット列を、[256:256+k]とする第8データを生成して、第5データ、第6データ、第7データ、及び第8データを出力する。
再び図6に戻って、外部メモリ制御回路519の説明を続ける。
データ並べ替え部615は、Wデータアラインメントバッファ616とデータ線冗長救済部611とに接続され、以下の機能を有する。
機能:コマンド発行制御部605がメモリ命令をアウトオブオーダ発行した場合において、Wデータアラインメントバッファ616からアウトオブオーダで発行された命令に対応してメモリチップ102へ書き込まれることとなるデータが送られてきたときに、これらのデータを、対応する命令の発行順となるようにリオーダして、データ線冗長救済部611に出力する機能。
以下、図面を参照しながら、上記構成の集積回路100の行う動作について説明する。
<動作>
ここでは、集積回路100の行う動作のうち、特徴的な動作である、メモリコマンド調停処理とメモリチップ制御処理とについて説明する。
<メモリコマンド調停処理>
メモリコマンド調停処理は、メモリアクセスコントローラ510が行う処理であって、第1マスタ501〜第nマスタ503から送られてくるマスタからのメモリコマンドを受け付け、受け付けたマスタからのメモリコマンドを調停する処理のことである。
以下、メモリコマンド調停処理の説明を簡略化するために、第1マスタ501を第1マスタ501〜第nマスタ503の代表として用い、第1マスタインターフェース511を第1マスタインターフェース511〜第nマスタインターフェース513の代表として用いて説明する。
図13は、メモリコマンド調停処理のフローチャートである。
メモリコマンド調停処理は、メモリアクセスコントローラ510が起動されることで開始される。
メモリコマンド調停処理が開始されると、第1マスタインターフェース511は、第1マスタ501から、マスタからのメモリコマンドが送られてくるまで待機し(ステップS1300:Noを繰り返す)、マスタからのメモリコマンドが送られてくると(ステップS1300:Yes)、内部のコマンドバッファに、マスタからのメモリコマンドを記憶する領域が空いているか否かを調べる(ステップS1305)。
ステップS1305の処理において、マスタからのメモリコマンドを記憶する領域が空いていない場合に(ステップS1305:No)、第1マスタインターフェース511は、内部のコマンドバッファに、マスタからのメモリコマンドを記憶する領域ができるまで待機し(ステップS1305:Noを繰り返す)、マスタからのメモリコマンドを記憶する領域が空いている場合に(ステップS1305:Yes)、第1マスタインターフェース511は、マスタからのメモリコマンドを受け付けて(ステップS1310)、内部のコマンドバッファに一時的に記憶する。
マスタからのメモリコマンドを記憶すると、第1マスタインターフェース511は、記憶したマスタからのメモリコマンドが、メモリチップ102へのライトコマンド(書き込み命令)であるか否かを調べる(ステップS1315)。
ステップS1315の処理において、メモリチップ102へのライトコマンドであった場合には(ステップS1315:Yes)、第1マスタインターフェース511は、第1マスタ501から送られてきている、メモリチップ102の領域への書き込みデータを受け付けて(ステップS1320)、内部のコマンドバッファに一時的に記憶しているマスタからのメモリコマンドをコマンドアービタ516に出力して、受け付けた書き込みデータをデータバッファ517へ出力する(ステップS1325)。
ステップS1315の処理において、メモリチップ102へのライトコマンドでなかった場合、すなわち、メモリチップ102へのリードコマンドであった場合には(ステップS1315:No)、第1マスタインターフェース511は、内部のコマンドバッファに一時的に記憶しているマスタからのメモリコマンドをコマンドアービタ516に出力する(ステップS1330)。
ステップS1325の処理が終了した場合、又はステップS1330の処理が終了した場合には、コマンドアービタ516は、第1マスタインターフェース511から送られてくるマスタからのメモリコマンドを受け付ける。
コマンドアービタ516は、第1マスタインターフェース511からだけでなく、第2マスタインターフェース512〜第nマスタインターフェース513からも並行して送られてくるマスタからのメモリコマンドを受け付ける。
コマンドアービタ516は、並行して受け付けたマスタからのメモリコマンドについて、受け付けたマスタからのメモリコマンドのそれぞれに優先順位を付与することで、マスタからのメモリコマンドの調停を行い(ステップS1335)、付与された優先順位が最も高いものから順に、外部メモリ制御回路519へ出力する。
外部メモリ制御回路519は、コマンドアービタ516から、マスタからのメモリコマンドが入力されると、そのコマンドに応じた処理を行う。外部メモリ制御回路519の行う処理については、後程<メモリチップ制御処理>の項目の部分で、詳細に説明する。
コマンドアービタ516は、外部メモリ制御回路519に、マスタからのメモリコマンドを出力すると、このコマンドに応じて外部メモリ制御回路519が行う処理が終了するのを待つ(ステップS1340:Noを繰り返す)。
ステップS1340の処理において、出力したマスタからのメモリコマンドに応じて外部メモリ制御回路519が行う処理が終了したことを検知すると(ステップS1340:Yes)、その出力したマスタからのメモリコマンドがライトコマンドであったか否かを調べる(ステップS1345)。
ステップS1345の処理において、マスタからのメモリコマンドがライトコマンドであった場合には(ステップS1345:Yes)、コマンドアービタ516は、そのマスタからのメモリコマンドを発行したマスタに、対応するマスタインターフェースを介して、ライトコマンドが完了した旨の信号であるライトダーン信号を出力する(ステップS1350)。
ステップS1345の処理において、マスタからのメモリコマンドがライトコマンドでなかった場合、すなわち、リードコマンドであった場合には(ステップS1345:No)、データバッファ517は、外部メモリ制御回路519から送られてきている、メモリチップ102の領域から読み出された読み出しデータを受け付けて、そのマスタからのメモリコマンドを発行したマスタに、対応するマスタインターフェースを介して、受け付けた読み出しデータを出力する(ステップS1355)。
ステップS1350の処理が終了した場合、又はステップS1355の処理が終了した場合には、メモリアクセスコントローラ510は、再びステップS1300の処理に戻って、ステップS1300以下の処理を繰り返す。
<メモリチップ制御処理>
メモリチップ制御処理は、外部メモリ制御回路519が行う処理であって、コマンドアービタ516から、マスタからのメモリコマンドが送られてきた場合に、そのマスタからのメモリコマンドを、メモリチップ102が利用できるメモリ命令に変換して、変換したメモリ命令をメモリチップ102に発行することで、メモリチップ102へのデータの書き込み、又はメモリチップ102からのデータの読み出しを行う処理のことである。
図14と図15とは、メモリチップ制御処理のフローチャートである。
メモリチップ制御処理は、外部メモリ制御回路519が起動されることで開始される。
メモリチップ制御処理が開始されると、外部メモリ制御回路519は、コマンドアービタ516から、マスタからのメモリコマンドが送られてくるまで待機し(ステップS1400:Noを繰り返す)、マスタからのメモリコマンドが送られてくると(ステップS1400:Yes)、コマンドキュー604に、新たなメモリ命令を一時的に記憶する領域が空いているか否かを調べる(ステップS1410)。
ステップS1410の処理において、コマンドキュー604に、新たなメモリ命令を一時的に記憶する領域が空いていない場合に(ステップS1410:No)、外部メモリ制御回路519は、コマンドキュー604に、新たなメモリ命令を一時的に記憶する領域が空くまで待機し(ステップS1400:Noを繰り返す)、コマンドキュー604に、新たなメモリ命令を一時的に記憶する領域が空いている場合には(ステップS1410:Yes)、(1)通常用アドレス変換部601は、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域を指す論理アドレスを、メモリチップ102における、バンクA310、バンクB320、バンクC330、バンクD340の4つのバンクからなる256MBの記憶領域のうちのmビットからなる記憶領域を指す物理アドレスに変換し、変換した物理アドレスを利用して、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できるメモリ命令に変換して、セレクタ603に出力し(ステップS1420)、(2)救済用アドレス変換部602は、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域を指す論理アドレスを、メモリチップ102における、バンクA310、バンクB320、バンクC330の3つのバンクからなる192MBの記憶領域のうちのmビットからなる記憶領域を指す物理アドレスと、メモリチップ102におけるバンクD340からなる64MBの記憶領域のうちのkビットからなる記憶領域を指す物理アドレスとに変換し、変換した物理アドレスを利用して、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できるメモリ命令に変換して、セレクタ603に出力する(ステップS1430)。
セレクタ603は、通常用アドレス変換部601からメモリ命令を受け取り、救済用アドレス変換部602からメモリ命令を受け取ると、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在するか否かを調べる(ステップS1440)。
ステップS1440の処理において、接続不良となっているマイクロバンプが存在する場合に(ステップS1440:Yes)、セレクタ603は、救済用アドレス変換部602によって生成されたメモリ命令を選択してコマンドキュー604に出力する(ステップS1450)。
ステップS1440の処理において、接続不良となっているマイクロバンプが存在しない場合に(ステップS1440:No)、セレクタ603は、通常用アドレス変換部601によって生成されたメモリ命令を選択してコマンドキュー604に出力する(ステップS1460)。
ステップS1450の処理が終了した場合、又はステップS1460の処理が終了した場合に、コマンドキュー604は、入力されたメモリ命令を一時的に記憶する(ステップS1470)。
コマンドキュー604がメモリ命令を一時的に記憶すると、コマンド発行制御部605は、タイミング管理部606に記憶されているタイミング制約情報を参照して、コマンドキュー604に一時的に記憶されているメモリ命令の中に、発行可能なメモリ命令が存在するか否かを調べる(ステップS1480)。
ステップS1480の処理において、発行可能なメモリ命令が存在しない場合に(ステップS1480:No)、コマンド発行制御部605は、発行可能なメモリ命令が存在するようになるまで待機する(ステップS1480:Noの処理を繰り返す)。
ステップS1480の処理において、発行可能なメモリ命令が存在する場合に(ステップS1480:Yes)、コマンド発行制御部605は、その発行可能なメモリ命令が、メモリチップ102へのライト命令(書き込み命令)であるか否かを調べる(ステップS1500)。
ステップS1500の処理において、ライト命令であった場合に(ステップS1500:Yes)、Wデータアラインメントバッファ616は、データバッファ517から送られる、メモリチップ102への書き込む書き込みデータを受け取る(ステップS1505)。
Wデータアラインメントバッファ616は、書き込みデータを受け取ると、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在するか否かを調べる(ステップS1510)。
ステップS1510の処理において、接続不良となっているマイクロバンプが存在する場合に(ステップS1510:Yes)、Wデータアラインメントバッファ616は、接続不良となっているマイクロバンプの数をkビット(k>0)とすると、1つのマスタからのメモリコマンドに基づく、バンクA310に書き込むこととなる書き込みデータA、又は/及びバンクB320に書き込むこととなる書き込みデータB、又は/及びバンクC330に書き込むこととなる書き込みデータCが、データバッファ517から送られてくるまで書き込みデータを一時的に記憶し、(1)これらの書き込みデータのうち、互いに同じロウアドレスと互いに同じカラムアドレスとによって指される記憶領域へ書き込まれることとなるデータの組のそれぞれについて、書き込みデータAの[511−k:511]からなるビット列を[0:k]とし、書き込みデータBの[511−k:511]からなるビット列を[128:128+k]とし、書き込みデータCの[511−k:511]からなるビット列を[255:255+k]とする書き込みデータDを生成し、(2)送られてきた全ての書き込みデータと、生成した全ての書き込みデータDとをデータ並べ替え部615へ出力する(ステップS1515)。
データ並べ替え部615は、Wデータアラインメントバッファ616から書き込みデータが入力されると、必要に応じて書き込みデータの順番を並べ替えて、データ線冗長救済部611へ出力する(ステップS1520)。
データ線冗長救済部611は、データ並べ替え部615から書き込みデータが入力されると、接続不良となっているマイクロバンプが存在するので、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、データ並べ替え部615から送られた書き込みデータに対して、接続不良となっているマイクロバンプに対応する位置に、その位置より上位ビット側が右シフトされるようにダミービット(例えば"0b0")を挿入する(ステップS1525)。
ステップS1510の処理において、接続不良となっているマイクロバンプが存在しない場合に(ステップS1510:No)、Wデータアラインメントバッファ616は、データバッファ517から送られるデータを、そのままデータ並べ替え部615へ出力し、データ並べ替え部615は、Wデータアラインメントバッファ616から書き込みデータが入力されると、必要に応じて書き込みデータの順番を並べ替えて、データ線冗長救済部611へ出力し、データ線冗長救済部611は、接続不良となっているマイクロバンプが存在しないので、データ並べ替え部615から送られた書き込みデータに、ダミービットの挿入は行わない(ステップS1530)。
ステップS1525の処理が終了した場合、又はステップS1530の処理が終了した場合に、コマンド発行制御部605は、メモリチップ102へのライト命令を発行し(ステップS1535)、データ線冗長救済部611は、メモリチップ102へ書き込みデータを出力する(ステップS1540)。
ステップS1500の処理において、ライト命令でなかった場合、すなわちリード命令であった場合に(ステップS1500:No)、コマンド発行制御部605は、メモリチップ102へのリード命令を発行する(ステップS1555)。
すると、メモリチップ102は、そのリード命令に従って読み出しデータを読み出して、データ線冗長救済部611に出力し、データ線冗長救済部611は、メモリチップ102から読み出された読み出しデータを受け取る(ステップS1560)。
データ線冗長救済部611は、メモリチップ102から読み出された読み出しデータを受け取ると、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、接続不良となっているマイクロバンプが存在するか否かを調べる(ステップS1565)。
ステップS1565の処理において、接続不良となっているマイクロバンプが存在する場合には(ステップS1565:Yes)、データ線冗長救済部611は、冗長救済回路420に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて、受け取った読み出しデータから、接続不良となっているマイクロバンプに対応する位置のビットを間引いて、間引いた読み出しデータを左詰めして、データ並べ替え部612へ出力する(ステップS1570)。
データ並べ替え部612は、データ線冗長救済部611から読み出しデータが入力されると、必要に応じて読み出しデータの順番を並べ替えて、属性付与部613へ出力し(ステップS1575)、属性付与部613は、データ並べ替え部612から送られる読み出しデータに、読み出し元となるマスタのIDを属性情報として付与して、Rデータアラインメントバッファ614に出力する。
データ並べ替え部612から読み出しデータが入力されると、Rデータアラインメントバッファ614は、接続不良となっているマイクロバンプが存在するので、接続不良となっているマイクロバンプの数をkビット(k>0)とすると、(1)バンクA310に記憶されていた読み出しデータAが、属性付与部613から送られてきたときに、読み出しデータAが記憶されていた記憶領域を指すロウアドレスとカラムアドレスとの組と同じロウアドレスとカラムアドレスとの組で指されるバンクDの記憶領域に記憶されていた読み出しデータ(以後、「読み出しデータD1」と呼ぶ。)が入力されるまで待機し、読み出しデータD1が入力されると、読み出しデータD1の[0:k]からなるビット列を、読み出しデータAの[511−k:511]に挿入することで読み出しデータA1を生成して、データバッファ517へ出力し、(2)バンクB320に記憶されていた読み出しデータBが、属性付与部613から送られてきたときに、読み出しデータBが記憶されていた記憶領域を指すロウアドレスとカラムアドレスとの組と同じロウアドレスとカラムアドレスとの組で指されるバンクDの記憶領域に記憶されていた読み出しデータ(以後、「読み出しデータD2」と呼ぶ。)が入力されるまで待機し、読み出しデータD2が入力されると、読み出しデータD2の[128:128+k]からなるビット列を、読み出しデータBの[511−k:511]に挿入することで読み出しデータB1を生成して、データバッファ517へ出力し、(3)バンクC330に記憶されていた読み出しデータCが、属性付与部613から送られてきたときに、読み出しデータCが記憶されていた記憶領域を指すロウアドレスとカラムアドレスとの組と同じロウアドレスとカラムアドレスとの組で指されるバンクDの記憶領域に記憶されていた読み出しデータ(以後、「読み出しデータD3」と呼ぶ。)が入力されるまで待機し、読み出しデータD3が入力されると、読み出しデータD3の[256:256+k]からなるビット列を、読み出しデータCの[511−k:511]に挿入することで読み出しデータC1を生成して、データバッファ517へ出力する(ステップS1580)。
ステップS1565の処理において、接続不良となっているマイクロバンプが存在しない場合には(ステップS1565:No)、データ線冗長救済部611は、受け取った読み出しデータを、そのままデータ並べ替え部612へ出力し、データ並べ替え部612は、受け取った読み出しデータを、必要に応じて読み出しデータの順番を並べ替えて、属性付与部613へ出力し、属性付与部613は、受け取った読み出しデータに、読み出し元となるマスタのIDを属性情報として付与して、Rデータアラインメントバッファ614に出力する(ステップS1585)。
属性付与部613から読み出しデータが入力されると、Rデータアラインメントバッファ614は、接続不良となっているマイクロバンプが存在しないので、入力された読み出しデータを、そのままデータバッファ517へ出力する(ステップS1590)。
ステップS1540の処理が終了した場合、ステップS1580の処理が終了した場合、又はステップS1590の処理が終了した場合には、外部メモリ制御回路519は、再びステップS1400の処理に戻って、ステップS1400以下の処理を繰り返す。
以下、集積回路100について考察する。
<考察1>
上記集積回路100によると、接続不良マイクロバンプが存在しない場合には、システムLSIチップ101に含まれる各マスタは、バンクA310、バンクB320、バンクC330、バンクD340からなる256MBの記憶領域を利用する。そして、集積回路100は、高機能向け良品として動作する。
また、もしも、メモリデータ用マイクロバンプ群の中に、128個以下の接続不良マイクロバンプが存在してしまっている場合であっても、システムLSIチップ101に含まれる各マスタは、バンクA310、バンクB320、バンクC330からなる192MBの記憶領域を利用することができる。そして、この場合、バンクD340からなる64MBの記憶領域は、バンクA310、バンクB320、バンクC330からなる192MBの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用される。但し、この場合には、接続不良マイクロバンプが存在しない場合に比べて、利用するメモリ領域量に対する、外部メモリ制御回路519の発行するメモリ命令の数の割合が多くなってしまうため、接続不良マイクロバンプが存在しない場合に比べて、システムLSIチップ101に含まれる各マスタによる、メモリチップ102の利用効率が低下してしまうこととなる。そして、利用する記憶領域も少なくなってしまうこととなる。しかしながら、集積回路100は普及向け良品として動作する。
これに対して、従来の、メモリアクセスコントローラ510を備えることのないロジックチップとメモリチップとが、マイクロバンプを介して互いに接続されてなる集積回路では、接続不良マイクロバンプが1つでも存在してしまうと、この従来の集積回路は正しく動作することができなくなってしまうため、不良品となってしまう。
従って、集積回路100は、従来の集積回路と比べて、マイクロバンプの接続不良に起因する不良品の発生頻度が低下することとなる。
以下、上述の集積回路100を製造する製造方法について、図面を用いて説明する。
<製造方法>
図16と図17とは、集積回路100の製造方法のフローチャートである。
集積回路100の製造は、まず、集積回路100の開発が着手されることで開始される。
集積回路100の開発が着手されると、最初に、集積回路100の機能仕様設計が行われ(ステップS1600)、メモリ構成が決定される(ステップS1610)。
機能仕様設計においてなされた、集積回路100のコスト、歩留まり等の試算に基づいて、接続不良マイクロバンプが発生してしまった場合に普及向け良品として救済することができる、接続不良マイクロバンプの最大ビット数(以下、「最大救済ビット数」と呼ぶ。)を決定する(ステップS1620)。
最大救済ビット数を決定すると、高機能向け良品として動作する場合における、各マスタからのメモリチップ102へのメモリ帯域と、普及向け良品として動作する場合における、各マスタからのメモリチップ102へのメモリ帯域との見積もりを行い(ステップS1630)、高機能向け良品として動作する場合におけるメモリマップと、普及向け良品として動作する場合におけるメモリマップとを決定する(ステップS1640)。ここで、メモリマップの決定とは、マスタ毎に、利用するメモリ空間(=論理アドレス空間)を決定することをいう。
メモリマップを決定すると、メモリチップ102へのメモリ帯域と、メモリチップ102のメモリ容量との双方が、ステップS1610の処理において決定されたメモリ構成の要件を満たしているか否かを調べる(ステップS1650)。
ステップS1650の処理において、メモリ構成の要件を満たしていない場合には(ステップS1650:No)、メモリ構成の要件を満たすようになるまで、ステップS1630の処理〜ステップS1650の処理までを繰り返し行う。メモリ構成を満たしていない程度によっては、ステップS1600の処理、又はステップS1610の処理まで戻ることもある。
ステップS1650の処理において、メモリ構成の要件を満たしている場合には(ステップS1650:Yes)、システムLSIチップ101の物理設計を行い、システムLSIチップ101を製造し(ステップS1660)、メモリチップ102を購入する(若しくは、製造する)。
そして、製造したシステムLSI101のうちの良品と、購入した(若しくは、製造した)メモリチップ102のうちの良品とを積層して集積回路100を組み立てる(ステップS1670)。
その後、組み立てた集積回路100について、LSIテスタを用いて、マイクロバンプの中に接合不良となっているものがあるか否かを調べるためのテストを行う(ステップS1680)。ここで、このテストは、システムLSIチップ101からメモリチップ102へのデータ読み出し処理命令群、又はデータの書き込み処理命令群を含むテストベクトルを、LSIテスタを用いて集積回路100に実行させることで行われる。
そして、テスト結果を解析して、メモリデータ用マイクロバンプ群以外のマイクロバンプの中に接続不良となっているものがあるか否かを調べる(ステップS1700)。
ステップS1700の処理において、接続不良となっているマイクロバンプが存在しない場合に(ステップS1700:Yes)、さらに、テスト結果を解析して、マイクロバンプ群の中に接続不良となっているマイクロバンプがあるか否かを調べる(ステップS1710)。
ステップS1710の処理において、接続不良となっているマイクロバンプが存在する場合に(ステップS1710:Yes)、さらに、接続不良となっているマイクロバンプの数が、最大救済ビット数以下か否かを調べる(ステップS1720)。
ステップS1720の処理において、接続不良となっているマイクロバンプの数が、最大救済ビット数以下の場合に(ステップS1720:Yes)、イーヒューズ回路521に、LSIテスタを用いて、接続不良となっているマイクロバンプのマイクロバンプIDを記憶させて(ステップS1720)、集積回路100を、7GB/sのメモリ帯域幅が確保されている普及機能向け良品に選定する(ステップS1740)。
ステップS1700の処理において、接続不良となっているマイクロバンプが存在する場合(ステップS1700:No)、又は、ステップS1720の処理において、接続不良となっているマイクロバンプの数が、最大救済ビット数より多い場合に(ステップS1720:No)、集積回路100を不良品に選定する(ステップS1750)。
ステップS1710の処理において、接続不良となっているマイクロバンプが存在しない場合に(ステップS1710:No)、イーヒューズ回路521に情報を記憶させることなく(ステップS1760)、10GB/sのメモリ帯域幅が確保されている高機能向け良品として選定する(ステップS1770)。
ステップS1740の処理が終了した場合、ステップS1750の処理が終了した場合、又はステップS1770の処理が終了した場合に、集積回路100の製造は終了する。
<考察2>
普及機能向け良品に選定された集積回路100には、メモリデータ用マイクロバンプ群の中に接続不良となっているマイクロバンプが存在している。このため、メモリチップ102から読み出されたデータのうちの一部のデータを有効に利用することができない。従って、メモリチップ102から一定量の有効なデータを読み出すためには、普及機能向け良品に選定された集積回路100は、高機能向け良品に選択された集積回路100(すなわち、接続不良となっているマイクロバンプが存在していない場合の集積回路100)に比べて、メモリチップ102からのデータの読み出し回数が多くなる。
このため、メモリチップ102からデータを読み出す処理を含む互いに同様の処理を、普及機能向け良品に選定された集積回路100と高機能向け良品に選定された集積回路100とが実行する場合には、普及機能向け良品に選定された集積回路100においてメモリチップ102が消費する消費電流量の方が、高機能向け良品に選定された集積回路100においてメモリチップ102が消費する消費電流量よりも大きくなる。
また、一般に、メモリは、データを読み出す場合における消費電流の時間変動パターンとして、特徴的なピークを含むパターンを示すことが知られている。
これは、一般に、メモリがデータを読み出す一連の動作において、例えば、ビットラインにプリチャージするプリチャージ期間、複数のセンスアンプを並列動作させるセンスアンプ動作期間等といった、他の期間に対して比較的大きな電流が流れる特徴的な期間が存在することに起因している。
従って、メモリがデータを読み出す場合の消費電流の時間変動パターンとして現れる、上述のような特徴的なピークを含むパターンの回数を調べることで、メモリによるデータの読み出し回数を推定できる。
このことを利用して、所定の処理を行う集積回路100におけるメモリチップ102による読み出し回数を推定すれば、その集積回路100が、普及機能向け良品に選定されたものであるか高機能向け良品に選定されたものであるかを区別することができる。
また、データの書き込みについても、データの読み出しについてと同様に、メモリチップ102へデータを書き込む処理を含む互いに同様の処理を、普及機能向け良品に選定された集積回路100と高機能向け良品に選定された集積回路100とが実行する場合には、普及機能向け良品に選定された集積回路100においてメモリチップ102が消費する消費電流の方が、高機能向け良品に選定された集積回路100においてメモリチップ102が消費する消費電流よりも大きくなる。
また、一般に、メモリは、データを書き込む場合における消費電流の時間変動パターンとして、特徴的なピークを含むパターンを示すことが知られている。
これは、一般に、メモリがデータを書き込む一連の動作において、例えば、メモリセルにデータを書き込むためにビットラインを並列に駆動するメモリセルへの書込期間等といった、他の期間に対して比較的大きな電流が流れる特徴的な期間が存在することに起因している。
従って、メモリがデータを書き込む場合の消費電流の時間変動パターンとして現れる、上述のような特徴的なピークを含むパターンの回数を調べることで、メモリによるデータの書き込み回数を推定できる。
このことを利用して、所定の処理を行う集積回路100におけるメモリチップ102による書き込み回数を推定すれば、その集積回路100が、普及機能向け良品に選定されたものであるか高機能向け良品に選定されたものであるかを区別することができる。
<実施の形態2>
<概要>
以下、本発明に係るメモリアクセス制御装置の一例として、実施の形態1における集積回路100の一部を変形した第1変形集積回路について説明する。
実施の形態1に係る集積回路100は、システムLSIチップ101が、イーヒューズ回路521を含む冗長救済回路520を備え、冗長救済回路520が、イーヒューズ回路521を用いて、接続不良となっているマイクロバンプのマイクロバンプIDを記憶する構成の例であったが、本実施の形態2に係る第1変形集積回路は、システムLSIチップが、イーヒューズ回路521を含む冗長救済回路520を備えない構成の例となっている。
この第1変形集積回路には、メモリアクセス制御装置内に、マイクロバンプのセルフ接続テストを実施して、接続不良となっているマイクロバンプの位置を記憶するBIST(Built-In Self Test)部が備えられている。そして、このBIST部が、集積回路100が起動される毎に、マイクロバンプのセルフ接続テストを実施することで接続不良となっているマイクロバンプの位置を記憶する。
以下、本実施の形態2に係る第1変形集積回路の構成について、実施の形態1に係る集積回路100との相違点を中心に、図面を参照しながら説明する。
<構成>
実施の形態2に係る第1変形集積回路は、実施の形態1に係る集積回路100から、外部メモリ制御回路519が外部メモリ制御回路1819に変形され、システムLSIチップ101がシステムLSIチップ1801に変形されたものである。そして、外部メモリ制御回路519が外部メモリ制御回路1819に変形されたことに伴って、メモリアクセスコントローラ510がメモリアクセスコントローラ1810に変形されている。
図18は、システムLSIチップ1801の主要なハードウエア構成を示す構成図である。
同図に示されるように、システムLSIチップ1801は、実施の形態1におけるシステムLSIチップ101から、冗長救済回路520が削除され、メモリアクセスコントローラ510がメモリアクセスコントローラ1810に変更されたものとなっている。
そして、メモリアクセスコントローラ1810は、実施の形態1におけるメモリアクセスコントローラ510から、外部メモリ制御回路519が外部メモリ制御回路1819に変更されたものとなっている。
図19は、外部メモリ制御回路1819の主要な機能構成を示す構成図である。
同図に示されるように、外部メモリ制御回路1819は、実施の形態1における外部メモリ制御回路519から、BIST部1901とセレクタ1902とセレクタ1903とが追加され、セレクタ603における冗長救済回路520への接続が、BIST部1901への接続へ変更され、データ線冗長救済部611における冗長救済回路520への接続が、BIST部1901への接続へ変更され、Rデータアラインメントバッファ614における冗長救済回路520への接続が、BIST部1901への接続へ変更され、Wデータアラインメントバッファ616における冗長救済回路520への接続が、BIST部1901への接続へ変更されたものである。
BIST部1901は、セレクタ1902とセレクタ1903とRデータアラインメントバッファ614とセレクタ603とデータ線冗長救済部611とWデータアラインメントバッファ616とに接続され、内部に、接続不良となっているマイクロバンプのマイクロバンプIDを記憶するための記憶部を有し、以下の機能を有する。
機能1:外部メモリ制御回路1819が起動されると、メモリデータ用マイクロバンプ群の接続状態をテストするための、テストベクタと期待値とを生成する機能。
機能2:生成したテストベクタと期待値とを用いて、メモリデータ用マイクロバンプ群の接続状態をテストして、接続不良マイクロバンプを特定する機能。
機能3:特定した接続不良マイクロバンプのマイクロバンプIDを、内部の記憶部に記憶する機能。
セレクタ1902は、コマンドアービタ516とBIST部1901と通常用アドレス変換部601と救済用アドレス変換部602とに接続され、BIST部1901によって制御され、BIST部1901がメモリデータ用マイクロバンプ群の接続状態をテストしている期間中は、BIST部1901から送られてくる信号を選択して出力し、BIST部1901がメモリデータ用マイクロバンプ群の接続状態をテストしている期間以外の期間は、コマンドアービタ516から送られてくる信号を選択して出力する機能を有する。
セレクタ1903は、データバッファ517とBIST部1901とWデータアラインメントバッファ616とに接続され、BIST部1901によって制御され、BIST部1901がメモリデータ用マイクロバンプ群の接続状態をテストしている期間中は、BIST部1901から送られてくる信号を選択して出力し、BIST部1901がメモリデータ用マイクロバンプ群の接続状態をテストしている期間以外の期間は、データバッファ517から送られてくる信号を選択して出力する機能を有する。
また、セレクタ603とデータ線冗長救済部611とRデータアラインメントバッファ614とWデータアラインメントバッファ616とは、実施の形態1において、冗長救済回路520に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて実現する機能を、BIST部1901に記憶されている、接続不良になっているマイクロバンプのマイクロバンプIDに基づいて実現する。
以下、図面を参照しながら、上記構成の第1変形集積回路の行う動作について説明する。
<動作>
第1変形集積回路は、実施の形態1における集積回路100の行う動作に加えて、自己診断処理を行う。
以下、この自己診断処理について説明する。
<自己診断処理>
自己診断処理は、外部メモリ制御回路1819が、メモリチップ102を用いて行う処理であって、メモリデータ用マイクロバンプ群の接続状態をテストして、接続不良マイクロバンプを特定し、特定した接続不良マイクロバンプのマイクロバンプIDを、BIST部1901が記憶する処理のことである。
図20は、自己診断処理のフローチャートである。
自己診断処理は、外部メモリ制御回路1819が起動されることで開始される。
自己診断処理が開始されると、BIST部1901は、メモリデータ用マイクロバンプ群の接続状態をテストするための、テストベクタと期待値とを生成する(ステップS2000)。このテストベクタは、例えば、メモリチップ102へのデータの書き込み命令群と、メモリチップ102からのデータの読み出し命令群等から構成される。
テストベクタと期待値とを生成すると、BIST部1901は、セレクタ1902とセレクタ1903とを制御して、生成したテストベクタと期待値とを用いて、メモリデータ用マイクロバンプ群の接続状態をテストする(ステップS2010)。
ステップS2010の処理において、メモリデータ用マイクロバンプ群の中に接続不良のマイクロバンプが検出された場合(ステップS2020:Yes)に、BIST部1901は、特定した接続不良マイクロバンプのマイクロバンプIDを、内部の記憶部に記憶する(ステップS2030)。
ステップS2010の処理において、メモリデータ用マイクロバンプ群の中に接続不良のマイクロバンプが検出されなかった場合(ステップS2020:No)に、BIST部1901は、内部の記憶部に何も記憶しない(ステップS2040)。
ステップS2030の処理が終了した場合、又はステップS2040の処理が終了した場合に、外部メモリ制御回路1819は、その自己診断処理を終了する。
以下、第1変形集積回路について考察する。
<考察>
第1変形集積回路は、外部メモリ制御回路1819が起動される毎に、メモリデータ用マイクロバンプ群の接続状態をテストして、接続不良マイクロバンプが存在する場合には、その接続不良マイクロバンプのマイクロバンプIDを記憶する。
これによって、第1変形集積回路は、eFUSE回路を備えていない構成でありながら、メモリデータ用マイクロバンプ群の中に接続不良マイクロバンプが存在していても、普及向け良品として動作する。さらには、製品出荷後に新たな接続不良マイクロバンプが発生してしまっても、その接続不良マイクロバンプの存在を反映した記憶領域の利用が可能となる。
高機能向けとして出荷した製品においても有効である。従来では接続故障が発生した際に商品として全く機能しなくなってしまっていた。しかし、本発明を用いることで故障した際にも普及版と同程度の制限動作ではあるが動作が可能である。このため、早急に修理できない場合においても基本的な機能だけは使用できる。
<実施の形態3>
<概要>
以下、本発明に係るメモリアクセス制御装置の一例として、実施の形態1における集積回路100の一部を変形した第2変形集積回路について説明する。
実施の形態1に係る集積回路100は、外部メモリ制御回路519が、通常用アドレス変換部601と救済用アドレス変換部602とを備える構成の例であったが、本実施の形態3に係る第2変形集積回路は、外部メモリ制御回路519が通常用アドレス変換部601を備えない構成の例となっている。
この第2変形集積回路は、接続不良マイクロバンプの有無にかかわらず、常に救済用アドレス変換部602によって変換された物理アドレスに基づくメモリ命令が発行されることとなるため、接続不良マイクロバンプの有無にかかわらず、システムLSIチップ101に含まれる各マスタは、バンクA310、バンクB320、バンクC330からなる192MBの記憶領域を利用することとなる。そして、バンクD340からなる64MBの記憶領域は、バンクA310、バンクB320、バンクC330からなる192MBの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用されることとなる。
以下、本実施の形態3に係る第2変形集積回路の構成について、実施の形態1に係る集積回路100との相違点を中心に、図面を参照しながら説明する。
<構成>
実施の形態3に係る第2変形集積回路は、実施の形態1に係る集積回路100から、外部メモリ制御回路519が外部メモリ制御回路2119に変形されたものである。
図21は、外部メモリ制御回路2119の主要なハードウエア構成を示す構成図である。
同図に示されるように、外部メモリ制御回路2119は、実施の形態1における外部メモリ制御回路519から、通常用アドレス変換部601とセレクタ603とが削除され、救済用アドレス変換部602が、コマンドアービタ516とコマンドキュー604とに接続されるように変更されたものとなっている。そして、このことによって、第2変形集積回路は、接続不良マイクロバンプの有無にかかわらず、常に救済用アドレス変換部602によって変換された物理アドレスに基づくメモリ命令を発行することとなる。
以下、上記構成の第2変形集積回路を製造する製造方法について、図面を用いて説明する。
<製造方法>
図22と図23とは、第2変形集積回路の製造方法のフローチャートである。
第2変形集積回路の製造は、実施の形態1における集積回路100の製造と同様に、まず、第2変形集積回路の設計が着手されることで開始される。
ステップS2200の処理〜ステップS2220の処理は、実施の形態1におけるステップS1600の処理〜ステップS1620の処理と同様の処理となっている。よって、ここではこれらの説明を省略する。
ステップS2220の処理が終了すると、各マスタからのメモリチップ102へのメモリ帯域の見積もりを行い(ステップS2230)、メモリチップ102のメモリマップを決定する(ステップS2240)。
ステップS2250の処理〜ステップS2320の処理は、実施の形態1におけるステップS1650の処理〜ステップS1720の処理と同様の処理となっている。よって、ここではこれらの説明を省略する。
ステップS2310の処理において、接続不良となっているマイクロバンプが存在しない場合(ステップS2310:No)、又はステップS2320の処理において、接続不良となっているマイクロバンプの数が、最大救済ビット数以下の場合に(ステップS2320:Yes)、第2変形集積回路を良品に選定する(ステップS2330)。
ステップS2300の処理において、接続不良となっているマイクロバンプが存在する場合(ステップS2300:No)、又は、ステップS2320の処理において、接続不良となっているマイクロバンプの数が、最大救済ビット数より多い場合に(ステップS2320:No)、第2変形集積回路を不良品に選定する(ステップS2340)。
ステップS2320の処理が終了した場合、又はステップS2340の処理が終了した場合に、第2変形集積回路の製造は終了する。
<考察>
第2変形集積回路は、メモリデータ用マイクロバンプ群の中に、128個以下の接続不良マイクロバンプが存在している場合には不具合が発生しない。そして、その場合には良品として選定される。
<実施の形態4>
<概要>
以下、本発明に係るメモリアクセス制御装置の一例として、実施の形態1における集積回路100の一部を変形した第3変形集積回路について説明する。
この第3変形集積回路は、実施の形態1に係る救済用アドレス変換部602が、第1変形救済用アドレス変換部に変形されている。
実施の形態1では、救済用アドレス変換部602の行う論理アドレス−物理アドレス変換は、バンクD340からなる64MBの記憶領域が、バンクA310とバンクB320とバンクC330からなる192MBの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用されるように行うものであったが、実施の形態4では、第1変形救済用アドレス変換部の行う論理アドレス−物理アドレス変換は、バンクC330とバンクD340とからなる128MBの記憶領域が、バンクA310とバンクB320とからなる128MBの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用されるように行うものとなっている。
<構成>
第1変形救済用アドレス変換部は、コマンドアービタ516とセレクタ603とに接続され、以下の2つの機能を有する。
機能1:コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域の開始アドレスを指す論理アドレスを、メモリチップ102における、バンクA310とバンクB320とからなる128MBの記憶領域のうちのmビットからなる記憶領域(以下、「第1のmビットからなる記憶領域」と呼ぶ。)の開始アドレスを指す物理アドレスと、メモリチップ102における、バンクC330とバンクD340とからなる128MBの記憶領域のうちのmビットからなる記憶領域(以下、「第2のmビットからなる記憶領域」と呼ぶ。)の開始アドレスを指す物理アドレスとに変換する救済アドレス変換機能。
ここで、第1のmビットからなる記憶領域と、第2のmビットからなる記憶領域との関係は、(1)第1のmビットからなる記憶領域のうち、バンクA310に含まれる領域を示すロウアドレスとカラムアドレスとの組と、第2のmビットからなる記憶領域のうち、バンクC330に含まれる領域を示すロウアドレスとカラムアドレスとの組とが互いに等しくなり、(2)第1のmビットからなる記憶領域のうち、バンクB320に含まれる領域を示すロウアドレスとカラムアドレスとの組と、第2のmビットからなる記憶領域のうち、バンクD340に含まれる領域を示すロウアドレスとカラムアドレスとの組とが互いに等しくなる関係となっている。
機能2:救済アドレス変換機能を利用して変換された物理アドレスを用いて、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できるメモリ命令に変換する命令変換機能。
図24は、第1変形救済用アドレス変換部に、マスタからのメモリコマンドが入力された場合に、第1変形救済用アドレス変換部が、マスタからのメモリコマンドをメモリ命令に変換して出力し、その結果、メモリチップ102から、データが読み出されるときの、タイミングチャートの一例である。ここでは、マスタからのメモリコマンドが、メモリチップ102から、"0x30000000"となる物理アドレスを開始アドレスとする、連続する192Bのデータを読み出すコマンドの場合の例を示している。
第1変形救済用アドレス変換部は、192Bのデータを読み出すマスタからのメモリコマンドを受けると、救済アドレス変換機能と命令変換機能とを利用して、(1)バンクA310とバンクC330とにおいて、互いに同じロウアドレス"0x000"と互いに同じカラムアドレス"0x00"とで指される64Bの記憶領域からデータを読み出す"RDa1"メモリ命令と"RDc1"メモリ命令と、(2)バンクB320とバンクD340とにおいて、互いに同じロウアドレス"0x000"と互いに同じカラムアドレス"0x00"とで指される64Bの記憶領域からデータを読み出す"RDb1"メモリ命令と"RDd1"メモリ命令と、(3)バンクA310とバンクC330とにおいて、互いに同じロウアドレス"0x000"と互いに同じカラムアドレス"0x01"とで指される64Bの記憶領域からデータを読み出す"RDa2"メモリ命令と"RDc2"メモリ命令とを生成して出力する。
すると、メモリチップ102は、64Bのデータからなる"DTa1"をバンクA310から読み出し、64Bからなる"DTc1"をバンクC330から読み出し、64Bからなる"DTb1"をバンクB320から読み出し、64Bのデータからなる"DTd1"をバンクD340から読み出し、64Bのデータからなる"DTa2"をバンクA310から読み出し、64Bからなる"DTc2"をバンクC330から読み出して出力する。
図25は、上記例における、"DTa1"が格納されている領域と"DTc1"が格納されている領域と"DTb1"が格納されている領域と"DTd1"が格納されている領域と"DTa2"が格納されている領域と"DTc2"が格納されている領域とを、模式的に示した模式図である。
同図に示される通り、上記例においては、"DTa1"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTb1"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTc1"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTd1"が格納されている領域の開始物理アドレスは、バンクD340のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTa2"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x01"となり、"DTc2"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x01"となる。
本実施例の論理アドレスから物理アドレスへの変換ルールは図26のように図4の例を全体に右に1ビットシフトさせたものと同様である。このため、通常用アドレス変換と救済用アドレス変換部のハードウエア資源を多く共用することが可能である。
但し、この変換ルールの中のバンクアドレスに関しては、下位1ビットに対する変換ルールを示しており、実際の外部メモリアクセスの際には、通常用バンクには上位ビットに"0"、救済用バンクには上位ビットに"1"を追加する。
<考察>
第3変形集積回路は、メモリデータ用マイクロバンプ群の中に、128個以上の接続不良マイクロバンプが存在している場合であっても、その数が256個以下であれば、メモリチップ102を利用することができる。
<実施の形態5>
<概要>
以下、本発明に係るメモリアクセス制御装置の一例として、実施の形態1における集積回路100の一部を変形した第4変形集積回路について説明する。
この第4変形集積回路は、実施の形態1に係る救済用アドレス変換部602が、第2変形救済用アドレス変換部に変形されている。
実施の形態1では、救済用アドレス変換部602の行う論理アドレス−物理アドレス変換は、バンクD340からなる64MBの記憶領域が、バンクA310とバンクB320とバンクC330からなる192MBの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用されるように行うものであったが、実施の形態5では、第2変形救済用アドレス変換部の行う論理アドレス−物理アドレス変換は、バンクA310、バンクB320、バンクC330、バンクD340からなる256MBの記憶領域のうちの128MBの記憶領域を、残りの128MBの記憶領域のうちの、接続不良マイクロバンプの存在によって、アクセス不能となっている領域を救済するために利用されるように行うものとなっている。
<構成>
第2変形救済用アドレス変換部は、コマンドアービタ516とセレクタ603とに接続され、以下の2つの機能を有する。
機能1:コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域の開始アドレスを指す論理アドレスを、メモリチップ102における、バンクA310とバンクB320とバンクC330とバンクD340とからなる256MBの記憶領域のうち、カラムアドレスの最下位ビットが"0"となる128MBの記憶領域のうちのmビットからなる記憶領域(以下、「第1のmビットからなる記憶領域」と呼ぶ。)の開始アドレスを指す物理アドレスと、メモリチップ102における、バンクA310とバンクB320とバンクC330とバンクD340とからなる256MBの記憶領域のうち、カラムアドレスの最下位ビットが"1"となる128MBの記憶領域のうちのmビットからなる記憶領域(以下、「第2のmビットからなる記憶領域」と呼ぶ。)の開始アドレスを指す物理アドレスとに変換する救済アドレス変換機能。
機能2:救済アドレス変換機能を利用して変換された物理アドレスを用いて、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できるメモリ命令に変換する命令変換機能。
図27は、第2変形救済用アドレス変換部に、マスタからのメモリコマンドが入力された場合に、第2変形救済用アドレス変換部が、マスタからのメモリコマンドをメモリ命令に変換して出力し、その結果、メモリチップ102から、データが読み出されるときの、タイミングチャートの一例である。ここでは、マスタからのメモリコマンドが、メモリチップ102から、"0x30000000"となる物理アドレスを開始アドレスとする、連続する192Bのデータを読み出すコマンドの場合の例を示している。
第1変形救済用アドレス変換部は、192Bのデータを読み出すマスタからのメモリコマンドを受けると、救済アドレス変換機能と命令変換機能とを利用して、(1)バンクAにおいて、互いに同じロウアドレス"0x000"と互いに連続するカラムアドレス("0x00"と"0x01")とで指される64Bの記憶領域からデータを読み出す"RDa1"メモリ命令と"RDa2"メモリ命令と、(2)バンクBにおいて、互いに同じロウアドレス"0x000"と互いに連続するカラムアドレス("0x00"と"0b01")とで指される64Bの記憶領域からデータを読み出す"RDb1"メモリ命令と"RDb2"メモリ命令と、(3)バンクCにおいて、互いに同じロウアドレス"0x000"と互いに連続するカラムアドレス("0x00"と"0b01")とで指される64Bの記憶領域からデータを読み出す"RDc1"メモリ命令と"RDc2"メモリ命令とを生成して出力する。
すると、メモリチップ102は、64Bのデータからなる"DTa1"と64Bのデータからなる"DTa2"とをバンクA310から読み出し、64Bのデータからなる"DTb1"と64Bのデータからなる"DTb2"とをバンクB320から読み出し、64Bのデータからなる"DTc1"と64Bのデータからなる"DTc2"とをバンクC330から読み出して出力する。
図28は、上記例における、"DTa1"が格納されている領域と"DTa2"が格納されている領域と"DTb1"が格納されている領域と"DTb2"が格納されている領域と"DTc1"が格納されている領域と"DTc2"が格納されている領域とを、模式的に示した模式図である。
同図に示される通り、上記例においては、"DTa1"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTb1"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTc1"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTa2"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x01"となり、"DTb2"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x01"となり、"DTc2"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x01"となる。
本実施例の論理アドレスから物理アドレスへの変換ルールは、図29に示されるように、カラムアドレス領域3203が、図4の例におけるカラムアドレス領域403の最下位ビットを固定値"1b0"としたものと同様である。このため、通常用アドレス変換と救済用アドレス変換部のハードウエア資源を多く共用することが可能である。
但し、救済用のカラムへアクセスする場合には、最下位ビットを"1b1"に固定する。
<考察>
第4変形集積回路は、メモリデータ用マイクロバンプ群の中に、128個以上の接続不良マイクロバンプが存在している場合であっても、その数が256個以下であれば、メモリチップ102を利用することができる。
<実施の形態6>
<概要>
以下、本発明に係るメモリアクセス制御装置の一例として、実施の形態5における第4変形集積回路の一部を変形した第5変形集積回路について説明する。
この第5変形集積回路は、実施の形態5に係る第2変形救済用アドレス変換部が、第3変形救済用アドレス変換部に変形されている。
実施の形態5では、第2変形救済用アドレス変換部が行う論理アドレス−物理アドレス変換は、バンクA310とバンクB320とバンクC330とバンクDとからなる256MBの記憶領域のうち、カラムアドレスの最下位ビットが"1"となる128MBの記憶領域が、カラムアドレスの最下位ビットが"0"となる128MBの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用されるように行うものであったが、実施の形態6では、第3変形救済用アドレス変換部が行う論理アドレス−物理アドレス変換は、ロウアドレスとカラムアドレスとの組で指定される64Bの記憶領域のうち、上位側32Bの記憶領域が、下位側32Bの記憶領域のうち、接続不良マイクロバンプの存在によって、アクセス不能となっている記憶領域を救済するために利用されるように行うものとなっている。
<構成>
第2変形救済用アドレス変換部は、コマンドアービタ516とセレクタ603とに接続され、以下の2つの機能を有する。
機能1:コマンドアービタ516から送られてくるマスタからのコマンドに含まれるmビットからなる記憶領域の開始アドレスを指す論理アドレスを、メモリチップ102における、バンクA310とバンクB320とバンクC330とバンクD340とからなる256MBの記憶領域のうちの2mビットからなる記憶領域の開始アドレスを示す物理アドレスに変換する救済アドレス変換機能。
機能2:救済アドレス変換機能を利用して変換された物理アドレスを用いて、コマンドアービタ516から送られてくるマスタからのコマンドに含まれるメモリアクセス命令を、メモリチップ102が利用できるメモリ命令に変換する命令変換機能。
図30は、第3変形救済用アドレス変換部に、マスタからのメモリコマンドが入力された場合に、第3変形救済用アドレス変換部が、マスタからのメモリコマンドをメモリ命令に変換して出力し、その結果、メモリチップ102から、データが読み出されるときの、タイミングチャートの一例である。ここでは、マスタからのメモリコマンドが、メモリチップ102から、"0x30000000"となる論理アドレスを開始アドレスとする、連続する192Bのデータを読み出すコマンドの場合の例を示している。
第3変形救済用アドレス変換部は、192Bのデータを読み出すマスタからのメモリコマンドを受けると、通常アドレス変換機能と命令変換機能とを利用して、連続する6つの64Bのメモリ領域からデータを読み出す、"RDa1"メモリ命令と"RDb1"メモリ命令と"RDc1"メモリ命令と"RDd1"メモリ命令と"RDa2"メモリ命令と"RDb2"メモリ命令との6つのメモリ命令を生成して出力する。
すると、メモリチップ102は、64Bのデータからなる"DTa1"をバンクA310から読み出し、64Bからなる"DTb1"をバンクB320から読み出し、64Bからなる"DTc1"をバンクC330から読み出し、64Bからなる"DTd1"をバンクD340から読み出し、64Bのデータからなる"DTa2"をバンクA310から読み出し、64Bからなる"DTb2"をバンクB320から読み出して出力する。
図31は、上記例における、"DTa1"が格納されている領域と"DTb1"が格納されている領域と"DTc1"が格納されている領域と"DTd1"が格納されている領域と"DTa2"が格納されている領域と"DTb2"が格納されている領域とを、模式的に示した模式図である。
同図に示される通り、上記例においては、"DTa1"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x00"となり、 "DTb1"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTc1"が格納されている領域の開始物理アドレスは、バンクC330のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTd1"が格納されている領域の開始物理アドレスは、バンクD340のロウアドレス"0x000"とカラムアドレス"0x00"となり、"DTa2"が格納されている領域の開始物理アドレスは、バンクA310のロウアドレス"0x000"とカラムアドレス"0x01"となり、"DTb2"が格納されている領域の開始物理アドレスは、バンクB320のロウアドレス"0x000"とカラムアドレス"0x01"となる。
本実施例の論理アドレスから物理アドレスへの変換ルールは、図32に示されるように、固定値領域2901のビット数が、図4の例における固定値領域401のビット数より1ビット少なくなるように右に1ビットシフトさせたものと同様である。このため、通常用アドレス変換と救済用アドレス変換部のハードウエア資源を多く共用することが可能である。
<考察>
第5変形集積回路は、メモリデータ用マイクロバンプ群の中に、128個以上の接続不良マイクロバンプが存在している場合であっても、その数が256個以下であれば、メモリチップ102を利用することができる。
<実施の形態7>
<概要>
本発明に係るメモリアクセス制御装置の一例として、実施の形態1における集積回路100をそれぞれ内蔵する、タブレット端末とスマートフォン端末との製造方法について説明する。
<構成>
タブレット端末は、3840画素×2160画素からなる、いわゆる4K2K型液晶ディスプレイを含むタッチパネルを備える携帯用薄型パソコンである。
このタブレット端末は、いわゆる4K2K型液晶ディスプレイに、所定のフレームレートで映像を表示する機能を有している。そして、この機能を実現するために、内蔵する集積回路100において、システムLSIチップ101がメモリチップ102を8GB/sの帯域幅で利用できることが動作条件となっている。このため、タブレット端末は、高機能向け良品として選定された集積回路100(すなわち、帯域幅が10GB/sとなるもの)を内蔵する場合には正常動作するが、普及機能向け良品として選定された集積回路100(すなわち、帯域幅が7GB/sとなるもの)を内蔵する場合には正常動作しない。
スマートフォン端末は、640画素×480画素からなる、いわゆるVGA(Video Graphics Array)型液晶ディスプレイを含むタッチパネルを備る携帯電話機である。
このスマートフォン端末は、いわゆるVGA型液晶ディスプレイに、所定のフレームレートで映像を表示する機能を有している。そして、この機能を実現するために、内蔵する集積回路100において、システムLSIチップ101がメモリチップ102を0.5GB/sの帯域幅で利用できることが動作条件となっている。このため、スマートフォン端末は、高機能向け良品として選定された集積回路100を内蔵する場合と、普及機能向け良品として選定された集積回路100を内蔵する場合との双方の場合において正常動作する。
以下、集積回路100を製造する製造者が、さらに、製造する集積回路100を用いて、上記タブレット端末とスマートフォン端末とを製造する製造方法について、図面を用いて説明する。
<製造方法>
図33は、タブレット端末とスマートフォン端末とを製造する製品製造処理のフローチャートである。
製品製造処理は、製造された集積回路100の数が所定数(例えば、1000個)に達することでその処理が開始される。なお、集積回路100の製造方法については、実施の形態1の<製造方法>の項目の部分で詳細に説明している。
製品製造処理が開始されると、集積回路100を選択する選択者は、製造された集積回路100のうちの1つを選択して(ステップS3300)、その選択した集積回路100が、実施の形態1における製造方法による製造過程で不良品に選定(図17の、ステップS1700〜ステップS1770の処理等参照)されなかったものであるか否か、すなわち、良品に選定されたものであるか否かを調べる(ステップS3310)。
ステップS3310の処理において、選択した集積回路100が良品に選定されたものであった場合に(ステップS3310:Yes)、選択者は、さらに、その集積回路100が、実施の形態1における製造方法による製造過程で高機能向け良品に選定(図17の、ステップS1700、ステップS1710、ステップS1760、ステップS1770の処理等参照)されたものであるか否かを調べる(ステップS3320)。
ステップS3320の処理において、集積回路100が高機能向け良品に選定されたものであった場合に(ステップS3320:Yes)、選択者は、その集積回路100を、タブレット端末を製造するタブレット端末製造ラインを運用する製造ライン運用者へ引き渡す。そして、製造ライン運用者は、タブレット端末製造ラインを運用して、引き渡された集積回路100を内蔵するタブレット端末を製造する(ステップS3330)。
ステップS3320の処理において、集積回路100が高機能向け良品に選定されたものでなかった場合(ステップS3320:No)、すなわち、集積回路100が普及機能向け良品に選定されたものであった場合に、選択者は、その集積回路100を、スマートフォン端末を製造するスマートフォン端末製造ラインを運用する製造ライン運用者へ引き渡す。そして、製造ライン運用者は、スマートフォン端末製造ラインを運用して、引き渡された集積回路100を内蔵するスマートフォン端末を製造する(ステップS3340)。
ステップS3310の処理において、選択した集積回路100が良品に選定されたものでなかった場合(ステップS3310:No)、すなわち、集積回路100が不良品に選定されたものであった場合に、選択者は、その集積回路100を破棄する(ステップS3350)。従って、不良品に選定された集積回路100は、タブレット端末に内蔵されること、及びスマートフォン端末に内蔵されることがない。
ステップS3330の処理が終了した場合、ステップS3340の処理が終了した場合、又は、ステップS3350の処理が終了した場合に、選択者は、製造された集積回路100のうちに未だ選択されていないものが存在するか否かを調べる(ステップS3360)。
ステップS3360の処理において、未だ選択されていない集積回路100が存在する場合に(ステップS3360:Yes)、選択者は、未だ選択されていない集積回路100のうちの1つを選択して(ステップS3370)、再びステップS3310の処理を行う。
ステップS3360の処理において、未だ選択されていない集積回路100が存在しない場合に(ステップS3360:No)、製品製造処理は終了する。
<考察>
タブレット端末とスマートフォン端末とを製造する製造者は、集積回路100の製造過程においてメモリデータ用マイクロバンプの中に接続不良が存在していても、接続不良の数が最大救済ビット数以下であれば、その集積回路100を内蔵するスマートフォン端末を製造して販売することができる。このことにより、製造者は、メモリデータ用マイクロバンプの中に接続不良が存在している集積回路100の全てを不良品として廃棄する場合に比べて、より多くの製品を製造して販売することとなる。
<補足>
以上、本発明に係るメモリアクセス制御装置の一実施形態として、実施の形態1〜実施の形態6において、6つの集積回路の例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りのメモリアクセス制御装置に限られないことはもちろんである。
(1)実施の形態1において、システムLSIチップ101とメモリチップ102とが、マイクロバンプを介して接続されている構成の例について説明した。これは、マイクロバンプを介して接続することで、配線経路における寄生容量、寄生インダクタンス等を比較的小さくすることができるためである。
しかしながら、配線経路における寄生容量、寄生インダクタンス等を小さくする必要性が低い場合であれば、システムLSIチップ101とメモリチップ102との接続は、必ずしもマイクロバンプを介して接続される必要はなく、例えば、いわゆるC4(Controlled Collapse Chip Connection)と呼ばれる方式のバンプやTSVで接続されている構成であっても構わない。さらには、システムLSIチップ101とメモリチップ102とが互いに積層されずにリードフレーム103上に配置され、ボンディングワイヤを介して接続されている構成であっても構わないし、システムLSI101とメモリチップ102とが、それぞれ互いに異なるパッケージにパッケージングされていて、回路基板上の配線を介して接続されている構成であっても構わない。
(2)実施の形態1において、集積回路100は、メモリデータ用マイクロバンプ群の中に、接続不良マイクロバンプが含まれていても、その数が所定数以下であれば、普及向け良品に選定される例について説明したが、メモリデータ用マイクロバンプ群の中の接続不良マイクロバンプの数が所定数以下の集積回路100が良品に選定される構成であれば、必ずしも、メモリデータ用マイクロバンプ群の中の接続不良マイクロバンプの数が所定数以下の集積回路100の全てが普及向け良品に選定される必要はない。
一例として、メモリデータ用マイクロバンプ群の中の接続不良マイクロバンプの数が、第1所定数(所定数よりも少ない数)未満であれば、中機能向け良品(高機能向け良品よりは低機能であるが、普及向け良品よりは高機能であるもの)に選定され、第1所定数以上所定数以下であれば、普及向け良品に選定されるという例等が考えられる。これは、例えば、外部メモリ制御回路519が、高機能向け良品用のアドレス変換を行う通常用アドレス変換部601と、普及向け良品用のアドレス変換を行う救済用アドレス変換部602とに加えて、中機能向け良品用のアドレス変換を行う第2救済用アドレス変換部を備えること等によって実現される。
(3)実施の形態1において、集積回路100が、接続不良マイクロバンプがない場合に、高機能向け良品に選定され、メモリデータ用マイクロバンプ群の中に所定数以下の接続不良マイクロバンプが含まれている場合に、普及向け良品に選定される例ついて説明した。
これに対して、さらなる変形例として、メモリデータ用マイクロバンプ群の中に第1所定数未満の接続不良マイクロバンプが含まれる場合に、高機能向け良品に選定され、メモリデータ用マイクロバンプ群の中に第1所定数以上で、第1所定数より大きい第2所定数以下の接続不良マイクロバンプが含まれる場合に、普及向け良品に選定される構成としても構わない。これは、例えば、通常用アドレス変換部601が、メモリデータ用マイクロバンプ群の中に第1所定数未満の接続不良マイクロバンプが含まれる場合に対応するアドレス変換を行い、救済用アドレス変換部602が、メモリデータ用マイクロバンプ群の中に第1所定数以上第2所定数以下の接続不良マイクロバンプが含まれる場合に対応するアドレス変換を行うこと等によって実現される。
(4)実施の形態1において、メモリチップ102のデータ読み出しとデータ書き込みとの単位が512ビットで、メモリデータ用マイクロバンプ群が512個のマイクロバンプから構成される例について説明したが、システムLSIチップ101に含まれるマスタが、メモリチップ102の記憶領域を利用することができれば、必ずしもメモリチップ102のデータ読み出しとデータ書き込みとの単位は512ビットに限られる必要はなく、また、メモリデータ用マイクロバンプ群の数は512個に限られる必要はない。
一例として、メモリチップ102のデータ読み出しとデータ書き込みとの単位が64ビットで、メモリデータ用マイクロバンプ群の数が64個である構成等が考えられる。
(5)実施の形態1において、冗長救済回路520は、接続不良のマイクロバンプを特定するマイクロバンプIDを記憶するためのイーヒューズ回路521を含む構成の例について説明したが、電力が供給されない状態であっても、接続不良のマイクロバンプを特定するマイクロバンプIDを記憶することができれば、必ずしもイーヒューズ回路521を含む構成に限られず、例えば、フラッシュメモリといった不揮発性メモリを含む構成であっても構わない。
(6)実施の形態1において、メモリチップ102は、4つのバンクを有する構成の例について説明したが、システムLSIチップ101に含まれるマスタが、メモリチップ102の記憶領域を利用することができれば、必ずしも、4つのバンクを有する構成に限られる必要はなく、例えば、8つのバンクを有する構成であっても構わないし、バンク構造を有さない構成であっても構わない。
(7)実施の形態7において、集積回路100を内蔵する装置として、高機能向け良品として選定された集積回路100を内蔵するタブレット端末と、普及機能向け良品として選定された集積回路100を内蔵するスマートフォン端末とを製造する場合の例における製造方法について説明した。しかしながら、内蔵する集積回路100において、システムLSIチップ101がメモリチップ102を所定の帯域幅(ここでは、7GB/sよりも大きく、10GB/s以下となる特定の帯域幅)で利用できることが動作条件となっている第1装置と、内蔵する集積回路100において、システムLSIチップ101がメモリチップ102を所定の帯域幅(ここでは、前述の特定の帯域幅)で利用できることが動作条件となっていない第2装置とを製造する場合の例は、上記例に限られない。一例として、第1装置が、高機能向け良品として選定された集積回路100を内蔵する、デジタルテレビ放送番組を2番組同時デコードする機能を有する高機能版テレビであって、第2装置が、普及機能向け良品として選定された集積回路100を内蔵する、デジタルテレビ放送を1番組デコードする機能を有する普及機能板テレビである場合の例等が考えられる。
(8)実施の形態1において、メモリアクセスコントローラ510は、通常用アドレス変換部601と救済用アドレス変換部602とセレクタ603とを備える構成の例であった。しかしながら、各マスタ(第1マスタ501〜第nマスタ503)とメモリチップ102との信号伝達経路のいずれかの部分に、通常用アドレス変換部601と救済用アドレス変換部602とセレクタ603とからなるブロックと同等の機能を有するブロックを備えていれば、必ずしも、メモリアクセスコントローラ510が、通常用アドレス変換部601と救済用アドレス変換部602とセレクタ603とを備える構成でなくても構わない。一例として、各マスタとメモリアクセスコントローラ510とがバスによって接続され、そのバスが、通常用アドレス変換部601と救済用アドレス変換部602とセレクタ603とからなるブロックと同等の機能を有するブロックを備える構成の例等が考えられる。
また、実施の形態1において、メモリアクセスコントローラ510は、Rデータアラインメントバッファ614とWデータアラインメントバッファ616とを備える構成の例であった。しかしながら、各マスタ(第1マスタ501〜第nマスタ503)とメモリチップ102との信号伝達経路のいずれかの部分に、Rデータアラインメントバッファ614とWデータアラインメントバッファ616とからなるブロックと同等の機能を有するブロックを備えていれば、必ずしも、メモリアクセスコントローラ510が、Rデータアラインメントバッファ614とWデータアラインメントバッファ616とを備える構成でなくても構わない。一例として、各マスタとメモリアクセスコントローラ510とがバスによって接続され、そのバスが、Rデータアラインメントバッファ614とWデータアラインメントバッファ616とからなるブロックと同等の機能を有するブロックを備える構成の例等が考えられる。
(9)以下、さらに本発明の一実施形態に係るメモリアクセス制御装置の構成及びその変形例と各効果について説明する。
(a)本発明の一実施形態に係るメモリアクセス制御装置は、外部のメモリにおける記憶領域の範囲を指定する論理アドレスを受け付ける論理アドレス受付部と、所定長のビット列における1以上のビット位置を示すビット位置情報を記憶するためのビット位置情報記憶部と、前記論理アドレス受付部によって受け付けられた論理アドレスに基づいて、当該論理アドレスによって指定される記憶領域の範囲のビット数よりも多いビット数のビット列を、前記所定長単位で前記メモリから読み出す試みを行う読出部と、前記読出部の行う前記読み出しの試みによって前記メモリから取り出されたビット列から、前記所定長単位で、前記ビット位置情報記憶部に記憶されるビット位置情報によって示されるビット位置のビットを抽出するビット列抽出部と、前記ビット列抽出部によって抽出された1以上のビット列から、前記論理アドレス受付部によって受け付けられた論理アドレスによって指定される記憶領域の範囲のビット数からなるビット列を生成して出力する出力部とを備えることを特徴とする。
上述の構成を備える本実施の形態に係るメモリアクセス制御装置によると、ロジックチップとメモリチップとの間の接続不良等に起因して、ロジックチップが、メモリチップから送信されるビット列のうちの一部のビット列しか受信できないときであっても、その受信できるビット列のビット位置を示すビット位置情報をビット位置情報記憶部に記憶させておき、メモリチップの記憶領域のうちの、接続不良等の影響を受けずに受信することができるビット列によって読み出すことができる記憶領域にマスタが利用するデータを記憶させておくことで、マスタは、メモリチップを利用することができる。
図34は、上記変形例におけるメモリアクセス制御装置3400の機能構成を示す機能構成図である。
同図に示されるように、メモリアクセス制御装置3400は、論理アドレス受付部3410とビット位置情報記憶部3420と読出部3430とビット列抽出部3440と出力部3450とから構成される。
論理アドレス受付部3410は、読出部3430に接続され、外部のメモリにおける記憶領域の範囲を指定する論理アドレスを受け付ける機能を有する。一例として、実施の形態1における、(1)第1マスタインターフェース511のうちの、第1マスタ501から送り出されたマスタからのメモリコマンドを受け付けて、コマンドバッファに一時的に記憶し、記憶しているマスタからのメモリコマンドをコマンドアービタ516に出力する機能を実現する部分と、(2)コマンドアービタ516とからなる機能ブロックとして実現される。
ビット位置情報記憶部3420は、ビット列抽出部3440に接続され、所定長のビット列における1以上のビット位置を示すビット位置情報を記憶する機能を有する。一例として、冗長救済回路520として実現される。
読出部3430は、論理アドレス受付部3410とビット列抽出部3440とに接続され、論理アドレス受付部3410によって受け付けられた論理アドレスに基づいて、当該論理アドレスによって指定される記憶領域の範囲のビット数よりも多いビット数のビット列を、前記所定長単位で外部のメモリから読み出す試みを行う。一例として、実施の形態1における、救済用アドレス変換部602と、セレクタ603と、コマンドキュー604と、コマンド発行制御部605と、タイミング管理部606とからなる機能ブロックとして実現される。
ビット列抽出部3440は、ビット位置情報記憶部3420と読出部3430と出力部3450とに接続され、読出部3430の行う読み出しの試みによって外部のメモリから取り出されたビット列から、前記所定長単位で、ビット位置情報記憶部3420に記憶されるビット位置情報によって示されるビット位置のビットを抽出する機能を有する。一例として、実施の形態1におけるデータ線冗長救済部611として実現される。
出力部3450は、ビット列抽出部3440に接続され、ビット列抽出部3440によって抽出された1以上のビット列から、論理アドレス受付部3410によって受け付けられた論理アドレスによって指定される記憶領域の範囲のビット数からなるビット列を生成して出力する機能を有する。一例として、実施の形態1における、(1)データ並べ替え部612と、(2)属性付与部613と、(3)Rデータアラインメントバッファ614と、(4)データバッファ517と、(5)第1マスタインターフェース511のうちの、データバッファ517から送り出された、メモリチップ102の記憶領域から読み出されたデータを受け付けて、第1マスタ501に出力する機能を実現する部分とからなる機能ブロックとして実現される。
(b)また、前記メモリに書き込むためのビット列を受け付けるビット列受付部と、前記ビット列受付部によって受け付けられたビット列から、前記所定長よりも短いビット長からなる1以上の補正ビット列を生成する生成部と、前記生成部によって生成された補正ビット列それぞれを、前記ビット位置情報記憶部に記憶されるビット位置情報によって示されるビット位置にダミービットを挿入することで、前記所定長のビット列に拡張するビット列拡張部と、前記ビット列拡張部によって拡張された1以上のビット列からなるビット列を、前記論理アドレス受付部によって受け付けられた論理アドレスに基づいて、前記所定長単位で前記メモリに書き込む試みを行う書込部とを備えるとしてもよい。
このような構成にすることで、ロジックチップとメモリチップとの間の接続不良等に起因して、メモリチップが、ロジックチップから送信されるビット列のうちの一部のビット列しか記憶できないときであっても、マスタは、利用するデータを、メモリチップを構成するメモリに記憶させることができる。
(c)また、前記論理アドレス受付部によって受け付けられた論理アドレスを、当該論理アドレスによって指定される記憶領域の範囲のビット数よりも多いビット数の前記メモリにおける記憶領域の範囲を指定する物理アドレスに変換するアドレス変換部を備え、前記読出部は、前記アドレス変換部によって変換された物理アドレスによって指定される記憶領域の範囲に対して、前記読み出しの試みを行い前記書込部は、前記アドレス変換部によって変換された物理アドレスによって指定される記憶領域の範囲に対して、前記書き込みの試みを行うとしてもよい。
このような構成にすることで、メモリアクセス制御装置は、アドレス変換部によって変換された物理アドレスを用いて、その物理アドレスによって指定される記憶領域の範囲へアクセスすることができる。
(d)また、前記ビット位置情報記憶部が記憶するビット位置情報は、前記メモリアクセス制御装置と前記メモリとの通信に係る不具合に係る情報であり、前記メモリアクセス制御装置と前記メモリとの通信に係る処理を行うことで、前記メモリアクセス制御装置と前記メモリとの通信に係る不具合を検出する不具合検出部と、前記不具合検出部が前記不具合を検出した場合に、当該検出された不具合に応じて、前記ビット位置情報記憶部に記憶されている前記ビット位置情報を更新するビット位置情報更新部とを備えるとしてもよい。
このような構成にすることで、メモリアクセス制御装置は、不具合検出部が検出したメモリとの通信に係る不具合に基づいて、内蔵するビット位置記憶情報記憶部が記憶するビット位置情報を更新できるようになる。
(e)また、前記メモリは、複数のバンク記憶領域を有し、前記アドレス変換部は、前記物理アドレスへの変換を、物理アドレスによって指定される記憶領域が、前記複数のバンク記憶領域のうちの、少なくとも2つのバンク記憶領域に跨るように行うとしてもよい。
このような構成にすることで、マスタは、少なくとも2つのバンク記憶領域を跨るように、メモリにおける記憶領域を利用するようになる。
(f)また、前記アドレス変換部は、救済用アドレス変換部であり、前記メモリアクセス制御装置は、前記論理アドレス受付部によって受け付けられた論理アドレスを、当該論理アドレスによって指定される記憶領域の範囲のビット数と同じビット数の前記メモリにおける記憶領域の範囲を指定する物理アドレスに変換する通常用アドレス変換部と、前記救済用アドレス変換部によって変換された物理アドレスと前記通常用アドレス変換部によって変換された物理アドレスとのいずれかを選択するセレクタとを備え、前記読出部は、前記読み出しの試みを、前記セレクタが前記救済用アドレス変換部によって変換された物理アドレスを選択している場合に限って行い、さらに、前記セレクタが前記通常用アドレス変換部によって変換された物理アドレスを選択している場合に、当該物理アドレスによって指定される前記メモリにおける記憶領域の範囲に記憶されているビット列を、前記所定長単位で前記メモリから読み出し、前記出力部は、前記生成したビット列の出力を、前記セレクタが前記救済用アドレス変換部によって変換された物理アドレスを選択している場合に限って行い、さらに、前記セレクタが前記通常用アドレス変換部によって変換された物理アドレスを選択している場合に、前記読出部によって読み出されたビット列からなるビット列を出力し、前記書込部は、前記書き込みの試みを、前記セレクタが前記救済用アドレス変換部によって変換された物理アドレスを選択している場合に限って行い、さらに、前記セレクタが前記通常用アドレス変換部によって変換された物理アドレスを選択している場合に、前記ビット列受付部によって受け付けられたビット列を、当該物理アドレスによって指定される前記メモリにおける記憶領域の範囲に前記所定長単位で書き込む、としてもよい。
このような構成にすることで、メモリアクセス制御装置は、選択部の選択状態に応じて、前記救済用アドレス変換部によって変換された物理アドレスと前記通常用アドレス変換部によって変換された物理アドレスとのいずれかを用いて、変換された物理アドレスによって指定される記憶領域の範囲へアクセスすることができるようになる。
(g)また、前記読出部は、前記読み出しの試みにおける前記メモリへのアクセス回数の方が、前記論理アドレス受付部によって受け付けられた論理アドレスによって指定される記憶領域の範囲を前記所定長単位で読み出す試みを行う場合における前記メモリへのアクセス回数よりも多くなるように、前記試みを行うとしてもよい。
このような構成にすることで、メモリアクセス制御装置は、読み出しの試みにおけるメモリへのアクセス回数を多くすることで、読み出しの試みの対象となるビット列のビット数を多くすることができるようになる。
(h)本発明の一実施形態に係る製造方法は、メモリを有する第1チップと当該メモリにアクセスするマスタを含む第2チップとを備え、当該第1チップと当該第2チップとが1つのパッケージに封入されてなる集積回路を内蔵する第1又は第2の装置を製造する製造方法であって、前記第1の装置は、前記マスタによる前記メモリへのアクセスにおけるビットレートが所定のビットレート以上確保されていることを動作条件とする装置であり、前記第2の装置は、前記マスタによる前記メモリへのアクセスにおけるビットレートが前記所定のビットレート以上確保されていることを動作条件としない装置であり、前記集積回路を対象として、前記マスタによる前記メモリへのアクセスに係る検査を行うことで、前記マスタによる前記メモリへのアクセスにおけるビットレートが前記所定のビットレート以上確保することが可能であるか否かを評価する評価ステップと、前記評価ステップによって、評価対象となった集積回路が肯定的な評価をされた場合に、当該集積回路を内蔵して前記第1の装置を製造する第1製造ステップと、前記評価ステップによって、評価対象となった集積回路が否定的な評価をされた場合に、当該集積回路を内蔵して前記第2の装置を製造する第2製造ステップとを含むことを特徴とする。
上述の構成を備える本実施の形態に係る製造方法によると、マスタによるメモリへのアクセスにおけるビットレートが所定のビットレート以上確保されていないことが原因で第1の装置に内蔵されて利用されることができない集積回路であっても、第2の装置に内蔵されて利用されるようになる。
(i)また、前記集積回路は、前記第1チップと前記第2チップとが複数のバンプを介して電気的に接続されて構成され、前記マスタは、前記複数のバンプのうちの少なくとも1つのアクセス用バンプを介して前記メモリへのアクセスに係るデータ通信を行い、前記検査は、前記アクセス用バンプについての電気的接続不良に係る検査を含むとしてもよい。
このような構成にすることで、アクセス用バンプの接続不良によって、マスタによるメモリへのアクセスにおけるビットレートが所定のビットレート以上確保されない集積回路であっても、第2の装置に内蔵されて利用されるようになる。