硬核!350 页报告,揭秘苹果 M1 为何如此强大(内附 PDF 下载)

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !

87bdff096f3fd57ae78c2c28ee19590a.png

近日,一位前苹果开发者写了一份350页的硬核技术报告,从逆向工程的角度对M1芯片的工作原理进行了详细分析,当然,硬核报告,阅读可能需要一点硬核知识。

苹果去年发布的 M1 芯片,因其令人难以置信的 IPC 和极高的能效震惊了科技界,让人们的注意力首次从 x86架构真正转移到事实上的高性能架构上。

然而,尽管M1性能强大,这款芯片的生态圈仍然秉承苹果一贯的封闭风格,任何想要利用 M1 硬件的人都要通过苹果自己的操作系统 Mac OS,否则就非常困难。

a692f0a702e7b9014e609cf2d0a1524a.png

尽管困难,许多工程师已经开始努力克服,最近有人甚至设法在 M1 芯片上完全运行了 Linux。

同样继续着这种尝试的则是Maynard Handley,他是前Apple Quick Time 的开发者之一,最近,他分享了一份 350 页的PDF,分析了 M1 ARM 芯片的内部工作原理。

该文档(当前版本 0.70)从逆向工程的角度深入研究了 M1 架构,并得到了该领域其他专业人士和爱好者的大力支持。

88ba72b5804460726a0aba9ae683cd9f.png

此次放出的这份分析报告蕴含的工作量不可低估。因为它既需要对 ARM 架构及其诊断工作有深入的了解,也需要数小时的测试、技术文档和专利文献阅读以及社区讨论。

af4c95634e693b066c3424587b51ef7f.png

点击上方图片,打开小程序,『美团外卖』红包天天免费领!
 

本文档是在 M1 芯片上收集已知的、现有的信息和逆向工程的研究结果,同时也包括作者自己的实验结果。

虽然这份报告还不是最终版本,但Handley的努力现在可以成为社区驱动的 M1-geared 圣经。报告中的部分内容还能为未来的进一步解密苹果芯片打下基础,比如对性能更强大的 Apple M2 进行逆向工程。

1e33a4c5f327a82c9614454bbe7dfd10.png

31210304117645c3183637d66ae1ea2e.png

希望这份报告可以为封闭系统专用硬件平台进入更受欢迎的开源平台打下一扇大门。

Maynard Handley在Twitter上放出了这份文件,

下载地址:(需梯子)

https://drive.google.com/file/d/1WrMYCZMnhsGP4o3H33ioAUKL_bjuJSPt/view

报告本来是写给自己的,需要一点硬核知识

作者表示,这份东西是他写给自己的,但受众是任何对M1芯片技术细节感兴趣的人,当然,读者需要比较高的CPU基础知识。

一起来看看他自己为这本报告写的导言:

我对 L1 缓存之前部分讨论的所有内容都相当有信心,这部分之前我有时间进行实验,仔细阅读专利,并编辑写作。

L1 缓存的讨论以及后面的所有内容都更具试探性。这部分内容可能未经任何实验(或者我对某些实验不满意,因为我一直在思考解释结果的新方法,因此结果不确定)。

从我参考的许多专利文献来看,我认为这份报告的基本思想是正确的,但这个结论是快速浏览和分析的结果,我没有彻底阅读或追踪所有相关专利文献。

即便如此,A15 及其配套芯片(也许是M2)很快就会问世,人们会想开始研究。希望以此文件可以作为一个引子,让以后的人可以将更多时间花在基本面分析上,以真正了解新事物,而不是花时间来重新发明轮子。

这份文件是实际上为我自己写的,目的是为对M1 芯片的调查和研究做个记录。这些调查采取实验的形式,过程中参考了许多苹果专利文献,所有报告内容都通过对学术文献的合理知识联系在一起。

任何对M1芯片的技术细节感兴趣的人都是本报告的潜在读者。本报告假定读者的关于CPU的知识程度比一般的互联网意见领袖高得多。报告中收录了大量论文和专利的参考资料。读专利和论文是需要努力下功夫的。

我建议读者可以跳过对自己没有吸引力的部分,无论是实验的设计方式、解释方式、围绕某一点的文献描述,还是专利文献。

我已尽力报告的内容准确。不过尽管如此,报告内容还是可能存在多个错误,无论是实验设计、实施、分析、我对专利的理解,还是其他任何方面,欢迎技术更正。

各位小伙伴如果对自己的技术底蕴有自信的,对苹果的专利感兴趣的,可以下载来看看。

参考链接:

https://worldrepublicnews.com/learn-all-about-apples-m1-with-this-350-page-deep-dive/

本文转载自:「新智元」,原文:https://tinyurl.com/4tuvfjpk,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。

8ff8f2455f79815eca1f20c208112e11.gif

8cba4cd3383598e5a47e2a6a145dfe9a.png

你可能还喜欢

点击下方图片即可阅读

d8854e53e40cc9c25615c016d7a9454e.png

一文搞懂 Kubernetes 中数据包的生命周期

0cc56d44dc2aa2d6c66f33d8824a35cf.png
点击上方图片,『美团|饿了么』外卖红包天天免费领

0ec48ae0c4d22d5abba4e1803fb842e9.png

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《程序员必知的硬核知识大全》是一本面向程序员的综合性知识手册,涵盖了各个领域的关键知识点,旨在帮助程序员提升技术水平和解决实际问题。该书以PDF格式出版,便于读者在电脑、手机等设备上随时查阅。 该书内容包括以下几个方面的硬核知识: 1. 编程语言知识:介绍了主流的编程语言,如Java、C++、Python等,包括语法、数据结构、算法等方面的内容。 2. 操作系统和计算机原理:详细介绍了操作系统的基本原理和常见问题解决方法,以及计算机组成原理和计算机网络等相关知识。 3. 数据库和存储知识:讲解了数据库设计和管理的基本原理,介绍了关系型数据库如MySQL和非关系型数据库如MongoDB等的使用方法和优化技巧。 4. 网站和网络开发知识:包括Web开发的基本原理、前后端开发技术、网络安全和性能优化等方面的内容。 5. 软件工程和开发方法论:介绍了软件工程的基本概念和常用开发方法,包括敏捷开发、测试驱动开发和持续集成等。 6. 设计模式和架构知识:详细介绍了常用的设计模式和软件架构,帮助程序员设计可维护、可扩展和高效的软件系统。 除了以上几个方面的内容,该书还涵盖了其他与程序员工作密切相关的技术和知识,如版本控制、软件部署、性能调优等。《程序员必知的硬核知识大全》适合本科或者有一定编程经验的程序员阅读,对于提高技术实力和职业发展都有很大帮助。 ### 回答2: "程序员必知的硬核知识大全 pdf"是一份提供程序员必备知识的电子书,PDF格式可以方便地在各种设备上阅读。这本书包含了各个方面的硬核知识,帮助程序员提高技术能力和解决问题的能力。 这本电子书的内容包括了数据结构和算法,编程语言,操作系统,网络通信,数据库管理等各方面的知识。对于程序员而言,这些都是非常重要的基础知识,能够帮助他们理解和设计高效的程序。 在数据结构和算法部分,程序员将学习到各种基础的数据结构,如数组、链表、栈和队列,以及常见的算法,如排序和搜索算法。这些知识对于程序的效率和性能优化至关重要。 编程语言部分将介绍多种编程语言,如C、C++、JavaPython等。这些语言在不同的领域有各自的优点和适用范围,程序员需要了解它们的特点和使用方法,以便在开发项目时选择合适的语言。 操作系统部分将深入讲解操作系统的原理和设计。程序员将了解到进程管理、内存管理、文件系统等重要概念,这些对于编写具有高可靠性和高性能的程序至关重要。 网络通信部分将介绍计算机网络的基本原理和常见的协议,如TCP/IP和HTTP等。程序员需要理解网络通信的基础知识,以便与其他系统进行数据交换和通信。 数据库管理部分将详细介绍关系型数据库和非关系型数据库的原理和使用方法。程序员需要了解数据库的设计和优化,以提高数据的存储和检索效率。 总之,这本电子书涵盖了程序员必备的硬核知识,对于提高他们的技术能力和解决问题的能力非常有帮助。 ### 回答3: 《程序员必知的硬核知识大全》是一本汇集了程序员必备的核心知识的书籍,可以帮助程序员提升自己的技术水平。这本书涵盖了计算机科学的各个领域和重要概念,包括数据结构与算法、操作系统、编程语言、网络通信、数据库、Web开发、软件工程等。 在数据结构与算法部分,书中介绍了常用的数据结构如链表、栈、队列以及各种排序和搜索算法,帮助程序员理解和应用这些经典的算法。在操作系统方面,书中讲解了进程、线程、内存管理、文件系统等重要概念,帮助程序员深入了解计算机系统的工作原理。 在编程语言方面,书中列举了多种编程语言的特性和应用场景,如C++、JavaPython等,有助于程序员选择适合自己的编程语言并掌握其特性。在网络通信部分,书中介绍了TCP/IP协议、HTTP协议等重要的网络通信协议和技术,帮助程序员理解网络通信的基本原理。 此外,书中还介绍了数据库的相关知识,包括关系数据库、SQL语言、数据备份与恢复等内容,有助于程序员设计和管理数据库。在Web开发方面,书中介绍了前端开发、后端开发、服务器部署等关键技术,帮助程序员构建高效、安全的Web应用程序。 最后,在软件工程方面,书中讲解了软件开发的生命周期、需求分析、设计模式、测试和持续集成等内容,有助于程序员理解和掌握软件开发过程中的重要环节。 总的来说,这本《程序员必知的硬核知识大全》提供了一站式的学习资料,涵盖了程序员必备的核心知识,可以帮助程序员系统地学习和应用这些知识,提升自己的技术能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值