NEWS

NEWS < etc

WSJ:AppleのJohny Srouji氏、M1チップ開発について語る

WSJ

WSJ

WSJが、Appleのハードウェアテクノロジー担当シニアヴァイスプレジデントJohny Srouji氏へのインタビューを掲載しています。

Srouji氏は、2008年3月にIBMから転職し、最初にiPhone用のチップを開発しました。

デバイスに対するAppleの特定のニーズに合わせてチップを設計するという彼のアプローチにより、Appleは、一般的な使用の要件を満たす必要があるサプライヤの既製のチップを使用するよりも、より強力でありながら効率的なチップを製造することに成功します。


Srouji氏は「人生で学んだことは、自分でコントロールできることはすべて考え、物事が計画通りに進まないときには、柔軟性と適応力をもって対応することです。」と話します。

Appleの自社製チップへの移行は、Appleのソフトウェア・エンジニアにとって頭痛の種になる恐れがあり、この問題は、Appleが2006年にPowerPCと呼ばれる以前のシステムからIntelチップに移行した際に苦労した問題でもあります。

この移行では、ノートパソコンのメイン基板を土壇場で何度も修正しなければならなかったと、この取り組みに携わった人物は語っていて「多くの人が、同じような問題が起こるのではないかと心配していました」と、この関係者は語っています。

Srouji氏は、この戦略の変更について、社内で激しい議論があったことを認めていて、このような部品を社内で設計することは、コンピューターメーカーとしては初めてのことであり、リスクも大きい。

999ドルのエントリーモデルのMacBook Airから、数千ドルのハイエンドデスクトップまで、幅広いニーズに対応することも、Srouji氏のチームが直面した課題の一つだったようです。

Appleのハードウェアエンジニアが、自社のニーズに合わせてできるだけ効率的にチップを設計しようとする一方で、同社のソフトウェアデザイナーは、スムーズなビデオゲームのグラフィックなど、同社が最も望む仕様になるようにコンピュータをチューニングしていったそうです。

「こうすれば、より良い製品を提供できるのではないか」。この議論について、Srouji氏は「それが1番の問題だ。チップの話ではない。Appleはチップの会社ではないのだから」と語っています。

次に、チームは、より多くの製品を扱うための筋肉を増強し、技術の行く末を予測しながら、製品を提供し、実行できるかどうかを見極めなければならないと、Srouji氏は述べ、Appleは、年間何億台ものデバイスを生産しながら、次世代製品のためのコンポーネントを開発し続けなければならないと説明しています。

Srouji氏は「私は、一度やって終わりということはありません。毎年、毎年、毎年です。それは大変な努力です」と語っています。

結局、AppleはiPhoneのチップ戦略をMacにも拡大することを決め、iPhoneのチップからMacに使われるチップまで、シリコンのスケーラブルなアーキテクチャを構築し、ソフトウェアが初日からネイティブに動くように努力しました。

サードパーティのソフトウェア開発者はすでに同社のチップに精通しており、移行を支援した。また、AppleはM1チップを搭載したMacがIntel搭載のMac用に開発されたプログラムを使えるようにする技術を開発しました。

ある元エンジニアリングマネージャーによると、Srouji氏のチームは製品開発の中心となり、特にエンジニアリングのニーズとビジネスの必要性のバランスを取る能力を発揮することで、彼の影響力は年々静かに大きくなっていったそうです。

Appleが生産開始前のチップを検証するための困難なテストを開始しようとしていた矢先、新型コロナウィルスによる影響により、アメリカ企業は遠隔操作の義務付けを行いました。この作業は、エンジニアが顕微鏡の前に集まって初期のシリコンの品質を検査する、労働集約的なものです。

新しいチップの開発を遅らせるという選択肢はなかく、そこで、Srouji氏は新しいテストプロセスを即座に設計することに取り組んだそうで、研究所のあちこちにカメラを設置し、エンジニアが遠隔地からチップを検査できるようにしたそうです。

これは、秘密主義と管理主義を貫くAppleでは、かつて想像もできなかったような変化だったと関係者は話しています。

Srouji氏のチームは世界中に散らばっており、サンディエゴやドイツのミュンヘンといった遠く離れた場所で仕事を調整しながら、ビデオ通話を通じてビジネスを行うことや時差を越えて働くことにすでに慣れていたため、このようにシームレスに業務を回すことができた面もあるそうです。


この記事をシェアする

おすすめ記事

この記事のハッシュタグ から関連する記事を表示しています。

500 Internal Server Error.

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 156

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(156): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '42742')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')

Trying to access array offset on value of type bool in /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php line: 157

#0 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry.php(157): Acms\{closure}('Trying to access array offset on value of type boo...', '/home/appleple2020/appleple.jp/public_html/mac.app...', Array)
#1 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET/Entry/Body.php(634): buildColumn(Array, Template, '42742')
#2 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(221): get()
#3 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/ACMS/GET.php(203): cache()
#4 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(5350): fire()
#5 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4747): boot('Entry_Body', '
<!-- BEGIN notFound -->
<section class="acms-entr...', ' id="body_blog"', Field_Validation, Field, Array)
#6 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(4603): mainBuild('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#7 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(1632): build('<!DOCTYPE html>
<html class="no-js" lang="ja">

<h...', Field_Validation)
#8 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#9 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1) : eval()'d code(529): {closure}('

//--------------------
// default statuscode
htt...')
#10 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/Application.php(254) : eval()'d code(1): eval()
#11 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/php/main.php(257): {closure}(' $____='printf';$___________='acms-ec70bb35...')
#12 /home/appleple2020/appleple.jp/public_html/mac.appleple.jp/index.php(69): require_once('/home/appleple2020/appleple.jp/public_html/mac.app...')