Mercurial > hg > Papers > 2009 > tkaito-thesis
changeset 14:25c22b752f7a
commit
author | tkaito@nw0534.st.ie.u-ryukyu.ac.jp |
---|---|
date | Wed, 25 Feb 2009 23:19:18 +0900 |
parents | a8ce76309100 |
children | e7e2f73c4109 |
files | presen/pre1.html presen/pre1.html~ presen/ui/default/bodybg.gif presen/ui/default/pretty.css |
diffstat | 4 files changed, 118 insertions(+), 115 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/pre1.html Wed Feb 25 20:58:09 2009 +0900 +++ b/presen/pre1.html Wed Feb 25 23:19:18 2009 +0900 @@ -21,6 +21,20 @@ <link rel="stylesheet" href="ui/default/opera.css" type="text/css" media="projection" id="operaFix" /> <!-- S5 JS --> <script src="ui/default/slides.js" type="text/javascript"></script> +<style type="text/css"> +body { +font-size: 100%; +} +p.ex8 { font-size: 2.0em; } +p.ex7 { font-size: 1.9em; } +p.ex6 { font-size: 1.8em; } +p.ex5 { font-size: 1.7em; } +p.ex4 { font-size: 1.6em; } +p.ex3 { font-size: 1.5em; } +p.ex2 { font-size: 1.4em; } +p.ex1 { font-size: 1.3em; } +p.ex0 { font-size: 1.0em; } +</style> </head> <body> @@ -37,12 +51,10 @@ <div class="presentation"> - <div class="slide"> <center> <br><br> -<p><font size="10" color="#000000">並列プログラミングを用いた<br>ゲームフレームワークの設計と実装</font></p> -<br> +<p class="ex8">並列プログラミングを用いた<br>ゲームフレームワークの設計と実装</p> <p><font size="5" color="#000000">琉球大学 工学部情報 工学科 055734A</font></p> <p><font size="5" color="#000000">多賀野海人</font</p> <p><font size="5" color="#000000">指導教官:河野真治</font</p> @@ -51,104 +63,73 @@ </div> <div class="slide"> +<h1>研究背景と目的</h1> +<center> +<p class="ex4"><font color="#509050">完成度の高いゲームを作成したい!</font></p> +</center> +<ul> +<li><font size="5" color="#000000">Cell を用いたゲームプログラミングは学部生には困難である。</font></li> +<br> +<font size="6" color="#000000"> +<ul> +<li>問題点1:Cell 特有の技術</li> +<li>問題点2:ゲーム開発用の Framework</li> +<li>問題点3:学生実験の期間が短い</li> +</ul> +</font> +<br> +<font size = "5"> + 本研究では、学生実験の期間内で Cell を活かした完成度の高いゲームを作成できる環境構築を目的としている +</font> +</div> + + +<div class="slide"> <h1>目次</h1> <ul> -<li>研究背景と目的</li> -<li>Cell, SPE を用いたプログラミング</li> +<font size="6" color="#000000"> +<li>SPE を用いたプログラミング</li> <li>Rendering 部分の高速化</li> -<li>Ceriumを用いたゲーム開発</li> <li>今後の課題</li> +</font> +</ul> +</div> + +<div class="slide"> +<h1>SPE を用いたプログラミング</h1> +<ul> +<li><p class="ex4">DMA (Direct Memory Access)</p></li> +<ul> +<li><p class="ex0">SPE にはメモリが 256KB しか搭載されていない。</p></li> +<li><p class="ex0">直接メインメモリにアクセスすることはできない。</p></li> +<li><p class="ex0">メインメモリにアクセスするには DMA を用いる。</p></li> +</ul> +<font size="5" color="#0000FF"> +<ol> +<li>SPU プログラム → MFC : DMA 転送命令</li> +<li>MFC → DMA 転送開始 <br> (この間、SPE プログラムは停止しない)</li> +<li>DMA 転送の終了を待つ場合、SPE プログラム内で転送の完了を待つ。</li> +</ol> +</font> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> <div class="slide"> -<h1>研究背景と目的</h1> +<h1>SPE を用いたプログラミング</h1> <ul> -<br> -<li><font size="5" color="#509050">高性能なコンピュータを用いて完成度の高いゲームを作成したい!</font></li> -<li><font size="4" color="#000000">並列処理を用いたゲームプログラミングは、学部生にとって困難である。</font></li> -<li><font size="4" color="#000000">データ転送やタスクの生成等のこれまで学んだことのない技術が多く存在する。</font></li> -<li><font size="4" color="#000000">学生実験では、ゲームの完成度を上げることが難しい。</font></li> -<br> -<font size = "5"> - 本研究では、PlayStation3上でゲームプログラミングを行う際に、<br> -Cellの性能を活かしながら、学生実験での完成度の高いゲーム開発<br> -を目的としている。 -</font> -<!-- 研究背景と目的 -<font size="5"> - ゲームプログラミングにおける並列処理は、データが処理される順番を把握することができないので -出力結果などが特定しづらく、デバッグが困難である。データ転送やタスクの生成等のこれまで学んだことのない技術が多く存在する。 -短期間の学生実験では新しい技術を習得することに時間を割かれ、ゲームの完成度を上げることが難しくなる。 -<br><br> - 本研究では、PlayStation3上でゲームプログラミングを行う際に、Cellの性能を活かしながら、 -アーキテクチャに依存する記述を排除した、並列プログラミングを目的としている。 -</font> ---> -</ul> -<div class="handout"> -[any material that should appear in print but not on the slide] -</div> -</div> - -<div class="slide"> -<h1>Cell, SPE を用いたプログラミング</h1> +<li>DMA 転送の待ち時間の問題</li> <ul> -<li>CELL BROADBAND ENGINE</li> -<font size="4" color="#000000"> - Cell は 1 基の PowerPC Processor Element (PPE) と8 基の Synergistic Processor Element (SPE) -からなる非対称なマルチコアプロセッサであり、高速リングバスで構成されている。<br> - SPE は、LS (Local Store) という256KBのメモリを持ち、 -本研究で用いた PS3Linux では、6個の SPE を制御することができる。 -</font><br> -<img src="photo/Cell-main.jpg" alt="Cell-main" width="430" height="283"> - <img src="photo/SPE.jpg" alt="SPE" width="233" height="221"> +<li><p class="ex0">問題点1:SPE が直接メインメモリにアクセスでき<br> + ない。</p></li> +<li><p class="ex0">問題点2:問題点1に伴う DMA 転送の待ち時間。</p></li> </ul> -<div class="handout"> -[any material that should appear in print but not on the slide] -</div> - -<div class="slide"> -<h1>Cell, SPE を用いたプログラミング</h1> -<ul> -<li>DMA (Direct Memory Access)</li> -<font size="4" color="#000000"> - SPE にはメモリが 256KB しか搭載されていないという問題点がある。<br> - メインメモリからデータを持ってくることも可能だが、SPE が直接メインメモリにアクセスすることはできず、 -メインメモリにアクセスするには DMA を用いる。 -Cell の場合はメインメモリと LS 間でデータの転送を行う。手順としては以下の様になる。 -<br><br> -</font> -<font size="4" color="#0000FF"> -<ol> -<li>SPU プログラムが MFC (Memory Flow Controller) に対してDMA 転送命令を発行する。</li> -<li>MFC が DMA Controller を介して DMA 転送を開始。この間、SPE プログラムは停止しない。</li> -<li>DMA 転送の終了を待つ場合、SPE プログラム内で転送の完了を待つ。</li> -</ol> -</font> <br> -<font size="3" color="#000000"> * MFC とはメインメモリや他の SPE などとデータをやり取りするためのユニット。</font> -</ul> -<div class="handout"> -[any material that should appear in print but not on the slide] -</div> - -<div class="slide"> -<h1>Cell, SPE を用いたプログラミング</h1> -<ul> -<li>SPE の問題点</li> -<font size="4" color="#000000"> - SPE が直接メインメモリにアクセスできないことと、DMA 転送の待ち時間が -SPE でプログラミングを行う際の大きな問題となる。<br> - 問題の解決策として、DMA の待ち時間の間にも DMA 転送を必要としないような処理を行い、パイプラインを組む -また、SPE を複数用いた並列処理で DMA の待ち時間を隠す方法がある。 -<br><br> +問題の解決策:パイプラインと並列処理を行う。 <center> <img src="photo/pipeline.jpg" alt="pipeline" width="437" height="210"> </center> -</font> </ul> <div class="handout"> [any material that should appear in print but not on the slide]
--- a/presen/pre1.html~ Wed Feb 25 20:58:09 2009 +0900 +++ b/presen/pre1.html~ Wed Feb 25 23:19:18 2009 +0900 @@ -29,7 +29,7 @@ <div id="currentSlide"><!-- DO NOT EDIT --></div> <div id="header"></div> <div id="footer"> -<h1>1-611 / 20090127</h1> +<h1>1-322 / 20090226</h1> <h2>卒業論文</h2> </div> @@ -43,10 +43,10 @@ <br><br> <p><font size="10" color="#000000">並列プログラミングを用いた<br>ゲームフレームワークの設計と実装</font></p> <br> -<p><font size="4" color="#000000">指導教官:河野真治</font</p> -<p><font size="4 " color="#000000">4年次:多賀野海人</font</p> -<p><font size="4" color="#000000">琉球大学 工学部情報 工学科 055734A</font></p> -<p><font size="4" color="#000000">Jan. 27, 2009</font></p> +<p><font size="5" color="#000000">琉球大学 工学部情報 工学科 055734A</font></p> +<p><font size="5" color="#000000">多賀野海人</font</p> +<p><font size="5" color="#000000">指導教官:河野真治</font</p> +<p><font size="5" color="#000000">Feb, 26, 2009</font></p> </center> </div> @@ -54,11 +54,10 @@ <h1>目次</h1> <ul> <li>研究背景と目的</li> -<li>Cellとは</li> -<li>Ceriumとは</li> -<li>ゲーム開発</li> +<li>Cell, SPE を用いたプログラミング</li> +<li>Rendering 部分の高速化</li> <li>Ceriumを用いたゲーム開発</li> -<li>Rendering</li> +<li>今後の課題</li> </ul> <div class="handout"> [any material that should appear in print but not on the slide] @@ -72,10 +71,11 @@ <li><font size="4" color="#000000">並列処理を用いたゲームプログラミングは、学部生にとって困難である。</font></li> <li><font size="4" color="#000000">データ転送やタスクの生成等のこれまで学んだことのない技術が多く存在する。</font></li> <li><font size="4" color="#000000">学生実験では、ゲームの完成度を上げることが難しい。</font></li> -<br><br> -<font size = "4"> - 本研究では、PlayStation3上でゲームプログラミングを行う際に、Cellの性能を活かしながら、 -学生実験での完成度の高いゲーム開発を目的としている。 +<br> +<font size = "5"> + 本研究では、PlayStation3上でゲームプログラミングを行う際に、<br> +Cellの性能を活かしながら、学生実験での完成度の高いゲーム開発<br> +を目的としている。 </font> <!-- 研究背景と目的 <font size="5"> @@ -94,39 +94,61 @@ </div> <div class="slide"> -<h1>Cellとは</h1> +<h1>Cell, SPE を用いたプログラミング</h1> <ul> -<li><font size="4" color="#000000">Cellは、マルチコアCPUの1つで、構成は「ヘテロジニアス・マルチコアプロセッサ構成」である。 -汎用的な用途に対応した1種類のコアを用意するのではなく、制御系プロセッサコア(PPE)と演算系プロセッサコア(SPE)という異なる -コアを用意している。</font></li> -<li></li> +<li>CELL BROADBAND ENGINE</li> +<font size="4" color="#000000"> + Cell は 1 基の PowerPC Processor Element (PPE) と8 基の Synergistic Processor Element (SPE) +からなる非対称なマルチコアプロセッサであり、高速リングバスで構成されている。<br> + SPE は、LS (Local Store) という256KBのメモリを持ち、 +本研究で用いた PS3Linux では、6個の SPE を制御することができる。 +</font><br> <img src="photo/Cell-main.jpg" alt="Cell-main" width="430" height="283"> -<img src="photo/SPE.jpg" alt="SPE" width="233" height="221"> + <img src="photo/SPE.jpg" alt="SPE" width="233" height="221"> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> <div class="slide"> -<h1>Cellとは</h1> +<h1>Cell, SPE を用いたプログラミング</h1> <ul> -<li>SPU内部のパイプライン</li> -<font size="4" color="#000000">SPU内部では、読み込み(read)、実行(exec)、書き出し(write)の3つの動作が3段パイプラインで実行される</font> -<center> +<li>DMA (Direct Memory Access)</li> +<font size="4" color="#000000"> + SPE にはメモリが 256KB しか搭載されていないという問題点がある。<br> + メインメモリからデータを持ってくることも可能だが、SPE が直接メインメモリにアクセスすることはできず、 +メインメモリにアクセスするには DMA を用いる。 +Cell の場合はメインメモリと LS 間でデータの転送を行う。手順としては以下の様になる。 <br><br> -<img src="photo/manager-pipeline.png" alt="manager-pipeline" width="539" height="264"> -</center> +</font> +<font size="4" color="#0000FF"> +<ol> +<li>SPU プログラムが MFC (Memory Flow Controller) に対してDMA 転送命令を発行する。</li> +<li>MFC が DMA Controller を介して DMA 転送を開始。この間、SPE プログラムは停止しない。</li> +<li>DMA 転送の終了を待つ場合、SPE プログラム内で転送の完了を待つ。</li> +</ol> +</font> +<br> +<font size="3" color="#000000"> * MFC とはメインメモリや他の SPE などとデータをやり取りするためのユニット。</font> </ul> <div class="handout"> [any material that should appear in print but not on the slide] </div> <div class="slide"> -<h1>ゲーム開発</h1> +<h1>Cell, SPE を用いたプログラミング</h1> <ul> -<li>Cellを用いたゲーム開発</li> -<li>必要になる知識、技術など</li> -<li>PS3を用いたプログラミング</li> +<li>SPE の問題点</li> +<font size="4" color="#000000"> + SPE が直接メインメモリにアクセスできないことと、DMA 転送の待ち時間が +SPE でプログラミングを行う際の大きな問題となる。<br> + 問題の解決策として、DMA の待ち時間の間にも DMA 転送を必要としないような処理を行い、パイプラインを組む +また、SPE を複数用いた並列処理で DMA の待ち時間を隠す方法がある。 +<br><br> +<center> +<img src="photo/pipeline.jpg" alt="pipeline" width="437" height="210"> +</center> +</font> </ul> <div class="handout"> [any material that should appear in print but not on the slide]
--- a/presen/ui/default/pretty.css Wed Feb 25 20:58:09 2009 +0900 +++ b/presen/ui/default/pretty.css Wed Feb 25 23:19:18 2009 +0900 @@ -1,6 +1,6 @@ /* Following are the presentation styles -- edit away! */ -body {background: #FFF url(bodybg.gif) -16px 0 no-repeat; color: #000; font-size: 2em;} +body {background: #FFF url() -16px 0 no-repeat; color: #000; font-size: 2em;} :link, :visited {text-decoration: none; color: #00C;} #controls :active {color: #88A !important;} #controls :focus {outline: 1px dotted #227;} @@ -31,7 +31,7 @@ div#header, div#footer {background: #000; color: #AAB; font-family: Verdana, Helvetica, sans-serif;} -div#header {background: #000 url(bodybg.gif) +720px 0 no-repeat; +div#header {background: #000 url(bodybg.gif) +500px 0 no-repeat; line-height: 1px;} div#footer {font-size: 0.5em; font-weight: bold; padding: 1em 0;} #footer h1, #footer h2 {display: block; padding: 0 1em;}