龙之梦工作室
LOGO

技术文章


(SCI) Parallel Algorithm for Wireless Data Compression and Encryption   (SCI) Fast Algorithm of Truncated BWT for Data Compression of Sensors   Dr. Qin Jiancheng   龙之梦助力肇庆教育网云计算   Dr. Zhou Yousheng   Dr. Bai Yuan   龙之梦工作室加盟华南理工学术团队   [软件下载] ComZip超级压缩机免费版下载   继续潜行,龙之梦工作室技术研发又一年   [软件交易] “雅典娜”网页密码锁在线购买   [软件交易] Super Prime超级质数机在线购买   [软件交易] ComZip超级压缩机在线购买   [信息安全] “风语者”高强度加密技术   [信息安全] 多层纵深防御体系结构   [合著] 专利:安全事件检测方法及装置  

[合著] 实验参考

[ 2007-04-24 15:52:37 ]

  引言/提要:与白中英老师等合著,《计算机组成原理题解、题库与实验》第三版,科学出版社,2000年。

  关键词:计算机组成原理,实验仪,实验教材

*** 本文档仅作为编写使用说明书的参考 ***

目录
 前言 实验仪介绍
 第一部分 基本实验
  一、输入输出、时序发生器实验
  二、运算器组成实验
  三、双端口存储器实验
  四、通用寄存器组与ALU实验
  五、数据通路组成实验一:操作数部分
  六、程序计数器组成实验
  七、数据通路组成实验二:指令部分
  八、微程序控制器组成实验
  九、CPU组成与执行指令实验
十、中断执行实验

 第二部分 课程设计
  一、DMA控制器的设计与调试
  二、中断控制器的设计与调试
  三、微程序控制器的设计与调试
四、组合逻辑控制器的设计与调试

 第三部分 系统结构实验
  一、流水方式的组合逻辑控制器的设计与调试
  二、流水方式的微程序控制器的设计与调试
  三、组合逻辑与微程序控制器相结合的流水控制的设计与调试
  四、待开发的设计实验
   1、更紧密的流水控制
   2、浮点运算器、整数乘除运算器
   3、双机通信
   4、SIMD计算机模型

 第四部分 注意事项

 第五部分 附录
图1 数据通路示意图
图2 微程序控制器
图3 微程序指令流程
图4 组合逻辑控制器
图5 组合逻辑控制流程
图6 微程序流水控制器
图7 微程序流水控制器流程
图8 时序信号、中断控制及输入输出模块
图9 时序信号的相互顺序关系
图10 芯片引脚图
图11 IDT7132真值表
图12 MC14580真值表
图A DMA控制器的设计
图B 增强中断控制器与原系统的集成
图C 3种流水控制器设计方式示意
图D 组合逻辑流水控制流程(“执行”功能段)
图E 运算器组成实验
图F 双端口存储器实验
图G 通用寄存器组与ALU实验
图H 数据通路组成实验一:操作数部分
图I 程序计数器组成实验
图J 数据通路组成实验二:指令部分

表1 实验仪各部件的芯片
表2 微程序控制器使用的控制信号微指令
表3 微程序代码16进制数据
表4 组合逻辑控制器使用的控制信号译码逻辑
表5 微程序流水控制器使用的控制信号微指令
表6 组合逻辑流水控制器使用的的控制信号译码逻辑
表7 时序信号、中断控制及输入输出部分的信号名称及其含义
表8 微程序控制器的信号名称及其意义
表9 机器指令系统
表10 数据通路的信号名称及其意义

程序1 常规组合逻辑控制器译码电路1
程序2 常规组合逻辑控制器译码电路2
程序3 组合逻辑流水控制器(“执行”功能段)译码电路1
程序4 组合逻辑流水控制器(“执行”功能段)译码电路2
程序5 组合逻辑流水控制器(“取指”功能段)译码电路

资料1 TIMER模块引脚定义图
资料2 AR1模块引脚定义图
资料3 PC模块引脚定义图
资料4 ALU3模块引脚定义图

正文
前言 实验仪介绍
  原有的JYS-3型计算机组成原理实验仪,包含了运算器、控制器等基本的计算机组成部分,具有结构简单、操作方便、可靠性高、易于掌握等优点,但也存在功能有限、支持的实验不多的不足。例如,该实验仪无法进行标量流水机的实验。
  这套新的实验仪,是在原实验仪上加以改进,使之功能更强,可支持更多的教学实验(包括ISP在系统编程实验),同时保持相对简单的硬件结构,使学生容易掌握。


一、实验仪的模块划分

  与原实验仪相类似,这次设计的计算机组成原理实验仪划分为5大模块。表1是主要部件的芯片组成。

  1、时序信号及中断控制部分
  可产生节拍信号W1至W4,每个节拍(相当于1个微程序周期)又产生时序信号T1至T4,供仪器各部件运行时使用。一个最高2M赫兹的方波信号发生器可作为时钟源。实验时,可通过控制信号使之产生连续的、单拍的或单个节拍周期的时间信号。
  中断控制器可实现单个中断请求,支持中断屏蔽。
  2、输入输出部分
  用一组打码开关和发光二极管作为输入和输出。比原实验仪有所改进的地方是:每个作为指示灯的发光二极管可跟踪输出两个信号。
  3、数据通路部分
  除了总线,还包括总线上的运算器(ALU)、寄存器组、存储器(RAM)、程序计数器(PC)、指令寄存器(IR)等,是实验仪器运行的主体部分,同时也是改进最多的部分。同原实验仪相比,灵活性大大提高,增加了对流水、中断、DMA等实验的支持。
  4、微程序控制器部分
  用微程序技术对数据通路进行控制。原理上与原实验仪的相同,只是控制信号更多,因此更强大,足以控制驱动新的数据通路。
  5、扩展部分
  与原实验仪类似,留有许多空的芯片插座,是提供给课程设计实验用的。重要改进是带有ISP芯片插座,可支持ISP技术。

二、时序信号、中断控制及输入输出部分
  从图8可看出这几个部分的大致构成。与原实验仪既有相同之处,又有所改进。

时序信号部分
  (a)单脉冲电路及(b)连续方波发生器都没有变化,从Q_A至Q_D分别输出频率为2M、1M、500K、250K的时钟信号。
  (c)时序信号发生器中,用1片GAL22V10取代了原来8个芯片,实现原有功能并有所扩展,并且集成了一个中断控制器。T1至T4是时序信号输出端,WLD用于节拍发生器(图中的移位寄存器74HC195)的复位,WCLK则控制节拍发生器的动作。W1至W4是节拍信号输出端,供组合逻辑控制器使用。这些时序信号的关系如图9。
  给时序信号发生器的控制信号都集中在GAL22V10的输入端,其具体意义见表7。通过这些信号,可实现单拍停机、单指令停机和机器指令STP停机,以满足实验的需要。

中断控制器
  这是一个简单的中断控制器,只负责中断请求。当INTR信号从低电平跳变至高电平,并且中断允许信号INTA为1时,从INTQ输出高电平,并保持至微程序控制器用INSC信号关中断。开、关中断均用INSC信号(高电平)输入。

输入输出部分
  (d)打码开关作为输入部分,用高低电平来表示逻辑1和0,结构很简单。
  (e)输出显示中,每个指示灯可以显示两个信号, 这两个信号通过一个2选1多路选择器与发光二极管连接。用一个切换信号AB统一控制全部多路选择器的输入选择。由于多路选择器承担了驱动发光二极管的任务,而它本身(采用高速CMOS电路)功耗很小,因此做实验时无须考虑指示灯的负载。

三、数据通路部分
  图1是数据通路的原理框图。为增强实验仪的功能,特别是要支持并行流水实验,对这部分进行了重新设计,并反复多次修改,做到既保持了结构上的相对简单,又有很大的灵活性,有功能上的潜力可挖。
  数据通路中有两条主要的总线:数据总线和指令总线。数据总线是图中颜色较深的那一条,它负责在各部件之间传送执行指令时所处理的数据。指令总线是颜色较浅的那条,它负责传送要执行的机器指令代码。其余的就是一些少数部件之间互连的数据通路了。
  数据通路所连接的部件包括:
  1、算术逻辑运算器(ALU)。通过控制信号S3、S2、S1、S0、M的不同组合,可进行16种算术运算和16种逻辑运算,信号CIN在算术运算中是低位进位信号,利用它可以对超过8位的算术运算进行分步处理。控制信号ALUàBUS用于把运算结果向总线输出。
  2、操作数寄存器(DR1、DR2)。分别提供ALU的操作数B、A。输入端分别集成了二选一多路选择器MUX1、MUX2,可选择从寄存器组RF还是从数据总线加载操作数。用控制信号M1LR、M2LR进行输入选择,LDR1、LDR2进行加载。
  3、双端口通用寄存器组(RF)。有4个寄存器,用于保存数据。可同时输出两个数据并加载一个数据。寄存器选择信号RS1、RS0选择源操作数寄存器RS,RD1、RD0选择目的操作数寄存器RD,WR1、WR0选择写回寄存器WR。在串行控制器下,RD、WR应指向同一寄存器。通过控制信号WRD向寄存器WR加载数据。RSàBUS用于把RS的值向总线输出。
  4、写回缓冲寄存器(ER)。用于对来自数据总线、准备写回至RF的数据进行缓冲保存。缓冲操作受控于信号LDER。
  5、打码开关输入端口(SW)。用于将打码开关所决定的8位数据输入到数据总线中。SW7至SW0接8个打码开关,信号SWàBUS控制该8位数据向总线的输出。
  6、双端口静态存储器(RAM)。有两个端口可同时对数据进行读写,分别作为数据和机器指令端口。控制信号CEL、CER分别是左右端口的片选信号,LRW、RRW则是两端口的读写选择。
  7、地址寄存器(AR1、AR2)。分别对应RAM的两个端口,用于每个端口的地址选择。AR1用GAL22V10定制而成,具有累加功能。信号LDAR1、AR1_INC分别控制AR1载入地址值和地址加1。AR2带有多路选择器,可选择从数据通路或程序计数器PC载入地址。信号M3LR实现选择功能,载入地址由信号LDAR2控制。
  8、程序计数器(PC)。用GAL22V10定制而成,具有累加功能,与具有加法功能的ALU3(也用GAL22V10定制)相结合,可实现顺序执行、直接寻址转移和相对寻址转移。信号LDPC、PC_INC、PC_ADD分别控制PC载入地址、累加计数和加入位移值。
  9、中断断点地址寄存器(S)。用于发生中断时,保存断点地址(PC值),中断返回时恢复。信号LDS和S2BUS分别控制S保存断点地址和向数据通路输出保存值。因为是单个寄存器,所以只支持1级中断。
  10、地址缓冲寄存器(DR4)。带有多路选择器,可选择从数据通路或指令寄存器IR载入地址。信号M4LR实现选择功能,载入地址由LDR4控制。
  11、机器指令寄存器(IR)。用于保存机器指令代码,其数据输出给控制部件CU和需要操作数的部件,如寄存器组RF、程序计数器PC的缓冲寄存器等。信号LDIR控制IR从指令总线(与RAM相连)载入指令。

  上面所提到的控制信号,有的是电平触发信号,有的是边沿触发信号,并有时序关系的限制。为简化控制器的设计,对于边沿触发的信号,都接一个与门,与门的一个输入端留给控制器,另一输入端接一个合适的时序信号(T1、T2、T3或T4)。这样,从控制器输出的控制信号就是统一的电平信号,并且持续时间都是1拍(即1个微指令周期)。
  双端口寄存器组、双端口存储器的使用,有助于并行流水的实现。数据总线、指令总线的分离,可降低并行操作的冲突。多路选择器的使用,提高了部件传送数据的灵活性。如此一来,数据通路就具备了较强的能力,只要有足够强大的控制器,就能胜任包括流水在内的多种工作。

四、微程序控制器部分
  虽然数据通路已拥有流水的潜力,但这个微程序控制器作为基本实验的组成部分,仍然采用常规的串行控制方式。对此控制器稍作改动,就能实现流水控制。

微程序的设计
  以数据通路所具有的灵活性,完全可以在上面设计出几十条机器指令,而该控制器仅仅实现了11条单字节指令的简单系统。表9是该机器指令系统列表,乘法指令MUL在本实验仪中无效。
  为控制数据通路,采用了40位长的微指令字,其中操作控制部分占30位,顺序控制部分占10位。微指令地址长6位,采用断定转移方式。操作控制部分的A、B、C字段使用了编码。微指令是水平型的,这样才能较好地发挥数据通路的能力。
  图3是微程序的流程图,表2是相应的微指令列表,表3是控制存储器中的16进制微程序代码。图中除了机器指令的执行流程,还有控制台操作流程。控制台操作是人工控制RAM的读写用的,主要目的是把机器指令程序和数据写入内存,然后程序才能运行起来。图中ST是两个打码开关所决定的控制台状态,KRD为读内存,KWE为写内存,PR为转入程序运行。

控制器硬件组成
  图2是微程序控制器的示意图。可以看到微地址寄存器、控制存储器和微程序转移逻辑,但没有见到明显的微指令寄存器。事实上,微指令寄存器的功能被控制存储器所承担了。
  如此,将微程序控制器的时序关系简化到只有一个,即每个微指令周期的开始时刻(T1),微地址寄存器载入新的微程序地址,控制存储器输出相应的控制信号,并持续至下一微指令周期的开始,这时微程序转移逻辑已准备好了下一微指令地址,让微地址寄存器载入。
  精简了长达40位的微指令寄存器,每周期只做1个动作(T1时刻的载入微地址),这使得微程序控制器显得简练、干脆。

五、扩展部分
  实验仪的扩展部分是为课程设计和系统结构实验而准备的。这部分主要由空的芯片插座和对应的引脚信号线插座组成,可以在上面搭建各人自己设计的系统模块。与原实验仪相比,这部分改进最大的地方就是提供了两个ISP芯片的插座,可以利用ISP技术进行设计。
  由于ISP芯片本身的集成度相当高,把扩展部分能够容纳的ISP和低密度芯片(GAL、中规模集成电路等)加起来,其规模超过了原实验仪扩展部分的2倍。即使要设计比较复杂的系统模块,实验仪也可以支持。设计还可以很灵活,既能象原实验仪那样单纯用非ISP的芯片设计,又能全部用ISP芯片设计,还可以两种芯片配合使用。

第一部分 基本实验
一、输入输出、时序发生器实验(如图8、表7)
  重点模块:方波信号发生器,时序信号发生器,节拍发生器。

  线路连接:
    电源、输入输出、时序电路:VCC
    电源、输入输出、时序电路:GND

    输入输出:AB          - 输入输出:打码开关
    输入输出:指示灯A端       - 输入输出:打码开关
    输入输出:指示灯B端       - 输入输出:打码开关

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 输入输出:打码开关
    时序电路:TJ          - 输入输出:打码开关
    时序电路:DB          - 输入输出:打码开关
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    时序电路:W1...W4      - 输入输出:4指示灯
    时序电路:SKIP        - 输入输出:打码开关

  操作提示:
  1、改变AB,则指示灯的输入端在A、B之间切换。
  2、复位方法:使CLR输入低电平,再恢复高电平。
  3、使SKIP为高电平,则从QD发一次脉冲,W4成为高电平,W1至W3为低电平。


二、运算器组成实验(如图E)
  重点模块:算术逻辑运算器ALU,操作数寄存器DR1、DR2,打码开关输出控制SW。

  线路连接:
    电源、输入输出、时序电路、数据通路:VCC
    电源、输入输出、时序电路、数据通路:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T2、T3       - 时序电路:T2、T3

    输入输出:AB          - 输入输出:打码开关
    数据通路:BUS7...BUS0  - 输入输出:8指示灯
    数据通路:C           - 输入输出:指示灯

    数据通路:ALU2BUS     - 输入输出:打码开关
    数据通路:S3...S0      - 输入输出:4打码开关
    数据通路:M           - 输入输出:打码开关
    数据通路:CIN         - 输入输出:打码开关

    数据通路:LDR1        - 输入输出:打码开关
    数据通路:M1LR        - 数据通路:VCC
    数据通路:LDR2        - 输入输出:打码开关
    数据通路:M2LR        - 数据通路:VCC

    数据通路:SW2BUS      - 输入输出:打码开关
    数据通路:SW7...SW0    - 输入输出:8打码开关

  操作提示:
  1、操作数由SW7至SW0提供。
  2、DR1载入数据的操作(其它寄存器类似):使LDR1为高电平,由QD发一个脉冲。
  3、ALU输出的操作:使ALU2BUS保持低电平,则ALU一直输出。
  4、进位信号C的保存:受ALU2BUS控制。


三、双端口存储器实验(如图F、图10、图11)
  重点模块:存储器RAM,地址寄存器AR1、AR2。

  线路连接:
    电源、输入输出、时序电路、数据通路:VCC
    电源、输入输出、时序电路、数据通路:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T1、T3       - 时序电路:T1、T3

    输入输出:AB          - 输入输出:打码开关
    数据通路:BUS7...BUS0  - 输入输出:8指示灯
    数据通路:INS7...INS0  - 输入输出:8指示灯

    数据通路:CEL         - 输入输出:打码开关
    数据通路:LRW         - 输入输出:打码开关
    数据通路:CER         - 输入输出:打码开关
    数据通路:RRW         - 数据通路:GND
    数据通路:LDAR1       - 输入输出:打码开关
    数据通路:AR1_INC     - 输入输出:打码开关
    数据通路:M3LR        - 数据通路:VCC
    数据通路:LDAR2       - 输入输出:打码开关

    数据通路:SW2BUS      - 输入输出:打码开关
    数据通路:SW7...SW0    - 输入输出:8打码开关

  操作提示:
  1、SW7至SW0提供地址、数据。
  2、数据从左端口写入,左右端口均可读出。
  3、若两端口地址相同,且左端口写入,要注意是否发生冲突,使写入失败。
  4、利用AR1_INC,可以顺序写入、读出多个数据。


四、通用寄存器组与ALU实验(如图G、图10、图12)
  重点模块:通用寄存器组RF,写回缓冲寄存器ER。

  线路连接:
    电源、输入输出、时序电路、数据通路:VCC
    电源、输入输出、时序电路、数据通路:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T2、T3       - 时序电路:T2、T3

    输入输出:AB          - 输入输出:打码开关
    数据通路:BUS7...BUS0  - 输入输出:8指示灯

    数据通路:ALU2BUS     - 输入输出:打码开关
    数据通路:S3...S0      - 输入输出:4打码开关
    数据通路:M           - 输入输出:打码开关
    数据通路:CIN         - 数据通路:VCC
    数据通路:LDR1        - 输入输出:打码开关
    数据通路:M1LR        - 数据通路:GND
    数据通路:LDR2        - 输入输出:打码开关
    数据通路:M2LR        - 数据通路:GND

    数据通路:RS1、RS0     - 输入输出:2打码开关
    数据通路:RD1、RD0     - 输入输出:2打码开关
    数据通路:WR1、WR0     - 输入输出:2打码开关
    数据通路:WRD         - 输入输出:打码开关
    数据通路:LDER        - 输入输出:打码开关

    数据通路:SW2BUS      - 输入输出:打码开关
    数据通路:SW7...SW0    - 输入输出:8打码开关

  操作提示:
  1、改变寄存器选择字RS1、RS0、RD1、RD0后,必须由QD发一个脉冲,寄存器组的输出才会改变。
  2、禁止超过1个芯片同时向同一数据总线输出,这样会烧毁芯片。
  3、寄存器RS可以从三态门输出到数据总线,RD要经过ALU输出。

五、数据通路组成实验一:操作数部分(如图H)
  线路连接:
    电源、输入输出、时序电路、数据通路:VCC
    电源、输入输出、时序电路、数据通路:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T1...T3      - 时序电路:T1...T3

    输入输出:AB          - 输入输出:打码开关
    数据通路:BUS7...BUS0  - 输入输出:8指示灯

    数据通路:ALU2BUS     - 输入输出:打码开关
    数据通路:S3...S0      - 输入输出:4打码开关
    数据通路:M           - 输入输出:打码开关
    数据通路:CIN         - 数据通路:打码开关
    数据通路:LDR1        - 输入输出:打码开关
    数据通路:M1LR        - 数据通路:GND
    数据通路:LDR2        - 输入输出:打码开关
    数据通路:M2LR        - 数据通路:GND

    数据通路:RS1、RS0     - 输入输出:2打码开关
    数据通路:RD1、RD0     - 输入输出:2打码开关
    数据通路:WR1、WR0     - 输入输出:2打码开关
    数据通路:WRD         - 输入输出:打码开关
    数据通路:LDER        - 输入输出:打码开关

    数据通路:CEL         - 输入输出:打码开关
    数据通路:LRW         - 输入输出:打码开关
    数据通路:LDAR1       - 输入输出:打码开关
    数据通路:AR1_INC     - 输入输出:打码开关

    数据通路:SW2BUS      - 输入输出:打码开关
    数据通路:SW7...SW0    - 输入输出:8打码开关


六、程序计数器组成实验(如图I)
  重点模块:程序计数器PC、地址加法器ALU3、地址缓冲寄存器DR4。

  线路连接:
    电源、输入输出、时序电路、数据通路:VCC
    电源、输入输出、时序电路、数据通路:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T1、T3       - 时序电路:T1、T3

    输入输出:AB          - 输入输出:打码开关
    数据通路:PC7...PC0    - 输入输出:8指示灯

    数据通路:M4LR        - 数据通路:VCC
    数据通路:LDR4        - 输入输出:打码开关
    数据通路:LDPC        - 输入输出:打码开关
    数据通路:PC_INC      - 输入输出:打码开关
    数据通路:PC_ADD      - 输入输出:打码开关

    数据通路:SW2BUS      - 输入输出:打码开关
    数据通路:SW7...SW0    - 输入输出:8打码开关

  操作提示:
  1、PC_ADD必须与LDPC同时使用才有效。
  2、PC_INC不能与LDPC同时使用。


七、数据通路组成实验二:指令部分(如图J)
  线路连接:
    电源、输入输出、时序电路、数据通路:VCC
    电源、输入输出、时序电路、数据通路:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T1、T3       - 时序电路:T1、T3

    输入输出:AB          - 输入输出:打码开关
    数据通路:PC7...PC0    - 输入输出:8指示灯
    数据通路:BUS7...BUS0  - 输入输出:8指示灯
    数据通路:INS7...INS0  - 输入输出:8指示灯

    数据通路:CEL         - 输入输出:打码开关
    数据通路:LRW         - 输入输出:打码开关
    数据通路:CER         - 输入输出:打码开关
    数据通路:RRW         - 数据通路:GND
    数据通路:LDAR1       - 输入输出:打码开关
    数据通路:AR1_INC     - 输入输出:打码开关
    数据通路:M3LR        - 数据通路:GND
    数据通路:LDAR2       - 输入输出:打码开关

    数据通路:M4LR        - 数据通路:GND
    数据通路:LDR4        - 输入输出:打码开关
    数据通路:LDPC        - 输入输出:打码开关
    数据通路:PC_INC      - 输入输出:打码开关
    数据通路:PC_ADD      - 输入输出:打码开关

    数据通路:SW2BUS      - 输入输出:打码开关
    数据通路:SW7...SW0    - 输入输出:8打码开关

  操作提示:
    先从RAM的左端口写入指令代码,然后才能进行取指令的操作。


八、微程序控制器组成实验(如图2、图3、表2、表3)
  重点模块:微地址寄存器UAR、控制存储器CM。

  线路连接:
    电源、输入输出、时序电路、微程序控制器:VCC
    电源、输入输出、时序电路、微程序控制器:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 时序电路:VCC
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    微程序控制器:T1        - 时序电路:T1

    输入输出:AB          - 输入输出:打码开关
    微程序控制器:A5...A0    - 输入输出:6指示灯
    微程序控制器:控制信号(表8)  - 输入输出:33指示灯

    微程序控制器:CLR       - 输入输出:脉冲按钮(或打码开关)
    微程序控制器:C         - 输入输出:打码开关
    微程序控制器:INTQ      - 输入输出:打码开关
    微程序控制器:SWA、SWB   - 输入输出:2打码开关
    微程序控制器:IR7...IR4  - 输入输出:4打码开关

  操作提示:
  1、微程序控制器的复位方法与时序发生器的复位相同。
  2、从QD发一次脉冲,控制器动作一次,等于一个微指令周期。
  3、指示灯用来观察控制信号,利用AB切换可同时跟踪48个信号。


九、CPU组成与执行指令实验(如图1、表9)
  线路连接:
    电源、输入输出、时序电路、数据通路、微程序控制器:VCC
    电源、输入输出、时序电路、数据通路、微程序控制器:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 输入输出:打码开关
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    数据通路:T1...T3      - 时序电路:T1...T3
    微程序控制器:T1        - 时序电路:T1

    输入输出:AB          - 输入输出:打码开关
    微程序控制器:A5...A0    - 输入输出:6指示灯
    数据通路:BUS7...BUS0  - 输入输出:8指示灯
    数据通路:INS7...INS0  - 输入输出:8指示灯
    数据通路:PC7...PC0    - 输入输出:8指示灯

    数据通路:RS1、RS0     - 数据通路:IR3、IR2
    数据通路:RD1、RD0     - 数据通路:IR1、IR0
    数据通路:WR1、WR0     - 数据通路:RD1、RD0
    数据通路:SW7...SW0    - 输入输出:8打码开关

    微程序控制器:控制信号(表8)  - 数据通路:控制信号(表10)
    微程序控制器:CLR       - 输入输出:脉冲按钮(或打码开关)
    微程序控制器:C         - 数据通路:C
    微程序控制器:SWA、SWB   - 输入输出:2打码开关
    微程序控制器:IR7...IR4  - 数据通路:IR7...IR4

  操作提示:
  1、不做中断执行部分,因此数据通路和控制器的LDS、S2BUS两个信号可不接。
  2、先在控制台状态下输入机器指令程序代码,然后才能运行程序。


十、中断执行实验
  线路连接:
    电源、输入输出、时序电路、数据通路、微程序控制器:VCC
    电源、输入输出、时序电路、数据通路、微程序控制器:GND

    时序电路:CLR         - 输入输出:脉冲按钮(或打码开关)
    时序电路:MF          - 时序电路:Q_A(或B、C、D)
    时序电路:DP          - 输入输出:打码开关
    时序电路:QD          - 时序电路:脉冲按钮(或打码开关)
    时序电路:INTR        - 输入输出:脉冲按钮(或打码开关)
    数据通路:T1...T3      - 时序电路:T1...T3
    微程序控制器:T1        - 时序电路:T1
    微程序控制器:INSC      - 时序电路:INSC
    微程序控制器:INTQ      - 时序电路:INTQ

    输入输出:AB          - 输入输出:打码开关
    时序电路:INTA        - 输入输出:指示灯
    微程序控制器:A5...A0    - 输入输出:6指示灯
    数据通路:BUS7...BUS0  - 输入输出:8指示灯
    数据通路:INS7...INS0  - 输入输出:8指示灯
    数据通路:PC7...PC0    - 输入输出:8指示灯

    数据通路:RS1、RS0     - 数据通路:IR3、IR2
    数据通路:RD1、RD0     - 数据通路:IR1、IR0
    数据通路:WR1、WR0     - 数据通路:RD1、RD0
    数据通路:SW7...SW0    - 输入输出:8打码开关

    微程序控制器:控制信号(表8)  - 数据通路:控制信号(表10)
    微程序控制器:CLR       - 输入输出:脉冲按钮(或打码开关)
    微程序控制器:C         - 数据通路:C
    微程序控制器:SWA、SWB   - 输入输出:2打码开关
    微程序控制器:IR7...IR4  - 数据通路:IR7...IR4

  操作提示:
    以执行中断指令和中断响应为主,其他指令只要选一两个来构成程序即可,因此多余的控制信号可以不接。


第二部分 课程设计
一、DMA控制器的设计与调试
  设计目标:
    在原系统中嵌入一个DMA控制器,它能够完成以下工作
  1、接受外部DMA请求:请求来自打码开关;
  2、取得总线控制权:将微程序控制器挂起;
  3、控制外设数据缓冲区与RAM交换数据:由打码开关选择DMA读/写;
  4、字计数:传送了8个字符后结束DMA操作;
  5、释放总线:让微程序控制器继续工作。

  设计参考:
    如图A,采用如下主要部件
  1、字计数器WC:使用74HC191芯片,用于进行字计数,并提供外设数据缓冲区的地址。
  2、外设数据缓冲区DB:使用静态存储器6116芯片,可以与数据总线交换数据。
  3、2选1多路选择器MUX:使用74HC157芯片,用于拦截原本直接从微程序控制器输出至数据通路的控制信号,使之能在DMA控制器与微程序控制器之间切换。
  4、控制核心DMAC:使用GAL22V10芯片或者ISP芯片,用于控制DMA操作。图A中有DMAC的控制流程,很容易画出它的状态转移图。

    对图中部分信号作简略解释(注意:图中默认各信号高电平有效,没有考虑具体芯片是否低电平有效)。
  WC-1:字计数值减1信号。当计数值减为0时,在与门作用下,该信号不再出现,直至LDWC信号有效,计数值变为8为止。注意WC-1信号每传送一个字符会出现两次,因此字计数器的最低位保留不用。
  END:传送结束信号。当计数值非0时,在或门作用下,该信号为1;计数值减为0时,信号变0。
  DMAQ:外部DMA请求信号,可直接接到中断控制器的INTQ信号上(微程序控制器不接收中断请求),或者参考中断控制器的方法,设计一个上升沿触发、ACK信号清除的请求信号发生器。
  ACK:应答信号,输出给请求信号发生器,用于清除请求信号。若使用中断控制器作DMAQ信号源,则ACK信号接到中断控制器的INSC信号上。
  DMAR:DMA请求信号。在与门的作用下,若微程序控制器的LDAR1信号有效,则DMAC不会收到DMAR信号。这样做是因为DMA操作会破坏地址寄存器AR1原有的值,所以必须等微程序控制器先使用AR1。
  R/W:DMA读写选择信号,可接打码开关。
  HOLD:挂起信号。其作用一是屏蔽微程序控制器的时钟信号,使之暂停工作,二是将输出到数据通路的控制信号从微程序控制器切换到DMA控制器上。
  原本直接从微程序控制器输出到数据通路的控制信号CEL、LRW、SW2BUS、AR1_INC、LDAR1都被拦截,先经过多路选择器(有的信号也可用或门代替多路选择器)再到数据通路。多路选择器的另一输入端来自DMA控制器。


二、中断控制器的设计与调试
  设计目标:
    在原系统中嵌入一个中断控制器,取代原来的简单中断控制器。该中断控制器功能如下
  1、多中断源、分优先级:接入3个外部中断请求源,分高、中、低3个优先级。不同中断有不同的入口地址。多个中断请求同时到来时,按优先级排队。中断允许/屏蔽信号INSC到来时,除修改中断允许位INTA的允许/屏蔽状态外,若有中断请求正在输出(显然此时INTA允许),还要清除其中优先级最高的。
  2、多层嵌套:可支持16层中断嵌套。

  设计参考:
    如图B,采用如下主要部件
  1、优先编码器ENC:使用74HC147芯片,用于提供优先级最高的中断请求号,转化为中断入口地址的高2位。
  2、2选1多路选择器MUX:使用74HC157芯片,用于在原打码开关值和中断入口地址值之间切换。
  3、中断请求寄存器INTC:使用GAL22V10或ISP芯片,用于保存中断请求信息,处理相应的清除请求信息。
  4、译码器DEC:使用74HC139芯片,用于根据优先级最高的中断请求号,将清除请求信号输出给相应的清零端。
  5、三态门PUSH、POP:使用74HC244芯片,用于中断断点地址入栈时,堆栈与程序计数器PC连通;出栈时,堆栈与数据总线连通。
  6、堆栈STACK:使用静态存储器6116芯片,用于保存中断断点地址。
  7、栈指针SP:使用74HC191芯片,用于记录栈顶位置。

    对图中部分信号作简略解释(注意:图中默认各信号高电平有效,没有考虑具体芯片是否低电平有效)。
  INT1、INT2、INT3:外部中断请求,可接打码开关或脉冲按钮(要求INTC能够处理上升沿信号)。INTC中,每个请求输入端的旁边是相应的清除输入端。
  INSC:来自微程序控制器,直接输出给中断允许位INTA的JK触发器。在与门作用下,当INTA为允许时,INSC也输出给相应的中断请求清除端(经过译码器)。
  INTQ:向微程序控制器输出的中断请求信号。在与、或门作用下,只要有任意一个中断请求,并且INTA为允许,则该信号有效,并控制多路选择器从打码开关输出切换到中断入口地址输出。
  A1、A0:最高中断请求号。从优先编码器输出,作为中断入口地址高2位,并提供给译码器,以便清除相应的请求。
  CLR:复位信号,可接打码开关,用于使中断请求寄存器全部清零,INTA置1。注意:该信号需要有时钟信号T4才能起作用。
  INTA:中断允许信号,由JK触发器提供,CLR信号使之置1,INSC信号使之翻转。
  中断嵌套部分,将原断点地址寄存器S的两个信号输入端S2BUS、LDS分别接高、低电平,使S不工作。将微程序控制器的S2BUS、LDS信号引到新中断控制器中,如图连接。A3至A0是栈指针SP值,用来作为堆栈存储器地址。


三、微程序控制器的设计与调试
  设计目标:
    用自己设计的一个微程序控制器取代原系统中的微程序控制器,实现如下功能之一
  1、给定机器指令系统:如表9;
  2、自拟机器指令系统:自己设定机器指令。

  设计参考:
    参考原系统的微程序控制器,见图2、图3、表1、表2。
    数据通路上还可以挂接其他器件,以扩充其功能。参考上述DMA控制器和中断控制器的设计。


四、组合逻辑控制器的设计与调试
  设计目标:
    用自己设计的一个组合逻辑控制器(使用两片ISP芯片)取代原系统中的微程序控制器,实现如下功能之一:
  1、给定机器指令系统:如表9(不含中断指令);
  2、自拟机器指令系统:自己设定机器指令。

  设计参考:
    如图4,利用实验仪上节拍信号发生器产生的W1、W2、W3、W4信号,可以用组合逻辑电路将指令代码等输入信号译码成为控制信号输出。为实现控制台功能,还需要2位的状态字寄存器。
    图5是组合逻辑控制器的控制逻辑,表4是对应的逻辑表。表4可以转化为译码电路的逻辑表达式。例如,图5最左边的执行框中有LDAR1信号,则在LDAR1的逻辑表达式中,(ST==11)&(SW==01)&W4是其中一个乘积项。
    程序1、2分别是译码电路1、2的ABEL语言源程序。


第三部分 系统结构实验
一、流水方式的组合逻辑控制器的设计与调试
  设计目标:
    使用两片ISP芯片,实现组合逻辑控制器,代替原系统中的微程序控制器,使系统能够以流水的方式执行表9中的机器指令(不含中断指令)。

  设计参考:
    把实验仪的数据通路和通路上的执行电路分为取指、执行、写回3个功能段(某些部件同属于两段),见图1,划分如下:
    取指段:包括RAM的右端口、AR2、MUX3、PC、IR。
    执行段:包括ALU、DR1、MUX1、DR2、MUX2、RF、ER、RAM的左端口、AR1、IR、DR4、MUX4、ALU3、PC。
    写回段:包括ER、RF,还需要对写回寄存器选择信息进行缓冲,如图C(d)。
    组合逻辑控制器也分3段,如图C(b),3段控制信号叠加后输出。 利用时序电路中的SKIP信号,可以使执行1条机器指令的周期从4拍变为2拍。配套软盘的ISP子目录下有组合逻辑流水控制器的设计文件(见软盘的README.TXT文件)。图D是流水线执行段的控制流程,表6是相应的译码逻辑,程序3、4、5分别是译码电路1、2和取指模块的ABEL语言源程序。为了在取指未就绪的情况下,执行段仍能正常工作(不乱输出控制信号),加入一个空指令NOP,代码1111。


二、流水方式的微程序控制器的设计与调试
  设计目标:
    用自己设计的微程序控制器代替原系统中的微程序控制器,使系统能够以流水的方式执行表9中的机器指令(不含中断指令)。

  设计参考:
    流水线功能段的划分同上,仍然是取指、执行、写回3段。微程序控制器的基本结构与常规控制方式下的没什么区别,但它能产生流水线所需要的并行控制信号。其基本思路与水平微指令的并行控制有点相似,所不同的是水平微指令只在一个机器指令周期内并行,而流水微指令控制器则超越指令周期的范围,使本指令的执行与上一指令的写回、下一指令的取指并行操作。
    图6是微程序流水控制器示意图,控制流程如图7,相应的微指令如表5。


三、组合逻辑与微程序控制器相结合的流水控制的设计与调试
  设计目标:
    用自己设计的微程序控制器与组合逻辑控制器相结合,代替原系统中的微程序控制器,使系统能够以流水的方式执行表9中的机器指令(不含中断指令),其中微程序控制器控制执行段,组合逻辑控制器控制取指和写回段。

  设计参考:
    流水线功能段的划分同上,仍然是取指、执行写回3段。微程序控制器中只保留执行段的控制信号,组合逻辑控制器可以用GAL或ISP芯片来实现。微程序控制器与组合逻辑控制器之间设置通信信号。信号总是成对出现:就绪与请求。就绪信号提供给流水线中的下一段,其意义是:本段已处理完毕,下一段可以取中间数据了。请求信号提供给上一段,其意义是:本段已取走中间数据,上一段可以放入下一个中间数据了。
    图C(c)是微程序控制器与组合逻辑控制器相结合的示意图。


四、待开发的设计实验(无参考)
  本实验仪除了能支持使用说明中所列举的基本实验、课程设计实验和系统结构实验外,还可以开发更多的实验。以数据通路(图1)为例,它蕴含了丰富的功能,灵活性相当高。控制器越强大,数据通路越能发挥潜力,甚至是设计的时候都没有想到的。略举几点:
  1、流水控制实验之所以能实现,是因为数据通路支持并行操作,本身已隐藏有流水线。
  2、若能充分利用多路选择器,包括操作数寄存器DR1、DR2的多路选择器MUX1、MUX2,地址寄存器AR2的多路选择器DR3,以及地址缓冲寄存器DR4的多路选择器DR4,除了可以设计出更多的机器指令,还可能提高系统的性能。例如在更紧凑的流水线中,用MUX1、MUX2解决局部冲突。
  3、算术逻辑运算器ALU中保留了进位输入端CIN,因此可以用分步的方法计算超过8位的数,甚至进行浮点运算。

  要开发出更多的实验,需要实验者充分发挥聪明才智。这里列出几个,希望起抛砖引玉的作用:
  1、更紧密的流水控制
    设计目标:在上述流水控制器的基础上更进一步,将执行段细化,达到1拍1条机器指令的吞吐量。

  2、浮点运算器、整数乘除运算器
    设计目标:能够执行浮点加减运算指令的控制器;能够执行整数乘除运算指令的控制器。
    提示:进位信号C可用于判别数字大小;移位操作可通过在数据总线上挂接移位寄存器实现。

  3、双机通信
    设计目标:两台实验仪相连,用DMA方式互相传送数据。

  4、SIMD计算机模型
    设计目标:多台实验仪并联,在控制器协调下并行工作。


第四部分 注意事项
  1、实验仪中采用的是高速CMOS电路74HC系列的芯片,做课程设计时最好也用这种芯片。确实要用74LS系列的,要注意两种芯片的互连要求。
  2、虽然在理论上,上一时序信号的下降沿与下一时序信号的上升沿在同一时刻产生,但实际应用中有偏差。做课程设计时,要避免在读数据的时候,该数据发生跳变。
  3、时序信号发生器在复位或停机状态下,T4、W4信号为高电平,其余时间信号为低电平。
  4、时序信号发生器、微程序控制器中各有一个复位(CLR)信号,两者没有必然联系。可以用同一开关控制,也可分别控制。
  5、若时序信号发生器的TJ、DP、DB信号均无效,则CLR从复位一变为高电平,马上开始连续工作,无须QD信号。
  6、ALU的两个操作数中,A由DR2提供,B由DR1提供。
  7、RF的输出数据是在T2的上升沿才跳变的,而不是每拍一开始的T1上升沿。
  8、ALU3只能计算4位的相对位移,若要进行超过4位的间接寻址,应使用ALU。
  9、机器指令表中有一条乘法指令(MUL),在本实验仪中无效。
  10、进行流水控制的设计时,要注意RAM的两个端口地址相同时,写入数据会冲突。参考方案中把改写指令代码(可能使地址相同)视为非法。
  11、控制台操作中,要掌握设定8位打码开关数值的正确时机。往往SW值向总线输出(总线指示灯有显示)时,扳动开关已经迟了。
  12、实验仪的输入信号插座(isp、扩展板部分除外)不接线时,在上(下)拉电阻作用下,输入信号处于无效状态。显示灯的AB切换控制端为默认的低电平(A端输入)。
  13、扩展板上可以把小芯片插在大插座上(例如14脚芯片插20脚插座),对齐1号脚,从插座的接地脚引线至芯片接地脚。注意插座的引脚号与芯片引脚号已经不同。
  14、扩展板上的芯片插座数量足够完成课程设计中的实验,但并不富裕。若学生的设计方案规模过大,建议采用isp芯片(单独或配合小芯片使用),甚至可以合用两个实验仪。
15、实验仪加电后,应使用复位信号(CLR)使仪器初始化。


第五部分 附录
发表意见   相关搜索   返回主页   关闭窗口
相关文章:
  [合著] 一台模型计算机的设计与调试(四):组合逻辑控制器流水方案 [2007-06-27]
  [合著] 一台模型计算机的设计与调试(三):组合逻辑控制器方案 [2007-06-27]
  [合著] 一台模型计算机的设计与调试(二):微程序控制器流水方案 [2007-06-27]
  [合著] 一台模型计算机的设计与调试(一):微程序控制器方案 [2007-06-27]
  [合著] 中断原理实验 [2007-06-26]
  [合著] CPU组成与机器指令执行实验 [2007-06-26]

最新留言:
  [2014-10-16]
  [2014-10-16]
  [2014-06-04]
  [2014-06-04]
  [2013-12-08]
  [2013-11-29]


从2005年3月18日起
访问本站页面计数器人次
版权所有 © 2005 龙之梦工作室,保留一切权利。
电子邮箱:master@28x28.com , co2288@126.com
相关链接 |