記事検索

検索ワードを入力してください。
Sky Tech Blog
今は​あまり​気に​しない?​DMA転送の​仕組み

今は​あまり​気に​しない?​DMA転送の​仕組み

DMA転送(Direct Memory Access)について説明します。DMA転送の基本概念や、DMA転送が重要な技術として考えられていた理由などについて解説します。

はじめに

「昔はよく、パフォーマンスを改善するためにDMA転送を使ってプログラムしてたよ。」
と飲み会の場で、上司から聞くことがあるかもしれません。(ないかもしれません)
今回は、そもそもDMA転送って何?っていうのを説明したいと思います。

DMAって​何?

DMA=”Direct Memory Access”の略になります。

これは、CPUを介さずにメモリと周辺機器間でデータを直接転送する技術で、これによりCPUの負荷を軽減し、データ転送の効率を向上させる機能です。

少し小難しいですね。。

これを​例えると・・・

レストランのオーダーを例にして考えてみましょう。

"CPU(シェフ)"が一人でやっている場合、シェフは料理(データ)を作り、直接テーブル(メモリや周辺機器)に運ぶ必要があります。
そうすると、運んでいる間に料理(データ)を作れずに提供が遅くなってしまいます。

ここで、"ウェイター(DMAコントローラ)"の登場です。
シェフは料理(データ)を作り、ウェイターに料理(データ)を渡します。
ウェイターはテーブル(メモリや周辺機器)に料理を運んでくれるので、シェフは料理(データ)に専念することができ、効率があがります。

このように料理(データ)を専門で渡すことをDMA転送と呼びます。

な​ぜ昔の​プログラマは​DMA転送を​気に​していたのか

昔のプログラマがDMA転送を気にしていたのは、CPUの負荷を軽減し、効率的にデータを転送する必要があったからです。
当時のコンピュータは、今と比べてスペックが低く、処理能力が限られていました。
そのため、CPUがデータ転送を直接行うと、他の重要な処理が滞ってしまうことがよくありました。

例えば、音声やビデオのリアルタイム処理、ネットワーク通信などでは、データ転送の遅延が許されませんでした。
そこで、DMA転送が登場しました。
DMAを使うことで、CPUを介さずにメモリと周辺機器間でデータを直接転送できるため、CPUの負荷を大幅に軽減し、システム全体の効率を向上させることができました。

このように、限られたリソースを最大限に活用するために、DMA転送は非常に重要な技術だったのです。

最後に

現在ではPCの性能も上がっているため、設計や実装の際にはあまり気にしないかもしれません。
ただ、DMA転送の仕組みを知っておくと、システムのパフォーマンスを上げるための強力な武器になる(かもしれません)ので、今回紹介させていただきました。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム