JP5381919B2 - FIFO data reading device - Google Patents

FIFO data reading device Download PDF

Info

Publication number
JP5381919B2
JP5381919B2 JP2010156753A JP2010156753A JP5381919B2 JP 5381919 B2 JP5381919 B2 JP 5381919B2 JP 2010156753 A JP2010156753 A JP 2010156753A JP 2010156753 A JP2010156753 A JP 2010156753A JP 5381919 B2 JP5381919 B2 JP 5381919B2
Authority
JP
Japan
Prior art keywords
cpu
data
read
fifo
circuit
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.)
Active
Application number
JP2010156753A
Other languages
Japanese (ja)
Other versions
JP2012018606A (en
Inventor
三津男 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2010156753A priority Critical patent/JP5381919B2/en
Publication of JP2012018606A publication Critical patent/JP2012018606A/en
Application granted granted Critical
Publication of JP5381919B2 publication Critical patent/JP5381919B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、先に格納したデータを先に読み出す1個のFIFO回路に対する複数のCPUの読出要求を処理するFIFOデータ読出装置に関する。   The present invention relates to a FIFO data reading device for processing read requests from a plurality of CPUs for one FIFO circuit that reads previously stored data first.

複数のCPUが共通メモリにアクセスする場合に、CPU間でアクセス権の調停をするのではなく、共有メモリ側にアクセス権の調停機能を持たせたものが知られている(例えば、特許文献1参照。)。   In the case where a plurality of CPUs access a common memory, an access right arbitration function is provided on the shared memory side instead of arbitrating access rights between CPUs (for example, Patent Document 1). reference.).

しかしながら、共有メモリに対しては、各CPUがアドレスを指定してデータを読み出すことはできるが、先に格納したデータを先に読み出す共通の1個のFIFO(First In First Out)回路を設け、複数のCPUが互いに他のCPUの読出要求に関わらず独立して共通のFIFO回路からデータを読み出す場合、先に他のCPUがデータを読み出すと、FIFO回路において読出ポインタが更新されるので、それ以外のCPUは同じデータを読み出すことができない。   However, for the shared memory, each CPU can read data by designating an address, but a common FIFO (First In First Out) circuit that reads previously stored data is provided. When a plurality of CPUs read data from a common FIFO circuit independently of each other regardless of read requests from other CPUs, the read pointer is updated in the FIFO circuit when the other CPUs read the data first. CPUs other than cannot read the same data.

この問題を解決するためには、1個のCPUがFIFO回路に読出しを要求している場合は、他のCPUからFIFO回路への読出しの要求を禁止し、CPUがFIFO回路から読み出したデータを他のCPUにも送出した後に、他のCPUに対してFIFO回路への読出しの要求を許可するという処理が考えられる。   In order to solve this problem, when one CPU requests reading from the FIFO circuit, the reading request from the other CPU to the FIFO circuit is prohibited, and the data read from the FIFO circuit by the CPU is prohibited. A process of allowing a read request to the FIFO circuit to another CPU after sending it to another CPU can be considered.

しかしながら、FIFO回路からデータを読出すためにCPUがこのような読出処理を実行すると、FIFO回路から読み出したデータを処理するCPUの本来の処理が妨げられる。   However, when the CPU executes such a reading process in order to read data from the FIFO circuit, the original process of the CPU that processes the data read from the FIFO circuit is hindered.

これに対し、複数のCPUのそれぞれにFIFO回路を設け、各CPUが対応するFIFO回路からデータを取り出す構成が知られている(例えば、特許文献2参照。)。   On the other hand, a configuration is known in which a FIFO circuit is provided for each of a plurality of CPUs, and data is extracted from the FIFO circuit to which each CPU corresponds (see, for example, Patent Document 2).

特開平2−281356号公報JP-A-2-281356 特開平7−262227号公報Japanese Patent Laid-Open No. 7-262227

しかしながら、複数のCPUのそれぞれにFIFO回路を設けると、ハードウェア量が増加するという問題がある。
本発明は、上記問題を解決するためになされたものであり、1個のFIFO回路に格納されているデータを複数のCPUが互いに独立して読出せるFIFOデータ読出装置を提供することを目的とする。
However, if a FIFO circuit is provided for each of a plurality of CPUs, there is a problem that the amount of hardware increases.
The present invention has been made to solve the above problems, and an object of the present invention is to provide a FIFO data reading device in which a plurality of CPUs can independently read data stored in one FIFO circuit. To do.

請求項1から3に記載の発明によると、複数のCPUからデータの読出しを要求され、先に格納したデータを先に読み出す1個のFIFO回路と、CPUからの読出要求によりFIFO回路から読み出されるデータが記憶される記憶装置と、複数のCPUのうちどのCPUが、FIFO回路に格納されているデータの読出し数が最も多い先行CPUであるかを判定する判定手段と、先行CPUからのFIFO回路に対する読出要求に対し、FIFO回路に格納されているデータを先行CPUに送出するとともに記憶装置に書き込み、先行CPU以外の他のCPUからのFIFO回路に対する読出要求に対し、記憶装置に記憶されているデータを送出するデータ処理手段と、を備える。   According to the first to third aspects of the present invention, reading of data is requested from a plurality of CPUs, one FIFO circuit that reads previously stored data first, and reading from the FIFO circuit by a reading request from the CPU. A storage device in which data is stored; a determination unit that determines which CPU among a plurality of CPUs is a preceding CPU with the largest number of read data stored in the FIFO circuit; and a FIFO circuit from the preceding CPU The data stored in the FIFO circuit is sent to the preceding CPU and written to the storage device in response to the read request to the memory, and is stored in the storage device in response to the read request from the CPU other than the preceding CPU to the FIFO circuit. Data processing means for transmitting data.

これにより、先行CPUからの読出要求に対してデータ処理手段がFIFO回路にアクセスしてデータを読み出すことによりFIFO回路においてデータの読出位置が更新されても、先行CPU以外の他のCPUからFIFO回路に対する読出しが要求されると、データ処理手段は記憶装置に記憶されているデータを先行CPU以外の他のCPUに送出できる。   Thus, even if the data reading position is updated in the FIFO circuit by the data processing means accessing the FIFO circuit and reading the data in response to the reading request from the preceding CPU, the FIFO circuit from other CPUs other than the preceding CPU When data reading is requested, the data processing means can send the data stored in the storage device to a CPU other than the preceding CPU.

その結果、先行CPU以外のCPUも、FIFO回路に格納されているデータのコピーを、あたかも実際にFIFO回路にアクセスして取得したデータとして記憶装置から読み出すことができる。   As a result, a CPU other than the preceding CPU can also read a copy of the data stored in the FIFO circuit from the storage device as data obtained by actually accessing the FIFO circuit.

このように、複数のCPUはFIFO回路に対して読み出しを要求するだけであり、FIFO回路に格納されているデータの各CPUへの送出はデータ処理手段が実行する。したがって、複数のCPUの間でFIFO回路からの読み出しを調停することなく、他のCPUを意識しないでFIFO回路に対する読出しを要求し、FIFO回路に格納されているデータを独立して読み出すことができる。   In this way, the plurality of CPUs only request the FIFO circuit to read, and the data processing means executes the transmission of the data stored in the FIFO circuit to each CPU. Therefore, it is possible to request reading from the FIFO circuit without being conscious of other CPUs and read out data stored in the FIFO circuit independently without arbitrating reading from the FIFO circuit among a plurality of CPUs. .

請求項2に記載の発明によると、記憶装置はCPU毎に設けられ、データ処理手段は、先行CPUに送出するFIFO回路のデータを先行CPU以外の他のCPUに対応する記憶装置にそれぞれ書き込み、先行CPU以外の他のCPUがFIFO回路に対して読み出しを要求する場合、FIFO回路に対して読み出しを要求する他のCPUに対応する記憶装置からデータを読み出して、FIFO回路に対して読み出しを要求する他のCPUに送出する。   According to the second aspect of the present invention, the storage device is provided for each CPU, and the data processing means writes the data of the FIFO circuit to be sent to the preceding CPU to the storage device corresponding to the CPU other than the preceding CPU, When a CPU other than the preceding CPU requests the FIFO circuit to read data, it reads data from the storage device corresponding to the other CPU that requests the FIFO circuit to read data, and requests the FIFO circuit to read data. To other CPUs.

つまり、自CPUが先行CPUではなく、他のCPUが先行CPUのときにFIFO回路から読み出されたデータは自CPUの対応する記憶装置に記憶されている。これにより、自CPUが先行CPUでないときに、自CPUに対応する記憶装置からFIFO回路に格納されていたデータを読み出すことができる。   That is, the data read from the FIFO circuit when the own CPU is not the preceding CPU and the other CPU is the preceding CPU is stored in the corresponding storage device of the own CPU. Thereby, when the own CPU is not the preceding CPU, the data stored in the FIFO circuit can be read from the storage device corresponding to the own CPU.

請求項3に記載の発明によると、複数のCPUは2個であり、記憶装置は2個のCPUに共通して1個設けられ、データ処理手段は、記憶装置からデータを読み出すときには読出アドレスが示す記憶装置のアドレス位置からデータを読出すとともに、読み出すデータ数に応じて読出アドレスを更新し、FIFO回路から読み出したデータを記憶装置に書き込むときには書込アドレスが示す記憶装置のアドレス位置にFIFO回路のデータを書き込むとともに、書き込みデータ数に応じて書込アドレスを更新する。   According to the third aspect of the present invention, there are two CPUs, one storage device is provided in common for the two CPUs, and the data processing means has a read address when reading data from the storage device. Reads data from the address position of the storage device shown, updates the read address according to the number of data to be read, and writes the data read from the FIFO circuit to the storage device at the address position of the storage device indicated by the write address And the write address is updated according to the number of write data.

CPUが2個の場合に、先行CPUがFIFO回路から読み出すデータを共通の記憶装置に書き込んでいくことにより、先行CPUではない方のCPUが読み出すべきFIFO回路のデータは記憶装置に記憶される。   When the number of CPUs is two, the data read from the FIFO circuit by the preceding CPU is written in the common storage device, whereby the data of the FIFO circuit to be read by the CPU that is not the preceding CPU is stored in the storage device.

そして、先行CPUではない方のCPUに送出する記憶装置のデータは、先行CPUがFIFO回路から読み出したデータであり、先行CPUは記憶装置から読み出す必要がない。したがって、共通の記憶装置から読み出すデータ数に応じて読出アドレスが更新されても、先行CPUではないCPUに、記憶装置に記憶されているデータを読み飛ばすことなく送出できる。   The data in the storage device sent to the CPU that is not the preceding CPU is data read by the preceding CPU from the FIFO circuit, and the preceding CPU does not need to read from the storage device. Therefore, even if the read address is updated according to the number of data read from the common storage device, the data stored in the storage device can be sent to the CPU that is not the preceding CPU without skipping.

したがって、2個のCPUに対して共通の1個の記憶装置を設けた構成において、2個のCPUから1個のFIFO回路に対する読出しが要求されても、FIFO回路に格納されているデータをFIFO回路または記憶装置から各CPUに送出できる。   Therefore, in a configuration in which one memory device common to two CPUs is provided, even if two CPUs request reading from one FIFO circuit, the data stored in the FIFO circuit is stored in the FIFO. It can be sent to each CPU from a circuit or a storage device.

第1実施形態のFIFOデータ読出装置を示すブロック図。1 is a block diagram showing a FIFO data reading device according to a first embodiment. (A)はFIFO回路の読出ポインタを示す説明図、(B)はFIFO読出回路とFIFO回路との間の信号を示すタイムチャート。(A) is explanatory drawing which shows the read pointer of a FIFO circuit, (B) is a time chart which shows the signal between a FIFO read circuit and a FIFO circuit. CPUがFIFO回路からデータを読出すための状態遷移図。The state transition diagram for CPU reading data from a FIFO circuit. CPUがFIFO回路からデータを読出すためのCPUとFIFO読出回路との間の信号を示すタイムチャート。The time chart which shows the signal between CPU and FIFO read-out circuit for CPU reading data from a FIFO circuit. #1CPUに対するFIFO読出回路の読出処理を示す状態遷移図。# 1 is a state transition diagram showing reading processing of a FIFO reading circuit for a CPU. #1CPUに対するFIFO読出回路の読出処理を示す状態遷移図。# 1 is a state transition diagram showing reading processing of a FIFO reading circuit for a CPU. #2CPUに対するFIFO読出回路の読出処理を示す状態遷移図。FIG. 2 is a state transition diagram showing reading processing of the FIFO reading circuit for # 2 CPU. #2CPUに対するFIFO読出回路の読出処理を示す状態遷移図。FIG. 2 is a state transition diagram showing reading processing of the FIFO reading circuit for # 2 CPU. 第2実施形態のFIFOデータ読出装置を示すブロック図。The block diagram which shows the FIFO data reading apparatus of 2nd Embodiment. #1CPUに対するFIFO読出回路の読出処理を示す状態遷移図。# 1 is a state transition diagram showing reading processing of a FIFO reading circuit for a CPU. #2CPUに対するFIFO読出回路の読出処理を示す状態遷移図。FIG. 2 is a state transition diagram showing reading processing of the FIFO reading circuit for # 2 CPU.

以下、本発明の実施の形態を図に基づいて説明する。
[第1実施形態]
図1に本実施形態のFIFOデータ読出装置10を示す。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
FIG. 1 shows a FIFO data reading device 10 of this embodiment.

(FIFOデータ読出装置10)
FIFOデータ読出装置10は、FIFO回路12と、FIFO読出回路20と、#1DPRAM(Dual Port RAM)30と、#2DPRAM32とから構成されており、#1CPU2および#2CPU4からFIFO回路12に対するデータの読出要求を処理する装置である。
(FIFO data reading device 10)
The FIFO data reading device 10 includes a FIFO circuit 12, a FIFO reading circuit 20, a # 1 DPRAM (Dual Port RAM) 30, and a # 2 DPRAM 32. Reading data from the # 1 CPU 2 and # 2 CPU 4 to the FIFO circuit 12 is performed. A device that processes requests.

#1CPU2および#2CPU4(以下、単に#1CPU2をCPU2、#2CPU4をCPU4とも言う。)は、マスター・スレーブの関係にはなく、互いに独立してFIFO回路12に対して読出しを要求する。つまり、CPU2およびCPU4は、互いに他のCPUがFIFO回路12からデータを読出しているか否かに関係なく、あたかも1対1でFIFO回路12に接続している構成であるとして、FIFO回路12に対して独立して読出しを要求する。   # 1CPU2 and # 2CPU4 (hereinafter simply referred to as # 1CPU2 is also referred to as CPU2 and # 2CPU4 is also referred to as CPU4) are not in a master-slave relationship and request reading from the FIFO circuit 12 independently of each other. That is, the CPU 2 and the CPU 4 are connected to the FIFO circuit 12 on a one-to-one basis regardless of whether other CPUs are reading data from the FIFO circuit 12 or not. Request reading independently.

CPU2およびCPU4によるFIFO回路12に対する読出要求は、実際にはFIFO読出回路20により処理される。FIFO読出回路20については後述する。
FIFO回路12は、先に格納したデータを先に読み出す公知の回路である。FIFO回路12には、例えば、スキャン周期毎にレーダでスキャンしたスキャンデータが格納される。FIFO回路12に格納されているスキャンデータに基づき、例えば、CPU2は反射物体の形状を検出し、CPU4は反射物体の追跡を行うといった異なる処理を並行して実行する。
Read requests to the FIFO circuit 12 by the CPU 2 and CPU 4 are actually processed by the FIFO read circuit 20. The FIFO read circuit 20 will be described later.
The FIFO circuit 12 is a known circuit that reads the previously stored data first. The FIFO circuit 12 stores, for example, scan data scanned by a radar every scan cycle. Based on the scan data stored in the FIFO circuit 12, for example, the CPU 2 detects the shape of the reflective object, and the CPU 4 executes different processes in parallel, such as tracking the reflective object.

FIFO回路12のデータ格納部はRAM等で構成されている。第1実施形態は、FIFO回路12に対する読出しを処理するものであるから、FIFO回路12に対するデータ書き込み信号は図1では省略している。ただし、FIFO回路12の構成を説明するために、FIFO回路12に対する書込処理について説明する。   The data storage unit of the FIFO circuit 12 is composed of a RAM or the like. Since the first embodiment processes reading from the FIFO circuit 12, the data write signal to the FIFO circuit 12 is omitted in FIG. However, in order to describe the configuration of the FIFO circuit 12, a writing process to the FIFO circuit 12 will be described.

図2に示すように、FIFO回路12には、書き込み順にしたがい、data1、data2・・・dataNの順番で順次データが書き込まれる。FIFO回路12からは、図2(A)の矢印で示す読出ポインタが示す位置のデータが読み出される。1番最初に書き込まれたdata1が読み出されると、読出ポインタは次にdata2を示す。このように、data1、data2・・・dataNの順番で、FIFO回路12から順次データが読み出される。尚、読出ポインタはFIFO回路12の内部のポインタであるから、FIFO回路12の外部からは操作できない。   As shown in FIG. 2, data is sequentially written in the FIFO circuit 12 in the order of data1, data2,. From the FIFO circuit 12, data at a position indicated by a read pointer indicated by an arrow in FIG. When the first written data1 is read, the read pointer next indicates data2. In this manner, data is sequentially read from the FIFO circuit 12 in the order of data1, data2,..., DataN. Since the read pointer is a pointer inside the FIFO circuit 12, it cannot be operated from the outside of the FIFO circuit 12.

次に、FIFO回路12からの読出処理について説明する。
図2の(B)に示すように、FIFO読出回路20がFIFO回路12のデータを読み出す場合、読出しクロックに同期して読出要求信号を出力する。読出要求が有効(ハイ=’1’)の場合、FIFO回路12は、読出しクロック1周期に対してFIFO回路12に格納している1個分のデータを出力する。図2の(B)では、1個の読出しを行った後、2クロックおいて2個の読出要求信号を連続してFIFO回路12に出力している。読出要求信号が有効と判断されると、FIFO回路12は、読出しクロックに同期して読出しデータを出力する。
Next, reading processing from the FIFO circuit 12 will be described.
As shown in FIG. 2B, when the FIFO read circuit 20 reads data from the FIFO circuit 12, a read request signal is output in synchronization with the read clock. When the read request is valid (high = “1”), the FIFO circuit 12 outputs one piece of data stored in the FIFO circuit 12 for one read clock cycle. In FIG. 2B, after one read operation, two read request signals are continuously output to the FIFO circuit 12 at two clocks. When it is determined that the read request signal is valid, the FIFO circuit 12 outputs read data in synchronization with the read clock.

FIFO回路12に書き込まれたデータが全て読み出されると、FIFO回路12はempty信号をハイ=’1’にして出力する。これにより、FIFO回路12は、格納データが空になって読出すデータがなくなったことを外部に示す。empty信号が有効(’1’)の状態でFIFO回路12にデータが書込まれると、empty信号は無効(ロー=’0’)になり、FIFO回路12は読出し可能な状態になったことを外部に示す。   When all the data written in the FIFO circuit 12 is read, the FIFO circuit 12 outputs the empty signal with high = “1”. Thereby, the FIFO circuit 12 indicates to the outside that the stored data is empty and there is no data to read out. If data is written to the FIFO circuit 12 while the empty signal is valid ('1'), the empty signal becomes invalid (low = '0'), indicating that the FIFO circuit 12 is ready to be read. Show to the outside.

FIFO読出回路20は、例えばFPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等のハードウェアで構成されている。FIFO読出回路20は、CPU2、4からのFIFO回路12に対する読出要求に対し、FIFO回路12または#1DPRAM30または#2DPRAM32(以下、単に#1DPRAM30をDPRAM30、#2DPRAM32をDPRAM32とも言う。)からデータを読出し、各CPUに送出する。   The FIFO read circuit 20 is composed of hardware such as an FPGA (Field Programmable Gate Array) and an ASIC (Application Specific Integrated Circuit). The FIFO read circuit 20 reads data from the FIFO circuit 12 or the # 1 DPRAM 30 or # 2 DPRAM 32 (hereinafter, simply referred to as # 1 DPRAM 30 as DPRAM 30 and # 2 DPRAM 32 as DPRAM 32) in response to a read request from the CPUs 2 and 4 to the FIFO circuit 12. , Sent to each CPU.

CPU2、4とFIFO読出回路20との間の6個のインタフェース(IF)信号と、IF信号がポート信号またはバス信号のいずれであるかと、IF信号の出力元とを以下に示す。以下の6個のIF信号は、CPUの個数分設けられている。各信号の詳細については後述する。
(1)読出開始信号:ポート信号、CPU
(2)連続読出個数信号(個数表現に必要なビット数):ポート信号、CPU
(3)読出許可信号:ポート信号、FIFO読出回路
(4)読出ストローブ信号:バス信号、CPU
(5)読出WAIT信号:バス信号、FIFO読出回路
(6)FIFOデータ信号(データ幅に応じたビット数):バス信号、FIFO読出回路
(CPUによる読出処理)
図3および図4に基づいて、CPU2またはCPU4がFIFO回路12に対して読出しを要求する場合の状態遷移について説明する。図3において「S」はステップを表している。
The six interface (IF) signals between the CPUs 2 and 4 and the FIFO readout circuit 20, whether the IF signal is a port signal or a bus signal, and the output source of the IF signal are shown below. The following six IF signals are provided for the number of CPUs. Details of each signal will be described later.
(1) Read start signal: port signal, CPU
(2) Continuous read number signal (number of bits required for number expression): port signal, CPU
(3) Read permission signal: port signal, FIFO read circuit (4) Read strobe signal: bus signal, CPU
(5) Read WAIT signal: bus signal, FIFO read circuit (6) FIFO data signal (number of bits according to data width): bus signal, FIFO read circuit (read processing by CPU)
Based on FIG. 3 and FIG. 4, the state transition when the CPU 2 or CPU 4 requests the FIFO circuit 12 to read will be described. In FIG. 3, “S” represents a step.

CPU2、4がFIFO回路12に対して読出しを要求する場合、まずCPU2、4は、FIFO回路12から1回の読出要求で連続してデータを読み出す連続読出個数を出力し(S400)、次に読出開始信号を’1’にする(S402)。   When the CPUs 2 and 4 request the FIFO circuit 12 to read, first, the CPUs 2 and 4 output the number of continuous reads from the FIFO circuit 12 to continuously read data in one read request (S400), and then The read start signal is set to “1” (S402).

読出開始信号を’1’にすることにより、CPU2、4はFIFO読出回路20にFIFO回路12に対する読出しの開始を通知する。FIFO読出回路20は、読出開始信号が’1’になることにより、CPU2、4からFIFO回路12への読出しを要求されたと判断する。そして、FIFO読出回路20が読出許可信号を’1’にすることにより、CPU2、4は、FIFO回路12に対する読出要求が受け付けられた判断する。   By setting the read start signal to “1”, the CPUs 2 and 4 notify the FIFO read circuit 20 of the start of reading to the FIFO circuit 12. The FIFO reading circuit 20 determines that reading from the CPUs 2 and 4 to the FIFO circuit 12 is requested when the reading start signal becomes “1”. Then, when the FIFO read circuit 20 sets the read permission signal to “1”, the CPUs 2 and 4 determine that the read request to the FIFO circuit 12 has been accepted.

CPU2、4は、FIFO読出回路20から出力される読出許可信号が’1’になると(S404:Yes)、読出開始信号を’0’にし(S406)、読出ストローブ信号を’1’にする(S408)。読出ストローブ信号を’1’にすることにより、CPU2、4は、FIFO読出回路20にデータの読出しを要求する。FIFO読出回路20は、読出ストローブ信号が’1’になると、読出しWAIT信号を’1’にし、FIFO回路12またはDPRAMから1個のデータを読出す。   When the read permission signal output from the FIFO read circuit 20 becomes “1” (S404: Yes), the CPUs 2 and 4 set the read start signal to “0” (S406) and set the read strobe signal to “1” (S406). S408). By setting the read strobe signal to “1”, the CPUs 2 and 4 request the FIFO read circuit 20 to read data. When the read strobe signal becomes “1”, the FIFO read circuit 20 sets the read WAIT signal to “1”, and reads one data from the FIFO circuit 12 or DPRAM.

FIFO読出回路20がFIFO回路12またはDPRAMから1個のデータを読出し、読出しWAIT信号が’0’になると(S410:Yes)、CPU2、4は、FIFOデータ信号のデータを読出し(S412)、読出ストローブ信号を’0’にする(S414)。   When the FIFO read circuit 20 reads one piece of data from the FIFO circuit 12 or DPRAM and the read WAIT signal becomes “0” (S410: Yes), the CPUs 2 and 4 read the data of the FIFO data signal (S412) and read it. The strobe signal is set to “0” (S414).

尚、読出しWAIT信号は、CPU2、4がバス信号として通常備えている信号であり、新に設けた信号ではない。また、CPU2、4によるS408〜S414の処理は、バス信号に関する処理であり、例えばC言語のプログラム上で、*a++=*b++を実行する場合に、bのポインタ値、つまりbが示すアドレス位置のデータを読み出すときに、CPU2、4のハードウェアが実行する処理である。   The read WAIT signal is a signal normally provided as a bus signal by the CPUs 2 and 4 and is not a newly provided signal. The processing of S408 to S414 by the CPUs 2 and 4 is processing related to bus signals. For example, when * a ++ = * b ++ is executed on a C language program, the pointer value of b, that is, the address position indicated by b This process is executed by the hardware of the CPUs 2 and 4 when reading the data.

一方、CPU2、4によるS400〜S406、およびS416〜S420の処理は、CPU2、4のポート信号に関する処理であり、CPU2、4のプログラムが実行する処理である。   On the other hand, the processes of S400 to S406 and S416 to S420 by the CPUs 2 and 4 are processes related to the port signals of the CPUs 2 and 4, and are processes executed by the programs of the CPUs 2 and 4.

読出ストローブ信号が’1’のときに読出しWAIT信号が’1’から’0’になると(S410:Yes)、FIFO読出回路20がFIFO回路12またはDPRAMから読み出したデータがFIFOデータ信号に出力されていることを表している。これにより、CPU2、4とFIFO読出回路20との間でクロックが異なっていても、CPU2、4は、FIFO回路12またはDPRAMのデータを正しく読み出すことができる。   If the read WAIT signal changes from '1' to '0' when the read strobe signal is '1' (S410: Yes), the data read from the FIFO circuit 12 or DPRAM by the FIFO read circuit 20 is output to the FIFO data signal. It represents that. Thereby, even if the clocks are different between the CPUs 2 and 4 and the FIFO read circuit 20, the CPUs 2 and 4 can correctly read the data of the FIFO circuit 12 or the DPRAM.

次にCPU2、4は、データの読出回数カウンタをカウントアップし(S416)、データの読出回数が連続読出個数に達していない場合(S418:No)、S408に処理を移行する。   Next, the CPUs 2 and 4 increment the data read count counter (S416). If the data read count has not reached the number of continuous reads (S418: No), the process proceeds to S408.

データの読出回数が連続読出個数に達すると(S418:Yes)、CPU2、4は読出回数カウンタをクリアし(S420)、読出処理を終了する。
上記説明では、読出ストローブ信号および読出WAIT信号をハイで有効としたが、ローで有効としてもよい。また、FIFOデータ信号は双方向のバス信号であるから、連続読出個数信号をFIFOデータ信号としてCPU2、4から出力してもよい。
When the number of data reading reaches the number of continuous reading (S418: Yes), the CPUs 2 and 4 clear the reading number counter (S420) and end the reading process.
In the above description, the read strobe signal and the read WAIT signal are valid when they are high, but may be valid when they are low. Further, since the FIFO data signal is a bidirectional bus signal, the continuous reading number signal may be output from the CPUs 2 and 4 as the FIFO data signal.

CPU2、4は、上記S400〜S420の処理を実行することにより、互いに他のCPUを意識することなく、FIFO回路12に対する読出しを独立して実行できる。
(FIFO読出回路20による#1CPU用読出処理)
図5および図6に基づいて、FIFO回路12に対する読出を#1CPUから要求された場合のFIFO読出回路20における処理の状態遷移について説明する。図5および図6において「S」はステップを表している。尚、図5および図6、さらに後述する図7、図8、図10および図11の状態遷移は、FIFO回路12に対する読出しクロックに同期して行われる。
The CPUs 2 and 4 can execute the reading of the FIFO circuit 12 independently without being conscious of other CPUs by executing the processes of S400 to S420.
(Reading process for # 1 CPU by FIFO reading circuit 20)
Based on FIGS. 5 and 6, the state transition of processing in the FIFO reading circuit 20 when reading from the FIFO circuit 12 is requested by the # 1 CPU will be described. In FIG. 5 and FIG. 6, “S” represents a step. Note that the state transitions of FIGS. 5 and 6 and FIGS. 7, 8, 10 and 11 described later are performed in synchronization with the read clock for the FIFO circuit 12.

また、図5および図6において使用する変数の意味は以下の通りである。
(1)#1CPUポインタ:#1CPUがFIFO回路12または#1DPRAMからデータを読み出した現在までの総回数(総個数と同義である。)。
(2)#2DPRAMポインタ:#1CPUがFIFO回路12から読み出したデータを#2DPRAMに書き込むアドレス。
(3)#1DPRAMアドレス:#2CPUがFIFO回路12から読み出したデータを記憶している#1DPRAMから、#1CPUがデータを読み出すアドレス。
(4)#1CPU読出回数:#1CPUが連続してFIFO回路12または#1DPRAMからデータを読み出す回数カウンタ。
The meanings of variables used in FIGS. 5 and 6 are as follows.
(1) # 1 CPU pointer: The total number of times the # 1 CPU has read data from the FIFO circuit 12 or # 1 DPRAM up to the present time (synonymous with the total number).
(2) # 2 DPRAM pointer: address to which # 1 CPU writes data read from the FIFO circuit 12 into # 2 DPRAM.
(3) # 1 DPRAM address: An address from which # 1 CPU reads data from # 1 DPRAM that stores data read from FIFO circuit 12 by # 2 CPU.
(4) # 1 CPU read count: A count counter in which # 1 CPU continuously reads data from the FIFO circuit 12 or # 1 DPRAM.

まず、FIFO読出回路20は、電源オン後のリセット処理が終了すると(S430:Yes)、#1CPUポインタ、#2DPRAMポインタ、#1DPRAMアドレス、#1CPU読出回数をクリアする(S432)。   First, when the reset process after power-on is completed (S430: Yes), the FIFO read circuit 20 clears the # 1 CPU pointer, the # 2 DPRAM pointer, the # 1 DPRAM address, and the # 1 CPU read count (S432).

そして、FIFO読出回路20は、#1CPUの読出開始信号が’1’になると(S434:Yes)、#1CPUが出力する#1CPU連続読出個数信号を読込む(S436)。FIFO回路12に格納されているデータが空でなければ、つまりempty信号=’0’であれば(S438:No)、FIFO読出回路20は、#1CPUに対する読出許可信号を’1’に設定し(S440)、#1CPU読出回数をカウントアップするS442)。   Then, when the reading start signal of the # 1 CPU becomes “1” (S434: Yes), the FIFO reading circuit 20 reads the # 1 CPU continuous reading number signal output from the # 1 CPU (S436). If the data stored in the FIFO circuit 12 is not empty, that is, if the empty signal = '0' (S438: No), the FIFO read circuit 20 sets the read permission signal for # 1 CPU to '1'. (S440), # 1 The CPU read count is counted up (S442).

次に、S444においてFIFO読出回路20は、#1CPUポインタ≧#2CPUポインタであれば(S444:Yes)、S446に処理を移行し、#1CPUポインタ<#2CPUポインタであれば(S444:No)、S464に処理を移行する。   Next, in S444, if the FIFO read circuit 20 is # 1CPU pointer ≧ # 2CPU pointer (S444: Yes), the process proceeds to S446, and if # 1CPU pointer <# 2CPU pointer (S444: No), The process proceeds to S464.

#1CPUポインタ≧#2CPUポインタの場合(S444:Yes)、#1CPUによる総読出回数は#2CPUによる総読出回数以上であるから、FIFO読出回路20は、#1CPUは#2CPUよりも先行してFIFO回路12に対して読出しを要求していると判断する。   When # 1CPU pointer ≧ # 2CPU pointer (S444: Yes), since the total number of readings by # 1CPU is equal to or larger than the total number of readings by # 2CPU, the FIFO reading circuit 20 has the FIFO that # 1CPU precedes # 2CPU. It is determined that the circuit 12 is requested to read.

つまり、#1CPUポインタ≧#2CPUポインタの場合、#1CPUによるFIFO回路12に対する読出要求に対し、FIFO読出回路20はFIFO回路12からデータを読み出し#1CPUに送出すると判断する。第1実施形態では、#1CPUポインタ=#2CPUポインタである場合、#2CPUよりも#1CPUを優先してFIFO回路12からデータを読出すものとしている。   That is, when # 1 CPU pointer ≧ # 2 CPU pointer, in response to a read request from the # 1 CPU to the FIFO circuit 12, the FIFO read circuit 20 determines to read data from the FIFO circuit 12 and send it to the # 1 CPU. In the first embodiment, when # 1CPU pointer = # 2CPU pointer, data is read from the FIFO circuit 12 with priority given to # 1CPU over # 2CPU.

そして、FIFO回路12に格納されているデータが空ではなく(S446:No)、#1CPU読出ストローブ信号=’1’の場合(S448:Yes)、読出WAIT信号を’1’に設定し(S450)、FIFO回路12に1クロック分の読出要求信号を出力する(S452)。S446でFIFO回路12に格納されているデータが空の場合(S446:No)、FIFO回路12からのデータの読出し途中でデータが空になったことを表すので、FIFO読出回路20は、FIFO回路12に新にデータが格納されるまで待機する。   If the data stored in the FIFO circuit 12 is not empty (S446: No) and # 1 CPU read strobe signal = '1' (S448: Yes), the read WAIT signal is set to '1' (S450). ), A read request signal for one clock is output to the FIFO circuit 12 (S452). If the data stored in the FIFO circuit 12 in S446 is empty (S446: No), it indicates that the data has become empty during the reading of the data from the FIFO circuit 12, so that the FIFO read circuit 20 12 waits until new data is stored.

FIFO読出回路20は、FIFO回路12が出力する1個分のデータをラッチし、#1CPUに出力する(S454)。次に、#2DPRAMの#2DPRAMポインタが示す位置にFIFO回路12が出力する1個分のデータを書き込む(S456)。   The FIFO read circuit 20 latches one piece of data output from the FIFO circuit 12 and outputs it to the # 1 CPU (S454). Next, one piece of data output from the FIFO circuit 12 is written at the position indicated by the # 2DPRAM pointer of # 2DPRAM (S456).

FIFO回路12からデータを読み出すと、FIFO回路12の内部で読出ポインタが次のデータ位置を示すので、#1CPUがFIFO回路12からデータを読み出すと、他方の#2CPUは既に読み出されたデータをFIFO回路12から読み出すことはできない。そこで、#1CPUがFIFO回路12からデータを読み出すと、S456において、#2DPRAMにそのデータを書き込んでコピーしておき、後で#2CPUが読み出せるようにしておく。   When data is read from the FIFO circuit 12, the read pointer indicates the next data position in the FIFO circuit 12. Therefore, when the # 1 CPU reads data from the FIFO circuit 12, the other # 2 CPU reads the already read data. Reading from the FIFO circuit 12 is not possible. Therefore, when the # 1 CPU reads the data from the FIFO circuit 12, in S456, the data is written and copied to the # 2 DPRAM so that the # 2 CPU can read it later.

#2DPRAMにFIFOデータを書き込むと、FIFO読出回路20は、読出WAIT信号を’0’に設定し(S458)、#1CPUポインタをカウントアップし(S460)、#2DPRAMポインタをカウントアップし(S462)、S476に処理を移行する。   When the FIFO data is written in # 2DPRAM, the FIFO read circuit 20 sets the read WAIT signal to '0' (S458), counts up the # 1 CPU pointer (S460), and counts up the # 2DPRAM pointer (S462). , The process proceeds to S476.

S458においてFIFO読出回路20が読出WAIT信号を’0’に設定すると、#1CPUは、図3のS412において、FIFOデータ信号のデータを読み出す。
前述したS444の判定において、#1CPUポインタ<#2CPUポインタの場合(S444:No)、#1CPUによる総読出回数は#2CPUによる総読出個数より小さいので、FIFO読出回路20は、#1CPUは#2CPUよりも遅れてFIFO回路12に対して読出しを要求していると判断する。
When the FIFO read circuit 20 sets the read WAIT signal to “0” in S458, the # 1 CPU reads the data of the FIFO data signal in S412 of FIG.
In the above-described determination of S444, if # 1CPU pointer <# 2CPU pointer (S444: No), the total number of readings by # 1 CPU is smaller than the total number of readings by # 2CPU. It is determined that the FIFO circuit 12 is requested to read later.

つまり、#1CPUポインタ<#2CPUポインタの場合、FIFO読出回路20は、#1CPUによるFIFO回路12に対する読出要求に対応するデータを、すでにFIFO回路12から読み出して#2CPUに送出したと判断する。#2CPUがFIFO回路12から読み出したデータは#1DPRAMに書き込まれている。   That is, if # 1CPU pointer <# 2CPU pointer, the FIFO read circuit 20 determines that the data corresponding to the read request from the # 1 CPU to the FIFO circuit 12 has already been read from the FIFO circuit 12 and sent to the # 2 CPU. Data read from the # 2 CPU from the FIFO circuit 12 is written in the # 1 DPRAM.

そして、FIFO読出回路20は、#1CPU読出ストローブ信号=’1’であれば(S464:Yes)、読出WAIT信号を’1’に設定し(S466:Yes)、#1DPRAMの#1DPRAMアドレス位置から1個分のデータを読出してラッチし、#1CPUに出力する(S468)。   Then, if the # 1 CPU read strobe signal = '1' (S464: Yes), the FIFO read circuit 20 sets the read WAIT signal to '1' (S466: Yes) and starts from the # 1DPRAM address position of # 1DPRAM. One piece of data is read and latched and output to the # 1 CPU (S468).

次に、FIFO読出回路20は、読出WAIT信号を’0’に設定し(S470)、#1CPUポインタをカウントアップし(S472)、#1DPRAMアドレスをカウントアップし(S474)、S476に処理を移行する。   Next, the FIFO read circuit 20 sets the read WAIT signal to “0” (S470), counts up the # 1 CPU pointer (S472), counts up the # 1 DPRAM address (S474), and proceeds to S476. To do.

S476において、#1CPU読出回数<#1CPU連続読出個数であれば(S476:No)、#1CPU連続読出個数分のデータを#1CPUがまだ読み出していないと判断し、FIFO読出回路20はS444に処理を移行する。   In S476, if # 1 CPU read count <# 1 CPU continuous read number (S476: No), it is determined that # 1 CPU has not yet read data for the # 1 CPU continuous read number, and the FIFO read circuit 20 proceeds to S444. To migrate.

#1CPU読出回数≧#1CPU連続読出個数であれば(S476:Yes)、FIFO読出回路20は、#1CPU連続読出個数分のデータを#1CPUは読み出したと判断し、#1CPU読出回数をクリアする(S478)。   If # 1 CPU read count ≧ # 1 CPU continuous read number (S476: Yes), the FIFO read circuit 20 determines that the # 1 CPU has read data for the # 1 CPU continuous read number, and clears the # 1CPU read count ( S478).

次に、FIFO回路12に格納されているデータが空ではない場合(S480:No)、FIFO読出回路20は、#1CPUからの読出要求に備え、S434に処理を移行する。   Next, when the data stored in the FIFO circuit 12 is not empty (S480: No), the FIFO read circuit 20 shifts the processing to S434 in preparation for a read request from the # 1 CPU.

#1CPUが#1CPU連続読出個数分のデータを読み出したときにFIFO回路12に格納されているデータが空であり(S480:Yes)、#1CPUポインタ≧#2CPUポインタであれば(S482:Yes)、FIFO読出回路20は、#1CPUポインタ=#2CPUポインタになるまで待機する(S484:No)。   When the # 1 CPU reads the data corresponding to the # 1 CPU continuous reading number, the data stored in the FIFO circuit 12 is empty (S480: Yes), and if # 1CPU pointer ≧ # 2 CPU pointer (S482: Yes) The FIFO reading circuit 20 waits until # 1CPU pointer = # 2CPU pointer (S484: No).

これは、S482において#1CPUポインタ>#2CPUポインタであれば、#2DPRAMに#2CPUの未読データが残っているので、#2CPUが#2DPRAMに記憶されているデータを全て読出すまで待機するためである。   This is because if # 1 CPU pointer> # 2 CPU pointer in S482, the unread data of # 2CPU remains in # 2DPRAM, so that # 2CPU waits until all data stored in # 2DPRAM is read. is there.

#1CPUポインタ=#2CPUポインタであれば(S484:Yes)、FIFO回路12のデータが空になった状態で#1CPUと#2CPUとの読出回数が一致するので、FIFO読出回路20は、S432に処理を移行し初期状態に戻る。   If # 1CPU pointer = # 2CPU pointer (S484: Yes), the read counts of # 1CPU and # 2CPU match when the data in the FIFO circuit 12 is empty, so the FIFO read circuit 20 goes to S432. The process is shifted to the initial state.

S482において#1CPUポインタ<#2CPUポインタであれば(S482:No)、FIFO回路12のデータが空になった状態で#1DPRAMに#1CPUが未読のデータが残されていると考えられる。そこで、FIFO読出回路20は、図6のS486において、#1CPUの読出開始信号が’1’になると(S486:Yes)、#1CPUが出力する#1CPU連続読出個数信号を読込む(S488)。そして、FIFO読出回路20は、#1CPUに対する読出許可信号を’1’に設定し(S490)、図5のS442に処理を移行する。これにより、#1CPUポインタ=#2CPUポインタになるまで(S484:Yes)、#1DPRAMに記憶されている未読のデータを#1CPUは読出す。   If # 1 CPU pointer <# 2 CPU pointer in S482 (S482: No), it is considered that data that has not been read by # 1CPU remains in # 1DPRAM in a state where data in the FIFO circuit 12 is empty. Therefore, when the reading start signal of the # 1 CPU becomes “1” in S486 of FIG. 6 (S486: Yes), the FIFO reading circuit 20 reads the # 1 CPU continuous reading number signal output by the # 1 CPU (S488). Then, the FIFO read circuit 20 sets the read permission signal for # 1 CPU to “1” (S490), and shifts the processing to S442 in FIG. As a result, the # 1 CPU reads unread data stored in the # 1 DPRAM until # 1 CPU pointer = # 2 CPU pointer (S484: Yes).

(FIFO読出回路20による#2CPU用読出処理)
図7および図8に基づいて、FIFO回路12に対する読出しを#2CPUから要求された場合のFIFO読出回路20における処理の状態遷移について説明する。図7および図8において「S」はステップを表している。図7および図8において使用する変数の意味は以下の通りである。
(1)#2CPUポインタ:#2CPUがFIFO回路12または#2DPRAMからデータを読み出した現在までの総回数(総個数と同義である。)。
(2)#1DPRAMポインタ:#2CPUがFIFO回路12から読み出したデータを#1DPRAMに書き込むアドレス。
(3)#2DPRAMアドレス:#1CPUがFIFO回路12から読み出したデータを記憶している#2DPRAMから、#2CPUがデータを読み出すアドレス。
(4)#2CPU読出回数:#2CPUが連続してFIFO回路12または#2DPRAMからデータを読み出す回数カウンタ。
(Reading process for # 2 CPU by FIFO reading circuit 20)
Based on FIGS. 7 and 8, the state transition of processing in the FIFO reading circuit 20 when reading from the FIFO circuit 12 is requested by the # 2 CPU will be described. In FIG. 7 and FIG. 8, “S” represents a step. The meanings of variables used in FIGS. 7 and 8 are as follows.
(1) # 2 CPU pointer: Total number of times the # 2 CPU has read data from the FIFO circuit 12 or # 2 DPRAM up to the present time (synonymous with the total number).
(2) # 1 DPRAM pointer: address to which # 2 CPU writes data read from the FIFO circuit 12 into # 1 DPRAM.
(3) # 2 DPRAM address: An address from which # 2 CPU reads data from # 2 DPRAM that stores data read from FIFO circuit 12 by # 1 CPU.
(4) # 2 CPU read count: A count counter in which # 2 CPU continuously reads data from the FIFO circuit 12 or # 2 DPRAM.

図5および図6における#1CPU用読出処理と、図7および図8における#2CPU用読出処理とは、CPU名と上記変数名とが異なるだけで、殆ど同じである。以下に、異なる処理について説明する。   The # 1 CPU reading process in FIGS. 5 and 6 and the # 2 CPU reading process in FIGS. 7 and 8 are almost the same except that the CPU name and the variable name are different. Hereinafter, different processes will be described.

S504において、FIFO読出回路20は、#1CPUポインタ<#2CPUポインタの場合(S504:Yes)、#2CPUによる総読出回数は#1CPUによる総読出回数より大きいので、FIFO読出回路20は、#2CPUは#1CPUよりも先行してFIFO回路12に対して読出しを要求していると判断する。   In S504, if the FIFO read circuit 20 is # 1 CPU pointer <# 2 CPU pointer (S504: Yes), the total read count by the # 2 CPU is larger than the total read count by the # 1 CPU. It is determined that reading is requested to the FIFO circuit 12 prior to # 1 CPU.

つまり、#1CPUポインタ<#2CPUポインタの場合、#2CPUによるFIFO回路12に対する読出要求に対し、FIFO読出回路20はFIFO回路12からデータを読み出し#2CPUに送出すると判断する。   That is, if # 1CPU pointer <# 2CPU pointer, in response to a read request from the # 2 CPU to the FIFO circuit 12, the FIFO read circuit 20 determines to read data from the FIFO circuit 12 and send it to the # 2 CPU.

#1CPU用読出処理で説明したように、第1実施形態では、#1CPUによる総読出回数と#2CPUによる総読出個数とが等しい場合、#2CPUよりも#1CPUを優先してFIFO回路12からデータを読出すので、#1CPUポインタ<#2CPUポインタのときだけ、FIFO読出回路20はFIFO回路12から読み出したデータを#2CPUに送出する。   As described in the reading process for # 1 CPU, in the first embodiment, when the total number of readings by # 1 CPU is equal to the total number of readings by # 2 CPU, data from FIFO circuit 12 is given priority to # 1 CPU over # 2 CPU. Therefore, the FIFO read circuit 20 sends the data read from the FIFO circuit 12 to the # 2 CPU only when # 1CPU pointer <# 2 CPU pointer.

また、S526の次にS528の処理が追加されている点が、図5の#1CPU用読出処理と異なっている。S504において#1CPUポインタ≧#2CPUポインタであるときに(S504:No)、#1CPUポインタ=#2CPUポインタの場合には、#1CPUと#2CPUとで総読出回数が同じであるから、#1CPUは#2CPUに先行してFIFO回路12からデータを読み出していない。つまり、#2DPRAMには#2CPUが読み出せるデータがまだ書き込まれていないことを表している。   Moreover, the point that the processing of S528 is added after S526 is different from the reading processing for # 1 CPU in FIG. When # 1CPU pointer ≧ # 2CPU pointer in S504 (S504: No), if # 1CPU pointer = # 2CPU pointer, the total number of readings is the same for # 1CPU and # 2CPU, so # 2 No data is read from the FIFO circuit 12 prior to the CPU. That is, it indicates that data that can be read by the # 2 CPU has not yet been written in the # 2 DPRAM.

そこで、S528において、FIFO読出回路20は、#1CPUポインタ=#2CPUポインタの場合は待機し(S528:No)、#1CPUが#2CPUに先行してFIFO回路12からデータを読み出し、#2DPRAMに#2CPUが読み出せるデータが書き込まれることにより#1CPUポインタ>#2CPUポインタになると(S528:Yes)、S530からの処理を実行し、#2DPRAMに記憶されているデータを#2CPUに送出する。   Therefore, in S528, the FIFO read circuit 20 waits if # 1CPU pointer = # 2CPU pointer (S528: No), # 1CPU reads data from the FIFO circuit 12 prior to # 2CPU, and # 2DPRAM # When data that can be read by the 2CPUs is written, so that # 1CPU pointer> # 2CPU pointer (S528: Yes), the processing from S530 is executed, and the data stored in the # 2DPRAM is sent to the # 2CPU.

以上説明した第1実施形態では、#1CPUと#2CPUとのFIFO回路12に対する読出要求をFIFO読出回路20が処理することにより、#1CPUと#2CPUとは、互いに他のCPUがFIFO回路12に対して読出しを要求しているか否かに関わらず、1個のFIFO回路12に対して独立して読出しを要求できる。   In the first embodiment described above, the FIFO read circuit 20 processes read requests from the # 1 CPU and # 2 CPU to the FIFO circuit 12, so that the # 1 CPU and # 2 CPU are mutually connected to the FIFO circuit 12. Regardless of whether or not reading is requested, it is possible to independently request reading from one FIFO circuit 12.

また、2個のCPUが1個のFIFO回路12のデータを読み出すので、CPU毎にDPRAMを設置はするものの、CPU毎にFIFO回路12を設置する構成に比べ、ハードウェア量を低減できる。   In addition, since two CPUs read data from one FIFO circuit 12, although the DPRAM is installed for each CPU, the amount of hardware can be reduced as compared with the configuration in which the FIFO circuit 12 is installed for each CPU.

また、FIFO回路12に対してCPU2、4からの読出要求が同時に発生しても、その読出要求は、FIFO読出回路20によりFIFO回路12またはDPRAMのいずれかに振り分けられる。したがって、CPU2、4からの読出要求に対して、FIFO回路12またはDPRAMに同時に読出しは要求されない。   Even if read requests from the CPUs 2 and 4 are simultaneously generated for the FIFO circuit 12, the read requests are distributed to either the FIFO circuit 12 or the DPRAM by the FIFO read circuit 20. Therefore, in response to a read request from the CPUs 2 and 4, the FIFO circuit 12 or DPRAM is not requested to read simultaneously.

第1実施形態では、2個のCPUが1個のFIFO回路12のデータを読み出す例について説明した。CPUが3個以上の場合には、CPUが2個の場合と同様に、CPU毎にDPRAMを設け、1個のFIFO回路12に対する読出回数が先行している先行CPUを判定し、先行CPUがFIFO回路から読み出すデータを、先行CPU以外の他のCPU用のDPRAMにそれぞれ書き込む構成にすればよい。   In the first embodiment, the example in which two CPUs read data from one FIFO circuit 12 has been described. When the number of CPUs is three or more, as in the case of two CPUs, a DPRAM is provided for each CPU, and the preceding CPU in which the number of readings for one FIFO circuit 12 precedes is determined. The data read from the FIFO circuit may be written in the DPRAM for the CPU other than the preceding CPU.

これにより、3個以上の複数のCPUに1個のFIFO回路を設置する構成においても、他のCPUによるFIFO回路に対する読出要求に関わらず、各CPUは独立してFIFO回路に格納されているデータを読み出すことができる。   As a result, even in a configuration in which one FIFO circuit is installed in a plurality of CPUs of three or more, each CPU independently stores data stored in the FIFO circuit regardless of the read request to the FIFO circuit by other CPUs. Can be read out.

第1実施形態では、FIFOデータ読出装置10が本発明のFIFOデータ読出装置に相当し、#1DPRAM30および#2DPRAM32が本発明の記憶装置に相当し、FIFO読出回路20が本発明の判定手段およびデータ処理手段として機能する。   In the first embodiment, the FIFO data reading device 10 corresponds to the FIFO data reading device of the present invention, the # 1 DPRAM 30 and # 2 DPRAM 32 correspond to the storage device of the present invention, and the FIFO reading circuit 20 includes the determination means and data of the present invention. It functions as a processing means.

また、S444、S482、S504およびS544の処理は、本発明の判定手段が実行する機能に相当し、S454、S456、S468、S514、S516、およびS530の処理は本発明のデータ処理手段が実行する機能に相当する。   The processing of S444, S482, S504, and S544 corresponds to the function executed by the determination means of the present invention, and the processing of S454, S456, S468, S514, S516, and S530 is executed by the data processing means of the present invention. Corresponds to function.

[第2実施形態]
図9に本実施形態のFIFOデータ読出装置40を示す。第2実施形態では、#1CPUおよび#2CPUがFIFO回路12から読み出したデータを書き込むDPRAM42は1個だけである。
[Second Embodiment]
FIG. 9 shows a FIFO data reading device 40 of this embodiment. In the second embodiment, there is only one DPRAM 42 to which the data read from the FIFO circuit 12 by the # 1 CPU and # 2 CPU are written.

第2実施形態では、2個のCPUがFIFO回路12から読み出したデータを1個のDPRAM42に書き込む場合、図10のS626および図11のS726に示すように、書き込み用の#1DPRAMポインタと#2DPRAMポインタとを加算したポインタ値で書き込みを行う。また、2個のCPUが1個のDPRAM42から読出しを行う場合、図10のS638および図11のS740に示すように、読出し用の#1DPRAMアドレスと#2DPRAMアドレスとを加算したアドレス値で読み出しを行う。その他の読出し処理については、実質的に第1実施形態と同様である。また、図10のS652の判定結果がNoの場合の処理は図6と実質的に同じであり、図11のS754の判定結果がNoの場合の処理は図8と実質的に同じであるから図示を省略する。   In the second embodiment, when data read from the FIFO circuit 12 by two CPUs is written to one DPRAM 42, as shown in S626 of FIG. 10 and S726 of FIG. 11, a # 1DPRAM pointer for writing and a # 2DPRAM Writing is performed with the pointer value obtained by adding the pointer. When two CPUs read from one DPRAM 42, as shown in S638 of FIG. 10 and S740 of FIG. 11, the reading is performed with an address value obtained by adding the # 1 DPRAM address for reading and the # 2 DPRAM address. Do. Other read processing is substantially the same as in the first embodiment. Also, the process when the determination result of S652 in FIG. 10 is No is substantially the same as FIG. 6, and the process when the determination result of S754 in FIG. 11 is No is substantially the same as FIG. Illustration is omitted.

CPUが2個の場合に、1個のDPRAM42において、先行CPUがFIFO回路12から読み出すデータを、2個のCPU用にそれぞれ設けた書込用のポインタを加算したアドレス位置に書き込んでいくことにより、先行CPUではない方のCPUが読み出すべきFIFO回路12のデータはDPRAM42に記憶される。   When there are two CPUs, in one DPRAM 42, the data read from the FIFO circuit 12 by the preceding CPU is written to the address position obtained by adding the write pointers provided for the two CPUs. The data of the FIFO circuit 12 to be read by the CPU that is not the preceding CPU is stored in the DPRAM 42.

そして、先行CPUではない方のCPUに送出するDPRAM42のデータは、先行CPUがFIFO回路12から読み出したデータであり、先行CPUはDPRAM42から読み出す必要がない。したがって、共通のDPRAM42から読み出すデータ数に応じて、2個のCPU用にそれぞれ設けた読出用のアドレスを加算した読出アドレスが更新されても、先行CPUではないCPUに、DPRAM42に記憶されているデータを読み飛ばすことなく送出できる。   The data in the DPRAM 42 sent to the CPU that is not the preceding CPU is data read by the preceding CPU from the FIFO circuit 12, and the preceding CPU does not need to read from the DPRAM 42. Therefore, even if the read address obtained by adding the read addresses provided for the two CPUs is updated according to the number of data read from the common DPRAM 42, it is stored in the DPRAM 42 in the CPU that is not the preceding CPU. Data can be sent without skipping.

第2実施形態では、2個のCPUがFIFO回路12から読み出したデータを書き込むDPRAM42を1個だけ設置しているので、第1実施形態よりもハードウェア量を低減できる。   In the second embodiment, since only one DPRAM 42 for writing data read from the FIFO circuit 12 by two CPUs is provided, the amount of hardware can be reduced as compared with the first embodiment.

第2実施形態では、FIFOデータ読出装置40が本発明のFIFOデータ読出装置に相当し、DPRAM42が本発明の記憶装置に相当し、FIFO読出回路50が本発明の判定手段およびデータ処理手段として機能する。   In the second embodiment, the FIFO data reading device 40 corresponds to the FIFO data reading device of the present invention, the DPRAM 42 corresponds to the storage device of the present invention, and the FIFO reading circuit 50 functions as the determination means and data processing means of the present invention. To do.

また、S614、S652、S714およびS754の処理は、本発明の判定手段が実行する機能に相当し、S624、S626、S638、S724、S726およびS740の処理は本発明のデータ処理手段が実行する機能に相当する。   The processing of S614, S652, S714, and S754 corresponds to the function executed by the determination means of the present invention, and the processing of S624, S626, S638, S724, S726, and S740 is the function executed by the data processing means of the present invention. It corresponds to.

[他の実施形態]
上記実施形態では、レーダによるスキャンデータを格納する1個のFIFO回路12から複数のCPUがデータを読み出す構成について説明したが、FIFO回路が格納するデータはレーダによるスキャンデータに限るものではなく、通信等により順次送信されるデータであればどのようなデータであってもよい。
[Other Embodiments]
In the above-described embodiment, the configuration in which a plurality of CPUs read data from one FIFO circuit 12 that stores scan data by radar is described. However, the data stored by the FIFO circuit is not limited to scan data by radar. Any data may be used as long as the data is sequentially transmitted by the above method.

また、FIFO回路が格納しているデータをコピーする記憶装置はDPRAMに限るものではなく、どのような記憶装置を用いてもよい。
また、上記第2実施形態では、1個のDPRAM42に対し、2個のCPUのそれぞれに読出用アドレスと書込用ポインタと設けた。これに対し、2個のCPUに共通の1個の書込用ポインタと読出用アドレスとを設け、書き込むデータ数および読み出すデータ数に応じて共通の書込用ポインタと読出用アドレスとを更新しても、1個のDPRAM42に対し、第2実施形態と実質的に同一の書き込み処理および読出し処理を実行できる。
Further, the storage device for copying the data stored in the FIFO circuit is not limited to the DPRAM, and any storage device may be used.
In the second embodiment, for one DPRAM 42, a read address and a write pointer are provided in each of the two CPUs. On the other hand, a common write pointer and read address are provided for two CPUs, and the common write pointer and read address are updated according to the number of data to be written and the number of data to be read. However, substantially the same write process and read process as in the second embodiment can be executed on one DPRAM 42.

このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。   As described above, the present invention is not limited to the above-described embodiment, and can be applied to various embodiments without departing from the gist thereof.

2、4:CPU、10、40:FIFOデータ読出装置、12:FIFO回路、20、50:FIFO読出回路(判定手段、データ処理手段)、30、32、42:DPRAM(記憶装置) 2, 4: CPU, 10, 40: FIFO data reading device, 12: FIFO circuit, 20, 50: FIFO reading circuit (determination means, data processing means), 30, 32, 42: DPRAM (storage device)

Claims (3)

複数のCPUからデータの読出しを要求され、先に格納したデータを先に読み出す1個のFIFO回路と、
前記CPUからの読出要求により前記FIFO回路から読み出されるデータが記憶される記憶装置と、
前記複数のCPUのうちどのCPUが、前記FIFO回路に格納されているデータの読出し数が最も多い先行CPUであるかを判定する判定手段と、
前記判定手段により判定された前記先行CPUからの前記FIFO回路に対する読出要求に対し、前記FIFO回路に格納されているデータを前記先行CPUに送出するとともに前記記憶装置に書き込み、前記先行CPU以外の他の前記CPUからの前記FIFO回路に対する読出要求に対し、前記記憶装置に記憶されているデータを送出するデータ処理手段と、
を備えることを特徴とするFIFOデータ読出装置。
One FIFO circuit that is requested to read data from a plurality of CPUs and reads the data stored first;
A storage device for storing data read from the FIFO circuit in response to a read request from the CPU;
Determining means for determining which CPU among the plurality of CPUs is a preceding CPU having the largest number of reading data stored in the FIFO circuit;
In response to a read request to the FIFO circuit from the preceding CPU determined by the determining means, the data stored in the FIFO circuit is sent to the preceding CPU and written to the storage device. Data processing means for sending out data stored in the storage device in response to a read request from the CPU to the FIFO circuit;
A FIFO data reading device comprising:
前記記憶装置は前記CPU毎に設けられ、
前記データ処理手段は、前記先行CPUに送出する前記FIFO回路のデータを前記先行CPU以外の他の前記CPUに対応する前記記憶装置にそれぞれ書き込み、前記先行CPU以外の他の前記CPUが前記FIFO回路に対して読み出しを要求する場合、前記FIFO回路に対して読み出しを要求する他の前記CPUに対応する前記記憶装置からデータを読み出して、前記FIFO回路に対して読み出しを要求する他の前記CPUに送出する、
ことを特徴とする請求項1に記載のFIFOデータ読出装置。
The storage device is provided for each CPU,
The data processing means writes the data of the FIFO circuit to be sent to the preceding CPU to the storage device corresponding to the CPU other than the preceding CPU, and the CPU other than the preceding CPU causes the FIFO circuit to When reading is requested to the FIFO circuit, data is read from the storage device corresponding to the other CPU that requests reading from the FIFO circuit, and the other CPU that requests reading from the FIFO circuit is requested. Send out,
The FIFO data reading device according to claim 1, wherein:
前記複数のCPUは2個であり、前記記憶装置は2個の前記CPUに共通して1個設けられ、
前記データ処理手段は、前記記憶装置からデータを読み出すときには読出アドレスが示す前記記憶装置のアドレス位置からデータを読出すとともに、読み出すデータ数に応じて前記読出アドレスを更新し、前記FIFO回路から読み出したデータを前記記憶装置に書き込むときには書込アドレスが示す前記記憶装置のアドレス位置に前記FIFO回路のデータを書き込むとともに、書き込むデータ数に応じて前記書込アドレスを更新する、
ことを特徴とする請求項1に記載のFIFOデータ読出装置。
The plurality of CPUs are two, and the storage device is provided in common for the two CPUs.
The data processing means reads data from the address position of the storage device indicated by a read address when reading data from the storage device, updates the read address according to the number of data to be read, and reads the data from the FIFO circuit. When writing data to the storage device, the data of the FIFO circuit is written to the address position of the storage device indicated by the write address, and the write address is updated according to the number of data to be written.
The FIFO data reading device according to claim 1, wherein:
JP2010156753A 2010-07-09 2010-07-09 FIFO data reading device Active JP5381919B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010156753A JP5381919B2 (en) 2010-07-09 2010-07-09 FIFO data reading device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010156753A JP5381919B2 (en) 2010-07-09 2010-07-09 FIFO data reading device

Publications (2)

Publication Number Publication Date
JP2012018606A JP2012018606A (en) 2012-01-26
JP5381919B2 true JP5381919B2 (en) 2014-01-08

Family

ID=45603801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010156753A Active JP5381919B2 (en) 2010-07-09 2010-07-09 FIFO data reading device

Country Status (1)

Country Link
JP (1) JP5381919B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02281356A (en) * 1989-04-24 1990-11-19 Matsushita Graphic Commun Syst Inc Shared memory device
JPH04319752A (en) * 1991-04-18 1992-11-10 Nec Corp System bus control system for information processor
JPH07262227A (en) * 1994-03-22 1995-10-13 Toshiba Corp Process input/output device and computer system
WO2003042811A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Efficient fifo communication using semaphores

Also Published As

Publication number Publication date
JP2012018606A (en) 2012-01-26

Similar Documents

Publication Publication Date Title
US7657696B2 (en) Method to detect NAND-flash parameters by hardware automatically
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
WO2016106935A1 (en) Flash memory controller and control method for flash memory controller
US9239742B2 (en) Embedded systems and methods for threads and buffer management thereof
KR20140035772A (en) A embedded multimedia card(emmc), emmc system including the emmc, and a method for operating the emmc
CN101794262B (en) I/O controller, and descriptor transfer method
KR101702374B1 (en) Multi processor device and inter process communication method thereof
US20100058001A1 (en) Distributed shared memory multiprocessor and data processing method
JP2006113689A (en) Bus bridge device and data transfer method
US7814254B2 (en) Mode setting method and system in hot plug of PCI device
US20080052424A1 (en) Data access system, data access apparatus, data access integrated circuit, and data access method
KR101793282B1 (en) Micro computer
JP5381919B2 (en) FIFO data reading device
US9152588B2 (en) Race-free level-sensitive interrupt delivery using fabric delivered interrupts
WO2016106933A1 (en) Sub-area-based method and device for protecting information of mcu chip
JP6319473B1 (en) Information processing device
JP2011070372A (en) Dma transmission control device
US20070186026A1 (en) System having bus architecture for improving CPU performance and method thereof
JP4983632B2 (en) Information communication system, access arbitration method thereof, and control program thereof
US20180336147A1 (en) Application processor including command controller and integrated circuit including the same
JP2545627B2 (en) CPU interface method
TWI243978B (en) Method and device for adjusting clock
JP2978913B2 (en) Method and system for controlling shared access to random access memory
JP2010140440A (en) Bus arbitration device
JP2008299747A (en) Usb host system and method for transferring transfer data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130916

R151 Written notification of patent or utility model registration

Ref document number: 5381919

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250