Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

ARMアーキテクチャ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ARM Cortex-Mから転送)
この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。このテンプレートの使い方
出典検索?"ARMアーキテクチャ" – ニュース ·書籍 ·スカラー ·CiNii ·J-STAGE ·NDL ·dlib.jp ·ジャパンサーチ ·TWL
(2014年3月)
ARMアーキテクチャ
開発者ARMホールディングス
ビット数32ビット64ビット
発表1983年
バージョンARMv9[1]
デザインRISC
タイプRegister-Register
エンコードFixed
ブランチCondition code
エンディアンBi
拡張Thumb,Jazelle, VFP, NEON, SVE, SME
レジスタ
16(32ビット)、31(64ビット)

ARMアーキテクチャ(アーム[2][3][4][5]アーキテクチャ) とは、ARMホールディングスの事業部門であるARM Ltd.により設計・ライセンスされているアーキテクチャである。組み込み機器や低電力アプリケーションからスーパーコンピューターまで様々な機器で用いられている。

概要

[編集]

ARMアーキテクチャは消費電力を抑える特徴を持ち、低消費電力を目標に設計されるモバイル機器において支配的となっている。本アーキテクチャの命令セットは「(基本的に)固定長の命令」「簡素な命令セット」というRISC風の特徴を有しつつ、「条件実行、定数シフト/ローテート付きオペランド、比較的豊富なアドレッシングモード」といったCISC風の特徴を併せ持つのが特徴的だが、これは初期のARMがパソコン向けに設計された際、当時の同程度の性能のチップとしてはかなり少ないゲート数(約25,000トランジスタ)で実装されたチップの多くの部分を常に活用する設計として工夫されたもので、回路の複雑さを増さないという方向性だというように見れば、CISC風の特徴というよりむしろRISC風の特徴とも言える。このような設計が、初期の世代の実装において、(性能の割に)低消費電力、小さなコア、(RISCとしては)高いコード密度といった優れた特性に結びつき、広く普及する原動力となった。

2005年の時点で、ARMファミリーは32ビット組込みマイクロプロセッサ(乃至、特にマイクロコントローラ)のおよそ75%を占め[6]、全世界で最も使用されている32ビットCPUアーキテクチャである[要出典]。ARMアーキテクチャに基づくCPUコアは、PDA携帯電話メディアプレーヤー携帯型ゲーム電卓などの携帯機器から、ハードディスクルータなどのPC周辺機器まで、あらゆる電子機器に使用される。2015年現在、携帯電話では9割超のシェアがある[7]

携帯機器や電子機器の高性能化に伴いARMコアの出荷数は加速度的に伸びており、2008年1月の時点で100億個以上[8]、2010年9月の時点で200億個以上[9]が出荷されている。ARMアーキテクチャを使用したプロセッサの例としては、テキサス・インスツルメンツOMAPシリーズやマーベル・テクノロジー・グループXScaleNVIDIATegraクアルコムSnapdragonフリースケールのi.MXシリーズ、ルネサス エレクトロニクスのRZファミリ、Synergyなどがある。

既存のARMプロセッサは組み込みとクライアントシステムに特化していたため全て32ビットであるが、顧客からは電力効率に優れるARMアーキテクチャのサーバへの応用を望む声が高まり[要出典]、ARM社は2011年10月27日、ARMの64ビット拡張であるAArch64(ARM64)を実装したARMv8アーキテクチャを発表した[10]

歴史

[編集]

ARMの起源は、1980年代初頭のイギリスのコンピュータ業界に見出すことができる。1983年、イギリスのエイコーン・コンピュータ(Acorn Computers、エイコーン)が画期的なプロジェクト、Acorn RISC Machine(ARM)を開始した。このプロジェクトは、BBC Microの成功を受けて、エイコーンが次世代マシンの開発を目指す中で生まれた。当時、エイコーンは既存の6502プロセッサの性能限界に直面しており、より効率的で低消費電力のプロセッサ、具体的には高性能な32ビットプロセッサの開発が急務となっていた[11]

プロジェクトの中心となったのは、ソフィー・ウィルソン(Sophie Wilson)とスティーブ・ファーバー(Steve Furber)を含む少数の技術者たちだった。ウィルソンは命令セットアーキテクチャの設計を担当し、ファーバーはハードウェア設計をリードした。彼女らは、バークレーRISC英語版スタンフォード大学の研究に影響を受け、RISC(縮小命令セットコンピューティング)アーキテクチャを採用することを決定した。RISCアーキテクチャの単純な命令セットにより、高速で効率的な処理の実現が期待された[11]

開発プロセスは綿密に進められた。まず、既存の商用プロセッサの性能を詳細に分析し、次にシミュレータを使用して新しいアーキテクチャをテストした[11]

開発チームはVLSI Technology英語版社を「シリコンパートナー」として選び、エイコーンが設計を提供し、VLSIがレイアウトと製造を担当した。1985年4月26日に受け取った最初のARMシリコンチップは正常に動作し、これが「ARM1」と呼ばれるバージョンで、6MHzで動作していた。このARM1は、BBC Micro用のセカンドプロセッサとして初めて実用化され、サポートチップ(MEMC (MEMory Controller), VIDC (VIDeo and sound Controller), IOC (Input Output Controller))の開発を促進し、ARM2の開発にも使用された[12]。また、BBC BASIC英語版は後にアセンブリ言語で書き直され、これにより命令セットに精通した開発者たちは非常に高密度なコードを作成することができた。このARM版BBC BASICは、ARMエミュレータのテストにおいても非常に優れたベンチマークとなった[11]

このARM1でのシミュレーション結果を元に、1986年末にARM2が8MHzで登場し、翌年には10〜12MHzで動作するバージョンがリリースされた。ARM2には大きなアーキテクチャの改良が施され、以前はソフトウェアで処理されていた乗算が、ブースの乗算アルゴリズムによりハードウェアで実装された。また、新たに追加された「FIQ(Fast Interrupt reQuest)モード」により、割り込み処理時にレジスタ8〜14が自動的に置き換えられるようになり、割り込み処理が高速化された[11]

ARM2は、1987年に発売されたAcorn Archimedesシリーズのパーソナルコンピュータ(A305、A310、A440)で初めて使用された。Dhrystoneベンチマークによれば、ARM2は7MHzで動作するMC68000ベースのシステム(AmigaMacintosh SEなど)に比べ約7倍の性能を誇り、16MHzのIntel 80386とほぼ同等の速度を持っていた。高価なSun SPARCMIPS R2000のRISCベースワークステーションに次ぐ性能を示しながらも、デスクトップパソコンと同程度の価格で提供された。ARM2は、高速I/Oに対応するよう設計され、他のシステムに見られるDMAコントローラのようなサポートチップを省略し、設計を大幅に簡略化したことで、ワークステーション並みの性能を手頃な価格で実現した[11]

ARM2は32ビットデータバス、26ビットのアドレス空間、そして16個の32ビットレジスタ(プログラムカウンタを含む)を備えていた。ARM2のトランジスタ数はわずか30,000個で、Motorola 68000の68,000個と比べて非常に少なかった。この簡素化は、ARM2がマイクロコードを持たないことや、キャッシュを搭載していないことによるもので、その結果、低消費電力と簡単な熱処理が可能となった。それでも、ARM2は1987年のIBM PS/2シリーズに搭載されたIntel 80286Intel 386に比べ、優れた性能を提供していた。

後継機であるARM3は、4KBのキャッシュを搭載し、さらなる性能向上を実現した。

1980年代後半、Apple Computer(現:Apple)はエイコーンと共同で新しいARMコアの開発に取り組んだ。この作業は非常に重要視されていたため、エイコーンは1990年に開発チームをスピンオフしてAdvanced RISC Machinesという新会社を設立した。このため、ARMは本来のAcorn RISC MachineではなくAdvanced RISC Machineの略であるという説明をよく見かけることになる。Advanced RISC Machinesは、1998年ロンドン証券取引所NASDAQに上場した際、ARM Limitedとなった。

この経緯により、ARM6が開発された。1991年に最初のモデルがリリースされ、AppleはARM6ベースのARM610をApple Newtonに採用した。

これらの変化を経てもコアは大体同じサイズに収まっている。ARM2は30000個のトランジスタを使用していたが、ARM6は35000個にしか増えていない。そこにあるアイデアは、エンドユーザーがARMコアと多くのオプションのパーツを組み合わせて完全なCPUとし、それによって古い設備でも製造でき、かつ安価に高性能を得られる、というものである。

このARM6の改良版であるARM7も、ARM6を採用した製品群に引き続き採用されたほか、普及期に入りつつあった携帯電話にも広く採用されたことから、今日のARMの礎ともなった。

さらに、新世代のARMv4アーキテクチャに基いてARM7を再設計したものがARM7TDMIである。ARM7TDMIはThumb命令(後述)を実装し、低消費電力と高いコード効率を両立する利点を備えていたことから、ライセンスを受けた多くの企業によって製品化され、特に携帯電話ゲームボーイアドバンスといった民生機器に採用されたことから、莫大な数の製品に搭載された。なお、TDMIとはThumb命令、デバッグ (Debug) 回路、乗算器 (Multiplier)、ICE機能を搭載していることを意味している。しかし、これより後のコアには全てこれらの機能が標準的に搭載されるようになったため、この名称は省かれている。

DECはARMv4アーキテクチャの設計のライセンスを得てStrongARMを製造した。233MHzでStrongARMはほんの1Wの電力しか消費しない(最近のバージョンはさらに少ない)。この業績は後に訴訟の解決の一環としてインテルに移管され、インテルはこの機会を利用して古くなりつつあったi960をStrongARMで補強することにし、それ以降XScaleという名で知られる高性能の実装を開発した。

以後も、StrongARMの技術のフィードバックを受けたARM9ARM10を経て、NECとの提携などによって携帯電話向けプロセッサとしての地位を確固たるものにしたARM11をリリースする。

1990年代には、AMULETという、非同期の部分を持つことを大きな特徴とするシリーズも開発された(広く採用されるには至らずだったが)。

2005年には製品ラインナップを一新し、高機能携帯電話などのアプリケーションプロセッサ向けであるCortex-A、リアルタイム制御向けであるCortex-R組み込みシステム向けであるCortex-Mと、ターゲットごとにシリーズを分類した。なお、Cortexの末尾に付く文字は、社名であるARMの一文字ずつをそれぞれ割り当てたものである[13]。また、2012年11月にはARM初となる64ビットアーキテクチャによるプロセッサコアであるCortex-A50シリーズを発表した[14]

ARMからIPコアのライセンス供与を受けている主な企業には、モトローラIBMテキサス・インスツルメンツ任天堂フィリップスAtmelシャープサムスン電子STマイクロエレクトロニクスアナログ・デバイセズMediaTekパナソニッククアルコムマーベル・テクノロジー・グループなどがある。

ARMチップは世界で最もよく使われているCPUデザインの一つとなっており、ハードディスク携帯電話ルータ電卓から玩具に至るまであらゆる製品の中に見ることができる。32ビット組み込みCPUで圧倒的なシェアを占め、2004年の世界シェアは61%であった[15]

主な採用製品

[編集]

ARM6

[編集]
  • ARM60 CPU (VY86C06020FC-2)

    ARM60 CPU (VY86C06020FC-2)
  • ARM60 CPU (P60ARM)

    ARM60 CPU (P60ARM)

ARM7/7E

[編集]

ARM9/9E

[編集]

ARM11/11E

[編集]
  • 2007年頃から採用されるようになる。発表は2002年4月29日[17]
    • 7月17日、東芝がARM1176JZF-S搭載の携帯電話用プロセッサ、TC35711XBGを発表。2008年第2四半期より量産開始予定。
  • NVIDIATegra
  • 携帯音楽プレーヤー
  • 携帯電話
    • T-Mobile G1
    • Qualcomm
      • MSM7500(EV-DO Rev.A対応携帯電話用チップセット。ARM9Eとのダブル実装)
      • MSM7600(EV-DO Rev.A対応携帯電話用チップセット。ARM9Eとのダブル実装)
    • NTTドコモFOMA902iシリーズ以降の携帯電話。905i以降のSymbian採用機はSH-4Aとダブル実装。
    • WS018KE (WILLCOM 9)(WILLCOM(ウィルコム)のPHS端末)
    • Samsung S3C6400(ARM 1176JZ(F)-S v1.0)
      • iPhone 3G(412 MHzで駆動)
  • タブレット・PDA
    • ノキア Internet Tablet N800
    • mylo COM-2
  • ゲーム機
    • Zeebo (新興国向けDL専用3Dゲーム機)
  • シングルボードコンピュータ

Cortex-M3

[編集]

Cortex-A8

[編集]

Cortex-A9

[編集]

Cortex-A15

[編集]
  • タブレットは2012年から、スマートフォンは2013年から採用された。
  • サムスン電子は1.7GHzのデュアルコア Exynos 5250 を2012年10月[18]から搭載商品を販売開始。メモリ帯域12.8GB/s[19]
  • テキサス・インスルメンツは2GHzのデュアルコアで2012年第3四半期から商品を出荷予定[20]
  • NVIDIA は Tegra 4 を2013年第1四半期から出荷予定。
  • シングルボードコンピュータ

Cortex-A57

[編集]
  • 2012年10月に64ビット ARMのCortex-A57, A53(コードネーム「Atlas」と「Apollo」)が発表され[21]、2014年に搭載商品(Samsung Galaxy Note 4 など)が販売開始された。
  • AMD は2015年下半期にサーバー向け Opteron A1100 (Seattle) をリリース予定[22][23]
  • A57やA53では、8コアや全てのコア同時稼働できる4+4コア(A57が4コア、A53が4コア)などが登場した。

Cortex-A72

[編集]
  • 2015年2月3日に発表され[24]、2015年に搭載商品が販売される予定[25]。Cortex-A57の後継製品。
  • Raspberry Pi 4 Model B に採用された。

Cortex-A73

[編集]

Cortex-A75

[編集]

Cortex-A76

[編集]

Cortex-A77

[編集]

Cortex-A78

[編集]

Cortex-X1

[編集]
  • 2020年5月26日 にCortex-A78と共に発表された。
  • Cortex-X Custom Programに基づき、Cortex-A78をベースに拡張されている。


コアの性能と採用実績

[編集]

ARM社製

[編集]
ファミリーアーキテクチャコア特徴キャッシュ (I/D)/MMU性能 MIPS @ MHz採用製品
ARM1ARMv1ARM1なしARM Evaluation System second processor forBBC Micro
ARM2ARMv2ARM2MUL(乗算)命令を追加
  • 4 MIPS @ 8 MHz
  • 0.33 DMIPS/MHz
Acorn Archimedes,Chessmachine
ARMv2aARM250統合メモリコントローラ (MMU), Graphics and IO processor. SWAP命令を追加なし, MEMC1a7 MIPS @ 12 MHzAcorn Archimedes
ARM3ARMv2aARM2aARMとしてはじめてのキャッシュの採用4 KB 統合
  • 12 MIPS @ 25 MHz
  • 0.50 DMIPS/MHz
ARM6ARMv3ARM6032ビットアドレス空間をサポート(それまでは26ビット)なし10 MIPS @ 12 MHz3DO, Zarlink GPS Receiver
ARM600キャッシュ、コプロセッサバス(FPA10浮動小数点演算ユニット用)4 KB 統合28 MIPS @ 33 MHz
ARM610キャッシュ、コプロセッサバスは無し
  • 17 MIPS @ 20 MHz
  • 0.65 DMIPS/MHz
Acorn Risc PC 600,Apple Newton 100シリーズ
ARM7ARMv3ARM7008 KB 統合40 MHzAcorn Risc PC 試作CPUカード
ARM710Acorn Risc PC 700
ARM710a
Acorn Risc PC 700,Apple Newton eMate 300
ARM7100Integrated SoC.18 MHzPsion Series 5
ARM75004 KB 統合40 MHzAcorn A7000
ARM7500FEIntegrated SoC. "FE"、FPA・EDOメモリコントローラを追加
Acorn A7000+
ARM7TDMIv4TARM7TDMI(-S)3ステージ パイプラインなし15 MIPS @ 16.8 MHzゲームボーイアドバンス,ニンテンドーDS,iPod
ARM710TMMU36 MIPS @ 40 MHzPsion 5 series,Apple Newton
ARM720T8 KB 統合キャッシュ, MMU60 MIPS @ 59.8 MHz
ARM740TMPU
v5TEJARM7EJ-SJazelle DBXなし
ARM9TDMIv4TARM9TDMI5ステージ パイプライン
ARM920T16 KB/16 KB, MMU200 MIPS @ 180 MHzArmadillo,GP32,GP2X(マスタ),en:Tapwave Zodiac (Motorola i. MX1)
ARM922T8 KB/8 KB, MMU200/250 MHzCavium CNS2132 (Econa product lines),Cavium STR8132 (Econa evaluation board),Ritmo Torrent Box/Mini Lan Server/BT-Downloader (ZAP-LN-86BT)
ARM940T4 KB/4 KB, MPUGP2X(スレーブ)
ARM9Ev5TEARM946E-Svariable, tightly coupled memories (TCM), MPU
  • 231 MIPS @ 210 MHz
  • 74.47 MIPS @ 67.024 MHz
ニンテンドーDS,ノキアN-Gage, Conexant 802.11 chips
ARM966E-Sキャッシュレス, TCMs

ST Micro STR91xF, Ethernet内蔵

ARM968E-S
v5TEJARM926EJ-SJazelle DBXvariable, TCMs, MMU220 MIPS @ 200 MHzMobile phones:ソニー・エリクソン・モバイルコミュニケーションズ(K, W シリーズ),シーメンス andBenq(x65 シリーズ以降),テキサスインスツルメンツ OMAP1710
v5TEARM996HSClockless processorキャッシュレス, TCMs, MPU
ARM10Ev5TEARM1020E(VFP)32 KB/32 KB, MMU
ARM1022E16 KB/16 KB, MMU
v5TEJARM1026EJ-SJazelle DBXvariable, MMU or MPU
ARM11v6ARM1136J(F)-SSIMD, Jazelle DBX, (VFP)variable, MMU1.25 DMIPS/MHzTI OMAP 2, NXPi.MX3
v6T2ARM1156T2(F)-SSIMD, Thumb-2, (VFP)1.54 DMIPS/MHz
v6KZARM1176JZ(F)-SSIMD, Jazelle DBX, (VFP)variable, MMU+TrustZone1.25 DMIPS/MHziPhone, iPhone 3G, Broadcom BCM2835
v6KARM11 MPCore1 – 4 core SMP, SIMD, Jazelle DBX, (VFP)variable, MMU1.25 DMIPS/MHz(最大608 MHz)NVIDIA Tegra
SecurCorev6-MSC0000.9 DMIPS/MHz
v4TSC100
v7-MSC3001.25 DMIPS/MHz
Cortex-Mv6-MCortex-M0マイクロコントローラ向け。M1はFPGA上で動作。命令はM3のサブセット。Thumb-2 (BL, MRS, MSR, ISB, DSB, and DMB)対応。0.9 DMIPS/MHzNXP LPC11xx, Triad Semiconductor, Melfas, 忠北テクノパーク, Nuvoton, オーストリアマイクロシステムズ, ローム, SwissMicros GmbH (DM15,DM41等)
Cortex-M0+0.93 DMIPS/MHzNXP LPC81x, LPC82x, NXP S32K11x,Renesas RAファミリ, Renesas Synergy S1シリーズ
Cortex-M1なし, tightly coupled memory optional.
  • 0.8 DMIPS/MHz[26]
  • 最大 136 DMIPS @ 170 MHz[27](クロックはFPGA依存)
Altera Cyclone III[28], Actel FPGA[29]
v7-MCortex-M3マイクロコントローラ向け(ハーバード・アーキテクチャ)キャッシュなし, (MPU)1.25 DMIPS/MHzTexas Instruments Stellaris MCU, STMicroelectronics STM32, STMicroelectronics Accordo2, NXP LPC1000, NXPmbed, 東芝 TX03,Luminary Micro, Ember EM3xx, Atmel AT91SAM3, Europe Technologies EasyBCU, Energy Micro EFM32, Actel SmartFusion,Renesas R-IN32
v7E-MCortex-M4マイクロコントローラ向け(ハーバード・アーキテクチャ)。M3にDSP追加。モーター制御、FA/電力制御、オーディオ/ビデオ処理など。NXP Kinetis, NXP LPC43xx, NXP i.MX 6, 7, 8, NXP S32K14x, S32M, STMicroelectronics,Renesas RAファミリ,Renesas Synergy MCU (S3/S5/S7), Infineon TRAVEO
v7-MCortex-M7マイクロコントローラ向け(ハーバード・アーキテクチャ)。M4までの3段パイプラインから、スーパースカラ(デュアル)6段パイプラインとなり、命令/データ1次キャッシュ、倍精度浮動小数点演算を追加するなど大幅に強化された。クロック周波数は最大800 MHz程度までをターゲットとしており、2017年現在600 MHzで動作する製品がある(NXP i.MX RT1050シリーズ)。

反面、M3,M4にあったBitBand機能が削除されているなどの変更点もある。

L1 命令/データ 各0 – 64 KB, (MPU)2.14 DMIPS/MHz[30][31]STMicroelectronics STM32 F7, Atmel SAM x7x, NXP i.MX RT1050, NXP i.MX 8M Nano, Plus, i.MX 95, NXP S32G, S32K, S32M274, 276, Infineon TRAVEO
v8-MCortex-M23マイクロコントローラ向け(ノイマン・アーキテクチャ)0.98 DMIPS/MHz[32]Renesas Synergy S1JA,Renesas RA2A1, Renesas RA2L1, Microchip SAML10
Cortex-M33マイクロコントローラ向け(ハーバード・アーキテクチャ)1.50 DMIPS/MHz[33]Renesas RA6M4,Renesas RA4M3, STM32L5, NXP5500, NXP i.MX 8ULP, i.MX 9
Cortex-Rv7-RCortex-R4リアルタイム/セーフティクリティカルな組み込みシステム向け可変キャッシュ, MMUはオプション1.66 DMIPS/MHzTexas Instruments TMS570,Broadcom,Renesas RZ/T, STMicroelectronics Accordo2
Cortex-R5AMD/Xilinx Zynq UltraScale+ MPSoC
Cortex-R72.53 DMIPS/MHz
v8-RCortex-R52Renesas R-Car V4H,Renesas RZ/T2, NXP S32N, S32Z, S32E
Cortex-A英語版v7-ACortex-A5低コスト、低消費電力L1: 4 KB – 64 KB可変, L2: オプション, メモリ管理ユニット, TrustZone1.57 DMIPS/MHz (400 MHz – 800 MHz)Atmel SAMA5, PS-T328,Snapdragon S4 Play, Snapdragon 200
Cortex-A71 – 4マルチプロセッシング 浮動小数点演算器 L2キャッシュメモリ4 MB(最高)メモリ管理ユニット, TrustZone, ラージ物理アドレス拡張1.9 DMIPS/MHz ( – 1.5Ghz)Snapdragon S4 Play, Snapdragon 200, 208, 210, 212, 400,Allwinner A20,Allwinner A31,MediaTek MT6589, Broadcom BCM2836,Renesas R-Car H2, NXP i.MX 6, 7
Cortex-A8アプリケーション向け, NEON, Jazelle RCT, Thumb-2可変 (L1+L2),メモリ管理ユニット, TrustZone2.0 DMIPS/MHz (600 MHz – 1 GHz)TI OMAP 3, Freescalei.MX 5,Apple A4, SamsungExynos 3,Allwinner A1x,Rockchip RK29xx
Cortex-A9アプリケーション向け, 1 – 4コア対称型マルチプロセッシング, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2,アウト・オブ・オーダー実行,投機的実行,スーパースケーラメモリ管理ユニット, TrustZone2.5 DMIPS/MHz (800 MHz – 2 GHz)TI OMAP 4, NXPi.MX 6, ST-Ericsson NovaThor U8500,NVIDIA Tegra 2,NVIDIA Tegra 3,NVIDIA Tegra 4i, STMicroelectronicsSPEAr1300,ザイリンクス Zynq-7000,Apple A5,Rockchip RK3xxx, SamsungExynos 4,HiSilicon K3V2, Kirin 910,MediaTek,Renesas RZ/A, Intel Cyclone V SoC FPGA
Cortex-A151 – 4コア対称型マルチプロセッシングメモリ管理ユニット, TrustZone, ラージ物理アドレス拡張3.5 DMIPS/MHz (1 GHz – 2.5 GHz)TI OMAP 5, SamsungExynos 5,NVIDIA Tegra 4,NVIDIA Tegra K1,HiSilicon Kirin 920,Renesas APE6,Renesas R-Car H2,Renesas MP6530, Alpine AL-212
Cortex-A17Rockchip RK3288
v8-ACortex-A32超小型、低消費電力、電力効率重視。IoT機器向け。32ビット命令セット。
Cortex-A35低コスト、低消費電力、電力効率重視。64ビット命令セット。メモリ管理ユニット, TrustZone, 64bit仮想アドレス, synchronization primitives。[34]MediaTek Helio X30, NXP i.MX 8
Cortex-A53AArch64暗号化命令2.3 DMIPS/MHzSnapdragon 410, 412, 415, 425, 610, 615, 617, 625, 808, 810,HiSilicon Kirin 620, 930, 935,Rockchip RK3368,MediaTek MT6732, 6735, 6737, 6737T, 6738, 6750, 6752, 6753, Helio P10, P20, P25, X10, X30,Renesas R-Car H3, AMD/Xilinx Zynq UltraScale+ MPSoC, NXP i.MX 8, NXP S32G, S32R, TI AM67, 67A, 65x, 64x, 62P, 62x, 62Ax
Cortex-A574.1 DMIPS/MHzSnapdragon 808, 810, NvidiaTegra X1, SamsungExynos 7, Alpine AL-324,Renesas R-Car H3
Cortex-A72Snapdragon 618, 620, 650, 652, HiSilicon Kirin 950, 955, AWS Graviton, Marvell ARMADA 7K, 8K, NXP i.MX 8, TI AM68, 69, 68A, 69A, TI DRA82x, TI TDA4x
Cortex-A73HiSilicon Kirin 960, MediaTek Helio X30
v8.2-ACortex-A55Renesas R-Car S4, NXP i.MX 9
Cortex-A75L1D: 64 KB, メモリ管理ユニット, TrustZone, 64bit仮想アドレス
Cortex-A764命令decodeRenesas R-Car V4H
Cortex-A77
Cortex-A78
Cortex-A78C[35]
v9.0-ACortex-A510Dimensity 9000, Snapdragon 7 Gen 1, Snapdragon 8 Gen1, Snapdragon 8 Gen2, Exynos 2200
Cortex-A710Dimensity 9000, Snapdragon 7 Gen 1, Snapdragon 8 Gen1, Snapdragon 8 Gen2, Exynos 2200
Cortex-A715
v9.2-ACortex-A520コードネーム: Hayes
Cortex-A720コードネーム: Hunter
Cortex-Xv8.2-ACortex-X1英語版
v9.0-ACortex-X2Dimensity 9000, Qualcomm Snapdragon 8 Gen 1, Exynos 2200
Cortex-X3英語版Dimensity 9200, Snapdragon 8 Gen 2
v9.2-ACortex-X4英語版
Neoversev8.2-ANeoverse E1
Neoverse N1Ampere Altra, Altra Max, AWS Graviton2
v8.4-ANeoverse V1AWS Graviton3
v9.0-ANeoverse E2
Neoverse N2
Neoverse V2NVIDIA Grace

サードパーティー

[編集]
ファミリーアーキテクチャ名称特徴キャッシュ (I/D)/MMU性能 MIPS @ MHz採用製品
StrongARMv4SA-116 KB/8 – 16 KB, MMU1.0 DMIPS/MHz (203 – 206 MHz)
XScalev5TE80200/IOP310/IOP315I/O Processor
80219
IOP321en:Iyonix
IOP33x
PXA210/PXA250Applications processorザウルス SL-5600, SL-A300
PXA25532 KB/32 KB, MMU400 BogoMips @ 400 MHzen:Gumstix
PXA26x
PXA27x800 MIPS @ 624 MHzHTC Universal,ザウルス SL-C1000,3000,3100,3200,WillcomW-ZERO3シリーズ WS003SH,WS004SH,WS007SH,WS011SH,WS020SH
PXA800(E)F
Monahans1000 MIPS @ 1.25 GHz
PXA900Blackberry 8700, Blackberry Pearl (8100)
IXC1100Control Plane Processor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42xen:NSLU2
IXP460/IXP465
Snapdragonv7-AScorpionアプリケーション向け, 1 – 2コア対称型マルチプロセッシング, VFPv3, NEON, Thumb-2, Jazelle RCT,アウト・オブ・オーダー実行,投機的実行可変(L1+L2),MMU, TrustZone2.1 DMIPS/MHz (800 MHz – 1.5 GHz)Qualcomm Snapdragon S1, S2, S3 (第1 – 3世代)
Kraitアプリケーション向け, 1 – 4コア対称型マルチプロセッシング, VFPv4MMU, TrustZone3.3 DMIPS/MHz ( – 2.5 GHz)Qualcomm Snapdragon S4 (第4世代・S4 Playは除く), 400/600/800 (第5世代)
v8-AKryo64 KB/512 KB – 1 MB6.3 DMIPS/MHz ( – 2.6 GHz)Qualcomm Snapdragon 820
Centriqv8-AFolkerCentriq 2400
ARMADAv7-ASheeva PJ4アプリケーション向け, 1 – 4コア対称型マルチプロセッシング, VFPv3, Wireless MMX2, Thumb-2可変(L1+L2),MMU, TrustZone2.42 DMIPS/MHz ( – 1.5 GHz)Marvell ARMADA 500/600シリーズ
Sheeva PJ4B組み込み向け, 1 – 4コア対称型マルチプロセッシング, VFPv3, NEON, Wireless MMX2, Thumb-2可変(L1+L2),MMU, TrustZone2.61 DMIPS/MHz ( – 1.6 GHz)Marvell ARMADA XP/370/1500
Apple Axv7-ASwiftアプリケーション向け, 2コア対称型マルチプロセッシング, VFPv432 KB/32 KB1.1 GHz, 1.4 GHzApple A6,Apple A6X
v8-ACycloneアプリケーション向け, 2コア,AArch6464 KB/64 KB1.3 GHzApple A7
Cyclone gen 21.1 GHz, 1.4 GHz, 1.5 GHzApple A8
Typhoonアプリケーション向け, 3コア, AArch641.5 GHzApple A8X
Twisterアプリケーション向け, 2コア, AArch642.23 GHz, 2.35 GHzApple A9,Apple A9X
Hurricane, Zephyrアプリケーション向け, 2+2コア, AArch641.64 GHz, 2.33 GHzApple A10 Fusion
アプリケーション向け, 3+3コア, AArch642.38GHzApple A10X Fusion
Monsoon, Mistralアプリケーション向け, 2+4コア, AArch64L1: 64 KB/64 KB, L2: 8 MB2.39 GHzApple A11 Bionic
Vortex, TempestL1: 128 KB/128 KB, L2: 8 MB2.49 GHzApple A12 Bionic
アプリケーション向け, 4+4コア, AArch642.5GHZApple A12X Bionic, Apple A12Z Bionic
v8.3-ALightning, Thunderアプリケーション向け, 2+4コア, AArch64L1: 48 KB/48 KB, L2: 4 MB2.65 GHzApple A13 Bionic
v8.6-AFirestorm, IcestormL1: 192 KB/64 KB, L2: 12 MB/4 MB2.99 GHzApple A14 Bionic
Apple M1アプリケーション向け, 4+4コア, AArch643.2 GHzApple M1
Apple M1 Proアプリケーション向け, 6+2コア, 8+2コア, AArch64Apple M1 Pro
Apple M1 Maxアプリケーション向け, 8+2コア, AArch64Apple M1 Max
Apple M1 Ultraアプリケーション向け, 16+4コア, AArch64Apple M1 Ultra
Apple A15Avalanche, Blizzardアプリケーション向け, 2+4コア, AArch643.23 GHzApple A15
Apple M2アプリケーション向け, 4+4コア, AArch64L1: 192 KB/128 KB, L2: 16 MB/4 MB3.5 GHzApple M2
Apple M2 Proアプリケーション向け, 6+4コア, 8+4コア, AArch64L1: 192 KB/128 KB, L2: 32 MB/4 MBApple M2 Pro
Apple M2 Maxアプリケーション向け, 8+4コア, AArch64Apple M2 Max
Apple A16Everest, Sawtoothアプリケーション向け, 2+4コア, AArch64L2: 16 MB/8 MB/24 MB3.46 GHzApple A16
Tegra K1v8-ADenver128 KB/64 KBGoogleNexus 9,Xiaomi Mi Pad
ParkerDenver 2.0DRIVE PX2
XavierCarmelDRIVE Xavier, Jetson AGX Xavier
Exynosv8-AExynos M164 KB/2 MB

(4コアシェア)

Exynos 8890 (Exynos 8 Octa)
Exynos M2Exynos 8895
Exynos M3Exynos 9810

ARMv7-A, v8-A は以下の SoC で実装されている。

ARMアーキテクチャを採用しているCPU/メーカ

[編集]

ARMホールディングスの概要にあるように、ARMホールディングスはARMアーキテクチャの設計のみをしており、製造は行ってはいない。ARMはIPコアとして各社にライセンスされ、それぞれの会社において機能を追加するなどしてCPUとして製造される。製造されたCPUはそのまま、あるいはボード上に実装、もしくは製品に組み込まれた形で販売などされる。

以下に『CPUそのもの』『ボード上に実装したもの』などCPUやボードのシリーズ名やブランド名などが明確な主なメーカ名/CPU名/シリーズ名等を記する。

32ビットARM

[編集]

命令セット

[編集]

ARM は RISC プロセッサであり、Thumb 命令ではなく ARM 命令の場合、その命令セットは

  • 32ビット固定長命令
  • ロード/ストアアーキテクチャ
  • 3オペランドのレジスタ間演算
  • 多くの命令が1サイクルで実行可能

といった、多くの32ビットRISCプロセッサに共通する特徴が見られる。

ARMプロセッサは、PC相対アドレッシングやプレ-/ポスト-インクリメント・アドレッシングモードなど、RISCとみなされる他のアーキテクチャと比べ、豊富なアドレッシングモードを持っている。

もう一つ留意すべきことは、ARMの命令セットが時間とともに増加しているということである。例えば、初期のARMプロセッサ(ARM7TDMIより以前のもの)は2バイトの値をロードする命令がなかった。

CPUモード

[編集]

32ビット ARM アーキテクチャはいくつかのCPUモードを持つ。同時には1つのモードにしかなれない。命令や外部からの割込みなどでモードが切り替わる[36]

ユーザーモード
唯一の非特権モード。
高速割込みモード
FIQ 割込みが発生したときに切り替わる特権モード。
割込みモード
IRQ 割込みが発生したときに切り替わる特権モード。
スーパーバイザーモード
CPU がリセットされたときか SWI 命令が実行されたときに切り替わる特権モード。
アボートモード
プリフェッチアボートかデータアボート例外が発生したときに切り替わる特権モード。
未定義モード
未定義命令が実行されたときに切り替わる特権モード。
システムモード (ARMv4以降)
これが唯一例外が原因で切り替わるモードではない。CPSRレジスタにこのモードを書くことによりこのモードに切り替えることが出来る。
MONモード (要セキュリティ拡張)
TrustZone 拡張をサポートするために作られたモニターモード。
HYP 別名 PL2 モード (ARMv7以降)
仮想化拡張、ハイパーバイザーモード。[37]

レジスタ

[編集]

レジスタ R0 から R7 は全ての CPU モードで同一。これらは決してバンクされない。

R13 と R14 はシステムモード以外の全ての特権 CPU モードでバンクされる。独自の R13 と R14 を持つことにより例外からそれぞれのモードに切り替えられる。R13 はスタックポインタ、R14 は関数からの戻りアドレスを持つ。

CPU モードごとのレジスタ
usrsyssvcabtundirqfiq
R0
R1
R2
R3
R4
R5
R6
R7
R8R8_fiq
R9R9_fiq
R10R10_fiq
R11R11_fiq
R12R12_fiq
R13R13_svcR13_abtR13_undR13_irqR13_fiq
R14R14_svcR14_abtR14_undR14_irqR14_fiq
R15
CPSR
SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq

別名:

  • R13 は SP とも呼ばれ、スタックポインタ
  • R14 は LR とも呼ばれ、リンクレジスタ
  • R15 は PC とも呼ばれ、プログラムカウンタ

CPSR は下記32ビットを持つ[38]

  • M (ビット 0 - 4) はプロセッサモードビット
  • T (ビット 5) は Thumb ステートビット
  • F (ビット 6) は FIQ 無効ビット
  • I (ビット 7) は IRQ 無効ビット
  • A (ビット 8) は不正データアボート無効ビット
  • E (ビット 9) はデータエンディアンビット
  • IT (ビット 10 - 15 と 25 - 26) は if-then ステートビット
  • GE (ビット 16 - 19) は greater-than-or-equal-to ビット
  • DNM (ビット 20 - 23) は書き換え禁止ビット
  • J (ビット 24) は Java ステートビット
  • Q (ビット 27) は sticky overflow ビット
  • V (ビット 28) はオーバーフロービット
  • C (ビット 29) は carry/borrow/extend ビット
  • Z (ビット 30) は零ビット
  • N (ビット 31) は negative/less ビット

VFP/NEON用として、これらとは別に32ビット用はs0〜s31のレジスタがある。これらは、64ビットレジスタとしてd0〜d15として使える。s0〜s31とd0〜d15はオーバーラップしている。大半の ARMv7-A SoC はさらに、d16〜d31も使える。

VFP/NEON用のシステムレジスタとして、以下の3つがある。

  • FPSCR - Floating-point status and control register (浮動小数点状態制御レジスタ)
  • FPEXC - Floating-point exception register (浮動小数点例外レジスタ)
  • FPSID - Floating-point system ID register (浮動小数点システムIDレジスタ)

条件実行

[編集]

ARMの命令セットにおいてユニークなのは、マシン語の最上位4ビットを占める条件コードを使用した条件実行命令であり、これによってほぼ全ての命令を分岐命令無しに条件付きで実行することができる。

これにより、マシン語中の即値フィールドに割けるビット数が減ってしまう等の欠点もあるものの、小さなif文に対応するコードの生成時に分岐命令を避けることが可能になる。例として、ユークリッドの互除法を挙げる。

(この例はC言語による)

intgcd(inti,intj){while(i!=j){if(i>j)i-=j;elsej-=i;}returni;}

ARMのアセンブリ言語では、whileループの部分は以下のようになる。

loopCMPRi,Rj; i と j を比較SUBGTRi,Ri,Rj; もし "GT" ならば i = i - j;SUBLTRj,Rj,Ri; もし "LT" ならば j = j - i;BNEloop; もし "NE" ならば loop に戻る

通常分岐命令を使用しなければならないthenやelse節のところで分岐が省かれていることが分かる。

命令セットのもう一つのユニークな機能が、シフト演算を「データ処理」(算術演算、論理演算、レジスタ間の代入)命令の中に織り込むことができることである。例えば、C言語の

a+=(j<<2);

のような文を1つのARM命令

ADDRa,Ra,Rj,LSL#2

として表すことができる。

これにより、多くのARMプログラムは通常RISCプロセッサに期待されるようなプログラムよりも密度の高いものになる。このため、命令フェッチに伴うメモリへのアクセス頻度が少なくなり、分岐に伴うストールも回避しやすく、パイプライン処理を効率的に使うことができる。このことが、ARMがARMより複雑なCPUデザインと競合することを可能にした特徴的な一因のひとつである。

Thumb

[編集]

ARMプロセッサはThumbと呼ばれるコード効率の向上を意図した16ビット長の命令モードを持っている(SuperHの命令16ビット/データ32ビットに倣い追加された[要出典])。条件実行のための4ビットプレディケートが削除されている。メモリポートやバスが32ビットよりも狭い状況において32ビットコードよりも性能が向上する。多くの場合、組み込みアプリケーションでは32ビットのデータパスを持っているのは一部のアドレス範囲のみであり(例:ゲームボーイアドバンス)、残りは16ビットかそれよりも狭くなっている。このような状況では、Thumbコードをコンパイルし、CPUに最も負荷のかかる部分だけを32ビット長の命令セットを使用して手作業で最適化するのが、通常は理にかなっている。Thumb命令とARM命令は単一の実行ファイル内で混在が可能であるが、Thumb命令を実行できるモードとARM命令を実行できるモードは独立しており、両者を使うにはその都度プロセッサの状態を切り替える必要がある。状態の切り替えは分岐命令 (BX, BLX) で行うことができるため、通常は関数単位でThumb命令とARM命令を使い分け、関数呼び出しの際に切り替えを行うのが一般的である。

Thumbテクノロジを搭載した最初のプロセッサはARM7TDMIである。ARM9とそれ以降のファミリは、XScaleも含めて全てThumbテクノロジを搭載している。

Thumb-2

[編集]

Thumb-2テクノロジは2003年に発表されたARM1156コアで登場した。Thumb-2はThumbの制限された16ビット長の命令セットを追加の32ビット長命令で拡張し、命令セットの幅を広げるものである。公称されているThumb-2の目的は、Thumbと同様のコード密度と32ビットメモリ上でのARM命令セットと同様の性能を得ることであり、Thumb-2はビットフィールド操作、テーブル分岐や条件付き実行などを含んでいる。従来はThumbモードにおいて使用可能な汎用レジスタは8本のみであり自由度が低かったが、Thumb-2で導入された32ビット長命令では16本全てのレジスタが使用可能である。16ビット長命令と32ビット長命令はモードの切り替えなしで混在可能であるため、ThumbモードにおいてもARMモードに近い自由度が得られるようになった。

Jazelle

[編集]

ARMは、Javaバイトコードをハードウェアでネイティブに実行できる技術を実装した。これはARMやThumbモードと並ぶもう一つの実行モードであり、ARM/Thumbの切り替えと同様にしてアクセスすることができる。後述のJazelle RCTに対してJazelle DBX (Direct Bytecode eXecution) とも言う。

Jazelleテクノロジを搭載した最初のプロセッサはARM926EJ-Sである。CPU名の'J'がJazelleを表している。

Thumb Execution Environment (ThumbEE)

[編集]

ThumbEEJazelle RCT (Runtime Compilation Target)とも呼ばれる第4のモードである。2005年にアナウンスされ、Cortex-A8プロセッサで最初に実装された。Thumb-2命令セットに小規模な変更を加えたもので、JITコンパイラのように実行時にコードを生成する場合に向いている。主な対象はJava.NETMSILC#など)、PythonPerlなどの言語である。

DSP 拡張命令

[編集]

デジタル信号処理とマルチメディアアプリケーション向けに ARMアーキテクチャを拡張するため、いくつかの命令が追加された[1]ARMv5TEARMv5TEJ というアーキテクチャ名の "E" がこれを表していると思われる。

追加された命令は、デジタルシグナルプロセッサアーキテクチャで一般的なものである。例えば、符号付積和演算、飽和加算と飽和減算、「先行する0のカウント」のバリエーションである。

SIMD

[編集]

ARMv6で導入された[39]。32ビット幅。

Advanced SIMD (NEON)

[編集]

Advanced SIMD拡張はNEONとも呼ばれ、メディアおよびデジタル信号の処理に向いた64ビットと128ビットSIMD命令セットである。8/16/32/64ビットの整数演算と、32ビット (単精度) 浮動小数点演算のためのSIMD命令が定義されており、ARMv7から利用可能。32ビットCPUでは倍精度浮動小数点数は利用不可で、倍精度にはVFPを使用。

ほとんどの ARMv7 SoC で NEON に対応しているが、NVIDIA Tegra 2 シリーズ、SPEAr1310、SPEAr1340 などで対応していない。

レジスタはVFPレジスタとして用意されている32本の64ビットレジスタを用いて、32本の64ビットSIMDレジスタ (D0-D31) 、もしくは16本の128ビットSIMDレジスタ (Q0-Q15) としてアクセスできる。例えば128ビットレジスタQ0はD0とD1の2つの64ビットレジスタの領域にマッピングされている。

Cortex-A15 などより、NEONv2 (version 2) が搭載され、Fused Multiply-Add ができる。これにより、単精度浮動小数点数で 8 FLOPS/cycle となった。

Wireless MMX

[編集]

Wireless MMX (WMMX) はインテルがXScaleプロセッサ向けに開発したSIMD命令セットである。64ビット幅のレジスタが16本用意されており、8/16/32/64ビットのSIMD整数演算が可能。XScaleとその売却先であるマーベル・テクノロジー・グループ製のARM SoCに採用されている。命令セット自体はx86プロセッサのMMXとは全く異なるものの、GCCVisual C++等のコンパイラで利用できる組み込み関数はMMXとの互換性がある程度確保されており、これを利用すればMMX向けに記述されたコードを比較的容易に移植することができる。

VFP

[編集]

VFP (Vector Floating Point) はARMアーキテクチャのコプロセッサ拡張である。半精度(v3以降)・単精度・倍精度の浮動小数点演算機能を提供する。

  • VFPv1 - 廃止
  • VFPv2 - ARMv5TE、ARMv5TEJ、ARMv6 で利用可能
  • VFPv3 - ARMv7 で利用可能。通常はレジスタ数32個であるが、NVIDIA Tegra 2 シリーズなどはレジスタ数が半分のVFPv3-D16を採用。Cortex-A8の実装はパイプライン化されておらず非常に低速 (VFP Lite)。
  • VFPv4 - Cortex-A5, A7, A15,Apple A6,Snapdragon Krait などで利用可能。IEEE754準拠の(乗算結果の丸めを行わない)Fused multiply add 対応。VFPv4-D16 もあり。

"Vector" の名を冠する通り、いくつかの命令においてはベクタモードと呼ばれる1命令で複数のレジスタに対して演算を行うモードが用意されている。このモードを使えばSIMD演算が可能であるが、プログラミングモデルがやや煩雑[注釈 1]であったことや、当時のARM11プロセッサにおける実装はスカラ命令を要素数分だけシーケンシャルに実行するというSIMD演算のメリットを享受できないものであったため、あまり積極的には使われなかった。VFPv3を実装するARMv7世代以降ではモダンなSIMD命令セットであるAdvanced SIMD拡張命令 (NEON) が導入されたため、現在ではベクタモードの利用は推奨されていない。Cortex-A9やA15ではベクタモードに対応していない[注釈 2]ことから分かるように、現在のARMアーキテクチャにおけるVFPの位置づけはスカラ専用の浮動小数点演算コプロセッサであり、SIMD演算用途についてはNEONに道を譲っている。

単精度の浮動小数点演算はNEONでも実行可能であるが、倍精度の浮動小数点演算やIEEE754準拠の4つの丸めモード、非正規化数のサポート等はNEONには存在しないため、これらを利用したい場合はVFP命令を使う必要がある。

64ビットARM

[編集]
→詳細は「AArch64」を参照

64ビット命令セットのAArch64やARM64に関してはAArch64を参照。

脚注

[編集]
[脚注の使い方]

注釈

[編集]
  1. ^ベクトルレジスタが明示的に用意されておらず、複数のスカラレジスタに対して演算を行う。ベクタ長は固定されておらず、FPSCRという特殊なレジスタで最大8要素までのベクタ長を指定可能。また、レジスタがスカラモードのみで使えるバンクとベクタモードで使えるバンクに分けられており、レジスタの組み合わせに制約がある。
  2. ^ARMプロセッサのベクタモードへの対応はMVFR0レジスタの24-27ビット目を参照することで確認できる。

出典

[編集]
  1. ^Arm’s Solution to the Future Needs of AI, Security and Specialized Computing is v9
  2. ^Arm® (日本)|半導体IP|アーム公式サイト – Arm®”. arm.com. 2022年11月18日閲覧。
  3. ^世の中ARMだらけ!? 現代社会を支える「ARM」ってなんだろう?”. ドスパラ. 2022年11月18日閲覧。
  4. ^ARMとは”. コトバンク. 2022年11月18日閲覧。
  5. ^Armがマイコン向けハイエンドCPUコア、Cortex-M85発表”. 日経. 2022年11月18日閲覧。
  6. ^http://www.arm.com/miscPDFs/3823.pdf
  7. ^スマホ向け「CPUコア」で世界シェア9割超のARMを買収
  8. ^http://www.jp.arm.com/pressroom/08/080125.html
  9. ^https://news.mynavi.jp/techplus/article/20100910-cortex-a15/
  10. ^https://ascii.jp/elem/000/000/645/645995/
  11. ^abcdefDouglas Fairbairn (2012年1月31日). “Oral History of Sophie Wilson”. 2016年3月3日時点のオリジナルよりアーカイブ。2016年2月2日閲覧。
  12. ^Wilson, Roger (2 November 1988).“Some facts about the Acorn RISC Machine”.Newsgroupcomp.arch. 2024年9月12日閲覧.
  13. ^スマートフォンを席巻するARMプロセッサーの歴史”. ASCII.jp (2010年12月20日). 2013年7月24日閲覧。
  14. ^ARMが初の64ビットCPU「Cortex-A50シリーズ」発表、サーバー向けに16コア以上に対応”. ITpro (2012年11月1日). 2014年11月27日閲覧。
  15. ^2005年、ARM社のセミナー資料による。
  16. ^Sony Japan | プレスリリース| クリエ用新アプリケーションCPU「Handheld EngineTM」の開発について”.www.sony.co.jp. 2019年4月8日閲覧。
  17. ^News:米速報:次世代マイクロアーキテクチャ「ARM11」発表
  18. ^Googleが新型「Chromebook」を発表、Samsung製で249ドル
  19. ^【PC Watch】 Samsung、初のARM Cortex-A15プロセッサ「Exynos 5250」
  20. ^日本TI、モバイルの概念を一変させる高性能、高機能のOMAP™5プラットフォームを発表
  21. ^【後藤弘茂のWeekly海外ニュース】 ARMが次世代CPU「Atlas」と「Apollo」の計画を発表
  22. ^AMD’s K12 ARM CPU Now In 2017
  23. ^苦難の2013年を越え、輝かしい2014年に賭けるAMD (大きな期待が寄せられているサーバー向け64ビットARMプロセッサ)
  24. ^ARM Sets New Standard for the Premium Mobile Experience - ARM
  25. ^Qualcomm Introduces Next Generation Snapdragon 600 and 400 Tier Processors for High Performance, High-Volume Smartphones with Advanced LTE | Qualcomm
  26. ^"ARM Cortex-M1", ARM product website. Accessed April 11, 2007.
  27. ^"ARM Extends Cortex Family with First Processor Optimized for FPGA", ARM press release, March 19 2007. Accessed April 11, 2007.
  28. ^ARM Cortex-M1
  29. ^Actel: 製品とサービス: プロセッサ: ARM: Cortex-M1
  30. ^AnandTech | Cortex-M7 Launches: Embedded, IoT and Wearables
  31. ^Cortex-M7 Overview - ARM
  32. ^Cortex-M23 Overview - ARM
  33. ^Cortex-M33 Overview - ARM
  34. ^ARMv8-A Synchronization primitives”. p. 6. 2024年1月3日閲覧。
  35. ^Ltd, Arm. “Cortex-A78C”.Arm | The Architecture for the Digital World. 2023年1月14日閲覧。
  36. ^Processor mode”.ARMホールディングス. 2013年3月26日閲覧。
  37. ^KVM/ARM”. 2013年4月3日閲覧。
  38. ^2.14. The program status registers - Cortex-A8 Technical Reference Manual
  39. ^DSP & SIMD - ARM

関連項目

[編集]

外部リンク

[編集]
CISC
過去
現行
RISC
過去
現行
ARMベースのチップ
アプリケーションプロセッサー
Cortex-A5
Cortex-A7
Cortex-A8
Cortex-A9
Cortex-A15
Cortex-A57
Cortex-A76
ARMv7-A互換
ARMv8A互換
組込み用マイクロコントローラ
Cortex-M0
Cortex-M0+
  • フリースケール Kinetis L
  • NXPLPC800
Cortex-M1
Cortex-M3
Cortex-M4
  • AtmelAT91SAM4
  • フリースケール Kinetis K
  • テキサス・インスツルメンツOMAP 5
Cortex-M4F
リアルタイム処理マイクロコントローラ
Cortex-R4F
  • テキサス・インスツルメンツ RM4, TMS570
Cortex-R5F
  • Scaleo OLEA
クラシックプロセッサー
ARM7
Atmel
NXP
STマイクロエレクトロニクス

STR7

ARMv4互換
ディジタル・イクイップメント・コーポレーション
ARM9
ARMv5互換
ディジタル・イクイップメント・コーポレーション
マーベル・テクノロジー・グループ
  • Sheeva
  • Feroceon
  • Jolteon
  • Mohawk
ARM11
ARMv6互換
メイン
アーキテクチャ
ファミリー
4ビット
8ビット
16ビット
32ビット
インタフェース
プログラミング
デバッグ
シミュレータ
関連項目
カテゴリカテゴリ
典拠管理データベース: 国立図書館ウィキデータを編集
https://ja.wikipedia.org/w/index.php?title=ARMアーキテクチャ&oldid=105096851#Cortex-M3」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2025 Movatter.jp