2013-01-18

俺の俺による俺のためのARM Cortexシリーズまとめ(~A57/A53まで)

わからない・・・
ARMといえばアプリケーションプロセッサとしてのCortex-Aシリーズがすっかりガジェット好きの間でプレゼンスを広げていると思いますが、あまりにナンバリングが不規則で(マーケティング上の理由だと思いますが)、特にハイエンド以外で新しいアーキテクチャがよくわからないので、あくまで自分用に纏めようと一念発起してみました。

こうなってるよ!!
このエントリーが公開されて、この項が書かれているということは、自分の中での整理もひと通り済んでいるはずですw
また、発表時期は並んでいますが縦軸はあくまでイメージです。ご了承ください。


ちなみにこれ以降は時系列順(発表順)に記載します。

Cortexシリーズ前夜
ARM6、ARM7(E)、ARM9(E)、ARM11(E)等々。今でもARM9とかは組み込みプロダクトで目にします。消費電力とライセンス代の兼ね合いでしょうか。

Cortex-A8(2005/10/08発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a8.php
http://www.arm.com/about/newsroom/10548.php

  • 最初のCortex-Aシリーズ
  • 命令セットはARMv7
  • クロックは600MHz-1GHz
  • スーパースカラー並列処理(2命令)
  • 13段パイプライン/インオーダー実行
  • VFPv3
  • Thumb-2
  • NEON
  • Jazelle RCT
  • 統合L2キャッシュ(0-4MB)
  • 2.0DMIPS/MHz
  • プロセスルール65nm
  • 消費電力300mW以下
  • 「5年にわたって基準になるマイクロプロセッサ」[1]


Cortex-A8の採用プロダクト

  • Allwinner A1X
  • Freescale i.MX51
  • Rockchip RK2918, RK2906
  • Samsung Exynos 3110
  • TI OMAP 3
  • TI Sitara ARM MPU AM3x
  • Conexant CX92755
  • Samsung S5PC100


Cortex-A9(2007/10/03発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a9.php
(PDF) http://www.arm.com/files/pdf/ARMCortexA-9Processors.pdf

  • マルチコア構成を取る場合は「Cortex-A9 MPCore」という。MPCoreの場合はコア数1-4。
  • 命令セットはARMv7
  • クロックは特に記載なし。
  • スーパースカラー複数処理
  • 8段パイプライン/アウトオブオーダー実行
  • Thumb-2
  • NEONがオプションに
  • VFPv3浮動小数点演算(オプション、以前のものより高速)
  • TrustZoneセキュリティ拡張
  • JazelleDBXサポート(Javaバイトコード実行用)
  • Jazelle RCT
  • 2.50DMIPS/MHz/core ハイエンドでは1500-3000DMIPS、単機能向けに600-900DMIPS
  • 最適化L1キャッシュ
  • L2キャッシュ(0-4MB)
  • PrimeCell PL310 L2キャッシュコントローラ(-8MB)


Cortex-A9の採用プロダクト

  • Altera Cyclone V
  • Altera Arria V
  • AmLogic AML8726-M
  • Broadcom BCM11311
  • Calxeda EnergyCore ECX-1000
  • Freescale i.MX6
  • HiSilicon K3V2(Hi3620)
  • HiSilicon K3V2E
  • HiSilicon Kirin 910
  • HiSilicon Kirin 910T
  • Leadcore LC1810, LC1811
  • MediaTek MT6575, MT6577, MT6575M, MT6577T, MT6517, MT6517T
  • Nufront Nusmart 2816, 2816M, 115
  • nVidia Tegra2
  • nVidia Tegra3
  • Trident Microsystems 847x/8x/9x SoC family(謎)
  • ルネサスエレクトロニクス EMMA Mobile/EV2
  • Rockchip RK3066, RK292x, RK31xx
  • Samsung Exynos 4210, 4212, 4412
  • Sony PlayStation Vita
  • STMicroelectronics SPEAr1310, SPEAr1340
  • ST-Ericsson Nova A9500, NovaThor U8500, NovaThor U9500
  • TI OMAP4
  • Xilinx Extensible Processing Platform
  • ZiiLABS ZMS-20
  • Apple/Samsung S5L8940, S5L8942
  • Apple/Samsung A5X
以上Wikipedia(en)より。他にもいっぱいありそう



Cortex-A5(2009/10/22発表)

http://www.arm.com/ja/products/processors/cortex-a/cortex-a5.php
  • 低コスト、最高のエネルギー効率
  • ARM9(ARM926EJ-S)、ARM11(ARM1176JZ-2)からの移行
  • ARMv7アプリケーションに対する互換性(Cortex-A8、Cortex-A9、古いARM)
  • 1〜4コア
  • インオーダーパイプライン
  • 1.57DMIPS
  • DMIPSはARM926の1.9倍?、MHzあたりの消費電力はARM926よりも低い、Core面積はARM926よりもほんの少し大きい。またこれら指標は3つすべてARM1176より優れているので置き換え需要がある?
  • Thumb-2
  • DSP&SIMD拡張
  • VFPv4(オプション)
  • NEON(オプション)
  • Jazelle DBX,RCT
  • TrustZone
Cortex-A5の採用プロダクト
  • Qualcomm Snapdragon S1のうち MSM7225A/MSM7625A/MSM7227A/MSM7627A/MSM7225AB
  • Qualcomm Snapdragon S4 Play MSM8225/MSM8625/MSM8225Q/MSM8625Q
  • Qualcomm Snapdragon 200のうち MSM8225Q/MSM8625Q
  • Spectrum SC8810
  • AMD Fusionの将来のモデル(でキュリティコプロセッサとしてTrustZoneを使用)
  • Telechips TCC8923


Cortex-A15(2010/09/09発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a15.php

  • マルチコア構成だと「Cortex-A15 MPCore」?コア数1〜4?
  • 命令セットはARMv7
  • クロックは特に記載なし(ただし、想定ではモバイルの1〜1.5GHz 1or2コアからWebサーバ、無線インフラの2.5GHzの4コア)
  • プロセスルールは20nm
  • ハードウェア仮想化
  • 40bit物理アドレス拡張LPAEにより最大1TBのRAMにアクセス可能(スレッド単位では最大32bitアドレス)
  • スーパースカラー並列(3並列)処理
  • 整数15段、浮動小数演算17〜25段パイプライン/アウトオブオーダー実行
  • Thumb-2
  • NEON
  • DSP/NEON per core
  • VFPv4浮動小数演算 per core
  • TrustZoneセキュリティ拡張
  • Jazelle RCT
  • 32kBデータ+32kB命令統合L1キャッシュ
  • 低レイテンシ最大4MBperクラスタ 統合L2キャッシュ
PDFがないっぽくてあまり正確な情報がわからない

Cortex-A15の採用プロダクト
  • Broadcom SoC
  • nVidia Tegra4
  • Samsung Exynos 5250
  • ST-Ericsson Nova A9600
  • TI OMAP5
  • AllWinner A80(Cortex-A15/Cortex-A7)
  • HiSilicon Kirin 920(Cortex-A15/Cortex-A7)
  • HiSilicon Kirin 925(Cortex-A15/Cortex-A7)

Cortex-A7(2011/10/19発表)
http://www.arm.com/ja/products/processors/cortex-a/cortex-a7.php

  • 複数コア構成の場合は「Cortex-A7 MPCore」?
  • Cortex-A15のコンパニオンプロセッサとして、「big.LITTLE」構成を提案
  • ハードウェア仮想化
  • 40bit物理アドレス拡張LPAE
  • 命令セットはARMv7
  • コア数1〜4
  • Thumb-2
  • NEON
  • DSP&SIMD
  • VFPv4
  • Jazelle RCT
  • 最適化L1キャッシュ
  • 統合L2キャッシュ(オプション)
  • 8ステージパイプライン インオーダー
  • 部分的2並列
  • TrustZone
  • 1.9 DMIPS
Cortex-A15と同じ機能を持ちながら、電力効率を優先して性能を抑え目に。

Cortex-A7の採用プロダクト

  • MediaTek MT6589
  • AllWinner A80(Cortex-A15/Cortex-A7)
  • AllWinner A20
  • AllWinner A23
  • AllWinner A31
  • AllWinner A31s
  • AllWinner A33
  • AllWinner A83T
  • AllWinner H3
  • AllWinner H8
  • AllWinner R16
  • AllWinner R58
  • AllWinner T2
  • AllWinner T8
  • AllWinner V3
  • AllWinner V3s
  • AllWinner V10
  • Leadcore LC1813/LC1913/LC1860/LC1860C/LC1960
  • MediaTek MT6572/MT6572M/MT6571/MT6589/MT6589M/MT6589T/MT6582/MT6582M/MT6588/MT6592/MT6592M/MT6591/MT6595(Cortex-A17/Cortex-A7)/MT6595M(Cortex-A17/Cortex-A7)/MT6595Turbo(Cortex-A17/Cortex-A7)
  • Qualcomm Snapdragon 400のうち MSM8026/MSM8226/MSM8228/MSM8626/MSM8628/MSM8926/MSM8928
  • Qualcomm Snapdragon 210 MSM8909
  • Qualcomm Snapdragon 212
  • Qualcomm Snapdragon 208 MSM8208
  • Qualcomm Snapdragon 200のうち MSM8210/MSM8610/MSM8212/MSM8612

Cortex-A57(2012/10/30発表)
http://www.arm.com/ja/products/processors/cortex-a50/cortex-a57-processor.php
  • 命令セットはARMv8
  • 1-4対称コアクラスタ
  • AArch32(ARMv7完全互換)
  • AArch64
  • TrustZone
  • NEON
  • DSP&SIMD
  • VFPv4
  • ハードウェア仮想化
  • ハードウェア暗号化
  • 4GBの物理アドレスへのアクセス
  • 64bitの仮想アドレスへのアクセス(AArch64)
  • 最適化L2キャッシュ
  • 深いアウトオブオーダーパイプライン
  • TBD(まとまった資料と時間が見つかったら更新)

Cortex-A57の採用プロダクト
  • Qualcomm Snapdragon 810 MSM8994(Cortex-A57/Cortex-A53)
  • Qualcomm Snapdragon 808 MSM8992(Cortex-A57/Cortex-A53)

Cortex-A53(2012/10/30発表)
http://www.arm.com/ja/products/processors/cortex-a50/cortex-a53-processor.php
  • 命令セットはARMv8
  • 1-4対称コアクラスタ
  • AArch32(ARMv7完全互換)
  • AArch64
  • TrustZone
  • NEON
  • DSP&SIMD
  • VFPv4
  • ハードウェア仮想化
  • ハードウェア暗号化
  • 4GBの物理アドレスへのアクセス
  • 64bitの仮想アドレスへのアクセス(AArch64)
  • インオーダーパイプライン
  • TBD

Cortex-A53の採用プロダクト

  • Qualcomm Snapdragon 810 MSM8994(Cortex-A57/Cortex-A53)
  • Qualcomm Snapdragon 808 MSM8992(Cortex-A57/Cortex-A53)
  • Qualcomm Snapdragon 620 MSM8976(Cortex-A72/Coretx-A53)
  • Qualcomm Snapdragon 618 MSM8956(Cortex-A72/Coretx-A53)
  • Qualcomm Snapdragon 617 MSM8952
  • Qualcomm Snapdragon 616 MSM8939v2
  • Qualcomm Snapdragon 615 MSM8939
  • Qualcomm Snapdragon 610 MSM8936
  • Qualcomm Snapdragon 430 MSM8937
  • Qualcomm Snapdragon 415 MSM8929
  • Qualcomm Snapdragon 412 MSM8916v2
  • Qualcomm Snapdragon 410 MSM8916
  • AllWinner A53
  • AllWinner H64
  • MediaTek MT6732 MT6732M MT6735 MT6735P MT6735M MT6752 MT6752M  MT6753
  • MediaTek Helio P10; MT6755
  • MediaTek Helio X10; MT6795
  • MediaTek Helio X20; MT6797(Cortex-A72/Cortex-A53)
  • HiSilicon Kirin 620
  • HiSilicon Kirin 930
  • HiSilicon Kirin 935
  • HiSilicon Kirin 950(Cortex-A72/Cortex-A53)
別エントリにて各SoCの製造メーカーについて。

[1] http://www.itmedia.co.jp/news/articles/0510/26/news120.html

2013-01-02

amd64のDebianで32bitのWINEを使う

WINEとは
Wine Is Not Emulatorの略で、端的に説明すると「(i386アーキテクチャで)win32 APIをエミュレートする一連のソフトウェア」です。

昔は
Windowsを使っていたので、その時に使用していたソフトウェアを使いたいという理由から今回使います。というか、wine自体は前から使っているのですが、最近の変更でamd64アーキテクチャでのwineパッケージはデフォルトインストールでは64bit Windowsをエミュレートするようになったので、今回はそんなamd64環境のDebianで32bitのwineを使えるようにする方法を書き残しておきます。(私的メモ)

まだ必要?具体的に何にwine使うの?
個人的に困っているのは、現状のLinux環境ではUDF2.6ファイルシステムのイメージファイルが作れないっぽいので、ImgBurn[1]を使うためにwine使います。
(growisofsでBD-R/BD-REにはイメージを焼くことはできるのですが。)

まずは普通にwineインストール,ImgBurnインストール

# apt-get install wine

ダウンロードしてきたImgBurnのインストーラをwineの引数に指定して実行します。

$ wine SetupImgBurn_2.5.7.0.exe
(インストーラのパスは合わせてください)

これをやると、恐らく32bitのDebian上ではうまいこと行くんですが(最近は確認してないですが)、amd64環境でやると多分次みたいなダイアログが出ます。

i386アーキテクチャを指定してwineをインストール
なので、指示に従ってコマンドをポチポチと。
# dpkg --add-architecture i386
# apt-get update
# apt-get install wine-bin:i386
この状態でインストーラを起動すると(コマンドはさっきと同じ)

起動したよ!やったねたえちゃん!

[1] http://www.imgburn.com/