《计算机组成原理》读书笔记--概论-阿里云开发者社区

开发者社区> 积淀> 正文

《计算机组成原理》读书笔记--概论

简介: 基本概念 计算机系统的组成 1)计算机系统由”硬件”和”软件”两大部分组成;计算机性能的好坏,取决于软件和硬件功能的总和;2)硬件:计算机系统的实体部分,由看得见摸得着的电子元件组成;3)软件:事先编制的具有特定功能的程序;4)固件:将某种特定功能的软件持久化到只读存储器中;5)计算机软件通常可以.
+关注继续查看

基本概念

计算机系统的组成

1)计算机系统由”硬件””软件”两大部分组成;计算机性能的好坏,取决于软件和硬件功能的总和;
2)硬件:计算机系统的实体部分,由看得见摸得着的电子元件组成;
3)软件:事先编制的具有特定功能的程序;
4)固件:将某种特定功能的软件持久化到只读存储器中;
5)计算机软件通常可以分为两类:系统软件应用软件
6)系统软件:用来对整个计算机进行调度、管理、监视及服务的各种软件;
7)应用软件:用户在各自系统中开发和应用的各种程序;

机器字长

1)CPU一次能够处理的数据的位数,和CPU寄存器的位数相关;
2)字长越长,数的表示范围越大,精度越高;
3)字长越短,统一操作需要运算的次数可能会增加,故字长会影响机器的运算速度;
4)直接影响ALU、数据总线宽度、存储字长的位数;

区别:机器字长,指令字长,存储字长
机器字长:CPU一次能处理的数据的位数;

指令字长:机器指令二进制代码的总位数;
存储字长:存储单元中存放二进制代码的总位数;

存储容量

1)包括主存容量辅存容量
2)主存容量:主存中存放二进制代码的总位数;即:

$$ 存储容量=存储单元个数*存储字长 $$

3) 主存中MAR的位数反映了存储单元的个数;MDR的位数反映了存储字长;

运算速度

Gibson法

考虑每条指令的执行时间以及指令在全部操作中的占比;求加权平均数;

$$ T_m=\sum_{i=1}^{n}f_{i} t_{i} $$

$T_{m}$:机器的运行速度;
$F_{i}$:第i种指令占全部操作的百分比数;
$T_{i}$:第i中指令的执行时间;

MIPS

MIPS(Millon Instruction Per Second,百万条指令每秒):单位时间内执行指令的平均条数;

CPI

CPI(Cycle Per Instruction):执行一条指令所需要的时钟周期,机器主频的倒数;

FLOPS

FLOPS(Floating Point Operation Per Second):每秒浮点运算次数;

问:计算机体系结构和计算机组成原理的区别?

计算机体系结构,属于What,描述计算机概念性的结构和功能;
计算机组成原理,属于How,描述如何实现计算机体系结构所描述的结构和功能;

计算机系统的组成

多层结构计算机系统

多层结构计算机系统

冯·诺依曼计算机结构特点(运算器为中心的计算机结构)

image

1) 计算机由运算器,存储器,控制器,输入设备,输出设备五大部分组成;
2) 指令和数据以同等的地位存放于存储器内,并可按地址寻访;
3) 指令和数据均用二进制数表示;
4) 指令由操作码和地址码组成;操作码表示操作类型;地址码表示操作数在存储器中的位置;
5) 指令在存储器中按顺序存放;通常,指令是顺序执行的,特定条件下,可根据运算结果/设定条件改变执行顺序;
6) 机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成;

总结:冯·诺依曼计算机基于存储程序原理(数据和程序都以等同的地位存放到存储器中),特点是按照地址访问并顺序执行指令;

存储器为中心的计算机结构

以存储器为中心的计算机结构

问:以运算器为中心和以存储器为中心有何异同?

相同点:各个设备的操作都由控制器统一调度;
不同点:数据流向不同,以控制器为中心的计算机,外设和存储器的数据交互由运算器进行中转;而以存储器为中心的计算机,外设和存储器的数据交互无须经过运算器中转;

计算机硬件设备功能

1)运算器:用来完成算数运算和逻辑运算,暂存中间运算结果;
2)存储器:用来存放数据和程序;
3)控制器:用来控制程序和数据的输入、运行,处理运算结果;
4)输入设备:将人类熟悉的信息形式转换为机器能识别的信息形式,如:键盘、鼠标等;
5)输出设备:将机器运算结果转换为人类熟悉的信息形式,如:打印机输出、显示器输出等;
6)运算器和控制器逻辑紧密,集成在一起,称中央处理器;
7)输入设备和输出设备统称为I/O设备;
8)现代计算机有三大部分组成:CPU,I/O设备,主存储器;CPU和主存储器合称为主机;I/O设备称为外部设备;

计算机硬件设备

image

主存储器

1)由存储体M、各种逻辑部件、控制电路等组成;
2)存储单元:存储体由许多存储单元组成;
3)存储基元:一个存储单元包含若干个存储元件;每个存储原件能够存放一位二进制数,0/1;
4)存储字&存储字长:一个存储单元能够存放一串二进代码,称为存储字;二进制代码的位数称为存储字长;
5)存储字可以表示一个二进制数、字符串、指令等;
6)地址号:每个存储单元都有一个编号,称为地址号;
7)访存:主存的工作方式就是按照存储单元的地址号实现对存储字各位的读写;
8)指令和数据都由存储单元的地址号反映,故访问一条指令和一条数据的操作可以视作是相同的,能够通过一套控制线路完成;
9)MAR&MDR:为了实现按地址访问的方式,主存中需要两个寄存器MAR和MDR;
10)MAR:memory address register,存放将要访问的存储单元地址,位数对应存储单元的个数;
11)MDR:memory data register,存放要读写某存储单元的数据,位数与存储字长相等;
12)存储字长、机器字长、指令字长的长度可不相同,但必须是字节的整数倍;

运算器

1)运算器至少由3个寄存器和一个算数逻辑单元组成(ALU)组成;
2)寄存器包括:ACC(Accumulator,累加器)、MQ(Multiplier-Quotient Register,乘商寄存器)、X(操作数寄存器);
3)在完成不同运算时,寄存器存放的操作数类别各不相同;

image

控制器

1)控制各个部件自动、协调工作,包括取指,分析,执行三个阶段;
2)取指阶段:命令存储器读出一条指令;
3)分析阶段:分析指令要进行的操作以及操作数的地址;
4)执行阶段:根据指令的操作码和操作数地址完成操作;
5)控制器由PC(Program Counter,程序计数器),IR(Instruction Register,指令寄存器),CU(控制单元)组成;
6)PC:存放将要执行的指令地址,与主存的MAR有直接通路;具有自增功能,能够自动形成下一条指令的地址;
7)IR:存放当前要执行的指令,内容来自主存的MDR;指令由操作码和操作数地址组成;操作码被送入到CU(OP(IR)->CU),操作数被送入到MAR(Ad(IR)->MAR);
8)CU:分析当前指令需要完成的操作,发出微操作命令序列,控制所有被控对象;

I/O

1) 包括I/O设备和接口;
2) I/O设备通过I/O接口与主机联系,接受CU的控制;

计算机的工作过程

指令执行流程

以ADD M(M为主存地址)指令为例,执行流程如下:
1)取指过程:PCMARMMDRIR;
2)分析过程:OP(IR)CU;
3)执行过程:Ad(IR)MARMMDRIRX;

      ACCALU;XALU;
      ALUACC

计算机工作过程

计算机的工作过程实质就是不断从存储器中逐条取出指令,送至控制器,经分析后由CU发出各种命令,指挥各部件完成各种操作,直至全部指令执行结束;

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21:43:53      这篇文章的 Motivation 来自于 MDNet:         本文所...
1607 0
30、深入理解计算机系统笔记,并发编程(concurrent)(2)
1、共享变量 1)线程存储模型 线程由内核自动调度,每个线程都有它自己的线程上下文(thread context),包括一个惟一的整数线程ID(Thread ID,TID),栈,栈指针,程序计数器,通用目的寄存器和条件码。
687 0
14、深入理解计算机系统笔记:异常控制流
1、系统中可能的每种类型的异常都分配了一个惟一的非负整数的异常号(exception number)。这些号码中的某一些是由处理器的设计者分配的,其他号码是由操作系统内核的设计者分配的。前者如:除0项,缺页,存储器访违例,断点,算术溢出;后者的示例包括系统调用和来自外部I/O设备的信号。
716 0
15、深入理解计算机系统笔记:进程控制
1、获取进程ID[1] 每个进程都有一个唯一的正数(非0)进程ID(PID)。 示例代码 #include #include pid t getpid(void); pid t getppid(void); returns: PID of either the caller...
643 0
18、深入理解计算机系统笔记:测量程序执行时间
1、人不能够觉察短于大约100ms的时间段。 2、计算机有一个外部计时器,它周期性地向处理器发送中断信号。这些中断信号之间的时间被称为间隔时间(interval time)。 3、从一个进程切换到另一个进程需要几千个时钟周期来保存当前当前进程的状态。
581 0
31、深入理解计算机系统笔记,并发编程(concurrent)(3)
1、基于预线程化(prethreading)的并发服务器 常规的并发服务器中,我们为每一个客户端创建一个新线程,代价较大。一个基于预线程化的服务器通过使用“生产者-消费者模型”来试图降低这种开销。
892 0
16、深入理解计算机系统笔记:信号
1、更高层软件形式的异常,称为unix信号,它允许进程中断其他进程。一个信号(signal)就是一条消息,它通知进程一个某种类型的事件已经在系统中发生了。Linux支持30种不同类型的信号。 2、以前,主存储器是用一种称为磁芯存储器(core memory)的技术来实现的。
800 0
20、深入理解计算机系统笔记,虚拟存储器,基本原理(2)
2)页命中 3)缺页 DRAM缓存不命中称为缺页(page fault)。 VM page fault (before). The reference to a word in VP 3 is a miss and triggers a page fault.
525 0
27、深入理解计算机系统笔记,网络编程
1、每个网络应用都是基于客户端-服务器模型的。客户端-服务器模型中的基本操作是事务(transaction)(这里的事务与数据库中的事务有区别,没有数据库事务的特性,如原子性,这时原事务仅仅是客户端和服务器之间执行的一系列步骤)。
631 0
+关注
20
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载