10. 处理器的设计步骤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10. 处理器的设计步骤相关的知识,希望对你有一定的参考价值。
参考技术A <1> 分析指令系统,得出对数据通路的要求。所谓数据通路,就是指令所要操作的数据,需要通过怎样的电路结构。<2> 为数据通路选择合适的组件,例如加法器、寄存器等
<3> 连接组件,建立数据通路
<4> 分析每条指令的实现,以确定控制信号
<5> 集成控制信号,形成完整的控制逻辑
我们为了学习的目的,只考虑以下几个MIPS指令,
addu rd,rs,rt
subu rd,rs,rt
ori rt,rs,imm16
lw rt,imm16(rs)
sw rt,imm16(rs)
beq rs,rt,imm16
对于R型指令,
对于I型指令,
因此,我们需要一个支持可读的指令存储器,不需要写入功能,只读就行,输入给指令存储器一个32-bit的地址,就能输出对应地址的32-bit指令。因此还需要一个32-bit寄存器,存储这个指令的地址,即程序计数器PC。
分析addu和subu指令的操作,执行这两条指令需要,
<1> 一组存放数据的32-bit通用寄存器,在MIPS中一共有32个这样的寄存器,称为寄存器堆
<2> 可以同时读取两个寄存器的内容,rs和rt
<3> 可以改写一个寄存器的内容,rd或rt(rt是因为ori指令的结果会改写rt寄存器的值)
<4> 将16-bit立即数扩展为32-bit,扩展方式为零扩展
<5> 提供加、减、逻辑或这三种功能的运算器
<6> 运算的操作数可以是寄存器,也可以是扩展后的立即数
<7> 一个存放数据的存储器,可读可写,地址和数据都是32-bit
<8> 对16-bit立即数进行扩展,扩展方式为符号扩展
<9> 比较两个数,判断是否相等
<10> PC寄存器支持两种自增方式,加4或加一个立即数
<1> 算术逻辑单元ALU,支持加、减、或、比较相等,操作数是2个32-bit的数,可以来自寄存器,也可以是扩展后的立即数
<2> 立即数扩展部件,16-bit扩展为32-bit,可以是零扩展或符号扩展
<3> 程序计数器PC,32-bit寄存器,支持两种加法,加4或加立即数
<4> 寄存器堆,32个32-bit寄存器,支持读操作,可以同时读2个寄存器rs和rt,支持写寄存就,1次可以写1个rt或rd,俗称两读一写的寄存器堆
<5> 两个存储器,一个是只读的指令存储器,地址和数据都是32-bit,一个是数据存储器,可读可写,地址和数据也都是32-bit。注意这两个存储器对应CPU内部的指令和数据Cache。
<1> busA, busB: 两组32-bit的数据输出
<2> busW: 32-bit数据输入
寄存器的读写控制:
<1> Ra(5-bit): 选中对应编号的寄存器,将其内容放在busA上
<2> Rb(5-bit): 选中对应编号的寄存器,将其内容放在busB上
<3> Rw(5-bit): 选中对应编号的寄存器,在时钟信号上升沿到来时,如果写使能WriteEnable信号为高电平,即写使能有效,就把busW的内容写入寄存器。
<4> 注意:读寄存器是不受时钟信号控制的,只要有Ra或Rb,其内容就会出现在busA和busB上
存储器功能和寄存器堆的功能类似,可以理解为一读一写。
以上是关于10. 处理器的设计步骤的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 微信企业号办公系统-流程设计--流程步骤设置-策略设置