设计一个简易的处理器(5)--SEQ+ CPU的实现
2012-12-11 22:37
746 查看
最终目的是设计一个具有流水化的CPU.为了方便CPU实现流水化,将SEQ
CPU重新安排计算阶段,将PC的计算挪到取指阶段,得到SEQ+
CPU.
SEQ+:重新安排计算阶段
————
重新调整更新PC阶段在一个时钟周期开始时活动,使它计算当前指令的PC的值.下图是SEQ和SEQ+的PC计算的不同之处.
SEQ+中为了计算当前的PC,需要使用寄存器来保存前一个周期产生的信号,如上图所示:
plCode, pCnd, pValM, pValC, pValp.
我们发现程序寄存器PC并没有使用硬件寄存器,而是使用了控制逻辑来动态地计算出PC.说明了可以使用一种与ISA隐含着的概念模型不同的方式实现处理器.
SEQ+的硬件结构
————
注*:本篇中的图片均来自本书的官网,我进行了改造(注释和添加),详见http://csapp.cs.cmu.edu/public/figures.html
(Copyright© 2011, Randal E. Bryant and David R. O'Hallaron )
reference:
1. 深入理解计算机系统(原书第2版)
(版权所有,转载时请注明作者和出处-dennis_fan-http://blog.csdn.net/dennis_fan
)
CPU重新安排计算阶段,将PC的计算挪到取指阶段,得到SEQ+
CPU.
SEQ+:重新安排计算阶段
————
重新调整更新PC阶段在一个时钟周期开始时活动,使它计算当前指令的PC的值.下图是SEQ和SEQ+的PC计算的不同之处.
SEQ+中为了计算当前的PC,需要使用寄存器来保存前一个周期产生的信号,如上图所示:
plCode, pCnd, pValM, pValC, pValp.
我们发现程序寄存器PC并没有使用硬件寄存器,而是使用了控制逻辑来动态地计算出PC.说明了可以使用一种与ISA隐含着的概念模型不同的方式实现处理器.
SEQ+的硬件结构
————
注*:本篇中的图片均来自本书的官网,我进行了改造(注释和添加),详见http://csapp.cs.cmu.edu/public/figures.html
(Copyright© 2011, Randal E. Bryant and David R. O'Hallaron )
reference:
1. 深入理解计算机系统(原书第2版)
(版权所有,转载时请注明作者和出处-dennis_fan-http://blog.csdn.net/dennis_fan
)
相关文章推荐
- 设计一个简易的处理器(4)--SEQ CPU的实现(2):SEQ CPU的控制逻辑与硬件实现
- 设计一个简易的处理器(3)--SEQ CPU的实现(1): 将指令组织成阶段
- 设计一个简易的处理器(6)--简单的流水线实现PIPE-
- verilog简易实现CPU的Cache设计
- 数字集成电路设计-7-一个简单cpu的设计,实现,仿真与综合
- 【脚本语言】一个简易的语言的设计与实现
- 设计一个简易的处理器(10)--性能评估(完)
- 设计实现一个简易通讯录,要求使用结构体
- 设计一个简易的处理器(2)--处理器的硬件部件
- 设计实现一个简易通讯录,要求使用结构体
- 设计一个简易的处理器(1)--定义指令集体系结构(ISA)
- 设计一个简易的处理器(8)--流水线冒险的避免
- 设计一个简易的处理器(9)--PIPE的硬件结构, 流水线控制逻辑
- 数据结构课程设计---用Dijkstra算法实现一个简易的最佳方案选择
- 设计一个简易的处理器(7)--流水线的相关和冒险
- 设计、实现一个 Asp.Net 应用的通用数据存取层
- 使用MVVM框架avalon.js实现一个简易日历
- 设计一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作
- 自己实现一个简易web服务器
- 歌厅歌曲管理系统(转)用c语言实现的一个课程设计