(57)【特許請求の範囲】
【請求項１】
単相クロックで制御される集積回路であって、
アドレス信号、チップセレクト信号及び読み出し／書き込み制御信号を含む外部入力信号及び前記外部入力信号によって生成される内部制御信号によってアクセスが制御され、所定のデータを記憶するレジスタと、
前記レジスタをアクセスするための前記外部入力信号を入力する入力端子部と、
前記レジスタからの出力信号を外部に出力する出力端子部と、
前記チップセレクト信号が選択状態を示すとき、前記アドレス信号をデコードし、前記レジスタがアクセス対象であることを示すレジスタアクセス信号を生成するデコーダと、
前記読み出し／書き込み制御信号が読み出し状態を示すとき、前記内部制御信号の制御に基づいて前記レジスタアクセス信号を前記単相クロックの立ち上がり又は立ち下がりでラッチするマスターラツチと、
前記マスターラッチの出力を前記出力端子部からの信号出力を制御する出力制御信号として前記単相クロックの立ち下がり又は立ち上がりでラッチするスレープラッチとを備え、
前記マスターラッチは前記出力端子部よりも前記入力端子部の近くに配置され、
前記スレーブラッチは前記入力端子部よりも前記出力端子部の近くに配置され、
前記外部入力信号に対するセットアップタイムおよび前記出力信号出力までのディレータイムが略等しくなるように、前記マスターラッチ及び前記スレーブラッチ配置されたことを特徴とする集積回路。
【請求項２】
前記マスターラッチの出力が入力されるスレーブラッチを、前記マスターラッチの１つに対して複数個備えたことを特徴とする請求項１記載の集積回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は大規模集積回路に係り、更に詳しくは外部からの入力信号に対するセットアップタイムと、その入力信号に対応して集積回路から出力されるべき出力信号出力までのディレータイムの改善を実現し、高周波動作を可能とする大規模集積回路に関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
近年、半導体集積回路の技術が向上し、１００万トランジスタを越えるＬＳＩが多々出現するようになってきた。また、それらのＬＳＩは５０ＭＨｚ以上の高速動作のものがほとんどである。
【０００３】
１００万トランジスタを集積するとチップサイズもそれ相応に大きくなり、チップ内を引き回される配線長も長くなる。配線長が長いということによって、当然のことながら、そこで遅延が生じることになる。
【０００４】
また、５０ＭＨｚ以上動作するＬＳＩに供給されるクロックは単相クロックが主流になっている。なぜならば、ＬＳＩ内部でノーオーバラップの２相クロックを生成する場合、供給されるクロックのデューティ比がかなり問題となり、外部より供給されるクロックに対して適切なデューティ比を要求することは高周波になると困難なためであるからである。単相クロックの場合、クロックの立ち上がりに意味があり、１サイクルで処理されたデータはクロックの立ち上がりエッジでラッチされる。
【０００５】
単相クロックでチップサイズが大きい、すなわち配線長が長いＬＳＩでは、データバスとアドレスバスの３ステート制御信号を生成するために、外部端子部を経由して入力された外部信号と内部制御信号との論理をとった結果をＬＳＩ内部の制御ブロックでラッチし、それらの信号をデータバスとアドレスバスの外部端子部まで引っ張り、制御を行っている。制御ブロックをＬＳＩのどこに配置するかで、３ステート制御信号を生成するための外部からの入力信号に対するセットアップタイムの条件と、データバス、アドレスバスまでのデータ出力のディレータイムとが問題となるために両方のつりあいのとれた辺りで配置を決めていたわけであるが、入力信号のセットアップタイムの改善と出力信号のディレータイムの改善すなわちＡＣ特性の改善をより一層追求するための方法が望まれている。
【０００６】
従来のデータバスの３ステート制御のためのマスタースレーブラッチの配置を図１１に示す。図１１のＬＳＩを大規模集積回路としてのプロセッサとし、プロセッサ内部に２クロックサイクルでリードされるレジスタがあるとする。このレジスタ（Ａレジスタ）１の内容がリードされる場合、まず第１サイクルでアドレス制御部２において、チップセレクト信号（ＣＳ＃）を検出しＲ／Ｗ＃信号でリードの選択信号を検出し、例えば３２ビットのアドレス（Ａ＜０：３１＞）のデコードを行い、Ａレジスタアドレスであることを確認したら、Ａレジスタアクセス信号をデータバス制御部３に送信する。データバス制御部３では、Ａレジスタアクセス信号と内部の制御信号と論理をとり、その結果をマスタースレーブラッチ４でクロックの立ち上がりエッジでラッチする。第２サイクルでは、ラッチされたＡレジスタアクセス信号をバッファ５を介してデータバス外部端子部に送信する。データバス外部端子部では、例えばデータバス（Ｄ＜０：６３＞）６４ビットをドライブするために複数のドライバを設け、そのドライバの出力をデータバスの３ステート制御セルの制御端子に接続し、ＬＳＩよりＡレジスタ１の内容を外部に出力する。なお、データバス外部端子部は図１１の下側の斜線部分である。
【０００７】
このように従来の構成であると、第１サイクルでは、外部信号であるアドレスのデコードおよびＣＳ＃やＲ／Ｗ＃信号と論理をとって、データバス制御部３に送信し内部の制御信号と論理をとってマスタースレーブラッチ４にラッチするまでの時間、すなわち、外部信号としてのＡ＜０：３１＞やＣＳ＃およびＲ／Ｗ＃信号のセットアップタイムに直接係わるものが問題となる。
【０００８】
また、第２サイクルでは、データバス制御部３でラッチしたＡレジスタ制御信号を外部データバス制御部に送信し、なおかつ６４ビットをドライブするための複数のドライバをあけ、データを出力する。すなわち、チップ内の配線遅延が大きく影響し、ＬＳＩのディレータイムに直接係わるものが問題となる。
【０００９】
このように、セットアップタイムとディレータイムは密接な関係にあり、Ａレジスタアクセス信号のラッチをどこに配置するかで、セットアップタイム条件を緩くするか、ディレータイムを速くするかが決まる。しかし、セットアップタイム条件を緩くしようとして、アドレスやＣＳ＃，Ｒ／Ｗ＃信号の端子が存在する近辺にＡレジスタアクセス信号のラッチを配置すれば、そのラッチからデータバス外部端子部までの距離が長くなり、配線による遅延が大きく影響し、プロセッサから出力されるデータのディレータイムが大きくなる。ディレータイムを速くしようとしてＡレジスタアクセス信号のラッチをデータバス外部端子部の近辺に配置すると、アドレスやＣＳ＃，Ｒ／Ｗ＃信号のセットアップタイム条件が厳しくなってしまうという問題点があった。
【００１０】
本発明はチップ面積の大きなＬＳＩの交流特性、特にセットアップタイムとディレータイムの両方の特性を改善し、高周波動作を可能とする大規模集積回路を提供することを目的とする。
【００１１】
【課題を解決するための手段】
図１は本発明の原理ブロック図である。同図は単相クロックで制御される集積回路において、外部からの入力信号に対するセットアップタイム、およびその入力信号に対応して出力されるべき信号出力までのディレータイムの改善を図ることを目的とする本発明の原理ブロック図である。
【００１２】
図１において、集積回路１０の外部からの入力信号と集積回路の内部の制御信号とに対応して出力信号を制御するための出力制御信号をラッチするマスタースレーブラッチが、マスターラッチ１２とスレーブラッチ１４とに分割される。そしてマスターラッチ１２は外部からの入力信号の入力端子１１の近くに配置され、マスターラッチ１２の出力が入力されるスレーブラッチ１４は出力信号の出力端子１３の近くに配置される。なお、図１には出力信号、例えば６４ビットを３２ビットずつに分割して出力するためにデータ出力を制御するスレーブラッチ１４が２個示されている。
【００１３】
【作用】
本発明は、例えば１チップ上に集積されたベクトル演算プロセッサのような大規模集積回路から、その集積回路内のあるレジスタの内容を外部からのアドレス指定入力に応じて外部に出力するような場合を対象とする。すなわち、チップ内での配線長が長く、配線による信号の遅延の影響が大きく、かつその内部が単相のクロックで制御されるているＬＳＩにおいて、例えばアドレス、チップセレクト、およびリード／ライト選択信号などのＬＳＩの外部からの入力信号と内部での制御信号とに対応した出力制御信号がマスターラッチ１２にラッチされ、その出力が出力端子１３、例えばデータバス外部端子部の近くに配置されたスレーブラッチ１４によってラッチされ、出力データの制御に用いられる。
【００１４】
前述のように、例えばベクトル演算プロセッサの内部に２クロックサイクルでリードされるレジスタがあるとする。マスターラッチ１２はクロックが‘Ｌ’レベルの時にオン状態となり、‘Ｈ’レベルの時に以前の状態を保持し、スレーブラッチ１４は‘Ｈ’レベルでオン状態となり、‘Ｌ’レベルで以前の状態を保持するものとすれば、第１のクロックの‘Ｌ’レベル状態において出力制御信号がマスターラッチ１２にラッチされ、マスターラッチ１２の出力は第２クロックの‘Ｈ’レベルの区間でスレーブラッチ１４にラッチされ、直ちに出力制御に用いられる。これによって、従来のように第２クロックの立ち上がりエッジで出力制御信号が入力端子１１の近くに配置されたマスタースレーブラッチにラッチされ、その出力が出力端子１３、例えばデータバス外部端子部まで長い配線を介して長い遅延の後に送られ、データ出力の制御に用いられる場合に比べて、高周波特性を向上させることが可能となる。
【００１５】
【実施例】
図２は本発明が適用される集積回路としてのベクトルプロセッサユニット（ＶＰＵ）の構成ブロック図である。同図において、ベクトルプロセッサユニットはベクトルユニット２１、命令バッファユニット２２、制御ユニット２３、アドレスユニット２４、およびバス制御ユニット２５から構成されている。
【００１６】
ベクトルユニット２１はベクトル演算を行うものであり、ベクトルレジスタ２６、マスクレジスタ２７、スカラレジスタ２８、ロード／ストアパイプ２９、加算器３１、乗算器３２、除算器３３、画像処理部３４、およびマスク処理部３５を備えている。
【００１７】
図３はベクトルプロセッサユニット２０を備え、その全体動作がホストＣＰＵ４１によって制御されるコンピュータシステムの実施例である。同図において、ベクトルプロセッサユニット２０とホストＣＰＵ４１とは相互にアドレスバス４２およびデータバス４３を介して接続されると共に、それぞれメモリ４４に接続されている。このシステムにおいて、ホストＣＰＵ４１がベクトルプロセッサユニット２１を起動して、ベクトル演算を行わせる手順を簡単に説明する。
【００１８】
まずフェーズＰ１において、ホストＣＰＵ４１はメモリ４４に格納されている制御プログラムを実行し、ベクトルプロセッサユニット２０の内部の各種内部レジスタ４６を初期化する。この場合の制御プログラムはメモリ４４内のホストＣＰＵプログラム格納領域に格納されている。内部レジスタ４６の初期化後、ホストＣＰＵ４１はベクトルプロセッサユニット２０を起動する。
【００１９】
フェーズＰ２において、メモリ４４内のＶＰＵプログラム領域に格納されている命令コードはＶＰＵ２０に取り込まれ、図２の命令バッファユニット２２に格納される。
【００２０】
その後フェーズＰ３において、命令バッファユニット２２によって、格納された命令が解読され、その結果に応じて実行されるべき命令の内容が各種内部レジスタなどに出力され、フェーズＰ４においてベクトルプロセッサユニット２０は必要な演算を実行する。
【００２１】
このような処理が終了すると、ホストＣＰＵ４１はベクトルプロセッサユニット２０の内部の各種レジスタにアクセスし、演算が正常に終了したことを確認する。本発明はこのようなアクセスに対してベクトルプロセッサユニット２０の内部のレジスタの内容をホストＣＰＵ４１に出力するような場合を対象としている。
【００２２】
図４は本発明の対象としてのベクトルプロセッサユニットの実施例である。同図において図２と同じ部分には（  ）内に同じ符号を付してある。図２に追加された部分として、アドレスバスに対する入出力部（Ｉ／Ｏ）５０、チップセレクト信号入力端子５１、リード／ライト選択信号入力端子５２、データに対する入出力部（Ｉ／Ｏ）５３、データバスへのデータの入出力を制御するデータバス制御部（ＤＣＮＴ）５４が示されている。なお、データバス制御部（ＤＣＮＴ）５４と入出力部（Ｉ／Ｏ）５３は図１１で説明したデータバス外部端子部の近傍（または内部）に設けられる。
【００２３】
図５は本発明におけるマスターラッチとスレーブラッチの配置の実施例である。同図において、図１１の従来例と実質的に同様の部分には同じ符号を付してある。本発明においては、外部から入力されるアドレス、チップセレクト信号、およびリード／ライト選択信号と内部制御信号とに対応して、アドレス制御部２によってＡレジスタアクセス信号がアドレス制御部２内のマスターラッチ６０にラッチされ、マスターラッチ６０の出力はバッファ６１を介してデータバス制御部３内のスレーブラッチ６２に出力される。
【００２４】
本実施例においては、データバスが６４ビットとそのビット数が多く、１つのスレーブラッチで６４個のデータに対する入出力部５３をドライブするのは負荷が重いために、データバス制御部３を２個設け、それぞれにスレーブラッチ６２を備え、３２ビット分ずつ入出力部５３を駆動する構成となっている。
【００２５】
図６は図５のアドレス制御部２の構成ブロック図である。アドレス制御部２は、例えば図３においてベクトルプロセッサユニット２０がアドレスバス４２、およびデータバス４３のバス権を獲得し独自にメモリ４４にアクセスするような場合に、そのアクセスのアドレスを生成するアドレス生成部６４、および本発明の対象として説明したようにホストＣＰＵ４１がベクトルプロセッサユニット２０の内部レジスタにアクセスする場合に、そのアドレスが内部のレジスタのいずれに対応するかなどを判定するアドレス判定部６５から構成されている。
【００２６】
図７は図６のアドレス判定部６５の実施例の構成ブロック図である。同図においてアドレス判定部６５は、図５においてアドレスバスから入力される、例えば３２ビットのアドレスをデコードするデコーダ７０、例えばベクトルプロセッサユニットの内部に存在しないレジスタなどのアドレスが入力されたことを示すスレーブエラー信号（負論理）が入力されるマスタースレーブラッチ７１、マスタースレーブラッチ７１の出力とリード／ライト選択信号が入力される第１のアンド回路７２、第２のアンド回路７３、オア回路７４、第３のアンド回路７５、マスターラッチ７６、およびマスターラッチ７６の出力をラッチしてオア回路７４の一方の入力端子に入力させるスレーブラッチ７７から構成されている。
【００２７】
外部から入力されたアドレスはデコーダ７０によってデコードされ、そのアドレスが図５のＡレジスタ１を指すものである時には、そのことを示す信号  外１
【００２８】
【外１】
0003593348.tif 000002
【００２９】
が第２のアンド回路７３の一方の入力端子に入力される。この時マスタースレーブラッチ７１に入力されるスレーブエラー信号は‘Ｈ’であり、リード／ライト選択信号がリードを示す‘Ｈ’であれば第１のアンド回路７２の出力  外２
【００３０】
【外２】
0003593348.tif 000003
【００３１】
は‘Ｈ’となり、その信号は第２のアンド回路７３のもう一方の入力端子に入力される。そして第２のアンド回路７３の出力はオア回路７４を介して第３のアンド回路７５に入力される。
【００３２】
第３のアンド回路７５のもう一方の入力端子には負論理のデータストローブ信号（ＤＳ＃）が入力されている。この信号はＡレジスタの内容を受け取ったことを示す、例えばホストＣＰＵから入力される信号であり、この信号が‘Ｌ’にアサートされないとき第３のアンド回路７５の出力は‘Ｈ’であり、その値はマスターラッチ６０に入力される。
【００３３】
マスターラッチ６０内部のスリーステートバッファ６０ａはクロックが‘Ｌ’レベルの時にオンとなるスリーステートバッファであり、第３のアンド回路７５の出力はラッチ作用を持つインバータ６０ｂと６０ｃ（６０ｃによるフィードバックによってラッチ作用が行われる）によってラッチされる。そしてその結果は、図５に示したバッファ６１を介して、２つのスレーブラッチ６２に与えられることになる。
【００３４】
図７において第２のアンド回路７３、オア回路７４、および第３のアンド回路７５は全体として１つのリセットセットフリップフロップ（Ｒ−Ｓ  ＦＦ）を構成している。すなわち、このＦＦは外部からデータを受け取ったことを示すデータストローブ信号がリセット信号としてアサートされるまでセット状態を維持するものであり、これは外部からデータを受け取ったことを示す信号が入力されない限りデータ出力状態を維持する必要があるためである。その状態を維持するために、オア回路７４に対してスレーブラッチ７７の出力が入力される。
【００３５】
このスレーブラッチの出力内容は図５におけるスレーブラッチ６２の出力内容と同じであるが、本発明においてはスレーブラッチ６２がアドレス制御部２内のマスターラッチ６０と離れた位置に設けられるために、オア回路７４への配線が長くなり、信号遅延の問題などが生じるためにスレーブラッチ７７が独立して設けられている。またスレーブラッチの内容をフィードバックさせる理由は、マスターラッチの出力をフィードバックさせるのではデータがすぐに切り換わってしまってセット状態が保てないためである。
【００３６】
図８は図７のアドレス判定部の出力がバッファ６１を介して入力されるデータバス制御部（ＤＣＮＴ）の構成ブロック図である。同図において、データバス制御部はスレーブラッチ６２とその出力を入出力部（Ｉ／Ｏ）５３に出力するためのバッファ８１から構成されている。スレーブラッチ６２の構成は図７におけるマスターラッチ６０の構成と類似しているが、マスターラッチ６０内部のスリーステートバッファ６０ａがクロック信号の‘Ｌ’レベルでオンとなったのに対して、スレーブラッチ６２内のスリーステートバッファ６２ａはクロック信号の‘Ｈ’レベルでオンとなる点だけが異なっている。
【００３７】
図９はデータバスに対する入出力部（Ｉ／Ｏ）の構成ブロック図である。同図において入出力部は、図８に示したデータバス制御部のバッファ８１から出力されるデータバススリーステート制御信号が入力されるインバータ８３、データバスへの出力データ、すなわち図５においてＡレジスタアクセス信号がアサートされた時のＡレジスタの内容が内部データバスを介して入力される出力用フリップフロップ８４、アンドゲート８５、ノアゲート８６、ＭＯＳ  ＦＥＴ８７，８８および外部からデータバスを介して入力されるデータを格納する入力用フリップフロップ８９から構成される。
【００３８】
なお図９において、Ｄｎ９０はデータバス１ビット分を示し、図４において入出力部（Ｉ／Ｏ）５３が６４ビット分存在することに対応している。そしてこの６４ビット分の入出力部のうち、３２ビット分ずつのデータ出力が図４の２つのデータバス制御部５４によってそれぞれ制御されることになる。すなわちデータ出力時には図７の第２のアンド回路７３、オア回路７４、および第３のアンド回路７５によって論理値‘１’がマスターラッチ６０に入力され、図８のスレーブラッチ６２も‘１’をラッチし、図９のＩ／Ｏに対してはデータバススリーステート制御信号として‘１’が入力される。
【００３９】
図１０は本発明におけるデータ出力タイミングと従来例との比較説明図である。前述のようにＡレジスタのリードが２クロックサイクルで行われるものとし、従来例すなわち図１１においてはマスタースレーブラッチ４への出力制御信号のラッチが第２クロックの立ち上がりエッジで行われるものとして本発明の効果を説明する。
【００４０】
本発明においては、図７，図８で説明したようにマスターラッチへのラッチはクロックが‘Ｌ’レベル、スレーブラッチへのラッチは‘Ｈ’レベルの時に行われる。このため第１クロックで入力されたチップセレクト信号、リード／ライト選択信号などに対応して、Ａレジスタアドレスが第１クロックの後半において出力されると、図７において直ちに第３のアンド回路７５の出力のマスターラッチ６０へのラッチが行われ、その出力は例えば図に示す配線ディレーの後に第２クロックが‘Ｈ’の区間でスレーブラッチ６２に伝えられ、直ちにデータ出力、すなわちＡレジスタの内容の出力が行われる。
【００４１】
そして外部からのＤＳ＃信号がアサートされると、第３のクロックの立ち上がりによってそれが検出され、その時点で図９におけるデータバススリーステート制御信号は‘Ｌ’となり、データ出力は停止される。このため従来例、すなわち第２クロックの立ち上がりでマスタースレーブラッチの出力が行われ、配線ディレーの後にデータ出力が行われる場合に比べて、データ出力までの時間が短くなる。
【００４２】
【発明の効果】
以上詳細に説明したように、本発明によればマスターラッチを含むアドレス制御部をアドレス入力端子の近くに、またスレーブラッチを含むデータバス制御部をデータバス外部端子部の近くに配置することにより、入力信号に対するセットアップタイムと出力信号出力までのディレータイムの両方を同時に改善することが可能となり、集積回路における高周波特性の改善に寄与するところが大きい。
【図面の簡単な説明】
【図１】本発明の原理構成ブロック図である。
【図２】本発明の対象としてのベクトルプロセッサユニットの一般的構成を示すブロック図である。
【図３】ベクトルプロセッサユニットを含むコンピュータシステムの構成を示すブロック図である。
【図４】ベクトルプロセッサユニットの実施例の構成を示すブロック図である。
【図５】本発明におけるマスターラッチとスレーブラッチの配置の実施例を示すブロック図である。
【図６】アドレス制御部の構成を示すブロック図である。
【図７】アドレス判定部の構成を示すブロック図である。
【図８】データバス制御部（ＤＣＮＴ）の構成を示すブロック図である。
【図９】入出力部（Ｉ／Ｏ）の構成を示すブロック図である。
【図１０】本発明の効果を説明するためのタイムチャートである。
【図１１】集積回路におけるマスタースレーブラッチの配置の従来例を示す図である。
【符号の説明】
１    Ａレジスタ
２    アドレス制御部
３    データバス制御部（ＤＣＮＴ）
１０  集積回路
１１  入力端子
１２，６０  マスターラッチ
１３  出力端子
１４，６２  スレーブラッチ
２１  ベクトルプロセッサユニット
４１  ホストＣＰＵ
４４  メモリ
５３  入出力部（Ｉ／Ｏ）
【図１】
0003593348.tif 000004
【図２】
0003593348.tif 000005
【図３】
0003593348.tif 000006
【図４】
0003593348.tif 000007
【図５】
0003593348.tif 000008
【図６】
0003593348.tif 000009
【図７】
0003593348.tif 000010
【図８】
0003593348.tif 000011
【図９】
0003593348.tif 000012
【図１０】
0003593348.tif 000013
【図１１】
0003593348.tif 000014