今天IT培训的时候,我向小朋友介绍了硬盘的一些属性和工作原理,然后就说了一句:“硬盘属于输入输出设备”,有人立刻提出了不同意见:“硬盘是存储设备”,还说让我不要误导小朋友。呵呵,我像是误导么?
其实,关于这个问题我也考虑过良久。这缘于一次上课,在这之前我也一直认为硬盘是属于存储设备的,而后忽然发现有人竟然说它是输入输出设备,一开始我也很惊讶,但仔细一想,并非觉得不无道理。那么在此,我将对这个讨论细细展开,不为求得一个真解,而是想与大家分享一下探索思考的乐趣。
首先,我简单介绍一下计算机的组成。一般说来,一个完整的冯诺依曼计算机由五大部件组成,分别是:
控制器:控制计算机其他部件的运行。
运算器:进行加、减、乘、除四则运算,与、或、非、异或等逻辑操作以及移位、比较和传送等操作。
存储器:用来存储微型计算机工作时使用的信息(程序和数据)。
输入设备:计算机用来接受指令和数据等信息的设备。
输出设备:输出设备是计算机负责传送处理结果的设备。
控制器和运算器合起来就是我们现在的CPU。存储器包括内存和外存,内存包括CPU内部的缓存器,以及我们常说的内存;外存包括硬盘,U盘等。输入设备有鼠标、键盘、扫描仪等。输出设备有显示屏、打印机 、音箱、绘图仪等。
教课书上是这么写的,考试的正确答案也是如此,一般有计算机基础常识的人都已把此当作真理。但是,我不禁要问,事实真的是这样嘛?
接下来,分别解析一下存储设备和输入输出设备的概念。
存储设备是由存储器引申过来的,当初冯诺依曼经典理论中只是定义了存储器的概念,而没有讲到存储设备。存储器是一种利用半导体技术做成的电子装置, 用来储存数据。电子电路的数据是以二进位的方式储存, 存储器的每一个储存单元称做记忆元或记忆胞。简而言之,存储器就是我们现在所说的CPU缓存和内存,当程序运行时,CPU先将数据调入存储器中,然后按照一定的算法进行计算。后来,由于电子材料的限制,内存的容量也受到了限制,而计算机处理的信息量是以几何级数增长的,内存不能满足人们的需求,从而其他存储介质应运而生了,衍生了我们现在的硬盘(磁性存储介质),光盘(光存储介质)等等,这类也较外存,并不是计算机必须的设备,只不过是内存的延伸。
由此看来,硬盘归为存储设备是当之无愧的。
那为什么却有人要说硬盘是输入输出设备呢。有这么一个定义:输入设备的任务是输入操作者提供的原始信息,并将它变成机器能识别的信息,然后存放在内存中;输出设备的任务,是将计算机的处理结果用人们或其它机器所能接受的方式输出。许多输入方式都有对应的逆方式进行输出。做这么一个比喻:我用输入设备——摄像头与远方的同学进行视频,是不是一种输入行为;那么我把我硬盘里的一个视频文件播放给给远方的同学看,是不是也是一种输入行为。再作个比喻:我用输出设备——打印机打印一篇我没保存在硬盘上的文档,是不是一种输出行为;那么我将我的一份制作好的文档存储在硬盘上,是不是也是一种输出行为。我这里所说的输入输出行为是相对计算机主机而言的。就是把硬盘当作一个类似键盘,显示器的外部设备,对CPU进行输入输出操作。我再解释的简单一些吧。大家有没有听说过过去计算机处理信息是用穿孔的纸带通过读孔器向内存和CPU传送数据的,CPU处理完的数据也是通过打孔输出的,这是最原始的输入输出设备。以此类推,硬盘存有数据的一部分就好比有孔的纸带,在硬盘上保存数据就像是在纸带上打孔。
我这样说似乎有点谬论的感觉,其实不然,我实际上是换了一个角度来思考,原先一直是以信息存储的角度看硬盘。而现在我从信息传送的角度看,当硬盘用作输入设备时,通过磁头将磁介质中记录的磁化状态转换为电信号,送入主机;当用作输出设备时,又可以把主机处理的结果保存到外存储器中。
为了探寻这个问题,我在网上查了很多资料,却没有一篇实质性的分析,大部分都很想当然的相信了“真理”,认为其他的说法都是错误的,更有甚至嘲弄歧义者,这本身就不是一个对科学严谨的研究态度。
我一直觉得我们这个社会太浮躁,包括我自己。有时没有真正明白事情内部的道理就盲目从众批判,或是有时根本不容许批判,自我反省一下。
世上本没有所谓的“真理”,而是要有一颗对“真理”追求的心,古往今来,有多少伟大的科学家,有多少伟大的思想家,都是从追求真理的路上走来的。呵呵,扯远了。
最后,做个总结吧。
对于硬盘到底是属于存储设备还是输入输出设备并不是那么重要,只要能理解它的各个属性以及工作原理就行了。到底怎么归类,我觉得两种都可以,但我比较偏向后者。说了那么多,大家可千万别被我“误导”哦。

