2015年7月8日水曜日

RTOS不要! マルチコア・プロセッサによる 新しい組込みソフトウェア開発技術!

32bit RISCコア が8コ以上搭載されたプロセッサなのに、C言語さえ知っていれば、

「初心者でも簡単に組込みソフトウェアが開発できて」
「モーター制御や音楽ストリーミング・データの処理が簡単にできて」
「組込み製品開発が楽しくなる」

そんなマルチコア・プロセッサと、その開発環境を紹介していきます。


参考URLs:
www.xmos.com
www.youtube.com/user/xmosmmcu




「リアルタイムOS (RTOS)」不要
コンテキスト・スイッチによるオーバーヘッドなし
パイプライン・フラッシュによるペナルティなし
組込みソフトウェア・タスクの並列実行
ソフトウェア・パイプライン設計が容易

マルチコア・プロセッサ xCORE は、組込みソフトウェア開発の生産性と品質を向上させるソリューション


このマルチコア・プロセッサ xCORE デバイスには、「リアルタイムOS」がハードウェア実装されています。これはスケジューラと呼ばれるもので、ラウンドロビン方式(フェアネス・アルゴリズム)で各CPUに割り当てられたタスクを実行していきます。

(実は、xCOREデバイスは、 マルチコア・プロセッサといっても、8コのCPU毎に1系統のパイプラインが存在し、8コのCPUがパイプラインを共有するアーキテクチャなのです。このパイプラインは500MHz で動作しています。下記の16 CPUのデバイスでは、2系統のパイプラインがあります



Source: www.xmos.com


コンテキスト・スイッチや割り込みの概念が無いアーキテクチャのため、非常に見通しの良い「組込みソフトウェア」が開発できます。
(「割り込み」機能に相当する機能があります。外部ピンからの入力に対応して処理を実行するイベント駆動型ソフトウェア処理です)

マルチコア・プロセッサ xCORE デバイス上の各CPUは、それぞれにレジスタ・セットを持っています。
共有メモリを使用せずに、CPU間でデータを受け渡しすることが可能です。共有メモリを使用する代わりに、直接、他CPUのレジスタにアクセスして、データの受け渡しができます。このCPU間でデータを送受信する命令が、ISAに定義されています。

割り算以外の命令は、全て 1 CPU cycle で処理が完了します。また、64ビットの乗算及び積和演算といったDSP演算命令を持ち、それらも 1 CPU cycle で処理が完了します。

これらの仕組みにより、各CPU上で動作する各タスク(ソフトウェア)をパイプライン化した「組込みシステム」を実現することができます。


CPU/タスクのパイプライン例:
入力 ---> [CPU1(Task1)] ---> [CPU2(Task2)] ---> [CPU3(Task3)] ---> [CPU4(Task4)] ---> 出力



特に音楽業界では、このマルチコア・プロセッサ xCORE デバイスの採用が進んでいます。
パイプライン化された各タスクが、リアルタイムに入力される音楽ストリーム・データを処理します。
これまでご紹介してきた特徴により、マルチ・チャネル、ハイレゾ、ミキサー、エフェクタ機能を、容易にソフトウェアで実現することができるのです。



シンプルで見通しのよいアーキテクチャは、美しく、バグが入り込む余地が少ないことは、皆様もご承知の通りです。

そんな組込みシステム(ソフトウェア)アーキテクチャを実現できるマルチコア・プロセッサ xCORE と、ソフトウェア開発方法について、次回より詳しく見ていきます。



ソフトウェア統合開発環境「xTIMEcomposer STUDIO」

(その他の投稿については、右上の「ページ」をご確認ください)

0 件のコメント:

コメントを投稿