[go: up one dir, main page]

JP2004318450A - Bus controller - Google Patents

Bus controller Download PDF

Info

Publication number
JP2004318450A
JP2004318450A JP2003110988A JP2003110988A JP2004318450A JP 2004318450 A JP2004318450 A JP 2004318450A JP 2003110988 A JP2003110988 A JP 2003110988A JP 2003110988 A JP2003110988 A JP 2003110988A JP 2004318450 A JP2004318450 A JP 2004318450A
Authority
JP
Japan
Prior art keywords
bus
signals
control device
data
clock
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
JP2003110988A
Other languages
Japanese (ja)
Inventor
Kazuhiko Tanaka
和彦 田中
Koji Hosoki
浩二 細木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003110988A priority Critical patent/JP2004318450A/en
Publication of JP2004318450A publication Critical patent/JP2004318450A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

【課題】CMOSドライバなどに駆動される同期式バスでは、多数の信号が同時に変化すると大きな電流が流れ電源電圧が変動し、誤動作の原因となることがある。
【解決手段】同期式バスにおいて、多数の信号を同時に変化させる場合にはダミーのサイクルを挿入し信号の変化を複数サイクルに分けて行うことで誤動作を防ぐ。同時に変化する信号が少ない場合には、ダミーのサイクルを挿入しないので、ダミーのサイクルが挿入される確立が低い場合には、少ない性能低下で安定性を向上させることができる。
【選択図】 図1
In a synchronous bus driven by a CMOS driver or the like, when a large number of signals change simultaneously, a large current flows and a power supply voltage fluctuates, which may cause a malfunction.
In a synchronous bus, when a large number of signals are changed simultaneously, a malfunction is prevented by inserting a dummy cycle and dividing the signal into a plurality of cycles. When the number of signals that change simultaneously is small, no dummy cycle is inserted. Therefore, when the probability of inserting a dummy cycle is low, stability can be improved with a small decrease in performance.
[Selection diagram] Fig. 1

Description

【0001】
【発明の属する技術分野】
本発明は、バスを使用した情報処理装置に関する。
【0002】
【従来の技術】
マルチメディアの普及に伴い、動画など多量のデータを処理するために情報処理装置のデータ転送性能を強化する必要性が高まっている。データ転送性能を上げるためには、データバス幅の拡張やデータバス動作周波数の向上が有効である。
【0003】
現在一般に使用されている論理回路はCMOSと呼ばれる方式を用いている。これはN型のMOSトランジスタとP型のMOSトランジスタを使用するもので、定常状態ではほとんど電流が流れず、出力が変化するときにのみ電流が流れるという特徴をもつ。このため、データバスに使用されている複数のCMOS回路の出力が同時に変化すると大きな電流が流れ、電源電圧が不安定となりシステムを誤動作させる要因となる。このため、システムを設計する際には、最悪ケースを考慮して、すべての信号が同時に変化しても誤動作しないように、電源系の設計を行う必要がある。
【0004】
本問題を解決するために、特開平10−111743号公報に記載の「集積回路」では、データバスの各信号に異なる遅延を持った遅延素子を挿入することで、同時変化の発生の抑制を図っている。
【0005】
【特許文献1】
特開平10−111743号公報
【0006】
【発明が解決しようとする課題】
しかし、特開平10−111743号公報に記載の手法では、遅延素子を挿入する必要があるため、クロックに同期してデータ転送を行う同期式のバスでは、遅延量が最大となっている信号をもとに動作周波数を決定する必要があり、動作周波数が低下してしまうという問題が発生する。このクロックの低下はデータの内容にかかわらず常に発生するため、クロック周波数の低下に比例して単純にバスのデータ転送性能が低下することになる。また、クロック周期よりも小さな遅延量を持つ遅延素子は非同期回路で構成することになるので、電源電圧や温度の変動により遅延量が変化してしまい、動作条件によらず期待通りの動作をする回路を作成するには困難が伴い、正しく動作させようとマージンを持たせると動作周波数が低下してしまう。
【0007】
【課題を解決するための手段】
本発明では、バスを構成する信号のうちある閾値よりも多い本数の信号が連続したバスクロックサイクル間で変化する際にのみバスインターフェイス部の動作を変更することでこの問題を解決する。すなわち、閾値よりも多い信号が同時に変化する場合には、一部のバス上の信号を変化させるタイミングをずらし、さらにこの場合のみバスに出力するクロックの周期を一時的に長くすることにより同時に変化する信号の本数を抑える。
【0008】
閾値が十分に大きければ、それよりも多い本数の信号が一度に変化する可能性は非常に小さくなる。たとえば32ビットバスにおいて28ビット以上同時に変化する確率は、(32+32×31+32×31×30+32×31×30×29)÷2^32=0.04%程度である。しかし通常の設計では、この0.04%の場合も正しく動作するように、長めのクロック周期を設定したり、電源系の強化を行ったりする必要がある。
【0009】
本発明の方式では、この0.04%の場合にのみクロック周期を長くする。たとえば、この場合だけクロック周期を2倍にしたとすると、平均周期は1.0004とごくわずかに増えるに過ぎず、性能の低下はほとんどないといえる。しかしな、この場合には同時に変化するバス信号の最大本数は28本と少なくなるため、出力ドライバ部の電源容量の設計値を、本発明を使用しない場合よりも12.5%も低く抑えることが可能となる。しかも、これはランダムなデータ列を仮定した場合であるが、自然画の画像データなどでは、データ間の相関が高いので、性能低下はもっと低くなる。
【0010】
【発明の実施の形態】
図1〜2を用いて本発明の第一の実施例を説明する。図1は本発明のバスを用いたデータ転送のタイムチャートの例、図2は本発明を実現するための回路構成の例である。図2において10と11はバスに出力するデータを保持するためのフリップフロップである。本実施例ではデータバスの幅は32ビットとしており、そのうち上位16ビットを16個のフリップフロップ10に下位16ビットを16個のフリップフロップ11に格納する。実際にはデータ幅は任意であり、バスの分割数も2に限定されるものではない。また分割の方法も上位、下位の他に偶数、奇数などいろいろな方法が可能であり、しかも必ずしもそれぞれが同じ数になるように分割する必要も無い。
【0011】
13は同時変化検出回路であり、本実施例では二つの32ビットの入力を持ち、それぞれに信号1001と1004、1005(1004が上位16ビット、1005が下位16ビット)が接続されている。両者の間で同じビット位置にある信号同士を比較し、異なるビットの数があらかじめ定義しておいた閾値(ここでは閾値=17を想定)以上の時に出力1002を1、閾値未満の時に0とする回路である。たとえば、信号1001の最下位ビットであるビット0は信号1005の最下位ビットであるビット0と比較され、信号1004の最下位ビットであるビット0は信号の1001の下から17ビット目のビット17と、最上位ビットは信号1001の最上ビットであるビット31と比較される。本回路の詳細については後述する。
【0012】
14はフリップフロップ11に対する書き込みクロック1003を作成する書き込み制御回路である。フリップフロップ10はクロック1000の立ち上がりエッジで、フリップフロップ11は書き込みクロック1003の立ち上がりでそれぞれの入力データを取り込み内部に保持する。フリップフロップ10が保持する値はデータ線1004に出力され、フリップフロップ11が保持する値はデータ線1005に出力される。
【0013】
12は32ビットのトライステートバッファであり、信号1010を1にすると信号1004および1005をデータバス1007へ出力することができる。バス1007のデータをバス入力処理回路に取り込む際には、信号1010を0にすることでトライステートバッファ12の出力をハイインピーダンス状態にする。
【0014】
マスク回路15は、書き込みクロック1003の値にもとづいてバスクロック1006をマスクする回路である。
【0015】
図1のタイムチャートにおいて横軸は時間である。内部クロック1000は一定の周期で発振しているクロックである。1001はバス出力データ生成回路が生成したバス1007に出力すべきデータ列である。この例ではA、B、C、D、E、F・・・というデータをバス1007へ出力することを想定している。同時変化検出回路13は、現在の入力データ1001の値がその直前のサイクルにおける入力データ1001から変化する際に反転したビット数がある閾値以上の場合に1となる。この実施例では閾値=17である。AとBの間では反転したビット数は16以下であることを想定しており、同時変化検出信号1002は0であるが、DとEの間では反転するビット数が17以上であることを想定しているため、このときの同時変化検出信号1002は1となっている。
【0016】
同時変化検出回路13は、図3に示すような回路で実現可能である。この回路において131はXORゲートであり、二つの入力信号の値が異なるときに出力2000は1となり、同じ時に0となる。本実施例では、XORゲート131は32個使用され、各ビットごとに入力信号の一致検証を行う。一致検証の結果は32入力の加算器132で加算される。加算器133の出力2100は入力値によって変化し、0から32の間の値をとる。この出力2100の値が本来同時に変化するバス信号の本数となる。加算器の出力2100とあらかじめ決められた閾値2200を比較器133で比較することで同時変化検出回路13の出力1002を得る。比較器133は入力2100と入力2200を比較して、両者が等しいか、入力2100が大きいときに出力1002を1にする回路である。また閾値2200は本実施例では17となる。
【0017】
同時変化検出信号1002が1となると、書き込み制御回路14により、次のサイクルで書き込み信号1003がマスクされることになる。書き込み制御回路はラッチやANDゲートの組み合わせにより実現することが可能であるが、一般的な回路構成なので、ここでは詳細説明を省略する。
【0018】
入力データ1001を、クロック1000および1003によりフリップフロップ10、11へ書き込むことでデータ1004、1005は図1のように変化することになる。これらを連結したバスデータ1007では、上位データ1004がE、下位データ1005がDというように、上位と下位が不整合になる期間が生じている。この期間のデータをバスに接続されている他のデバイスが誤って取り込まないようにするために、マスク回路15によりバスクロックをマスクする。マスク回路15も一般的な回路で実現できるため詳細説明は省略する。
【0019】
バス出力データ生成回路20は図4に示す回路で実現することが可能である。この図において200はバスに出力するデータを一時的に保持しておくためのFIFOであり、201はFIFO200への書き込みのための制御回路、202はFIFO200の読み出しのための制御回路である。210はFIFO200へ書き込むデータを転送するためのバスであり、1001はFIFO200から読み出したデータを転送するためのバスである。1000は内部クロック信号であり、クロック周波数の設定を変更しない限りは一定の周期で変化する。211はFIFO書き込み制御回路に対する制御信号であり、書き込み要求信号などが含まれる。215はFIFO200のステータスを示す信号で、FIFO200がいっぱいになった場合に、FIFO200への書き込みができないことを通知する場合などに用いられる。214はFIFO書き込み制御回路201とFIFO200読み出し制御回路202との間で状態の通信を行うための制御信号群であり、これによりFIFO200に有効なデータが無いにもかかわらず、データを読み出すことを抑制したり、FIFO200に空きが無い時にFIFO200への書き込みを抑制するなどの処理を実現することが可能となる。212はFIFO200に対する書き込み制御信号であり、FIFO200への書き込みアドレス、書き込み要求信号などから構成される。213はFIFO200に対する読み出し制御信号であり、FIFO2000からの読み出しアドレス、読み出し要求信号などから構成されている。
【0020】
FIFO読み出し回路202は、書き込み制御回路14から書き込みクロック1003を受け取り、これにより、FIFO読み出しアドレスの更新を行う。すなわち、フリップフロップ11への書き込みを抑制した場合には、FIFO読み出しアドレスの更新は行われない。この情報は、信号216を経由してバス制御回路へも送られ、バス制御回路は送られてきた情報の内容により、バス制御回路内部のステートマシンの更新を一時停止するなどの処理を行う。バス制御回路は、上記の一時停止機能が入っている他は、一般に使用されているバス制御回路と同様のものを使用することが可能であるため詳細説明は省略する。
【0021】
このように、データバス1007に出力する信号の同時変化の個数があらかじめ決めてある閾値よりも大きい場合のみ、データ転送に使用するサイクル数を増やすことで、同時変化の個数が少ない場合の高速なデータ転送を実現しつつ、同時変化が多い場合の安定したデータ転送を実現することが可能である。また閾値については、専用のレジスタを設けて、設定値を可変とすることで、電源電圧やクロック周波数の変更などに柔軟に対応させることが可能となる。たとえば、AC駆動時のように電源容量に余裕がある場合には閾値を高めに設定することで性能を向上させ、バッテリー駆動時のように電源容量に余裕がない場合には、閾値を低く設定して安定性を増すといったことが可能である。
【0022】
本発明の第二の実施例を、図5、6を用いて説明する。図5は本発明のバス方式を用いたデータ転送のタイムチャートの例、図6は本発明を実現するための回路構成の例である。本実施例では、バスクロック1006をマスクする代わりに、有効信号1008を用いてデータバス上のデータ1007に有効なデータが載っているかを通知する。有効信号1008は1であるときはバスデータ1007に有効な値が載っており、0であるときは無効な値が載っていることを示す1ビットの信号である。本実施例では上位データ1004と下位データ1005に不整合が生じている期間は、有効信号を0にすることで、バスに接続されているデバイスが有効でないデータを取り込んでしまうことを防ぐ。
【0023】
この方式では、書き込みクロック1003とクロック1000を用いて、有効信号生成回路16により、有効信号1008を作成する。この有効信号1008は図5に示されるように、書き込み信号1003がマスクされたサイクル期間だけ0となるように生成される。
【0024】
本実施例の方式は第一の実施例の方式と比較すると、有効信号1008を追加する必要があるため、信号の本数という点では不利となる。しかしながら、バスクロック1006を一定の周期で出し続けることができるため、バスクロック受信側でPLL(Phase Locked Loop)のような回路を使用している場合には、クロックの安定供給という点で有利となる。
【0025】
次に本発明の方式を、プロセッサと同期式メモリの間のインターフェイスに使用した例を図7を用いて説明する。この図において、1aは第一の実施例のバス制御装置を内蔵したプロセッサ、2はSDRAMのようにクロックに同期してデータ転送を行う同期式メモリである。1007はプロセッサ1aと同期式メモリ2の間でデータ転送を行うためのデータバス、1100はプロセッサ1aが同期式メモリ2をアクセスする際に使用するアドレスバス、1101はアドレスストローブ信号などの制御信号を集めた制御信号バス、1006はバスクロックである。
【0026】
図8は、本構成においてプロセッサ1aからメモリ2に対してバーストライトを行った場合のタイムチャートの例である。この例では、アドレス3001で指定されるアドレスを先頭に32ビット幅の4つのデータ3010、3011、3013、3014を同期式メモリ2へ書き込むアクセスを実行する。この例では、データ3010から3011およびデータ3013から3014の遷移では変化するビット数はあらかじめ設定されている閾値よりも小さな値となっているが、データ3011から3013への遷移では、変化するビット数は閾値よりも大きな値となっているケースを想定している。
【0027】
このライトアクセスを行う際にはまずサイクルカウント3000=2であるサイクルに、プロセッサ1aがアドレスバス1100に対して書き込み領域の先頭アドレスであるアドレス3001を出力し、同時に制御信号バス1101に書き込みコマンドやアドレスストローブ信号、書き込みサイズなどの情報3002を出力する。その後、サイクルカウント3000=4から1サイクルに1データずつデータバス1007へ書き込みデータを送り出す。ただし、遷移するビット数が閾値を超えるデータ3011と3013の間に、無効なデータ3012を送出するサイクルが挿入している。さらに同期式メモリ2が、誤って無効なデータ3012を取り込まないように、サイクルカウント3000=7においてバスクロック1006をマスクしている。
【0028】
同期式メモリ2は、データフェーズにおいてクロック1006の立ち上がりエッジで、データバス1007上のデータを取り込んでいく。サイクルカウント3000=7のサイクルでは、クロック1006は立ち上がらないため、無効なデータ3012は同期式メモリに取り込まれること無く、正しいデータのみを取り込むことができる。本説明では、説明を簡略するために簡単なデータ転送プロトコルを例に説明したが、一般に使用されているSDRAMなどのプロトコルでも本発明の方法を使用することが可能である。しかも本実施例の方式は、プロセッサ側がクロックをマスクするだけで実現されているので、同期式メモリ側の変更は不要であり一般的な同期式メモリを使用することが可能である。
【0029】
【発明の効果】
本発明を使用することで、バスの信号が同時に変化する場合でも動作の安定性を確保できるとともに、ほとんどのケースで高速動作との両立を実現することが可能となる。
【図面の簡単な説明】
【図1】第一の実施例におけるタイムチャート。
【図2】第一の実施例におけるシステム構成例。
【図3】同時変化検出回路の構成例。
【図4】バス出力データ生成回路の構成例。
【図5】第二の実施例におけるタイムチャート。
【図6】第二の実施例におけるシステム構成例。
【図7】同期式メモリを接続した場合の構成例。
【図8】同期式メモリを接続した場合のタイムチャート。
【符号の説明】
1…バス制御装置、1a…本発明の方式を用いたプロセッサ、2…同期式メモリ、10…上位データ格納用フリップフロップ、11…下位データ格納用フリップフロップ、12…トライステートバッファ、13…同時変化検出回路、14…書き込み制御回路、15…マスク回路、16…有効信号生成回路、20…バス出力データ生成回路、131…XORゲート、132…加算器、133…比較器、200…FIFO、201…FIFO書き込み制御回路、202…FIFO読み出し制御回路、210…FIFO書き込みデータ、211…FIFO書き込み要求信号群、212…FIFO書き込み制御信号群、213…FIFO読み出し制御信号群、214…回路間連絡信号、215…FIFOステータス信号、216…バス制御回路連絡信号、1000…内部クロック、1001…入力データ、1002…同時変化検出信号、1003…書き込み信号、1004…上位データ、1005…下位データ、1006…バスクロック、1007…バスデータ、1008…有効信号、1700…不整合なデータ、1010…トライステートバッファ制御信号、1100…アドレスバス、1101…制御信号バス、2000…XOR出力信号、2100…加算器出力信号、2200…閾値、3000…サイクルカウント。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information processing device using a bus.
[0002]
[Prior art]
With the spread of multimedia, there is an increasing need to enhance the data transfer performance of information processing devices to process large amounts of data such as moving images. In order to improve the data transfer performance, it is effective to increase the data bus width and the operation frequency of the data bus.
[0003]
A logic circuit generally used at present uses a method called CMOS. This uses an N-type MOS transistor and a P-type MOS transistor, and has a feature that almost no current flows in a steady state and current flows only when an output changes. For this reason, if the outputs of a plurality of CMOS circuits used for the data bus change simultaneously, a large current flows, and the power supply voltage becomes unstable, causing a malfunction of the system. For this reason, when designing a system, it is necessary to design a power supply system in consideration of the worst case so that a malfunction does not occur even if all signals change simultaneously.
[0004]
In order to solve this problem, in an "integrated circuit" described in Japanese Patent Application Laid-Open No. H10-111743, the occurrence of simultaneous changes is suppressed by inserting delay elements having different delays into each signal on a data bus. I'm trying.
[0005]
[Patent Document 1]
JP 10-111743 A
[Problems to be solved by the invention]
However, in the method described in Japanese Patent Application Laid-Open No. HEI 10-111743, it is necessary to insert a delay element. Therefore, in a synchronous bus that performs data transfer in synchronization with a clock, a signal having a maximum delay amount is transmitted. It is necessary to determine the operating frequency based on this, which causes a problem that the operating frequency is lowered. Since the clock drop always occurs irrespective of the data content, the data transfer performance of the bus simply decreases in proportion to the clock frequency drop. In addition, since the delay element having a delay amount smaller than the clock cycle is constituted by an asynchronous circuit, the delay amount changes due to a change in power supply voltage or temperature, and the expected operation is performed irrespective of operating conditions. It is difficult to create a circuit, and if a margin is provided for proper operation, the operating frequency is reduced.
[0007]
[Means for Solving the Problems]
The present invention solves this problem by changing the operation of the bus interface unit only when the number of signals constituting the bus that exceeds a certain threshold value changes between consecutive bus clock cycles. In other words, when more signals than the threshold change at the same time, the timing of changing the signals on some buses is shifted, and only in this case, the period of the clock output to the bus is temporarily increased to change simultaneously. Reduce the number of signals to be transmitted.
[0008]
If the threshold value is sufficiently large, the possibility that a larger number of signals change at once is very small. For example, the probability of simultaneously changing 28 bits or more in a 32-bit bus is about (32 + 32 × 31 + 32 × 31 × 30 + 32 × 31 × 30 × 29) ÷ 2 ^ 32 = 0.04%. However, in a normal design, it is necessary to set a longer clock cycle and to strengthen the power supply system so that the circuit operates properly even in the case of 0.04%.
[0009]
In the method of the present invention, the clock cycle is lengthened only in the case of 0.04%. For example, if the clock cycle is doubled only in this case, the average cycle is only slightly increased to 1.0004, and it can be said that the performance is hardly reduced. However, in this case, the maximum number of simultaneously changing bus signals becomes as small as 28, so that the design value of the power supply capacity of the output driver section is suppressed to 12.5% lower than when the present invention is not used. Becomes possible. In addition, this is a case where a random data sequence is assumed. However, in image data of a natural image or the like, the correlation between the data is high, so that the performance degradation is further reduced.
[0010]
BEST MODE FOR CARRYING OUT THE INVENTION
A first embodiment of the present invention will be described with reference to FIGS. FIG. 1 is an example of a time chart of data transfer using a bus according to the present invention, and FIG. 2 is an example of a circuit configuration for realizing the present invention. In FIG. 2, reference numerals 10 and 11 are flip-flops for holding data to be output to the bus. In this embodiment, the width of the data bus is 32 bits, of which the upper 16 bits are stored in 16 flip-flops 10 and the lower 16 bits are stored in 16 flip-flops 11. Actually, the data width is arbitrary, and the number of divisions of the bus is not limited to two. Various methods such as an even number and an odd number can be used for the division in addition to the upper and lower parts, and it is not always necessary to perform the division so that each of them has the same number.
[0011]
Reference numeral 13 denotes a simultaneous change detection circuit, which has two 32-bit inputs in this embodiment, and is connected to signals 1001, 1004, and 1005 (1004 is the upper 16 bits and 1005 is the lower 16 bits). The signals at the same bit position are compared between the two, and the output 1002 is set to 1 when the number of different bits is equal to or larger than a predefined threshold (here, threshold = 17), and set to 0 when the number is smaller than the threshold. Circuit. For example, bit 0 which is the least significant bit of signal 1001 is compared with bit 0 which is the least significant bit of signal 1005, and bit 0 which is the least significant bit of signal 1004 is bit 17 which is the 17th bit from the bottom of signal 1001. And the most significant bit is compared to bit 31 which is the most significant bit of signal 1001. Details of this circuit will be described later.
[0012]
A write control circuit 14 generates a write clock 1003 for the flip-flop 11. The flip-flop 10 captures and holds the respective input data at the rising edge of the clock 1000 and the flip-flop 11 at the rising edge of the write clock 1003. The value held by the flip-flop 10 is output to a data line 1004, and the value held by the flip-flop 11 is output to a data line 1005.
[0013]
Reference numeral 12 denotes a 32-bit tristate buffer. When the signal 1010 is set to 1, the signals 1004 and 1005 can be output to the data bus 1007. When the data of the bus 1007 is taken into the bus input processing circuit, the output of the tristate buffer 12 is set to a high impedance state by setting the signal 1010 to 0.
[0014]
The mask circuit 15 is a circuit that masks the bus clock 1006 based on the value of the write clock 1003.
[0015]
In the time chart of FIG. 1, the horizontal axis is time. The internal clock 1000 is a clock oscillating at a constant cycle. 1001 is a data string to be output to the bus 1007 generated by the bus output data generation circuit. In this example, it is assumed that data A, B, C, D, E, F... Are output to the bus 1007. The simultaneous change detection circuit 13 becomes 1 when the number of bits inverted when the current value of the input data 1001 changes from the input data 1001 in the immediately preceding cycle is equal to or greater than a certain threshold. In this embodiment, the threshold value is 17. It is assumed that the number of inverted bits between A and B is 16 or less, and the simultaneous change detection signal 1002 is 0, but the number of inverted bits between D and E is 17 or more. Since the assumption is made, the simultaneous change detection signal 1002 at this time is 1.
[0016]
The simultaneous change detection circuit 13 can be realized by a circuit as shown in FIG. In this circuit, reference numeral 131 denotes an XOR gate, and the output 2000 becomes 1 when two input signals have different values, and becomes 0 when the values are the same. In the present embodiment, 32 XOR gates 131 are used, and the input signal is verified for each bit. The result of the matching verification is added by a 32-input adder 132. The output 2100 of the adder 133 changes according to the input value, and takes a value between 0 and 32. The value of the output 2100 is the number of bus signals that originally change simultaneously. The output 1002 of the simultaneous change detection circuit 13 is obtained by comparing the output 2100 of the adder with a predetermined threshold 2200 by the comparator 133. The comparator 133 is a circuit that compares the input 2100 and the input 2200 and sets the output 1002 to 1 when both are equal or the input 2100 is large. The threshold value 2200 is 17 in this embodiment.
[0017]
When the simultaneous change detection signal 1002 becomes 1, the write control circuit 14 masks the write signal 1003 in the next cycle. The write control circuit can be realized by a combination of a latch and an AND gate. However, since the write control circuit has a general circuit configuration, detailed description is omitted here.
[0018]
By writing the input data 1001 to the flip-flops 10 and 11 by the clocks 1000 and 1003, the data 1004 and 1005 change as shown in FIG. In the bus data 1007 connecting these, there is a period in which the upper and lower data are inconsistent, such as E for the upper data 1004 and D for the lower data 1005. The bus clock is masked by the mask circuit 15 in order to prevent other devices connected to the bus from erroneously taking in the data during this period. Since the mask circuit 15 can also be realized by a general circuit, a detailed description is omitted.
[0019]
The bus output data generation circuit 20 can be realized by the circuit shown in FIG. In this figure, reference numeral 200 denotes a FIFO for temporarily holding data to be output to the bus, 201 denotes a control circuit for writing to the FIFO 200, and 202 denotes a control circuit for reading from the FIFO 200. Reference numeral 210 denotes a bus for transferring data to be written to the FIFO 200, and reference numeral 1001 denotes a bus for transferring data read from the FIFO 200. An internal clock signal 1000 changes at a constant cycle unless the clock frequency setting is changed. 211 is a control signal for the FIFO write control circuit, and includes a write request signal and the like. Reference numeral 215 denotes a signal indicating the status of the FIFO 200, which is used, for example, to notify that writing to the FIFO 200 cannot be performed when the FIFO 200 is full. Reference numeral 214 denotes a control signal group for performing state communication between the FIFO write control circuit 201 and the FIFO 200 read control circuit 202, thereby suppressing reading of data even though there is no valid data in the FIFO 200. For example, it is possible to realize processing such as suppressing writing to the FIFO 200 when the FIFO 200 has no free space. Reference numeral 212 denotes a write control signal for the FIFO 200, which includes a write address to the FIFO 200, a write request signal, and the like. A read control signal 213 for the FIFO 200 includes a read address from the FIFO 2000, a read request signal, and the like.
[0020]
The FIFO read circuit 202 receives the write clock 1003 from the write control circuit 14 and thereby updates the FIFO read address. That is, when writing to the flip-flop 11 is suppressed, the FIFO read address is not updated. This information is also sent to the bus control circuit via the signal 216, and the bus control circuit performs processing such as temporarily stopping the update of the state machine inside the bus control circuit based on the content of the sent information. Except for the above-mentioned temporary stop function, the bus control circuit can be the same as a commonly used bus control circuit, and therefore detailed description is omitted.
[0021]
As described above, only when the number of simultaneous changes of the signal output to the data bus 1007 is larger than a predetermined threshold value, the number of cycles used for data transfer is increased, so that the high-speed operation when the number of simultaneous changes is small is achieved. It is possible to realize stable data transfer when there are many simultaneous changes while realizing data transfer. As for the threshold value, a dedicated register is provided and the set value is made variable, so that it is possible to flexibly cope with a change in the power supply voltage or the clock frequency. For example, if there is enough power capacity in the case of AC driving, a higher threshold is set to improve the performance, and if there is no more power capacity in the case of battery driving, the threshold is set lower. It is possible to increase stability.
[0022]
A second embodiment of the present invention will be described with reference to FIGS. FIG. 5 is an example of a time chart of data transfer using the bus system of the present invention, and FIG. 6 is an example of a circuit configuration for realizing the present invention. In the present embodiment, instead of masking the bus clock 1006, a notification is made using a valid signal 1008 as to whether data 1007 on the data bus contains valid data. When the valid signal 1008 is 1, it is a 1-bit signal indicating that a valid value is present in the bus data 1007, and when it is 0, an invalid value is present. In the present embodiment, by setting the valid signal to 0 during a period in which the upper data 1004 and the lower data 1005 are inconsistent, it is possible to prevent a device connected to the bus from fetching invalid data.
[0023]
In this method, the valid signal 1008 is generated by the valid signal generation circuit 16 using the write clock 1003 and the clock 1000. As shown in FIG. 5, the valid signal 1008 is generated so that the write signal 1003 becomes 0 only during the masked cycle period.
[0024]
Compared with the method of the first embodiment, the method of the present embodiment is disadvantageous in terms of the number of signals because the valid signal 1008 needs to be added. However, since the bus clock 1006 can be continuously output at a constant cycle, when a circuit such as a PLL (Phase Locked Loop) is used on the bus clock receiving side, it is advantageous in terms of stable supply of the clock. Become.
[0025]
Next, an example in which the method of the present invention is used for an interface between a processor and a synchronous memory will be described with reference to FIG. In this figure, reference numeral 1a denotes a processor incorporating the bus control device of the first embodiment, and 2 denotes a synchronous memory for transferring data in synchronization with a clock like an SDRAM. 1007 is a data bus for performing data transfer between the processor 1a and the synchronous memory 2, 1100 is an address bus used when the processor 1a accesses the synchronous memory 2, 1101 is a control signal such as an address strobe signal. The collected control signal bus 1006 is a bus clock.
[0026]
FIG. 8 is an example of a time chart when a burst write is performed from the processor 1a to the memory 2 in this configuration. In this example, an access for writing four data 3010, 3011, 3013, and 3014 having a 32-bit width to the synchronous memory 2 starting from the address specified by the address 3001 is executed. In this example, the number of bits changed in the transition from data 3010 to 3011 and data 3013 to 3014 is smaller than a preset threshold value, but the number of bits changed in the transition from data 3011 to 3013 is Is assumed to be a value larger than the threshold value.
[0027]
When performing this write access, first, in the cycle where the cycle count 3000 = 2, the processor 1a outputs the address 3001 which is the head address of the write area to the address bus 1100, and at the same time, writes the write command or the like to the control signal bus 1101. It outputs information 3002 such as an address strobe signal and a write size. Thereafter, the write data is sent out to the data bus 1007 one data per cycle from the cycle count 3000 = 4. However, a cycle for sending invalid data 3012 is inserted between data 3011 and 3013 in which the number of bits to be changed exceeds the threshold. Further, the bus clock 1006 is masked at the cycle count 3000 = 7 so that the synchronous memory 2 does not erroneously take in invalid data 3012.
[0028]
The synchronous memory 2 takes in the data on the data bus 1007 at the rising edge of the clock 1006 in the data phase. In the cycle of the cycle count 3000 = 7, the clock 1006 does not rise, so that invalid data 3012 is not taken into the synchronous memory, and only correct data can be taken. In this description, a simple data transfer protocol has been described as an example for the sake of simplicity. However, the method of the present invention can be used with a commonly used protocol such as SDRAM. Moreover, since the method of this embodiment is realized only by masking the clock on the processor side, it is not necessary to change the synchronous memory side, and a general synchronous memory can be used.
[0029]
【The invention's effect】
By using the present invention, operation stability can be ensured even when bus signals change simultaneously, and in most cases, compatibility with high-speed operation can be realized.
[Brief description of the drawings]
FIG. 1 is a time chart according to a first embodiment.
FIG. 2 is an example of a system configuration according to the first embodiment.
FIG. 3 is a configuration example of a simultaneous change detection circuit.
FIG. 4 is a configuration example of a bus output data generation circuit.
FIG. 5 is a time chart in the second embodiment.
FIG. 6 is an example of a system configuration according to a second embodiment.
FIG. 7 is a configuration example when a synchronous memory is connected.
FIG. 8 is a time chart when a synchronous memory is connected.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Bus control apparatus, 1a ... Processor using the method of this invention, 2 ... Synchronous memory, 10 ... Upper data storage flip-flop, 11 ... Lower data storage flip-flop, 12 ... Tristate buffer, 13 ... Simultaneous Change detection circuit, 14 write control circuit, 15 mask circuit, 16 effective signal generation circuit, 20 bus output data generation circuit, 131 XOR gate, 132 adder, 133 comparator, 200 FIFO, 201 ... FIFO write control circuit, 202 ... FIFO read control circuit, 210 ... FIFO write data, 211 ... FIFO write request signal group, 212 ... FIFO write control signal group, 213 ... FIFO read control signal group, 214 ... Inter-circuit communication signal 215: FIFO status signal, 216: Bus control circuit communication signal , 1000: internal clock, 1001: input data, 1002: simultaneous change detection signal, 1003: write signal, 1004: upper data, 1005: lower data, 1006: bus clock, 1007: bus data, 1008: valid signal, 1700 ... Inconsistent data, 1010: tristate buffer control signal, 1100: address bus, 1101: control signal bus, 2000: XOR output signal, 2100: adder output signal, 2200: threshold value, 3000: cycle count.

Claims (9)

少なくとも二本以上の信号から構成され、内部クロックを用いて生成したバスクロックに同期してデータ転送を行う同期式のバスにおいて、二つの連続したバスクロックサイクル間の遷移により変化するバス信号の本数があらかじめ定義しておいた閾値を超えることが判明した場合には、一部のバス信号を変化させるタイミングをずらす手段を設けることで、一回の内部クロックサイクル遷移時に、前記の閾値を超える本数のバス信号が同時に変化しないように制御することを特徴としたバス制御装置。The number of bus signals that change due to transitions between two consecutive bus clock cycles in a synchronous bus composed of at least two or more signals and performing data transfer in synchronization with a bus clock generated using an internal clock If it is found that exceeds a predefined threshold, a means for shifting the timing of changing some bus signals is provided, so that the number of buses exceeding the threshold during one internal clock cycle transition is provided. A bus control device for controlling the bus signals not to change at the same time. 少なくとも二本以上の信号から構成され、内部クロックを用いて生成したバスクロックに同期してデータ転送を行う同期式のバスにおいて、二つの連続したバスクロックサイクル間の遷移により変化するバス信号の本数があらかじめ定義しておいた閾値を超えることが判明した場合には、バスクロックの周期を長くすることを特徴としたバス制御装置。The number of bus signals that change due to transitions between two consecutive bus clock cycles in a synchronous bus composed of at least two or more signals and performing data transfer in synchronization with a bus clock generated using an internal clock A bus control device characterized in that, when it is determined that the threshold value exceeds a predefined threshold value, the cycle of the bus clock is lengthened. 少なくとも二本以上の信号から構成され、内部クロックを用いて生成したバスクロックに同期してデータ転送を行う同期式のバスにおいて、二つの連続したバスクロックサイクル間の遷移により変化するバス信号の本数があらかじめ定義しておいた閾値を超えることが判明した場合には、一部のバス信号のみが変化した状態でバス信号を出力する内部クロックサイクルを挿入し、前記の閾値を超える本数のバス信号が同時に変化しないように制御することを特徴としたバス制御装置。The number of bus signals that change due to transitions between two consecutive bus clock cycles in a synchronous bus composed of at least two or more signals and performing data transfer in synchronization with a bus clock generated using an internal clock If it is found that exceeds a predefined threshold, an internal clock cycle for outputting a bus signal in a state where only some of the bus signals are changed is inserted, and the number of bus signals exceeding the threshold is inserted. A bus control device characterized by controlling so that the signals do not change at the same time. バスに転送中のデータが有効であることを示す有効信号を追加し、一部のバス信号のみが変化した状態でバス信号を出力する内部クロックサイクル中は、前記有効信号の値をデータが無効であることを示した値に設定することで、データの受信側が誤ったデータを受信しないようにした請求項3記載のバス制御装置。A valid signal indicating that the data being transferred is valid is added to the bus, and during the internal clock cycle in which the bus signal is output with only some of the bus signals changed, the value of the valid signal is invalid during the internal clock cycle. 4. The bus control device according to claim 3, wherein the value is set to a value indicating that the data receiving side does not receive erroneous data. 複数の閾値を持ち、どの閾値まで超えたかにより、バス信号を変化させるためのサイクルのずらし方を選択することを特徴とした請求項1記載のバス制御装置。2. The bus control device according to claim 1, wherein the bus control device has a plurality of threshold values, and selects a method of shifting a cycle for changing a bus signal depending on which threshold value is exceeded. 複数の閾値を持ち、どの閾値まで超えたかにより、クロック周期の変更量を選択可能であることを特徴とした請求項2記載のバス制御装置。3. The bus control device according to claim 2, wherein the bus control device has a plurality of threshold values, and a change amount of the clock cycle can be selected depending on which threshold value is exceeded. 前記閾値の値を、変更可能としたことを特徴とした請求項1から6記載のバス制御装置。7. The bus control device according to claim 1, wherein the threshold value is changeable. 請求項1から7記載のバス制御装置を内蔵したLSI。An LSI incorporating the bus control device according to claim 1. 前記のバスを介して前記のバス制御装置に接続されるデバイスは同期式のメモリであることを特徴とした請求項1から7記載のバス制御装置。8. The bus control device according to claim 1, wherein a device connected to the bus control device via the bus is a synchronous memory.
JP2003110988A 2003-04-16 2003-04-16 Bus controller Pending JP2004318450A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003110988A JP2004318450A (en) 2003-04-16 2003-04-16 Bus controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003110988A JP2004318450A (en) 2003-04-16 2003-04-16 Bus controller

Publications (1)

Publication Number Publication Date
JP2004318450A true JP2004318450A (en) 2004-11-11

Family

ID=33471664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003110988A Pending JP2004318450A (en) 2003-04-16 2003-04-16 Bus controller

Country Status (1)

Country Link
JP (1) JP2004318450A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8245121B2 (en) 2006-12-28 2012-08-14 Fujitsu Semiconductor Limited Signal control circuit and signal control apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8245121B2 (en) 2006-12-28 2012-08-14 Fujitsu Semiconductor Limited Signal control circuit and signal control apparatus

Similar Documents

Publication Publication Date Title
US9882711B1 (en) Device including single wire interface and data processing system including the same
US7788558B2 (en) Semiconductor integrated circuit and control method thereof
US6366530B1 (en) Synchronizing data operations across a synchronization boundary between different clock domains using two-hot encoding
JP3587162B2 (en) Data transfer control device and electronic equipment
US20090121756A1 (en) Pseudo-synchronous small register designs with very low power consumption and methods to implement
US6424688B1 (en) Method to transfer data in a system with multiple clock domains using clock skipping techniques
KR20090070125A (en) Semiconductor memory device
KR20020032350A (en) Serial/parallel conversion circuit, data transfer control device and electronic equipment
JP4711915B2 (en) Electronic circuit
US7290158B2 (en) Method of controlling data transfer within a semiconductor integrated circuit based on a clock sync control signal
US5522048A (en) Low-power area-efficient and robust asynchronous-to-synchronous interface
CN117421273A (en) Method for transmitting data and corresponding system on chip
CN100576140C (en) Circuit and method for generating clock signal for digital signal processor and memory
JP2004318450A (en) Bus controller
KR100224277B1 (en) A circuit of generating internal clock of synchronous semiconductor device
CN113726335B (en) Clock control circuit, clock circuit and electronic device
US20040263206A1 (en) Pseudo-dynamic latch deracer
JPH1185304A (en) Clock input control circuit
CN101751357B (en) Digital phase-locked loop device
JP3563223B2 (en) Register circuit
US20080201499A1 (en) Asynchronous Data Buffer
JP2004207942A (en) Data transfer apparatus and data transfer method
US6552590B2 (en) Clocking scheme for ASIC
KR100853465B1 (en) Internal lead signal generation circuit and semiconductor memory device including same
JP4511819B2 (en) FIFO memory control apparatus and method