夏の過ごし方:Computer Continuum-2014 Summer School

すべての人に良い一日を! 私は自分のコースを教えたコンピュータースクールContinuum-2014サマースクールに参加した経験についてお話ししたいと思います。 学校行事は8月25日から30日に開催されました。 しかし、トレーニングが行われた26日から28日までの3日間だけでした。





そして、イベント自体でたった3日間しか過ごしませんでしたが、休暇以外の夏の準備はかなりの部分を占めました。 私の前の仕事は簡単ではありませんでした。

  1. 私にとっては珍しいサイト。 長い間、私はオフィスの壁や母国のMIPTの外で授業を行っていませんでした。
  2. 短い締め切り。 通常、私は学期または学年中にコースを読みます。 3日間で何ができますか? 私は聴衆に投げ出すことができる理論と実践的な課題の量を注意深く制限し、バランスを取らなければなりませんでした。
  3. 私は一般の人々の訓練のレベルについて完全に知らなかった。 同じコースの生徒と一緒に仕事をしているとき、彼らはすでに合格していると大体想像できます。 さらに、通常はインタビューします。 誰がこの学校にいるのか、そして彼らの訓練のレベルはどうなるのかは私には謎でした。 そして実際、人々は非常に異なってきました(これについては後で詳しく説明します)。




学校について



このイベントは、サンクトペテルブルク州立大学、サンクトペテルブルク州立工科大学、北極圏連邦大学にちなんで名付けられた次の組織と企業の参加を得て開催されました。 M.V. ロモノソフ(アルハンゲリスク)、オイラー財団(サンクトペテルブルク)、ニジニノヴゴロド教育および研究振興財団、Intel、EMC、JetBrains。 学校の参加者には、いくつかのレッスントラックの選択肢が提供されました。 私のトラックは4位-「ソフトウェアモデリングの基礎」でした。 さらに、IntelはXDKでトラック5に導入されました。



Intelのトラックについて



1日目と2日目は、ソフトウェアシミュレーションの理論的基礎、つまりこのテクノロジがハードウェアおよびソフトウェア開発の重要なコンポーネントである理由、 プロセッサモデルの配置方法、 周辺デバイスとの違いに一部を費やしました。



それでも、私はコース時間のほとんどを、プロセッサモデルとOpenRISC 1000アーキテクチャの周辺機器の作成に関する実際の作業に費やすことにしました。 コースを準備するにあたり、私はかなり長い間、どのモデルを書くかを決めました。 なぜこのアーキテクチャが私に選ばれたのですか?

  1. 100500th MIPSをもう一度作りたくはありませんでした。
  2. オープンで自由な仕様
  3. 多くのオプションパーツを備えたモジュール構造-最悪の場合、カーネルと1ダースの命令だけを実装しても、結果を見ることができます。 一方で、詳細のサポートをさらに深く掘り下げると、間違いなく3日以上の作業が必要になります。
  4. 割り込みと例外、外部デバイス、タイマー、浮動小数点演算、ベクトル命令などの重要な概念が同時に存在する仕様の単純さは、アーキテクチャを完全に非フラッシュにします。
  5. コミュニティサポート-誰かがOpenRISC 1000での作業を続けたい場合は、GCCおよびClangコンパイラ、Libcライブラリ、Linuxカーネル、さらにはVerilogデザインなど、既製のツールを自由に使用できます。




このように、OpenRISC 1000は私に多くの操作の余地を残しました-誰にとっても強力な仕事があります。



WindRiver®Simicsは 、モデルの作成とデバッグを行うシミュレーターおよびフレームワークとして使用されました。



コンピューターアーキテクチャまたはパフォーマンスの分野でトレーニングまたは非営利の研究を行うことを希望する学術機関の場合、50シートの無料Simicsライセンスと既製のIntel®Core™およびIntel®Atom™プロセッサーモデルを含むパッケージセットを入手できます。 ロシアのこのプログラムによると、Simicsはすでに2つの大学-モスクワ物理技術研究所と現在はPetersburg IITUに設置されています。



Simicsが選ばれたのはなぜですか?

  1. 私はこの製品を長い間、非常に集中的に使用してきましたが、使用するのは自然でした。
  2. Simicsは、コンピューティングシステムの研究とシステムソフトウェアの開発のためのさまざまなモデルとツールを作成するための、豊富で十分に文書化されたAPIを提供します。
  3. アカデミックユーザー向けの配信には、ソースコードを使用したデバイスの実装例が多数含まれており、既に動作しているコードで学習を開始し、コースの目的に合わせて徐々に変更することができます。 したがって、 or1k



    カーネルor1k



    sample-risc



    基づいて作成され、Tick-timerはsample-timer-device



    に基づいていました。




誰が参加しました







14人が私のクラスに来ました。 サンクトペテルブルク州立大学、サンクトペテルブルク工科大学、TUSUR、ニジニ・ノヴゴロド(HSE NN)およびヴォルゴグラード(VolSTU)の学生もいました。 他の参加者は、大学のかなり上級の教師であることが判明しました。 最後に、Intel Labsのサンクトペテルブルク支社の数人の同僚が、「興味をそそりました」。専門家の関心によって多くの点で動機付けられました。 Intelの同僚も含めて、3日目には全員が着きましたが、非常に重要なワークショップと私の職業の間でいつも引き裂かれていました。 同時に、誰もが作成されているプラ​​ットフォームの独自の部分のプログラミングに興味がありました。



結果





3日目の終わりまでには、 or1k



カーネルの1つの一般モデル、PIC割り込みコントローラーの2つの実装、 or1k



(1つは動作し、2つ目は少し未完成のまま)タイマー、作成されたカーネル命令のユニットテスト、プラットフォームの共通スクリプト、これは次のようなものでした:







最も快適で信じられないこと-すべてのモデルを共通の構成に接続し、定期的な割り込みがカーネルに到達するか、カーネルに到達しないかを観察し、カーネルが仕様に従ってそれらを処理し、指定されたベクトルに切り替えます例外ハンドラコード。 もちろん、十分な時間はありませんでした。完全な命令セットを実装する、アドレスの公正な変換を保証する、TLBモデルを作成するなどです。 しかし、うまくいきました!



学生にとって簡単なこと





新しい学年が始まって以来、特に私はこの学年で同様の詳細なコースを実施するため、この種の実践的な仕事を理解する上で参加者がどのような困難を抱えているかを知ることは教師として興味深いものでした。 最初に、比較的簡単であることが判明したものをリストします。







困難を引き起こしたもの



一方で、一部の概念が不明であるか、参加者(および時には教師)に難易度を与えられているという事実には驚きがありました。







驚きに会ったもの



記憶されている純粋に技術的な瞬間。





おわりに





私は次のコースの終わりに自分の後ろに繰り返し気づいたので、結果として、誰がもっと学んだか、つまり生徒か教師かを言えません。 だからここで-少し異なる環境に突入し、一方で、日常的に使用されるツールに近づいて、私はそれらについて新たに学びました。 そしてもちろん、私は多くの興味深い人々に会い、彼らに興味を持てたことを願っています。



学校の参加者全員が、最新の技術と課題解決の努力に関心を寄せてくれたこと、そして主催者に感謝します。非常に良い調整、スケジュールの明確化、イベントの技術サポートに感謝します。 そして、この投稿の読者の皆様へ-ご清聴ありがとうございました!






All Articles