Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

M1でやってるらしい(Apple用の)最適化について、だって。

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった 

TwitterのTLに流れてきたの記録として、これ。

note.com

元ネタは、この人の以下のTweet(スレッド)

 全部で19スレッドになっていまっす。

最初の数スレッドは、メモリのオーダリングについてです。x86はLITTLE EndianでArmはbig EndianApple M1でx86コードのエミュレーションする時は、LITTLE Endian で動くということです。スレッド4)

あと、

JavaScriptを高速に実行するための機能を追加したのでは?

L1 Cacheが2倍になった。

Swift実行時の参照カウントのために何かを追加したのでは?

とあります。

JavaScriptとSwiftの高速化のために本当に何らかの仕組みって入っているのかしら?

 

L1 Cacheが2倍になったとありますが、Intelだと、L1 Data Cacheは48KBですが、M1では128KBなので2倍以上です。では、なんで2倍以上の128KBにできたのですか?

その点は非常に気になっています。L2のコア当たりでも M1は6倍です。LLCでも1.5倍のCacheを積んでいます。

Apple M1 : 
Firestorm : L1I : 192 KB、L1D : 128 KB、L2 : 12MB / Share
Icestorm : L1I : 128 KB、L1D : 64KB、L2 : 4MB / Share

Intel Core i (第10世代) : Ice Lake (Intel 10nm)
CPU : Ice Lake (L1I:32KB, L1D:48KB)
L2 Cache : 512KB/コア
LLC(全体) : 2MBxコア数