XMOS コーナ 簡易スペアナづくりにも挑戦 オーディオ/モータ/信号処理…タスク数個のゴリゴリリアルタイム用途にピタッ! 並列処理プロセッサ xCORE 徹底研究 第3回 MCU でも FPG Aでも ない ヘンテ コッ !? ソフトでリアルタイムI/O を簡単に実現するメカニズム 前回は,英国 XMOS 社がリリースした,複数の 32 ビット CPU コアを内蔵してプログラムを並列処理す る組み込み向けマルチコア・プロセッサ xCORE の アーキテクチャと,専用プログラム言語 XC による 並列プログラムの記述方法を解説しました.xCORE は 1 デバイスあたり 4 個から最大 32 個の CPU コアを 内蔵して並列処理させるものであり,それらのコア を効率的にどのように使いこなすかに悩むことは大 変楽しいものです.入手性のよい安価な評価ボード 「startKIT」が リ リ ー ス さ れ て お り 誰 で も 簡 単 に xCORE アーキテクチャに触れることができます. 今回は,xCORE の特徴の一つである,ハードウェ ア機能をソフトウェアで柔軟に実現する機能と,そ の XC 言語での記述方法について解説します. 周辺機能に対する基本思想 ● 参考:一般のマイコンの場合…ソフトで実現 すると正確なタイミングを実現しにくい 一般のマイコンで CPU によるソフトウェアを使っ てタイミングに応じた処理をする場合,周辺機能のタ イマなどから受ける割り込み要求に同期させたり,周 辺機能のレジスタをポーリングするなどで同期させた りするなどの方法があります.しかし,割り込みによ る方法の場合,割り込み応答時間の長さにより高精度 なタイミング同期ができず,また優先順位が高い割り 込みサービスを処理中だと,さらに応答時間が長くな る問題が出て,あまり正確なタイミング処理ができま せん.レジスタをポーリングする方法では,待ち時間 が長くなりマイコン内の唯一の CPU リソースを無駄 にしてしまう問題があります. ● ハードウェア制御に不可欠なタイミングの概念 ● シリアルやタイマなどの簡単な周辺機能はソフ トで実現する xCORE というデバイスは,複数の 32 ビット CPU コ ア を 内 蔵 し た マ ル チ コ ア な 組 み 込 み 向 け MCU (Micro Controller Unit)です.各コアは DSP(Digital Signal Processor)機能も含んでおり,そのトータル 性能は,8 コア内蔵品で最高 500MIPS,16 コア内蔵品 で最高 1000MIPS にのぼり,非常に高性能なマイコン です. 一方,周辺機能としては,USB 2.0(Universal Serial Bus)や A-D 変換器は内蔵していますが,一般的なマ イコンが持つシリアル通信機能や波形入出力用タイマ 機能といった,比較的シンプルな論理回路で実現でき る機能は内蔵されていません.シリアルやタイマなど は,CPU コアとタイミング制御付きの I/O 機能を使っ てソフトウェアで実現するのが基本的な考え方になっ ています. この考え方によりxCORE は,FPGA(Field Progra mmable Gate Array)のようなハードウェアに対する フレキシビリティも提供できるのです. 2015 年 3 月号 圓山 宗智 外部の入出力信号を相手にするシリアル通信機能や タイマ機能は,一般に論理回路というハードウェアで 実現しており,その動作にはクロック信号が必要で す.そのクロックを基準にして,外部からの入力信号 をサンプリングしたり,外部への出力信号の変化タイ ミングを決めたりします. xCORE で外部の入出力信号を相手にするハード ウェア機能を実現する場合も,XC 言語によるソフト ウェアで記述しますが,クロックに対応するタイミン グ概念を簡単かつ効率的に実現する方法を提供してく れています.以下,その実例をいくつか説明します. ソフトからタイミング制御するキモ! 10ns 刻みハードウェア・タイマ ● 時計機能を実現するハードウェア・タイマ xCORE ア ー キ テ ク チ ャ に は,10ns 刻 み で カ ウ ン ト・アップするカウンタ(ハードウェア・タイマ)が 内蔵されており,それを基準時計としてソフトウェア から簡単にアクセスできます. ハードウェア・タイマ を XC 言語から読み取る方 法をリスト 1(a)に示します.timer という型の変数 第1回 アーキテクチャと開発環境(2014年12月号) 第2回 K&Rベース拡張C言語XCによる並列処理プログラミング入門(2015年1月号) 145
© Copyright 2024