时钟周期、总线周期详细说明
- 格式:pdf
- 大小:297.05 KB
- 文档页数:10
DMA总线周期的概念1.微处理器是在时钟信号CLK控制下按节拍工作的。
8086/8088系统的时钟频率为4.77MHz,每个时钟周期约为200ns。
2.由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O 接口的访问,是通过总线实现的。
通常把CPU通过总线对微处理器外部(存贮器或I/O接口)进行一次访问所需时间称为一个总线周期。
一个总线周期一般包含4个时钟周期,这4个时钟周期分别称4个状态即T1状态、T2状态、T3状态和T4状态。
1.DMA的通道选择不是随便的,要根据映像来。
2.外设地址的自增,可能会曾到下一个外设,比如:0X40012400为ADC1的起始地址0X40012800就是ADC2的起始地址了所以在设置此元素是否要递增时要注意了。
STM32 DMA使用详解DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧。
下面用问答的形式表达我的思路。
DMA有什么用?直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU的干预,通过DMA数据可以快速地移动。
这就节省了CPU的资源来做其他操作。
有多少个DMA资源?有两个DMA控制器,DMA1有7个通道,DMA2有5个通道。
数据从什么地方送到什么地方?外设到SRAM(I2C/UART等获取数据并送入SRAM);SRAM的两个区域之间;外设到外设(ADC读取数据后送到TIM1控制其产生不同的PWM占空比);SRAM到外设(SRAM中预先保存的数据送入DAC产生各种波形);……还有一些目前还搞不清楚的。
DMA可以传递多少数据?传统的DMA的概念是用于大批量数据的传输,但是我理解,在STM32中,它的概念被扩展了,也许更多的时候快速是其应用的重点。
数据可以从1~65535个。
直接存储器存取(Direct Memory Access,DMA)是计算机科学中的一种内存访问技术。
它允许某些电脑内部的硬体子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。
微机原理复习1.微型计算机结构(3总线结构:地址总线、数据总线、控制总线)有16根数据线和20根地址,8086可寻址的内存地址空间达220,即1MB; 8086可寻址的I/O地址空间达216,即64KB;2.8086内部组成,BIU和EU的功能及各自的组成,熟知相应寄存器、功能部件在哪个接口部件中。
EU负责指令的执行;算术逻辑单元(ALU),可完成8位或16位操作数进行算术或逻辑运算; 8个16位通用寄存器(AX、BX、CX、DX、SI、DI、SP和BP);标志寄存器;BIU负责CPU与存储器、I/O设备之间的数据传送。
◆4个16位段寄存器(DS、CS、ES、SS); 8086中有4个16位段寄存器,它们是:CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)和ES(附加段寄存器)◆指令指针寄存器(IP);指令指针寄存器IP提供下一条要取出的指令所在存储单元的16位偏移地址。
◆20位的地址加法器;8086CPU采用段地址、段内偏移地址两级存储器寻址方式,由一个20位地址加法器根据16位段地址和16位段内偏移地址计算出20位的物理地址PA(Physical Address)。
其计算方法是:将CPU中的16位段寄存器内容左移4位(×16)与16位的逻辑地址(又称偏移地址)在地址加法器内相加,得到所寻址单元的20位物理地址。
▪物理地址 = 段地址×10H+偏移地址假设(CS)=FE00H,(IP)=0400H,那么下一条要取出的指令所在内存单元的20位物理地址PA=FE00H×10H+0400H=FE400H。
3.8086的寄存器结构寄存器是CPU内部用来存放地址、数据和状态标志的部件,8086有14个16位寄存器和8个8位寄存器数据寄存器AX、BX、CX、DX指针和变址寄存器SP、BP、SI、DI标志寄存器FRFR是一个16位的寄存器。
9个位用作标志位:◆状态标志位有6个,控制标志位有3个CF:进位标志:指令执行后,如果运算结果在最高位上产生了一个进位或借位,则CF=1;否则,CF=0。
时钟周期(Clock Cycle):又称节拍周期,是处理操作的最基本单位。
(晶振频率的倒数,也称T状态) 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。
我们学习的8051单片机的时钟范围是1.2MHz-12MHz。
在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S 周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
指令周期(Instruction Cycle):取出并执行一条指令的时间。
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期数也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
总线周期的名词解释是什么总线周期,又称总线时钟周期,是指计算机系统中各个设备进行数据传输和通信所需要的时间间隔。
在计算机系统中,总线相当于一条电子通路,用于连接各个设备,让它们能够相互传递数据和指令。
不同设备之间的数据传输需要通过总线进行,而总线周期则是用来衡量这个传输过程的时间。
总线周期的长度是由计算机系统的时钟频率决定的。
时钟频率通常以赫兹(Hz)作为单位,表示每秒钟发生的时钟脉冲的次数。
比如,如果计算机系统的时钟频率为1 GHz(即10^9 Hz),那么每秒钟会有10亿个时钟脉冲产生。
总线周期则是时钟周期的倒数,可以用来衡量一个总线操作所需要的时间。
在计算机系统中,各个设备之间的通信需要进行诸如读取、写入、传输等操作。
这些操作会涉及到数据的传输和处理,而总线周期则是用来计算这些传输和处理所需时间的基本单位。
在每个总线周期内,数据会以特定的方式在总线上传输,设备之间要进行的操作会按照时序进行。
当一个总线周期结束后,下一个总线周期即开始,设备之间的下一个操作也会相继执行。
总线周期可以进一步细分为读周期和写周期。
读周期即设备从总线上读取数据的时间段,写周期则是设备向总线上写入数据的时间段。
读周期和写周期的长度取决于设备的特性和总线的带宽。
通常情况下,读周期比写周期短,因为读取数据的操作要比写入数据的操作简单。
在一个总线周期内,可能会有多个设备进行读操作,但一次只能有一个设备进行写操作,以避免数据冲突和干扰。
总线周期对于计算机系统的性能和效率有着重要的影响。
如果总线周期过长,会导致设备之间的数据传输速度变慢,影响计算机系统的响应速度和运行效率。
相反,如果总线周期过短,设备之间的数据传输可能会出现错误和冲突,导致系统不稳定。
因此,合理设置总线周期是计算机系统设计中需要考虑的关键因素之一。
总线周期的名词解释就是上述所述,它是计算机系统中用来衡量设备之间数据传输所需要的时间间隔。
它是由计算机系统的时钟频率决定的,用来标记一个总线操作的开始和结束。
单片机时钟周期、机器周期、指令周期与总线周期时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
具体计算就是1/fosc。
也就是说如果晶振为1MHz,那么时钟周期就为1us;6MHz的话,就是1/6us。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
具体计算为:时钟周期Xcycles。
如果单片机是12周期的话,那么机器周期就是T×12。
假设晶振频率为12M,单片机为12周期的话,那么机器周期就是1us。
例如外接24M晶振的单片机,他的一个机器周期=12/24M秒;52系列单片机一个机器周期等于12个时钟周期。
设晶振频率为12MHz时,52单片机是12T的单片机,即频率要12分频。
第二章1、8086最大模式和最小模式的区别是什么?答:当8086MN/MX信号线接+5V是,系统处于最小工作模式,它适用于较小规模的应用。
当MN/MX线接地时,则系统工作于最大模式。
最大模式和最小模式的主要区别是外加有8288总线控制器。
最小模式下,控制总线直接从8086得到;最大模式下,通过8288对CPU 发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读写信号和对锁存器8282及对数据总线收发器8286的控制信号,最大模式是多处理机模式,需要协调主处理器和协处理器的工作问题及对总线的共享控制问题。
最小模式是单处理机模式。
在最小模式下,控制信号是直接从第24~29脚送出的;最大模式下,状态信号S2、S1、S0隐含了一些控制信息,使用8288后,就可以从S2、S1、S0状态信息的组合中的到与这些控制信号相同的信息。
2、什么是总线周期、时钟周期、指令周期,总线周期和时钟周期的关系是什么?答:CPU要从存储器或输入/输出端口存取一个字节(或一个字)所需要的时间成为总线周期。
时钟周期是CPU的基本事件计量单位,它由计算机的主频决定。
从取指令到执行完毕指令所需要的时间成为指令周期。
一个基本的总线周期有4个时钟周期组成。
3、8086物理地址、偏移地址、段地址三者的关系是什么?答;物理地址等于段地址左移四位加上偏移地址。
4、8086总线接口单元有那些基本组成,执行单元有那些组成?答:总线接口由4个段地址寄存器、IP(16位的指令指针寄存器)、20位物理地址加法器和总线控制电路和6个字节的指令队列缓冲器组成。
执行单元由16位算术逻辑单元(ALU)、16位标志寄存器(FLAGS)、通用寄存器组、数据暂存寄存器和EU控制电路组成。
5、8086和8088的区别有哪些?引脚、数据线地址线、存储模式。
答:引脚:第28脚8088为IO/M,而8086为M/IO。
第34脚8088为SSO,而8086为BHE/S7。
总线——总线的性能指标
总线的性能指标
1.总线的传输周期(总线周期)
⼀次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),通常由若⼲个总线时钟周期构成。
2.总线时钟周期
即机器的时钟周期。
计算机有⼀个统⼀的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
3.总线的⼯作频率
总线上各种操作的频率,为总线周期的倒数。
实际上指⼀秒内传送⼏次数据。
4.总线的时钟频率
即机器的时钟频率,为时钟周期的倒数。
实际上指⼀秒内有多少个时钟周期。
5.总线宽度
⼜称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位(bit)总线。
6.总线带宽
可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常⽤每秒钟传送信息的字节数来衡量,
单位可⽤字节/秒(B/S)表⽰。
总线带宽=总线⼯作频率×总线宽(bit/s)=总线⼯作频率×(总线宽度/8)(B/S)
7.总线复⽤
总线复⽤是指⼀种信号线在不同的时间传输不同的信息。
可以使⽤较少的线传输更多的信息,从⽽节省了空间和
成本。
8.信号线数
地址总线、数据总线和控制总线3种总线数的总和称为信号线数。
计算机组成原理课程复习要点1、总线、时钟周期、机器周期、机器字长、存储字长、存储容量、立即寻址、直接寻址、MDR、MAR等基本概念。
总线:连接多个部件的信息传输线,是各个部件共享的传输介质。
在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的消息。
分为片内总线,系统总线和通信总线。
时钟周期:也称为振荡周期,定义为时钟频率的倒数。
时钟周期是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
机器周期:完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成存储容量:存储容量是指存储器可以容纳的二进制信息量,用存储器中存储地址寄存器MAR的编址数与存储字位数的乘积表示。
即:存储容量 = 存储单元个数*存储字长立即寻址:立即寻址的特点是操作数本身设在指令字内,即形式地址A不是操作数的地址,而是操作数本身,又称之为立即数。
数据是采用补码的形式存放的把“#”号放在立即数前面,以表示该寻址方式为立即寻址。
直接寻址:在指令格式的地址字段中直接指出操作数在内存的地址ID。
在指令执行阶段对主存只访问一次。
计算机系统:由计算机硬件系统和软件系统组成的综合体。
计算机硬件:指计算机中的电子线路和物理装置。
计算机软件:计算机运行所需的程序及相关资料。
主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。
CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE)。
主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
存储单元:可存放一个机器字并具有特定存储地址的存储单位。
存储元件:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
指令周期、时钟周期、总线周期概念辨析在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
通常用内存中读取一个指令字的最短时间来规定CPU周期,(也就是计算机通过内部或外部总线进行一次信息传输从而完成一个或几个微操作所需要的时间)),它一般由12个时钟周期组成。
而时钟周期=1秒/晶振频率,因此单片机的机器周期=12秒/晶振频率 .指令周期(Instruction Cycle):取出并执行一条指令的时间。
总线周期(BUS Cycle):也就是一个访存储器或I/O端口操作所用的时间。
时钟周期(Clock Cycle):又称节拍周期,是处理操作的最基本单位。
(晶振频率的倒数,也称T状态)指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。
指令周期CPU每取出一条指令并执行这条指令,都要完成一系列的操作,这一系列操作所需要的时间通常叫做一个指令周期。
换言之指令周期是取出一条指令并执行这条指令的时间。
由于各条指令的操作功能不同,因此各种指令的指令周期是不尽相同的。
例如一条加法指令的指令周期同一条乘法指令的指令周期是不相同的。
指令周期常常用若干个CPU周期数来表示,CPU周期也称机器周期。
指令不同,所需的机器周期数也不同。
对于一些简单的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
总线周期1.微处理器是在时钟信号CLK控制下按节拍工作的。
8086/8088系统的时钟频率为4.77MHz,每个时钟周期约为200ns。
单片机:时钟周期,机器周期,指令周期
时钟周期:
时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
具体计算就是1/fosc。
也就是说如果晶振为1MHz,那幺时钟周期就为1us;6MHz的话,就是1/6us。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周。
硬件基础名词解释流水线技术:将功能部件分离、执行时间重叠的一种技术,它可以在增加尽可能少的硬件设备情况下有效地提高CPU性能。
超流水线技术:把流水段进一步细分,使各段的功能部件在每个时钟周期内被使用多次,这样,在一个时钟周期内多条指令流入流水线,即在一个基本时钟周期内分时发射多条指令。
超标量:超标量处理器是指在处理器中安排多个指令执行部件,多条指令可以被同时启动和独立执行。
多核技术:在一个处理器封装中包含多个处理器核心。
超长指令字: VLIW中编译器经过优化策略,将多条能并行执行的指令合并成一条具有多个操作码的超长指令。
微程序:完成指定任务的微指令序列称为微程序。
微程序存储器:存放计算机指令系统所对应的所有微程序的一个专门存储器。
通道程序:通道控制器和I/O处理器可以独立地执行一系列的I/O操作,I/O操作序列被称为I/O通道程序。
指令系统:一台计算机能执行的机器指令全体称为该机的指令系统。
堆栈:堆栈是一种按特定顺序访问的存储区;其特点是后进先出(LIFO)或先进后出(FILO)。
输入输出系统:通常把I/O设备及其接口线路、控制部件、通道或I/O处理器以及I/O软件统称为输入输出系统。
接口:接口是CPU与“外部世界”的连接电路,负责“中转”各种信息。
中断:由于内部/外部事件或由程序的预先安排引起CPU暂停现行程序,转而处理随机到来的事件,待处理完后再回到被暂停的程序继续执行,这个过程就是中断。
中断系统:是计算机实现中断功能的软、硬件的总称。
中断向量:把中断服务程序的首址PC和初始PSW称为中断向量。
数据通路:数据在功能部件之间传送的路径称为数据通路。
寻址方式:指定当前指令的操作数地址以及下条指令地址的方法称为寻址方式。
有效地址:数据实际存在的存储器地址。
波特率:单位时间内传送的二进制数据的位数,以位/秒(b/s)表示,也称为数据位率。
它是衡量串行通信速率的重要指标。
指令助记符:为了便于书写和阅读程序,每条指令通常用3个或4个英文缩写字母来表示。
时钟信号参数时钟信号是指一种用来同步电子设备和操作的信号。
在现代电子设备中,时钟信号非常重要,它用于同步处理器、内存、总线等各种模块之间的操作,使它们能够按照固定的时间流程工作。
时钟信号的参数包括频率、周期、占空比以及时钟源等。
1. 频率(Frequency):时钟信号的频率是指单位时间内信号发生的次数,一般以赫兹(Hz)为单位表示。
常见的时钟频率有1MHz、10MHz、100MHz等。
时钟频率越高,系统的响应速度越快。
不同的电子设备和操作具有不同的时钟频率要求。
2. 周期(Period):时钟信号的周期是指信号一个完整的波形从起点到起点所经过的时间,一般用秒为单位表示。
周期是频率的倒数,即T=1/f。
周期与频率成反比,频率越高,周期越短。
周期也是决定时钟信号的稳定性和精确度的重要参数。
3. 占空比(Duty cycle):占空比是指时钟信号在一个周期中的高电平时间与总周期时间的比值。
一般以百分比表示。
占空比是衡量时钟信号承载信息的能力和工作效率的重要指标。
占空比为50%时,称为50%工作周期。
4. 时钟源(Clock source):时钟信号的源头称为时钟源。
时钟源可以是外部元件生成的,如晶体振荡器或者时钟发生器,也可以是芯片内部的振荡器电路产生的内部时钟。
时钟信号的参数对于电子设备和操作的正常运行非常重要。
时钟频率的选择要根据具体的应用场景和需求来确定,需要充分考虑系统的稳定性和响应速度。
周期和占空比决定了时钟信号的工作稳定性和时间精确度,需要根据具体的应用要求来选择合适的参数。
时钟信号的生成和传输是现代电子设备和操作的基础,它保证了各个模块之间的同步和协作。
时钟信号的参数选择和调整对于系统性能的优化具有重要的意义,要根据具体的应用场景和需求来进行合理的设计和配置。
同时,时钟信号的稳定性和精确度也需要经过严格的测试和校准来保证系统的正常运行。
时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P 表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
总线周期:由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。
通常把CPU通过总线对微处理器外部(存贮器或I/O接口)进行一次访问所需时间称为一个总线周期。
总结一下,时钟周期是最小单位,机器周期需要1个或多个时钟周期,指令周期需要1个或多个机器周期;机器周期指的是完成一个基本操作的时间,这个基本操作有时可能包含总线读写,因而包含总线周期,但是有时可能与总线读写无关,所以,并无明确的相互包含的关系。
指令周期:是CPU的关键指标,指取出并执行一条指令的时间。
一般以机器周期为单位,分单指令执行周期、双指令执行周期等。
现在的处理器的大部分指令(ARM、DSP)均采用单指令执行周期。
机器周期:完成一个基本操作的时间单元,如取指周期、取数周期。
时钟周期:CPU的晶振的工作频率的倒数。
例子:22.1184MHZ的晶振,它的晶振周期、时钟周期和机器周期分别是多少?以51为例,晶振22.1184M,时钟周期(晶振周期)就是(1/22.1184)μs,一个机器周期包含12个时钟周期,一个机器周期就是0.5425μs。
一个机器周期一般是一条指令花费的时间,也有些是2个机器周期的指令,DJNZ,是双周期指令.--------------------------------------------------------红皮书118页说cpu的操作频率可达60MHZ,这个频率是机器周期还是指令周期?ARM机器周期跟指令周期有什么对应关系?由于ARM采用的是三级流水线的技术,所有的指令执行都由相同的三个阶段取指,译码,执行,那么所有的指令的执行时间是不是都是相同的?我的理解是:如果ARM不接pll(即ARM直接采用晶振的周期),ARM的机器周期就是晶振的振荡周期,这两个是等同的,所有的指令的执行时间都是相同的,且都等于晶振周期;如果ARM连接并使能pll,则1/Fcclk就是机器周期,指令的执行频率等于Fcclk。
请教高手指点更正,多谢!!zlgarm :没有机器周期的概念,只有主时钟的概念,它是OLL的输出。
如果程序和数据均在片内RAM中,这样计算指令执行时间1、一般指令需1个主时钟时间2、每次跳转增加3个主时钟时间(也许是2个,需要确认)3、从RAM中取一个操作数多增加一个主时钟时间,以次类推4、保存一个结果到RAM中多增加一个主时钟时间,以次类推5、访问片内外设,增加一个外设时钟时间注意伪指令ldr rn,=x需要从ram中取一个操作数。
slump:如果从FLASH中运行,启动MAM后,当指令不在MAM缓冲中,需用MAMTIM个周期进行MAM预取指。
所以程序跳转的开销是相当大的。
--------------------------------------------------------8051、ARM和DSP指令周期的测试与分析本文对三种最具代表性的微控制器(AT89S51单片机、7TDMI核的LPC2114型单片机和TMS320F2812)的指令周期进行了分析和。
为了能观察到指令周期,将三种控制器的GPIO口设置为数字输出口,并采用循环不断地置位和清零,通过观察GPIO口的波形变化得到整个循环的周期。
为了将整个循环的周期与具体的每一条指令的指令周期对应起来,通过C语言源程序得到汇编语言指令来计算每一条汇编语言的指令周期。
1 AT89S51工作机制及指令周期的AT89S51单片机的时钟采用内部方式,时钟发生器对振荡脉冲进行2分频。
由于时钟周期为振荡周期的两倍(时钟周期=振荡周期P1+振荡周期P2),而1个机器周期含有6个时钟,因此1个机器周期包括12个晶振的振荡周期。
取石英晶振的振荡频率为11.059 2 MHz,则单片机的机器周期为12/11.059 2=1.085 1 μs。
51系列单片机的指令周期一般含1~4个机器周期,多数指令为单周期指令,有2周期和4周期指令。
为了观察指令周期,对单片机的P1口的最低位进行循环置位操作和清除操作。
源程序如下:#includemain() {while(1) {P1=0x01;P1=0x00;}}采用KEIL uVISION2进行编译、链接,生成可执行文件。
当调用该集成环境中的Debug时,可以得到上述源程序混合模式的反汇编代码:2:main()3: {4:while(1)5:{6:P1=0x01;0x000F759001MOVP1(0x90),#0x017:P1=0x00;0x0012 E4CLRA0x0013 F590MOVP1(0x90),A8:}0x001580EDSJMPmain (C:0003)其中斜体的代码为C源程序,正体的代码为斜体C源程序对应的汇编语言代码。
每行汇编代码的第1列为该代码在器中的位置,第2列为机器码,后面是编译、链接后的汇编语言代码。
所有指令共占用6个机器周期(其中“MOVP1(0x90),#0x01”占用2个机器周期,“CLR A”和“MOV P1(0x90),A”各占用1个机器周期,最后一个跳转指令占用2个机器周期),则总的循环周期为6×机器周期=6×1.085 1 μs=6.51 μs。
图1 P1口最低位的波形将编译、链接生成的可执行文件到AT89S51的Flash中执行可以得到P1口最低位的波形,如图1所示。
整个循环周期为6.1 μs,与上面的分析完全一致。
2 LPC2114工作机制及指令周期的测试LPC2114是基于ARM7TDMI核的可加密的单片机,具有零等待128 KB的片内Flash,16 KB的SRAM。
时钟频率可达60 MHz(晶振的频率为11.059 2 MHz,时钟频率设置为11.059 2×4 =44.236 8 MHz,片内外设频率为时钟频率的1/4,即晶振的频率)。
7TDMI核通过使用三级流水线和大量使用内部寄存器来提高指令流的执行速度,能提供0.9 MIPS/MHz的指令执行速度,即指令周期为1/(0.9×44.236 8)=0.025 12 μs,约为25 ns。
为了观察指令周期,将LPC2114中GPIO的P0.25脚设置为输出口,并对其进行循环的置位操作和清除操作。
C 源程序如下:#include"config.h"//P0.25引脚输出#defineLEDCON0x02000000intmain(void){//设置所有引脚连接GPIOPINSEL0 = 0x00000000;PINSEL1 = 0x00000000;//设置LED4控制口为输出IO0DIR = LEDCON;while(1){IO0SET = LEDCON;IO0CLR = LEDCON;}return(0);}采用ADS1.2进行编译、链接,生成可执行文件。
当调用AXD Debugger时,可以得到上述源程序的反汇编代码:main[0xe59f1020]ldrr1,0x4000024840000224[0xe3a00000]movr0,#040000228[0xe5810000]strr0,[r1,#0]4000022c[0xe5810004]strr0,[r1,#4]40000230[0xe3a00780]movr0,#0x200000040000234[0xe1c115c0]bicr1,r1,r0,asr #1140000238[0xe5810008]strr0,[r1,#8]4000023c[0xe5810004]strr0,[r1,#4]40000240[0xe581000c]strr0,[r1,#0xc]40000244[0xeafffffc]b0x4000023c40000248[0xe002c000]dcd0xe002c000每行汇编代码的第1列为该代码在器中的位置,第2列为机器码,后面是编译、链接后的汇编语言代码。
循环部分的语句最关键的就是下面3句:4000023c[0xe5810004]strr0,[r1,#4]40000240[0xe581000c]strr0,[r1,#0xc]40000244[0xeafffffc]b0x4000023c在AXD Debugger中,将其调用到RAM中运行程序得到循环部分GPIO的P0.25的输出波形,如图2所示。
从图中可以看出,循环周期中保持为高电平的时间为1350 ns左右,低电平的时间为450 ns左右,即指令“str r0,[r1,#4]”和指令“str r0,[r1,#0xc]”均需350 ns左右,而跳转指令则需100 ns左右。
这主要是由于以下原因造成的:①ARM的大部分指令是单周期的,但是也有一些指令(如乘法指令)是多周期的;②基于核的微控制器只有加载、存储和指令可以对存储器的数据进行访问,这样从存储器读数据或向存储器写数据要增加1个时钟周期;③访问片内外设要增加一个外设时钟周期。