忍者ブログ

ひま人の活動報告

ゲームやアニメなど、手当たり次第いろいろ綴っていきます。ジャンルがバラバラなのでカテゴリー別で見てください。カテゴリ毎に新着記事を表示します。

HOME • Admin • Write • Comment
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ブログランキング・にほんブログ村へ
応援お願いします。
DMA転送についてのアセンブリ編

アセンブラでのDMA転送は
チャネルにパラメータを書き込むことで実行できる。

前回、DMA転送の関数
void spu_mfcdma64(volatile void *ls_addr,
                                       unsigned int ea_h,
                                       unsigned int ea_l,
                                       unsigned int  dma_size,
                                       unsigned int tag_id,
                                       unsigned int cmd);

この関数とまったく同じ動作させるためには
チャネル16番から21番にパラメータを書き込む。

チャネル16番はLSのアドレス
チャネル17番はメインメモリのアドレスの上位アドレス
チャネル18番は下位アドレス
チャネル19番はDMA転送サイズ
チャネル20番はタグ
チャネル21番はDMA転送の種類(送信なら32、受信なら64)
関数の引数順番ととチャネルの番号が対応しています。

spu_writech(imm, 1 ra);
spu_mfcstat(unsigned int type)
では
チャネル22番から24番まで書き込む。
チャネル22番はタグマスク
(チャネル20番に書き込んだタグの値の左に1bitシフトした値)
チャネル23番はタグステータスの更新リクエストの書き込み
( 0なら無条件、1ならどれか一つでも完了していれば更新、2なら全部が終了したら更新)
チャネル24番はタグステータスを読み込み

書き込み命令と読み込み命令は
wrch   ch,    ra
rdch    rt,     ch


ロードストアとか細かな命令について全く説明してなかったので
アドレス計算とかは、また今度と言うことで・・・
今回は、それぞれのレジスタ100番以降にパラメータが格納されていることということにしといてください。
各レジスタの中身ついては、適当にお任せします。

wrch   $ch16,   $100
wrch   $ch17,   $101
wrch   $ch18,   $102
wrch   $ch19,   $103
wrch   $ch20,   $104
wrch   $ch21,   $105

wrch   $ch22,   $106
wrch   $ch23,   $107
wrch   $2,         $ch24


記述だけならこれだけ書けば動作します。
タグの値何かは、
ビットシフトなのでレジスタの値をいじるか、
即値でいれるなら、それはそれで問題ない。
なので、パラメータは格納されているとしても各レジスタに全部入っていれば
最短でこれだけ記述すればいい。

アドレス計算なんかは、ローテートやシフト命令によって計算できるので、
また機会があれば書きたいとは思います。
その前に、ロード・ストアについても書いたほうがいいかな。

拍手

PR
ブログランキング・にほんブログ村へ
応援お願いします。
この記事へのコメント
Name
Title
Mail
URL
Color
Comment
Emoji Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Pass   コメント編集用パスワード
 管理人のみ閲覧
この記事へのトラックバック
トラックバックURL:
広告
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新コメント
[12/10 ゴリックス]
[11/27 まよ]
[11/27 まよ]
[05/13 山野たけ]
[04/23 HGG]
ブログ内検索
ついったー
GAME
Rewrite 初回限定版
Rewrite 初回限定版
メーカー:KEY
参考価格:¥9,240
価格:¥6,506
OFF : ¥2,734 (30%)


モンスターハンターポータブル 3rd
モンスターハンターポータブル 3rd
メーカー:カプコン
参考価格:¥5,800
価格:¥4,602
OFF : ¥1,198 (21%)


魔界戦記ディスガイア4(通常版) 特典 堕天使フロン プロダクトコード付き特製カード&トレーディングカード「ヴァイスシュヴァルツ」限定PRカード付き
魔界戦記ディスガイア4(通常版) 特典 堕天使フロン プロダクトコード付き特製カード&トレーディングカード「ヴァイスシュヴァルツ」限定PRカード付き
メーカー:日本一ソフトウェア
参考価格:¥7,140
価格:¥5,661
OFF : ¥1,479 (21%)

広告
ランキング
クリックお願いします。 ブログランキング・にほんブログ村へ ブログランキング【くつろぐ】
バーコード
アクセス解析
Copyright ©  -- ひま人の活動報告 --  All Rights Reserved
Designed by CriCri / Material by もずねこ
忍者ブログ  / Powered by [PR]