JP2010049512A - 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ - Google Patents

高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ Download PDF

Info

Publication number
JP2010049512A
JP2010049512A JP2008213495A JP2008213495A JP2010049512A JP 2010049512 A JP2010049512 A JP 2010049512A JP 2008213495 A JP2008213495 A JP 2008213495A JP 2008213495 A JP2008213495 A JP 2008213495A JP 2010049512 A JP2010049512 A JP 2010049512A
Authority
JP
Japan
Prior art keywords
cpu
bus
fpga
transfer
memory
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
JP2008213495A
Other languages
English (en)
Inventor
Masahiko Yokoo
雅彦 横尾
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.)
Koyo Electronics Industries Co Ltd
Original Assignee
Koyo Electronics Industries Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koyo Electronics Industries Co Ltd filed Critical Koyo Electronics Industries Co Ltd
Priority to JP2008213495A priority Critical patent/JP2010049512A/ja
Publication of JP2010049512A publication Critical patent/JP2010049512A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】メモリ間のデータ転送に際してその転送に用いるバスをCPUバスから切り離すことで、メモリ間のデータ転送時におけるCPUバスの占有を無くし、CPUが別のメモリにアクセスできる一方、従来のDMA転送よりも高速にデータ転送ができる高速バス転送方式を提供する。
【解決手段】本方式は、制御プログラムを実行するCPUと、このCPUに第1バスを介して第1FPGAを接続し、上記第1FPGAには、一方のデータ転送対象である第1メモリを接続し、また、当該第1FPGAには、第2バスを介して第2FPGAを接続し、上記第2FPGAには、他方のデータ転送対象である第2メモリを接続してなり、上記第1、第2FPGAは、相互に、上記CPUの動作クロックよりも高速のクロックに同期動作して、上記第2バスを介して、第1、第2メモリ間でのデータ転送の制御を行う回路ブロックにコンフィグレーションされる。
【選択図】図1

Description

本発明は、複数のメモリ間でデータを転送する高速バス転送方式ならびにマルチCPU構成のプログラマブルコントローラに関するものである。
プログラマブルコントローラはシーケンスプログラムを実行してそれに接続された制御機器をシーケンス制御するようになっている。このようなプログラマブルコントローラにおいて、CPUモジュールにはモジュールバスを介して複数の入出力モジュール等の各種モジュールが接続されている。CPUモジュールに内蔵するCPUはシーケンスプログラムの実行により、例えば入出力モジュールに対してデータ送信要求を行い、入出力モジュールはこれに応答してセンサなどの入力デバイスデータをCPU(プロフェッサ)に送信し、CPUはアクチュエータなどの出力デバイスを制御する。
このようなプログラマブルコントローラにおいて、CPUを介在させずに、DMA(ダイレクト・メモリ・アクセス)コントローラにより、メモリ間でデータの受け渡しが行われる場合がある。
このDMAを図3を参照して説明する。図3において、1はCPU、2はバス、3はDMAコントローラ、4−6はメモリである。DMAコントローラ3は、CPU1に対してバス2のバスマスタとなる要求を出し、CPU1を停止させて、2つのメモリ5,6間でのデータ転送を行なう。DMAコントローラ3は、CPU1の代わりにバスマスタとしてレジスタに設定されたデータ転送先アドレス、データ転送元アドレスおよびデータ転送数に従って、例えば、メモリ5,6間のデータ転送を行う。DMA転送が完了すると、DMAコントローラ3はバスの制御権をCPU1へ返す。このようなDMA転送を行なうモードの1つに、バースト転送モードがある。このモードは、予めDMAコントローラ3に設定した転送バイト数の転送を完了するまで一度に転送するもので、この間、バスの制御権はDMAコントローラ3が持ち続ける。もう1つの方式は、サイクルスティールモードで、1ワード転送ごとにバス制御権をCPU1にあけ渡すものである。バースト転送モードは高速転送が可能であるが、転送期間中は、CPU1が停止したままとなる。また、サイクルスティールモードは、低速で動作しながらDMA転送を行ない、CPU1のバスアクセス時間やバス制御権を得る動作に時間が掛かり、処理の高速化ができない、という課題がある。さらに、従来では、DMA転送速度がCPU1の動作クロックCPUCLKに支配されるものであり、それ以上の高速化が難しいという課題がある。
以上から、従来では、DMA転送時にCPUバス2が占有され、CPU1は、DMA転送中に、例えば、別のメモリ4にアクセスすることができないこと、動作速度がCPUの動作クロックCPUCLKに支配されること、とによりさらなる高速化ができないという課題がある。
また、複数のCPUを用いたマルチCPU構成のプログラマブルコントローラでは、データのメモリ間高速転送を図る場合に、特に、上記課題を解決することが求められる。マルチCPUシステムでDMAコントローラを用いた特許文献1を下記する。
特開2004−326462号公報
本発明は、メモリ間のデータ転送に用いるバスをCPUが用いるCPUバスから切り離すことで、CPUが上記データ転送中においても、当該CPUバスを用いることを可能となして、プログラマブルコントローラにおける一層の高速化を可能とした高速バス転送方式を提供するものである。
本発明による高速バス転送方式は、制御プログラムを実行するCPUと、このCPUにCPUバスである第1バスを介して第1FPGAを接続し、上記第1FPGAには、一方のデータ転送対象である第1メモリを接続し、また、当該第1FPGAには、外部バスである第2バスを介して第2FPGAを接続し、上記第1、第2FPGAは、相互に、上記CPUの動作クロックよりも高速のクロックに同期動作して、上記第2バスを介して、上記第1、第2メモリ間でのデータ転送の制御を行う回路ブロックにコンフィグレーションされることで、上記CPUは、上記両FPGAがデータ転送の制御中においても上記第1バスを上記両FPGAにバス権をあけ渡すことなく、用いることを可能とした、ことを特徴とするものである。
上記転送モードは、特に限定されない。
本発明によると、上記第1、第2両メモリ間でのデータ転送の制御を、CPUの動作クロックには支配されず、その動作クロックよりも高速のクロックで行うことができるので、データ転送のより高速化が可能となり、また、上記第1、第2両メモリ間でのデータ転送時には、上記両FPGAにCPUバスである第1バスをあけ渡さずに済み、CPUは、当該第1バスを用いて、例えば、ワークメモリ等に対して必要なワークを行うことができ、CPUを用いたプログラマブルコントローラや、このプログラマブルコントローラを用いるシステム全体の高速制御化が可能となる。
本発明によれば、CPUバスの占有を無くして、メモリ間のデータ転送が可能であるので、CPUはCPUバスを用いて必要な作業が可能であり、また、メモリ間データ転送の制御動作がCPUクロックに支配されず、それよりも高速のクロックで行うことができるので、従来のDMA転送よりも高速にデータ転送ができる高速バス転送方式を提供することができる。
以下、添付した図面を参照して、本発明の実施の形態に係る高速バス転送方式およびこの方式によるマルチCPU構成のプログラマブルコントローラを説明する。
図1は本実施の形態のマルチCPU構成のプログラマブルコントローラの構成を示し、図1において、10,20はCPUモジュール、30はモジュールバス、40は入出力モジュールである。CPUモジュール10,20は、モジュールバス30に接続されている。CPUモジュール10,20は、それぞれ、制御プログラムとしてシーケンスプログラムを実行するCPU11,21を内蔵する。このCPU11,21の内部バスB11,B21(第1バス)にシステムプログラムを格納するシステムメモリ12,22、シーケンスプログラムを格納するプログラムメモリ13,23、CPU11,21の作業等に用いるワークメモリ14,24、フラッシュメモリ等からなるコンフィグレーションデータメモリ15,25が接続されている。コンフィグレーションデータは、コンフィグレーションすべき回路構成のデータである。そして、この内部バスB11,21には、コンフィグレーションデータがコンフィグレーションされるFPGA16,26が接続されている。
モジュールバス30には複数の入出力モジュール40が接続されている。この入出力モジュール40は、FPGA40a、メモリ40bを内蔵している。
上記FPGA16,26,40aは、モジュールバス30に接続されている。
FPGA16,26,40aは、SRAM型のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array)である。FPGA16,26,40aは同構成であり、FPGA26について説明する。FPGA26は、LUT(ルックアップテーブル)とフリップフロップとで構成される基本セルを縦横配列したものであり、LUTを書き換えることにより内部のハードウェアロジックを変更することができるようになっている。こうしたFPGA26は、論理ブロックを記述する回路ブロック情報をこれらに読み込ませることで、内部の論理ブロックと論理ブロックとの間の結線を自由に構成することで、図2で示すブロックを構成することができる。
すなわち、FPGA26は、図2で示すように、入出力ブロック26aと、バス調停/転送制御ブロック26bと、メモリブロックとしてのデュアルポートRAMブロック26cと、ゲートブロック26dと、入出力ブロック26eと、それらブロック間を接続する配線と、を有する論理ブロック構成にコンフィグレーションされている。FPGA26は、コンフィグレーションデータメモリ25に記憶された論理ブロック構成のデータを読み込んで所望の論理ブロック構成にコンフィグレーションされる。そして、FPGA26は外部バスB23(第2バス)を介してモジュールバス30(第2バス)に接続されている。デュアルポートRAMブロック26cは、内部にページという一定単位の記憶領域を複数持って、全体の記憶領域が形成されたリングバッファ構造を有し、また、ポートを2つ有している。デュアルポートRAMブロック26cはいずれのポートからもデータの書き込み/読み出しが可能である。書き込みと読み出しはポインタにより制御され、この制御により、リングバッファを構成する。
バス調停/転送制御ブロック26bは、CPU21が共有メモリ27にアクセス中のときに、CPUモジュール10のCPU11から共有メモリ27へのデータ書き込み、読み出しのアクセス要求があると、CPU21のアクセスをCPU11のそれよりも優先するか、アクセス先着順とするか、CPU11のアクセスをCPU21のそれよりも優先するかの判断を行う。この判断により、ゲートブロック26dの開閉を制御して共有メモリ27に対するCPU11,21のアクセスのためのバス調停を行うようになっている。
また、このCPU11が共有メモリ27にアクセス中のときに、CPU21から共有メモリ27へのデータ書き込みのためのアクセス要求があると、バス調停/転送制御ブロック26bは、CPU21からのデータをデュアルポートRAMブロック26cに書き込ませる制御を行い、CPU11の共有メモリ27へのアクセスが終了すると、デュアルポートRAMブロック26cに書き込んであるデータをゲートブロック26dを制御して、共有メモリ27に再度、書き込ませる。
このバス調停および書き込み制御を、図1、図2を参照して説明する。図1、図2で点線(B)はCPU11から共有メモリ27へのアクセス経路、点線(A)はCPU21からデュアルポートRAMブロック26cへのデータ書き込み経路、一点鎖線(A)はデュアルポートRAMブロック26cから共有メモリ27へのデータの再書き込み経路を示す。二点鎖線(C)はFPGA26によるCPU21を介在させない高速バス転送の経路を示す。
FPGA26は、CPU11が共有メモリ27にデータ書き込みのアクセスであるときに、CPU21から共有メモリ27にデータ書き込みのアクセス要求があると、CPU21からの書き込みデータをデュアルポートRAMブロック26cに書き込ませる。そして、CPU11の共有メモリ27へのアクセスが終了すると、FPGA26は、デュアルポートRAMブロック26cに書き込んであるデータをゲートブロック26dを介して共有メモリ27に書き写させる。
上記バス調停においては、各CPU11,21それぞれの内部バスB11,B21はバス調停から切り離されており、各CPU11,21は内部バスB11,B21を使用して制御を実行することができる。そのため、例えば、CPU21は、内部バスB21を用いてワークメモリ24にアクセスしてワークを行って負荷のデータ処理等ができると共に、CPU21は、バス調停を行う必要がなくなるので、バス調停に要していた時間を負荷のデータ処理に使用することができるようになり、負荷の高速制御が可能となる。
次に、本実施の形態の特徴を説明すると、バス調停/転送制御ブロック26bは、上記バス調停以外に、詳細は略するがクロックに同期してバス転送(データ転送)するバースト転送方式でバス転送制御を行うことができるようになっている。すなわち、バス調停/転送制御ブロック26bは、共有メモリ27を一方のデータ転送対象であるメモリとし、入出力モジュール40のメモリ40bを他方のデータ転送対象であるメモリとし、CPUモジュール20内のFPGA26と、入出力モジュール40内のFPGA40aとが、CPUモジュール20内のCPU21の介在無しで、上記CPUモジュール20の動作クロックCPUCLKよりも高速のクロックFPGACLKに同期動作して、モジュールバス30を介して、二点鎖線(C)で示す経路で、両メモリ27,40b間でのデータ読み出し、データ転送、およびデータ書き込みの制御を行う。このことにより、CPUモジュール20内のCPU21は、上記のDMA制御中においても内部バス(CPUバス)B21をFPGA26に渡すことなく、用いることが可能となる。すなわち、従来では、例えば、バースト転送モードでは、DMAコントローラに設定した転送バイト数の転送を完了するまで一度に転送する間、バス制御権はDMAコントローラが持ち続け、その間、CPUは停止状態となり、また、サイクルスティールモードでも、1ワード転送ごとにバス制御権をCPUにあけ渡すので、CPUのバスアクセス時間やバス制御権を得る動作に時間が掛かり、処理の高速化ができなかったが、実施の形態では、内部バス(CPUバス)B21のバス制御権をFPGA26に渡さずに済む分、処理の高速化が可能である。
以上説明したように、本実施の形態では、例えば、共有メモリ27と入出力モジュール40内のメモリ40bとの間でのデータ読み出し、転送、書き込みの転送の制御をCPUモジュール20内のCPU21の動作クロックCPUCLKには支配されず、その動作クロックCPUCLKよりも高速のクロックFPGACLKで行うことができるので、より高速化が可能となり、また、共有メモリ27と入出力モジュール40内のメモリ40bとの間でのデータ転送時に内部バスB21が占有されずに済み、CPU21は、内部バスB21を用いて、例えば、ワークメモリ24等に対して必要なワークを行うことができ、より高速動作化が可能となる。
図1は本発明の実施形態に係る高速バス転送方式によるプログラマブルコントローラの構成を示す図である。 図2はFPGAのコンフィグレーション構成を示す図である。 図3は従来のDMA転送方式によるプログラマブルコントローラの構成を示す図である。
符号の説明
10,20 CPUモジュール
11,21 CPU
12,22 システムメモリ
13,23 プログラムメモリ
14,24 ワークメモリ
15,25 コンフィグレーションデータメモリ
16,26 FPGA
26a 入出力ブロック
26b バス調停/転送制御ブロック
26c デュアルポートRAMブロック(メモリブロック)
26d ゲートブロック
26e 入出力ブロック
17,27 共有メモリ(第1メモリ)
30 モジュールバス
40 入出力モジュール
40a FPGA
40b メモリ(第2メモリ)
B11,B21 内部バス
B12,B22 メモリバス
B13,B23 外部バス

Claims (2)

  1. 制御プログラムを実行するCPUと、このCPUに第1バスを介して第1FPGAを接続し、上記第1FPGAには、一方のデータ転送対象である第1メモリを接続し、また、当該第1FPGAには、第2バスを介して第2FPGAを接続し、上記第2FPGAには、他方のデータ転送対象である第2メモリを接続してなり、
    上記第1、第2FPGAは、相互に、上記CPUの動作クロックよりも高速のクロックに同期動作して、上記第2バスを介して、上記第1、第2メモリ間でのデータ転送の制御を行う回路ブロックにコンフィグレーションされることで、上記CPUは、上記両FPGAがデータ転送の制御中においても上記第1バスを用いることを可能としたことを特徴とする高速バス転送方式。
  2. それぞれが制御プログラムを実行するCPUを内蔵した複数のCPUモジュールを備え、各CPUモジュールは、制御プログラムを実行するCPUと、このCPUに第1バスを介して第1FPGAを接続し、上記第1FPGAに一方のデータ転送対象である第1メモリを共有メモリとして接続する一方、各CPUモジュールそれぞれの第1FPGAを、モジュールバス上の第2FPGAに接続すると共に、上記第2FPGAに他方のデータ転送対象である第2メモリを接続してなり、
    上記各CPUモジュール内の第1FPGAと上記モジュールバス上の第2FPGAとは、上記各CPUの動作クロックよりも高速のクロックに同期動作して、上記モジュールバスを介して、第1、第2メモリ間でのデータ転送の制御を行う回路ブロックにコンフィグレーションされることで、上記CPUは、上記両FPGAがデータ転送の制御中においても上記第1バスを用いることを可能とした、ことを特徴とするマルチCPU構成のプログラマブルコントローラ。
JP2008213495A 2008-08-22 2008-08-22 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ Pending JP2010049512A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008213495A JP2010049512A (ja) 2008-08-22 2008-08-22 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008213495A JP2010049512A (ja) 2008-08-22 2008-08-22 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ

Publications (1)

Publication Number Publication Date
JP2010049512A true JP2010049512A (ja) 2010-03-04

Family

ID=42066544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008213495A Pending JP2010049512A (ja) 2008-08-22 2008-08-22 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ

Country Status (1)

Country Link
JP (1) JP2010049512A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117094261A (zh) * 2023-10-19 2023-11-21 山邮数字科技(山东)有限公司 基于fpga的瑞利散射传感信号处理***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117094261A (zh) * 2023-10-19 2023-11-21 山邮数字科技(山东)有限公司 基于fpga的瑞利散射传感信号处理***
CN117094261B (zh) * 2023-10-19 2024-01-09 山邮数字科技(山东)有限公司 基于fpga的瑞利散射传感信号处理***

Similar Documents

Publication Publication Date Title
US7907469B2 (en) Multi-port memory device for buffering between hosts and non-volatile memory devices
US8949550B2 (en) Memory-centered communication apparatus in a coarse grained reconfigurable array
JP2004110785A (ja) メモリコントローラ
US20080178024A1 (en) Multilayered bus system
JP2017045491A (ja) 半導体メモリ、メモリシステム
US9720879B2 (en) Reconfigurable circuit having rows of a matrix of registers connected to corresponding ports and a semiconductor integrated circuit
JP6294732B2 (ja) データ転送制御装置及びメモリ内蔵装置
JPH08221319A (ja) 半導体記憶装置
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
JP2010049512A (ja) 高速バス転送方式およびマルチcpu構成のプログラマブルコントローラ
JP2010049511A (ja) 共有メモリへのアクセス方式およびマルチcpu構成のプログラマブルコントローラ
US8244929B2 (en) Data processing apparatus
US9837133B1 (en) Address arithmetic on block RAMs
US7636817B1 (en) Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system
US8074096B2 (en) Semiconductor integrated circuit, memory system, memory controller and memory control method
WO2014103235A1 (ja) 演算装置及び演算方法
JP2004127305A (ja) メモリ制御装置
JP2010049510A (ja) バス調停方式およびマルチcpu構成のプログラマブルコントローラ
US20100153610A1 (en) Bus arbiter and bus system
US8764874B2 (en) Arrangement, method, integrated circuit and device for routing requests
US20240168893A1 (en) Multi-port, multi-protocol varied size ram controller
US11023390B1 (en) Resizing circuitry
KR20120061563A (ko) 반도체 메모리 장치 및 그 동작 방법
JP4539481B2 (ja) マルチプロセッサシステム
US20130013820A1 (en) Method for initializing registers of peripherals in a microcontroller