不知道为什么周围的人似乎都在抱怨一个问题:技术的变更迭代太快,如果不学习就跟不上潮流。
最近在看到一篇 2003 年的关于 AOP 的 文章 时突然有所感悟。
时至今日( 2019 年),将近 20 年后我们再看这此文时,关于软件构架与设计方面涉及到的问题、面临的困境、解决的办法似乎根本没有变化过。
这就不禁让人产生疑问:到底是技术变化太快还是我们理解技术的的深度不够。
101
FrankHB 2019-07-09 17:13:01 +08:00
@starsriver ALU 这个名字描述的是模块功能,不是具体的实现。我不清楚你所谓的“本质”论是哪来的。FPU 的本质是不是也是线性累加器?
你看起来一点都不了解实际工作是怎么完成的。找一坨实际 CPU 执行单元中 ALU 的 RTL 设计看看再说。或者在此之前,你示范一下如何靠线性累加器堆出硬件除法器? 微码跟汇编没直接关系。就算是类比,微码本身也是类似机器码编码出来的代码,而不是源语言。 微码的源语言说白了根本就没必要公开,也没多少汇编用户碰过,你怎么确定跟汇编“本质”一样?你做过微码实现方案? (很多人习惯把机器码和汇编混淆,如果他们能清楚汇编器做了多少多出来的破事以后可能会清醒一点。) 要是觉得这不可理喻,要么你来定义一下什么才应该是基础,然后指导一下现在的厂商怎么做? |
102
FrankHB 2019-07-09 17:33:48 +08:00
@q397064399 没谁否认模块化和可维护性的需求和重要性。
(实现这些需求不只是分层,分层还有某些特有的过度设计问题,然而这些都不是重点……) 重点是,你之前就没提分层,之后又把抽象层次搞混了。 一开始的所谓的“冯氏图灵机”根本就没分层,而且跟这个思路根本没关系,反而脱离实际。 我重新想了下,图灵机可能真的是 CS 导论和基础课程根本就不怎么讲的结果,那个冯诺依曼大概是组成原理以讹传讹? 历史上冯诺依曼架构(普林斯顿架构)、哈佛架构、改进的哈佛架构之类的设计包括哪些玩意儿都是相对明确的。 而包括你在内不止一个人似乎是把冯诺依曼架构和存储程序计算机搞混了。(被张尧学之流忽悠瘸了?) 冯诺依曼架构在 First Draft of a Report on the EDVAC 明确,只是存储程序计算机的一种。 现在的架构没逃离的是后者。这个思路说白了也根本就不是冯诺依曼先搞出来的,不会晚于 30 年代。ENIAC 前这个概念据说就很流行了,只是不知道最先是谁搞的。 更直接的问题是,冯诺依曼架构有冯诺依曼瓶颈之类的问题所以需要改进,而现在根本就没动机干掉存储程序这个设计……(难道还想退化成硬布线的计算器?)因此也根本不需要强调通用的计算机是存储程序。 至于屏蔽 ISA 以下的细节没问题,但是你提的取指以及并列的读数据、写数据(我理解成从数据通路里转移数据),这恰恰就是应该被 ISA 屏蔽的东西。 组成原理讲这些简单的实现帮助理解是没问题,但一知半解结果上就是破坏分层了。 |
103
j2gg0s 2019-07-09 17:35:39 +08:00
是有些人太喜欢造名词
|
104
dabaibai 2019-07-09 17:36:56 +08:00
你看汇编升级了吗
C 语言升级了吗 |
105
lidfather 2019-07-09 19:05:28 +08:00 via Android
那些 bb 什么本质不变,变的只是表面,你叫他写个垂直居中估计都费劲
|
106
snBDX1b0jJM4ogKd 2019-07-09 19:37:51 +08:00 via Android
@lidfather 你的 native 写得有点 naive🤣
|
107
starsriver 2019-07-09 23:06:25 +08:00 via Android
@FrankHB 技术不是杠出来的,你就是个杠精。不想把教科书搬过来,但是没办法。alu 之所以叫做算术逻辑运算单元,而我叫它线性累加器是有原因的。乘除法是通过位移和循环操作实现的,实际使用的就是触发器单元,说白了就是线性的东西,指令是开发者指定的,你要是愿意,完全用 bcd 码操作也没问题。我不想继续解释码制,控制字,以及 eu 这些东西。杠下去有什么意义?难道要把数字信号全部解释一遍?微代码说白了就是不规范的汇编语言,最基础的控制字设置指令,全是和硬件挂勾的东西。除非您能做出通用运算单元,几亿人用您的硬件,否则公开你的控制指令有意义吗?
|
108
wizardoz 2019-07-09 23:08:20 +08:00
底子好的怎么变都不怕
|
109
x4coder 2019-07-10 09:26:42 +08:00
本质都没变,从来都是 01~~~
|