05 | 思考题解读:如何实现可自我迭代的计算机?
该思维导图由 AI 生成,仅供参考
需求分析
- 深入了解
- 翻译
- 解释
- 总结
本文探讨了构建一台具有最小功能集但计算能力可自我迭代的计算机的需求分析和设计思路。作者强调了需求分析的重要性,指出准确的需求分析是良好架构设计的基础。在需求分析时,要区分需求的变化点和稳定点,稳定点是系统的核心能力,而变化点需要对应地考虑扩展性上的设计。文章通过讨论实现一个最小化的计算能力可自我迭代的计算机的需求分析,展示了架构师在设计过程中需要考虑的重要因素。文章详细讨论了计算机的各个组成部分,包括中央处理器、存储、输入输出设备以及外置存储的数据格式设计等。同时,还探讨了BIOS和外置存储软件的分工,以及外置存储上的引导程序需要实现的功能。整体而言,本文为读者提供了对构建可自我迭代计算机的深入理解,强调了需求分析和设计思路的重要性。 文章通过讨论构建一台具有最小功能集但计算能力可自我迭代的计算机的需求分析和设计思路,强调了需求分析的重要性。作者指出准确的需求分析是良好架构设计的基础,要区分需求的变化点和稳定点。文章详细讨论了计算机的各个组成部分,包括中央处理器、存储、输入输出设备以及外置存储的数据格式设计等。整体而言,本文为读者提供了对构建可自我迭代计算机的深入理解,强调了需求分析和设计思路的重要性。
《许式伟的架构课》,新⼈⾸单¥68
全部留言(71)
- 最新
- 精选
- Enthusiasm总结:设计系统架构的前提是用户需求分析,用户需求包括分析出稳定需求点和变化需求点。从功能上看,稳定需求点一般是实现偏核心需求的需求点,变化需求点往往是实现偏扩展性需求的需求点。从层次结构上看,稳定需求点往往在系统层次的底层,而变化需求点往往在更加抽象层(上层)。从从属关系上看,稳定点需要提供功能给变化点使用,变化点调用稳定点提供的功能。从时间顺序看,稳定需求往往先现是变化点实现的基础,变化点通过调用已经实现的稳定点提供的功能来实现更为抽象的功能。 系统架构类似于一个栈的结构,人机交互(变化点)放在栈顶,底层工作(稳定点)置于栈底。 这节课程让我联想到网络中的OSI 7层模型。大概其也体现了这种软件架构思想。好处就是架构清晰,职责明确,功能规范等等。 以往我认为的架构设计类似上面的描述,描述起来类似按自顶向下顺序,采用分治思想完成。但许老师的方法又有些巧:架构好比搭积木,许老师是先有了很多积木(需求点),然后把再确定这些积木放在哪一层次的格子里。这简化了架构设计的难度,好比用市场经济代替计划经济,很有趣。 架构设计博大精深,灵活多变,初学课程的我们,对架构设计的学习,也只能算是盲人摸象。
作者回复: 很赞的总结
2019-05-023166 - s已经很久没有看到这么赞的文章了,起初踏入编程的大门就是想创造,在我眼里设计一个项目仿佛完成一个完美的艺术品。工作了以后感觉这份激情渐渐的被磨平,面对客户需求,仅仅是 "他指哪,我打哪",软件的产出仅仅只是换钱的砝码。这篇文章又把我的梦想拉了回来。技术能解决的问题都不叫问题,唯独思想的升华是无价的,万分感激!
作者回复: 这是我听到的最好的赞美,感谢。能够唤醒人们对架构之美的追求,无疑是我最大的动力。
2019-05-08278 - 山口谈退隐去了看完这篇文章让我想起了在一本育儿书上看到过这么一句话:“当人们使用‘需求’这个词的时候,他们所说的常常是一个能够满足需求的解决方案而不是需求本身”。而需求分析就是为了找到问题,然后告诉人们,你其实还可以这么做而不是你应该这么做。
作者回复: 赞,很多人都有这个误区,以解决方案代替需求。要清醒认知这一点并不容易。
2019-05-08269 - 梦醒十分老师授课知识的角度很有深度,更贴切的说是一种思维方式,这种深度思考,从事情的本质重新推演与复盘的思考方式是很值得学习的。因为我们大部分人应该都没有想过自己去重新设计一个计算机的实现。
作者回复: 从无到有到万物,我们这个课的脉络之一就是重新从零构建整个信息世界,这一点在开篇词中提到过,这一点非常非常关键。另一个脉络是架构思维的递进,这一章重点是需求分析。这两个脉络相辅相成,交织在一起。
2019-04-3032 - Enthusiasm“活到老学到老”啊,突然意识到,不光是软件架构如此,连计算机系统架构也是如此。 我们从小学计算机,每门计算机课程的第一课总是概述“计算机由硬件系统和软件系统构成”。 今天,许老师通过抽象出“稳定点”和“变化点”的概念,从另一个角度带给我对这句话更深的理解,才让明白这句话的真正含义。 原来,所谓的硬件系统就是“稳定点”,软件系统就是“变化点”。 原来,一句最最平淡无奇的描述,一个最最基础的系统,也蕴含着“架构思维”。 万事万物其实是相通的,我的梦想就是,透过这些表象的描述,看到思想的本质。
作者回复: 硬件系统就是“稳定点”,软件系统就是“变化点”。挺好的总结。
2019-05-0220 - WL请问一下老师, 03和05两篇文章中的"可自我迭代的计算机"中的"可自我迭代"是啥意思, 是指的是计算机可以执行各种各样的外部程序吗?
作者回复: 指功能可以越来越强大,是活的机器,而不是能力固定的机器
2019-04-3019 - 程序员小跃拿到一个需求,需要做明确的需求分析,这是对我目前水平来说最有用的方式。文中讲的需求分析,让我受益很深。 不过实践部分,有点吃力,还需要细细品味才行。
作者回复: 做任何事情,首先要有正确的姿势,然后就是千锤百炼、熟能生巧了。
2019-04-3012 - Geek_88604f请问许老师,用户执行ls命令的时候,从系统架构图上看各模块之间是如何交互的?
作者回复: ls会调用文件系统,文件系统会调用外置存储的驱动程序,驱动程序会调用cpu的端口io指令。
2019-05-017 - ljf100001。这里外置存储应该包括我们平常所说的内存和硬盘。现在允许cpu直接执行存储上的指令,除了内存,可能大家熟悉的只有flash了。 2。如果没有cpu直接执行外置存储上指令的能力,就是有sh也没用,毕竟sh也是保存在外置存储上。
作者回复: 1、不包括内存。外置存储(外存)是指cpu不直接支持的存储。cpu直接支持的叫内置存储,包括:寄存器、内存(RAM)、主板上的ROM。 2、cpu并没有直接执行外置存储上指令的能力。它通过支持虚拟内存做到支持外置存储的。虚拟内存在某一个页不存在的时候发生缺页中断,缺页中断由某个函数响应,再把缺的页从外存读进来。
2019-04-3027 - 裴海港我觉得拿一个软件系统的架构作为例子是不是更好,因为对于有些人来说,BIOS,ROM,文件系统,驱动程序这些过于抽象,难有代入感,不便于消化吸收。
作者回复: 这个例子的确有点复杂。不过这些概念引入的时候都有相应的内容介绍,而且也是理解计算机很重要的基础,所以在例子类型上没有刻意避免。您可以说一下哪个概念比较难以理解,这样我可以多补充一下相关背景知识。
2019-04-307