(57)【特許請求の範囲】
【請求項１】
複数行および複数列に沿ってダイ上に配置された複数のメモリ回路と、
前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置される複数の論理回路と
を備え、
各メモリ回路は、複数のメモリセルを含み、
前記複数行および前記複数列が、前記ダイの領域に配置され、
前記複数の論理回路は、前記複数のメモリ回路の１または複数と通信し、かつ、前記複数のメモリ回路の１または複数に格納されたデータに対して、繰り返し処理を使用した誤り訂正を実行するように構成され、
前記複数の論理回路のうちの第１の論理回路は、前記複数行のうちの１つの行に沿った前記複数のメモリ回路のうちの２つの間に配置され、
前記複数の論理回路のうちの第２の論理回路は、前記複数列のうちの１つの列に沿った前記複数のメモリ回路のうちの２つの間に配置され、
集積回路の電力管理モジュール、通信モジュール、更なるメモリ、及び、プロセッサのうちの１または複数が、（ｉ）前記ダイの周辺部に沿って、及び、（ｉｉ）前記領域の周りに配置され、
前記複数の論理回路は、第１に、タイミング制約に基づいて、第２に、前記複数の論理回路と前記複数のメモリ回路との間の相互接続に基づいて、前記複数のメモリ回路の周りに分散される、集積回路。
【請求項２】
緩和タイミング要件を有する信号経路を使用する前記論理回路は、前記論理回路のグループ内の残りの論理回路よりも、前記グループから離して配置される、請求項１に記載の集積回路。
【請求項３】
前記複数のメモリセルが、ラッチベースのランダムアクセスメモリセルを含む、請求項１または２に記載の集積回路。
【請求項４】
前記複数の論理回路が、組合せ論理回路および順序論理回路の少なくとも一方を含む、請求項１から３のいずれか一項に記載の集積回路。
【請求項５】
前記複数のメモリ回路が、所定のメモリ容量を有する、請求項１から４のいずれか一項に記載の集積回路。
【請求項６】
前記複数のメモリ回路の少なくとも１つが、前記複数のメモリ回路のうちの他のものとは異なるメモリ容量を有する、請求項１から５のいずれか一項に記載の集積回路。
【請求項７】
前記複数の論理回路の少なくとも１つが、
ストレージデバイスの読み込み動作もしくは書き込み動作中に、信号を処理し、前記ストレージデバイスは、ハードディスクドライブ、光学ディスクドライブ、または固体ディスクを含み、前記処理によって生成されたデータを前記複数のメモリ回路の１または複数に格納するように構成される、請求項１から６のいずれか一項に記載の集積回路。
【請求項８】
前記複数の論理回路の少なくとも１つが、
通信デバイスの送信動作または受信動作中に信号を処理し、
前記処理によって生成されたデータを前記複数のメモリ回路の１または複数に格納するように構成される、請求項１から７のいずれか一項に記載の集積回路。
【請求項９】
複数行および複数列に沿ってダイ上に配置された複数のメモリ回路と、
前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置される複数の論理回路と
を備え、
各メモリ回路は、複数のメモリセルを含み、
前記複数行および前記複数列が、前記ダイの領域に配置され、
前記複数の論理回路は、前記複数のメモリ回路の１または複数と通信し、かつ、前記複数のメモリ回路の１または複数に格納されたデータに対して、繰り返し処理を使用した誤り訂正を実行するように構成され、
集積回路の電力管理モジュール、通信モジュール、更なるメモリ、及び、プロセッサのうちの１または複数が、（ｉ）前記ダイの周辺部に沿って、及び、（ｉｉ）前記領域の周りに配置され、
前記複数の論理回路のうち第１の論理回路は、（ｉ）前記複数のメモリ回路のうち第１のメモリ回路からの第１のデータを読み出し、（ｉｉ）前記第１のデータを処理することによって第２のデータを生成し、（ｉｉｉ）前記複数のメモリ回路のうち第２のメモリ回路に前記第２のデータを格納するように構成され、
前記複数の論理回路のうち第２の論理回路は、（ｉ）前記複数のメモリ回路のうち前記第２のメモリ回路からの前記第２のデータを読み出し、（ｉｉ）前記第２のデータを処理することによって第３のデータを生成し、（ｉｉｉ）前記複数のメモリ回路のうち前記第１のメモリ回路に前記第３のデータを格納するように構成され、
前記複数の論理回路のうち前記第１の論理回路が、前記第３のデータを処理するように構成され、
前記複数の論理回路は、第１に、タイミング制約に基づいて、第２に、前記複数の論理回路と前記複数のメモリ回路との間の相互接続に基づいて、前記複数のメモリ回路の周りに分散される、集積回路。
【請求項１０】
（ｉ）ダイ上に配置されるメモリ回路および論理回路のリスト、（ｉｉ）前記メモリ回路および前記論理回路の入力信号および出力信号のタイミング、及び（ｉｉｉ）前記ダイの領域、を含むデータを受信するように構成される入力モジュールと、
処理モジュールと
を備え、前記処理モジュールが、
前記データを処理し、
複数の前記メモリ回路と通信し、かつ、前記複数のメモリ回路の１または複数に格納されたデータに対して、繰り返し処理を使用した誤り訂正を実行するように構成される複数の前記論理回路の領域が、前記複数のメモリ回路の領域の、所定のパーセンテージより大きいかまたは等しいかを決定し、前記複数の論理回路の前記領域が、前記複数のメモリ回路の前記領域の、前記所定のパーセンテージより大きいかまたは等しいことに応じて、前記ダイの前記領域上に配列型レイアウトで、前記メモリ回路および前記論理回路を配置するように構成され、
前記複数の論理回路は、第１に、タイミング制約に基づいて、第２に、前記複数の論理回路と前記複数のメモリ回路との間の相互接続に基づいて、前記複数のメモリ回路の周りに分散され、
前記配列型レイアウトは、前記複数のメモリ回路が複数行および複数列に沿ってダイ上に配置され、前記複数の論理回路が、前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置されるレイアウトである、システム。
【請求項１１】
前記処理モジュールが、前記配列型レイアウトの行および列の間隔を含むパラメータを決定するように構成される、請求項１０に記載のシステム。
【請求項１２】
前記処理モジュールが、前記メモリ回路および前記論理回路の入力信号および出力信号の前記タイミングに従って、前記配列型レイアウトで前記論理回路を分散するように構成される、請求項１０または１１に記載のシステム。
【請求項１３】
前記処理モジュールは、前記メモリ回路および前記論理回路の接続に従って、前記配列型レイアウトで前記論理回路を分散するように構成される、請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
（ｉ）ダイ上に配置されるメモリ回路および論理回路のリスト、（ｉｉ）前記メモリ回路および前記論理回路の入力信号および出力信号のタイミング、及び（ｉｉｉ）前記ダイの領域、を含むデータを受信するステップと、
前記データを処理するステップと、
複数の前記メモリ回路と通信し、かつ、前記複数のメモリ回路の１または複数に格納されたデータに対して、繰り返し処理を使用した誤り訂正を実行するように構成される複数の前記論理回路の領域が、前記複数のメモリ回路の領域の、所定のパーセンテージより大きいかまたは等しいかを決定するステップと、
前記複数の論理回路の前記領域が、前記複数のメモリ回路の前記領域の、前記所定のパーセンテージより大きいかまたは等しいことに応じて、前記ダイの前記領域上に配列型レイアウトで、前記メモリ回路および前記論理回路を配置するステップと
を備え、
前記複数の論理回路は、第１に、タイミング制約に基づいて、第２に、前記複数の論理回路と前記複数のメモリ回路との間の相互接続に基づいて、前記複数のメモリ回路の周りに分散され、
前記配列型レイアウトは、前記複数のメモリ回路が複数行および複数列に沿ってダイ上に配置され、前記複数の論理回路が、前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置されるレイアウトである、方法。
【請求項１５】
前記配列型レイアウトの行および列の間隔を含むパラメータを決定するステップをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記メモリ回路および前記論理回路の入力信号および出力信号の前記タイミングに従って、前記配列型レイアウトで前記論理回路を分散するステップをさらに備える、請求項１４または１５に記載の方法。
【請求項１７】
前記メモリ回路および前記論理回路の接続に従って、前記配列型レイアウトで前記論理回路を分散するステップをさらに備える、請求項１４から１６のいずれか一項に記載の方法。
【請求項１８】
複数行および複数列に沿ってダイ上に配置された複数のメモリ回路と、
前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置される複数の論理回路と
を備え、
各メモリ回路は、複数のメモリセルを含み、
前記複数行および前記複数列が、前記ダイの領域に配置され、
前記複数の論理回路は、前記複数のメモリ回路の１または複数と通信し、かつ、前記複数のメモリ回路の１または複数に格納されたデータに対して、繰り返し処理を使用した誤り訂正を実行するように構成され、
集積回路の電力管理モジュール、通信モジュール、更なるメモリ、及び、プロセッサのうちの１または複数が、（ｉ）前記ダイの周辺部に沿って、及び、（ｉｉ）前記領域の周りに配置され、
前記複数の論理回路のうちの１つは、長方形の対角線の交点に配置され、前記長方形の４つの頂点は、第１の列に沿って配置された前記複数のメモリ回路のうちの隣接する２つと、第２の列に沿った前記複数のメモリ回路のうちの隣接する２つとであり、前記第１の列は前記第２の列に隣接しており、
前記複数の論理回路は、第１に、タイミング制約に基づいて、第２に、前記複数の論理回路と前記複数のメモリ回路との間の相互接続に基づいて、前記複数のメモリ回路の周りに分散される、集積回路。
【請求項１９】
複数行および複数列に沿ってダイ上に配置された複数のメモリ回路と、
前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置される複数の論理回路と
を備え、
各メモリ回路は、複数のメモリセルを含み、
前記複数行および前記複数列が、前記ダイの領域に配置され、
前記複数の論理回路は、前記複数のメモリ回路の１または複数と通信し、かつ、前記複数のメモリ回路の１または複数に格納されたデータに対して、繰り返し処理を使用した誤り訂正を実行するように構成され、
集積回路の電力管理モジュール、通信モジュール、更なるメモリ、及び、プロセッサのうちの１または複数が、（ｉ）前記ダイの周辺部に沿って、及び、（ｉｉ）前記領域の周りに配置され、
前記複数の論理回路のうちの１つは、長方形の対角線の交点に配置され、前記長方形の４つの頂点は、第１の行に沿って配置された前記複数のメモリ回路のうちの隣接する２つと、第２の行に沿った前記複数のメモリ回路のうちの隣接する２つとであり、前記第１の行は前記第２の行に隣接しており、
前記複数の論理回路は、第１に、タイミング制約に基づいて、第２に、前記複数の論理回路と前記複数のメモリ回路との間の相互接続に基づいて、前記複数のメモリ回路の周りに分散される、集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１２年１１月１９日に出願された米国特許出願第１３／６８０，５３０号、および２０１１年１１月２２日に出願された米国仮特許出願第６１／５６３，００１号の優先権を主張する。上記出願の全開示は、参照により本明細書に組み込まれる。
【０００２】
本開示は、一般に、集積回路（ＩＣ）に関し、より詳しくは、システムオンチップ（ＳＯＣ）におけるメモリおよび論理回路のためのレイアウトに関する。
【背景技術】
【０００３】
本明細書で提供する背景技術の説明は、開示の背景を一般に提示する目的のためのものである。ここに名前を挙げた発明者らの作業について、ある程度、その作業は、本背景技術セクションで説明し、ならびに出願時点での先行技術として適格でない可能性のある説明の態様は、明示も黙示も問わず、本開示に対する先行技術として認められない。
【０００４】
典型的に、システムオンチップ（ＳＯＣ）は、データを処理するためのプロセッサおよびメモリを備える。ＳＯＣを使用して、多くのデバイス内でデータを処理することができる。例えば、ＳＯＣを使用して、ハードディスクドライブ（ＨＤＤ）、光学ディスクドライブ、および固体ディスクを含むストレージデバイス内で、データを処理することができる。さらに、ＳＯＣを使用して、スマートフォン、ルータ、ネットワークスイッチなどを含む通信デバイス内で、データを処理することができる。
【０００５】
図１を参照すると、ＨＤＤ１００は、ハードディスク制御器（ＨＤＣ）ＳＯＣ１０２、複数の読み取り／書き込みヘッド１０４、および磁気媒体１０６を備える。ＨＤＣ  ＳＯＣ１０２は、ＨＤＤ１００の動作を制御する。読み取り／書き込みヘッド１０４は、磁気媒体１０６上のデータを読み取り／書き込みする。ＨＤＣ  ＳＯＣ１０２は、プロセッサ１０８、メモリ１１０、および読み取り／書き込みチャネルモジュール（一般に、読み取りチャネルモジュールと呼ばれる）１１２を備える。プロセッサ１０８は、ＨＤＤ１００と関連したデータを処理する。プロセッサ１０８は、メモリ１１０を使用して、データを処理する。読み取りチャネルモジュール１１２は、読み取り／書き込みヘッド１０４を使用して、磁気媒体１０６上でデータを読み取りおよび書き込みする。読み取りチャネルモジュール１１２は、磁気媒体１０６上に書き込むべきデータを符号化ならびに変調することができ、および磁気媒体１０６から読み取ったデータを復調ならびに復号化することができる。読み取りチャネルモジュール１１２はまた、読み取ったデータの誤り訂正を行うことができる。
【０００６】
図２を参照すると、通信デバイス２００は、通信デバイス２００の動作を制御するＳＯＣ２０２を備える。通信デバイス２００はまた、通信デバイス２００が、無線通信デバイスである場合、１または複数のアンテナ２０４を備えてもよい。ＳＯＣ２０２は、プロセッサ２０６、メモリ２０８、および通信モジュール２１０を備える。プロセッサ２０６は、通信デバイス２００と関連したデータを処理する。プロセッサ２０６は、メモリ２０８を使用して、データを処理する。通信モジュール２１０は、データを送信するための送信器モジュール２１２、およびデータを受信するための受信器モジュール２１４を備える。通信モジュール２１０は、送信すべきデータを符号化ならびに変調することができ、および受信したデータを復調ならびに復号化することができる。通信モジュール２１０はまた、受信したデータの誤り訂正を行うことができる。
【発明の概要】
【課題を解決するための手段】
【０００７】
集積回路は、複数のメモリ回路および複数の論理回路を備える。複数のメモリ回路は、複数行および複数列に沿って、ダイ上に配置されている。各メモリ回路は、複数のメモリセルを備える。複数の論理回路は、複数行および複数列に沿った複数のメモリ回路の間に、ダイ上に配置される。複数の論理回路は、１または複数のメモリ回路と通信するよう構成される。
【０００８】
他の特徴では、複数行および複数列は、ダイの周辺部から離れた領域に配置される。
【０００９】
他の特徴では、メモリセルは、ラッチベースのランダムアクセスメモリセルを含む。
【００１０】
他の特徴では、論理回路は、組合せ論理回路および順序論理回路の少なくとも一方を含む。
【００１１】
他の特徴では、メモリ回路は、所定のメモリ容量を有する。
【００１２】
他の特徴では、複数のメモリ回路の少なくとも１つは、複数のメモリ回路うちの他のものとは異なるメモリ容量を有する。
【００１３】
他の特徴では、少なくとも１つの論理回路は、ストレージデバイスの読み取り動作もしくは書き込み動作中に、信号を処理するよう構成される。ここで、ストレージデバイスには、ハードディスクドライブ、光学ディスクドライブ、または固体ディスクなどがあり、１または複数のメモリ回路での処理によって生成されたデータを格納する。
【００１４】
他の特徴では、少なくとも１つの論理回路は、通信デバイスの送信動作もしくは受信動作中に、信号を処理するよう構成され、１または複数のメモリ回路での処理によって生成されたデータを格納する。
【００１５】
他の特徴では、論理回路のうち第１の論理回路は、（ｉ）メモリ回路のうち第１のメモリ回路から第１のデータを読み出し、（ｉｉ）第１のデータを処理することによって第２のデータを生成し、（ｉｉｉ）メモリ回路のうち第２のメモリ回路に第２のデータを格納するよう構成される。論理回路のうち第２の論理回路は、（ｉ）メモリ回路のうち第２のメモリ回路から第２のデータを読み出し、（ｉｉ）第２のデータを処理することによって第３のデータを生成し、（ｉｉｉ）メモリ回路のうち第１のメモリ回路に第３のデータを格納するよう構成される。論理回路のうち第１の論理回路は、第３のデータを処理するよう構成される。
【００１６】
さらに他の特徴では、システムは、入力モジュールおよび処理モジュールを備える。入力モジュールは、（ｉ）ダイ上に配置されるメモリ回路および論理回路のリスト、（ｉｉ）メモリ回路および論理回路の入力信号および出力信号のタイミング、（ｉｉｉ）ダイの領域、を含むデータを受信するよう構成される。処理モジュールは、データを処理し、複数のメモリ回路と通信するよう構成された複数の論理回路の領域が、複数のメモリ回路の領域の、所定のパーセンテージより大きいかまたは等しいかを決定し、複数のメモリ回路の領域の、所定のパーセンテージより大きいかまたは等しい複数の論理回路の領域に応じて、ダイの領域上に配列型レイアウトで、メモリ回路および論理回路を配置するよう構成される。
【００１７】
他の特徴では、処理モジュールは、配列型レイアウトの行および列の間隔を含むパラメータを決定するよう構成される。
【００１８】
他の特徴では、処理モジュールは、メモリ回路および論理回路の入力信号および出力信号のタイミングに従って、配列型レイアウトで論理回路を分散するよう構成される。
【００１９】
他の特徴では、処理モジュールは、メモリ回路および論理回路の接続に従って、配列型レイアウトで論理回路を分散するよう構成される。
【００２０】
さらに他の特徴では、本方法は、（ｉ）ダイ上に配置されるメモリ回路および論理回路のリスト、（ｉｉ）メモリ回路および論理回路の入力信号および出力信号のタイミング、（ｉｉｉ）ダイの領域、を含むデータを受信することを備える。さらに、本方法は、データを処理すること、および複数のメモリ回路と通信するよう構成された複数の論理回路の領域が、複数のメモリ回路の領域の、所定のパーセンテージより大きいかまたは等しいかを決定することを備える。さらに、本方法は、複数のメモリ回路の領域の、所定のパーセンテージより大きいかまたは等しい複数の論理回路の領域に応じて、ダイの領域上に配列型レイアウトで、メモリ回路および論理回路を配置することを備える。
【００２１】
他の特徴では、本方法は、さらに、配列型レイアウトの行および列の間隔を含むパラメータを決定することを備える。
【００２２】
他の特徴では、本方法は、さらに、メモリ回路および論理回路の入力信号および出力信号のタイミングに従って、配列型レイアウトで論理回路を分散することを備える。
【００２３】
他の特徴では、本方法は、さらに、メモリ回路および論理回路の接続に従って、配列型レイアウトで論理回路を分散することを備える。
【００２４】
本開示のさらなる適用範囲は、詳細な説明、特許請求の範囲および図面から明らかになるであろう。詳細な説明および具体例は、例示目的のみを意図しており、本開示の範囲を限定することを意図していない。
【００２５】
本開示は、詳細な説明および添付図面からより完全に理解されるであろう、
【図面の簡単な説明】
【００２６】
【図１】ハードディスクドライブ（ＨＤＤ）の機能ブロック図である。
【００２７】
【図２】通信デバイスの機能ブロック図である。
【００２８】
【図３】図１に示したＨＤＤの読み取りチャネルモジュールまたは図２に示した通信デバイスの通信モジュールの機能ブロック図である。
【００２９】
【図４】メモリ回路および構成可能論理ブロック（ＣＬＢ）のレイアウトを含むシステムオンチップ（ＳＯＣ）を示す図であり、メモリ回路は、レイアウトの周辺部に沿って配置され、ＣＬＢは、レイアウトの中心部に配置される。
【００３０】
【図５】メモリ回路およびＣＬＢのレイアウトを含むＳＯＣを示す図であり、メモリ回路の第１および第２のセットは、それぞれ、レイアウトの周辺部および中心部に沿って配置され、ＣＬＢのレイアウトは、メモリ回路の第１および第２のセットの間に配置される。
【００３１】
【図６】配列内に配置されたメモリ回路およびＣＬＢのレイアウトを含むＳＯＣを示す図である。
【００３２】
【図７】図６のレイアウトの実行可能性およびパラメータを決定するレイアウトデバイスの機能ブロック図である。
【００３３】
【図８】図６のレイアウトの実行可能性およびパラメータを決定する方法のフローチャートである。
【発明を実施するための形態】
【００３４】
メモリおよび論理回路（例えば、読み取りチャネルモジュール１１２または通信モジュール２１０の論理回路）は、さまざまな方法でダイ上に配置することができる。例えば、第１の配置では、メモリ回路は、ダイの周辺部に沿って配置することができ、論理回路は、ダイの中心部に配置することができる。第２の配置では、メモリ回路の第１の部分は、周辺部に沿って配置することができ、メモリ回路の第２の部分は、中心部に配置することができ、論理回路は、第１および第２の部分の間に配置することができる。
【００３５】
本開示は、配列スタイルレイアウトで、ダイ上にメモリ回路および論理回路を配置することに関する。配列スタイルレイアウトでメモリ回路および論理回路を配置することで、いくつかの利点がもたらされる。例えば、配列スタイルレイアウトは、第１および第２の配置よりも効率的にダイ領域を使用する。すなわち、配列スタイルレイアウトを使用する場合、第１または第２の配置を使用する場合より多くのメモリ回路および論理回路を、所与のダイ領域上に配置することができる。言い換えると、所与の数のメモリ回路および論理回路に対し、配列スタイルレイアウトを使用すると、第１または第２の配置よりもダイの使用が少なくなる。さらに、メモリ回路と論理回路との間の通信は、配列スタイルレイアウトを使用した場合、第１または第２の配置を使用した場合よりも高速にすることができる。
【００３６】
図３を参照すると、読み取りチャネルモジュール１１２または通信モジュール２１０は、複数のメモリ回路３００−１、３００−２、３００−３（集合的メモリ回路３００）、および複数の構成可能論理ブロック（ＣＬＢ）３０２−１、３０２−２、３０２−３（集合的ＣＬＢ３０２）を使用して、ＳＯＣで実現することができる。各ＣＬＢ３０２は、組合せ論理回路および／または順序論理回路を含むことができる。各ＣＬＢ３０２は、１または複数の異なる動作を行うよう構成することができる。各メモリ回路３００は、複数のメモリセルを備えてもよい。例えば、各メモリ回路３００は、ラッチベースのランダムアクセスメモリ（ＬＢＲＡＭ）の複数のメモリセルを含んでもよい。各メモリ回路３００は、（数ＫＢ、ＭＢ、またはＧＢのオーダで）所定のメモリ容量を有することができる。メモリ回路３００のいくつかは、残りのメモリ回路３００とは異なるメモリ容量を有してもよい。メモリ回路３００およびＣＬＢ３０２がそれぞれ３つのみを示してあるが、Ｎ個のメモリ回路３００およびＮ個のＣＬＢ３０２を使用することができ、ここで、Ｎは、１より大きい整数である。
【００３７】
１つのＣＬＢ３０２は、１または複数のメモリ回路３００と通信することができる。１つのＣＬＢ３０２は、１または複数のＣＬＢ３０２と通信することができる。１つのメモリ回路３００は、１または複数のメモリ回路３００と通信することができる。第１のＣＬＢ３０２が処理したデータは、第１のメモリ回路３００に格納することができ、第２のＣＬＢ３０２が処理したデータは、第２のメモリ回路３００に格納することができる。さらに、第１のＣＬＢ３０２は、第２のメモリ回路３００に格納されたデータを処理することができる。したがって、（例えば、繰り返し処理を使用して）誤りを訂正する場合、第１のＣＬＢ３０２は、第２のＣＬＢ３０２が処理したデータを更新することができ、第１のＣＬＢ３０２が更新したデータは、再び、第２のＣＬＢ３０２および／または第３のＣＬＢ３０２が処理することができる。
【００３８】
図４を参照すると、メモリ回路３００およびＣＬＢ３０２のレイアウト４０２を備えるＳＯＣ４００が示される。ＳＯＣ４００は追加のコンポーネントを備えてもよい。例えば、ＳＯＣ４００は、ＳＯＣ４００に関するデータを処理するためのプロセッサ４０４ならびに追加メモリ４０６、ＳＯＣ４００の外部のコンポーネントと通信するための通信モジュール４０８、およびＳＯＣ４００の１または複数のコンポーネントの電力消費を管理するための電力管理モジュール４１０を備えてもよい。
【００３９】
レイアウト４０２では、メモリ回路３００は、レイアウト４０２の周辺部に沿って（すなわち、ＳＯＣ４００の周辺部に並列に）配置され、ＣＬＢ３０２は、レイアウト４０２の中心部に配置される。したがって、メモリ回路３００は、ＣＬＢ３０２を取り囲む。ＣＬＢ３０２とメモリ回路３００との間の信号経路は、２つのＣＬＢ３０２の間の信号経路より長くすることができる。それに応じて、ＣＬＢ−メモリ回路間通信は、ＣＬＢ−ＣＬＢ間通信よりも遅くなる可能性がある。したがって、メモリ集約型処理（例えば、誤り訂正に含まれる繰り返し処理）の速度は、許容できなくなる可能性がある。さらに、レイアウト４０２が十分利用されない傾向があり、したがって、ダイ領域が無駄になる傾向がある。
【００４０】
あるいは、図示しないが、メモリ回路３００およびＣＬＢ３０２の位置は、反転することができる。すなわち、ＣＬＢ３０２は、レイアウト４０２の周辺部に沿って配置することができ、メモリ回路３００は、レイアウト４０２の中心部に配置することができる。したがって、ＣＬＢ３０２は、メモリ回路３００を取り囲む。そのような配置では、ＣＬＢ−メモリ回路間通信の速度は、レイアウト４０２に比べて向上する可能性があるが、ＣＬＢ−ＣＬＢ間通信の速度は、レイアウト４０２に比べて低下する可能性がある。
【００４１】
図５を参照すると、メモリ回路３００およびＣＬＢ３０２のレイアウト５０２を備えるＳＯＣ５００が示される。ＳＯＣ５００は、レイアウト４０２を除くＳＯＣ４００の１または複数のコンポーネントを含むことができる。レイアウト５０２では、第１の複数のメモリ回路３００が、ＳＯＣ５００の周辺部に沿って配置され、第２の複数のメモリ回路３００が、レイアウト５０２の中心部に配置される。ＣＬＢ３０２は、第１の複数のメモリ回路３００と、第２の複数のメモリ回路３００との間に配置される。第２の複数のメモリ回路３００は、第１の複数のメモリ回路３００とは異なる種類のメモリを使用してもよい。しかしながら、レイアウト５０２は、レイアウト４０２に比べて、ＣＬＢ−メモリ回路間通信の速度を大幅に向上しない可能性がある。
【００４２】
図６を参照すると、メモリ回路３００およびＣＬＢ３０２のレイアウト６０２を備えるＳＯＣ６００が示される。ＳＯＣ６００は、レイアウト４０２を除くＳＯＣ４００の１または複数のコンポーネントを含むことができる。レイアウト６０２では、メモリ回路３００は、ＳＯＣ６００の周辺部に沿って配置されない。代わりに、メモリ回路３００は、複数の行列に沿った配列で配置される。行列は、ＳＯＣ６００の側面に並列である。ＣＬＢ３０２は、メモリ回路３００の間で、さらに、行列に沿った配列で、配置される。配列は、ＳＯＣ６００の周辺部から離れた領域に設置される。
【００４３】
それに応じて、第１のＣＬＢ３０２は、行に沿った２つのメモリ回路３００の間に配置することができ、第２のＣＬＢ３０２は、列に沿った２つのメモリ回路３００の間に配置することができる。第３のＣＬＢ３０２は、長方形の対角線の交点に配置することができ、長方形の４つの頂点は、第１の列（または、第１の行）に沿って設置された２つの隣接するメモリ回路３００と、第２の列（または、第２の行）に沿った２つの隣接するメモリ回路３００とであり、ここで、第１の列（または、第１の行）は、第２の列（または、第２の行）に隣接する。
【００４４】
ＣＬＢ３０２は、ＣＬＢ３０２とメモリ回路３００との間の信号経路が、以下に説明するレイアウトデバイスを使用して最適化されるよう配置することができる。それに応じて、レイアウト６０２は、レイアウト４０２および５０２に比べて、ＣＬＢ−メモリ回路間通信の速度を大幅に向上する。さらに、レイアウト６０２は、レイアウト４０２および５０２より効率的に、ＳＯＣ６００のダイ領域を使用する。それに応じて、レイアウト６０２は、所与のダイ領域に対して、レイアウト４０２および５０２より多くの数のＣＬＢ３０２および／またはメモリ回路３００を使用することができる。あるいは、所与の数のＣＬＢ３０２およびメモリ回路３００に対して、レイアウト６０２は、レイアウト４０２および５０２より占有するダイ領域が少ない。したがって、所与の数のＣＬＢ３０２およびメモリ回路３００に対して、レイアウト６０２を使用するＳＯＣ６００のダイのサイズは、レイアウト４０２および５０２をそれぞれ使用するＳＯＣ４００および５００より小さくすることができる。
【００４５】
図７を参照すると、レイアウトデバイス７００は、入力モジュール７０２、処理モジュール７０４、および出力モジュール７０６を備える。レイアウトデバイス７００は、レイアウト６０２が、所与の回路設計またはその一部分に使用することができるかどうかを決定し（すなわち、レイアウト６０２の実行可能性を決定し）、行／列間隔および行と列の数を含む、レイアウト６０２のパラメータを決定する。
【００４６】
以下に説明するように、入力モジュール７０２は、複数の入力を受信する。処理モジュール７０４は、複数の入力を処理し、レイアウト６０２の実行可能性およびパラメータを決定するソフトウェアプログラムを実行する。出力モジュール７０６は、レイアウト６０２の実現可能性およびパラメータを含む処理の結果を出力する。
【００４７】
図８を参照すると、レイアウト６０２の実行可能性およびパラメータを決定する方法８００を示す。８０２で、制御部は、回路相互接続（例えば、ネットリスト）、タイミング制約（例えば、クロック定義など）、およびダイ領域を含む複数の入力を受信する。８０４で、制御部は、各メモリ回路３００と通信する、および互いに通信する、ＣＬＢ３０２の数を決定する。８０６で、制御部は、メモリ回路３００のグループと通信するＣＬＢ３０２の領域を決定する。８０８で、制御部は、複数のメモリ回路３００と通信するＣＬＢ３０２の領域が、ＣＬＢ３０２が通信するメモリ回路３００の領域（例えば、所与のパーセンテージ）と比較可能であるかを決定する。
【００４８】
８１０では、制御部は、ＣＬＢ３０２の領域がメモリ回路３００の領域と比較可能ではない場合、配列スタイルレイアウトが、ＣＬＢ３０２およびメモリ回路３００に対して実行可能でないと決定する。８１２では、ＣＬＢ３０２の領域が、メモリ回路３００の領域と比較可能である場合、制御部は、配列スタイルレイアウトが、ＣＬＢ３０２およびメモリ回路３００に対して実行可能であると決定し、配列スタイルレイアウトのためのパラメータを決定する。配列スタイルレイアウトのためのパラメータは、行／列間隔、およびメモリ回路３００周辺のＣＬＢ３０２のグルーピング、分布、ならびに位置などを含む。
【００４９】
８１４で、制御部は、第１に、タイミング制約に基づいて、第２に、ＣＬＢ３０２とメモリ回路３００との間の相互接続に基づいて、メモリ回路３００の周りにＣＬＢ３０２を分散する。例えば、メモリ回路３００のグループと通信するＣＬＢ３０２のグループでは、ＣＬＢ３０２が、緩和タイミング要件を有する信号経路（すなわち、比較的長い信号経路）を使用する場合、制御部は、ＣＬＢ３０２を、グループ内の残りのＣＬＢ３０２よりも、ＣＬＢ３０２のグループおよび／またはメモリ回路３００のグループから離して配置することができる。
【００５０】
一実装態様において、入力は、回路接続情報（例えば、典型的には、Ｖｅｒｉｌｏｇでのネットリスト）、タイミング制約（例えば、クロック定義、遅延など）などを含むことができる。入力はまた、回路に対するタイミングモジュール（例えば、ライブラリファイル、Ｓｐｉｃｅデータなど）を含んでもよい。入力はまた、領域がタイミングモジュールに含まれない場合、（例えば、Ｍｉｌｋｗａｙデータベースを使用して）回路に対する物理的情報を含んでもよい。
【００５１】
静的タイミング解析（ＳＴＡ）環境では、ソフトウェアプログラムは、各メモリ回路３００と通信するＣＬＢ３０２の領域および数を決定する。特に、ソフトウェアプログラムは、各メモリ回路３００への有効なタイミング経路を用いて、ＣＬＢ３０２の集合を生成する。集合は、タイミングスラック閾値および推移パイプライン深さ（すなわち、タイミング経路のレベルの数）によって動作する。さらに、ソフトウェアプログラムは、メモリ回路およびＣＬＢ集合の交差部を取得する。
【００５２】
ソフトウェアプログラムは、異なる基準を使用して、ＣＬＢ３０２およびメモリ回路３００の配列スタイルレイアウトが有益であるかを決定し、配列のパラメータを決定することができる。例えば、第１の基準は、ＣＬＢ領域の最大交差部と、交差するメモリ領域との比率とすることができる。第２の基準は、ＣＬＢ交差部の絶対領域および交差するメモリの絶対領域とすることができる。ソフトウェアプログラムは、ＣＬＢ相互接続の密度（すなわち、共通のＣＬＢ３０２と通信するＣＬＢ３０２の数）を決定することができる。各タイミング開始点（典型的には、ＣＬＢ３０２におけるフリッププロップ）に対して、ソフトウェアプログラムは、閾値未満のスラックを有する開始点からのタイミング経路の集合を生成することができ、タイミング経路に含まれるすべてのＣＬＢファンアウトを格納することができる。ソフトウェアプログラムは、集合の交差部を検出し、ＣＬＢ相互接続比率を決定することができる。第３の基準は、ＳＴＡ駆動の、交差するＣＬＢの絶対サイズとすることができる。これらの基準は、メモリ回路３００間およびＣＬＢ３０２間の交差結合した、タイミング駆動の相互接続の量の測定値である。これらの値は、ＣＬＢ３０２およびメモリ回路３００の配列スタイルレイアウトが有益であるかを決定し、配列のパラメータ（例えば、行／列間隔など）を決定するために使用される。
【００５３】
それに応じて、ソフトウェアプログラムは、コンポーネント間の相互接続およびコンポーネント間の信号経路のタイミングを考慮に入れて、解析を実行する。解析に基づいて、ソフトウェアプログラムは、回路のリストおよび配列内にコンポーネントを配置するためのパラメータ（例えば、配列内に回路を配置するための位置）をもたらすユーザの代わりに、配列内にコンポーネントを配置する実現可能性に関するデータおよび配列に対するパラメータ（例えば、配列内のコンポーネントの位置、間隔など）を生成する。
【００５４】
上記説明は単に、本質的に例示のためのものであり、本開示、用途、または使用法を限定することを意図しない。本開示の広範な教示は、さまざまな形式で実現することができる。したがって、本開示は、特定の実施例を含むが、本開示の本当の観点は、他の変形例が、図面、明細書、および特許請求の範囲の研究により明らかになるため、限定されるべきではない。明瞭にする目的ために、同じ参照番号を、同様の要素を識別するために、図面内で使用する。本明細書で使用される場合、Ａ、Ｂ、およびＣの少なくとも１つ、というフレーズは、非排他的論理ＯＲを使用する論理（ＡまたはＢまたはＣ）を意味すると解釈されるべきである。本方法における１または複数のステップは、本開示の原理を変更することなく、異なる順序で（または、同時に）実行することができることを理解すべきである。
【００５５】
本明細書で使用される場合、モジュールという用語は、特定用途向け集積回路（ＡＳＩＣ）離散的回路、集積回路、組合せ論理回路、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ（共有、専用、またはグループ）、説明した機能を提供する他の適切なハードウェアコンポーネント、またはシステムオンチップなどにおける上記の一部もしくはすべての組み合わせ、の一部もしくはそれらを含むことを意味することができる。モジュールという用語は、プロセッサによって実行されるコードを格納するメモリ（共有、専用、またはグループ）を含むことができる。
【００５６】
コードという用語は、上記で使用する場合、ソフトウェア、ファームウェア、ならびに／もしくはマイクロコードを含むことができ、プログラム、ルーチン、関数、クラス、ならびに／もしくはオブジェクトを意味することができる。共有という用語は、上記で使用する場合、複数のモジュールからのコードの一部またはすべてを、単一の（共有された）プロセッサを使用して実行することができることを意味する。さらに、複数のモジュールからのコードの一部またはすべては、単一の（共有された）メモリで格納してもよい。グループという用語は、上記で使用する場合、単一のモジュールからのコードの一部またはすべてを、プロセッサのグループを使用して実行することができることを意味する。さらに、単一のモジュールからのコードの一部またはすべては、メモリのグループを使用して格納してもよい。
【００５７】
本明細書で説明した装置および方法は、１または複数のプロセッサによって実行される１または複数のコンピュータプログラムにより、部分的または完全に実現することができる。コンピュータプログラムは、少なくとも１つの非一時的有形コンピュータ可読媒体に格納されたプロセッサ実行可能命令を含む。コンピュータプログラムはまた、格納されたデータを含む、およびまたは格納されたデータに依存する可能性がある。非一時的有形コンピュータ可読媒体の非限定の例には、不揮発性メモリ、揮発性メモリ、磁気ストレージ、および光学ストレージがある。
本発明の例を下記の各項目として示す。
［項目１］
複数行および複数列に沿ってダイ上に配置された複数のメモリ回路と、
前記複数行および前記複数列に沿った前記複数のメモリ回路の間に、前記ダイ上に配置される複数の論理回路と
を備え、
各メモリ回路は、複数のメモリセルを含み、
前記複数の論理回路は、前記複数のメモリ回路の１または複数と通信する、集積回路。
［項目２］
前記複数行および前記複数列が、前記ダイの周辺部から離れた領域に配置される、項目１に記載の集積回路。
［項目３］
前記複数のメモリセルが、ラッチベースのランダムアクセスメモリセルを含む、項目１に記載の集積回路。
［項目４］
前記複数の論理回路が、組合せ論理回路および順序論理回路の少なくとも一方を含む、項目１に記載の集積回路。
［項目５］
前記複数のメモリ回路が、所定のメモリ容量を有する、項目１に記載の集積回路。
［項目６］
前記複数のメモリ回路の少なくとも１つが、前記複数のメモリ回路のうちの他のものとは異なるメモリ容量を有する、項目１に記載の集積回路。
［項目７］
前記複数の論理回路の少なくとも１つが、
ストレージデバイスの読み込み動作もしくは書き込み動作中に、信号を処理し、前記ストレージデバイスは、ハードディスクドライブ、光学ディスクドライブ、または固体ディスクを含み、前記処理によって生成されたデータを前記複数のメモリ回路の１または複数に格納する、項目１に記載の集積回路。
［項目８］
前記複数の論理回路の少なくとも１つが、
通信デバイスの送信動作または受信動作中に信号を処理し、
前記処理によって生成されたデータを前記複数のメモリ回路の１または複数に格納する、項目１に記載の集積回路。
［項目９］
前記複数の論理回路のうち第１の論理回路は、（ｉ）前記複数のメモリ回路のうち第１のメモリ回路からの第１のデータを読み出し、（ｉｉ）前記第１のデータを処理することによって第２のデータを生成し、（ｉｉｉ）前記複数のメモリ回路のうち第２のメモリ回路に前記第２のデータを格納し、前記複数の論理回路のうち第２の論理回路は、（ｉ）前記複数のメモリ回路のうち前記第２のメモリ回路からの前記第２のデータを読み出し、（ｉｉ）前記第２のデータを処理することによって第３のデータを生成し、（ｉｉｉ）前記複数のメモリ回路のうち前記第１のメモリ回路に前記第３のデータを格納し、
前記複数の論理回路のうち前記第１の論理回路が、前記第３のデータを処理する、項目１に記載の集積回路。
［項目１０］
（ｉ）ダイ上に配置されるメモリ回路および論理回路のリスト、（ｉｉ）前記メモリ回路および前記論理回路の入力信号および出力信号のタイミング、及び（ｉｉｉ）前記ダイの領域、を含むデータを受信する入力モジュールと、
処理モジュールと
を備え、前記処理モジュールが、
前記データを処理し、
複数の前記メモリ回路と通信する複数の前記論理回路の領域が、前記複数の前記メモリ回路の領域の、所定のパーセンテージより大きいかまたは等しいかを決定し、前記複数の前記論理回路の前記領域が、前記複数の前記メモリ回路の前記領域の、前記所定のパーセンテージより大きいかまたは等しいことに応じて、前記ダイの前記領域上に配列型レイアウトで、前記メモリ回路および前記論理回路を配置する、システム。
［項目１１］
前記処理モジュールが、前記配列型レイアウトの行および列の間隔を含むパラメータを決定する、項目１０に記載のシステム。
［項目１２］
前記処理モジュールが、前記メモリ回路および前記論理回路の入力信号および出力信号の前記タイミングに従って、前記配列型レイアウトで前記論理回路を分散する、項目１０に記載のシステム。
［項目１３］
前記処理モジュールは、前記メモリ回路および前記論理回路の接続に従って、前記配列型レイアウトで前記論理回路を分散する、項目１０に記載のシステム。
［項目１４］
（ｉ）ダイ上に配置されるメモリ回路および論理回路のリスト、（ｉｉ）前記メモリ回路および前記論理回路の入力信号および出力信号のタイミング、及び（ｉｉｉ）前記ダイの領域、を含むデータを受信するステップと、
前記データを処理するステップと、
複数の前記メモリ回路と通信する複数の前記論理回路の領域が、前記複数の前記メモリ回路の領域の、所定のパーセンテージより大きいかまたは等しいかを決定するステップと、
前記複数の前記論理回路の前記領域が、前記複数の前記メモリ回路の前記領域の、前記所定のパーセンテージより大きいかまたは等しいことに応じて、前記ダイの前記領域上に配列型レイアウトで、前記メモリ回路および前記論理回路を配置するステップと
を備える、方法。
［項目１５］
前記配列型レイアウトの行および列の間隔を含むパラメータを決定するステップをさらに備える、項目１４に記載の方法。
［項目１６］
前記メモリ回路および前記論理回路の入力信号および出力信号の前記タイミングに従って、前記配列型レイアウトで前記論理回路を分散するステップをさらに備える、項目１４に記載の方法。
［項目１７］
前記メモリ回路および前記論理回路の接続に従って、前記配列型レイアウトで前記論理回路を分散するステップをさらに備える、項目１４に記載の方法。
【図１】
0006257044.tif 000002
【図２】
0006257044.tif 000003
【図３】
0006257044.tif 000004
【図４】
0006257044.tif 000005
【図５】
0006257044.tif 000006
【図６】
0006257044.tif 000007
【図７】
0006257044.tif 000008
【図８】
0006257044.tif 000009