计算机原理初探

最经典的一句话:不要在脑子里对软件和硬件做区分。

这也是计算机概论中两个重要理念之一,在设计硬件时如果我们具备软件相关的知识,那肯定能做出更好的设计,只有懂得需要,才能对症下药。软件设计也是一样的,如果能懂得硬件的运行机制,设计实现的程序肯定会比不懂的更有效率。

另外一个就是抽象。对应抽象的理解个人认为就是要把有限的精力用在事情的本质上,而不要过于注重底层细节,这将大大提高我们的工作效率。

一个问题可以拆解成多个更低层次的问题,如果我们能够忽略掉抽象之下的细节,我们的思考将更有效率,但是如果细节出现了问题,那我们也必须去了解底层细节。所以我们要站在高处看问题,同时又要在当出现问题时,能够俯下身子寻找细节中的问题。

 

什么是计算机?

         计算机就是给定一个计算任务的描述和相关数据,都能计算出结果。(图灵完备,任何计算都可以通过某种图灵机来完成,任何试图对图灵机的改进,本身也可以用图灵机来实现)

         所以不管是一台廉价的计算机还是一台昂贵的计算机,他们能做的事情是一样的,唯一的区别就在于得到计算结果的快慢而已。

 

如何做到从问题的描述到电子的运转?

                                                                              

问题描述
算法
编程语言
ISA(指令集结构)
微结构
逻辑电路
电子器件

我们提出问题后,需要找到对应的计算方式来获取结果,这就是算法

问题是用自然语言来描述的,这样就存在一个问题,语言本身在不同的语境下有不同的含义,而计算机只能处理确定的事情,所以这个时候就需要用一种计算机能够明白的方式来明确的告诉计算机需要它做什么。

我们通过将自然语言转化为算法来消除自然语言无用的特性。算法具有 确定性,可计算,有限性。

即算法的操作步骤的描述是清晰的明确的,不会有任何的不确定,同时它的每一步是能够被计算的,最后整个计算过程是会终止的。

 

好了,设计出了算法,我们需要用编程语言来实现,编程语言是确定的,无二义性。编程语言有很多种,不同的语言在不同的场合有不同的用途。

编程语言又有高级语言和低级语言的区别。高级语言书写相对较短,并且更容易理解,但是离底层计算机的相关性很弱,所以我们需要用编译器来将高级语言翻译成ISA指令。低级语言则不同,通常一种低级语言只对应特定的计算机的汇编语言,而将这种

特定的计算机汇编语言翻译为ISA指令需要用到汇编器。

 

接下来就是ISA(指令集结构)

   指令集结构是程序和计算机硬件直接接口的完整定义。

  指令集包括计算机可以执行的指令集合,同时需要有不同指令集操作需要的数据(操作数)。有操作数那么就有操作数的相关定义,包括操作数的数据类型和操作数的获取机制(即寻址模式)。

 

微结构

   微结构就是ISA的具体实现了,相同的ISA可能会有多种不同的微结构实现。

逻辑电路

   微结构是由一组简单的逻辑电路来实现的。但是不同的实现方式可能会有具体的性能差异

器件

   每个基本的逻辑电路都是由特定的器件技术来实现的。

 

 

基本原理章节,简单又不简单,需要仔细体会。

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值