10
attiny28l/v
1062E
–
10/01
子例程 和 中断
硬件 堆栈
这 attiny28 使用 一个 3-水平的-深的 硬件 堆栈 为 subroutines 和 中断. 这
硬件 堆栈 是 10 位 宽 和 stores 这 程序 计数器 (pc) 返回 地址
当 subroutines 和 中断 是 executed.
rcall 说明 和 中断 推 这 pc 返回 地址 面向 堆栈 水平的 0, 和
这 数据 在 这 其它 堆栈 水平 1 - 2 是 pushed 一个 水平的 deeper 在 这 堆栈. 当 一个
ret 或者 reti 操作指南 是 executed 这 returning pc 是 fetched 从 堆栈 水平的 0, 和
这 数据 在 这 其它 堆栈 水平 1 - 2 是 popped 一个 水平的 在 这 堆栈.
如果 更多 比 三 subsequent 子例程 calls 或者 中断 是 executed, 这 第一 val-
ues 写 至 这 堆栈 是 overwritten.
记忆 进入 和
操作指南 执行
定时
这个 部分 describes 这 一般 进入 定时 concepts 为 操作指南 执行 和
内部的 记忆 进入.
这 avr cpu 是 驱动 用 这 系统 时钟, 直接地 发生 从 这 外部 时钟
结晶 为 这 碎片. 非 内部的 时钟 分隔 是 使用.
图示 13 显示 这 并行的 操作指南 fetches 和 操作指南 executions 使能 用
这 harvard architecture 和 这 快-进入 寄存器 文件 concept. 这个 是 这 基本 pipe-
lining concept 至 获得 向上 至 1 mips 每 mhz 和 这 相应的 唯一的 结果 为
功能 每 费用, 功能 每 clocks 和 功能 每 电源 单位.
图示 13.
这 并行的 操作指南 fetches 和 操作指南 executions
图示 14 显示 这 内部的 定时 concept 为 这 寄存器 文件. 在 一个 单独的 时钟 循环
一个 alu 运作 使用 二 寄存器 operands 是 executed, 和 这 结果 是 贮存 后面的
至 这 destination 寄存器.
图示 14.
单独的 循环 alu 运作
系统 时钟 Ø
1st 操作指南 fetch
1st 操作指南 execute
2nd 操作指南 fetch
2nd 操作指南 execute
3rd 操作指南 fetch
3rd 操作指南 execute
4th 操作指南 fetch
T1 T2 T3 T4
系统 时钟
Ø
总的 执行 时间
寄存器 operands fetch
alu 运作 execute
结果 写 后面的
T1 T2 T3 T4