Last Update 2019/06/11

マルチメディア処理向けDSP
TMS320C6000活用ハンドブック

日本テキサス・インスツルメンツ株式会社 服部 基保 著
B5変型判 288ページ
CD-ROM付き
定価2,860円(税込)
JAN9784789830706
2007年6月15日発行
[絶版2013.7.31] TMS320C6000活用ハンドブック
大変恐縮ですが,こちらの商品は品切れ絶版となりました.

 本書では,Texas Instruments社のマルチメディア処理向けDSP((Digital Signal Processor)「C6000 DSPシリーズ」を題材に,プロセッサ/開発ツール,DSPコア,ペリフェラル,開発の流れなどを,アプリケーション事例もあげながら,解説しています.C6000シリーズは,10ドルを切る単価と多くのペリフェラル搭載を両立させたDSPから,1GHz動作の高性能DSPまでの広いラインナップをもつDSPです.本書付属CD-ROMには,サンプル・プログラム,開発ツール「Code Composer Studio」試用版,日本語マニュアルなども収録しています.

目次

はじめに

第一部 C6000 DSPと開発環境の概要

第1章 これまでのディジタル信号処理とディジタル・シグナル・プロセッサの成り立ち
 1-1 ディジタル信号処理とは?
 1-2 アナログ回路からディジタル信号処理へ
 1-3 積和演算を高速に実行するディジタル・シグナル・プロセッサ
 1-4 初期のディジタル・シグナル・プロセッサ(DSP)とは?
 1-5 最近のディジタル信号処理は積和演算だけでない!
 Column…1-A DSPって何の略?

第2章 TIのディジタル・シグナル・プロセッサとC6000 DSPコアのコンセプト
 2-1 用途別に三つのシリーズ ― C2000,C5000,C6000
 2-2 C6000 DSPコアの誕生の時代とそのコンセプト
 2-3 性能向上の実現方法 ― 並列化とVLIWの採用
 2-4 Cコンパイラの生成効率
 Column…2-A Cコンパイラの生成効率

第3章 C6000シリーズの歴史と概要
 3-1 1990年代のC6000シリーズ
 3-2 業界初の1GHz DSP:C6414T/15T/16T
 3-3 さまざまなアプリケーションで使われる浮動小数点DSP:C6711/12/13
 3-4 画像入出力ポート搭載DSP:DM640/DM641/DM642
 3-5 C64xシリーズの廉価版DSP:C6410
 3-6 複数使用も容易な1GHz動作のDSP:C6455
 3-7 最新浮動小数点DSP:C6720/22/26/27
 3-8 ディジタルAVコミュニケーション・プラットホーム:DaVinci
 Column…3-A ペリフェラルの略称
 Column…3-B 標準規格の略称
 Column…3-C C64xコアのDSPなのになぜ,DM型番が付いているのか?

第4章 C6000 DSPの開発環境
 4-1 DSPソフトウェア開発用インフラ技術「eXpressDSP」
 4-2 統合開発環境Code Composer Studio
 4-3 リアルタイムOS:DSP/BIOS
 4-4 DSPスタータ・キット
 4-5 各種DSP 評価用ボード
 4-6 DSPアルゴリズム・スタンダード(xDAIS)
 4-7 リファレンス・フレームワーク
 4-8 各種ライブラリ
 4-9 サード・パーティ・ネットワーク


第二部 C6000 DSPの詳細とハードウェア設計

第5章 C6000 DSPシリーズのコア詳細
 5-1 C6000シリーズ:五つのコア
 5-2 一般的なプロセッサの動作は?
 5-3 VelociTIアーキテクチャ vs. VLIWアーキテクチャ
 5-4 C62xコア動作
 5-5 C62xコアの命令セットとその特徴
 5-6 C64xコアは何が高速に演算できるの?
 5-7 C64x+コアはRISCコアと同じ
 5-8 C67xコアは倍精度浮動小数点まで演算できる
 5-9 C67x+コアは浮動小数点演算能力が向上
 5-10 C6000コアの割り込み処理
 5-11 C64x+コアの割り込み機能を更新/例外処理も追加:C64xコアの割り込みとの相違点
 5-12 C6000 DSPのパイプラインとディレイ・スロット
 Column…5-A SUBC命令を使った割り算の実現方法
 Column…5-B 固定小数点フォーマット(Qフォーマット)って?
 Column…5-C なぜ,浮動小数点デバイスのコアにC67xと7番が付いているのか?

第6章 周辺デバイスと接続するさまざまなペリフェラル
 6-1 C6000 DSPはさまざまなペリフェラルを搭載
 6-2 メモリ接続用のポートは?:EMIF/AEMIF/DDR2メモリ・コントローラ
 6-3 外部メモリ・インターフェース(EMIF)と非同期メモリ・インターフェース(AEMIF)
 6-4 DDR2用のインターフェースは専用
 6-5 画像/映像のための入出力ポート:Video PortとVPSS
 6-6 DM64x DSP搭載ビデオ・ポート
 6-7 ビデオ・プロセッシング・サブシステム(VPSS)はリサイザやOSDも可能
 6-8 オーディオ用CODECと接続 McBSP/ASP/McASP
 6-9 McBSPとASP
 6-10 マルチ・チャネル・オーディオ・シリアル・ポート(McASP)
 6-11 Ethernet接続 Ethernet MAC/GigaEMAC
 6-12 ホストと接続するには? HPI/PCI
 6-13 ホスト・ポート・インターフェース(HPI)
 6-14 PCIインターフェース
 6-15 高速シリアル通信 Rapid IOでのマルチ・プロセッシング
 6-16 Rapid IO以外でのマルチ・プロセッシング
 6-17 汎用I/Oピンはたくさんある
 Column…6-A 色空間RGB とYCbCrについて
 Column…6-B PCIバスについて

第7章 C641x/C671x DSPの内部メモリ/キャッシュとEDMA
 7-1 キャッシュの概念ができた背景
 7-2 C64xコア搭載デバイスはすべて2レベルのキャッシュ方式
 7-3 キャッシュが有効に働く場合と働かない場合
 7-4 ほかのC6000シリーズのキャッシュについて
 7-5 DMAとは?
 7-6 C64x EDMAの仕組み
 7-8 Quick DMA(QDMA)って?
 7-9 EDMAを使った例
 7-10 EDMAで一番重要な点:効率良く転送するためには?
 7-11 C64x DSPとC671x DSPのEDMAの相違点

第8章 最新DSP:C645x/DM644x/C672x DSPの中身は違う
 8-1 C645x/DM644x DSPの中身は,これまでとまったく別物/スイッチ・セントラル・リソース(SCR)
 8-2 C64x+コアの周辺:メガ・モジュール
 8-3 C645x/DM644x DSP搭載EDMA3
 8-4 EDMA3の転送例
 8-5 C672x DSPは変則フラット・メモリとスイッチ・セントラル・リソースを採用
 8-6 C672x DSPはEDMAの代わりにdMAXを採用
 Column…8-A C6000 DSPの型名って規則があるの??

第9章 ハードウェア設計をする上で重要な点
 9-1 シグナル・インテグリティ
 9-2 コンデンサ/電源も重要
 9-3 電源の立ち上がりとRESET
 9-4 PLL回路
 9-5 重要なピンの処理
 9-6 ボード上で開発/デバッグする時のボード処理(JTAGヘッダ)
 Column…9-A DSPを用いて開発する前に参照すると便利なリンク集
 Column…9-B JTAGとは??


第三部 ソフトウェア開発と最適化

第10章 ソフトウェア開発の流れとCode Composer Studio(CCS)の基本的な機能
 10-1 ソフトウェア開発の流れ
 10-2 シミュレータ,エミュレータ,DSKの違いの詳細
 10-3 CCS Setup
 10-4 GEL(General Extension Language)ファイル
 10-5 CCSを立ち上げる前に
 10-6 プロジェクトを作成する
 10-7 C言語プログラムから実行ファイルができあがるまでの流れ
 10-8 コンパイルして実行ファイルを作る
 10-9 コンパイラ/リンカのオプションと二つのデフォルト・ビルド設定
 10-10 Connectし,プログラムをロード/実行する
 10-11 任意の位置にプログラムを止める:ソフトウェア・ブレークポイント
 10-12 デバッグする
 10-13 実行した順番に戻す機能:シミュレータのRewind機能
 10-14 もっと高度にDSPコアを停止させるためには?
 10-15 CCS3.2以降のブレークポイント・マネージャ
 10-16 高度なハードウェア・ブレークポイント:AET(アドバンスト・イベント・トリガ)
 10-17 複数のCPUを同時にデバッグするには:パラレル・デバッグ・マネージャ(PDM)
 10-18 プログラムの実行時間の計測方法
 Column…10-A CCSのHelpはお勧め
 Column…10-B エミュレータを使ってCCSが正常に立ち上がらない場合には??
 Column…10-C CCSの日本語表示とCode Wrightエディタの機能
 Column…10-D リンカのマップ・ファイルとは?
 Column…10-E バージョンの違うCコンパイラを使うには??
 Column…10-F LoadとGo Mainを毎回したくないとき
 Column…10-G 画面の配置はそのまま残したい:ワークスペースのセーブ/ロード
 Column…10-H ベンチマーク結果は毎回変わる?
 Column…10-I 二つのCCSレイアウト

第11章 簡単にできるプログラム高速化
 11-1 C言語プログラムをC6000 DSPへ移植するときの注意事項
 11-2 高速化する部分は?
 11-3 最適化オプション
 11-4 キャッシュON
 11-5 データ型キャストによる高速化
 11-6 エイリアシングのないコードにして,-mtオプションを付けよう
 11-7 ループ部分のデータ依存関係の明確化(const/restrict宣言)
 11-8 アラインメントの明確化
 11-9 整数の割り算の高速化
 11-10 浮動小数点数 float vs. double
 11-11 Print文やFile I/Oは遅い
 11-12 各種ライブラリを使用する
 11-13 ループ部分の高速化アドバイスを行うコンパイラ・コンサルタント機能
 Column…11-A CCS3.1以降とCCS3.0以前のnear/farに関するCコンパイラのオプション違い
 Column…11-B ファイルごとにコンパイル・オプションが付けられる
 Column…11-C Cコンパイラに情報を教えよう

第12章 ループ部分の最適化テクニック
 12-1 ソフトウェア・パイプラインとは?
 12-2 ソフトウェア・パイプライン化した実際のプログラム構成とその特徴
 12-3 C64x+ DSPのSPLOOP命令
 12-4 Cコンパイラのソフトウェア・パイプライン作成方法
 12-5 ソフトウェア・パイプラインの確認
 12-6 ソフトウェア・パイプライン化をしない場合の高速化
 12-7 ソフトウェア・パイプライン化を試みたときの情報
 12-8 ソフトウェア・パイプライン化を試みたときの高速化
 12-9 ソフトウェア・パイプライン化したときのコード・サイズ削減のためのオプション
 12-10 ここからは上級編の最適化
 12-11 ループ回数は非常に重要!
 12-12 ループ中のポインタ計算はシンプルに
 12-13 二重ループの考え方
 12-14 固定小数点変換
 12-15 Intrinsics関数を使ってみよう
 12-16 アセンブリ・オプティマイザ

第13章 チップ・サポート・ライブラリを使ってペリフェラルを動作させよう
 13-1 チップ・サポート・ライブラリ(CSL)とそのバージョン
 13-2 CSLを使ってタイマを動作させよう:CSL使用方法
 13-3 CSLを使ったプログラムをコンパイルしてみよう
 13-4 CSL使用例:DSPスタータ・キットを使って,音を出してみよう

第14章 DSP/BIOSとは?
 14-1 DSP上で動作するリアルタイムOSの必要性
 14-2 DSP/BIOSのGUI画面を開いてみよう
 14-3 DSP/BIOSでシステムの設定をし,コンパイルしよう
 14-4 4種類のスレッドをもつリアルタイム・スケジューラ
 14-5 スケジューラの必要性
 14-6 HWIを使って,音を出してみよう
 14-7 SWI:ソフトウェア割り込みを使用する
 14-8 TSK:タスク
 14-9 同期の仕組み ― セマフォ
 14-10 スケジューラを使ってDSK上で音を出そう
 14-11 DSP/BIOS付属のさまざまなリアルタイム解析ツール
 14-12 DSP/BIOSのカーネル状態を表示 ― Kernel Object View
 14-13 ほかのDSP/BIOSのさまざまな機能
 Column…14-A C6000 DSPで動作するほかのOS
 Column…14-B DSP/BIOS 5.2では,GUIでの設定とテキストでの設定の両方が可能に
 Column…14-C OS用語の意味
 Column…14-D DSP/BIOSスケジューラが起動し始めるまでのプログラムの流れ

第15章 システム全体での最適化
 15-1 キャッシュ・コヒーレンスの問題
 15-2 プログラム/データ配置で性能が変わる
 15-3 QDMAを使って,L2キャッシュ・ミスをなくそう
 15-4 できるかぎり内部RAMに格納しよう
 15-5 HWIルーチンが実行されない ― 割り込みミス

第16章 DSPを起動するコードを作成する方法
 16-1 DSPのブート方法
 16-2 C6416T-DSKのFlashROMに書き込んでブートさせる方法
 16-3 PCI/HPIブートをするときにホストCPUがDSPへ転送するデータを作成する方法
 Column…16-A DSKのFlashROMを出荷時の内容に戻すには??

 付録A C6000 DSPシリーズでの最新デバイス DM643x/C642x

 付録B CD-ROMの使い方

索引

●本書付属のCD-ROMについてのご注意
本書付属のCD-ROMの貸与または改変,複写複製(コピー)はできません.詳しくはこちらをご覧ください.