[go: up one dir, main page]

JP2006164024A - On-chip bus system - Google Patents

On-chip bus system Download PDF

Info

Publication number
JP2006164024A
JP2006164024A JP2004356753A JP2004356753A JP2006164024A JP 2006164024 A JP2006164024 A JP 2006164024A JP 2004356753 A JP2004356753 A JP 2004356753A JP 2004356753 A JP2004356753 A JP 2004356753A JP 2006164024 A JP2006164024 A JP 2006164024A
Authority
JP
Japan
Prior art keywords
fifo
address
decoding result
master device
data
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.)
Withdrawn
Application number
JP2004356753A
Other languages
Japanese (ja)
Inventor
Koji Oshima
浩二 大島
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 JP2004356753A priority Critical patent/JP2006164024A/en
Publication of JP2006164024A publication Critical patent/JP2006164024A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 アドレスのデコード結果を記憶しておくFIFOサイズは比較的小さく、アクセスが連続してFIFOが一杯になるとスレーブデバイスやバスの状況に関係なくマスタデバイスは次のトランザクションの発行を待たされるため、システム全体のスループットが低下するといった問題を解決するオンチップバスシステムを提供すること。
【解決手段】 スプリットバスのライト用のデータチャネルにおいてマスタデバイスとスレーブデバイスを接続する際に必要となるアドレスのデコード結果をFIFOに記憶する際に、その内容をデコード結果と累積回数に分離することで同一のデコード結果が連続した場合は一つのデコード結果に対して連続した回数のみを記憶することでFIFOの使用効率を向上させる。
【選択図】 図2
PROBLEM TO BE SOLVED: To store an address decoding result in a relatively small FIFO size, and when access is continuously performed and the FIFO becomes full, a master device waits for the next transaction regardless of the status of a slave device or a bus. To provide an on-chip bus system that solves the problem of lowering the throughput of the entire system.
When storing a decoding result of an address necessary for connecting a master device and a slave device in a split bus write data channel in a FIFO, the contents are separated into a decoding result and an accumulated number of times. When the same decoding result continues, only the number of consecutive times for one decoding result is stored to improve the use efficiency of the FIFO.
[Selection] Figure 2

Description

本発明は、スプリットバス対応のオンチップバスシステムに関し、より詳細にはライトデータチャネルのマスタデバイスとスレーブデバイスを接続する際に必要となるアドレスのデコード結果を累積回数と共に逐次記憶することを特徴とするオンチップバスシステムに関する。   The present invention relates to an on-chip bus system that supports a split bus, and more specifically, is characterized by sequentially storing a decoding result of an address necessary for connecting a master device and a slave device of a write data channel together with an accumulated number of times. It relates to an on-chip bus system.

近年、システムLSIで使用するオンチップバスにおいて、アドレスバスとデータバスを分離して制御可能なスプリットバスが主流と成りつつある。これは、従来のアドレスを発行した直後にデータを送受信するバスプロトコルと比べて、一旦アドレスを発行すると任意のタイミングでデータの読み出しあるいは書き込みを行うことが可能であり、従来のようにレイテンシの遅いスレーブデバイスがバスを占有する事がなくバスのスループットの向上を図ることが可能である。また連続してアドレスを先出しすることが可能なため、スレーブデバイスは一連のアクセスを効率化良く処理することが可能である。図7にスプリットバスのアドレスチャネルとデータチャネルの転送例を示す。   In recent years, split buses that can be controlled by separating an address bus and a data bus are becoming mainstream among on-chip buses used in system LSIs. Compared with a conventional bus protocol that transmits and receives data immediately after issuing an address, once an address is issued, it is possible to read or write data at an arbitrary timing, and the latency is low as in the past. The slave device does not occupy the bus, and the bus throughput can be improved. In addition, since it is possible to continuously advance the address, the slave device can efficiently process a series of accesses. FIG. 7 shows a transfer example of the address channel and data channel of the split bus.

通常、スプリットバスはポイント・ツー・ポイントでデータ通信を行うマスタデバイスとスレーブデバイスをクロスバースイッチで接続したオンチップバスでも複数のデバイスをそれぞれ1つのアドレスバスとデータバスで共有するオンチップバスでも対応可能である(例えば、特許文献1参照)。いずれの場合も最初にアドレスチャネルにおいてマスタデバイスが出力するアドレスをデコードしてその結果に基づき対応するアドレスチャネルのマスタデバイスとスレーブデバイスを接続する。接続されたアドレスチャネルではマスタデバイスからスレーブデバイスへアドレスが転送される。次にデータチャネルにおいては、一般に書き込みの場合はマスタデバイスがライトデータを出力しても対応するスレーブデバイスが不明であるためアドレスチャネルでデコードした結果を逐次記憶しておく必要がある。すなわち、マスタデバイスがライトデータを出力した際にこの記憶したデコード結果を順次読み出してその結果に基づき対応するデータチャネルのマスタデバイスとスレーブデバイスを接続する。接続されたデータチャネルではマスタデバイスからスレーブデバイスへライトデータが転送される。読み出しの場合は、一般に各トランザクションには発行したマスタデバイスが認識可能なIDが付加されておりスレーブデバイスがこのトランザクションIDをリードデータと共に返信することで対応するマスタデバイスを認識することが出来るためデータチャネルのマスタデバイスとスレーブデバイスが接続されリードデータを受信することが可能である。   Usually, the split bus is either an on-chip bus in which a master device and a slave device that perform point-to-point data communication are connected by a crossbar switch, or an on-chip bus in which multiple devices are shared by one address bus and a data bus (For example, refer to Patent Document 1). In either case, the address output from the master device is first decoded in the address channel, and the master device and slave device of the corresponding address channel are connected based on the result. In the connected address channel, the address is transferred from the master device to the slave device. Next, in the data channel, in general, in the case of writing, even if the master device outputs write data, the corresponding slave device is unknown, so it is necessary to sequentially store the results decoded by the address channel. That is, when the master device outputs write data, the stored decoding results are sequentially read, and the master device and slave device of the corresponding data channel are connected based on the results. In the connected data channel, write data is transferred from the master device to the slave device. In the case of reading, generally an ID that can be recognized by the issued master device is added to each transaction, and the slave device can recognize the corresponding master device by returning this transaction ID together with the read data. The master device and slave device of the channel are connected and can receive read data.

図8に一般的なオンチップバスシステムの一様態を示す。ここでは、説明を容易にするためにマスタデバイスとスレーブデバイスが各々2個の場合でアドレスチャネルとライト用のデータチャネルのみを図示している。また、ここでは一例としてクロスバースイッチによるポイント・ツー・ポイントでデータ通信を行うオンチップバスを示している。オンチップバスシステム10は、マスタデバイスとして中央演算処理装置(CPU)11AとDMAコントローラ(DMAC)11B、スレーブデバイスとしてメモリコントローラ(MEMC)12AとプログラマブルIO(PIO)12B、これらを相互接続するクロスバースイッチ13から構成される。また、図9にクロスバースイッチ13内の各マスタデバイスとスレーブデバイスを接続するスイッチの一様態を示す。各スイッチは、アドレスチャネルとライトデータチャネルの対応するマスタデバイスとスレーブデバイスをそれぞれ接続するスレーブ選択回路131と133、アドレスチャネルのアドレスをデコードしてスレーブ選択回路131を制御するアドレスデコーダ132、アドレスデコーダ132のデコード結果を逐次記憶してマスタデバイスがライトデータを出力した際にその記憶した内容によりスレーブ選択回路133を制御するFIFO134から成る。   FIG. 8 shows an aspect of a general on-chip bus system. Here, for ease of explanation, only the address channel and the data channel for writing are shown in the case where there are two master devices and two slave devices. In addition, here, as an example, an on-chip bus that performs point-to-point data communication using a crossbar switch is shown. The on-chip bus system 10 includes a central processing unit (CPU) 11A and a DMA controller (DMAC) 11B as master devices, a memory controller (MEMC) 12A and a programmable IO (PIO) 12B as slave devices, and a crossbar that interconnects them. The switch 13 is configured. FIG. 9 shows a state of a switch for connecting each master device and slave device in the crossbar switch 13. Each switch includes slave selection circuits 131 and 133 that connect the corresponding master device and slave device of the address channel and the write data channel, an address decoder 132 that decodes the address channel and controls the slave selection circuit 131, and an address decoder This is composed of a FIFO 134 that sequentially stores the decoding results 132 and controls the slave selection circuit 133 according to the stored contents when the master device outputs write data.

以下、CPU11AがMEMC12Aに対してデータを書き込む動作について説明する。最初にCPU11AはMEMC12Aがマッピングされている所望のアドレスを発行する。発行されたアドレスはクロスバースイッチ13に渡されて内部のアドレスデコーダ132によりデコードされる。デコードされた結果に基づきアドレスチャネル用のスレーブ選択回路131はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。この時デコード結果は同時にFIFO134に記憶される。仮にFIFO134がフル状態であればアドレスチャネルはMEMC12Aと接続されないで発行されたアドレスはクロスバースイッチ13との間でFIFO134に空きが出来るまで待たされる。接続後、クロスバースイッチ13はCPU11Aが発行したアドレスをMEMC12Aに速やかに転送する。次にCPU11Aがライトデータを発行する。クロスバースイッチ13はFIFO134に記憶されたデコード結果を読み出し、デコード結果に基づきデータチャネル用のスレーブ選択回路133はアドレスチャネルと同様にMEMC12Aを選択してCPU11AとMEMC12Aを接続する。接続後、クロスバースイッチ13はCPU11Aが発行したライトデータを速やかにMEMC12Aに転送する。ライトデータはアドレスと同時に発行しても良いがクロスバースイッチ13との間でFIFO134にデコード結果が記憶されデータチャネルが接続されるまで待たされる。また、マスタデバイスは発行したアドレスの順番に対応するライトデータを発行するため、FIFO134に記憶された順番にデコード結果を読み出すことでアドレスとデータの対応を取ることが可能である。   Hereinafter, an operation in which the CPU 11A writes data to the MEMC 12A will be described. First, the CPU 11A issues a desired address to which the MEMC 12A is mapped. The issued address is passed to the crossbar switch 13 and decoded by the internal address decoder 132. Based on the decoded result, the slave selection circuit 131 for the address channel selects the MEMC 12A and connects the CPU 11A and the MEMC 12A. At this time, the decoding result is stored in the FIFO 134 at the same time. If the FIFO 134 is in a full state, the address channel is not connected to the MEMC 12A, and the issued address is waited until the FIFO 134 is vacant with the crossbar switch 13. After the connection, the crossbar switch 13 promptly transfers the address issued by the CPU 11A to the MEMC 12A. Next, the CPU 11A issues write data. The crossbar switch 13 reads the decoding result stored in the FIFO 134, and based on the decoding result, the data channel slave selection circuit 133 selects the MEMC 12A in the same manner as the address channel and connects the CPU 11A and the MEMC 12A. After the connection, the crossbar switch 13 promptly transfers the write data issued by the CPU 11A to the MEMC 12A. The write data may be issued at the same time as the address, but is waited until the decoding result is stored in the FIFO 134 and the data channel is connected to the crossbar switch 13. Further, since the master device issues write data corresponding to the order of the issued addresses, it is possible to take correspondence between the addresses and data by reading the decoding results in the order stored in the FIFO 134.

次に、CPU11AがMEMC12Aに対して固定長のバーストデータを書き込む動作について説明する。基本動作はシングルのデータ書き込みと同様である。CPU11Aはアドレスを発行した後、例えば4ビートのライトデータを発行する。ここで一般に固定長のバースト転送の場合、マスタデバイスはアドレスの先頭アドレスのみを発行することが多くFIFO134には1回のバースト転送につき1つのデコード結果が記憶されることになる。一方、ライトデータに関しては通常バースト転送を含めた各データ転送の最後を示すラスト信号が存在しており、この信号がアサートされるまでFIFO134に記憶されたデコード結果を更新しないことでバースト転送にも対応することが可能である。すなわち、シングルライトの場合は、CPU11Aが各ライトデータの発行毎にラスト信号をアサートするためFIFO134のデコード結果は順次読み出されてそのデコード結果に基づいてデータチャネル用のスレーブ選択回路133はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。バースト転送の場合は、CPU11Aがアドレスを発行してFIFO134にデコード結果を記憶するまでは同様である。次にCPU11Aが4ビートのバーストデータを発行するが4回目のデータ転送でラスト信号がアサートされるまで同一のFIFO134のデコード結果に基づいてデータチャネル用のスレーブ選択回路133はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。図10にスプリットバスのバースト転送時のアドレスチャネルとデータチャネルの転送例、およびラスト信号のアサートタイミングを示す。   Next, an operation in which the CPU 11A writes fixed-length burst data to the MEMC 12A will be described. The basic operation is the same as single data writing. After issuing the address, the CPU 11A issues, for example, 4-beat write data. In general, in the case of fixed-length burst transfer, the master device often issues only the head address of the address, and the FIFO 134 stores one decode result for each burst transfer. On the other hand, with respect to write data, there is a last signal indicating the end of each data transfer including normal burst transfer. By not updating the decoding result stored in the FIFO 134 until this signal is asserted, burst data can be transferred. It is possible to respond. In other words, in the case of single write, the CPU 11A asserts the last signal every time each write data is issued, so that the decode result of the FIFO 134 is read sequentially, and the slave selection circuit 133 for the data channel selects the MEMC 12A based on the decode result. Select and connect the CPU 11A and MEMC 12A. In the case of burst transfer, the same applies until the CPU 11A issues an address and stores the decoding result in the FIFO 134. Next, the CPU 11A issues burst data of 4 beats, but the slave selection circuit 133 for the data channel selects the MEMC 12A based on the decoding result of the same FIFO 134 until the last signal is asserted in the fourth data transfer and selects the CPU 11A. And MEMC 12A are connected. FIG. 10 shows an example of address channel and data channel transfers during burst transfer of the split bus, and the last signal assert timing.

以上により、マスタデバイスがシングル、バースト転送に関わらず連続してアドレスを発行しても順次FIFO134にアドレスのデコード結果を記憶して、マスタデバイスがライトデータを出力した際にデコード結果を取り出して対応するマスタデバイスとスレーブデバイスを接続することで任意のタイミングでデータ書き込みを行うことを可能としておりスプリットバスとしての機能を果たしている。また、DMAC11BやPIO12Bの動作も同様である。ただし、通常MEMC12AはIO領域であるPIO12Bと比べて複数のマスタデバイスからのアクセスが集中する。言い換えれば、各マスタデバイスはMEMC12Aに対して連続してアクセスする場合が多く、クロスバースイッチ13の各スイッチが持つFIFO134には同一のデコード結果が連続して記憶される。
特開平07-105129号公報
As described above, even if the master device continuously issues addresses regardless of single or burst transfer, the decoding result of the address is sequentially stored in the FIFO 134, and when the master device outputs the write data, the decoding result is taken out and dealt with. By connecting a master device and a slave device to perform data writing, it is possible to perform data writing at an arbitrary timing, and it functions as a split bus. The operations of the DMAC 11B and the PIO 12B are the same. However, the normal MEMC 12A concentrates accesses from a plurality of master devices as compared to the PIO 12B which is an IO area. In other words, each master device often accesses the MEMC 12A continuously, and the same decoding result is continuously stored in the FIFO 134 of each switch of the crossbar switch 13.
JP 07-105129 A

以上のように従来技術では、アドレスのデコード結果を逐次記憶しておき、マスタデバイスがライトデータを出力した際にデコード結果を取り出して対応するマスタデバイスとスレーブデバイスを接続することで任意のタイミングでデータ書き込みが行われていた。ここでデータチャネルにおいてアドレスのデコード結果は、アドレスの先出し回数分だけ記憶しておく必要がある。また、記憶したデコード結果はマスタデバイスがライトデータを発行するまで保持しておく必要がある。しかしながら、アドレスのデコード結果を記憶しておくFIFOサイズは比較的小さく、アクセスが連続してFIFOが一杯になるとスレーブデバイスやバスの状況に関係なくマスタデバイスは次のトランザクションの発行を待たされるため、システム全体のスループットが低下するといった問題があった。   As described above, in the prior art, the address decoding results are sequentially stored, and when the master device outputs write data, the decoding results are extracted and the corresponding master device and slave device are connected at any timing. Data was being written. Here, it is necessary to store the address decoding results in the data channel for the number of times of address advance. Further, the stored decoding result must be held until the master device issues write data. However, the FIFO size for storing the address decoding result is relatively small, and when the access is continuously full, the master device waits for the next transaction regardless of the status of the slave device or the bus. There was a problem that the throughput of the entire system was lowered.

上記目的を達成するために、請求項1記載の発明に係わるシステムは、スプリットバス対応のオンチップバスにおいて、マスタデバイスが出力するアドレスをデコードするデコード手段と該デコード手段の結果に基づき対応するアドレスチャネルのマスタデバイスとスレーブデバイスを接続する接続手段を有し、ライトデータチャネルにおいては該デコード手段の結果を累積回数と共に逐次記憶する記憶手段と該記憶手段の内容に基づき対応するデータチャネルのマスタデバイスとスレーブデバイスを接続する接続手段を有することを特徴とする。   In order to achieve the above object, the system according to the first aspect of the present invention includes a decoding means for decoding an address output from a master device on an on-chip bus corresponding to a split bus and a corresponding address based on a result of the decoding means. A storage means for connecting a master device and a slave device of the channel, and in the write data channel, a storage means for sequentially storing the result of the decoding means together with the cumulative number, and a master device of the corresponding data channel based on the contents of the storage means And connecting means for connecting the slave device.

また、請求項2記載の発明に係わるシステムは、前記オンチップバスシステムにおいて、前記デコード手段の結果と同時にトランザクションIDを累積回数と共に逐次記憶する記憶手段を有することを特徴とする。   A system according to a second aspect of the present invention is characterized in that in the on-chip bus system, the system further comprises storage means for sequentially storing the transaction ID together with the cumulative number simultaneously with the result of the decoding means.

本発明は、スプリットバスのライト用のデータチャネルにおいてマスタデバイスとスレーブデバイスを接続する際に必要となるアドレスのデコード結果をFIFOに記憶する際に、その内容をデコード結果と累積回数に分離することで同一のデコード結果が連続した場合は一つのデコード結果に対して連続した回数のみを記憶することでFIFOの使用効率を向上させることが可能となる。特に、各マスタデバイスはメモリコントローラのような特定のスレーブデバイスに対して連続してアクセスする場合が多く、FIFOには同一のデコード結果が連続して記憶されるため、FIFOの仕様効率はより一層向上させることが可能である。   The present invention separates the contents into the decoding result and the cumulative number when storing the decoding result of the address necessary for connecting the master device and the slave device in the data bus for writing on the split bus in the FIFO. When the same decoding result is continuous, it is possible to improve the use efficiency of the FIFO by storing only the continuous number of times for one decoding result. In particular, each master device often accesses a specific slave device such as a memory controller continuously, and since the same decoding result is continuously stored in the FIFO, the efficiency of the specification of the FIFO is further increased. It is possible to improve.

(実施例1)
図1は本発明のオンチップバスシステムの一様態である。ここでは、説明を容易にするためにマスタデバイスとスレーブデバイスが各々2個の場合でアドレスチャネルとライト用のデータチャネルのみを図示している。また、ここでは一例としてクロスバースイッチによるポイント・ツー・ポイントでデータ通信を行うオンチップバスを示しているが従来例と同様にバス構成はこれに限らない。オンチップバスシステム10は、マスタデバイスとして中央演算処理装置(CPU)11AとDMAコントローラ(DMAC)11B、スレーブデバイスとしてメモリコントローラ(MEMC)12AとプログラマブルIO(PIO)12B、これらを相互接続するクロスバースイッチ14から構成される。また、図2にクロスバースイッチ14内の各マスタデバイスとスレーブデバイスを接続するスイッチの一様態を示す。各スイッチは、アドレスチャネルとライトデータチャネルの対応するマスタデバイスとスレーブデバイスをそれぞれ接続するスレーブ選択回路141と143、アドレスチャネルのアドレスをデコードするアドレスデコーダ142、アドレスデコーダ142のデコード結果を逐次記憶してマスタデバイスがライトデータを出力した際にその記憶した内容によりスレーブ選択回路143を制御するFIFO144から成る。更に、図3にFIFO144の一様態を示す。FIFO144は、FIFOキュー、書き込み制御回路、読み出し制御回路から成り、FIFOキューはデコード結果を記憶する領域と各デコード結果の累積回数を記憶する領域から成る。
Example 1
FIG. 1 shows an embodiment of the on-chip bus system of the present invention. Here, for ease of explanation, only the address channel and the data channel for writing are shown in the case where there are two master devices and two slave devices. Also, here, as an example, an on-chip bus that performs point-to-point data communication using a crossbar switch is shown, but the bus configuration is not limited to this as in the conventional example. The on-chip bus system 10 includes a central processing unit (CPU) 11A and a DMA controller (DMAC) 11B as master devices, a memory controller (MEMC) 12A and a programmable IO (PIO) 12B as slave devices, and a crossbar that interconnects them. The switch 14 is configured. FIG. 2 shows a state of a switch for connecting each master device and slave device in the crossbar switch 14. Each switch sequentially stores the slave selection circuits 141 and 143 for connecting the corresponding master device and slave device of the address channel and the write data channel, the address decoder 142 for decoding the address channel address, and the decoding result of the address decoder 142, respectively. When the master device outputs write data, it comprises a FIFO 144 that controls the slave selection circuit 143 according to the stored contents. Further, FIG. 3 shows a uniform state of the FIFO 144. The FIFO 144 is composed of a FIFO queue, a write control circuit, and a read control circuit. The FIFO queue is composed of an area for storing a decoding result and an area for storing the cumulative number of each decoding result.

以下、CPU11AがMEMC12Aに対してデータを書き込む動作について説明する。最初にCPU11AはMEMC12Aがマッピングされている所望のアドレスを発行する。発行されたアドレスはクロスバースイッチ14に渡されて内部のアドレスデコーダ142によりデコードされる。デコードされた結果に基づきアドレスチャネル用のスレーブ選択回路141はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。この時デコード結果は同時にFIFO144に記憶される。仮にFIFO144がフル状態であればアドレスチャネルはMEMC12Aと接続されないで発行されたアドレスはクロスバースイッチ14との間でFIFO144に空きが出来るまで待たされる。接続後、クロスバースイッチ14はCPU11Aが発行したアドレスをMEMC12Aに速やかに転送する。次にCPU11Aがライトデータを発行する。クロスバースイッチ14はFIFO144に記憶されたデコード結果を読み出し、デコード結果に基づきデータチャネル用のスレーブ選択回路143はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。接続後、クロスバースイッチ14はCPU11Aが発行したライトデータを速やかにMEMC12Aに転送する。ライトデータはアドレスと同時に発行しても良いがクロスバースイッチ14との間でFIFO144にデコード結果が記憶されデータチャネルが接続されるまで待たされる。ライトデータはアドレスと同時に発行しても良いがクロスバースイッチ13との間でFIFO134にデコード結果が記憶されデータチャネルが接続されるまで待たされる。また、マスタデバイスは発行したアドレスの順番に対応するライトデータを発行するため、FIFO144に記憶された順番にデコード結果を読み出すことでアドレスとデータの対応を取ることが可能である。   Hereinafter, an operation in which the CPU 11A writes data to the MEMC 12A will be described. First, the CPU 11A issues a desired address to which the MEMC 12A is mapped. The issued address is passed to the crossbar switch 14 and decoded by the internal address decoder 142. Based on the decoded result, the address channel slave selection circuit 141 selects the MEMC 12A and connects the CPU 11A and the MEMC 12A. At this time, the decoding result is simultaneously stored in the FIFO 144. If the FIFO 144 is full, the address channel is not connected to the MEMC 12A, and the issued address is waited until the FIFO 144 is vacant with the crossbar switch 14. After the connection, the crossbar switch 14 promptly transfers the address issued by the CPU 11A to the MEMC 12A. Next, the CPU 11A issues write data. The crossbar switch 14 reads the decoding result stored in the FIFO 144, and based on the decoding result, the data channel slave selection circuit 143 selects the MEMC 12A and connects the CPU 11A and the MEMC 12A. After the connection, the crossbar switch 14 promptly transfers the write data issued by the CPU 11A to the MEMC 12A. The write data may be issued at the same time as the address, but is waited until the decoding result is stored in the FIFO 144 and the data channel is connected to the crossbar switch 14. The write data may be issued at the same time as the address, but is waited until the decoding result is stored in the FIFO 134 and the data channel is connected to the crossbar switch 13. Further, since the master device issues write data corresponding to the order of the issued addresses, it is possible to take correspondence between the addresses and data by reading the decoding results in the order stored in the FIFO 144.

次に、CPU11AがMEMC12Aに対して連続してデータを書き込む動作について説明する。基本動作は前述の書き込みと同様である。CPU11Aはライトデータを発行する前に連続してMEMC12Aがマッピングされている所望のアドレスを発行する。この場合、FIFO144に同一のデコード結果が連続して書き込まれるがFIFO144では事前に記憶しているデコード結果と比較して同じ結果であれば新規にデコード結果を書き込まずに最初のデコード結果に対して累積回数の値のみをインクリメントする。図4にFIFO144の書き込み動作と読み出し動作のフローを示す。以下この動作について説明する。最初にFIFO144がFULL状態であるかどうかを確認する(1)。仮にFULL状態であればアドレスチャネルはMEMC12Aと接続されないで発行されたアドレスはクロスバースイッチ14との間でFIFO144に空きが出来るまで待たされる。次にFIFO144がFULL状態でなければ入力されたデコード結果とFIFO144が記憶している最新のデコード結果の値を比較する(2)。この時、デコード結果の値が異なればそのまま入力されたデコード結果を新規にFIFO144に累積回数を1として書き込む(6)。デコード結果の値が同じ場合、そのデコード結果の累積回数を確認する(3)。ここで累積回数が記憶可能な最大値の場合、そのまま入力されたデコード結果を新規にFIFO144に累積回数を1として書き込む(6)。累積回数が記憶可能な最大値でない場合、FIFO144に記憶されているデコード結果の累積回数のみをインクリメントする(5)。ただし、書き込みと同時に同一領域の読み出しが行われた場合(4)は、何もしないでそのまま書き込み動作を終了する。したがって、CPU11AがMEMC12Aに対して連続して4回のアドレスを発行した場合、FIFO144の内容は1回のデコード結果の書き込みに対して累積回数が4として記憶される。続いてCPU11Aが先に発行したアドレスに対応するライトデータを発行する。最初にFIFO144ではFIFOキューがEMPTY状態であるかどうかを確認する(7)。仮にEMPTY状態であればデータチャネルはMEMC12Aと接続されないで発行されたデータはクロスバースイッチ14との間でFIFO144にデコード結果が記憶されデータチャネルが接続されるまで待たされる。次にFIFO144がEMPTY状態でなければFIFO144から最古のデコード結果を読み出し、その内容に基づきデータチャネル用のスレーブ選択回路143はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。この際、読み出しと同時に同一領域への書き込みが行われているかどうかを確認する(8)。同時に書き込みが行われている場合、FIFOの内容に対して何もしないでそのまま読み出し動作を終了する。同時に書き込みが行われていない場合、読み出したデコード結果の累積回数を確認する(9)。この時、累積回数が2以上の場合、読み出したデコード結果に対して累積回数のみをデクリメントする(11)。累積回数が1の場合、読み出したデコード結果をFIFOから取り出す。したがって、CPU11AがMEMC12Aに対して連続して4回のアドレスを発行した場合、CPU11Aがライトデータを順次発行する毎に累積回数をデクリメントして4回目のライトデータの発行と共にFIFO144からデコード結果を取り出す。   Next, an operation in which the CPU 11A continuously writes data to the MEMC 12A will be described. The basic operation is the same as the above-described writing. The CPU 11A issues a desired address to which the MEMC 12A is continuously mapped before issuing write data. In this case, the same decoding result is continuously written in the FIFO 144. However, if the same result is compared with the decoding result stored in advance in the FIFO 144, the decoding result is not newly written and the first decoding result is not written. Only the cumulative count value is incremented. FIG. 4 shows a flow of write operation and read operation of the FIFO 144. This operation will be described below. First, it is confirmed whether the FIFO 144 is in the FULL state (1). If it is in the FULL state, the address channel is not connected to the MEMC 12A, and the issued address is waited until the FIFO 144 is vacant with the crossbar switch 14. Next, if the FIFO 144 is not in the FULL state, the inputted decode result is compared with the latest decode result value stored in the FIFO 144 (2). At this time, if the values of the decoding results are different, the decoding result inputted as it is is written in the FIFO 144 as a cumulative number of 1 (6). If the decoding result values are the same, the cumulative number of decoding results is confirmed (3). Here, when the cumulative number is the maximum value that can be stored, the decoding result inputted as it is is newly written into the FIFO 144 as the cumulative number as 1 (6). If the cumulative number is not the maximum value that can be stored, only the cumulative number of decoding results stored in the FIFO 144 is incremented (5). However, when the same area is read simultaneously with the writing (4), the writing operation is terminated without doing anything. Therefore, when the CPU 11A issues four addresses continuously to the MEMC 12A, the content of the FIFO 144 is stored as a cumulative number of four for one decoding result writing. Subsequently, the CPU 11A issues write data corresponding to the previously issued address. First, the FIFO 144 checks whether the FIFO queue is in the EMPTY state (7). If it is in the EMPTY state, the data channel is not connected to the MEMC 12A, and the issued data is waited until the decoding result is stored in the FIFO 144 with the crossbar switch 14 and the data channel is connected. Next, if the FIFO 144 is not in the EMPTY state, the oldest decoding result is read from the FIFO 144, and the data channel slave selection circuit 143 selects the MEMC 12A based on the content, and connects the CPU 11A and the MEMC 12A. At this time, it is confirmed whether writing to the same area is performed simultaneously with reading (8). If writing is performed at the same time, the read operation is terminated without doing anything with respect to the contents of the FIFO. If writing is not performed at the same time, the cumulative number of read decoding results is confirmed (9). At this time, when the cumulative number is 2 or more, only the cumulative number is decremented with respect to the read decoding result (11). When the cumulative number is 1, the read decoding result is taken out from the FIFO. Therefore, when the CPU 11A issues four consecutive addresses to the MEMC 12A, every time the CPU 11A issues write data sequentially, the cumulative number is decremented and the decode result is taken out from the FIFO 144 together with the fourth write data issuance. .

次に、CPU11AがMEMC12Aに対して固定長のバーストデータを書き込む動作について説明する。基本動作はシングルのデータ書き込みと同様である。CPU11Aはアドレスを発行した後、例えば4ビートのライトデータを発行する。ここで一般に固定長のバースト転送の場合、マスタデバイスはアドレスの先頭アドレスのみを発行することが多くFIFO144には1回のバースト転送につき1つのデコード結果が記憶されることになる。一方、ライトデータに関しては通常バースト転送を含めた各データ転送の最後を示すラスト信号が存在しており、この信号がアサートされるまでFIFO144に記憶されたデコード結果を更新しないことでバースト転送にも対応することが可能である。すなわち、シングルライトの場合は、CPU11Aが各ライトデータの発行毎にラスト信号をアサートするためFIFO144のデコード結果は順次読み出されてそのデコード結果に基づいてデータチャネル用のスレーブ選択回路143はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。バースト転送の場合は、CPU11Aがアドレスを発行してFIFO144にデコード結果が記憶される。次にCPU11Aが4ビートのバーストデータを発行するが4回目のデータ転送でラスト信号がアサートされるまで同一のFIFO144のデコード結果に基づいてデータチャネル用のスレーブ選択回路143はMEMC12Aを選択してCPU11AとMEMC12Aを接続する。   Next, an operation in which the CPU 11A writes fixed-length burst data to the MEMC 12A will be described. The basic operation is the same as single data writing. After issuing the address, the CPU 11A issues, for example, 4-beat write data. In general, in the case of fixed-length burst transfer, the master device often issues only the head address of the address, and the FIFO 144 stores one decoding result for each burst transfer. On the other hand, with respect to write data, there is a last signal indicating the end of each data transfer including normal burst transfer. By not updating the decoding result stored in the FIFO 144 until this signal is asserted, the burst data is also transferred. It is possible to respond. That is, in the case of single write, since the CPU 11A asserts the last signal every time each write data is issued, the decoding result of the FIFO 144 is sequentially read, and the data channel slave selection circuit 143 selects the MEMC 12A based on the decoding result. Select and connect the CPU 11A and MEMC 12A. In the case of burst transfer, the CPU 11A issues an address and the decoding result is stored in the FIFO 144. Next, the CPU 11A issues 4-beat burst data, but the slave selection circuit 143 for the data channel selects the MEMC 12A based on the decoding result of the same FIFO 144 until the last signal is asserted in the fourth data transfer and selects the CPU 11A. And MEMC 12A are connected.

以上、説明したように本発明によれば、マスタデバイスがシングル、バースト転送に関わらず連続してアドレスを発行しても順次FIFO144にアドレスチャネルのデコード結果を記憶してマスタデバイスがライトデータを出力した際にデコード結果を取り出して対応するマスタデバイスとスレーブデバイスを接続することで任意のタイミングでデータ書き込みを行うことを可能としスプリットバスとしての機能を果たしている。DMAC11BやPIO12Bの動作も同様である。更に各マスタデバイスがメモリコントローラのような特別なスレーブデバイスに対して連続してアクセスした場合、FIFO144ではFIFOキューとして一つのデコード結果のみを使用するためFIFOの使用効率を向上させることが可能となる。   As described above, according to the present invention, even if the master device continuously issues an address regardless of single or burst transfer, the decoding result of the address channel is sequentially stored in the FIFO 144 and the master device outputs the write data. In this case, the decoding result is taken out and the corresponding master device and slave device are connected, so that data can be written at an arbitrary timing, and the function as a split bus is achieved. The operations of the DMAC 11B and the PIO 12B are the same. Further, when each master device continuously accesses a special slave device such as a memory controller, the FIFO 144 uses only one decoding result as a FIFO queue, so that the use efficiency of the FIFO can be improved. .

(実施例2)
図5に本発明の別の一様態を示す。バス構成は実施例1と同様でオンチップバスシステム10は、マスタデバイスとして中央演算処理装置(CPU)11AとDMAコントローラ(DMAC)11B、スレーブデバイスとしてメモリコントローラ(MEMC)12AとプログラマブルIO(PIO)12B、これらを相互接続するクロスバースイッチ14から構成される。各スイッチは、アドレスチャネルとライトデータチャネルの対応するマスタデバイスとスレーブデバイスをそれぞれ接続するスレーブ選択回路141と143、アドレスチャネルのアドレスをデコードするアドレスデコーダ142、アドレスデコーダ142のデコード結果を逐次記憶してマスタデバイスがライトデータを出力した際にその記憶した内容によりスレーブ選択回路143を制御するFIFO145から成る。更に、図6にFIFO145の一様態を示す。FIFO145は、FIFOキュー、書き込み制御回路、読み出し制御回路から成り、FIFOキューはデコード結果を記憶する領域、トランザクションのIDを記憶する領域、各デコード結果の累積回数を記憶する領域から成る。
(Example 2)
FIG. 5 shows another embodiment of the present invention. The bus configuration is the same as in the first embodiment, and the on-chip bus system 10 includes a central processing unit (CPU) 11A and a DMA controller (DMAC) 11B as master devices, and a memory controller (MEMC) 12A and programmable IO (PIO) as slave devices. 12B, and a crossbar switch 14 for interconnecting them. Each switch sequentially stores the slave selection circuits 141 and 143 for connecting the corresponding master device and slave device of the address channel and the write data channel, the address decoder 142 for decoding the address channel address, and the decoding result of the address decoder 142, respectively. When the master device outputs write data, it comprises a FIFO 145 that controls the slave selection circuit 143 according to the stored contents. Further, FIG. 6 shows a uniform state of the FIFO 145. The FIFO 145 includes a FIFO queue, a write control circuit, and a read control circuit. The FIFO queue includes an area for storing a decoding result, an area for storing a transaction ID, and an area for storing the cumulative number of each decoding result.

本発明は、マスタデバイスがアドレスと同時に発行するトランザクションIDをデコード結果と共にFIFO145に記憶すること以外は実施例1と同じである。   The present invention is the same as the first embodiment except that the transaction ID issued by the master device at the same time as the address is stored in the FIFO 145 together with the decoding result.

本発明の実施例1のオンチップバスシステムの一様態を示した図。The figure which showed the one aspect | mode of the on-chip bus system of Example 1 of this invention. 本発明の実施例1のクロスバースイッチの一様態を示した図。The figure which showed the one aspect | mode of the crossbar switch of Example 1 of this invention. 本発明の実施例1のFIFOの一様態を示した図。The figure which showed the one aspect | mode of FIFO of Example 1 of this invention. 本発明の実施例1のFIFOの動作フローを示した図。The figure which showed the operation | movement flow of FIFO of Example 1 of this invention. 本発明の実施例2のクロスバースイッチの一様態を示した図。The figure which showed the one aspect | mode of the crossbar switch of Example 2 of this invention. 本発明の実施例2のFIFOの一様態を示した図。The figure which showed the one aspect | mode of FIFO of Example 2 of this invention. 一般的なスプリットバスの転送例を示した図。The figure which showed the transfer example of the general split bus | bath. 一般的なオンチップバスシステムの一様態を示した図。The figure which showed the one aspect | mode of the general on-chip bus system. 一般的なオンチップバスのクロスバースイッチの一様態を示した図。The figure which showed the one aspect | mode of the crossbar switch of a general on-chip bus | bath. 一般的なスプリットバスのバースト転送例を示した図。The figure which showed the burst transfer example of the general split bus | bath.

符号の説明Explanation of symbols

10 オンチップバスシステム
11A 中央演算処理装置(CPU)
11B DMAコントローラ(DMAC)
12A メモリコントローラ(MEMC)
12B プログラマブルIO(PIO)
13 クロスバースイッチ
131 スレーブ選択回路
132 アドレスデコーダ
133 スレーブ選択回路
134 FIFO
14 クロスバースイッチ
141 スレーブ選択回路
142 アドレスデコーダ
143 スレーブ選択回路
144 FIFO
145 FIFO
10 On-chip bus system 11A Central processing unit (CPU)
11B DMA controller (DMAC)
12A Memory controller (MEMC)
12B Programmable IO (PIO)
13 Crossbar switch 131 Slave selection circuit 132 Address decoder 133 Slave selection circuit 134 FIFO
14 Crossbar switch 141 Slave selection circuit 142 Address decoder 143 Slave selection circuit 144 FIFO
145 FIFO

Claims (2)

スプリットバス対応のオンチップバスにおいて、マスタデバイスが出力するアドレスをデコードするデコード手段と該デコード手段の結果に基づき対応するアドレスチャネルのマスタデバイスとスレーブデバイスを接続する接続手段を有し、ライトデータチャネルにおいては該デコード手段の結果を累積回数と共に逐次記憶する記憶手段と該記憶手段の内容に基づき対応するデータチャネルのマスタデバイスとスレーブデバイスを接続する接続手段を有するオンチップバスシステム。   In the on-chip bus corresponding to the split bus, the write data channel has decoding means for decoding the address output from the master device and connecting means for connecting the master device and slave device of the corresponding address channel based on the result of the decoding means. In the on-chip bus system, there is provided storage means for sequentially storing the result of the decoding means together with the cumulative number of times, and connection means for connecting the master device and slave device of the corresponding data channel based on the contents of the storage means. 前記オンチップバスシステムにおいて、前記デコード手段の結果と同時にトランザクションIDを累積回数と共に逐次記憶する記憶手段を有するオンチップバスシステム。   In the on-chip bus system, an on-chip bus system comprising storage means for sequentially storing a transaction ID together with a cumulative number simultaneously with a result of the decoding means.
JP2004356753A 2004-12-09 2004-12-09 On-chip bus system Withdrawn JP2006164024A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004356753A JP2006164024A (en) 2004-12-09 2004-12-09 On-chip bus system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004356753A JP2006164024A (en) 2004-12-09 2004-12-09 On-chip bus system

Publications (1)

Publication Number Publication Date
JP2006164024A true JP2006164024A (en) 2006-06-22

Family

ID=36665956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004356753A Withdrawn JP2006164024A (en) 2004-12-09 2004-12-09 On-chip bus system

Country Status (1)

Country Link
JP (1) JP2006164024A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011526031A (en) * 2008-06-27 2011-09-29 マーベル ワールド トレード リミテッド Solid disk with wireless functionality

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011526031A (en) * 2008-06-27 2011-09-29 マーベル ワールド トレード リミテッド Solid disk with wireless functionality
US8719485B2 (en) 2008-06-27 2014-05-06 Marvell World Trade Ltd. Solid-state disk with wireless functionality
US8935464B2 (en) 2008-06-27 2015-01-13 Marvell World Trade Ltd. Solid-state disk with wireless functionality

Similar Documents

Publication Publication Date Title
EP0993680B1 (en) Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory
US6954821B2 (en) Crossbar switch that supports a multi-port slave device and method of operation
TWI400617B (en) Wireless transmission schedule and data cache
US20040107265A1 (en) Shared memory data transfer apparatus
EP0991999A1 (en) Method and apparatus for arbitrating access to a shared memory by network ports operating at different data rates
JP2009515262A (en) Alternative to write confirmation with fully buffered DIMM read data
US20020184453A1 (en) Data bus system including posted reads and writes
JP2008009817A (en) Semiconductor device and data transfer method
CN111611185B (en) An MSI interrupt filtering device with multiple PCIE ports
US9984014B2 (en) Semiconductor device
CN109981431A (en) A kind of CAN controller data storage circuitry and date storage method
JPS62206658A (en) storage management device
JP4022442B2 (en) Control method of fieldbus interface board
US20040199704A1 (en) Apparatus for use in a computer system
CN104077080B (en) Memory access method, memory access control method, SPI flash memory device and controller thereof
JP5304815B2 (en) Microcomputer
JP2006164024A (en) On-chip bus system
JP5058890B2 (en) Bus control device
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller
US20030093603A1 (en) Apparatus and method for responding to a interruption of a packet flow to a high level data link controller in a signal processing system
US20140229641A1 (en) Method and apparatus for latency reduction
JP2009037639A (en) Dmac issue mechanism via streaming identification method
JPH10187599A (en) Digital signal processor
JP3206656B2 (en) Prefetch device and prefetch method on bus
JP2003085125A (en) Memory controller and memory control method

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080304