时钟周期

CPU中断的工作原理,从最底层讲起

a 夏天 提交于 2020-02-15 13:23:23
  前言   中断的概念属于硬件层。虽然我们在进行软件编程时不会直接使用中断,但理解它对我们来说依然重要。   我们在使用线程切换及状态管理、异常处理、硬件与处理器的交互、I/O操作等指令时,中断都在默默的为我们服务。   处理器基于硬件封装对外的指令集,底层语言封装指令集为我们提供更加简单的抽象,高级语言基于底层语言赋予程序更明确的语义。可以看到在这条关系链条中,下层的变动会牵一发而动全身影响上层。而上层想要提高效率,改变机制也必须得到下层的支持。   像 I/O 处理的不断演进,从占用CPU等待到通过中断阻塞等待到多路复用与异步,如果没有下层的支持上层是不可能实现的。而不了解下层的原理我们也很难真正理解一个机制的高效的原因。因此了解下层的原理对应用层工程师来说同样重要。   什么是中断   现代计算机具有多任务处理的能力,往往一台我们办公使用的普通计算机上都会同时运行着几十上百的任务(进程)。我们很难想象,我们点击一下鼠标,需要等待计算机的进程调度模块调度到鼠标处理任务后再给我们做出响应,这对我们来说是不可接受的。   现实是我们在点击鼠标或键盘时(正如我现在在做的事情),计算机会立即给我反馈处理结果,计算机与我们之间是在进行实时交互的。而实时性的实现便是依赖了中断,中断是为了顺应人们对实时性交互的需求而产生的技术。中断之所以有用,是因为它会立刻停下当前的程序(软件

单片机的时钟

十年热恋 提交于 2020-02-14 11:01:57
http://www.easy-key.com/home/article/news_details/aid/5718 我们先来理解几个比较重要的概念:时间周期、指令周期、机器周期,以及系统时钟的工作原理。 时钟周期: 时钟周期也叫振荡周期或晶振周期,即晶振的单位时间发出的脉冲数,一般有外部的振晶产生,比如12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,也就是1/12微秒。通常也叫做系统时钟周期。是计算机中最基本的、最小的时间单位。 在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。 机器周期: 在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。 在标准的51单片机中,一般情况下,一个机器周期等于12个时钟周期,也就是机器周期=12

【5分钟+】计算机系统结构:CPU性能公式

六眼飞鱼酱① 提交于 2020-02-04 19:13:31
计算机系统结构:CPU性能公式 基础知识 CPU 时间:一个程序在 CPU 上运行的时间。(不包括I/O时间) 主频、时钟频率:CPU 内部主时钟的频率,表示1秒可以完成多少个周期。 例如,主频为 4.1GHz,表示每秒可以完成 4.1*10 9 个时钟周期。 时钟周期:时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。 时钟周期 = 1 / 频率,例如 1/ 4.1*10 9 。 CPU 的时钟周期越短,CPU 性能越好。 指令周期:取出并执行一条指令的时间。 程序的时钟周期数 CPU时间 = 执行程序所需的时钟周期数 * 时钟周期时间 公式 指令周期:取出并执行一条指令的时间; 指令周期数CPI:平均每条指令耗费的时钟周期数 CPI = 执行程序所需的时钟周期数 / 所执行的指令条数 上面的公式换位置 执行程序所需要的时钟周期数 = CPI * 所执行的指令条数 CPU时间 / 时钟周期时间 = CPI * 所执行的指令条数 CPU时间 = CPI * 所执行的指令条数 * 时钟周期时间 我们约定 IC :所执行的指令条数,所以 CPU时间 = CPI * IC * 时钟周期时间 CPU时间 = (CPI * IC) / 时钟频率 CPI i :第 i 种指令所需要的时钟周期数; IC i

数组和链表区别?为什么链表查找慢?数组查找快?为什么连续内存就方便查找?

拥有回忆 提交于 2020-01-31 02:14:05
数组与链表的优缺点; 数组: 优点:使用方便 ,查询效率 比链表高,内存为一连续的区域 缺点:大小固定,不适合动态存储,不方便动态添加 链表: 优点:可动态添加删除 大小可变 ,内存可能是不连续内存,链式存储。 缺点:只能通过顺次指针访问,查询效率低 链表和数组的本质差异 1 在访问方式上 数组可以随机访问其中的元素 链表则必须是顺序访问,不能随机访问 2 空间的使用上 链表可以随意扩大 数组则不能 从CPU的角度 CPU 寄存器 – immediate access (0-1个CPU时钟周期) CPU L1 缓存 – fast access (3个CPU时钟周期) CPU L2 缓存 – slightly slower access (10个CPU时钟周期) 内存 (RAM) – slow access (100个CPU时钟周期) 硬盘 (file system) – very slow (10,000,000个CPU时钟周期) 各级别的存储器速度差异非常大,CPU寄存器速度是内存速度的100倍! 这就是为什么CPU产商发明了CPU缓存。 而这个CPU缓存,就是数组和链表的区别的关键所在。 CPU缓存会把一片连续的内存空间读入 ,因为数组结构是连续的内存地址,所以数组全部或者部分元素被连续存在CPU缓存里面,平均读取 每个元素的时间只要3个CPU时钟时间。

openmp(1)----计时

放肆的年华 提交于 2020-01-10 11:06:53
时间是用来评价一个算法或代码的重要指标。 clock_t 为时钟周期数,在并行程序中这种方式不能测量时间。 #include <time.h> clock_t start,finish; start = clock(); finish = clock(); std::cout<<"完成需要 "<<finish - start<<"个时钟周期"<<std::endl; std::cout<<"消耗时间为:"<<(finish - start)/CLOCKS_PER_SEC*1000<<"ms\n"<<std::endl; // CLOCKS_PER_SEC 每秒德时钟周期数 double omp_get_wtime() 返回绝对时间,单位为s #include<omp.h> double start = omp_get_wtime( ); double end = omp_get_wtime( ); double omp_get_wtick() 返回单个时钟周期的时间,s #include "omp.h" #include <stdio.h> //获得一个时钟周期是多少秒 double wtick = omp_get_wtick( ); printf("wtick = %.16g\n1/wtick = %.16g\n", wtick, 1.0 / wtick); //

详解总线带宽的计算

旧城冷巷雨未停 提交于 2020-01-07 17:49:08
例1: 解: 时钟频率100MHz 也就是说一秒钟有100M个时钟周期 5个时钟周期传一个字 100M个时钟周期可以传100M/5=20M个字 也就是1秒钟可以传20M个字 一个字是16位 也就是2B 20M个字就是20M ∗ * ∗ 2B = 40MB 也就是一秒钟可以传40MB的数据 所以总线带宽就是40MB/s 例2: 若总线宽度为16位,时钟频率为8MHz,完成一次数据传送需要2个时钟周期,则总线带宽是 8MB/s 解: 时钟频率为8MHz 也就是说一秒钟有8M个时钟周期 完成一次数据传送需要2个时钟周期 8M个时钟周期可以完成8M/2=4M次数据传送 也就是一秒钟可以完成4M次数据传送 每次可以传送16位,即2字节 所以一秒钟可以传送 4M ∗ * ∗ 2 字节 = = = 8M 字节 所以总线带宽是 8MB/s 来源: CSDN 作者: self2211 链接: https://blog.csdn.net/wx_assa/article/details/103876231

计算机组成原理复习要点

陌路散爱 提交于 2019-12-16 06:48:39
1. 冯•诺依曼计算机的特点主要有: (1) 计算机由运算器,控制器、存储器和输入/输出设备五大部件构成 ,缺少任何一个部件都无法正常工作 (2) 指令和数据都以同等地位存放在存储器中 ,并可按地址访问。 (3)指令和数据都均以 二进制形式表示 (4) 指令在存储器中按顺序存放 。通常,指令是顺序执行的。在特殊情况下,可根据运算结果或指定的条件改变运算顺序。 (5) 指令由操作码和地址码组成 。操作码表示操作的性质,地址码表示操作数在存储器中的位置 (6) 机器以运算器为中心。 2.计算机系统的层次结构 计算机系统层次结构,指的是计算机系统由 硬件和软件 两大部分所构成,而如果 按功能再细分 ,可分为 7层 。 3.计算机各种性能指标之间的关系 总线的技术指标: 1. 总线的带宽 ( 总线数据传输率 ):总线带宽是指单位时间内总线上传输的数据量 2. 总线位宽:总线能同时传输的二进制位数 ,或数据总线的位数。 3.总线的工作频率:总线工作频率单位以MHz为单位,工作频率越高总线工作速率越快,总线带宽越宽。 4.各种性能指标之间的关系p19 计算机性能的定义: 吞吐率和响应时间 是考量一个计算机系统性能的基本指标。 吞吐率表示在单位时间内所完成的工作量 。在有些场合,吞吐率也可以称为带宽。 响应时间也被称为执行时间或等待时间 ,是指从作业在CPU上执行所用的时间外,还包括磁盘访问时间

【《超标量处理器基础》学习笔记一】处理器设计

帅比萌擦擦* 提交于 2019-12-04 10:30:26
本系列为《超标量处理器基础》学习笔记,多数为书中内容,摘取感兴趣的部分稍作整理。 体系结构 指指令集体系结构,即指令集的规范,而 微体系结构 是指体系结构的具体逻辑实现,同一种指令集体系结构可以用不同的微体系结构,并采用不同的流水线设计,不同的分支预测算法等。 微体系结构的多样性使得同一种体系结构能够不断地推陈出新,并利用新出现的微体系结果技术来提高微处理器的性能,同时又保持代码的兼容性。 微处理器是指令集处理器(ISP, Instruction Set Processor)。ISP执行预先定义指令集中的指令。微处理器的功能几乎完全取决于指令集,从而表明了它的执行能力。所有运行于微处理器上的程序都要基于指令集进行编码。预定义的指令集称为指令集体系结构(ISA, Instruction Set Architecture)。ISA是软件与硬件之间的接口,或者是程序与处理器之间的接口。ISA是设计的规范,而微处理器或ISP是设计的实现。 微处理器的发展符合摩尔定律,即在单个芯片上的器件集成度将以每18个月到24个月的速度翻一番。 体系结构、逻辑实现和物理实现 体系结构规定了处理器的功能性行为,逻辑实现是实现体系结构的逻辑结构和组织,物理实现是逻辑实现的物理结构和具体表现形式。 体系结构对指令集处理器的指令集合进行说明。为了能被处理器执行,所有的软件都必须与指令集匹配

计算机处理器基础原理笔记

被刻印的时光 ゝ 提交于 2019-12-02 06:43:50
1. 计算机每执行一条指令的过程,可以分解成这样几个步骤。 (1) Fetch (取得指令) ,也就是从PC寄存器里找到对应的指令地址,根据指令地址从内存里把具体的指令,加载到指令寄存器中,然后把PC寄存器自增,在未来执行下一条指令。 (2) Decode (指令译码) ,也就是根据指令寄存器里面的指令,解析成要进行什么样的操作,是MIPS指令集的R、I、J中哪一种指令,具体要操作哪些寄存器、数据或者内存地址。 (3) Execute (执行指令) ,也就是实际运行对应的 R、I、J 这些特定的指令,进行算术逻辑操作、数据传输或者直接的地址跳转。 (4)重复进行(1)~(3)的步骤。 这其实就是一个永不停歇的“Fetch - Decode - Execute”的循环,这个循环称之为 指令周期 (Instruction Cycle)。 在取指令的阶段,指令是放在 存储器 里的,实际上, 通过 PC 寄存器和指令寄存器取出指令的过程,是由控制器(Control Unit )操作的。指令的解码过程,也由控制器进行 。到了执行指令阶段,无论是进行算术操作、逻辑操作的R型指令,还是进行数据传输、条件分支的I型指令,都是由 算术逻辑单元 (ALU)操作的,也就是由 运算器 处理的。不过,如果是一个简单的无条件地址跳转,那么我们可以直接在 控制器 里面完成,不需要用到运算器,如下所示:

计算机系统基础 Fundament of Computer System ——公式记忆

血红的双手。 提交于 2019-12-01 20:06:09
计算机系统基础 Fundament of Computer System ——公式记忆 2019-10-21 Mon. ♦ 用户CPU时间 = 程序总时钟周期数 ÷ 时钟频率        = 程序总时钟周期数 × 时钟周期 ♦ 时钟频率 =1 / CPU时钟周期 ( 时钟频率 , 时钟周期 互为倒数) ♦ 程序总时钟周期数 = 程序总指令条数 × CPI ♦ 程序总时钟周期数 = ∑ n i=1 (CPI i × C i ) (已知程序有n条不同类型指令,第i种指令的条数和CPI分别为C i 和CPI i ) ♦ 程序的综合CPI = ∑ n i=1 (CPI i × F i )         = 程序总时钟周期数 ÷ 程序总指令条数 (F i 表示第 i 种指令在程序中所占的比例) ♦ 用户CPU时间 = CPI × 程序总指令条数 × 时钟周期 ♦ ♦ ♦ 来源: https://www.cnblogs.com/LinQingYang/p/11715884.html