计算机组成原理 #考研 #408

第零章 本文简介

        这篇文章是本人在考研过程中做总结的文章,这段时间会陆续更新,复习参考资料是王道计算机组成原理单科书,在此篇文章中,我会尽量的把书中的一些晦涩难懂的名词解释成让读者比较容易理解的词,又或者是把王道书上面的很长的一段读不懂的话压缩成一段通俗易懂,容易理解的话。会把在一些概念和理念上面加上自己的理解和看法,尽量把我自己理解的东西更好与一起同行的研友们分享。

第一章 计算机组成原理概述

1.1计算机的发展历程

        1.1.1计算机硬件的发展

1.计算机的四代变化

全世界第一台计算机叫做埃尼亚克 ENIAC,于1946年在美国诞生,目的是为了军事计算,现在已经经历了4代。(一般高科技的诞生都是为了军事方面,像第一个计算机网络阿帕网也是为了军事通信才出现的)

1)第一代计算机(1946-1957)——电子管时代,主存采用延迟线或磁鼓存储信息,电子管体积大,所以电子管计算机占地面积非常大,而且使用机器语言进行编程,也就是01010的这种纸带来编程,只有经过专业培训的程序员才能操作计算机。这时候连操作系统的概念都么有,计算机的运算速度效率都很低,而且制造成本高。

2)第二代计算机(1958-1964年)——电子管时代。逻辑元件采用晶体管,主存采用磁芯存储器,运算速度较之前大幅度提升,计算机软件得到发展,出现了高级语言以及编译程序,有了操作系统的雏形(单道批处理和多道批处理)

3)第三代计算机(1964-1971年)——中小规模集成电路时代。逻辑元件采用中小规模集成电路。高级语言发展迅速,开始有了分时操作系统。

这里有一个故事——肖克利是半导体的发明者,但是他却在商用实验中失败了,他原本的目标是制造出5美分一个的晶体管,但是在1980年晶体管都不止5美分。这个失败导致实验室创新的进度基本为0,而肖克利性格高傲,所以手下的8位天才辞职,去创办了仙童公司,发明了集成电路。缔造了这个时代

4)第四代计算机(1972至今)——超大规模集成电路时代。特点:逻辑元件采用集成电路和超大规模集成电路,产生了微处理器,并行、流水线、高速缓存存储器等概念用在了这一代计算机之中。在计算机组成原理考研这本书里面,我们就是要学这一些新技术。

2.计算机元件的更新换代

1)摩尔定律:每18个月处理器的性能会提升一倍,也就是说我们现在和18个月以后同样的前买到的cpu,后者的性能是前者的3倍。

2)半导体存储器的发展。1970年至今半导体存储器经历了11代:单芯片1KB,4KB,16KB,64KB,256KB,1MB,4MB,16MB,64MB,256MB和现在的1GB。

3)微处理器的发展。自1971年Intel公司开发出第一个微处理器Intel 4004至今,微处理器经历了 Intel 8008(8位)、Intel 8086(16位)、Intel 80386(32位)、Pentium(32位)、Pentium III(64位) Pentium 4 (64位)、core i7(64位)等

微处理器:                                                                                                                                          微处理器不是cpu,而是比如显卡的GPU、手机处理器、智能手表内部处理器的统称,而cpu是计算机中的核心处理单元,大型计算机的cpu不能叫做微处理器)

1.1.2 计算机软件的发展

计算机软件从面相机器的01机器语言,再到汇编语言,再到面向问题的高级语言。高级语言真正促进了软件的发展。它经历了科学计算的FORTRAN再到结构化设计的PASCAL再到面向对象的C++和适应软件环境的java。

直接影响计算机性能的各种系统软件也有了长足的发展,比如windows,Unix,Linux

1.2 计算机系统层次结构

1.2.1 计算机系统的组成

        计算机由硬件和软件组成,硬件是指有形的物理设备,软件是指在硬件上运行的程序和相关数据以及文档(程序,相关数据,文档)。

        计算机的性能很大程度上是由软件的效率和作用来标志的,但是软件的性能发挥也离不开硬件的支持。如果某一功能既可以用软件来实现也可以用硬件实现,软件和硬件在逻辑上是等效的。如果一个功能使用较为频繁而且使用硬件实现的成本较为理想,那么使用硬件可以提高效率。

1.2.2 计算机硬件

1.冯·诺依曼机基本思想

冯▪诺依曼在研究EDVAC的时候提出了存储程序的概念,“存储程序”奠定了现代计算机的基本结构,由此概念为基础的各类计算机统称为冯诺依曼机,特点如下:

1)采用“存储程序”的工作方式

2)计算机硬件由运算器,存储器,控制器,输入设备和输出设备组成。我刚学计算机组成原理的时候,一直以为计算器才是cpu的核心,但是当我重新看到这句话的时候,我很清楚原来计算机的最核心的地方,是存储器,最复杂的地方,是控制器。而运算器只需要掌握各种机器码之间的运算,就不难掌握。

3)指令和数据以同等地位存储在存储器中,形式上没有区别,但是计算机能分辨它们。分辨它们的方法是,计算机会在指令周期的不同阶段取不同的码。

4)指令和数据均用二进制代码表示。指令有操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。

“存储程序”的思想是:将事先编制好的程序和原始数据送入主存后才能指向,一旦程序被启动执行,就无序操作人员的干预,计算机会自动逐条执行指令,直到指令结束。

学了操作系统就知道,现代计算机程序执行有编译,链接,送入内存执行三个步骤,“存储程序”的思想贯穿了整个计算机发展的历史,沿用至今。

2.计算机的功能部件

(1)输入设备

输入设备主要功能是把程序以及数据按照计算机能够接受的形式输入计算机,比如键盘,鼠标扫描仪,摄像机等。

(2)输出设备

输出设备的任务是将计算机处理的结果以人们能够接受的形式或者其他系统所要求的信息形式输出。最常用,最基本的输出设备是显示器,打印机。输入/输出设备,是计算机与外界联系的桥梁,是计算机不可缺少的重要部分。

(3)存储器

存储器分为主存储器和辅助存储器,主存储器用来给cpu直接访问,辅助存储器是用来扩充主存的,程序只有在调入主存的时候才能得到执行。MAR用来存放地址,通过译码好到所选的存储单元,MDR暂存从存储器读写的信息。每个存储单元存放若干存储元件,每个元件存放一串二进制代码,这一串二进制代码成为存储字,称这串代码的位数为存储字长,为1B的偶数倍。

MAR用于寻址,位数对应着存储单元的个数,比如MAR为10位,那么就有2^10个存储单元,记为1KMAR的长度和PC相等

MDR的位数和存储字长相等,一般为字节的二次幂的整数倍。因为这样能够方便读取,假设MDR的位数只有8位而存储字长有16位,那么需要读取两次才能够读取一个存储字,很费时间。

(4)运算器

运算器执行计算机里面的一些算术运算和逻辑运算。运算器里面需要知道的寄存器有,累加器(ACC),商乘寄存器(MQ),操作数寄存器(X),变址寄存器(IX),基址寄存器(BR),前3个是必须的。

还有一个标志寄存器(PSW)用于存放ALU得到的一些标志信息或者处理机的状态信息,如结果是否溢出,有无进位或者借位,结果是否为负等。

(5)控制器

控制器由,程序计数器(PC),指令寄存器(IR)和控制单元(CU)组成。

每执行完一条指令PC+1,自动执行下一条指令

IR存放指令,OP(IR)送到CU,以便分析指令,做出微操作命令序列

Ad(IR)送到MAR用来寻址

详情看王道数P4.

1.2.3 计算机软件

1.系统软件和应用软件

软件可以分成系统软件和应用软件。

系统软件是一组保证计算机系统高效,正确运行的基础软件,通常作为系统资源提供给用户。系统软件有操作系统(OS),数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库系统、服务型程序等。(这些可能考选择题,混个面熟吧)

应用软件指解决某个应用领域的各类问题而编制的程序,比如各种科学计算程序,工程设计程序,数据统计处理程序等。

2.三个级别的语言

1)机器语言。01二进制代码,计算机可以识别的东西

2)汇编语言。用英文单词或者缩写来代替二进制的机器代码,必须通过汇编器才能在电脑上运行。

3)高级语言。方便程序员解决问题的程序,一般是通过编译器和汇编器两步先转换成汇编语言然后再转换成机器语言,或者是通过高举语言翻译程序直接翻译成机器语言程序。

3.软件和硬件逻辑功能的等价性

软件和硬件的逻辑功能是等价的,硬件的执行效率更高但是成本也更高

1.2.4 计算机系统层次结构

一共5层

由下往上分别是:

微程序机器层

传统机器层

操作系统层

汇编语言层

高级语言层

计算机组成原理这门课主要是最底下两层的思想。操作系统讨论的是第三层的思想,也就是全自动的帮助用户分配协调计算机资源,从而使用户能够更好的处理应用方面的事情,而不需要为计算机底层的工作(比如给各个进程分配内存,合理分配处理机)而操心。

操作系统和计算机网络的最终目标都是透明化,即用户无法知道操作系统和计算机网络的存在,但是他们又在计算机系统当中起到了非常重要的作用。我们日常生活中其实处处都有操作系统和计算机网络的影子,他们就像空气一样,看不见摸不着,但如果没有它们,却万万不行。

1.2.5计算机系统的工作原理

1.“存储程序”的工作方式

先把程序所需要的指令还有数据送到主存,然后从首条指令的地址开始,一条一条的执行指令,而不需要程序员的干扰,直到程序执行完毕。

2.从源程序到可执行文件

源程序-->修改了的源程序(预处理)-->汇编程序(编译器)-->可重定位目标程序(汇编器)-->可执行目标程序(链接器)

1)预处理就是把#include后面的东西拿出来放到源程序里面

2)编译就是把高级语言转换成汇编语言

3)汇编就是把汇编语言转换成机器语言

4)链接就是把所需要的,可重定位的模块和汇编生成的模块合并在一起,形成可执行文件。最终被保存在磁盘上。

3.程序执行过程的描述

1.首先把./hello通过I/O总线放到寄存器堆里面

2.从寄存器堆中通过处理器总线把指令放到内存中

3.执行./hello指令,从外存里面把编译好的可执行文件通过I/O总线输入内存里面

4.cpu把已经加载到主存的字符串“hello world\n”取到CPU的寄存器之中

5.然后再通过I/O总线输出到显示器。

4.指令执行过程的描述

1).取指令:(PC)->MAR->M->MDR->IR

2).分析指令:OP(IR)->CU,分析完信息之后,控制线得到操作信息,控制线将配合执行的读地址一起完成下一步执行操作

3)执行指令:Ad(IR)->MAR->M->MDR->ACC

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值