Open Design Computer Project

オリジナルCPUから作る本格的自作コンピューター

ユーザ用ツール

サイト用ツール


hardware:introduction_mist32

Introduction of MIST32 Architecture

このページでは、自作CPUであるMIST32アーキテクチャの概要について説明しています。詳細についてはMIST32 Processor Architectureをご覧ください。

MIST32 Instruction Architecture

MIST32アーキテクチャは命令レベルから新規に設計したプロセッサアーキテクチャです。以下の特徴を持っています。

  • オープンハードウェア
  • オペレーティングシステムの搭載前提
  • リネーミングを行うOut Of Order実行に適した命令アーキテクチャ
  • 高パフォーマンス・低消費電力設計

オープンハードウェア

MIST32アーキテクチャはオープンな仕様のコンピュータアーキテクチャとして、このページを通して公開しています。そして、MIST32アーキテクチャを採用した MIST1032SA, MIST1032ISA プロセッサもBSDライセンスにてRTLレベルソースを全て公開しており、オープンソースプロセッサとなっています。MIST1032SAプロセッサはVerilog HDL 2001(一部SVAを導入。論理合成部分はすべてVerilog 2001)で書かれています。だれでも自由に使用したり改造することができるプロセッサです。

オペレーティングシステムの搭載前提

MIST32アーキテクチャは組み込み向けプラットフォーム用プロセッサではありません、RTOS用プロセッサでもありません。ターゲットとしては電池駆動のモバイル端末や、パーソナルコンピュタで、性能と低消費電力動作が求められるプラットフォーム向けに設計しています。

これらのシステムには必ずオペレーティングシステムが搭載されますがMIST32アーキテクチャではオペレーティングシステムを搭載するために必要なページングや特権管理などの定義も含まれます。

Out Of Order実行に適した命令アーキテクチャ

Out Of Order実行は特に新しい技術ではなく、古くから存在する技術です。そしてアウトオブオーダ実行を効率よく行うために使用されるリネーミング(レジスタリネーミング)自体も新しい技術ではありません。しかし、これらの技術を採用している最新のプロセッサは、これらの技術が一般に採用される以前に開発されたプロセッサです。たとえばx86、MIPS等がそうでしょう。これらの技術は、前提とする設計を行わずとも命令互換を保ち、高い命令レベル並列化を化を達成できるため、よく利用されています。

そして、そもそも高性能化を目標とせず、設計されたアーキテクチャを無理やりOut Of Order実行化して高性能化しようとしているものもあります。ARM等がそうですが、これらはConditional Executionといって、無理やり前後の命令に依存性を設けたことで、アウトオブオーダ実行を行う際に無駄が多く発生します。

MIST32アーキテクチャはある程度のリネーミング対応のアウトオブオーダ実行を行うことを前提として、少ないハードウェア規模に収めることで低消費電力動作を実現しようと、設計しました。そのため、リネーミングとアウトオブオーダ実行を行うに当たり、命令セットレベルの制約により多くのハードウェア規模を必要としてしまう命令を使用せず、それに代わる命令を採用しています。

高パフォーマンス・低消費電力設計

上に記載した通り、命令レベル並列化を高めるた目の仕組みを、命令セットから考慮することで最適化しています。そして、これにより少ないハードウェアでリネーミング対応のアウトオブオーダ実行を行うことが可能です。少ないハードウェア規模で実現できるということは、低消費電力で動作することが可能です。

より詳しい情報についてはMIST32 Processor Architectureをご覧ください。

プロセッサのみならずコンピュータシステムの定義

MSIT32の仕様はプロセッサの命令セットのみならず、プロセッサ内部のIOやバスの定義も定めています。システム全体図は以下の通りです。このうち、GCIとInternal Bus Controllerは現在のところ直接結合していませんが、将来デバイス側にバスマスタを持たせるために結合する予定です。

hardware/introduction_mist32.txt · 最終更新: 2014/01/14 13:01 by hktechno