龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 110622|回复: 372

道cpu、道指令、道编程基本原理

    [复制链接]
发表于 2009-6-28 23:27:37 | 显示全部楼层 |阅读模式
信息处理最基本的在于由已知信息事件产生新的信息事件,整个过程构成了信息事件树,汇集成事件信息森林,最后形成信息森林群落。有用的信息在于关联程度或在于信息树上的复杂度,即信息的可用度在于新信息的自动产生性,按照科学规律的定义,就是要从这种生生不息的信息树中发现规律。当可利用的信息树的分叉程度越来越高时,所能发现的规律就会越有用。处理信息树的自动产生、存储、分发,就是我们现在倡导的信息树理论的最终目的,为达到这个目的,必须设计专用信息CPU。这个信息CPU集网络、信息处理、存储等综合技术,即信息CPU就是网络、就是存储器、就是处理器。
中国的专家教授等一班人整天说要有中国自己的cpu,但是直到现在真正意义上的中国的cpu还没有出现。现在整个计算机产业都是由国外做技术主导,所谓的龙芯、中国芯等都是在国外cpu的基础上设计出来的,这种cpu设计再厉害、再先进也比不上人家国外原创的厉害、先进,我国要在国外强大的技术壁垒面前打开通道谈何容易。问题的关键在于我们没有一种真正创新的、能够主导计算机行业发展的技术。本文所倡导信息CPU技术就是为了解决这个问题的,希望以信息CPU技术为主发展我国自有的计算机技术。
cpu是现代信息社会最伟大的发明之一,它是科学家为实现人工智能化发明的副产物。但是近半个世纪过去了,计算机的架构还是更原来刚刚诞生时一样,只不过它的速度变快了、容量变大了,并且基本普及到了千家万户,每个人都享受到了计算机带来的交流畅快的感受,再也离不开计算机了。这与计算机当初的发明背道而驰了,为实现智能化而发明的计算机沦为普通物品,没有了当初诞生时的神秘感,用计算机与农民用锄头基本没有两样。当某些时代代表人物一边高呼“信息时代”“数字时代”“云时代”时,他们的宠儿(计算机)已经不是当初的计算机了,成为人们任意摆弄、抛弃的工具。这其实又跟计算机的本质关联在一起,计算机只是在人类控制下才能运作的工具,只有人类喂它信息粮食,它才能产生新的信息,比巫师还不如。
计算机虽然已经沉沦,但是设计cpu、生产cpu却不是一件简单的事,跟锄头的设计、生产有着天差地别,这牵涉到很多的计算机专业知识,没有受过专业训练的人是很难设计出来的,但受过专业训练反而被普通cpu理论所困住,一想到cpu设计,就是指令系统、存储指令、存储数据、ALU、流水线分级等想法,跳出这些东西的反而不知如何下手。其实,做东西应该看本质,普通cpu的本质是什么:处理、存储数据,所有的计算机技术都围绕着这个本质展开设计,如存储采用地址寻址的方式,导致必须采用指令控制整个寻址过程,有了指令后又必须ALU来处理寻址后的数据,然后再进行其他技术枝叶的修正,提高运行效率;又如计算机语言的设计,代码中充满了各种数据符号,各种控制指令的符号,最终目的也是为了处理、存储数据。反观人脑的神经元设计,没有存储的机制、没有处理的机制,只有大量的神经突触相连,并实现了人类以及各种动物生存、求生、繁殖的各种本领,这种神经元的本质与cpu的本质有着非常大的差别。
信息cpu的设计应该参考人脑神经元的设计,我们现在不需要非常高速的cpu,而是要具有智能化的cpu,来构成人类未来信息社会的神经元。
信息cpu的本质不在功能,而在于大量的连线,仅有的功能可能就是比较功能:它可以比较各个输入端的值是否满足给定的逻辑比较等式,满足就输出一定的内容,不满足就什么也不输出,其实就是把单个神经元的功能扩展到多个神经元上。信息cpu没有指令系统,因为它只有一个功能,即只有一条指令,为了满足现代编程的需要,可以扩展到连个功能:1逻辑比较、2赋值(信息连线)。信息cpu的代码中每条指令都由信息cpu单元执行,所有指令即cpu单元并行运行的,它没有现代编程中各种弊端:关键字、数据类型、控制语句、变量、数据关联。信息cpu编程非常简单,因为只有一条指令(可以简写为->),差别在于信息输入不一样,调用函数就是一个赋值过程(可以简写=),不用考虑指令的顺序,各条指令是并行运行的。
信息cpu、信息cpu指令、信息cpu编程可以几乎没有任何东西:一个功能、一条指令。借用道家思想“道生一、一生二、三生万物”,宇宙间万物生于无,最简单的往往就是最本质的。信息cpu如此设计正是为了体现信息处理的本质“生”,这个“生”就是指令处理过程,由原因产生结果,再由结果产生更多结果,体现信息生生不息的产生方式。姑且把信息cpu、信息cpu指令、信息cpu编程称为道cpu、道指令、道编程。
数年前,看到一种中文编程语言即易语言,开始以为这是一种很有哲学的、深奥的、智能的计算机语言,没想到是一种C语言或c++的汉化了的语言,同样的还有一种汉语编程语言,说得冠冕堂皇,实在令人失望。这里把信息cpu、信息cpu指令、信息cpu编程称为道cpu、道指令、道编程只不过引蛇出动,让志同道合者能有更多的思考与创意。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huanghuihuang/archive/2009/06/09/4253702.aspx
 楼主| 发表于 2015-2-16 15:12:33 | 显示全部楼层
把动态道指令稍微修改一下,增加一种近似C++模版输入的动态模版道指令,相当于把被调用函数的道指令复制到本函数的指令中。测试程序如下:
动态模板道指令
{
maifgn()()
{
[dgdfg] ->[子函数2(<>)(<>),yy=0];
[yy=5] ->[gdfg2=yy,结束,显示结果];
}
子函数2(yy)
{
[yy]->[yy=yy+1];
}
}

结果如图:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册新用户(newuser)

x
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2009-7-3 18:27:16 | 显示全部楼层
以上信息编程语言中:
每个语句前面都带有如下形式:
         [原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>
的前置逻辑比较,其含义就是每条语句都先判断、选择、比较,然后再决定是否生成"->"后的信息。除了简单生成信息语句外,还有调用、返回、赋值等语句,这些语句也是采用前置逻辑比较的形式,目的是为了满足全部指令运行的指令规范。
       指令与信息的设计很大影响了cpu结构设计。如信息生成后的保存形式,当信息生成后第二次在运行使用是否保存,极大影响了cpu结构设计也影响了指令编程,考虑再三后,决定采取可选的保存的形式既带“$”符号就一直保留,其他信息一般在第二次运行使用后就消除了;还有函数的调用方式,程序的函数指令在内存中只有一个,但是每个程序调用时就会产生多个调用,像类的定义,类的定义只有一个,而类的实例化可以有多个,为了满足同时并行运行的函数实例,必须在cpu上设置专用的调用栈内存;还有函数返回时必须处理的一些细节,因为函数指令编译后是固化的,它的返回信息符号必须与函数实例化后的句柄挂钩起来,并与原调用函数句柄有关,不像窜行指令,可以在栈顶存取函数的返回有关的值。
      可以说一套完整的指令集设计时就已经考虑到了以后的cpu设计,指令集里增加的功能,比如寄存器等极大影响了cpu的设计,相反cpu的计算功能反而是cpu设计最简单的东西。
      在信息cpu里设计,最大难题不在前置逻辑比较实现,而在于信息生成后如何处理,像重复信息符号处理、信息生存周期、信息的作用范围、信息的存取、信息的符号与值、cpu结构的优化等,所有这些技术处理与指令的含义有很大相关性。
声明:  有指令设计经验的人员请多向本信息编程语言的设计方案提意见
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2009-6-30 18:08:51 | 显示全部楼层
信息cpu开发缘由:
        几年前,在开发信息管理系统时,为了做到通用、可扩展、方便维护,在程序上设计了很多功能,使之满足企事业信息化的要求。完成之后,突然觉得信息处理应该从大的方面设计,如基因运算、神经网络、宇宙本质等方面考虑,使信息处理符合广义信息处理。有了这个想法之后,几年来一直考虑,如何设计最简单的指令来处理信息,并用设计最简单的结构的处理单元来运行指令。
        思考之余,先着手开发信息树管理软件,定位于满足各种企事业信息化的需求。完成后,感觉信息树管理的模型还有很大的扩展余地,于是,又从这个目的出处,开发心目中的信息cpu、信息指令、信息编程。
澄清几点:
      1、信息cpu、信息指令、信息编程不是超越冯诺依曼的计算机结构,而是基于正宗的冯诺依曼的计算机结构,他是冯诺依曼的计算机结构的极端简化,既取消指令指针,全部指令并行运行;取消循环结构,全部指令一直循环运行;取消地址,数据以符号代替,取消数据类型计算,只保留最基本的比较运算;
      2、信息cpu、信息指令、信息编程还在开发当中,本人只是这一方面投入思考较多,不是软硬件方面的全才,技术上如有不足之处请指正。
      3、信息cpu、信息指令、信息编程不是要代替现有的软硬件,他的开发只是对当前软件开发的一种补充。
      4、信息cpu、信息指令、信息编程不是毫无基础的空想,本人业余完成大部分的设计,只是还不便公开。
      5、本人是正宗的软件开发人,有谁不计得失,在这行业从事最底层开发十几年?没有谁能够比我对这行业更有发言权了,信息cpu、信息指令、信息编程是本人多年开发的工作总结。

[ 本帖最后由 huanghuihuang 于 2009-6-30 21:26 编辑 ]
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2009-6-30 08:57:16 | 显示全部楼层
信息树管理平台简介:
1、基于上述道编程原理既以“阴、阳”属性分组的方式定义信息树的构型,在信息cpu开发前,采用xml的形式定义信息cpu指令,在.net上用c#编程,模拟信息cpu的执行过程。
2、采用xml定义信息数据格式,利用XSLT转换信息树数据,使之能够以网页形式呈现。
3、采用xml定于信息数据人机界面,利用XSLT转换成网页,使之能够以网页形式呈现输入界面。
4、其他如定义:数据架构、数据生成架构、数据输入架构、数据输入模板、数据输出架构、数据输出模板、数据更新架构、选择触发事件、数据项目架构等定义。
5、基本功能是:任意定义信息树的构型,可以任意定义各个信息数据节点的输入界面,以及整个信息树的数据输出形式。
6、其他功能:人员权限管理、角色管理、单位管理、系统人员权限管理、系统角色管理。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2009-6-29 17:36:40 | 显示全部楼层
    为何要提出如下形式的信息cpu指令:
           [原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。
    软件开发最经常使用的指令就是判断语句,经常几行程序就要用判断语句,其它用的较多的是循环语句,但是循环语句也是判断语句另一种形式。其实判断指令是可以消除的,在数学计算中,判断语句可以优化为算式,在过程程序中,判断值以一个参数带入过程内,经过这样的处理判断语句就可以消除了。经过优化后的代码肯定面目全非,所有程序语句转化为赋值语句、数学算式、过程调用,如果在进一步优化,数学算式优化为一些列的布尔逻辑等式和数学函数调用,这样就会出现上述形式的信息cpu指令。
    考虑到在神经网络、基因运算方便使用此指令和便于信息cpu设计,取消布尔逻辑等式中的“非”混合运算,这样设计出来的信息cpu不一定使用“二进制”逻辑电路的形式。
    本人已经自主设计并开发了信息cpu大部分的工作机制,并且采用此机制独立开发了一套通用的信息树管理软件,此信息管理软件也运用在多种信息化开发中,所以网民们不用担心本人是一个民科骗子。


[ 本帖最后由 huanghuihuang 于 2009-6-29 17:42 编辑 ]
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2009-6-29 12:25:56 | 显示全部楼层
为何要设计一个信息CPU?我们知道目前的CPU是用来处理存储的指令及数字、逻辑运算的,这种计算机是信息时代最伟大的发明,没有这种发明,现代文明生活一切都将是空谈。现代的CPU速度越来越快,CPU设计架构原理发生了很大的变化,但是万变不离其宗,现代的CPU还是跟原始CPU一样功能:处理指令及进行数字、逻辑运算,照莫尔定律,人类还有十几年的时间来利用半导体物理学来制造更强、更好的这种CPU。但是一旦有一天,人类设计CPU达到了莫尔定律极限时,不知如何面对那时的状况?
现代的CPU已经很强大了,足够满足现代的日常信息处理,而且CPU发展已经超出了普通人的需要,现代的办公软件根本不需要如此强大的CPU,并且CPU里大量用来处理指令及数字、逻辑运算单元的晶体管都被浪费了,现代的办公软件不需要如此复杂的指令,这说明了数字、逻辑运算在现代的应用软件设计中用途越来越少,大量软件处理中使用的大都为存储器单元存储指令。可能有的人对这持不同观点,但只要看看近年来,软件开发趋势,软件蓝领、软件民工等正大量涌现,说明软件开发越来越不需要复杂数字运算的技术,只要在存储器内做搬运工就可以了。
目睹近年来,各种软件开发概念层出不穷,如OA、协同、工作流、SOA、SAAS等,许多大公司在拼命制造概念,好像没有概念就不能活了。中国的公司就更厉害了,每当国外提出一个概念,中国公司就迫不及待且更先进、更超前的用这种概念来开发软件,这种现象,根本原因是由于国内的软件平台厂商没有真正掌握软件核心技术,没有真正投入核心技术的研发当中。面对同行业价格竞争,软件厂商别无选择,必须降低软件价格,降低软件开发人员的工资,导致不能培养起优秀人才,碰到复杂情况问题时,往往采用人海战术、或到网上利用现成的源代码来解决眼前的困境。造成软件开发人员疲于应付工作任务,没有机会、时间投入思考复杂问题的软件的全局分析、架构、实现方法。这几年来,软件开发人员面临着质的蜕变,从软件开发者变为软件打工者,软件开发人员对所从事的软件行业的没有一点兴趣,相反却想早点脱离该行业。这与全球现代信息化目标背道而驰,一方面社会各阶层要求越来越成熟可靠的信息化技术,减轻工作劳动强度,提高劳动生产效率,另一方面,为实现这个信息化技术的人员却承受着信息化技术带来的痛苦,没有一点承载历史使命的历史感和荣誉感,这值得我们深思。这种现象的根本原因在于,根植于国外几十年的CPU技术及围绕着这个行业的软件开发已经无利可图了。大量成熟的技术率先在国外开发应用,到推广到中国这个不成熟的市场的时候,先制造大量概念,开出天价,制造技术壁垒,因为我们始终没有看到他们的核心技术。这样吸引大量各种人才投入这个行业,然后由中国各方自相残杀,最后,只剩下几个胜利者以及几个即将参与的人外,我们会发现,我们的武器还是那把剑,而国外的神秘武器还没现身。
面对国外几十年来在现代CPU、软件开发资金投入与技术积累,我们还有什么机会没有?就是设计全新的信息CPU集网络、信息处理、存储等综合技术,即信息CPU就是网络、就是存储器、就是处理器。原因:
首先在国外几十年来在现代CPU、软件开发资金投入、技术积累、经验积累压力下,如果按照国外定制的标准搞我们的信息化,绝对有弊无利;
第二,目前信息化所牵涉到的大量熟练的各种技术人员,我们目前还没有;
第三,现代CPU的设计已经是夕阳技术,一个东西,谁都想来做得的话,那肯定已经泛滥成灾了,这个市场已经不能培育技术了,优秀的人才都改行了,可以想象没有优秀的人才,整个市场就是山寨横行的时候了,这对各方面都没有一点好处。
第四,按照国外搞技术经验,在市场面临饱和及无利可图的时候,开拓全新的领域是必然的选择,而这种未来技术要在最关键时刻成为杀手锏。
第五,环顾近年来高端技术(机器人、人工智能、基因技术等)发展带来一点苗头,未来的杀手锏就是信息处理技术。设计应用于未来信息处理技术的CPU,必将能够使中国的信息化水平领先于世界各国。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huanghuihuang/archive/2009/05/18/4199425.aspx
回复 支持 1 反对 0

使用道具 举报

发表于 2009-6-29 00:31:13 | 显示全部楼层

回复 1# 的帖子

看来民科们已经放弃研究哥德巴赫猜想了。
发表于 2009-6-29 00:46:10 | 显示全部楼层
这个要仔细看看,才能理解
发表于 2009-6-29 05:31:26 | 显示全部楼层
楼主精神难能可贵,值得提倡.
发表于 2009-6-29 08:22:41 | 显示全部楼层
把无知当先知。

那你为什么不提个“信息晶体管”或“信息门电路”呢?


计算机是分级分层的。
高级语言-->低级语言-->机器语言(也就是龙芯这次买的架构或叫指令集)-->微架构(功能单元和流水线等)-->(具体的门电路设计),下面不写了。
而且从机器语言向上也有很多分枝,也不想写了。


电脑是专业知识密集的领域,首先就要具备深厚的专业知识,不是象书写道教的天书那样胡编一通。
发表于 2009-6-29 08:26:13 | 显示全部楼层
CPU是从机器语言那里算起,CPU是电脑的专业术语,不要拿到“道”那里去做装饰物或放其他东西的容器。
发表于 2009-6-29 09:03:12 | 显示全部楼层
楼主,何为道?道又何为?
人何以为道,道又何以为人?
发表于 2009-6-29 09:33:18 | 显示全部楼层
道不可说  可说者皆非道
发表于 2009-6-29 10:23:25 | 显示全部楼层
楼主所说的神经元网络早已有研究,不过智能程度比较低。
如果楼主有兴趣又会JAVA的话可以看看IBM Robocode机器人。
高手们在虚拟机器人中已应用了神经元网络和遗传学。

计算机语言部分楼主可以看看数据库,ORACLE、Microsoft SQL Server 2005、MYSQL等。这些信息系统使用SQL语言操作,并且可以编写存诸过程、函数。这些系统的用户程序不考虑硬件,环境。并且只要告诉系统做什么,而不须要告诉系统怎么做!

“信息cpu、信息cpu指令”
要想改变计算机的结构必须有新的计算机理论,和与之对应的数学基础理论。
新的理论意味着软件设计方法有可能也要发生改变,也就是说以前的程序无法兼容。
这是一项非常复杂和高投入的事情。
 楼主| 发表于 2009-6-29 10:24:29 | 显示全部楼层
本人浸淫软件开发十几年,总觉得现今的cpu、编程语言在近十年内没有大的突破,并且我国在此行业一直落后他国,因此提出信息树理论,并结合当代计算机技术,开发我国自主的信息cpu、信息指令、信息编程技术。为什么cpu一定要采用现代的方法设计呢,我们为何不能设计全新的信息cpu?国人千万不要妄自菲薄,十几年前,我的思想跟现在年轻人也是一样的,自以为学到很多技术,可以奋发有为,....,聊以此文继续我的思考。
“道生一、一生二、三生万物”讲述了信息生成的基本形式,即“道”作为万物信息生成的源程序,“道生一”即信息万物程序开始运行,产生初始信息,“一生二”即由初始信息产生中间信息,“三生万物”即由中间信息产生万物最终信息,整个过程表现为信息树的发展形式。信息的生成以此环环相扣的形式发展着,推动它发展的动力是什么?《道德经》也给我们指出了答案:“万物负阴而抱阳,冲气以为和”,万物的发展即信息的生成是在“阴、阳”两种不同属性的信息作用下重新生成一种新的信息。
中国古人在几千年前就提出了用“阴、阳”两种不同的属性来概括万物的哲学,这相当于为我们提出了宇宙计算机基本模型,也是本文倡导的信息树理论的计算模型。现代中国人在每每看到外国先进的科学技术时,大都会翻箱倒柜,找出我们古人早就已经发明的证据,最典型的莫过于计算机中的二进制,死活把《周易》中卦的符合套在二进制上,并延伸到计算机上,以此为荣。其实在真正理解计算机的人看来,采用几进制是根本与计算机无关的,图灵最早提出计算机模型时就没有提到二进制,计算机本质就是一种自动机,相信如果没有发明二进制,现代计算机也就是另一番景象了。“阴、阳”对于中国人来说是非常熟悉了,生活中到处有它的影子,如中医“热、寒”、风水“阴、阳”,五行相克相生“克,生”等比比皆是。为什么放着使用了几千年的古人信息模型不用,而偏偏花费巨资用外国“二进制”计算机呢。
在这里我要把古人的“阴、阳”模型重新利用起来,提出信息树的cpu模型。前面已经定义了信息cpu的基本功能:它可以比较各个信息输入端(必须具有处理大量信息关联的功能)的值是否满足给定的逻辑比较等式,满足就输出一定的内容,不满足就什么也不输出;信息cpu只有一条指令来处理比较功能,所有指令由cpu单元并行处理。这个功能关键在逻辑比较功能,这个逻辑比较功能用“阴、阳”来定义:把有关影响生成信息的各种信息划分成不同的组,每组赋予“阴、阳”属性,也可用神经元里的“激活、抑制、终止”来表示,在各组里,“阴”、“抑制”的属性优先决定所生成信息是否生成。逻辑比较功能指令定义如下:
[原信息1, 原信息2, 原信息3][ 原信息4, 原信息5]< 原信息6, 原信息7, 原信息8><原信息9, 原信息10>->生成信息。
“[]”表示“阳”性或“激活”性质。
“<>”表示“阴”性或“抑制”、“终止”性质。
“->”代表运算最后结果:生成信息。
这个如此简单的定义能够支持所有的计算机基本运算吗?其实这个定义是布尔逻辑的另一种表示,布尔逻辑大部分实现为“二进制”用来构造cpu,这里我们直接去掉“二进制”直接构造cpu,这样带来很大的好处:
1、没有“进制”之争。因为去掉“进制”,就无所谓“二进制”、“三进制”孰优孰劣的问题。
2、没有语言之争。因为没有“进制”,又仅有一条指令,英文表示与汉语表示是一样的。
3、没有“多处理”“单处理”的优劣。信息cpu所有指令是并行的,一个cpu处理同样的程序,两个cpu处理同样的程序。
4、没有“cpu”升级的烦恼。所有的信息cpu只实现一条指令,再先进、再高级的信息cpu也只有一条指令可用。
5、不用为制造“cpu” 烦恼。因为只有一条指令,甚至可以在纸面上模拟出执行指令的过程。
信息技术的发展日新月异,新东西层出不穷,造化留给我们两个选择:继续使用国外cpu带来的复杂信息世界或创造我们自主的信息cpu来构造我们的信息世界,仅以鲁迅的话:“造化又常常为庸人设计,以时间的流驶,来洗涤旧迹”来与志同道合者共勉。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huanghuihuang/archive/2009/06/25/4296221.aspx

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-1-24 01:26 , Processed in 0.217628 second(s), 21 queries .

快速回复 返回顶部 返回列表