CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

什么是计算与存储分离?

已有 8949 次阅读 2015-1-29 11:01 |个人分类:机器计算|系统分类:科研笔记| 网络, 透明计算, 计算机大脑

什么是计算与存储分离?

姜咏江

“‘透明计算’的基本思路,是通过网络将存储、计算与管理分离,不仅能像云计算那样把数据和应用软件放在云端,而且把‘计算机的大脑’——操作系统也放到了云端。”

上面这段话是透明计算的发明人作出的解释,其中“计算”、“透明”的来源,“存储、计算与管理分离”还有什么是“计算机的大脑”需要理解清楚。

1.              什么是计算与机器计算

字面理解中文的“计算”一词有计划运算之意,运算一词本来来自数学,但现在人们很少区别计算与运算了。计算多用于求解数学问题,自从计算机出现之后,许多问题都用计算机来解决了,因而计算一词在计算机科学中频现并不陌生。

计算机是一种机器,原本用人计算的问题,现在用计算机这种机器去完成,自然就产生了机器计算的概念。所谓机器计算就可以定义为:用机器处理问题寻求结果的过程。

2.              计算机中透明一词的使用

计算机使用透明的意思是某些问题处理过程机器自动进行,不用人知道。这和日常生活中所说的“问题透明”恰是相反的概念。日常所说透明,意指“问题公布于众”让所有参与的人都清楚。而计算机科学当中近些年使用的“透明”,是指“问题解决的过程不用参与者知道,而只要知道问题的结果就行”。计算机科学中不用知道的人是有范围的。例如,所有的应用程序的具体处理过程对用户是透明的。在计算机领域典型用到“透明”一词是在流水线程序设计中,由于编译器能够自动处理相关问题(一些冲突),所以程序员不必在程序设计时考虑。这叫流水线程序设计对程序员透明。

 “透明计算”是计算机科学当中的问题,因而“透明计算”的含义自然是程序运行和数据存储用户不用知道,或者叫“不知不觉”。按照透明计算发明人的说法,“透明计算”应该是一种网络环境下的机器计算形式。这种机器计算的基本特征是通过网络将存储、计算与管理分离,不仅能像云计算那样把数据和应用软件放在云端,而且把‘计算机的大脑’——操作系统也放到了云端。

3.              计算与存储能分开吗?

说了什么是机器计算之后,我们来谈谈数据存储和计算有着怎样的关系。

3.1         计算机如何实现计算

计算机是机器,机器怎么能够象人一样进行计算呢?这先要说到人是如何进行计算的。第一,人要用文字符号表示信息(信息是是事物的表现或描述)。人的计算表现为对信息的处理过程。例如进行数值运算、写文章、照相、拍电影等都是信息处理的过程。这些信息处理的过程都有一个重要的基础依托,那就是信息存储。也就是事物各种各样表现或描述都要有一定是物质形态加以记录。计算机可以用电或磁的形式记录二进制信息,而所有其它存储形式的信息又都可以转化为二进制信息,故而计算机可以记录任何信息。此外,计算机可以在用电磁信号记录信息的同时,还能进行对信息的传输、转换、综合分析,进行算术运算等,这些就是信息处理,是所说机器计算的具体工作。

3.2         计算离不开存储

任何机器计算对象都会分为计算前和计算后两种状态。计算之前的信息一般称为数据,计算之后的信息一般称为结果。在计算机中计算的过程就是通过计算机程序的运行,将之前存在的数据转换成人们需要的结果。在计算机之中,计算又可以理解为程序执行的过程,而计算的对象或者说内容,一般称为数据。在程序运行过程中送入机器的那些数据称为输入,程序运算产生的结果脱离计算过程存储或显示起来又被称为输出。

在机器计算的过程中,计算和存储是不可分开的两个部分。从图灵开始,能够实现计算的机器结构就被确定下来了,其中包括存储器、运算器和控制器,它们是任何机器计算中都是缺一不可的组合。在这种组合之下,机器计算被控制分成了一些基本功能动作。一、从存储器中取出指令;二、对指令进行判定分析;三、根据指令语义执行,这其中包括对寄存器中存储的数据进行运算,对存储器或寄存器的读写,或者转移到存储器的某个位置去取下一条指令等。在机器计算的过程中存储是计算的基础和保证,如何可以说“计算与存储分离”?如果将控制器理解为“管理”部件,将管理也分离出去,那就更成问题了。

不在机器计算的过程中,如果说程序和数据(包括程序文件)分离,那是正确的。但那是有计算机出现的时候就有的事情。由于不论程序数据还是计算对象数据都是可以存储的,因而它们在不参加计算的时候可以随便放到自由的存储设备中保存,而不需要放到计算机的内存当中。程序和数据不仅能分开存储,还可以复制,依靠网络在广泛的地域之间进行传输。在这种不进行计算的状态下,毫无疑问存储和计算是处在一种分离状态。

4.              什么是计算机的大脑

存储器、运算器和控制器组成的整体是计算机的大脑,它是能够运行程序的基本单位,是所有机器计算过程所不能够缺少的部件。现在将这种能够运行程序的基本单位叫做“核”,意思就是“计算机的核心”。计算机核是一种硬件结构,也是机器最基本的智能结构,在任何能够进行计算的机器设备中,存储器、运算器和控制器都是缺一不可的整体,是构成所有智能设备的大脑。

操作系统OS是什么?是计算机管理软硬件分配使用的大管家,但绝不应该称之为计算机的大脑。众所周知,人无大脑不可活,计算机应该没有大脑也不能够进行计算吧?OS这个管家是没有了,计算机就不能进行计算了吗?现代操作系统的功能最重要的有程序调度的处理机管理、存储管理、设备管理、文件管理和用户管理等,其根本作用无外乎使计算机易用,不产生混乱,从而能够提高多任务情况下的效率。尽管操作系统由单处理机延伸到多处理机乃至网络,但OS是大管家的地位未变,怎么能够将其说成是“大脑”呢?

近些年的“软件时间消耗”研究已经非常明确地指出了计算机系统软件管理方式的弊端,指出OS抢占的机时占了有效程序执行的绝大部分时间,加之OS采用自发进程线程的理念设计,使病毒一类程序有了滋生的土壤,为计算机系统的安全运行带来了极大的隐患和破坏。这是操作系统的负面作用。一种取消OS,让程序自主运行的机制正在逐步取代计算机的这个大管家,一种全新的计算机管理模式正在逐步发展。OS只能说是计算机运行的一个充分条件,而不是必要条件。怎么能张冠李戴地将操作系统说成是计算机的大脑呢?

计算机没有操作系统还是可以进行计算的,因为那还是计算机,如果没有了运算器、控制器和存储器,计算机还能够计算吗?

5.              机器服务模式

计算机能够完成人重复性的脑力劳动,因而就出现了机器服务。计算机的服务体表现在计算机输入输出设备上。计算机设计者将各种输入输出设备与计算机核心设备相连,通过内存与外设输入输出数据交换,让人们得到所需要的结果。为了让使用者能够同机器交流,见到任务的结果等,计算机设计上专门设置了人机交互界面,通过人机交互界面的设备,完成提交任务给计算机,也通过这个界面了解机器工作情况和获得需要的计算结果。

在计算机服务模式中,用户会使用特殊的设备提供信息给计算机,其中包括处理的对象数据和程序数据。早期这种设备叫“工作站”。工作站的作用主要是传递信息,能够完成人机交流。这种工作站只是需要一些临时存储信息的设备,这种存储信息的设备叫缓存。通过缓存,人将信息传递给计算机核心部件,核心部件会根据需求,选择用户程序执行,或者根据用户提供的任务,选择在大型存储器的某些特殊位置放置的程序来执行,以此种方式来对计算机的使用者服务。

早期的机器服务模式一般出现在单个计算机的环境,用户可以是一个,也可以设计成分时服务的多用户形式。计算机和用户交流的设备称为终端。终端不进行计算,计算的工作都由计算机主机(核)的部分承担。对于输入输出人工较慢的问题,人们又设计了专门解决输入输出工作的计算机,那时称之为“通道”,把进行计算的计算机叫主机。通道计算机的任务相对简单,但它可以与主机独立并行工作,为主机打下手,从而大大提高了计算机整体的效率。有一个时期还提到了所谓的部件计算机,即是将计算机的某个部件做成一个功能相对简单的计算机,这种计算机最典型的解决数据快速输入输出的DMA、通道和替代控制矩阵运行微指令的内部计算机等。

6.              网络与客户服务器模式

多个计算机加上通讯设备就形成了网络。网络的优势就是可以进行多台计算机互联,形成联合计算和资源共享。小范围的网络称为局域网,大范围的网络就形成了广域网。由于网络可以形成资源互通和计算共享,所以就出现了客户服务器模式。一些网络公司组织了资源丰富的计算机系统,形成所谓的服务器,内中安装了许多人们经常需要的计算程序,当客户有需求的时候,就能够替代客户进行任务完成等一系列工作。用户通过网络将需求信息传输给服务器,服务器代客户组织资源,进行计算,完成任务后,再通过网络将结果传递给用户。客户服务器模式与多用户计算机系统的不同有两点:第一,客户端也是计算机,有些计算可以在客户端完成;第二,客户端和服务器的信息传递一般是在远距离的异地。基于这两个特点,实际计算机的计算工作可以分别在服务器端和客户端进行。这就是说没有将计算的工作完全放到服务器一方。

回头说说早期的IBM360370一类的大型机,这类计算机系统的组织基本上是多用户系统。这种计算机将用户人机交互界面做成用户终端机,这种终端机基本上是一种叫做“无盘工作站”的设备,有显示器和键盘等操作界面设备用以人机交流信息,所有的计算工作都是由主机来完成的。多个用户提交的作业,主机要进行排队处理。主机处理的结果要放到独立的硬盘机、磁带机等设备中保存。传递到用户终端的只是用户想要知道的信息而已。如果需要用户保留的信息,会通过集中的行式打印机或激光打印机,以及工作站联合使用的打印机打印出来。

多用户计算机系统实质上是一个最简单的局域网,因为不仅用户终端可以同主机通信,而且用户终端之间也可以通信交流。只是所有的计算工作都是有主机承担而已。可想而知,多用户计算机系统主机的工作十分繁忙,分配任务、调度程序、管理内存、管理作业文件、管理用户等都得由主机完成。这样在单一处理器多任务的情况下,为了均衡服务,不得不引进了“进程”的概念和方法,这是现代操作系统产生的原因。现代操作系统应该是用软件的方法扩展和延伸计算机功能的典范。尽管操作系统成了计算机系统的大管家,但由于操作系统也是程序,也要占用处理器来实现它的工作,故而有操作系统参与的计算机系统许多机时都被它占用了,对于那些极其需要快速完成任务的程序运行来说是一种累赘。

网络是多台计算机互联,因而如何分配任务和如何分配资源就成了网络研究的重要课题。这中间还有一个信息传输的速度和线路拥塞问题需要解决。网络不仅要求能够广泛地解决问题,同时还要求能够快速有效地解决问题。于是各种各样的网络结构、设备、方法的一系列问题研究成为了重点。网格、云、物联网等都是这方面的研究表现。

7.              网络计算与存储的关系

从单处理器计算机到多处理器计算机,从单用户计算机到多用户计算机,从单一计算机到众多计算机的互联,从局域网到广域网,这中间计算机系统基本结构和最本质的理论和方法发生了哪些变化?

有人试图用网络的概念替代计算机的概念,这是一种不负责任的提法。因为网络是计算机的互联,是众多的计算机通过通信线路连接在一起的一种关联结构,这与在很小的地域内将各种功能部件组织在一起,形成一个整体的计算机有着本质地区别。计算机与网络实质上是个体与群体的关系,就像我们不能够将人群称为人一样。

计算机网络相对于计算机,最重要的变化是在功能分配和群体结构上,而不是在计算机核心结构上产生了多么巨大的变化。网络既然是独立的计算机互联,那么就毫无疑问地确立了计算机本身的独立地位。网络是一个庞大的程序数据和对象数据存储的庞大体系,因而将程序和数据存储、复制、传输等是每时每刻都会发生的事情。虽然程序和数据可以分开存放,但一旦开始计算(程序执行),那么就必须要有与运算器、控制器直接连接的存储器提供来同步提供指令和数据,如果这些指令数据和程序数据在其它网络节点上存储着,那就要先将它们通过网络传递到计算设备所连接的存储器上,然后才能进行计算。网络数据传输是一个异步传输的过程,无法满足高速同步运行的处理器需要,这一点目前是无法改变的(除非将网络全体放到一个芯片当中,这又不叫计算和存储分离了),所以目前在网络结构下妄说“计算与存储分离”不过是笑谈之举而已。

最后说一句,如果将网络的某一部分的任务定为存储信息为主,而将另外的某部分确定为运行程序,进行计算为主,那么叫“计算与存储分离”还是能够说得过去的。透明计算做为一种网络工程,可能解决了许多问题,创造中国特色的网络系统着实不易,但要说到理论上创新的问题,确实还需要讨论,完善,最终才能达到我们的目的。

 

2015-01-29

 

 

 

 

 

 

 

 

 

 



https://blog.sciencenet.cn/blog-340399-863728.html

上一篇:怎样将计算机内部总线扩展为外部网络?
下一篇:中国计算机评审专家应该补上CPU设计这门课
收藏 IP: 61.149.221.*| 热度|

6 李万春 徐晓 GDHBWQ icgwang ncepuztf shuxuewangzi

该博文允许注册用户评论 请点击登录 评论 (10 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-31 19:16

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部