这几天都在看一些关于嵌入式、单片机的书籍。今天上课的时候看到一段程序突然愣住了,我想程序是什么呢?程序是根据什么被人创造出来的呢?(我也不知道为什么会想到这些。)继续深入思考,我想到了之前看过的一本书里面关于程序的释义,程:规章、法式;序:依次排列。程序就是人给机器一个规则,让它按照这个规则有次序地完成指定工作。
那么程序是如何运行的呢?以嵌入式系统为例(没跑题,广义来说嵌入式系统是计算机系统的分支):程序先被写入ROM中,给系统供电之后,CPU中的运算器、控制器、寄存器开始工作,借助各种外部设备实现程序功能。是不是感觉很死板,不是很形象?接着看下去。接着我又想到了计算机老师讲过CPU之于计算机系统就像大脑(大脑并不准确,应为脑部,但读起来不是很顺畅)之于人。对于这句话,我以前的理解是CPU很重要,确实如此。但今天我发现,大脑和CPU的重要性,不只是计算机系统没了CPU程序就不能运行,人没了大脑就会死亡。大脑更重要的是能想CPU一样运行程序,或者说CPU就是计算机的发明者和IT界的大佬根据人体结构和人的行为机理创造出来的。但我至今没看到过这类书籍和文章,也可能是我读书太少,学识浅薄。但我还是想把我的思考写出来,以此来加强我的学习和对于嵌入式系统的理解。
那么我为什么说大脑能像CPU一样运行程序呢?因为我想到以前关于机器人的讨论,其中有一个是说人类会不会是更高成次的生命创造出来的,就像人类创造了机器人。我下意识地想不可能,但我又忍不住想人类是如何工作的呢?人的行为机理是什么呢?他们有没有相似点呢?人有很多解释,这里我们只说人体和人的行为。
结构相似
人体包括:脑部、神经、消化系统、五感器官、肌肉、骨骼、皮肤等等。消化系统提供能量,五感器官接收外界信息,通过神经传递给脑部,脑部的不同部位处理不同感官的信息,然后脑部做出相应的反应,通过神经来控制肌肉、骨骼等做出反应。而这些接收的信息,相应的反应都存放在海马体中。这难道不像一个嵌入式系统吗?电池提供能量,传感器接收信号,通过线路传输给CPU,CPU中的各种功能模块,寄存器、运算器、控制器开始工作,然后控制相应的外部设备做出相应的反应。RAM和ROM存放程序和数据。人体的各种器官就像嵌入式系统中的各种元器件一样,都有一定的承受能力,骨骼受到无法承受的力量就会骨折,电机的负载太大就会烧毁,电流太大二极管就会被击穿。
语言编译相似
计算机语言有高级语言和机器语言。程序员用高级语言编写程序,然后编译成机器语言,才能被计算机系统读懂。人类也有各种语言,中文、英文、甲骨文等等。一个人可能能看懂几种语言,但不可能看懂所有语言。那么语言是如何被看懂的呢?语言的本质是表达,当两种不同的语言表达同一种实物时,它们就是等价的,也就是可以相互翻译。
人一开始是不会任何“人类高级语言”的,人出生之后,有父母和老师教他们,妈妈指着爸爸,嘴里对孩子说这是爸爸,多次重复之后,孩子就知道了“这个人”是“爸爸”,这是我们通常知道的,但这是为什么呢?当妈妈每次重复是,孩子会将“爸爸”的信息存放在海马体中,包括相貌、声音等等信息,多次重复之后,孩子将“爸爸”的信息收集完全,当再次见到“爸爸”时,孩子就会从海马体提取这些信息,判断“这个人”=“爸爸”?如果是,就会从记忆中提取“爸爸”这两个字的发音,然后用嘴来表达出来。这就是从“人类高级语言”到“人类通用语言”的转化。
行为机理相似
人的最基本的行为机理就是接受信息、处理信息(选择、判断)、输出信息。
例如学生起床上学:闹钟响了(接收信息),正困呢,要不要睁眼起床(判断),看看闹钟,哦,快8点了(视觉信息),要迟到了(判断),骑车还是坐公交车呢(选择),还是骑车快一点(判断),骑车吧(输出信号)!
人虽然很复杂,但把人的行为机理简化到极致时,人就像计算机系统一样简单,输入信息、处理信息(选择、判断)、输出信息。
计算机系统和人具备三大相似点:结构相似、语言编译相似、行为机理相似。我不知道这是巧合还是就像一开始我说的,计算机系统可能是根据人的行为机理创造出来的。但一方面,我们可以通过研究人的更深层次行为来研究计算机系统的程序和硬件结构,就像深度学习,深度学习是机器学习研究中的一个新领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据。人和计算机系统都有自动存储信息的能力,人有遗忘无用信息的能力,计算机系统也有自动清理无用信息的能力(垃圾)。另一方面,我们可以通过类比的方法,可以更形象地学习嵌入式系统。
Lucky V著 2018年10月22日
网友评论