タグ

ブックマーク / www.kumikomi.net (7)

  • FPGAの応用領域が拡大,ビッグ・データや金融取引,Webデータ処理のインフラ技術に

    FPGA(Field Programmable Gate Array)は,ユーザが所望の処理をハードウェア・ロジックとして構築できる,プログラム可能なハードウェア・デバイス(LSIチップ)です.大規模LSIの機能検証や高速伝送装置のデータ転送処理,画像処理機器のフロントエンド処理など,特定の演算処理を高速化するハードウェア・コンポーネントとして活用されています. しかし近年,半導体プロセスの微細化に伴って,一つのFPGAチップ上に実装可能な回路規模が増大し(図1),また最高動作周波数も上昇しています.そのため,従来はOS上で動作するソフトウェア・プログラムとして記述されてきたアプリケーション処理を,まるごとFPGA上に実装することが可能となってきました. 図1 FPGAの回路規模の増大 編集部注:「Xilinx Virtex-8?」の部分は,あくまでも筆者の推測です. FPGAはプログラム

  • 「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで

    組み込みソフトウェアには,一般のアプリケーション・ソフトウェアにはない考えかたが存在する.ここでは,「組み込み」ならではのいくつかの概念について解説する.例えば,プログラムのランタイム構造やスタートアップ・ルーチン,割り込み,配列の実体,同期/非同期,volatile,ハードウェアなどを説明する.  (編集部) - 目次 - プログラムはどのように動くのか main関数以前(スタートアップ) array[-1]はなぜ動くのか(配列の実体) volatileを指定したくなるとき 時間の制御問題(同期と非同期呼び出し) ポーリングと割り込み エッジ・トリガとレベル・センス メモリとポート ここでは,組み込みソフトウェア開発者をめざす新人の皆さんに理解していただきたい考えかたについて解説します.ここで解説する内容は,一般的なC言語やソフトウェア開発の解説書にはあまり説明されていないものです(もし

  • TCP/IPプロトコル・スタックの省メモリ開発事例(前編)  ――ミドルウェアの追加で既存の16ビット・マイコンがネット対応マイコンに変身

    TCP/IPプロトコル・スタックの省メモリ開発事例(前編)  ――ミドルウェアの追加で既存の16ビット・マイコンがネット対応マイコンに変身 浅井 敬,佐藤 剛,坂直史 安価な16ビット・マイコンは機器制御などに広く使われている.そのマイコンにTCP/IPプロトコル・スタックを搭載すれば,マイコンはネットワーク対応マイコンに変身し,ネットワーク経由で機器の情報を取得したり,設定を変更したりすることができる.稿では,TCP/IPプロトコル・スタックの16ビット・マイコンへの実装について解説する.メモリ制約の範囲内に収まるように,必要な機能を取捨選択し,処理を簡略化して,最終的にはROM 8Kバイト以内,RAM 0.5Kバイト以内に収まるTCP/IPプロトコル・スタックを作った.  (編集部) 16ビット・マイコンは各種機器の制御用途に広く使われています.具体的には,外部で発生した情報をセン

  • ハードウェアを意識したプログラミングの基礎(前編)

    デバイス・ドライバを作るためには,まずハードウェアをアクセスする手法を知らなければならない.エンディアンやアラインメントを意識したり,CPUのバージョンによる命令の違いなどを考慮する必要がある.さらに最近では,命令そのものを追加できるソフト・マクロのCPUコアなども登場している.そこで,ここではCPUとデバイス(メモリ)の間のエンディアンについて説明する.  (編集部) 稿では,筆者がこれまでに行ったLinuxを用いた開発の中で得た経験を元に,Linuxなどのデバイス・ドライバを開発・移植するときにハマりやすい点を紹介したいと思います.内容は大きく分けて,以下の四つになります. エンディアン I/Oアクセス ハードウェア,CPU,コンパイラ アラインメント 特に断りがなければ,ここではポインタ・サイズが32ビットのCPUを対象にします.具体的には,x86,ARM,MicroBlaze,P

  • スタックと割り込み ―― プログラムが動く仕組みを知ろう

    ここでは,C言語で開発したプログラムがシステム上で動く際に必要な,「スタック」と「割り込み」と呼ばれる仕組みについて説明する.「スタック」は関数の作業領域としてメモリの一部を利用する仕組みである.「割り込み」は実行の流れを切り替えるための仕組みである.どちらもC言語の文法ではないが,プログラムが動く仕組みを知っておくと,特にデバッグで役に立つ. (筆者) 稿では,スタックと割り込みの概念や動作原理について説明します.スタックと割り込みは,Cプログラムの文法上は見えないにもかかわらず,プログラム実行の上で重要な役割を果たしています. 1.プログラムの実行の流れを知ろう ここでは,順次実行,分岐,関数呼び出しという3種類のC言語プログラムを例に,プログラムの実行の流れを見ていきます.まずは,順次実行と分岐について,C言語ソース・レベル,およびメモリ上の動作レベルで見ていきましょう. ● 順次

  • ハードウェアの仕組みとソフトウェア処理 ―― マイコンの動作を理解する

    ここでは,マイコンが動作する仕組みについて解説します.まず,ソフトウェアを実行するためのハードウェアの仕組みを説明します.次に,ソフトウェアで多くの処理を実現できる理由を,ソフトウェアの基道を示しながら説明します.(編集部) 1. ハードウェアの基動作を理解する マイコンは,メモリに置かれたソフトウェアの命令コードを取り出して実行します.命令コードの取り出しと実行を担当するのがCPUです.そのために,CPUには命令を取り出す機構と,取り出した命令を実行する機構が置かれています. 最近のCPUの高速化技術では,命令コードの取り出しから実行までの一連の動作を細分化して連続的に実行したり,複数の命令を並列に処理することによって,CPUの処理効率を大幅に向上しています. ● 命令コードの取り出しから実行の流れ CPUは,あらかじめメモリに並べられた命令を順番に取り出して,内容を解読して,実行し

  • 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御

    今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御 木村啓二 組み込みシステムやシステムLSIにおいて,対称型や非対称型のマルチプロセッサ・システムを設計,利用する機会が増えてきた.ところで,実際にマルチプロセッサがどのように動作しているかご存じだろうか? 稿では,マルチプロセッサ・システムにおけるCPUやOSの動作,アプリケーションを開発するときの注意点などについて解説する.  (編集部) 組み込み分野では,一つのチップ上に複数のCPUコアやDSPコアを組み込んだシステム(いわゆるマルチコア)を設計する機会が増えてきました.一方,複数のプロセッサで並列処理を行うマルチプロセッサ・システムは1960年代から科学技術計算やサーバ用途の分野で研究されており,広く実用化されています. サーバ用途のマルチプロセッサ・システムは,同じプロセッサを複数

  • 1