由控制器控制运算器进行计算的数字计算机
由控制器控制运算器进行计算的数字计算机
由控制器控制运算器进行计算的数字计算机是一种通过控制器控制运算器进行运算的数字计算机,输入电路,的数字计算机。它由按键,液晶显示器,中央处理器组成。按键输入的程序保存在磁带上面,中央处理器在固定数字电路的作用下按照C语言程序构建电路,程序怎么写,电路就怎么连接。例如电路循环执行输出一个数据到显示器,电路就在定时器的作用下不断向液晶显示器输出数据。该计算机还可以通过控制三台电机进行机械加工。
中央处理器由程序语句判断执行电路,程序语句控制电路构成。程序语句判断控制电路由端口,加法器,减法器,乘法器,除法器,n次方计算器,对数计算器,三角函数计算器构成。程序语句控制电路由if判断电路,for判断电路,switch判断电路构成。一个C语言程序是固定的,它对应的计算机电路就是固定的。当程序是if时,电路就判断输入数据是否大于条件,如果是,不断执行程序,如果不是停止执行。
键盘输入的程序按每行保存在磁带中,程序语句判断电路根据键盘输入的程序的关键字判断电路执行相应的操作,例如输入2*3,电路执行乘法操作,程序语句判断控制电路根据键盘输入的程序的关键字控制电路的工作,例如输入for,电路将上面计算电路执行多次。
它的相关资料下载网址为:
链接:https://pan.baidu.com/s/1iZlpCjFP1EhF-K69y5XGpg?pwd=5iwf
提取码:5iwf
https://kdocs.cn/join/ge5wqfb?f=101
第一部分 按照C语言程序结构组成数字电路进行计算的计算机
该计算器首先通过晶振产生32768HZ的谐振方波信号,再经过分频电路将这个方波信号的频率降低为100HZ,,即周期为0.01秒,再将这个100HZ的信号接入到按键的公共端,按键共有60个,它们的一端接到一起,另外一端分别接到倍频器上。相当于这些按键并联在一起,当某个按键被按下时,100HZ的信号就会接入到倍频器上,经过倍频后,频率变为1HZ,
为什么按键上面的频率是100HZ,这是因为100HZ的频率,周期是1毫秒,通常使用者按下按键的时间在1毫秒左右,所以,只有这个频率的信号才会在按下按键时输入到后级电路中。键值计算电路由十进制转二进制电路组成,当有数字键按下时,对应的数字按键输出端输出对应的数值。数值按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算符号按键按下时,或门输出高电平,或门后面接上计数器,计数器记录按键按下的次数,当有按键按下时,计数器将对应的次数输入到加法器,加法器给键值乘以10,100,1000,等倍数。当连续按2次按键时,需要用乘法器给键值乘以10,连续按下3次按键时,需要用乘法器给键值乘以100,依次类推。所有数值按键的输出端连接到一起,输出到计算符号电路,进行计算。计算符号编码电路产生对应计算符号的编码,输送给计算符号按键电路。用计算符号按键输入计算符号+-×÷,cos,sin,ln,log,等,
当RS触发器的输入端R,S都是1时,触发器保持输出端没有变化。利用这个特点,当按键输入高电平1时,电路输出高电平1给存储器,当按键断开输入低电平0时,RS触发器仍然给存储器输入1,当清零键按下时,RS触发器的S端输入0,触发器给存储器输入0,存储器清零。
当有按键按下时RS触发器Q输出1, Q 输出0,按下清零键以后,RS触发器Q端输出0, Q 端输出0
按键编码器产生二进制编码,每个编码对应一个按键。
当数字键1,按下时,这个与门输出0000001给后面计算电路,所有按键存储器后面两两之间接上或门,或门后面再接上或门,最后接上计数器,当按键按下时,计数器变为1,对应的存储器输出对应键值。当按键按下第二次时,计数器输出2,输出两位数字,当按键按下第三次时,计数器输出3,输出三位数字。
经过两个异或门和一个或门以后输出高电平111111111,这使后面的与门输出按键的数值到寄存器1,
当开始输入时,按清零键,计算机按键输入为0.此时,开始输入字符,将字符输入到寄存器1,
按键输入的程序存储在磁带A上面,超强磁性磁带的基材由50%醋酸酯DAC,50%醋酸酯TAC构成,超强磁性磁带的磁性粉末粘合剂有1%氯乙烯,1%醋酸乙烯共聚体,1%苯乙烯-丁二烯共聚体,1%硝化纤维素。1%纤维素,1%丁腈橡胶,1%丙烯酸酯橡胶,1%无定形聚酯,1%氨酯橡胶,1%聚氨基甲酸乙酯树脂,环氧树脂,密胺树脂,1%醋酸乙烯,1%丙烯酸酯丁基系的软质树脂,超强磁性磁带的磁性粉末分散剂由10ml乙醇,20g尿素,10ml双氧水,10g蔗糖,20g聚乙二醇4000,油酸钾皂试剂20g,黄色色素10g,司盘80试剂10ml,氧化铝10g,氨水50g,大豆油10g,α-烯基磺酸钠5g,十二烷基苯磺酸钠5g,烯丙基磺酸钠5g,二甲苯磺酸钠5g,椰子油脂肪酸渗透二乙醇酰胺6501日化,1%卵磷脂组成,磁性粉末稳定剂有对氯乙烯系粘合剂,使用硬脂酸钡等金属无机盐。磁性粉末防带静电剂是在磁性层内渗入炭黑或石墨等固体导电粉末。超强磁性磁带的磁性粉由二氧化铬,三氧化二铁,铬化铁,氧化镍,氧化钴,氧化钇,镝,二氧化锰。把磁性粉末,粘合剂,增塑剂,稳定剂,分散剂,加入水中,使各个磁性粉末相互溶解到水里,再球磨机混合均匀,最后用刮片涂覆到基材上面。
注意:收音机磁带使用涂着四氧化三铁的硝酸纤维素条,铁芯(铁氧体/羟基铁芯),0.32-0.45mm变压器钢片,线圈(0.08mm漆包线1200-1500匝),放音头间隙0.02mm,工作间隙0.5mm,磷铜萡/黄铜箔,
磁带录音机电路如下:
按键电路如下:
计算机中央处理器CPU电路原理图
关于数字电路加法器,计数器,分频器的电路可参见《中国集成电路大全》丛书,《中国集成电路大全编写委员会编,国防工业出版社1987年出版.
该计算器首先通过晶振产生32768HZ的谐振方波信号,再经过分频电路将这个方波信号的频率降低为100HZ,,即周期为0.01秒,再将这个100HZ的信号接入到按键的公共端,按键共有60个,它们的一端接到一起,另外一端分别接到倍频器上。相当于这些按键并联在一起,当某个按键被按下时,100HZ的信号就会接入到倍频器上,经过倍频后,频率变为1HZ为什么按键上面的频率是100HZ,这是因为100HZ的频率,周期是1毫秒,通常使用者按下按键的时间在1毫秒左右,所以,只有这个频率的信号才会在按下按键时输入到后级电路中。键值编码电路由二进制编码电路组成,当有按键按下时,对应的按键输出端输出对应的按键编码。每个按键的输出端接上或门,或门两两相接,最后输出一个或门,当有任何计算按键按下时,或门输出高电平,这个或门在和每个按键的输出端接上与门,这些与门在两两之间接上或门,最后一个或门接上按键寄存器。按键寄存器将输入的按键输出保存到磁带寄存器A中,计算机CPU通过算法语言关键字判断语句,计算符号判断电路,中断判断电路,定时器判断电路,数据判断电路,选择性的判断执行磁带存储器A中的按键输入程序。计算机CPU通过执行电路执行上面语句判断电路输出的内容。最后将执行结果通过IO端口输出,并用液晶显示器显示出来。
第一部分 计算机处理器原理
下面介绍了CPU执行汇编程序的过程,根据该过程可以通过数据判断电路,寄存器电路组成一个CPU。
C语言 二进制编码
swap (int v[ ],int k) mul i $2,$5,4
{int temp; add $2,$4,$2 0000000010100000010000001100000
temp=v[k]; 编译 lw $15,0($2) 翻译
v[k]=v[k+1]; lw $16,4($2)
v[k+1]=temp; sw $16,0($2)
} sw $15,4($2)
jr $31
例如: 内存值 地址
C=A+B 0 8
LOAD [10] 0 9
ADD [11] A 10
STORE [12] B 11
0 12
0 13
0 14
… …
从内存加载10号位置的值,然后与11号位置的数据相加,计算的结果存到内存12的位置。
然后将汇编语言再翻译成二进制。
LOAD [10] 100110 00000010
ADD [11] 110011 00000011
STORE [12] 111010 00000101
指令码 地址值
内存值 地址
0 98
0 99
10011000 100
00001010 101
11001100 102
00001011 103
11101011 104
00001100 105
0 106
由于内存是8位二进制,所以每两行存储一个指令,现在我们以1+1为例,这是CPU内部结构,
提取
控制单元 100 102 程序计数器 内存值
0
100 内存地址寄存器 0
10011000
00001010
累加寄存器 10011000 LOAD[10] 内存缓冲寄存器 11001100
00001010 00001011
11101011
LOAD[10] 指令寄存器 00001100
运算器 0
CPU内部结构图
如上图所示,指令寄存器主要用于存放指令所在的内存的地址。计算开始时,内存地址寄存器首先会从程序计数器获取指令的内存地址值100 ,然后内存地址寄存器会根据地址值100去内存读取指令,接着将指令放入内存缓冲区寄存器,为了更容易看懂。我们还是将二进制替换成汇编指令,接着指令会被移动到指令寄存器,同时程序计数器的内存地址会变为102,也就是下次执行的地址值,指令会被发送到控制单元进行解释,解释完后,是需要从内存10号的位置取出数据。然后控制单元通过内存地址寄存器,
解释
控制单元 100 102 程序计数器 内存值
0
10 内存地址寄存器 0
10011000
00001010
累加寄存器 LOAD[10] 内存缓冲寄存器 11001100
00001011
11101011
LOAD[10] 指令寄存器 00001100
运算器 0
CPU内部结构程序流程图1
将10号位置的二进制1读取到内存缓冲寄存器,接着将1发送到累加寄存器,LOAD 10指令就执行完了。
LOAD [10]
C=A+B ADD [11]
STORE [12]
我们接着执行ADD11指令,前面的执行跟load 10指令一样,
解释
控制单元 102 程序计数器
102 内存地址寄存器
累加寄存器 内存缓冲寄存器
LOAD[10] 指令寄存器
运算器
CPU内部结构程序流程图2
解释
控制单元 104 程序计数器
102 内存地址寄存器
累加寄存器 内存缓冲寄存器
1 LOAD[11] 指令寄存器
运算器 LOAD[11]
CPU内部结构程序流程图3
累加器寄存器会先将1发送到运算器,然后再解释ADD11,从而将1号位置的二进制1,再读取到内存缓冲寄存器,
解释
控制单元 104 程序计数器
ADD[11]
11 内存地址寄存器
累加寄存器 LOAD[11] 内存缓冲寄存器
1 LOAD[11] 指令寄存器
运算器
CPU内部结构程序流程图4
解释
控制单元 104 程序计数器
11 内存地址寄存器
累加寄存器 1 内存缓冲寄存器
1 LOAD[11] 指令寄存器
运算器
CPU内部结构程序流程图5
然后从缓冲寄存器将1继续发送到累加寄存器,
控制单元 104 程序计数器
ADD[11]
11 内存地址寄存器
累加寄存器 内存缓冲寄存器
1 ADD[11] 指令寄存器
运算器
CPU内部结构程序流程图6
最后再发送到运算器,
控制单元 104 程序计数器
ADD[11]
11 内存地址寄存器
累加寄存器 内存缓冲寄存器
1 1 ADD[11] 指令寄存器
运算器
CPU内部结构程序流程图7
现在关键的时候来了。前面都是在读取数据,真正用于计算的就是这个运算器, 运算器就包含我们前面说到的半加器,现在我们将1和1发送到半加器,1代表打开开关,所以两个开关都会打开,首先是异或门这里,
前面说过,异或门有且只有一个开关打开,电路才会导通,所以输入为1和1时,异或门的输出结果为0,灯泡不会点亮,而对于下面的与门电路,由于输入为1和1,那么与门的输出为1,所以灯泡会被点亮,点亮为1,不点亮为0 , 所以得到的结果为二进制的10,10对应的结果刚好等于十进制的2,然后将计算结果返回累加寄存器,
控制单元 104 程序计数器
ADD[11]
11 内存地址寄存器
累加寄存器 内存缓冲寄存器
2 ADD[11] 指令寄存器
运算器
CPU内部结构程序流程图8
接着开始执行store 12这行指令,前面的执行依旧一样,当执行到控制单元时,控制单元会解释store 12这条指令,
控制单元 106 程序计数器 内存值
STORE [12] 0
104 内存地址寄存器 0
10011000
00001010
累加寄存器 STORE[12] 内存缓冲寄存器 11001100
2 00001011
11101011
1 1 STORE[12] 指令寄存器 00001100
运算器 0
2 CPU内部结构程序流程图9
指令的意思就是,将计算结果存入内存地址12的位置,
控制单元 106 程序计数器 内存值
STORE [12] 0
104 内存地址寄存器 0
10011000
00001010
累加寄存器 STORE[12] 内存缓冲寄存器 11001100
2 00001011
11101011
1 1 STORE[12] 指令寄存器 00001100
运算器 0
2 CPU内部结构程序流程图9
接着累加寄存器将计算结果2发送到内存缓冲寄存器,
控制单元 106 程序计数器 内存值
STORE [12] 0
12 内存地址寄存器 0
10011000
00001010
累加寄存器 STORE[12] 内存缓冲寄存器 11001100
2 00001011
11101011
1 1 STORE[12] 指令寄存器 00001100
运算器 0
2 CPU内部结构程序流程图11
最终将结果2存入到内存12的位置,从而计算出1+1的值
控制单元 106 程序计数器 内存值
STORE [12] 0
12 内存地址寄存器 2
0
0
累加寄存器 STORE[12] 内存缓冲寄存器 0
2 0
0
1 1 STORE[12] 指令寄存器 0
运算器 0
2 CPU内部结构程序流程图11
从关于偶数的哥德巴赫猜想,可推出:任何一个大于7的奇数都能被表示成三个奇质数的和。后者称为“弱哥德巴赫猜想”或“关于奇数的哥德巴赫猜想”。若关于偶数的哥德巴赫猜想是对的,则关于奇数的哥德巴赫猜想也会是对的。2013年5月,巴黎高等师范学院研究员哈洛德·贺欧夫各特发表了两篇论文,宣布彻底证明了弱哥德巴赫猜想。贺欧夫各特在文章“Minor arcs for Goldbach's problem”中,给出了指数和形式的一个新界。在文章“Major arcs for Goldbach's theorem”中,贺欧夫各特综合使用了哈迪-利特伍德-维诺格拉多夫圆法、筛法和指数和等传统方法,把下界降低到了1030左右,贺欧夫各特的同事 David Platt 用计算机验证在此之下的所有奇数都符合猜想,从而完成了弱哥德巴赫猜想的全部证明。例如,数字15可以分解为3,5,7三个数的和
二进制数据经过弱哥德巴赫猜想判断电路后,形成3个数据, 这三个数据经过数据大小判断电路后,经过异或门判断后,输出到对应的关键字执行电路. 最后,关键字执行电路执行相关关键字的功能, 例如MOV AX,08H,就是将08H数据保存到AX寄存器, 例如if(a>9){n=n+2;},就是如果a>9,就将n的值加2.
弱哥德巴赫猜想判断电路
例如,15除以3等于5,得到第一个和数,5加上2得到第二个和数7,5减去2得到第三个和数3,
计算机关键字编码表
汇编语言的关键字,MOV的数值为9,CMP的数值为11,INT的数值为13,等等.
C语言的关键字,main的数值为31,if的数值为33,for的数值为25,等等.
数值大小比较电路
两数相减,得到的数据进行平方计算,如果是负数,平方后得到正数,开方后得到正数,加上原来的负数,输出0. 两数相减,得到的数据进行平方计算,如果是正数,平方后得到正数,开方后得到正数,加上原来的正数,输出正数. 如果加法器输出0,或门输出1,与门输出1,状态寄存器A保存1,证明两数相减得到的是负数,反之,则是正数。
后面的数据判断电路和上面的电路类似,在此省略。根据数据的大小选择相应的执行电路,并输出。数据数值大小判断电路
先将输入的数据开方再加上1,乘以3,减去2,除以4,得到一个新数,再将这个新数和原来输入的数值相加,再乘以这个新数,再减去这个新数,再除以这个新数就是得到的最后数值。将输入的数据进行这样的计算后,可以得到唯一一个远小于原来输入数值的新数值,在进行数值大小的判断就比较方便。加法器乘法器减法器除法器判断电路
输入数据经过和低电平进行异或门的判断,再和高电平经过异或门的判断,输入数据经过和低电平进行同或门的判断,再和高电平经过同或门的判断,上面输出的两路数据经过与门的判断,上面输出的两路数据经过或门的判断,上面与门或门输出的两个数据经过与门判断后输出最后的数据到寄存器,与门或门异或门同或门判断电路
每执行依次C语言的关键字,该关键字对应的计数器计数依次,与门导通,下次后面的程序段调用该关键字时,程序重新返回该关键字对应的电路执行,这样可以节省电路。带计数器开关的标准程序判断电路
每执行依次C语言的关键字,该关键字对应的计数器计数依次,与门导通,下次后面的程序段调用该关键字时,程序重新返回该关键字对应的电路执行,这样可以节省电路。带计数器开关的标准程序判断电路
第三部分计算机处理器运算器
LOAD [a], R0 01 00 01 01
LOAD [b], R1 01 01 01 10
ADD R0,R1 00 00 00 01
SUB R0,R1 00 01 00 01
STORE R0 [a] 10 00 01 01
LOAD [c], R0 01 00 11 01
DEC R0 00 11 00 00
汇编指令 二进制编码
二进制解码器
如果前面两位是00,代表这行汇编指令是运算指令,
00 00 00 01
00 01 00 01
00 11 00 00
接下来的两位00代表加法运算,01代表减法运算,11代表递减运算,当处理器需要进行计算时,会先判断二进制前两位是否为算数运算指令,如果是的,处理器会将操作码传入解码器,例如00代表加法运算,所以运算器会调用加法器来进行运算。然后将两个输入端加入进来,并与每个运算器相连接,运算器就能根据指令的不同,调用相应的运算器进行运算,我们将这个运算器整体进行封装,一个基础的算术逻辑单元就完成了。算术逻辑单元接收两个输入值,然后根据操作码的不同,内部回调用不同的运算器。最终得到相应的计算结果。8位增量器记录每次计算完的进位增量,然后再和加数相加,并输出进位增量。8位递减器记录每次计算完的退位减量,然后再和加数相加,并输出退位减量。
8位增量器 8位递减器
8位加法器‘8位减法器
二进制解码器
计算机处理器运算器电路图
当输入汇编程序ADD R0,R1时,经过判断电路,发现前两位是00,代表运算符号,电路进入运算电路。经过判断电路,发现后两位是00,代表加法器符号,电路进入加法运算电路。此时二进解码器输出编码,使与门导通,两个数相加,进位进入进位寄存器,退位进入退位寄存器。所有输出,最后通过或门判断后输出,这就组成了一个运算器。
第四部分 数字计算机控制器原理
下面的资料可参见《数字计算机原理》,国营南京有线电厂,南京大学教改实践队,西安军事电讯工程学院教改实践队,727工人教学组,1970年编
第二节 控制器一般介绍
由于电子计算机的用途不同,因而控制器组成也有不同,因为它主要满足具体机器的专用要求而设计制造的。现在我们着重介绍一般通用电子数字计算机,它具有串并型,单地址工作方式。电子计算机的控制器是电子计算机发布命令的机构,又是电子计算机的神经中枢,是计算机的指挥中心。它发布命令指挥计算机各个部分自动协调的完成程序所规定的工作。
一,控制器的功能
一般通用电子计算机控制器的功能有:
- 控制输入设备及其有关部分,将解题程序和原始数据输入至操作存储器
一般由输入指令来实现的。
- 控制运算器和操作存储器及有关部分自动而协调执行程序过程。
电子计算机在执行程序过程中,完成任何一条指令,均需经过二个阶段:
即一:取指令阶段,即按指令地址从操作存储器中取出指令至指令寄存器,
随后决定下一条指令的地址。二:执行指令阶段:
首先按指令特征码、变地址码的规定形成操作地址向操作存储器取出操作数(对存入指令讲是写入结果);其次按指令的操作码,由运算器及有关部分完成该指令所规定的操作动作。在上述两个阶段中,控制器的控制方式是不同的。在取指令阶段,控制器一般按照在一定时刻直接向有关部分发出信息,从操作存储器中取出指令,而不受任何现行指令的支配,即和现行指令是无关的。而在执行指令阶段,控制器则受现行指令和特征码的内容所支配,在一定的时刻向有关部分发出信息,控制它们依次完成该指令工作周期中各个基本操作。而各类指令所需执行的各个基本操作是不同的。因此,在执行指令阶段,控制器所发出的控制信息是受现行指令所支配。我们称不受指令支配的控制信息为“公共操作”。3.控制输出设备及有关部分,将运算结果从计算机内部输出。一般由各种输出指令及其有关中断来实现的。
二、控制器的一般组成。
由于大型电子计算机的出现,控制器越来越复杂,但是一般电子计算机的控制器原则上是由这几部分所构成的,
送至运控,内外存 运算器反馈
操作控制线路 指令部件
脉冲分配器 总线
控制台 显示 由运算器内存装的信息
手动控制 由运算器内存的信息
图6-3 控制器框图
1.指令部件:指令部件由一指令寄存器,操作译码器和指令地址计数器构成。在大型快速电子计算机中可以有若干这样的结构。指令寄存器是用来存放现行指令的,经操作译码器后发布操作命令,依次完成现行指令所需做的必要动作。操作译码器是将指令译成该指令操作的控制电平。而指令地址计数器是决定指令地址的寄存器,一般指令的后继方式是加1,因而采用计数器来做指令地址寄存器,用加1的方法为下一条指令地址做好准备。
指令寄存器编码 指令地址计数器编码
指令寄存器 指令寄存器
指令译码器A 指令译码器B
2.脉冲分配器和启停线路
启停线路是可靠的启动机器,关闭机器工作的必要线路。脉冲源由脉冲发生器构成,并由它产生一定频率的脉冲信号,经启停线路启动机器工作,从而产生使机器工作的一系列主脉冲,表示机器开始工作。当要关闭机器时,可经启停线路来阻止主脉冲的产生,从而使机器停止工作。脉冲分配器是由计数器及有关线路所构成,在机器主脉冲的作用下,产生一定次序的时序电位和时序脉冲,作为计算机的时间节拍和脉冲的顺序标志。这些时序电位和时序脉冲形成了取指令的控制信息,它和操作码、特征码及其其它特征触发器一起组合产生执行现行指令所需的各种控制信息。
.
分频器A 脉冲A
启停信号 脉冲源 分频器B 脉冲B
启停控制端 分频器C 脉冲C
与门
脉冲分配器和启停线路电路示意图
- 控制台
控制台首先是显示电子计算机的必要信息,以使工作人员监督机器正常工作。其次设置一些开关线路,使工作人员能发出一些必要的动作,去指挥和干预计算机工作;另一方面亦便于计算机的调整和维护。总之控制台是操作工作人员和机器联系的工具。运算器,存储器,控制器,都有状态运行编码,这些编码监控上面部件的状态,并发送给控制台. 这些编码存入控制台存储器,经过数据判断电路,产生与门开闭信号,通过启碇部件电路,启停各个运算器存储器部件。
运算器控制台信息编码 存储器器控制台信息编码
控制台存储器
数据判断电路
启停部件电路
控制台电路示意图
- 操作控制部件
操作控制部件分中央操作控制线路和局部操作控制线路二个部分,是由一些门线路组成的。这些门线路是依据时序电位、时序脉冲和指令码、特征码和其它有关的控制触发器等组成开关电路。它根据现行指令产生一定顺序的电位和脉冲(即相应的操作)给运算器、操作存储器及其它有关部分执行并完成该指令的功能。
时序脉冲 指令码 特征码
控制台存储器
数据判断电路
启停部件电路
操作控制部件电路示意图
- 总线:
总线是电子计算机传送代码的通道。设置总线的目的是减少机器中长线传送的条数,使其达到长线的最小限度。在总线中,通道是公共用的。其意如下图所示:
正如流水的管道,假定水流的方向如图所示,那么,当A、B门一打开,便由A→B,当C、B门打开,便由C→B, 当A、B门一打开,便由A→H,总之在通道中,信息的传递是公用的。
信号A 控制端A 信号A
控制端A 与门 与门
信号B 控制端B 信号B
控制端B 与门 与门
信号C 控制端C 信号C
控制端C 与门 与门
总线
总线电路示意图
- 中断系统:
中断系统的作用在于:合理的调整内外速度的配合,响应处理机器突然出现的事件及处理计算机外部来的计算讯息。详见第八节中所述。
端口数据A 端口数据B 端口数据C
中断存储器
数据判断电路
启停部件电路
中断控制部件电路示意图
图6-3是控制器基本框图,当我们在控制台启动后,脉冲分配器便产生节拍信息,接着从内存取出指令,根据操作码、特征码、节拍电位和脉冲以及其它条件形成一系列的信号送至运算器及其它有关部分完成该指令的功能。继而发布向操作存储器按指令地址寄存器取下一条指令的命令。至于总线,只起传送代码和地址信息的作用。其机器中的信息情况,可由控制台上的指示灯显示出来。以便供使用机器工作者了解计算机的工作情况。图6-3的框图仅是一般的,各台机器都有不同结构的控制器。为了更好理解电子计算机控制器的组成和功能,下面我们以一台并行定点计算机为例,做一个介绍:这台模型计算机,采用同步工作方式,字长15位,其数的表示为:
15 14 ………………1
最高位表示数的符号,一般计算机都用0表示正、1表示负。其余十四位为尾数。小数点固定在最高位和次高位间。数的表示范围为0≤|x|<1, 指令形式为:
操作码 特征码 变址码 地址码
θ λ δ D
15 12 11 10 9 7 6 1
其地址状况由特征码决定如下:
特征码状态 操作地址
λ=0 δd
λ=1 (δd)
λ=2 J +d
sx
λ=3 (δ)+d
地址δd表示δ和d位数拼起构成操作地址,()表示括号中地址为内容。指令系统如下表所列:其内容在表中说明.
操作名称 符号 操作码 内容
空操作 Kon 00 除变址外无动作
加法 + 01 (B)+(m)→B,m为所形成的操作地址。
减法 - 02 (B)-(m)→B,
乘法 * 03 (B)*(m)→BC,
除法 ÷ 04 (B)÷(m)→BC,
逻辑乘 ∧ 05 (B)∧(m)→BC,
比较 - 06 (B)与·(m)比较。执行(B)-(m),若正,则
z‘0'w;若负。则在’w。(B)保持不变
将(B)按其特征码所规定移位形式作移D次。注:
移位 yw 07
无条件转移 10 无条件转向执行(m)所指出指令。
条件转移 11 若w=1,则转向执行(m)所指出指令,否则就顺序执行
送B ↑B 12 (m)→B
地址送B D↑B 13 m→B
存B B↑ 14 (B)→m
输入 SR 15 八进制纸带输入
打印 Dy 16将需要打印数据变成必要八进制形式送入打印机缓冲区的相应二个单元
停机 T 17 将m→Jsz后停机,启动按(m)所指出指令执行
注1:移位指令是一个复杂指令。其移位方式由特征码规定如下:
λ=0 B尾数左移(即算术左移)
λ=1 B尾数右移(即算术右移)
λ=2 B左移(即逻辑左移)
λ=3 B右移(即逻辑右移)
第三节 指令部件
指令部件的作用是保存现行指令,并决定后继指令地址和产生现行指令的操作码电平、特征码电平等去控制实施现行指令,一般讲指令部件由指令寄存器、操作译码器、指令计数器等组成。
一、指令寄存器及操作译码器
该部件中,由操作码四位、特征码二位、变址码三位、地址码六位组成十五位的寄存器,作为存放现行指令用,故称指令寄存器。为了节省设备,将地址码放在运算器A寄存器中。而操作译码器、特征码、变址码寄存器的框图如图6-4.
图6-4 指令寄存器及其译码器框图
从图6-4看出,指令寄存器由九个维持阻塞型触发器组成其功能是接收由操作存储器全加器而进入指令寄存器的指令代码,
其相应的基本操作为mJ ,mJ ,除了执行DY指令时踏步和中断外,
θ λδ
分调时,要形成开关指令↑B和~,总联时,形成开关向操作存储器写数和读数的指令B↑、↑B;解题时形成输入指令,能使程序数据连续输入至操作存储中的开关指令,这需和控制台配合加以实现。译码器的功能是将操作码翻译成相应的操作控制电位和将特征码翻译成相应的特征λ的控制电位。翻译码原理第四章已经讨论过,这里不在说明了。这些控制电位和节拍电位,工作脉冲等相应组成执行该指令功能的基本操作命令。
二、指令地址寄存器
一般机器的指令后继方式是加1,由一个计数器来实现,现为节省设备,改用九位寄存器,加1的动作由全加器来实现,其符号为J ,为了便于控制,还设有指令地址符合停机,
Sz
由控制台上的K 和一排开关K ,K ,......K 配合实现。
FH 1 2 9
K 是控制指令地址符合停机之开关。有的机器中还设有地址符合停机。指令地址寄存器的逻辑框图如图6-5所示。
图6-5 指令地址寄存器框图
指令地址寄存器的功能是接收控制台来的起始地址和由全加器来的地址信息(包括指令后继加1)。指令地址寄存器由九个阻塞型触发器和一些门线路所组成。其基本操作是mJ ,
Sz
接收需送入指令地址之代码。例如在W 时,指令后继加1;在转移指令,接收需送入指令地址之代码。例如在W 时,指令后继加1;在转移指令,
4
接收经全加器来的地址信息等。
此外J 还能作浮动地址和控制指令地址符合停机(等K 打下时)等用。
Sz
关于指令地址符合停机的实现过程的开关代数描述如下:
当K ,K ,...,K 中开关和J 中数相同时,
1 9 sz sz
在K 控制下才能停机,所以其开关代数应为
FH
(K J + K J )*(K J + K J )(......)(K J + K J )*K
1 SZ1 1 SZ1 2 SZ2 2 SZ2 9 SZ9 9 SZ9 FH
(1)
当上述开关数值为1时,才能停机,运用与非门、与或非门,容易构作此开关线路。本逻辑图中开关代数演变如下:
(1)式= (1) 式
(K J + K J )*(K J + K J )(......)(K J + K J )*K
1 SZ1 1 SZ1 2 SZ2 2 SZ2 9 SZ9 9 SZ9 FH
(2)
(K J + K J )*(K J + K J )(......)(K J + K J )*K
1 SZ1 1 SZ1 2 SZ2 2 SZ2 9 SZ9 9 SZ9 FH
(3)
(K J + K J +K J + K J )*….*(K J + K J )+K
1 SZ1 1 SZ1 2 SZ2 2 SZ2 9 SZ9 9 SZ9 FH
=(4) 式
于是我们根据(5)式画出,第一级是具有带三个或扩散器的与或非门;第二级是五输入端与非门。第三级是反相器.
第四节 脉冲分配器和启停线路
电子计算机被启动后,由脉冲分配器发出一系列的时序电位和时序脉冲,使机器运行;停机后,不发出这些时序电位和时序脉冲,使机器停止工作。控制器的这个不分由脉冲源,启停线路和脉冲分配器等所组成。现分别介绍如下:
一、脉冲源
脉冲源是机器中的信号源,是由一个振荡器所组成的,产生一定频率的脉冲,现采用晶体作成负阻式的振荡线路(图6-6),晶体的频率为2MC.2兆周即2000千HZ,使其产生1MC、宽度200ns的机器主脉冲。
二、启停线路
启停线路的作用是开放或关闭机器主脉冲。为了保证能可靠的启动和停止机器工作,
在控制机器工作的启停触发器C 前面加一个启动触发C ,用C 来控制C 工作。
R q r q
为了防止机器启动时除去半个主脉冲,采用维持阻塞的方法,使机器能顺利的发出整个工作脉冲。机器工作的方式是多样的,如单拍、单条、连续、人工启停等。其逻辑图如图6-7所示。在人工自动输入时,机器亦正常进行输入工作,直至输入完毕停止。可以给程序工作者做好计算题的准备工作。
二、脉冲分配器
在讲脉冲分配器之前,还需叙述一下控制器的工作方式。是采用同步方式或是采用异步工作方式。同步计算机控制器的工作方式是所有基本动作均在定时性的节拍电位和脉冲控制下进行工作的,每一个操作(指令)需要整个工作循环周期,才能完成其规定工作。很明显,由于定时发出电位和脉冲,因此电位的宽度和脉冲宽度、频率都是一定的,而且具有一定的时间间隔。这种计算机的控制器,我们称其同步方式工作,有时称为同步计算机。在一个非同步的计算机控制器中,基本操作的执行没有一个定时参考的时间标志,而是当现行基本操作完成后,下一基本操作才能开始。因此,对于任一条指令中各个基本操作,所需执行的时间都可能是不同的。在非同步控制器(即异步控制器)中,每一动作执行完毕后,必须产生一个回答脉冲, 使得下一动作开始工作。采用这种工作方式的计算机,称为异步计算机。
使得下一动作开始工作。采用这种工作方式的计算机,称为异步计算机。本模型机是采用同步方式进行工作。因此脉冲分配器是定时发出信息的,对应于指令的基本工作循环,划分一定数量的时间间隔的, 而每一时间间隔发一节拍电位和一节拍脉冲。作为机器的时间标志,以协调整机有节奏的工作。脉冲分配器的作用非常类似指导日常工作的时钟标志。同步机器中,其节拍电位的长短需根据各基本操作所需完成其动作所花费的最大时间决定,同时,也与操作存储器的读写周期的时间有关,详见第七节。
由于脉冲分配器仅仅作为机器的时间标志,将指令的基本工作循环分成一定数量的节拍电位和脉冲,依次完成该指令所规定的那些基本操作命令。所以机器一停机,指令便无法执行, 节拍信号也就发不出去,计算机内部各状态处于静止状态。如果机器一启动,在计算机的工作脉冲作用下,产生一个基本工作循环的一系列节拍电位和脉冲,我们分别称它为中央节拍电位和脉冲。我们分别称它为中央节拍电位和脉冲。前面讲过。执行一条指令所需时间是不同的,主要是T 的时间对不同指令有长有短.........
y
如执行一个指令基本工作循环还不够,我们就采用两种办法来解决:
第一种,对于有重复性的基本操作的指令采用一个局部节拍电位和脉冲来处理,如乘法中被乘数和部分积的加法和移位动作,除法中按其余数的符号不断进行加、减的动作和移位动作,
移位时按地址进行不断移位的动作,均属重复进行的,故采用局部电位和脉冲来处理。第二种,系不重复的动作,或需要增加的访问内存的次数,或执行其它隐操作,比如变址、中断等。还需要插入若干个操作存储器的读写周期,为区别与上述讲过的基本动作循环,我们称这些读写周期为插入的中央工作节拍。本模型机中央插入的指令工作循环分八拍,插入的中央周期最多有三个。其逻辑框图如图6-8所示。这是一个具有八拍非插入中央工作循环,并附有三个插入中央工作周期和一个局部节拍的脉冲分配器。它由一个区别中央和局部工作的触发器C , (当C =1时,表示中央工作;当C =0时,表示局部工作。)
zk zk
中央节拍计数器及插入周期计数器等有关部分构成。在计算机的工作脉冲作用下,由触发器控制发出中央工作脉冲或局部工作脉冲,显然,这两种情况是互相排斥而保持单一可靠的工作。在中央工作脉冲作用下由中央节拍计数器产生形成节拍电位和脉冲:
在中央工作脉冲作用下由中央节拍计数器产生形成节拍电位和脉冲:
W 、W 、W 、W 、W 、W 、W 、W
0 1 2 3 4 5 6 7
m ,m ,m ,m ,m ,m ,m m ,m` ,m` 、
0 1 2 3 4 5 6 7 3 7
(当J =0时)和W* 、W* 、W* 、W* 、W* 、W* 、W* 、W*
sc 0 1 2 3 4 5 6 7
m* ,m* ,m* ,m* ,m* ,m* ,m* m* ,m`* ,m`*
0 1 2 3 4 5 6 7 3 7
(当J ≠0时)。中央节拍计数器的工作循环是,
Sc
000→001→010→011→100→101→110→111→000
插入周期计数器是由+1或置'0'来实现,为了叙述的方便,今约定存储周期W -W 为Ⅰ
0 3
W -W 为Ⅱ,W* -W* 为Ⅲ,W* -W* 为Ⅳ
4 7 0 3 4 7
中央节拍电位均需由C =1控制才保持单一性,图6-8中是用C =0来阻塞实现的,
zk zk
一般讲,指令是由中央节拍计数器的工作循环来完成,必要时,需加插入周期才能完成。需要提及的是C 这个触发器的作用:是封锁C 、D 之间的进位,控制存储周期的。
Fn w2 w3
当在周期Ⅰ中置'1'C ,其转变过程是:当J =0时,由Ⅰ→Ⅰ;
Fn sc
当J≠0时,由Ⅰ→Ⅲ。当在周期Ⅰ中置‘0’C ,
当J =0时,由Ⅰ→Ⅱ;当J ≠0时,由Ⅰ→Ⅳ。
sc sc
当在周期Ⅱ中置'1'C ,其转变过程是:当J =0时,由Ⅱ→Ⅱ;
Fn sc
当J≠0时,由Ⅱ→Ⅳ。当在周期Ⅱ中置‘0’C
Fn
当J =0时,由Ⅱ→Ⅰ;当J ≠0时,由Ⅱ→Ⅲ。
sc sc
当在周期Ⅲ中置'1'C ,其转变过程是:当J =0时,由Ⅲ→Ⅰ;
Fn sc
当J≠0时,由Ⅲ→Ⅲ。当在周期Ⅲ中置‘0’C ,其转变过程是:
Fn
当J =0时,由Ⅲ→Ⅱ;当J ≠0时,由Ⅲ→Ⅳ。
sc sc
当在周期Ⅳ中置'1'C ,其转变过程是:当J =0时,由Ⅳ→Ⅱ;
Fn sc
当J≠0时,由Ⅳ→Ⅳ。当在周期Ⅳ中置‘0’C ,其转变过程是:
Fn
当J =0时,由Ⅳ→Ⅰ;当J ≠0时,由Ⅳ→Ⅲ。这样给机器设计者提供了方便。
sc sc
局部节拍电位和脉冲的个数,由局部计数器来决定。局部计数器是为乘、除、移位、输入等指令所设置的。局部计数器除能计数、接收数外,还能置数,控制局部节拍脉冲的个数,满足一定条件后,就返回中央。局部计数时,中央节拍不应发出信号;中央节拍和脉冲工作时,局部节拍也不应发出信号;故可用一个触发器的0端和1端来加以控制。局部计数器的位数可由字长的位数来决定,
4
例如字长十五位,局部计数器只需四位,因为2 =16>15,这是由于最多的局部电位脉冲只要十五位就行,再多就没有意义了。为了观察和人工操作的方便,设有打码输入,使运算器的A、B、C及控制器的J 能置数。
sz
还设有显示A、B、C的公共显示机构。当在打码输入,显示时,所有各种节拍电位和脉冲都不能产生,只在机器主脉冲的作用下,进行这两项工作。局部计数器的逻辑图如图6-9所示。例如在进行二位乘法时,需移位八次,就可将局部计数器置成8的补吗的状态,每次移位,局部计数器加1,移满八次,局部计数器就成0000状态,据此状态就可转至中央工作。其它情况下的应用可以类推。不一一叙述。
第五节 总线结构
由于本模型机采用全加器作为总线结构。现在把总线的结构的原理讲一下。总线是代码、地址信息相互传送的通道,位数与字长、地址长相同。在第二节中我们已作示意图,今用线路实现之。其一位总线的逻辑图如图6-10所示:
总线的输入是看谁把送至总线的门打开,谁就将信息送入DX。在设计时千万注意送入DX信息的单一性,其总线输出信息由谁接收,主要看谁的接收门打开。总线DX的信息可以同时被几个寄存器所接收。代码总线的设置,是为了减少机器中代码、地址码传送过程中长线的数目,同时也可以减少寄存器的负载数目,例如某一寄存器可以传送至其它五个寄存器,单独传送每位就要五个负载,五根长线,现有总线,只需这一寄存器传送至总线,经总线传送至其它五个寄存器,只需每位一条长线,对总线而言,负载是增加了,但总是小于不用总线直接传送的负载,因为总有一些信息传至终点寄存器是一样的。例如K→D,A→D,以从内存送A为例,其传送过程是S→DX,+DX,∑→A,mA, 设置代码总线有利也有弊,有了总线,传送过程就麻烦一些,而且两种代码不能同时传递信息(这一点,必须特别注意,否则就会引起错误),这需要设计者权衡利弊轻重,若机器小而简单,可不设总线为好,若机器大而复杂,则需要设置总线,有时还需要设置代码总线和地址总线。
第六节 控制台
控制台是操作人员和机器联系工具,操作人员可以在控制台上观察和监视计算机的工作,也可以根据人门的意志去干预机器的工作。
一、控制台的结构和组成
控制台一般设有一些开关,板键和指示灯及其有关必要的线路,一般讲应有
- 地址开关和数码开关
2.机器工作状态控制开关,如单拍,单条,连续,符合停机等开关。
3.启动、停机按钮,总清、清运控等板键。
4.有关机器结果的显示,除显示Jsz,D,J , J ,J ,节拍电位,J 等外,
θ λ δ SJ
还需显示运算结果,机器工作状态(如停机,输入,输出等),及有关控制触发器,中断等信息。一般机器还设有分调面板,有的机器还设有控制台打字机。
二、控制台上的基本操作
在控制台上进行的基本操作一般有:
1.控制计算机的启动或停止。
2.总清或清某个部分。
3.用数码开关向A,B,C,J 等寄存器置数。
sz
4.控制台读、写。控制台读是从操作存储器某一单元由控制台指定读出至B,并在控制台显示结果;控制台写是将开关数写入操作存储器的某一单元(由控制台指定)。
5.控制机器工作方式,即单拍、单条、连续等工作方式。
6.有的机器还设有台中断等隐操作。
要说明一点,各台机器根据自己本身的需要进行控制台设计,因此,各台机器的控制台的结构和组成是不同的。
第六部分 基本逻辑电路
下面的资料可参见《数字计算机原理》,国营南京有线电厂,南京大学教改实践队,西安军事电讯工程学院教改实践队,727工人教学组,1970年编
例2,设计一个半加器的开关网络
我们知道半加器有两个输入A和B,(即加数和被加数),也有两个输出S和C(即为和数和进位)。它们之间的关系如表3-3所示,这样的表称为开关函数的真值表。
根据真值表我们可以写出开关函数的表达式,其方法之一可以是从真值表中输出为1时,写出输入的各种组合。从表3-3中可看出A、B不相同时S为1,而当A、B都为1时C才为1,所以有
第七部分 三坐标加工计算机
我们使用程序控制三个电机的运动,在x,y,z三个方向加工零件,例如输入程序hua yuan yuanxin (233,901,560),zhijing (23),shendu(10),计算机控制x,y,z三个坐标轴的电机,在坐标点(233,901,560)做圆心,半径16mm,深度10mm,在零件上铣加工圆形。
当输入huayuan 233时,计算机经过判断输出233,x轴电机移动233mm到达233坐标点,
加工圆心判断电路
该电路对程序输入的圆心数字进行选择判断,使电机得到正确的数字
当输入huayuan 233时,计算机经过判断输出233,x轴电机移动233mm到达233坐标点,
x轴增量判断电路,
该电路对程序输入的半径数值进行选择判断,使电机得到正确的数字。
y轴增量判断电路
该电路对程序输入的半径数值进行选择判断,使电机得到正确的数字。
当输入huayuan 233时,计算机经过判断输出233,x轴电机移动233mm到达233坐标点
加工半径不同,x,y,z的增量不同,这需要提前将加工增量保存到寄存器中,当输入一个半径时,就从寄存器中调出这个x,y,z轴的增量,输出到电机,加工圆形时,x轴的增量和y轴的增量是不相等的。x,y轴的增量在坐标平面上构成了一个圆弧。
如图1所示,在单位圆1中,x,y的坐标值如下
X y
0.9 0.06
0.8 0.11
0.7 0.22
0.6 0.33
0.5 0.45
0.4 0.56
0.3 0.67
0.2 0.77
0.1 0.87
0 1
这样经过判断,x,y输出正确的增量,就会加工出圆形, 画椭圆和曲面,和画圆形类似,提前做好椭圆,曲线的xyz增量数字据表,按照表格数据控制x,y,z电机增量加工零件。
也可以将用一个电机原地旋转代表圆心位置,用另外一个电机控制可以伸缩的圆管的长度代表半径。
如图2所示,电机A在圆心做原地旋转,电机B控制圆管的长度,圆管一端在圆心,一端围绕圆心旋转,这样就类似圆规画出了一个半径等于圆管长度,圆心在电机A处的圆。程序HUA YUAN1# YUANXIN(254,698),BANJING 56
上面的程序说明,在圆心在坐标(254,698),圆的半径是56mm
MOV X=254,Y=698
上面程序说明X轴电机动作254,y轴电机动作698,将电机A移动到坐标254,698
DIANJIA YUNSU SUDU 52M/S
上面程序说明电机A做匀速转动,速度是20m/s
MOV R=56,GUDING
上面程序说明电机B伸长的长度是56mm,且长度固定。
如果想画一个椭圆,就需要调节圆管的长度,让长度匀速增大,或匀速减小。
如图3所示,还是电机B控制圆管的长度,围绕电机A旋转,电机A的长度一会匀速减少,一会匀速增大,这样就会画出一个椭圆。
程序HUA TUOYUAN1# YUANXIN(254,698),CHANGZHOU 52,DUANZHOU 12
上面的程序说明,在圆心在坐标(254,698),椭圆的长径是56mm,椭圆的短径是12mm,
MOV X=254,Y=698
上面程序说明X轴电机动作254,y轴电机动作698,将电机A移动到坐标254,698
DIANJIA YUNSU SUDU 52M/S
上面程序说明电机A做匀速转动,速度是20m/s
MOV A=56,CHANGZHOU JIASUDU 2M/S,
上面程序说明电机B最大伸长的长度是56mm,且长度变化,其变化的加速度是2M/S
MOV B=12,DUANZHOU JIASUDU 2M/S,
上面程序说明电机B最小伸长的长度是56mm,且长度变化,其变化的加速度是2M/S
如果想画一个曲线,就需要调节圆管的长度,让长度变加速增大,或变加速减小。