zoukankan      html  css  js  c++  java
  • 计算机组成原理学习

      作为编程人员,虽然很少与计算机硬件打交道,但是个人觉得作为非科班计算机人员,也需要修炼内功,做好底层知识储备,对于学习JVM,多线程,缓存等大有益处。

      计算机组成原理学习,主要从以下四个方面展开:

      1、计算机的基本组成、

      2、计算机的指令和计算、

      3、处理器设计,

      4、存储器和 I/O 设备

      当然还会结合书《编码——隐匿在计算机软硬件背后的语言》一起学习。

     一、计算机性能

    1.1响应时间或执行时间

    1.2.吞吐量或带宽

    二、计算机的计时单位——CPU时钟

    正常一个程序运行的时间中,计算机可能同时运行着好多个程序,CPU 实际上不停地在各个程序之间进行切换。在这些走掉的时间里面,很可能 CPU 切换去运行别的程序了。

    所以一般如下定义:

      第一个是real time,也就是我们说的 Wall Clock Time,也就是运行程序整个过程中流逝掉的时间;

      第二个是user time,也就是 CPU 在运行你的程序,在用户态运行指令的时间;

      第三个是sys time,是 CPU 在运行你的程序,在操作系统内核里运行指令的时间。

    程序实际花费的 CPU 执行时间 CPU Time =  user time +sys time。

    考虑CPU满载或降频、主板差异、内存差异

    程序的 CPU 执行时间 =CPU 时钟周期数×时钟周期时间

       时钟周期时间:CPU 内部晶体振荡器,一个带来的每一次“滴答”。举例:CPU主频4.0GHz,可以执行的简单指令的数量是 4.0G 条;

      CPU 时钟周期数:再做一个分解,变成“指令数×每条指令的平均时钟周期数(Cycles Per Instruction,简称 CPI)

    至此:程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time

    三、CPU

    CPU(Central Processing Unit,中央处理器)就是计算机的大脑。

    从硬件角度,CPU是一个超大规模集成电路,通过电路实现了加法、乘法、乃至各种各样的处理逻辑。

    从软件工程,CPU是执行各种计算指令的逻辑机器。

    逻辑上,CPU是由一堆寄存器组成的,寄存器就是CPU内部,由多个触发器(Flip-Flop)或者锁存器(Latches)组成的简单电路。触发器和锁存器是两种不同原理的数字电路组成的逻辑门。

     常见的三种寄存器:

    PC寄存器Program Counter Register,也叫指令地址寄存器,用来存放下一条需要执行的计算机指令的内存地址。

    指令寄存器Instrunction Register,用来存放当前正在执行的指令。

    条件码寄存器Status Register,用里面的一个一个标记,存放CPU进行算术或者逻辑计算的结果。

    其他一些寄存器既可以存放数据,又能存放地址,一般叫通用寄存器。

    四、C语言到可执行程序

    一般理解:C语言代码,通过编译器编译成汇编代码,汇编代码再通过汇编变成CPU可以理解的机器码,这样CPU就可以执行这些机器码了。

    实际上是由两部分组成:

    第一部分,由编译、汇编以及链接三个阶段组成。再这三个阶段完成之后,就生成了一个可执行文件。

    第二部分,通过装载器把可执行文件装载到内存中。CPU从内存中读取指令和数据,来开始真正执行程序。

  • 相关阅读:
    [luogu] P1440 求m区间内的最小值
    [NOI2014]起床困难综合症
    [SDOI2009]地图复原
    [USACO08JAN] Cow Contest
    【洛谷P5049】旅行(数据加强版)
    【NOIP2015】真题回顾
    【NOIP2014】真题回顾
    【UVA11987】Almost Union-Find
    【UVA11988】破损的键盘
    【UVA11134】传说中的车
  • 原文地址:https://www.cnblogs.com/gzhcsu/p/15231210.html
Copyright © 2011-2022 走看看