JP4726187B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP4726187B2
JP4726187B2 JP2004344524A JP2004344524A JP4726187B2 JP 4726187 B2 JP4726187 B2 JP 4726187B2 JP 2004344524 A JP2004344524 A JP 2004344524A JP 2004344524 A JP2004344524 A JP 2004344524A JP 4726187 B2 JP4726187 B2 JP 4726187B2
Authority
JP
Japan
Prior art keywords
access
queue
command
memory
selection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004344524A
Other languages
English (en)
Other versions
JP2006155220A (ja
JP2006155220A5 (ja
Inventor
公平 村山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004344524A priority Critical patent/JP4726187B2/ja
Publication of JP2006155220A publication Critical patent/JP2006155220A/ja
Publication of JP2006155220A5 publication Critical patent/JP2006155220A5/ja
Application granted granted Critical
Publication of JP4726187B2 publication Critical patent/JP4726187B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、複数の機能処理モジュールからアクセスされる内蔵メモリを搭載した半導体集積回路に関する。
近年、半導体プロセスの急速な進化に伴い、半導体集積回路に搭載できる回路の規模も増加し、多くの機能ブロックを搭載したLSIを設計することが可能である。また、内部の動作速度、最大クロック周波数の向上により高速動作も可能となり、益々高速、高性能化が進んでいる。
LSIに搭載される多くの機能処理ブロックは、外部メモリを参照することが一般的に行われている(例えば、特許文献1参照)。しかしながら、LSIから外部メモリを参照する際のアクセス速度の高速化は、LSI内部の高速化に比べて進歩が遅く、外部メモリへのアクセス速度がシステムのボトルネックとなることが予想されている。
特開2004-145694号公報
外部メモリへのアクセス速度を上げる手法として、外部メモリのバス幅を広げる手法が挙げられる。しかしながら、外部メモリのバス幅を広げることはLSIの入出力(IO)数を増加させることとなる。
半導体プロセスの進化はLSI内部の集積度を大きく向上させているが、LSI外部のIOに関してはその利点を殆ど享受することができず、LSI内部の集積度を向上させたとしても、IO数を増加させるとIOネックとなり、結果として、LSIのダイサイズを小さくすることができず、半導体プロセスの進化による小型化が実現できない。
また、LSI外部のIO数を増加させることは、LSIを実装するPCB基板上の配置/配線を複雑化するという問題もある。
一方、外部メモリを使用しない方法として、LSI内部に外部メモリと等しいメモリを実装する手法が提案されている。LSI内部に実装することで、メモリのバス幅を広げることができると共に外部に接続するメモリと比べてアクセス時間が短くなるため、高速なメモリへのアクセスが可能となる。
このLSI内部に搭載されるメモリとして、従来は内蔵SRAMが広く使用されてきたが、内蔵SRAMでは、サイズが大きく、大容量のメモリを搭載することは非常に困難であった。しかしながら、近年SRAMに対してサイズの小さい内蔵DRAMの技術が確立され、内蔵DRAMを使用することで大きな容量のメモリをLSI内部に搭載することが可能となっている。
大容量の内蔵メモリをLSI内部に搭載することにより、LSI内部に実装される各機能ブロックは広いバス幅でアクセスを発行し、広いメモリバンド幅を確保することが期待される。しかしながら、各機能処理ブロックが使用するメモリのビット構成は、ブロック毎に異なっている。つまり、各機能処理モジュールが使用するビット構成のメモリを実装する場合、そのビット構成毎の内蔵メモリを実装することになり、LSI内のレイアウトが複雑になる。また、各メモリマスタ同士で内蔵DRAMの共有化が図れないため、排他的に動作する機能処理モジュールが存在していたとしても、それぞれの機能処理ブロック毎に内蔵メモリが実装されているため、結果として、必要以上の容量の内蔵メモリが実装されることになる。
また、内蔵DRAMといった大容量の実装可能なメモリの場合、小容量での実装は困難であり、専用に内蔵DRAMを実装すると必要以上の容量の内蔵DRAMを搭載しなければならないという可能性があり、無駄な内蔵メモリを実装することになる。
反面、広いビット構成を使用する機能処理モジュールに合わせて、共有の内蔵メモリを実装する場合、全ての機能処理モジュールより広いビット幅単位でメモリアクセスが発行されることになる。そのため、狭いビット構成でアクセスする複数の機能処理モジュールが内蔵メモリへのアクセスを発行した場合でも、それらのメモリアクセスはシリアライズされることになり、システムとしての高速動作、並列動作を制限してしまう。
本発明は、上述の課題を解決するためになされたもので、複数の機能処理モジュールが使用する内蔵メモリのアクセスバス幅が異なる場合であっても、効率的に内蔵メモリを共有可能とすることを目的とする。
内蔵メモリへアクセスする際のアクセスバス幅が異なる複数の機能処理モジュールからアクセスされ、前記複数の機能処理モジュールのアクセスバス幅のうちの最も小さいビット幅に相当するビット構成の内蔵メモリを、該アクセスバス幅のうちの最も大きいビット幅に相当するビット数を満たす個数分有する半導体集積回路であって
前記内蔵メモリに対して設けられ、対応する内蔵メモリへのアクセスコマンドを保持する複数のコマンドキューと、
前記複数の機能処理モジュールから内蔵メモリに対するメモリアクセスの要求があると、当該メモリアクセスに対応するメモリアクセスコマンドを各機能処理モジュールにより要求された内蔵メモリに対する複数のコマンドキューの同一の段に入力するコマンド入力手段と、
前記複数のコマンドキューの先頭に保持されているメモリアクセスコマンドに基づいて複数の内蔵メモリに並列にアクセスする制御手段とを有することを特徴とする。
本発明によれば、複数の機能処理モジュールが使用する内蔵メモリのアクセスバス幅が異なる場合であっても、効率的に内蔵メモリを共有することができる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。尚、本実施形態では、メモリへのアクセスビット幅が異なる複数の機能処理モジュールが半導体集積回路に接続され、各機能処理モジュールから内部に実装された内蔵メモリへのアクセスを並列に実現するシステムのメモリアクセス制御について説明する。
図1は、本実施形態におけるシステムの構成の一例を示す図である。図1に示すように、システムは、256ビット幅で内蔵メモリへアクセスする2つの機能処理回路MST0(117)及びMST1(118)と、512ビット幅で内蔵メモリへアクセスする2つの機能処理回路MST2(119)及びMST3(120)と、1024ビット幅で内蔵メモリへアクセスする2つの機能処理回路MST4(121)及びMST5(122)とを有する。また、本システムでは、内蔵メモリへのアクセスを発行する最小のビット幅が256ビットであり、最大のビット幅が1024ビットであるため、内蔵メモリとして、256ビット幅のRAM0(101)、RAM1(102)、RAM2(103)、RAM3(104)を4組搭載し、最大1024ビット幅のメモリを実現するものである。
尚、本実施形態では、各内蔵メモリの容量は1メガビット(Mbit)であり、合計4メガビットの内蔵メモリがシステム内に搭載されている。
それぞれの機能処理回路は、マルチプレクサ(MUX)を介してアクセスデコード回路(110)内のアクセスデコード機構に対してメモリアクセスを発行する。このアクセスデコード機構は機能処理回路のメモリアクセスビット幅構成毎に用意されており、本実施形態では、256ビット、512ビット、1024ビットの3構成の機能処理回路が存在し、各ビット幅構成に合わせて256ビット用のアクセスデコード機構0(113)と、512ビット用のアクセスデコード機構1(114)と、1024ビット用のアクセスデコード機構2(115)とを有する。
以下にアクセスデコード機構0〜2(113〜115)の機能について説明する。
アクセスデコード機構0〜2(113〜115)は、各機能処理回路からのメモリアクセスコマンドを受信し、アクセスするメモリに対するコマンドへと変換する。具体的には、書き込みアクセスか読み込みアクセスかの判定、各機能処理回路から発行されたメモリアドレスをデコードし、実装されるどのメモリのどの番地にアクセスするかのデコードを行う。アドレスのデコードに関しては、各アクセスデコード機構の司るバス幅に依存して変更される。
ここで、各メモリの取り扱うアドレス空間を図2に示す。各内蔵メモリは256ビット単位でアドレッシングされ、256ビット単位にアドレスが「1」加算される。アクセスデコード機構は、機能処理回路のアクセスビット幅に応じたアドレスに従ってアクセスを発行するメモリのアドレスへと変換する。
256ビットでアクセスが発行される機能処理回路の場合、内蔵メモリと同様に256ビット単位でアドレッシングされ、4メガビット空間をアクセスするために、アドレスとして[0000h]番地〜[3FFFh]番地までのアドレスを内蔵メモリのアドレスとしてマッピングする。その際、256ビット幅に対応したアドレス変換機構は[0000h]番地〜[0FFFh]番地までをRAM0(101)の空間、[1000h]番地〜[1FFFh]番地までをRAM1(102)の空間、[2000h]番地〜[2FFFh]番地までをRAM2(103)の空間、そして[3000h]番地〜[3FFFh]番地までをRAM3(104)の空間としてアドレスをデコードする。例えば、MST0(117)から[2400h]番地へのアクセスが発行されると、256ビット幅に対応したアクセスデコード機構0(113)はRAM2(103)の[0400h]番地へのアクセスを発行する。
図3は、256ビットに対応したアクセスデコード機構0(113)の構成を示す図である。まず、アクセスインターフェース(301)を介して機能処理回路からのアクセスを受け取り、アドレス、コマンドをバッファ(303)へと取り込む。そして、アドレスの上位2ビットをアクセス選択信号(302)としてDEMUX(304)へと入力する。このDEMUX(304)は下位12ビットのアドレス、コマンドをアクセス選択信号(302)が「00」の場合はRAM0(101)、「01」の場合はRAM1(102)、「10」の場合はRAM2(103)、「11」の場合はRAM3(104)へと振り分け、コマンドディスパッチャーCommand Dispatcher(111)へとコマンドを伝達する。
次に、512ビットでアクセスが発行される機能処理回路の場合、512ビット単位でアドレッシングされ、512ビット毎にアドレスが「1」加算される。4メガビット空間をアクセスするために、アドレスとして[0000h]番地〜[1FFFh]番地までのアドレスを内蔵メモリのアドレスとしてマッピングする。512ビット幅に対応したアクセスデコード機構1(114)は、512ビット幅の1回のアクセスに対して2つの内蔵メモリへのアクセスを発行する。その際、512ビット幅に対応したアドレス変換機構1(114)は、[0000h]番地〜[0FFFh]番地までをRAM0(101)及びRAM1(102)の空間、[1000h]番地〜[1FFFh]番地までをRAM2(103)及びRAM3(104)の空間としてアクセスを発行する。例えば、MST2(119)から[0A00h]番地へのアクセスが発行されると、512ビット幅に対応したアクセスデコード機構1(114)はRAM0(101)及びRAM1(102)双方の[0A00h]番地へのアクセスを発行する。
図4は、512ビットに対応したアクセスデコード機構1(114)の構成を示す図である。まず、アクセスインターフェース(401)を介して機能処理回路からのアクセスを受け取り、アドレス、コマンドをバッファ(403)へと取り込む。そして、アドレスの上位1ビットをアクセス選択信号(402)としてDEMUX(404)へと入力する。このDEMUX(404)は下位12ビットのアドレス、コマンドをアクセス選択信号(402)が「0」の場合はRAM0(101)及びRAM1(102)へのアクセス、「1」の場合はRAM2(103)及びRAM3(104)へのアクセスとして振り分け、コマンドディスパッチャーCommand Dispatcher(111)へとコマンドを伝達する。各アクセスは、コマンドディスパッチャー(111)の手前で分割される。
そして、1024ビットでアクセスが発行される機能処理回路の場合、1024ビット単位でアドレッシングされ、1024ビット毎にアドレスが「1」加算される。ここで、4メガビット空間をアクセスするために、アドレスとして[0000h]番地〜[0FFFh]番地までのアドレスを内蔵メモリのアドレスとしてマッピングする。1024ビット幅に対応したアクセスデコード機構2(115)は、1024ビット幅の1回のアクセスに対して4つの内蔵メモリへのアクセスを発行する。即ち、1回のアクセスに対してRAM0(101)、RAM1(102)、RAM2(103)、RAM3(104)へのアクセスを発行する。例えば、MST4(121)から[0800h]番地へとアクセスが発行されると、1024ビット幅に対応したアクセスデコード機構2(115)はRAM0(101)、RAM1(102)、RAM2(103)、RAM3(104)の全ての[0800h]番地へのアクセスを発行する。
図5は、1024ビットに対応したアクセスデコード機構2(115)の構成を示す図である。まず、アクセスインターフェース(501)を介して機能処理回路からのアクセスを受け取り、アドレス、コマンドをバッファ(502)へと取り込む。そして、バッファからそのままコマンドディスパッチャーCommand Dispatcher(111)へとコマンドを伝達する。各アクセスはコマンドディスパッチャー(111)の手前で分割される。
次に、コマンドディスパッチャー(111)は各ビット幅に対応したアクセスデコード機構0〜2(113〜115)からのアクセスを受け取ると共に、キュー制御回路(112)によりキューの状態を参照し、受け取ったアクセスをキューのどの段数に入力するかを指定する。
本実施形態では、コマンド発行機構(106)内に各内蔵メモリへのアクセスキュー(107)を有し、各内蔵メモリへのアクセスキュー(107)を4段とする。
図6は、本実施形態におけるアクセスキューの詳細な構成を示す図である。図6に示すように、アクセスキュー(107)は、キューフラグ(603)、コマンドバッファ(604)、データバッファ(605)で構成されている。また、キューフラグ(603)は1ビット、コマンドバッファ(604)は12ビットのアドレスと読み込み又は書き込み方向を示す1ビットのフラグの13ビット、データバッファ(605)は256ビットである。
図6に示す構成において、アクセスキュー(107)からは一番上位に格納されているコマンドが出力される。キューフラグ(603)は、その段に有効なコマンド、データが存在するか否かを示し、有効である場合は「1」、それ以外は「0」である。
キュー選択回路(108)は、キュー指定信号(602)、アクセスコマンド、データ、アクセス有効信号を受け取り、キュー出力信号(601)を入力し、各キュー(107)へコマンド、データを出力する。キュー指定信号(602)、アクセスコマンド、データ、アクセス有効信号はアクセスデコード回路(110)より出力され、キュー指定信号(602)にてどのキューの段数にコマンド、データを入力するかが指定される。
また、キュー選択回路(108)は、アクセス有効信号が有効を示す時に、キュー指定信号(602)とメモリ制御回路より発行されるキュー出力信号(601)とを参照し、キュー出力信号(601)が発行されていない場合はキュー指定信号(602)に示された段数に、キュー出力信号(601)が発行されている場合はキュー指定信号(602)で指定された段数より1つ進んだ段数にコマンド、データを出力する。
例えば、キュー指定信号(602)が3段目を指定して、キュー出力信号(601)が発行されていない場合はコマンド、データを3段目に出力し、キュー出力信号(601)が発行されている場合はコマンド、データを2段目に出力するように制御する。
アクセスキュー(107)は、キュー出力信号(601)が発行されると、1段目のコマンド、データ、キューフラグ(603)の値をメモリ制御回路(105)に出力する。また同時に、前段のコマンド、データ、或いはキュー選択回路(108)より出力されたコマンド、データを取り込む。後述するが、コマンドディスパッチャー(111)において空きキュー段に対してアクセスコマンド、データを発行するため、キュー内のデータの衝突は回避される。また、4段目のキューはキュー選択回路(108)からの入力がない場合、キューフラグ(603)を無効とし、コマンド、データに関しては処理を行わない。
また、キュー出力信号(601)が発行されていない場合は、各キュー段はキュー選択回路(108)よりコマンドの入力がない限りキューの情報を保持する。キュー選択回路(108)よりコマンド、データの入力がなされると、各キュー段はコマンドとデータを保持すると共にキューフラグ(603)を有効とする。
また、各段のキューフラグ(603)は、キュー状態信号(109)として出力され、各アクセスキュー(107)は4ビット、4組のキューで16ビットのキュー状態信号(109)をアクセスデコード回路(110)へと発行する。
アクセスデコード回路(110)内のコマンドディスパッチャー(111)は、発行されたキュー状態信号(109)を参照し、各コマンドをどのキューの段数へアクセスするかを決定する。
図8は、本実施形態におけるコマンドディスパッチャー(111)の構成の一例を示す図である。図8に示すように、コマンドディスパッチャー(111)は、キューの状態からキューへのコマンド発行を制御するキュー制御機構(112)とコマンド制御機構(116)とに分けられ、コマンド制御機構(116)は各内蔵メモリに対応したコマンド選択機構(801)と選択信号生成回路(805)とから構成されている。そして、キュー制御機構(112)は、キュー状態信号(109)より256ビット幅、512ビット幅、1024ビット幅のアクセスがキューの何段目に入ることができるかの選択信号を生成する。
256ビット幅は各キューの空きで一番上位のものを指示し、512ビット幅はRAM0(101)、RAM1(102)又はRAM2(103)、RAM3(104)に対応するキューで双方のキューで同じ段数の空きで一番上位の者を指示し、1024ビット幅は全てのキューで同じ段数での空きで一番上位のものを指示し、選択信号としてコマンド選択機構(801)に対して発行する。
256ビット幅に対するキュー選択信号はRAM0(101)、RAM1(102)、RAM2(103)、RAM3(104)に対応して4組、また512ビット幅に対するキュー選択信号はRAM0(101)、RAM1(102)の組とRAM2(103)、RAM3(104)の組に対応して2組、更に1024ビット幅に対するキュー指定信号(806)は全ての内蔵メモリに対応して1組発行され、各コマンド選択機構(801)に出力される。
各コマンド選択機構(801)は対応する内蔵メモリに応じた選択信号が256ビット幅、512ビット幅、1024ビット幅の3系統分入力される。
図7を用いてキュー制御機構の制御手法を示す。図の上辺から1段、2段、3段、4段とすると1段目はキューの先頭であり、4段目はキューの最後尾を示す。各キュー要素の中に示される「有効」のフラグは、そのキューの中に有効なメモリアクセスが入っていることを示しており、空欄のキュー要素には有効メモリアクセスコマンドが入っておらず、新たにメモリアクセスコマンドを挿入することが可能な状態であることを示している。
図7に示す状態をキュー状態信号(109)が示すとき、キュー制御機構(112)は、RAM0(101)に対応するコマンド選択機構(801)に対して256ビット幅系統のキュー指定信号(806)は4段目、512ビット幅系統のキュー指定信号(806)は4段目、1024ビット幅系統のキュー指定信号(806)は4段目を示している。
また、RAM1(102)に対応するコマンド選択機構(801)に対しては、256ビット系統のキュー指定信号(806)は1段目、512ビット、1024ビットはRAM0(101)に対応するコマンド選択機構(801)と同一の信号が示される。
更に、RAM2(103)に対応するコマンド選択機構(801)に対しては、256ビット幅系統のキュー指定信号(806)は3段目、512ビット幅のキュー指定信号(806)は3段目、1024ビット幅のキュー指定信号(806)はRAM0(101)、RAM1(102)に対応するコマンド選択機構(801)と同一の信号が示される。
更に、RAM3(104)に対応するコマンド選択機構(801)に対しては、256ビット幅系統のキュー指定信号(806)は1段目、512ビット幅、1024ビット幅のキュー指定信号(806)はRAM2(103)に対応するコマンド選択機構(801)と同一の信号が入力される。
コマンド選択機構(801)は、アクセスデコード機構0〜2(113〜115)で各内蔵メモリへと分配されたアクセスの入力と選択信号生成回路(805)からのアクセス選択信号(802,803,804)が入力される。アクセスの入力は、256ビット幅、512ビット幅、1024ビット幅それぞれからのアクセスが入力され、アクセス選択信号(802,803,804)によりコマンド選択機構(801)内で一つに選択される。選択信号生成回路(805)は、各コマンド選択機構(801)がどのアクセスデコード機構0〜2(113〜115)からのアクセスを取り込むかを決定するアクセス選択信号(802,803,804)を生成する。
図9は、本実施形態における選択信号生成回路(805)の構成の一例を示す図である。選択信号生成回路(805)の入力として、各内蔵メモリに対する4本の256ビット幅アクセス有効信号(903)、2本の512ビット幅アクセス有効信号(903)が入力される。6入力OR回路(901)の出力が1024ビット選択禁止信号(804)、RAM0(101)、RAM1(102)に対する256ビット幅アクセス有効信号(903)、2入力OR回路(902)の出力が512ビット選択禁止信号0(802)、RAM2(103)、RAM3(104)に対する512ビット幅アクセス有効信号(903)、2入力OR回路(902)の出力が512ビット選択禁止信号1(803)として出力される。1024ビット選択禁止信号(804)は全てのコマンド選択機構(801)へ出力され、512ビット選択禁止信号0(802)はRAM0(101)、RAM1(102)に対応するコマンド選択機構(801)へ、512ビット選択禁止信号1(803)はRAM2(103)、RAM3(104)に対応するコマンド選択機構(801)へと出力される。
コマンド選択機構(801)では、1024ビット選択禁止信号(804)、512ビット選択禁止信号(802,803)をアクセス選択信号として入力し、1024ビット選択禁止信号(804)、512ビット選択禁止信号(802,803)の双方が有効の場合は256ビット幅のアクセスのみを受け付け、1024ビット選択禁止信号(804)のみの時は512ビット幅のアクセスのみを受け付け、双方共に無効の場合は1024ビット幅アクセスを受け付けることが可能とする。
コマンド選択機構(801)にて、256ビット幅、512ビット幅、1024ビット幅の中から選択されたアクセスは、キュー制御機構(112)により生成されたキュー指定信号(806)のうち、該当するビット幅のキュー段数を選択し、コマンド、データ、キュー指定信号(602)をアクセスキュー(107)へと発行する。
アクセスキュー(107)は、対応するメモリ制御回路(105)と接続されている。各メモリ制御回路(105)は、アクセスを受信するタイミングでキューに対してキュー出力信号(601)を発行し、キューの先頭のコマンド、データ、キューフラグ(603)を受け取る。ここで、キューフラグ(603)が「1」を示していないときはアクセスがないと判定し、内蔵メモリへのアクセスを発行しない。一方、キューフラグ(603)が「1」を示しているときは、受け取ったコマンド、データに基づいてメモリアクセスを発行する。4組のメモリ制御回路(105)は同期して動作し、同一のサイクルタイミングでキュー出力信号(601)を発行する。本実施形態では、メモリ制御回路(105)のアクセス応答時間は3サイクルとする。
以上の構成からなる本実施形態におけるシステムの動作について詳細に説明する。
図10は、本実施形態における各機能処理回路が発行するアクセスシーケンスの一例を示す図である。また図11は、本実施形態における各サイクルでのキュー状態を示す図である。
図10に示す「Issue」は、そのサイクルにおいて、機能処理回路がメモリアクセスを発行することを表している。
まず、サイクル0では、MST0(117)が[0000h]番地、MST4(121)が[0100h]番地へのアクセスを発行する。これにより、アクセスデコード機構0,2(113,115)にてそれぞれのアクセスがデコードされ、MST0(117)のアクセスはRAM0(101)に対応したコマンド選択機構(801)へと伝達され、MST4(121)のアクセスは全てのコマンド選択機構(801)へと伝達される。この時、選択信号生成回路(805)では1024ビット選択禁止信号(804)と512ビット選択禁止信号(802,803)とが発行されているため、256ビット幅のMST0(117)のアクセスが選択され、図11に示す(A)のように、RAM0(101)に対応したキューの先頭に出力される。
次に、サイクル1において、MST2(119)が[1000h]番地へのアクセスを発行する。このMST2(119)によるアクセスは、アクセスデコード機構1(114)により、RAM2(103)及びRAM3(104)の[0000h]番地へのアクセスとしてデコードされ、RAM2(104)、RAM3(105)に対応するコマンド選択機構(801)へと伝達される。尚、前サイクル0で発行されたMST4(121)のアクセスは残っている。
この時、選択信号生成回路(805)では512ビット幅のRAM2(103)、RAM3(104)へのアクセスが発行されているため、RAM2(103)、RAM3(104)に対応するコマンド選択信号(801)には、1024ビット選択禁止信号(804)が発行され、512ビット選択禁止信号(803)が発行されていないため、512ビット幅のアクセスであるMST2(119)が選択され、図11に示す(B)のように、RAM2(103)、RAM3(104)のキューの先頭に出力される。
次に、サイクル2ではコマンドが発行されず、1024ビット幅のMST4(121)からのアクセスが残っているので、選択信号生成回路(805)では、出力するアクセス選択信号(802,803,804)は全て無効状態となり、MST4(121)からのアクセスがキュー(107)へと発行される。この時、図11の(C)のように、キュー指定信号(602)は2段目を指示し、キューの2段目へとコマンドを発行する。
次に、サイクル3において、メモリ制御回路(105)よりキュー出力信号(601)が発行され、キューの先頭のコマンドがメモリ制御回路(105)へと発行される。この時、RAM1(102)に対応するコマンド有効フラグ(603)が「0」であるため、RAM1(102)に対するメモリアクセスは発行されず、RAM0(101)、RAM2(103)、RAM3(104)へのメモリアクセスが発行される。
また、サイクル3では、図10に示すように、MST1(118)から[1400h]番地へ、MST3(120)から[1400h]番地へ、MST5(122)から[0800h]番地へのアクセスがそれぞれ発行される。MST1(118)のアクセスはRAM1(102)に対応したコマンド選択機構(801)へ、MST3(120)のアクセスはRAM2(103),RAM3(104)に対応したコマンド選択機構(801)へ、MST5(122)のアクセスは全てのコマンド選択機構(801)へと伝達される。この時、RAM0(101),RAM1(102)に対応するコマンド選択機構(801)に対して512ビット選択禁止信号(802)と1024ビット選択禁止信号(804)とが発行されており、256ビット幅のMST1(118)のアクセスが選択される。ここで、キュー制御機構(112)はキューの3段目を指示し、キュー指定信号(602)として3段目を指定し、キューへのコマンドを発行する。しかし、キュー出力信号(601)も発行されているため、実際は、図11に示す(D)のように、キューの2段目にコマンドが入力される。
また、RAM2(103)、RAM3(104)に対応するコマンド選択機構(801)では、1024ビット選択禁止信号(804)が発行されるが、512ビット選択禁止信号(803)が発行されないため、512ビット幅のMST3(120)のアクセスが選択される。同様に、キュー制御機構(112)がキューの3段目を指示し、キュー指定信号(602)として3段目を指定し、コマンドを発行する。しかし、キュー出力信号(601)も発行されているため、実際は、図11に示す(D)のように、キューの2段目にコマンドが入力される。
次に、サイクル4,5ではコマンドが発行されず、1024ビット幅のMST5(122)からのアクセスが残っている。この時、選択信号生成回路(805)のアクセス選択信号(802,803,804)は全て無効状態となり、MST5(122)からのアクセスが図11に示す(E)のように、キューへと発行される。
次に、サイクル6では、MST0(117)が[0001h]番地へ、MST2(119)が[1001h]番地へのアクセスを発行する。このMST0(117)のアクセスはRAM0(101)に対応したコマンド選択機構(801)へ、MST2(119)のアクセスはRAM2(103),RAM3(104)に対応したコマンド選択機構(801)へと伝達される。この時、RAM0(101),RAM1(102)に対応するコマンド選択機構(801)に対して512ビット選択禁止信号(802)と1024ビット選択禁止信号(804)双方が発行されており、256ビット幅のMST0(117)からのアクセスが発行される。ここで、キュー制御回路(112)はRAM0(101)に対してはキューの2段目を指示し、キュー指定信号(602)として2段目を指定してコマンドを発行する。つまり、図11に示す(F)のように、MST0(117)からのアクセスがキューの2段目に入力される。
また、RAM2(103),RAM3(104)に対応するコマンド選択機構(801)に対して1024ビット選択禁止信号(804)は発行されるが512ビット選択禁止信号(803)は発行されないため、512ビット幅のMST2(119)からのアクセスが発行される。この時、キュー制御回路(112)は4段目を指示し、キュー指定信号(602)として4段目を指定してコマンドを発行する。つまり、図11に示す(F)のように、MST2(119)からのアクセスがキューの4段目に入力される。
以上説明したように、本実施形態によれば、LSI内部の機能処理モジュールが使用する内蔵メモリのビット幅構成が異なる場合においても、内蔵メモリを共有すると同時に、排他的に動作するメモリアクセスを並列して発行することが可能となる。
また、上述したキュー構成を用いることにより、空いているキュー段数にコマンド挿入が可能であるため、共有メモリに対するメモリ使用効率が向上し、システム全体の高速化、高性能化の実現が可能となる。
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
このプログラムコードを供給するための記録媒体としては、例えばフロッピー(登録商標)ディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本実施形態におけるシステムの構成の一例を示す図である。 本実施形態における内蔵メモリのアドレス空間を示す図である。 256ビットに対応したアクセスデコード機構0(113)の構成を示す図である。 512ビットに対応したアクセスデコード機構1(114)の構成を示す図である。 1024ビットに対応したアクセスデコード機構2(115)の構成を示す図である。 本実施形態におけるアクセスキューの詳細な構成を示す図である。 本実施形態におけるキュー制御機構の制御例を説明するための図である。 本実施形態におけるコマンドディスパッチャー(111)の構成の一例を示す図である。 本実施形態における選択信号生成回路(805)の構成の一例を示す図である。 本実施形態における各機能処理回路が発行するアクセスシーケンスの一例を示す図である。 本実施形態における各サイクルでのキュー状態を示す図である。
符号の説明
101 RAM0
102 RAM1
103 RAM2
104 RAM3
105 メモリ制御回路
106 コマンド発行機構
107 アクセスキュー
108 キュー選択回路
109 キュー状態信号
110 アクセスデコード回路
111 コマンドディスパッチャー(Command Dispatcher)
112 キュー制御機構
113 アクセスデコード機構0
114 アクセスデコード機構1
115 アクセスデコード機構2
116 コマンド制御機構
117 機能処理回路MST0
118 機能処理回路MST1
119 機能処理回路MST2
120 機能処理回路MST3
121 機能処理回路MST4
122 機能処理回路MST5
301 アクセスインターフェース(256ビット)
302 アクセス選択信号(2ビット)
303 アクセスバッファ
401 アクセスインターフェース(512ビット)
402 アクセス選択信号(1ビット)
403 アクセスバッファ
501 アクセスインターフェース(1024ビット)
502 アクセスバッファ
601 キュー出力信号
602 キュー指定信号
603 キューフラグ
701 256ビットキュー指定信号
702 512ビットキュー指定信号
703 1024ビットキュー指定信号
801 コマンド選択機構
802 512ビット選択禁止信号
803 512ビット選択禁止信号
804 1024ビット選択禁止信号
805 選択信号生成回路
806 キュー指定信号
901 6入力OR回路
902 2入力OR回路
903 アクセス有効信号

Claims (1)

  1. 内蔵メモリへアクセスする際のアクセスバス幅が異なる複数の機能処理モジュールからアクセスされ、前記複数の機能処理モジュールのアクセスバス幅のうちの最も小さいビット幅に相当するビット構成の内蔵メモリを、該アクセスバス幅のうちの最も大きいビット幅に相当するビット数を満たす個数分有する半導体集積回路であって
    前記内蔵メモリに対して設けられ、対応する内蔵メモリへのアクセスコマンドを保持する複数のコマンドキューと、
    前記複数の機能処理モジュールから内蔵メモリに対するメモリアクセスの要求があると、当該メモリアクセスに対応するメモリアクセスコマンドを各機能処理モジュールにより要求された内蔵メモリに対する複数のコマンドキューの同一の段に入力するコマンド入力手段と、
    前記複数のコマンドキューの先頭に保持されているメモリアクセスコマンドに基づいて複数の内蔵メモリに並列にアクセスする制御手段とを有することを特徴とする半導体集積回路。
JP2004344524A 2004-11-29 2004-11-29 半導体集積回路 Expired - Fee Related JP4726187B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004344524A JP4726187B2 (ja) 2004-11-29 2004-11-29 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004344524A JP4726187B2 (ja) 2004-11-29 2004-11-29 半導体集積回路

Publications (3)

Publication Number Publication Date
JP2006155220A JP2006155220A (ja) 2006-06-15
JP2006155220A5 JP2006155220A5 (ja) 2008-01-17
JP4726187B2 true JP4726187B2 (ja) 2011-07-20

Family

ID=36633446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004344524A Expired - Fee Related JP4726187B2 (ja) 2004-11-29 2004-11-29 半導体集積回路

Country Status (1)

Country Link
JP (1) JP4726187B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966469B2 (en) 2006-08-14 2011-06-21 Qimonda Ag Memory system and method for operating a memory system
JP5375441B2 (ja) * 2009-08-27 2013-12-25 株式会社リコー 半導体集積回路、記憶制御方法、記憶制御プログラム及び記録媒体
JP2012014397A (ja) * 2010-06-30 2012-01-19 Fujitsu Ltd 入出力制御装置、及び情報処理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57211659A (en) * 1981-06-23 1982-12-25 Fujitsu Ltd Memory access controller
JPH0520183A (ja) * 1991-07-17 1993-01-29 Fujitsu Ltd メモリアクセス制御方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57211659A (en) * 1981-06-23 1982-12-25 Fujitsu Ltd Memory access controller
JPH0520183A (ja) * 1991-07-17 1993-01-29 Fujitsu Ltd メモリアクセス制御方式

Also Published As

Publication number Publication date
JP2006155220A (ja) 2006-06-15

Similar Documents

Publication Publication Date Title
US6496906B1 (en) Queue based memory controller
US7222224B2 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
US7277988B2 (en) System, method and storage medium for providing data caching and data compression in a memory subsystem
US6950910B2 (en) Mobile wireless communication device architectures and methods therefor
JP4317166B2 (ja) データを転送するインタフェースを有する光記憶システム
EP1769369A1 (en) Memory controller with command look-ahead
KR100679370B1 (ko) 메모리 소자에서의 워드 순서지정 방법
US7899940B2 (en) Servicing commands
US6425044B1 (en) Apparatus for providing fast memory decode using a bank conflict table
US6046952A (en) Method and apparatus for optimizing memory performance with opportunistic refreshing
US6360305B1 (en) Method and apparatus for optimizing memory performance with opportunistic pre-charging
US7536516B2 (en) Shared memory device
JP4726187B2 (ja) 半導体集積回路
JP3583844B2 (ja) キャッシュメモリ方式
US6425043B1 (en) Method for providing fast memory decode using a bank conflict table
JP2007108882A (ja) メモリコントローラ及びメモリ制御方法と情報処理装置
US20020069311A1 (en) Bus control device
US20090100220A1 (en) Memory system, control method thereof and computer system
KR970010367B1 (ko) 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙 장치 및 방법
JP4772975B2 (ja) 半導体記憶装置
JP4496923B2 (ja) 共有メモリシステム
WO2007116485A1 (ja) メモリ装置、そのインタフェース回路、メモリ・システム、メモリ・カード、回路基板及び電子機器
JP2006195810A (ja) メモリコントローラおよび高速データ転送方法
JPS6269347A (ja) ダイレクトメモリアクセスコントロ−ラ
JP2000066946A (ja) メモリコントローラ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071127

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110303

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110408

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110411

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees