JP2005078481A - 半導体システム - Google Patents

半導体システム Download PDF

Info

Publication number
JP2005078481A
JP2005078481A JP2003309866A JP2003309866A JP2005078481A JP 2005078481 A JP2005078481 A JP 2005078481A JP 2003309866 A JP2003309866 A JP 2003309866A JP 2003309866 A JP2003309866 A JP 2003309866A JP 2005078481 A JP2005078481 A JP 2005078481A
Authority
JP
Japan
Prior art keywords
address
circuit
memory
addresses
semiconductor system
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.)
Pending
Application number
JP2003309866A
Other languages
English (en)
Inventor
Hiroshi Oguchi
口 浩 志 小
Yusuke Ishizawa
澤 祐 介 石
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.)
Toshiba Corp
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Corp
Toshiba Information Systems Japan Corp
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 Toshiba Corp, Toshiba Information Systems Japan Corp filed Critical Toshiba Corp
Priority to JP2003309866A priority Critical patent/JP2005078481A/ja
Priority to US10/931,216 priority patent/US7249226B2/en
Publication of JP2005078481A publication Critical patent/JP2005078481A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

【課題】 各処理回路が必要時にメモリを使用可能としつつ、可及的にメモリサイズを抑える。
【解決手段】 本発明の半導体システムは、共有メモリと、それぞれ記憶容量を指定して前記共有メモリを用い、動作モードに応じた特定の組み合わせが同時に動作する複数の処理回路と、前記処理回路によって指定された前記記憶容量分のアドレス範囲を前記処理回路に使用可能に割り当てるアドレス回路とを備えたものとして構成される。
【選択図】 図1

Description

本発明は、複数の処理回路を備えた半導体システムに関する。
従来では、同一チップ内の複数のIP(Intellectual Property)回路は、各々その回路中に独自にメモリを有していた。
しかし、これら複数のIP回路は、全てのIP回路が常に動作しているとは限らなかっため、このように複数のIP回路を搭載した装置(システムLSI、SoC(System on Chip)等)では、メモリを有効に活用できているとはいえなかった。
図11は、従来の半導体システムの一部を示すブロック図である。
図11に示すように、装置100と装置101とがCPUバス102に接続されている。
装置100は、3つのIP回路103(1)、103(2)、103(3)を備え、各IP回路103(1)、103(2)、103(3)は、それぞれメモリ104(1)(容量iKB)、104(2)(容量jKB)、104(3)(容量kKB)を備えている。
一方、装置101は、複数のIP回路105(1)・・・を備え、各IP回路105(1)・・・は、それぞれメモリ106(1)・・・を備えている。
図12は、装置100におけるIP回路103(1)〜103(3)の使用状況を示す図である。
図12に示すように、この装置100では、同時に動作するのは、最大でもいずれか2つのIP回路である。
例えば、期間t1では、IP回路103(1)及びIP回路103(3)のみが動作する。従って、期間t1では、メモリ104(1)〜104(3)のうち、メモリ104(1)(容量ikB)とメモリ104(3)(容量kKB)のみが用いられる(図11の斜線部分参照)。つまり、期間t1では、メモリ104(2)(容量jKB)は用いられず、従って、期間t1では、このメモリ104(2)は無駄になってしまう。
図13は、従来の別の半導体システムの一部を示すブロック図である。
この半導体システムでは、CPUバス110に対して共有メモリ111及びハードディスク(HDD)112が接続され、装置113、114におけるIP回路115、116は、このCPUバス110に接続された共有メモリ111を用いる。
しかし、各IP回路115、116は、CPUバス110を介して、共有メモリ111に直接アクセス(DMA: Direct Memory Access)するので(パスR1、R2参照)、DMA毎にCPUバス110の使用権を獲得する必要がある。つまり、各IP回路115、116は、同時に共有メモリ111にアクセスすることはできない。
このため、特に外部とのデータのやり取りが必要なIP回路(例えば受信回路、送信回路)では、上述の共有メモリ111を例えばバッファとして使用することは難しかった。
特開2000−172555号公報
以上のように、最初に述べた従来技術においては、使用されないメモリが常に存在するため、メモリを有効に使用しているとはいえなかった。また、別の従来技術においては、CPUバスの使用権を獲得する必要があるため、CPUバスに対して接続された共有メモリを例えばバッファとして用いることは困難であった。
本発明は、上記問題点に鑑みてなされたものであり、その目的は、各回路が必要時にメモリを使用可能としつつ、可及的にメモリサイズを抑えた半導体システムを提供することにある。
本発明の第1の半導体システムは、共有メモリと、それぞれ記憶容量を指定して前記共有メモリを用い、動作モードに応じた特定の組み合わせが同時に動作する複数の処理回路と、前記処理回路によって指定された前記記憶容量分のアドレス範囲を前記処理回路に使用可能に割り当てるアドレス回路と、を備えることを特徴とする。
本発明の第2の半導体システムは、第1の半導体システムにおいて、前記アドレス回路は、前記アドレス範囲として前記共有メモリにおける連続領域を割り当てることを特徴とする。
本発明の第3の半導体システムは、第2の半導体システムにおいて、前記アドレス回路は、前記処理回路ごとに定められた基準アドレスと、前記処理回路によって指定された前記記憶容量とに基づいて、割り当てる前記連続領域の範囲を決定することを特徴とする。
本発明の第4の半導体システムは、第1〜第3の半導体システムのいずれかにおいて、前記複数の処理回路はメインバスに接続されるとともに、前記メインバスに接続されたCPUによる制御を受け、前記メインバスとは独立して前記共有メモリとの間でデータ転送可能に構成されたことを特徴とする。
本発明の第5の半導体システムは、第4の半導体システムにおいて、前記記憶容量の指定は前記CPUによって行われ、指定された前記記憶容量の情報を格納する記憶容量情報記憶部をさらに備え、前記アドレス回路は、前記記憶容量情報記憶部内に格納された前記記憶容量の情報を用いて、割り当てる前記連続領域の範囲を決定することを特徴とする。
本発明の第6の半導体システムは、第4又は第5の半導体システムにおいて、前記CPUは、前記処理回路ごとの前記基準アドレスを決定するものであり、決定された前記基準アドレスを格納する基準アドレス記憶部をさらに備え、前記アドレス回路は、前記基準アドレス記憶部内の前記基準アドレスを用いて、割り当てる前記連続領域の範囲を決定することを特徴とする。
本発明の第7の半導体システムは、第1の半導体システムにおいて、前記メモリは複数のセクションから構成され、前記アドレス回路は、前記処理回路に対して、前記アドレス範囲として、前記セクションの単数あるいは任意の組み合わせを割り当てることを特徴とする。
本発明によれば、複数の処理回路間で同時に使用される最大のメモリ容量を最低限有するメモリを搭載し、このメモリをメインバスを介することなく共有するようにしたので、メモリサイズを可及的に小さくすることができ、また、各処理回路は必要時にメモリにアクセスすることができる。
(第1の実施の形態)
図1は、本発明の第1の実施の形態としての半導体システムにおける半導体装置1の構成を示すブロック図である。
この半導体装置1は、ワンチップにより構成され、図示しないCPUバス(メインバス)に接続されている。
この半導体装置1は、目的に応じた種々の処理を行う第1のIP回路C(1)、第2のIP回路C(2)及び第3のIP回路C(3)を備える。また、この半導体装置1は、第1のIP回路C(1)〜第3のIP回路C(3)間でメモリ5を共有するための共有メモリ制御回路2を備える。
第1のIP回路C(1)〜第3のIP回路C(3)は、データの書込み及び読出しのタイミングを示すイネイブルデータEN1〜EN3、メモリ5におけるデータの書込み及び読出しアドレスを指示するアドレスADR1〜ADR3、動作時に必要なメモリサイズを表すサイズSIZE1〜SIZE3、第1のIP回路C(1)〜第3のIP回路C(3)が動作中であるか否かを示すランデータRUN1〜RUN3を生成及び出力する。さらに、第1のIP回路C(1)〜第3のIP回路C(3)は、データの書込み及び読出しを指示する書込み制御データ/読出し制御データ(図示せず)や、メモリ5に書き込む書込みデータ(図示せず)等を生成及び出力する。
以上のような第1のIP回路C(1)〜第3のIP回路C(3)は、最大で2つが同時に動作(2つのランデータRUNの信号がアサート)し、3つが同時に動作することはないものとする。また、2つのIP回路が動作する場合、下位(図中下側の方)のIP回路が、上位のIP回路に先立って動作を開始するものとする。
共有メモリ制御回路2は、第1のIP回路C(1)〜第3のIP回路C(3)間で共有されるメモリ5を備える。このメモリ5は、第1のIP回路C(1)〜第3のIP回路C(3)の外側に配置されている。このメモリ5のサイズは、第1のIP回路C(1)〜第3のIP回路C(3)に必要とされるそれぞれメモリサイズのうち、1番目及び2番目に大きいものを合計したものである。これは、上述したように、第1のIP回路C(1)〜第3のIP回路C(3)のうち、同時に動作するのは最大で2つであることに対応させたものである。
また、共有メモリ制御回路2は、第1のIP回路C(1)〜第3のIP回路C(3)とメモリ5との間でデータのやり取りするための第1のポートP1〜第3のポートP3を備える。
より詳しくは、第1のポートP1〜第3のポートP3は、それぞれ、データ書込み用のWRポート及びデータ読出し用のRDポートを備えている。また、第1のポートP1〜第3のポートP3は、上述のイネイブルデータEN1〜EN3を入力するENポート(図示せず)、後述する実メモリアドレスMADR1〜MADR3を入力する実アドレスポート(図示せず)、上述の書込み制御データ/読出し制御データを入力する制御ポート(図示せず)等をそれぞれ備える。
また、共有メモリ制御回路2は、第1のIP回路C(1)〜第3のIP回路C(3)により出力されたアドレスADR1〜3を、実メモリアドレスMADR1〜3に変換する第1アドレス回路4(1)〜第3アドレス回路4(3)を備える。
図2は、第1のアドレス回路4(1)〜第3のアドレス回路4(3)のいずれか(第nのアドレス回路4(n))の構成を示すブロック図である。
図2に示すように、第nのアドレス回路4(n)は、それぞれ、2つの加算器8、9と、1つのセレクタ10とを備える。
加算器8は、ベースアドレスBADRと、IP回路からのアドレスADR(アドレスADR1〜アドレスADR3)とを加算して、実メモリアドレスMADR(実メモリアドレスMADR1〜MADR3)を生成する。
セレクタ10は、ランデータRUNの信号がアサートされている場合は、IP回路からのサイズSIZE(サイズSIZE1〜SIZE3)をそのまま出力し、一方、ランデータRUNの信号がデアサートされている場合は、0を出力する。
加算器9は、ベースアドレスBADRと、セレクタ10から出力された出力データ(サイズSIZEあるいは0)とを加算して、上位の回路(第3のIP回路C(3)に対する第2のIP回路C(2)、あるいは第2のIP回路C(2)に対応する第1のIP回路C(1))に対するベースアドレスBADRを出力する。なお、第nのアドレス回路4(n)が第1のアドレス回路4(1)の場合は、上位の回路が存在しないので、出力されたベースアドレスBADRは何ら用いられることはない。
次に、図1及び図2を用いて、この半導体装置1の動作について説明する。
図1に示すように、第3のIP回路C(3)がランデータRUN3の信号をアサートしている場合、第3のアドレス回路4(3)は、与えられたベースアドレスADR(0番地)と、第3のIP回路C(3)から出力されたアドレスADR3とを加算して、実メモリアドレスMADR3を出力する。第3のポートは、この実メモリアドレスMADR3を受け取るとともに、第3のIP回路C(3)からイネイブルデータEN3、書込み制御データあるいは読出し制御データ(図示せず)、書込みデータ(書込みの場合)(図示せず)を受け取り、メモリ5に渡す。メモリ5は、書込みの場合は、受け取った書込みデータを指定された実メモリアドレスMADR3にイネイブルデータEN3のタイミングで格納する。読出しの場合は、メモリ5は、指定された実メモリアドレスMADR3からデータを読出し、第3のポートP3を介して、第3のIP回路C(3)に送出する。
また、第3のアドレス回路4(3)は、第3のIP回路C(3)からのサイズSIZE3と、与えられたベースアドレスADR(0番地とする)とを加算して、第2のアドレス回路4(2)へのベースアドレスBADRを算出し、第2のアドレス回路4(2)に送出する。
一方、第3のアドレス回路4(3)は、第3のIP回路C(3)がランデータRUN3の信号をデアサートしている場合は、セレクタ10(図2参照)で選択された0データと、ベースアドレスBADR(0番地)とを加算したものをベースアドレスBADRとして第2のアドレス回路4(2)に送出する。
次に、第2のアドレス回路4(2)は、第2のIP回路C(2)がランデータRUN2の信号をアサートしている場合、第3のアドレス回路4(3)から入力されたベースアドレスBADRと、第2のIP回路C(2)から出力されたアドレスADR2とを加算して、実メモリアドレスMADR2を出力する。第2のポートP2は、この実メモリアドレスMADR2を受け取るとともに、第2のIP回路C(2)からイネイブルデータEN2、書込み制御データあるいは読出し制御データ(図示せず)、書込みデータ(書込みの場合)(図示せず)を受け取り、メモリ5に渡す。メモリ5は、書込みの場合は、受け取った書込みデータを指定された実メモリアドレスMADR2に格納する。読出しの場合は、メモリ5は、指定された実メモリアドレスMADR2からデータを読出し、第2のポートP2を介して、第2のIP回路C(2)に送出する。
また、第2のアドレス回路4(2)は、第3のアドレス回路4(3)から入力されたベースアドレスADRと、第2のIP回路C(2)から出力されたサイズSIZE2とを加算して第1のアドレス回路4(1)へのベースアドレスBADRを算出する。第2のアドレス回路4(2)は、算出したベースアドレスを第1のアドレス回路4(1)に送出する。
一方、第2のアドレス回路4(2)は、第2のIP回路C(2)がランデータRUN2の信号をデアサートしている場合は、セレクタ10(図2参照)で選択された0データと、第3のアドレス回路4(3)から入力されたベースアドレスBADRとを加算し、ベースアドレスBADRとして第1のアドレス回路4(1)に送出する。
次に、第1のアドレス回路4(1)は、第1のIP回路C(1)がランデータRUN1の信号をアサートしている場合、第2のアドレス回路4(2)から入力されたベースアドレスBADRと、第1のIP回路C(1)から出力されたアドレスADR1とを加算して、実メモリアドレスMADR1を出力する。第1のポートP1は、この実メモリアドレスMADR1を受け取るとともに、第1のIP回路C(1)からイネイブルデータEN1、書込み制御データあるいは読出し制御データ(図示せず)、書込みデータ(書込みの場合)(図示せず)を受け取り、メモリ5に渡す。メモリ5は、書込みの場合は、受け取った書込みデータを指定された実メモリアドレスMADR1に格納する。読出しの場合は、メモリ5は、指定された実メモリアドレスMADR1からデータを読出し、第1のポートP1を介して、第1のIP回路C(1)に送出する。
次に、この半導体装置1の動作を、具体例を用いて、説明する。
図3は、半導体装置の動作を具体的に説明するための図表である。
まず、図3を用いて、動作を説明するに当たっての、前提条件について説明する。
図3の「回路条件」の欄に示すように、第1のIP回路C(1)は、サイズSIZE1として10(アドレス)を出力し、アドレスADR1として0〜9(番地)を出力するものとする。
同様に、第2のIP回路C(2)は、サイズSIZE2として40(アドレス)を出力し、アドレスADR2として0〜39(番地)を出力するものとする。
また、第3のIP回路C(3)は、サイズSIZE3として20(アドレス)を出力し、アドレスADR3として0〜19(番地)を出力するものとする。
以上から分かるように、サイズSIZE1〜SIZE3はそれぞれ10、40、20であるため、メモリ5に必要とされる最低限のメモリサイズは、1番目及び2番目に大きなメモリサイズの合計、40+20=60(アドレス)となる。そこで、図3の「必要なメモリサイズ」の欄に示すように、メモリ5としては、0〜59番地まで(60アドレス)有するものを用意する。
以上の前提条件の下、半導体装置1の動作を、書込みの場合を例にして、説明する。
まず、図3の「第3及び第2のIP回路が動作」の欄に示すように、第3のIP回路C(3)と第2のIP回路C(2)とが動作する場合について説明する。
図1に示すように、まず、ランデータRUN3の信号がアサートされた状態で、第3のIP回路C(3)から第3のアドレス回路4(3)にアドレスADR3(
0〜19番地)と、サイズSIZE3(=10)とが入力される。さらに、第3のアドレス回路4(3)にベースアドレスBADR(=0)が入力される。第3のアドレス回路4(3)は、アドレスADR3(0〜19番地)と、ベースアドレスBADR(=0)とを加算したものを、実メモリアドレスMADR3(0〜19番地)として出力する。第3のIP回路C(3)からの図示しない書込みデータが、図3に示すように、この実メモリアドレスMADR3(0〜19番地)に書き込まれる。
一方、第3のアドレス回路4(3)は、図1に示すように、第3のIP回路C(3)からのサイズSIZE3(=20)と、ベースアドレスBADR(=0)とを加算したものをベースアドレスBADR(=20)として第2のアドレス回路4(2)に送出する。
ランデータRUN2の信号がアサートされた状態で、第2のIP回路C(2)から第2のアドレス回路4(2)に、アドレスADR2(0〜39番地)と、サイズSIZE2(=40)とが入力される。第2のアドレス回路4(2)は、アドレスADR2(0〜39番地)と、第3のアドレス回路4(3)から受け取ったベースアドレスBADR(=20)とを加算したものを実メモリアドレスMADR2(20〜59番地)として出力する。この実メモリアドレスMADR2(20〜59番地)に、第2のIP回路C(2)からの図示しない書込みデータが、図3に示すように、書き込まれる。
一方、第2のアドレス回路4(2)は、第2のIP回路C(2)からのサイズSIZE2(=40)と、第3のアドレス回路4(3)からのベースアドレスBADR(=20)とを加算したものをベースアドレスBADR(=60)として第1のアドレス回路4(1)に送出する。第1のIP回路C(1)は、動作を停止しているので、このベースアドレスBADR(=60)は第1のIP回路C(1)において無視される。
次に、図3の「第2及び第1のIP回路が動作」の欄に示すように、第2のIP回路C(2)と第1のIP回路C(1)が動作する場合について説明する。
図1に示すように、まず、第3のアドレス回路4(3)に、ランデータRUN3の信号がデアサートされた状態で、ベースアドレスBADR(=0)が入力される。第3のアドレス回路4(3)は、このベースアドレスBADR(=0)と、0データ(図2参照)とを加算したものを、ベースアドレスBADRとして第2のアドレス回路4(2)に送出する。
第2のアドレス回路4(2)は、第3のアドレス回路4(3)からのベースアドレス(=0)と、第2のIP回路C(2)からのアドレスADR2(0〜39番地)とを加算したものを、実メモリアドレスMADR2(0〜39番地)として出力する。第2のIP回路C(2)から出力された書込みデータは、図3に示すように、メモリ5における0〜39番地のいずれかに書き込まれる。
一方、第2のアドレス回路4(2)は、第2のIP回路C(2)からのサイズSIZE2(=40)と、第3のアドレス回路4(3)からのベースアドレスBADR(=0)とを加算したものを、ベースアドレスBADR(=40)として第1のアドレス回路4(1)に送出する。
ランデータRUN1の信号がアサートされた状態で、第1のIP回路C(1)から第1のアドレス回路4(1)に、アドレスADR1(0〜9番地)と、サイズSIZE1(=10)とが入力される。第1のアドレス回路4(1)は、アドレスADR1(0〜9番地)と、第2のアドレス回路4(2)から受け取ったベースアドレスBADR(=40)とを加算したものを、実メモリアドレスMADR(40〜49番地)として出力する。第1のIP回路C(1)から出力された書込みデータは、図3に示すように、メモリ5における40〜49番地のいずれかに書き込まれる。残りの50〜59番地は、空き領域となる。
次に、図3の「第3及び第1のIP回路が動作」の欄に示すように、第3のIP回路C(3)と第1のIP回路C(1)が動作する場合について説明する。
図1に示すように、ランデータRUN3の信号がアサートされた状態で、第3のIP回路C(3)から第3のアドレス回路4(3)に、アドレスADR3(0〜19番地)と、サイズSIZE3(=20)とが入力される。さらに、第3のアドレス回路4(3)にはベースアドレスBADR(=0)が入力される。第3のアドレス回路4(3)は、アドレスADR3(0〜19番地)と、ベースアドレスBADR(=0)とを加算したものを、実メモリアドレスMADR3(0〜19番地)として出力する。第3のIP回路C(3)から出力された書込みデータは、図3に示すように、メモリ5における0〜19番地のいずれかに書き込まれる。
一方、第3のアドレス回路4(3)は、第3のIP回路C(3)からのサイズSIZE3(=20)と、ベースアドレスBADR(=0)とを加算したものをベースアドレスBADR(=20)として第2のアドレス回路4(2)に送出する。
ランデータRUN2の信号がデアサートされた状態で、第3のアドレス回路4(3)から第2のアドレス回路4(2)に、ベースアドレスBADR(=20)が入力される。第2のアドレス回路4(2)は、このベースアドレスBADR(=20)と、0データ(図2参照)とを加算したものを、ベースアドレスBADRとして、第1のアドレス回路4(1)に送出する。
ランデータRUN1の信号がアサートされた状態で、第1のIP回路C(1)から第2のアドレス回路4(2)に、アドレスADR1(0〜9番地)と、サイズSIZE1(=10)とが入力される。第1のアドレス回路4(1)は、アドレスADR1(0〜9番地)と、第2のアドレス回路4(2)から受け取ったベースアドレスBADR(=20)とを加算したものを、実メモリアドレスMADR1(20〜29番地)として出力する。第1のIP回路C(1)から出力された書込みデータは、図3に示すように、メモリ5における20〜29番地のいずれかに書き込まれる。残りの30〜59番地は、空き領域となる。
以上のように本発明の第1の実施の形態によれば、第1のIP回路C(1)〜第3のIP回路C(3)がそれぞれ出力するメモリアドレスADRに、それぞれベースアドレスBADRを加算したものを、共有メモリ上のアドレスMADRとして用いるようにしたので、同時に動作する同一チップ上の各回路は、回路側から見たアドレスはそのままで、通常通りに共有メモリにアクセス(メモリにおける連続した領域をそれぞれ確保)できる。これにより、複数の回路間での、メモリ共有が可能となる。従って、SoCの動作に必要な最低限のメモリを実装すればよく、このことはゲート数の削減、チップ面積の縮小化にもつながる。
また、本実施の形態によれば、各回路が、CPUバスとは別個のデータバスで接続されたメモリを共有するようにしたので、ダイレクト・メモリ・アクセス(DMA)とは異なり、各回路は、必要な時に随時、メモリを使用することができる。
以上に説明した第1の実施の形態では、複数の回路とメモリとを同一のチップ上に配置したが、CPUバスとは別個のバスに対して複数のチップ及びメモリを接続することで、各チップ間でのメモリの共有も可能である。
(第2の実施の形態)
図4は、本発明の第2の実施の形態としての半導体システムにおける半導体装置12を示すブロック図である。
この半導体装置12が、第1の実施の形態における半導体装置1と異なる点は以下の点にある。
すなわち、第1の実施の形態では、各IP回路C(1)〜C(3)に必要な記憶容量を表すサイズSIZE1〜SIZE3を、第1のIP回路C(1)〜第3のIP回路C(3)から第1アドレス回路4(1)〜第3アドレス回路4(3)に出力した。本実施の形態では、これらサイズSIZE1〜SIZE3を、ソフトウェア(SW)によりアクセス可能なレジスタ11(1)〜11(3)に格納し、第1アドレス回路4(1)〜第3アドレス回路4(3)は、レジスタ11(1)〜11(3)内からサイズSIZE1〜SIZE3を取り出す。
以上のように、本発明の第2の実施の形態によれば、各IP回路に必要とされるメモリサイズを表すサイズSIZE1〜SIZE3をレジスタ内に格納するようにしたので、各IP回路で必要なメモリサイズが変更されても、ソフトウェアにより容易にサイズSIZE1〜SIZE3を変更することができる。
(第3の実施の形態)
図5は、本発明の第3の実施の形態としての半導体システムにおける半導体装置14を示すブロック図である。
図5に示すように、本実施の形態では、第1のIP回路C(1)〜第3のIP回路C(3)に対し、ベースアドレスBADR1〜3を保持したレジスタ15(1)〜レジスタ15(3)が設けられている。また、サイズSIZE1〜サイズSIZE3を保持したレジスタ11(1)〜11(3)が、第2の実施の形態と同様に、各第1のIP回路C(1)〜第3のIP回路C(3)に対して、設けられている。
レジスタ15(1)〜レジスタ15(3)内のベースアドレスBADR1〜BADR3、及びレジスタ11(1)〜11(3)内のサイズSIZE1〜SIZE3は、ソフトウェアによりアクセス可能である。
また、本実施の形態では、第1及び第2の実施の形態における第1アドレス回路4(1)〜第3アドレス回路4(3)に代えて、加算器16(1)〜16(3)が設けられている。加算器16(1)〜16(3)は、レジスタ15(1)〜15(3)内のベースアドレスBADR1〜BADR3と、第1のIP回路C(1)〜第3のIP回路C(3)から出力されたアドレスADR1〜ADR3とを加算して実メモリアドレスMADR1〜MADR3を算出する
次に、図5及び図6(a)〜(c)を用いて、この半導体装置14の動作を、書込みの場合を例にして、説明する。
但し、第1のIP回路C(1)〜第3のIP回路C(3)のうち、第1のIP回路C(1)及び第3のIP回路C(3)が動作するものとする。この際、第1のIP回路C(1)が、第3のIP回路C(3)に先だって、動作を開始するものとする。
また、第1の実施の形態と同様に、サイズSIZE1〜SIZE3はそれぞれ10、40、20とする(図3参照)。アドレスADR1は0〜9番地、アドレスADR2は0〜39番地、アドレスADR3は0〜19番地とする(図3参照)。そして、メモリ5は0〜59番地まで有するものとする(図3参照)。
図6(a)〜(c)は、動作時におけるメモリ5内のデータ状態を時系列に沿って示した図である。
図6(a)に示すように、動作開始前においては、メモリ5内にデータは格納されていない。
この状態において、まず、図5に示すように、第1のIP回路C(1)が動作を開始すると、共有メモリ制御回路18が、他の回路の動作状況を調べる。第2のIP回路C(2)及び第3のIP回路C(3)は共に動作していないので、共有メモリ制御回路18は、メモリ5においてサイズSIZE1(=10)分の連続領域を確保可能なベースアドレスBADR1を算出し(ここでは20番地とする)、レジスタ15(1)内に設定する。
加算器16(1)は、第1のIP回路C(1)から出力されたアドレスADR1(0〜9番地)を受け取ると共に、レジスタ15(1)からベースアドレスBADR1(20番地)を取得し、これらを加算したものを実メモリアドレスMADR1(20〜29番地)として出力する。メモリ5は、第1のポートP1を介して、この実メモリアドレスMADR1を受け取り、第1のIP回路C(1)からの書込みデータ(図示せず)を、図6(b)に示すように、実メモリアドレスMADR1(20〜29番地)に書き込む。
この状態において、第3のIP回路C(3)が動作を開始するとする。共有メモリ制御回路18は、他の回路の動作状況を調べる。第1のIP回路C(1)が動作中であるので、共有メモリ制御回路18は、メモリ5において既に使用されている領域(20〜29番地)以外において、サイズSIZE3(=20)分の連続領域を確保可能なベースアドレスBADR3を算出し(ここでは40番地)、レジスタ15(3)内に設定する。
加算器16(3)は、第3のIP回路C(3)から出力されたアドレスADR3(0〜19番地)と、レジスタ15(3)内のベースアドレスBADR3(40番地)とを加算したものを実メモリアドレスMADR3(40〜59番地)として出力する。メモリ5は、第3のポートP3を介して、この実メモリアドレスMADR3を受け取り、第3のIP回路C(3)からの書込みデータを、図6(c)に示すように、実メモリアドレスMADR3(40〜59番地)に書き込む。
以上のように、本発明の第3の実施の形態によれば、第1のIP回路C(1)〜第3のIP回路C(3)に対するベースアドレスBADRを任意に設定できるようにしたので、各IP回路による書込みデータを、メモリ5における任意の位置に書き込むことができる。また、第1の実施の形態では、下位の回路が上位の回路に先立って動作を開始する必要があったが、本実施の形態では、ベースアドレスBADRを自由に設定できるので、どちらが先に動作を開始しても問題ない。
(第4の実施の形態)
図7は、本発明の第4の実施の形態としての半導体システムにおける半導体装置21を示すブロック図である。
図7に示すように、本実施の形態におけるメモリ5は、それぞれ等サイズ(例えば10アドレス)からなる各セクションS1〜Snに分割されている。
第1のIP回路C(1)〜第3のIP回路C(3)から出力されたアドレスADR1〜ADR3は、それぞれ上位アドレスUADR1〜UADR3と下位アドレスLADR1〜LADR3とに図示しない分割回路によって分割される。
第1セクション決定部23(1)〜第3セクション決定部23(3)は、各上位アドレスUADR1〜UADR3から、書込み及び読出し対象となるセクションS1〜Snを特定するセクションアドレスSADR1〜SADR3を出力する。
一方、コンカチネイト(concatenate)回路(結合回路)24(1)〜24(3)は、セクションアドレスSADR1〜SADR3と、下位アドレスLADR1〜LADR3とを結合したものを実メモリアドレスMADR1〜MADR3として出力する。
図9は、アドレスADR(アドレスADR1〜ADR3)と実メモリアドレスMADR(実メモリアドレスMADR1〜MADR3)との関係を示す図である。
図9に示すように、アドレスADRにおける上位アドレスUADRはセクション決定部においてセクションアドレスSADRに変換され、このセクションアドレスSADRと下位アドレスLADRとがコンカチネイト回路によって結合されたものが、実メモリアドレスMADRとなる。例えば、アドレスADRが「58」で、この上位アドレス「5」が、セクションアドレスSADR「1」に変換された場合、実メモリアドレスMADRは、セクションアドレスSADR「1」と下位アドレスLADR「8」との結合である「18」になる。
図8は、第1セクション決定部23(1)〜第3セクション決定部23(3)の構成をより詳細に示す図である。
図8に示すように、セクション決定部23(第1セクション決定部23(1)〜第3セクション決定部23(3)のうちの任意のもの)は、メモリ5における各セクションS1〜Snに対応したセクションアドレスSADR[0]〜SADR[n]を格納する記憶部26を備える。
一方、セクション決定部23は、上位アドレスUADRに基づいて、対応するセクションアドレスSADR[0]〜SADR[n]を選択するデコーダ25を備えている。各デコーダ25は、他のデコーダ25によるセクションアドレスSADRの選択状況を確認可能に構成され、他のデコーダ25と同時期に同一のセクションアドレスSADRを選択することはない。
次に、図7、図8及び図10(a)〜(c)を用いて、本実施の形態における半導体装置21の動作を、書込みの場合の例にして、説明する。
但し、第1のIP回路C(1)〜第3のIP回路C(3)のうち、第1のIP回路C(1)及び第2のIP回路C(2)が動作するものとする。
また、第1の実施の形態と同様に、サイズSIZE1〜SIZE3はそれぞれ10、40、20とする(図3参照)。アドレスADR1は0〜9番地、アドレスADR2は0〜39番地、アドレスADR3は0〜19番地とする(図3参照)。そして、メモリ5は0〜59番地まで有し(図3参照)、例えば6つのセクションS0〜S5(1セクションは10アドレス)に分割(図7及び図8のメモリ5においてn=5の場合)されているものとする。
図10(a)〜(c)は、動作時におけるメモリ5内のデータ状態を時系列に沿って示した図である。
図10(a)に示すように、動作開始前においては、メモリ5内にデータは格納されていない。
この状態において、まず、図7に示すように、第1のIP回路C(1)が動作を開始すると、第1のIP回路C(1)から出力されたアドレスADR1(0〜9番地)は、上位アドレスUADR「0」と下位アドレスLADR「0〜9」に分割される。上位アドレスUADR「0」は第1セクション決定部23(1)に入力され、下位アドレスLADR「0〜9」はコンカチネイト回路24(1)に入力される。
第1セクション決定部23(1)におけるデコーダ25(図8参照)は、例えば、上位アドレスUADR「0」に基づき記憶部26内のセクションアドレスSADR[2](=2)を選択する。
選択されたセクションアドレスSADR[2](=2)は、図8に示すように、記憶部26から取り出され、コンカチネイト回路24(1)に入力される。
コンカチネイト回路24(1)は、このセクションアドレスSADR[2](=2)と、上述の下位アドレスLADR「0〜9」とを結合して、実メモリアドレスMADR1「20〜29」を生成する。
メモリ5は、図7に示すように、第1のポートP1を介して、この実メモリアドレスMADR1(20〜29番地)を受け取り、第1のIP回路C(1)からの書込みデータ(図示せず)を、図10(b)の斜線部分(セクションS2)に示すように、実メモリアドレスMADR1(20〜29番地)に書き込む。
この状態において、図7に示すように、第2のIP回路C(2)が、動作を開始すると、第2のIP回路C(2)から出力されたアドレスADR2(0〜39番地)は、上位アドレスUADR「0〜3」と下位アドレスLADR「0〜9」に分割される。上位アドレスUADR「0〜3」は第2セクション決定部23(2)に入力され、下位アドレスLADR「0〜9」はコンカチネイト回路24(2)に入力される。
第2セクション決定部23(2)におけるデコーダ25(図8参照)は、セクションアドレスSADR[2]は既に使用されていると判断して、例えば、上位アドレスUADR「0〜3」に対し、記憶部26内のセクションアドレスSADR[0]、SADR[1]、SADR[3]、SADR[4]を選択する。
例えば、上位アドレスUADRが「0」のときは、セクションアドレスSADR[0](=0)を、上位アドレスUADRが「1」のときは、セクションアドレスSADR[1](=1)を、上位アドレスUADRが「2」のときは、セクションアドレスSADR[3](=3)を、上位アドレスUADRが「3」のときは、セクションアドレスSADR[4](=4)を選択する。
選択されたセクションアドレスSADR[n](n=0、1、3、4)は記憶部26から取り出され、コンカチネイト回路24(2)に入力される。
コンカチネイト回路24(2)は、このセクションアドレスSADR[n](=0、1、3、4)と、上述の下位アドレスLADR「0〜9」とを結合して、実メモリアドレスMADR2「0〜19、30〜49」を生成する。
メモリ5は、第2のポートP2を介して、この実メモリアドレスMADR2を受け取り、第2のIP回路C(2)からの書込みデータを、図10(c)の斜線部分(セクションS0、S1、S3、S4)に示すように、実メモリアドレスMADR2(0〜19、30〜49番地のいずれか)に書き込む。
以上のように、本発明の第4の実施の形態によれば、メモリを複数のセクションに分割し、セクション単位でデータを格納するようにしたので、連続した領域を確保することなくデータを格納することができる。
本発明の第1の実施の形態としての半導体システムにおける半導体装置の構成を示すブロック図である。 第1のアドレス回路〜第3のアドレス回路の構成を示すブロック図である。 半導体装置の動作を説明するための図である。 本発明の第2の実施の形態としての半導体システムにおける半導体装置を示すブロック図である。 本発明の第3の実施の形態としての半導体システムにおける半導体装置を示すブロック図である。 図5の半導体装置の動作時におけるメモリ内のデータを示した図である。 本発明の第4の実施の形態としての半導体システムにおける半導体装置を示すブロック図である。 第1セクション決定部〜第3セクション決定部を説明するための図である。 アドレスADRと実メモリアドレスMADRとの関係を示す図である。 図7の半導体装置の動作時におけるメモリ内のデータを示した図である。 従来の半導体システムの一部を示すブロック図である。 同一チップ内に設けられた複数のIP回路の使用状況を示す図である。 従来の別の半導体システムの一部を示すブロック図である。
符号の説明
1、12、14、21 半導体装置
2、13、18、22 共有メモリ制御回路
4(1)〜4(3) 第1アドレス回路〜第3アドレス回路
5 メモリ
8、9、16(1)〜16(3) 加算器
10 選択器
11(1)〜11(3)、15(1)〜15(3) レジスタ
23(1)〜23(3)、26 レジスタ
24(1)〜24(3) コンカチネイト回路
25 デコーダ
C(1)〜C(3) 第1のIP回路〜第3のIP回路
P1〜P3 第1ポート〜第3ポート
EN1、EN2、EN3 イネイブルデータ
ADR1、ADR2、ADR3 アドレス
SIZE1、SIZE2、SIZE3 サイズ
RUN1、RUN2、RUN3 ランデータ
BADR、BADR1,BADR2、BADR3 ベースアドレス
MADR1、MADR2、MADR3 実メモリアドレス

Claims (7)

  1. 共有メモリと、
    それぞれ記憶容量を指定して前記共有メモリを用い、動作モードに応じた特定の組み合わせが同時に動作する複数の処理回路と、
    前記処理回路によって指定された前記記憶容量分のアドレス範囲を前記処理回路に使用可能に割り当てるアドレス回路と、
    を備えることを特徴とする半導体システム。
  2. 前記アドレス回路は、前記アドレス範囲として前記共有メモリにおける連続領域を割り当てることを特徴とする請求項1に記載の半導体システム。
  3. 前記アドレス回路は、前記処理回路ごとに定められた基準アドレスと、前記処理回路によって指定された前記記憶容量とに基づいて、割り当てる前記連続領域の範囲を決定することを特徴とする請求項2に記載の半導体システム。
  4. 前記複数の処理回路はメインバスに接続されるとともに、前記メインバスに接続されたCPUによる制御を受け、前記メインバスとは独立して前記共有メモリとの間でデータ転送可能に構成されたことを特徴とする請求項1乃至3のいずれかに記載の半導体システム。
  5. 前記記憶容量の指定は前記CPUによって行われ、
    指定された前記記憶容量の情報を格納する記憶容量情報記憶部をさらに備え、
    前記アドレス回路は、前記記憶容量情報記憶部内に格納された前記記憶容量の情報を用いて、割り当てる前記連続領域の範囲を決定することを特徴とする請求項4に記載の半導体システム。
  6. 前記CPUは、前記処理回路ごとの前記基準アドレスを決定するものであり、
    決定された前記基準アドレスを格納する基準アドレス記憶部をさらに備え、
    前記アドレス回路は、前記基準アドレス記憶部内の前記基準アドレスを用いて、割り当てる前記連続領域の範囲を決定することを特徴とする請求項4又は5に記載の半導体システム。
  7. 前記メモリは複数のセクションから構成され、
    前記アドレス回路は、前記処理回路に対して、前記アドレス範囲として、前記セクションの単数あるいは任意の組み合わせを割り当てることを特徴とする請求項1に記載の半導体システム。
JP2003309866A 2003-09-02 2003-09-02 半導体システム Pending JP2005078481A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003309866A JP2005078481A (ja) 2003-09-02 2003-09-02 半導体システム
US10/931,216 US7249226B2 (en) 2003-09-02 2004-09-01 Semiconductor system and memory sharing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003309866A JP2005078481A (ja) 2003-09-02 2003-09-02 半導体システム

Publications (1)

Publication Number Publication Date
JP2005078481A true JP2005078481A (ja) 2005-03-24

Family

ID=34411898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003309866A Pending JP2005078481A (ja) 2003-09-02 2003-09-02 半導体システム

Country Status (2)

Country Link
US (1) US7249226B2 (ja)
JP (1) JP2005078481A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101439844B1 (ko) * 2007-11-14 2014-09-17 삼성전자주식회사 저장 공간 할당 방법 및 장치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH031260A (ja) * 1989-05-30 1991-01-07 Hitachi Ltd 計算機方式
US5347428A (en) * 1992-12-03 1994-09-13 Irvine Sensors Corporation Module comprising IC memory stack dedicated to and structurally combined with an IC microprocessor chip
JP3661235B2 (ja) 1995-08-28 2005-06-15 株式会社日立製作所 共有メモリシステム、並列型処理装置並びにメモリlsi
US5893162A (en) 1997-02-05 1999-04-06 Transwitch Corp. Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists
US6049854A (en) * 1997-05-09 2000-04-11 Vlsi Technology, Inc. System and method for sharing physical memory among distinct computer environments
JP2000172555A (ja) 1998-12-08 2000-06-23 Nec Eng Ltd メモリ共用化装置
US6779049B2 (en) * 2000-12-14 2004-08-17 International Business Machines Corporation Symmetric multi-processing system with attached processing units being able to access a shared memory without being structurally configured with an address translation mechanism
US6795907B2 (en) * 2001-06-28 2004-09-21 Hewlett-Packard Development Company, L.P. Relocation table for use in memory management
US7293155B2 (en) * 2003-05-30 2007-11-06 Intel Corporation Management of access to data from memory

Also Published As

Publication number Publication date
US7249226B2 (en) 2007-07-24
US20050102485A1 (en) 2005-05-12

Similar Documents

Publication Publication Date Title
JP4926963B2 (ja) 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
US6173356B1 (en) Multi-port DRAM with integrated SRAM and systems and methods using the same
US6141283A (en) Method and apparatus for dynamically placing portions of a memory in a reduced power consumption state
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
US7707328B2 (en) Memory access control circuit
KR20230054844A (ko) 복수의 명령 서브 큐 및 대응하는 아비터를 갖는 메모리 컨트롤러
KR102428563B1 (ko) 수눕 작동을 관리하는 코히런트 인터커넥트와 이를 포함하는 데이터 처리 장치들
US7882327B2 (en) Communicating between partitions in a statically partitioned multiprocessing system
JP2006139897A (ja) メモリ装置及びメモリ装置の動作方法
US8856459B1 (en) Matrix for numerical comparison
JP2005078481A (ja) 半導体システム
JP2005346715A (ja) マルチポートランダムアクセスメモリ
JP5338008B2 (ja) データ処理装置
JP5218413B2 (ja) 情報処理装置及びその制御方法
JP2005107873A (ja) 半導体集積回路
JP2005346513A (ja) 半導体装置
JP2006048691A (ja) ストリーミングidメソッドによるdmac発行メカニズム
US8499135B2 (en) Memory controller for reading data stored in memory after written thereto using write information table
JP2008305215A (ja) バスシステム
JP2004078396A (ja) メモリ装置
JP4583981B2 (ja) 画像処理装置
JP4642398B2 (ja) 共有バス調停システム
JP4496923B2 (ja) 共有メモリシステム
JP2972568B2 (ja) バス拡張装置
JP2007328647A (ja) Cpu間のデータ転送方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216