M-Labs(旧称:Milkymist Project )は、オープンハードウェアデバイスとソフトウェアを開発、製造、販売する企業です。同社は、無料のHDLソースコードを備えた商用システムオンチップであるMilkymist System-On-Chip (SoC)で知られています。 [ 1 ]
M-Labs Technologiesはさまざまなプログラムで使用されています。たとえば、NASAは通信ナビゲーションおよびネットワーク再構成可能テストベッド(Connect)実験を開発しましたが、これは元々Milkymist One用に開発され、 GNU General Public License (GPL)の条件の下で公開されたメモリコントローラを使用しています[ 2 ] [ 3 ] [ 4 ]。
このプロジェクトは、Chaos Communication Congress [ 5 ]、FOSDEM [ 6 ]、Libre Software Meeting [ 7 ]、Libre Graphics Meeting 2011 [ 8 ] [ 9 ]など、いくつかのオープンソースおよびハッキングカンファレンスで発表されました。また、Makeマガジンのブログ[ 10 ]にも掲載されました。Milkymist One ボードは、彼らの「Ultimate open source hardware gift guide 2010」に含まれています。[ 11 ]
Milkymistシステムオンチップは、汎用プロセッサとしてLatticeMico32 (LM32)コアを使用しています。これはRISC 32ビットビッグエンディアンCPUで、 M-Labsの貢献者によって後に開発されたメモリ管理ユニット(MMU)を備えています。GCCコンパイラでサポートされており、 RTEMSとμClinuxを実行できます。また、このマイクロプロセッサをターゲットとしたLLVMの実験的なバックエンドも存在します。
LM32マイクロプロセッサは、Flickernoiseビデオ合成ソフトウェアで使用されるテクスチャマッピングユニットとプログラマブル浮動小数点VLIWコプロセッサによって補助されています。また、Milkymist OneのすべてのI/Oデバイスをサポートするために、さまざまな周辺コアに囲まれています。システムオンチップの相互接続は、3つのブリッジバスを使用し、Wishboneプロトコルと、構成レジスタおよびSDRAMとの高性能DMAに使用される2つのカスタムプロトコルを組み合わせています。
Milkymistシステムオンチップのアーキテクチャは、プロジェクト創設者の修士論文レポートに大部分が文書化されている。[ 4 ] LatticeMico32コアを除くシステムオンチップのほとんどのコンポーネントは独自に開発され、 GNU GPLライセンスの下に置かれていた。
QEMUエミュレータを使用すると、別のコンピュータ上でMilkymist SoCバイナリ[ 12 ]を実行およびデバッグできます。
Milkymist Oneビデオシンセサイザーおよび再構成可能なコンピュータは、このプロジェクトによってリリースされた主要製品です。これは、元Openmoko の従業員によって設立されたスタートアップ企業であるQi Hardwareによって製造されました。[ 13 ]これは、2010 年のChaos Communication Congressで初めて販売され、 [ 14 ]残りのソフトウェアとFPGA設計の欠点を許容できる関心のあるハッカー、オープンソース活動家、および先駆者向けの「初期開発者キット」として販売されました。ケースとアクセサリを含む、より洗練されたバージョンが後に販売されました。
ミルキミストワン[ 15 ]の技術仕様は以下のとおりです。
プリント基板の設計ファイルとケースのCADファイルは、クリエイティブ・コモンズ表示-継承ライセンスの下で公開されました。
Flickernoiseは、Milkymist One上で動作するビデオ合成ソフトウェアです。MilkDropに大きく影響を受けており、視覚効果の定義とプログラミングには、 MilkDropと類似した、そしてほぼ互換性のあるスクリプト言語を使用しています。ただし、MilkDropが音楽プレーヤー内で自動的に動作するように設計されているのに対し、Flickernoiseはライブパフォーマンスでの使用を想定し、ビジュアルのインタラクティブ性に重点を置いています。このソフトウェアは、Milkymist Oneに接続されたカメラからのライブビデオストリームを変換する視覚効果のプログラミングに加え、OpenSoundControl、DMX512、MIDIコントローラーからの入力にも対応しています。
FlickernoiseはRTEMSリアルタイムオペレーティングシステム上で動作し、libpng、libjpeg、jbig2dec、OpenJPEG、FreeType、MuPDF、OpenSoundControlサポート用のlibloなど、このオペレーティングシステムに移植された多くのPOSIXソフトウェアライブラリを使用しています。合理化されたハードウェアプラットフォームとリアルタイムオペレーティングシステムの使用により、システムは同等のPCベースのセットアップよりも応答時間が短くなります。ユーザーインターフェイスはGenode FXツールキットのバリアントに基づいています。[ 16 ]
Flickernoiseもまたフリーソフトウェアであり、 GNU一般公衆利用許諾契約書(GPL)の条項に基づいてリリースされています。
2014年5月、M-LabsはNIST と提携し、量子情報実験用の次世代オープンソース制御システムを開発しました。 [ 17 ] [ 18 ] ARTIQ(Advanced Real-Time Infrastructure for Quantum physics)と呼ばれるこのシステムは、ソフトウェアとゲートウェアの組み合わせで、ナノ秒レベルのタイミング分解能とサブマイクロ秒の遅延で多数のデバイスを同期制御できると同時に、高レベルプログラミング言語の機能も維持しています。
2016年、M-LabsはARLおよびISEと提携し、オープンソースのハードウェアおよびソフトウェア無線プラットフォームであるARTIQ Sinaraを開発した。[ 19 ]