- 用途
- 原点
- 型番
- 変更されたハーバードアーキテクチャ
- ハーバードアーキテクチャはどのように機能しますか?
- アーキテクチャーの追加
- メモリアドレス
- メモリシステム
- 利点
- 保護レベル
- 高速
- 短所
- より複雑でコストが高い
- ほとんど使用しない
- メモリ空間の誤用
- 参考文献
ハーバードアーキテクチャは、プログラムのデータおよび命令は、独立してアドレス指定可能なメモリの別々のセルに配置されているコンピュータの構成です。
つまり、コマンドまたは命令とデータの2つの別々の領域を含むコンピュータシステムで使用される用語です。したがって、このアーキテクチャの主な機能は、物理的に分離されたデータを格納し、命令とデータに異なる信号パスを提供することです。
出典:From Nessa los-Own work、CC BY-SA 3.0、commons.wikimedia
このアーキテクチャでは、2つの部分が2つの別々の構造で構成されているため、システムのこれら2つのセグメントのフォーマットとメディアが等しくない場合があります。
ハーバードアーキテクチャのいくつかの例は、初期のコンピュータシステムを含み、プログラムの命令は1つの媒体(パンチカードなど)にあり、格納されたデータは別の媒体(磁気テープなど)にあります。
用途
このタイプのアーキテクチャは、ビデオおよびオーディオ処理製品に幅広い用途があります。ビデオとオーディオを処理する各ツールで、ハーバードアーキテクチャの図を見ることができます。
アナログ・デバイセズのBlackfinプロセッサは、主な用途が見出された特定のデバイスです。他の電子チップベースの製品では、ハーバードアーキテクチャも広く使用されています。
ただし、ほとんどのコンピューターはフォンノイマンアーキテクチャを使用し、CPUキャッシュを使用してオーバーラップを実現しています。
原点
ハワードエイケンの指導の下で1940年代にハーバード大学で行われた作業は、ハーバードアーキテクチャの概念の元となったハーバードマークIと呼ばれるオリジナルのリレーベースのコンピューターを作成しました。
このコンピュータは、データと命令を格納するために個別のメモリユニットを使用していました。次に、このアーキテクチャーで大幅な開発が行われました。
エイケンは、データ用とプログラム命令用に別々のメモリを使用し、それぞれに別々のバスを使用することを奨励しました。
元のハーバードアーキテクチャでは通常、パンチテープに命令を格納し、電気機械式カウンターにデータを格納していました。
これらの初期のマシンのデータストレージは完全に中央処理装置内にありました。一方、データとして保存するための命令にはアクセスできませんでした。オペレーターはプログラムをロードする必要がありました。
ハーバードアーキテクチャは、それぞれが独自のアドレスバスを持つため、データの処理と命令の実行を同時に行うことができます。
型番
このモデルの特徴は、情報バスとストレージがデータとプログラムコードに対して物理的に分離されていることです。
バスが自律的に動作するため、データとプログラムの命令を同時に取得できるため、単一バスの設計よりも速度が向上します。
したがって、ハーバードモデルはより複雑になります。ただし、バスを独立して持つことで、フォンノイマンアーキテクチャによって生じるボトルネックを回避できます。
命令の検索とデータへのアクセスは単一のメモリバスを争う必要がないため、コンピュータは特定の複雑さの回路に対してより高速になる可能性があります。
動作するには、2つのメモリアドレスがあります。したがって、機械命令用のメモリレジスタとデータ用の別のメモリレジスタがあります。
バスを使用してメモリ内の命令とデータの両方を移動するフォンノイマンアーキテクチャとは異なり、ハーバードアーキテクチャはデータ用に1つのメモリ領域を使用し、命令用に別のメモリ領域を使用します。
変更されたハーバードアーキテクチャ
今日のコンピュータでは、プログラムとデータが使用するメモリ領域の物理的な分解はありません。このため、技術的にはフォンノイマンアーキテクチャを備えていると言えます。
ただし、変更されたハーバードアーキテクチャは、今日のコンピュータを最もよく表すのに役立ちます。
現在のプロセッシングユニットはメモリを共有しますが、固有の命令など、データが命令に絡まらないようにする特定の要素があります。これは修正ハーバードアーキテクチャと呼ばれます。
したがって、修正されたハーバードアーキテクチャには、コード用とデータ用の2つのバスがありますが、メモリ自体は物理的に共有される要素です。
このデバイスはメモリとその使用方法を処理するデバイスであるため、メモリコントローラーは変更が存在する場所です。
現代のコンピュータ設計は、修正されたハーバードアーキテクチャによってサポートされています。これらは、マイクロコントローラーおよびデジタル信号処理で使用されます。
ハーバードアーキテクチャはどのように機能しますか?
ハーバードアーキテクチャには、プログラム用とデータ用に異なるメモリアドレス領域があります。
これにより、バスと制御回路を使用してプログラムメモリからの情報のフローを処理し、別の回路を使用してデータメモリへの情報のフローを処理できるように回路を設計できます。
別々のバスを使用することは、データをデータメモリに時々転送することによって中断されることなく、プログラムを検索して実行できることを意味します。
たとえば、このアーキテクチャの単純なバージョンでは、プログラムリカバリユニットは、プログラムシーケンスの次の命令を取得し、前のプログラム命令の一部であった可能性のあるデータ転送操作を並行して実行している可能性があります。 。
このレベルでは、プログラムコードをデータメモリに配置してそこから実行することは一般に不可能であるため、ハーバードアーキテクチャには制限があります。
アーキテクチャーの追加
ハーバードアーキテクチャの単純な形式に、より複雑な既存のバリアントを追加できます。
一般的な追加は、命令キャッシュをプログラムのデータバスに追加することです。これにより、命令実行ユニットはプログラムの次のステップへのより高速なアクセスを可能にします。必要になるたびにプログラムの。
メモリアドレス
ハーバードアーキテクチャのコンピュータには、異なる命令およびデータアドレス領域があります。命令アドレス1は、データアドレス1と同じ領域ではありません。
命令アドレス1には24ビット値を含めることができ、データアドレス1には8ビットバイトを示すことができますが、これはその24ビット値の一部ではありません。
メモリシステム
命令とデータ用の個別のメモリ領域があり、信号とコードとデータのメモリストレージの両方を分離しているため、各メモリシステムに同時にアクセスできます。
利点
-データと命令が異なるバスを介して転送されるため、送信の破損の可能性が低くなります。
-データと命令は同じ方法でアクセスされます。
-命令とデータ用に異なるストレージメディアを許可します。たとえば、命令を安価なROMに入れ、データを高価なRAMに入れることができます。
-2つのメモリは異なるセルサイズを使用できるため、リソースを効率的に使用できます。
-より大きなメモリ帯域幅を持ち、命令とデータ用に別々のメモリを持つことでより予測可能です。
保護レベル
メモリ管理ユニットを備えていないシステムでは、データをコードとして開始できないため、システムがバッファオーバーフローなどの多くの問題にさらされるため、保護レベルが向上します。
そのため、電子レンジや時計などの小型の組み込みシステムで人気があります。
高速
ハーバードアーキテクチャは、命令を読み取り、同時に高速でデータメモリにアクセスできます。
データと命令を同時に取得して別々のメモリに保存し、異なるバスを経由できるため、パフォーマンスが向上します。
ハーバードアーキテクチャは、コードとデータメモリ間でリソースを共有する必要がない限り、一般に、ある程度の複雑さを持つコンピュータをフォンノイマンアーキテクチャよりも高速に実行するのに役立ちます。
ピンの制限またはその他の要因により、単一のバスを使用して両方のメモリ空間にアクセスする必要がある場合、これらの利点はほとんど無効になる可能性があります。
短所
より複雑でコストが高い
ハーバードアーキテクチャの問題は、データバスが1つではなく2つ必要になるため、複雑さとコストが非常に大きいことです。
2バスコンピュータの製造ははるかに高価であり、製造に時間がかかります。これには2つのバス用の制御ユニットが必要ですが、これは開発がより複雑で時間と費用がかかります。
これは、メーカーにとってより複雑な実装を意味します。CPUのピン数が多くなり、マザーボードが複雑になり、RAMチップを複製する必要があり、キャッシュ設計も複雑になります。
ほとんど使用しない
ハーバードアーキテクチャは広く使用されておらず、実装がより困難になっています。これが、CPUの外部ではほとんど使用されない理由です。
ただし、このアーキテクチャは、キャッシュを管理するためにCPU内で使用される場合があります。
メモリ空間の誤用
データメモリに空き容量がある場合、それを使用して命令を保存したり、その逆を行ったりすることはできません。
したがって、それらのそれぞれに専用の特定のメモリは、その製造において慎重にバランスをとる必要があります。
参考文献
- リストの違い(2019)。フォンノイマンとハーバードアーキテクチャの違いは?取得元:listdifferences.com。
- PC Magazine(2019)。定義:ハーバード建築。pcmag.comから取得。
- Techopedia(2019)。ハーバード建築。取得元:ceilingpedia.com。
- スコット・ソーントン(2018)。フォンノイマンアーキテクチャとハーバードアーキテクチャの違いは何ですか?マイクロコントローラのヒント。取得元:microcontrollertips.com。
- ウィキペディア、無料の百科事典(2019)。ハーバード建築。取得元:en.wikipedia.org。
- クレイジープログラマー(2019)。フォンノイマンとハーバードアーキテクチャの違い。取得元:thecrazyprogrammer.com。