JP2008071285A - プロセッサ間におけるデータ送受信システム - Google Patents

プロセッサ間におけるデータ送受信システム Download PDF

Info

Publication number
JP2008071285A
JP2008071285A JP2006251534A JP2006251534A JP2008071285A JP 2008071285 A JP2008071285 A JP 2008071285A JP 2006251534 A JP2006251534 A JP 2006251534A JP 2006251534 A JP2006251534 A JP 2006251534A JP 2008071285 A JP2008071285 A JP 2008071285A
Authority
JP
Japan
Prior art keywords
data
fpga
cpld
cpu
internal register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006251534A
Other languages
English (en)
Inventor
Nobuyuki Uchikawa
信幸 内川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Kokusai Electric Inc
Original Assignee
Hitachi Kokusai Electric 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 Hitachi Kokusai Electric Inc filed Critical Hitachi Kokusai Electric Inc
Priority to JP2006251534A priority Critical patent/JP2008071285A/ja
Publication of JP2008071285A publication Critical patent/JP2008071285A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】CPUとDSPとの間でデータの受け渡しを行う場合にプログラマブルな制御が可能で使用状況等に柔軟性を有するデータ送受信システムを提供する。
【解決手段】CPU11とDSP12間にCPLD13及びFPGA14を設ける。CPU11は、任意のタイミングでCPLD13の内部レジスタ131にデータを書込んだ後、そのデータをクリアする。CPLD13は、内部レジスタ131に書込まれたデータをFPGA14の内部レジスタ141へ書込む。DSP12は、サンプリング周期でFPGA14の内部レジスタ141のデータを読出して処理し、結果をFPGA14の内部レジスタ142に書込む。FPGA14は、内部レジスタ142に書込まれたデータをCPLD13の内部レジスタ132に書込む。CPU11は、CPLD13の内部レジスタ132から任意のタイミングでデータを読出し、自身が行った書込み処理の結果を取得する。
【選択図】 図2

Description

本発明は、コンピュータシステムにおいて、2つのプロセッサ例えばCPU(Central Processing Unit)とDSP(Digital Signal Processor)との間でデータを送受信するためのプロセッサ間におけるデータ送受信システムに関する。
コンピュータシステムでは、一般的に複数のプロセッサを搭載しており、各プロセッサ間、例えばCPUとDSPとの間でデータの受け渡しを行う場合がある。CPUとDSPとの間でデータの受け渡しを行う場合、従来では、共有メモリとしてデュアルポートRAM(DPRAM)を用いて大きなデータの送受を行う方法や、CPU−DSP間を直結し、I/Oポートを用いて小さいデータの送受を行う方法がある。
デュアルポートRAMを用いてデータの送受を行う方法では、デュアルポートRAMの種類にもよるが、デュアルポートRAMをそれぞれのシステム用のデータ領域に区切り、それぞれに対して外部からの要因を基にお互いが同期をとりながらそれぞれの領域に対してアクセスしてデータの送受信を行う場合と、デュアルポートRAMに一方のポートが読み出しを行っている間に他方のポートが書込みをする場合や、両方のポートが同時に同一ロケーションに書込みを行うといった、同時アクセスに対するコンフリクト(conflict)の処理機能、例えば割込みロジック、セマフォロジックなどが備わっている場合、お互いがランダムなタイミング(非同期)で、RAMロケーションを意識することなくデュアルポートRAMにアクセスしてデータの送受信を行う場合の二通りの使い方がある。
また、本発明に関連する公知技術として、一方の系のCPUからデュアルポートRAMを介して入力したデータに基づいて他の系のDSPが動作を開始するシステムにおいて、他の系のDSP側にメモリチェック用のFPGA(Field Programmable Gate Array)を設け、DSPの動作開始前に上記CPUとFPGAの両系からデュアルポートRAMをチェックできるようにしたメモリチェックシステムが知られている(例えば、特許文献1参照。)。
特願2002−149504号公報
上記のようにCPUとDSPとの間でデータの受け渡しを行う場合、共有メモリとしてデュアルポートRAMを用いることで、大きなデータを送受することが可能になるが、アクセスを制御するドライバや、割込みコントローラなど、他のデバイスを用いて制御する必要がある。
また、I/Oポートを用いてデータの送受信を行う場合は、CPUとDSP間を信号線で直結してしまうため、I/Oポートとしか利用することができず、データの送受はできるが用途が限定されてしまう、という問題がある。
本発明は上記の課題を解決するためになされたもので、2つのプロセッサ間をCPLD(Complex Programmable Logic Device)とFPGAを経由して接続し、CPLD及びFPGAよって任意に制御でき、かつプログラマブルな制御が可能なプロセッサ間におけるデータ送受信システムを提供することを目的とする。
本発明は、第1のプロセッサと第2のプロセッサ間との間でデータの送受信を行うデータ送受信システムにおいて、
前記第1のプロセッサに接続される第1及び第2のレジスタを備えたCPLDと、前記CPLDと前記第2のプロセッサとの間に設けられる第1及び第2のレジスタを備えたFPGAと、
前記第1のプロセッサは、前記第2のプロセッサへ送信するデータを任意のタイミングで前記CPLDの第1のレジスタを経由して前記FPGAの第1のレジスタへ書込む手段と、前記CPLDの第2のレジスタに保持されたデータを一定周期または任意のタイミングで読出す手段とを備え、
前記第2のプロセッサは、前記FPGAの第1のレジスタに保持されているデータをサンプリング周期で読出して処理すると共に、前記第1のプロセッサへ送信するデータを任意のタイミングで前記FPGAの第2のレジスタを経由して前記CPLDの第2のレジスタに書込む手段とを備えたことを特徴とする。
本発明によれば、第1のプロセッサと第2のプロセッサとの間にプログラマブルなCPLD及びFPGAを設けてデータの受け渡しを行わせることにより、使用状況、範囲、用途に柔軟性を持たせることができ、また、プロセッサの高速化などによりアクセスタイミングが変わった場合でも、容易に対応することが可能となる。
以下、図面を参照して本発明の一実施形態を説明する。
図1は、本発明の一実施形態に係るプロセッサ間におけるデータ送受信システムの構成を示すブロック図である。この実施形態では、第1のプロセッサとしてCPU11を使用し、第2のプロセッサとしてDSP12を使用した場合を例として示している。
そして、上記CPU11とDSP12との間にCPLD(Complex Programmable Logic Device)13及びFPGA(Field Programmable Gate Array)14が設けられ、信号線15a〜15cにより接続される。
上記CPLD13は内部レジスタ131、132を備え、FPGA14は内部レジスタ141、142を備えている。上記CPLD13の内部レジスタ131及びFPGA14の内部レジスタ141は、CPU11からDSP12へデータを送信する場合に使用される。また、CPLD13の内部レジスタ132及びFPGA14の内部レジスタ142は、DSP12からCPU11へデータを送信する場合に使用される。
上記CPLD13は、デバイスそのものに回路を保持するもので、SPLD(Simple PLD)のAND−ORアレイ構造を複数個組み合わせて大規模化を図っており、構造が簡単で高速動作が可能である。
また、FPGA14は、一般的に内部構造がRAMになっており、高性能で複雑な回路を構成でき、大規模化に適している。
上記CPLD13及びFPGA14は、何れもプログラム可能なものであり、内部アーキテクチャにおいて、CPLDは「AND−ORのプロダクト・ターム」、FPGAは「ルックアップ・テーブル(メモリ素子)」という点で異なっている。
上記の構成において、CPU11はデータの書込み処理を行う場合、CPU11のI/Oポートに接続されているCPLD13に対して、任意のタイミングでI/Oポートにアクセスし、CPLD13の内部レジスタ131にデータを書込む。そして、CPU11は、上記書込み処理後直ぐに、上記CPLD13の内部レジスタ131に再度アクセスし、先程書込んだデータを0(ゼロ)にクリアする。
また、CPU11からの読出し処理の場合、CPU11は一定の周期または任意のタイミングでI/Oポートにアクセスし、CPLD13の内部レジスタ132に保持されているデータ読出す。
CPLD13は、CPU11から内部レジスタ131にデータが書込まれた場合、0(ゼロ)から1以上の値(ビットが立った状態)に変化するのをトリガにして、CPU11からの書込みがあったことを認識し、内部レジスタ131に書込まれたデータをFPGA14に渡す。また、CPU11からの読出しに対しては、DSP12から書込まれたデータがFPGA14を経由してCPLD13に渡され、CPU11が一定の周期または任意のタイミングで読出し処理を行う。
FPGA14は、CPU11からのデータ書込みがあった場合は、CPLD13から書込みデータを受信し、自身の内部レジスタ141に保持しておく。また、FPGA14は、DSP12からのデータ書込みがあった場合は、別の内部レジスタ142にデータを保持し、CPLD13へ渡す。上記FPGA14は、FPGA14とDSP12との間のアクセスタイミングを調整する。
DSP12は、CPU11からのデータ書込みがあった場合は、DSP12自身がサンプリング周期でFPGA14の内部レジスタ141の保持データをチェックしながら読出し、その読出しデータに対する処理を実行する。そして、DSP12から処理結果等のデータの書込みを行う場合は、任意のタイミングでFPGA14の内部レジスタ142にデータを書込む。
次に上記実施形態において、CPU11〜DSP12〜CPU11までのアクセス手順について図2を参照して説明する。
CPU11はデータの書込み処理を行う場合、CPLD13の内部レジスタ131の内容が0(ゼロ)(ビットが落ちている状態)になっているか否かを確認し、0(ゼロ)である場合は、そのままデータを書込み、非0(ゼロ)であった場合は、一度0(ゼロ)を書込んだ後、データの書込みを行う。更にCPU11は、上記書込み処理後直ぐに、先程書込んだCPLD13の内部レジスタ131に再度アクセスし、その内容をクリア、すなわち0(ゼロ)を書込んでビットを落とす(ステップS1)。
CPLD13は、上記内部レジスタ131のビットが落ちている状態からビットが立った状態に変化するのをトリガとして、CPU11からの書込みがあったことを認識し、内部レジスタ131に書込まれたデータをFPGA14へ出力して内部レジスタ141に書込む(ステップS2)。その後、CPLD13の内部レジスタ131は、上記したようにCPU11によって0(ゼロ)にクリアされる。
FPGA14は、上記CPLD13により内部レジスタ141に書込まれたデータを保持する。DSP12の内部では、サンプリング周期でFPGA14の内部レジスタ141の保持データをチェックして読出す(ステップS3)。DSP12がFPGA14の内部レジスタ141のデータを読出すと、FPGA14が自身の内部レジスタ141をクリアする。
DSP12は、FPGA14の内部レジスタ141から読出したデータに従って内部処理を行い、その処理結果などを任意のタイミングでFPGA14の内部レジスタ142に書込む(ステップS4)。
FPGA14は、DSP12からのデータが内部レジスタ142に書込まれると、そのデータをCPLD13へ出力して内部レジスタ132に書込む(ステップS5)。
CPU11は、上記ステップS1でCPLD13の内部レジスタ131に書込み処理を行った後、一定の周期、または任意のタイミングで、CPLD13の内部レジスタ132の保持データを読出す(ステップS6)。すなわち、CPU11は、CPLD13の内部レジスタ131にデータを書込んだ後、CPLD13の内部レジスタ132に保持されているDSP12の処理結果を読出すことで、自身が行った書込み処理の戻り値(結果)を取得する。
上記のようにCPU11から一定周期、または任意のタイミングで、CPLD13の内部レジスタ131に対してクリアされている状態、すなわちビットが落ちている状態から、データを書込んでビットが立っている状態(非ゼロ)にすることによって、CPLD13の内部レジスタ131の保持データがFPGA14を経由してDSP12に伝達される。そして、それに対するDSP12からの処理結果を同じく一定周期、または任意のタイミングでCPLD13における書込み用とは別の読出し用の内部レジスタ132から読出すことで、CPU11〜DSP12〜CPU11までの一連の流れが成立する。
CPLD13で、対CPU11間のインタフェースを取り決め、FPGA14がFPGA14(CPLD13)−DSP12間のアクセスのタイミングを制御している。
プロセッサ間でデータの受け渡しを行う場合、ハードウェアの制限及び変更がない場合は、CPU11−DSP12間にデュアルポートRAMを設けたり、あるいは直結してしまうこともできるが、ハードウェアの制限及び変更がある場合は、上記実施形態に示したようにプログラマブルなハードウェアデバイスを用いることで、ハードウェアの制限及び変更に伴うハードウェア修正の手間を吸収することができる。
また、使用用途によっても柔軟に対応できるように、ある程度インタフェース及びタイミングが確定している状況である場合は、CPLD13のみの制御とし、起動毎に可変するような状況である場合は、FPGA14に対してリコンフィグすることで対応可能となる。
上記実施形態に示したように、CPU11−DSP12間にプログラマブルなCPLD13及びFPGA14を設けてデータの受け渡しを行わせることにより、CPU11−DSP12間を直結した場合より、使用状況、範囲、用途に柔軟性を持たせることができる。また、DSP12の高速化による変更などにより、DSP12自身が変更になった場合など、FPGA14−DSP12間のアクセスタイミングが変わった場合には、FPGA14をリコンフィグすることで、対応することが可能となる。更に、CPU11−DSP12間のデータ送受信をI/Oポートと同様に単純にすることもできるし、プログラマブルなハードウェアデバイス(CPLD/FPGA)を駆使して、細かい制御をすることも可能である。
なお、上記実施形態において、CPU11に代えてDSPを使用し、DSP12に代えてCPUを使用する場合においても、上記実施形態と同様にして実施し得るものである。
また、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できるものである。
本発明の一実施形態に係るプロセッサ間におけるデータ送受信システムの構成を示すブロック図である。 同実施形態におけるCPU〜DSP〜CPUまでの一連のアクセス手順を説明するための図である。
符号の説明
11…CPU、12…DSP、13…CPLD、131、132…内部レジスタ、14…FPGA、141、142…内部レジスタ、15a〜15c…信号線

Claims (1)

  1. 第1のプロセッサと第2のプロセッサとの間でデータの送受信を行うデータ送受信システムにおいて、
    前記第1のプロセッサに接続される第1及び第2のレジスタを備えたCPLDと、前記CPLDと前記第2のプロセッサとの間に設けられる第1及び第2のレジスタを備えたFPGAと、
    前記第1のプロセッサは、前記第2のプロセッサへ送信するデータを任意のタイミングで前記CPLDの第1のレジスタを経由して前記FPGAの第1のレジスタへ書込む手段と、前記CPLDの第2のレジスタに保持されたデータを一定周期または任意のタイミングで読出す手段とを備え、
    前記第2のプロセッサは、前記FPGAの第1のレジスタに保持されているデータをサンプリング周期で読出して処理すると共に、前記第1のプロセッサへ送信するデータを任意のタイミングで前記FPGAの第2のレジスタを経由して前記CPLDの第2のレジスタに書込む手段とを備えたことを特徴とするプロセッサ間におけるデータ送受信システム。
JP2006251534A 2006-09-15 2006-09-15 プロセッサ間におけるデータ送受信システム Pending JP2008071285A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006251534A JP2008071285A (ja) 2006-09-15 2006-09-15 プロセッサ間におけるデータ送受信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006251534A JP2008071285A (ja) 2006-09-15 2006-09-15 プロセッサ間におけるデータ送受信システム

Publications (1)

Publication Number Publication Date
JP2008071285A true JP2008071285A (ja) 2008-03-27

Family

ID=39292787

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006251534A Pending JP2008071285A (ja) 2006-09-15 2006-09-15 プロセッサ間におけるデータ送受信システム

Country Status (1)

Country Link
JP (1) JP2008071285A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010079992A2 (en) * 2009-01-09 2010-07-15 Samsung Electronics Co., Ltd. Method and apparatus for setting sampling point of low voltage differential signal transmitted between field programmable gate arrays
CN103645998A (zh) * 2013-12-17 2014-03-19 广东工业大学 一种基于fpga与dsp通过分时段访问sdram进行高速通信的方法
CN104950773A (zh) * 2015-06-26 2015-09-30 中国航天科工集团第三研究院第八三五七研究所 混合型智能数据采集处理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010079992A2 (en) * 2009-01-09 2010-07-15 Samsung Electronics Co., Ltd. Method and apparatus for setting sampling point of low voltage differential signal transmitted between field programmable gate arrays
WO2010079992A3 (en) * 2009-01-09 2010-11-04 Samsung Electronics Co., Ltd. Method and apparatus for setting sampling point of low voltage differential signal transmitted between field programmable gate arrays
CN103645998A (zh) * 2013-12-17 2014-03-19 广东工业大学 一种基于fpga与dsp通过分时段访问sdram进行高速通信的方法
CN104950773A (zh) * 2015-06-26 2015-09-30 中国航天科工集团第三研究院第八三五七研究所 混合型智能数据采集处理装置

Similar Documents

Publication Publication Date Title
KR102398515B1 (ko) 버스간 통신들의 브리징
US20020008540A1 (en) Multi-master multi-slave system bus in a field programmable gate array (FPGA)
CN112543925A (zh) 用于使用专用低延迟链路的多个硬件加速器的统一地址空间
KR101056153B1 (ko) 배리어 동작들의 조건부 브로드캐스트를 위한 방법 및 장치
US7307450B2 (en) Programmable logic block for designing an asynchronous circuit
US7696781B1 (en) Methods and apparatus for control and configuration of programmable logic devices
JP2009527829A (ja) 複数のプロセッサコア用の共通アナログインターフェイス
WO2013081683A1 (en) Circuit for and method of enabling the transfer of data by an integrated circuit
JP2005515548A (ja) 設定可能同期または非同期バスインタフェース
JP2008071285A (ja) プロセッサ間におけるデータ送受信システム
US8443129B1 (en) Method and apparatus for implementing a data bus interface
US10255207B2 (en) Method and apparatus use with interrupts
US20020046307A1 (en) A data buffer
US10437743B1 (en) Interface circuitry for parallel computing architecture circuits
US7590788B2 (en) Controlling transmission on an asynchronous bus
US8764874B2 (en) Arrangement, method, integrated circuit and device for routing requests
US5555433A (en) Circuit for interfacing data busses
JP2013009044A (ja) 制御装置、処理装置、処理システム、制御プログラム
Ackermann et al. Enabling self-reconfiguration on a video processing platform
US20230033822A1 (en) Method for configuring multiple input-output channels
JP2006133924A (ja) 制御装置
KR950009426A (ko) 타이콤(ticom)시스템의 입출력 처리기 내에서의 데이타 경로 제어장치
JPS5969858A (ja) Lsiプロセツサ
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
CN117421268A (zh) 一种互联系统、设备及网络

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090818

RD04 Notification of resignation of power of attorney

Effective date: 20120529

Free format text: JAPANESE INTERMEDIATE CODE: A7424

A977 Report on retrieval

Effective date: 20120614

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20120626

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20121023

Free format text: JAPANESE INTERMEDIATE CODE: A02