【はーばーどあーきてくちゃ】
ハーバードアーキテクチャ とは?
最終更新:
💡 命令とデータの通り道を分ける設計
ハーバードアーキテクチャとは、命令用メモリとデータ用メモリを物理的に分離し、それぞれ独立したバスでCPUと接続するコンピュータの設計方式のこと。命令の読み出しとデータへのアクセスを並行できる方式で、フォン・ノイマン型との違いも解説。
📌 このページのポイント
命令とデータのメモリを分けるって、どういうこと?
単純化したフォン・ノイマン型では、命令(プログラム)もデータも同じメモリに入れて同じ通路(バス)で運ぶんだ。ハーバード型は命令用とデータ用のメモリと通路を完全に分けるんだよ
分けると何がいいの?
たとえば1車線の道路だと、荷物を運ぶトラックと通勤の車が同じ道を使うから渋滞するよね。ハーバード型は荷物専用道路と通勤専用道路を別に作るから、別々の流れを並行させられるんだ。ただし各道路の混雑までなくなるわけではないよ。CPUが命令を読みながら同時にデータも読み書きできるよ
じゃあ全部ハーバード型にすればいいんじゃない?
じゃあハーバード型はどこで使われてるの?
例えばMicrochipのPIC24やdsPICは修正ハーバード型で、命令用とデータ用のバスが分かれているよ。命令の読み出しとデータの処理を並行させる実装なんだ。ただし、この方式というだけで、すべての処理が期限内に終わると保証されるわけではないよ。
最近のパソコンのCPUはどっちなの?
もっと詳しく知りたい人へ
キャッシュを分ければメモリ待ちはなくなるの?
なくならないよ。命令とデータが別々のキャッシュにある間は並行してアクセスしやすいけど、キャッシュミスで共有する下位メモリへアクセスすれば待ちが発生し得る。どの階層を分離しているか確認しよう。
まとめ:ざっくりこれだけ覚えればOK!
「ハーバードアーキテクチャ」って出てきたら「命令とデータのメモリ・バスを分けて同時アクセスできる設計」と思えればだいたいOK!
📖 おまけ:英語の意味
「Harvard Architecture」 = ハーバード方式の設計
💬 Harvardはハーバード大学の名前。方式を理解するときは、命令とデータの保存領域・経路が分かれている点に注目しよう