Computer Logical Organization 简明教程
Computer Logical Organization - Overview
在现代电子领域,术语 Digital 通常与计算机有关,因为术语 Digital 源自计算机通过计数数字执行运算的方式。多年来,数字电子技术仅应用于计算机系统。但现在,数字电子技术已用于许多其他应用。以下是大量使用 Digital electronics 的一些示例。
-
Industrial process control
-
Military system
-
Television
-
Communication system
-
Medical equipment
-
Radar
-
Navigation
Analog Signal
将 analog signal 定义为具有连续值的信号。模拟信号可以有无限多个不同的值。在现实世界中,自然界中观察到的大多数事物都是模拟的。以下是模拟信号的示例。
-
Temperature
-
Pressure
-
Distance
-
Sound
-
Voltage
-
Current
-
Power
Digital Signal
将 digital signal 定义为仅有有限数量的离散值的信号。数字信号不是连续信号。在数字电子计算器中,输入借助开关给出。该输入被转换为具有两个离散值或级别的电信号。其中一个可以称为低电平,另一个称为高电平。信号将始终为这两个电平之一。这种类型的信号称为数字信号。以下是数字信号的示例。
-
Binary Signal
-
Octal Signal
-
Hexadecimal Signal
Digital Number System
数字系统只能理解位置数系,其中有一些符号称为数字,并且这些符号根据它们在数字中所处的位置表示不同的值。
使用以下方法可以确定数字中每个数字的值:
-
The digit
-
数字在数字中的位置
-
数字系统的基数(基数定义为该数字系统中可用的所有数字)。
Decimal Number System
我们日常生活中所使用的数字系统就是十进制数字系统。十进制数字系统基数为 10,因为其使用了 0 至 9 共 10 个数字。在十进制数字系统中,小数点左边的各个位置依次表示个位、十位、百位、千位等。
每个位置都表示基数(10)的特定幂。例如,十进制数字 1234 由个位上的数字 4、十位上的数字 3、百位上的数字 2 和千位上的数字 1 组成,其值可以写成:
(1×1000) + (2×100) + (3×10) + (4×l)
(1×103) + (2×102) + (3×101) + (4×l00)
1000 + 200 + 30 + 1
1234
作为一名计算机程序员或 IT 专业人士,你应对计算机中经常使用的以下数字系统有所了解。
S.N. |
Number System & Description |
1 |
*二进制数字系统*基数为 2。使用的数字:0、1 |
2 |
*八进制数字系统*基数为 8。使用的数字:0 至 7 |
3 |
*十六进制数字系统*基数为 16。使用的数字:0 至 9,使用的字母:A-F |
Binary Number System
特性
-
使用两个数字,0 和 1。
-
也称为基数 2 数字系统
-
二进制数字中的每个位置都表示基数(2)的 0 次幂。示例:2^0
-
二进制数字中的最后一个位置表示基数(2)的 x 次幂。示例:2^x,其中 x 表示最后一个位置 - 1。
Octal Number System
特性
-
Uses eight digits, 0,1,2,3,4,5,6,7.
-
也称为基数 8 数字系统
-
八进制数中的每个位置表示基数 (8) 的 0 次幂。示例:80
-
八进制数中的最后一位表示基数 (8) 的 x 次幂。示例:8x,其中 x 表示最后一位 - 1。
Hexadecimal Number System
特性
-
使用 10 个数字和 6 个字母 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
-
从 10 开始,字母表示数字。A = 10、B = 11、C = 12、D = 13、E = 14、F = 15。
-
也称为 16 进制数系统。
-
十六进制数字中的每个位置都表示基数(16)的 0 次幂。示例 16^0。
-
十六进制数字中的最后一个位置表示基数(16)的 x 次幂。示例 16^x,其中 x 表示最后一个位置 - 1。
Example −
十六进制数:19FDE16
计算十进制当量 −
Step |
Hexadecimal Number |
Decimal Number |
Step 1 |
19FDE16 |
1 × 164) + (9 × 163) + (F × 162) + (D × 161) + (E × 16010 |
Step 2 |
19FDE16 |
1 × 164) + (9 × 163) + (15 × 162) + (13 × 161) + (14 × 16010 |
Step 3 |
19FDE16 |
(65536 + 36864 + 3840 + 208 + 14)10 |
Step 4 |
19FDE16 |
10646210 |
Note − 19FDE16 通常写为 19FDE。
Number System Conversion
转换数字从一个进制到另一个进制有许多方法或技巧。我们将演示以下内容 −
-
十进制到其他进制系统
-
其他进制系统到十进制
-
其他进制系统到非十进制
-
短截方法 − 二进制到八进制
-
短截方法 − 八进制到二进制
-
短截方法 − 二进制到十六进制
-
短截方法 − 十六进制到二进制
Decimal to Other Base System
步骤
-
Step 1 ——将要转换的十进制数除以新基数。
-
Step 2 − 从步骤 1 中得到余数作为新基数的最低位(最不重要的数位)。
-
Step 3 ——将前一次除法的商再除以新基数。
-
Step 4 ——将步骤 3 中的余数记录为新基数数的下一个数字(向左)。
重复步骤 3 和 4,从右向左取余数,直到步骤 3 中的商变成 0。
这样得到的最后的余数就是新基数数的最高有效数字 (MSD)。
Other Base System to Decimal System
步骤
-
Step 1 ——确定每个数字的列(位置)值(这取决于数字的位置和数制系统的基数)。
-
Step 2 ——将步骤 1 中得到的列值与位于相应列中的数字相乘。
-
Step 3 − 计算第 2 步中所得乘积之和。和数即为十进制等值。
Other Base System to Non-Decimal System
步骤
-
Step 1 − 将原始数字转换为十进制数(以 10 为基)。
-
Step 2 − 将获得的十进制数转换为新的基数。
Shortcut method - Octal to Binary
步骤
-
Step 1 − 将每个八进制数位转换为 3 位二进制数(在此转换中,可以将八进制数位视为十进制)。
-
Step 2 − 将所有所得二进制组(每组 3 位)合并为一个二进制数。
Binary Codes
在编码中,当数字、字母或单词由一组特定符号表示时,我们说该数字、字母或单词正在被编码。一组符号称为代码。数字数据表示为二进制位组并存储和传输。该组也称为 binary code 。二进制代码由数字和字母数字字母表示。
Advantages of Binary Code
以下是二进制代码提供的优点列表。
-
二进制代码适用于计算机应用程序。
-
二进制代码适用于数字通信。
-
二进制代码简化了使用二进制代码的数字电路的分析和设计。
-
由于仅使用 0 和 1,因此实现变得容易。
Classification of binary codes
这些代码大致分为以下四类。
-
Weighted Codes
-
Non-Weighted Codes
-
Binary Coded Decimal Code
-
Alphanumeric Codes
-
Error Detecting Codes
-
Error Correcting Codes
Weighted Codes
加权二进制码是遵循权重位置原则的二进制码。数字的每个位置代表一个特定的权重。数个代码系统可用于表示十进制位数 0 到 9。在这些代码中,每个十进制位数表示为一个由四位比特组成的组。
Non-Weighted Codes
在这种类型的二进制码中,不分配位置权重。非加权码的示例是 XS-3 码和格雷码。
Excess-3 code
XS-3 码也被称为 XS-3 码。它是一种非加权码,用于表示十进制数。XS-3 码字是从 8421 BCD 码字中派生出来的,在 8421 中,每个码字加上 (0011)2 或 (3)10。XS-3 码的获得方式如下所述 -
Binary Coded Decimal (BCD) code
在这个码中,每个十进制位数都表示为一个 4 位二进制数。BCD 是一种用二进制码表示每个十进制位数的方法。在 BCD 中,使用四位比特,我们可以表示十六个数字(0000 到 1111)。但在 BCD 码中,只使用了前十个(0000 到 1001)。其余六个代码组合即 1010 到 1111 在 BCD 中无效。
Alphanumeric codes
一个二进制位或比特仅能表示两个符号,因为它只有两种状态'0' 或'1'。但这对于两台计算机之间的通信是不够的,因为我们需要更多的符号进行通信。这些符号是表示 26 个大写和小写字母、0 到 9 的数字、标点符号和其他符号所必需的。
字母数字代码是表示数字和字母字符的代码。此类代码通常也会表示其他字符,如符号以及传达信息所需的各种指令。字母数字代码至少应表示字母表的 10 个数字和 26 个字母,即总共 36 个项目。以下三个字母数字代码非常普遍地用于数据表示。
-
美国信息交换标准代码 (ASCII)。
-
扩展二进制编码十进制交换码 (EBCDIC)。
-
Five bit Baudot Code.
ASCII 代码是 7 位代码,而 EBCDIC 是 8 位代码。ASCII 代码在世界范围内使用更普遍,而 EBCDIC 主要用于大型 IBM 计算机。
Codes Conversion
有许多方法或技术可以用来将代码从一种格式转换为另一种格式。我们将在本文中演示以下
-
Binary to BCD Conversion
-
BCD to Binary Conversion
-
BCD to Excess-3
-
Excess-3 to BCD
Binary to BCD Conversion
步骤
-
Step 1 将二进制数转换为十进制数。
-
Step 2 — 将十进制数转换为 BCD。
示例 − 将 (11101)2 转换为 BCD。
BCD to Binary Conversion
步骤
-
Step 1 — 将 BCD 数转换为十进制。
-
Step 2 — 将十进制转换为二进制。
示例 − 将 (00101001)BCD 转换为二进制。
Step 1 - Convert to BCD
BCD 数 − (00101001)BCD
计算十进制等价物。将每四位数字转换为一组,并为每一组获取十进制等价物。
Step |
BCD Number |
Conversion |
Step 1 |
(00101001)BCD |
00102 10012 |
Step 2 |
(00101001)BCD |
210 910 |
Step 3 |
(00101001)BCD |
2910 |
BCD 数 − (00101001)BCD = 十进制数 − 2910
Step 2 - Convert to Binary
用于十进制到二进制转换的长除法方法。
十进制数 − 2910
计算二进制等价——
Step |
Operation |
Result |
Remainder |
Step 1 |
29 / 2 |
14 |
1 |
Step 2 |
14 / 2 |
7 |
0 |
Step 3 |
7 / 2 |
3 |
1 |
Step 4 |
3 / 2 |
1 |
1 |
Step 5 |
1 / 2 |
0 |
1 |
如步骤 2 和 4 中所述,余数必须按相反的顺序排列,以便第一个余数成为最低有效位数 (LSD),最后一个余数成为最高有效位数 (MSD)。
十进制数 − 2910 = 二进制数 − 111012
结果
(00101001)BCD = (11101)2
Complement Arithmetic
在数字计算机中使用补码是为了简化减法运算和逻辑运算。对于每个基数-r 系统(基数 r 表示数字系统的基数),共有两种类型的补码。
S.N. |
Complement |
Description |
1 |
Radix Complement |
基数补码称为 r 补码 |
2 |
Diminished Radix Complement |
递减基数补码称为 (r-1) 补码 |
Binary Arithmetic
Octal Arithmetic
Hexadecimal Arithmetic
Hexadecimal Number System
十六进制数的特性如下:
-
使用 10 个数字和 6 个字母 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
-
从 10 开始,字母表示数字。A = 10、B = 11、C = 12、D = 13、E = 14、F = 15。
-
也称为 16 进制数系统。
-
十六进制数中的每个位置表示 0 次幂(16)。例如:160
-
十六进制数中的最后一个位置表示 x 次方(16)。其中 x 最后一个位置 - 1。
Example
十六进制数 - 19FDE16
计算十进制当量 −
Step |
Hexadecimal Number |
Decimal Number |
Step 1 |
19FDE16 |
1 × 164) + (9 × 163) + (F × 162) + (D × 161) + (E × 16010 |
Step 2 |
19FDE16 |
1 × 164) + (9 × 163) + (15 × 162) + (13 × 161) + (14 × 16010 |
Step 3 |
19FDE16 |
(65536 + 36864 + 3840 + 208 + 14)10 |
Step 4 |
19FDE16 |
10646210 |
Note − 19FDE16 通常写为 19FDE。
Boolean Algebra
布尔代数用于分析和简化数字(逻辑)电路。它只使用二进制数,即 0 和 1。它也被称为 Binary Algebra 或 logical Algebra 。布尔代数是由 George Boole 于 1854 年发明的。
Rule in Boolean Algebra
以下是布尔代数中使用的重要规则。
-
使用的变量只能有两个值。二进制 1 表示高电平,二进制 0 表示低电平。
-
变量的补码用上划线(-)表示。因此,变量 B 的补码表示为 。因此,如果 B = 0,则 = 1,如果 B = 1,则 = 0。
-
变量的或运算用它们之间的加号 (+) 表示。例如,A、B、C 的或运算表示为 A + B + C。
-
两个或更多变量的逻辑与运算用在它们之间写一个点来表示,例如 A.B.C。有时可以省略该点,例如 ABC。
Logic Gates
Combinational Circuits
组合电路是一种电路,我们在电路中组合不同的门,例如编码器、译码器、多路复用器和解复用器。组合电路的一些特性如下 -
-
组合电路在任何时间瞬间的输出仅取决于输入端子上的电平。
-
组合电路不使用任何存储器。输入的上一个状态不会对电路的当前状态产生任何影响。
-
组合电路可以有 n 个输入和 m 个输出。
Half Adder
半加器是一种有两个输入和两个输出的组合逻辑电路。半加器电路旨在将两个单比特二进制数 A 和 B 相加。它是加两个 single 位数字的基本构建模块。此电路有两个输出 carry 和 sum 。
N-Bit Parallel Adder
全加器只能将两个单数字二进制数连同进位输入一起相加。但在实际中,我们需要将比一个比特长得多的二进制数相加。要加两个 n 位二进制数,我们需要使用 n 位并行加法器。它使用了级联的多位全加器。上一位全加器的进位输出连接到下一位全加器的进位输入。
N-Bit Parallel Subtractor
可以通过取要减去的数的 1 或 2 的补数来进行减法。例如,可以通过将 B 的 1 或 2 的补数加到 A 来执行减法 (A-B)。这意味着我们可以使用二进制加法器来执行二进制减法。
Half Subtractors
半减法器是一种有两个输入和两个输出(差值和借位)的组合电路。它产生输入处两个二进制比特之间的差值,并且还生成一个输出(借位)以指示是否借用了 1。在减法 (A-B) 中,A 称为被减数位,B 称为减数位。
Full Subtractors
全减法器克服了半减法器的缺点。全减法器是具有三个输入 A、B、C 和两个输出 D 和 C' 的组合电路。A 是“被减数”、B 是“减数”、C 是前一阶段产生的“借位”,D 是差值输出,C' 是借位输出。
Multiplexers
多路复用器是一种特殊类型的组合电路。有 n 个数据输入、一个输出和 m 个选择输入,其中 2m = n。它是一种数字电路,可选择 n 个数据输入中的一个并将其路由到输出。n 个输入中之一的选择通过所选输入来完成。根据应用于所选输入的数字代码,从 n 个数据源中选择一个并将其传输到单个输出 Y。E 称为选通或使能输入,它对于级联非常有用。它通常是一个低电平有效端,这意味着在低电平时,它将执行所需的操作。
Demultiplexers
解复用器执行多路复用器的反向操作,即它接收一个输入并将其分配到多个输出上。它只有一个输入、n 个输出、m 个选择输入。一次只能通过选择线选择一个输出线,并且输入传输到所选输出线。解复用器等效于单刀多位开关,如图所示。
解复用器有多种变化。
-
1 : 2 demultiplexer
-
1 : 4 demultiplexer
-
1 : 16 demultiplexer
-
1 : 32 demultiplexer
Sequential Circuits
组合电路不使用任何存储器。因此,输入的上一个状态不会对电路的当前状态产生任何影响。但顺序电路具有存储器,因此输出可以根据输入而变化。此类电路使用上一个输入、输出、时钟和存储器单元。
S-R Flip Flop
本质上是使用 NAND 门的 S-R 锁存器,带有一个附加的 enable 输入。它还被称为电平触发 SR-FF。这种情况下,只有当使能输入 (E) 处于活动状态时,才会在输出中形成电路。简而言之,如果 E = 1,该电路将作为 S-R 锁存器工作,但如果 E = 0,输出不会发生变化。
Operation
S.N. |
Condition |
Operation |
1 |
S = R = 0 : No change |
如果 S = R = 0,则 NAND 门 3 和 4 的输出被迫变为 1。因此,R' 和 S' 都将等于 1。由于 S' 和 R' 是使用 NAND 门的基本 S-R 锁存器的输入,因此输出的状态不会发生变化。 |
2 |
*S = 0,R = 1,E = |
由于 S = 0,即 NAND-3 的输出 R' = 1 和 E = 1,即 NAND-4 的输出 S' = 0。因此,Qn+1 = 0 和 Qn+1 bar = 1。这是复位条件。 |
3 |
*S = 1,R = 0,E = |
NAND-3 的输出,即 R' = 0 和 NAND-4 的输出,即 S' = 1。因此,S-R NAND 锁存器的输出是 Qn+1 = 1 和 Qn+1 bar = 0。这是复位条件。 |
4 |
*S = 1,R = 1,E = |
由于 S = 1,R = 1 和 E = 1,NAND 门 3 和 4 的输出都是 0,即 S' = R' = 0。因此, Race 条件将发生在基本 NAND 锁存器中。 |
Master Slave JK Flip Flop
主从 JK FF 是两个 S-R FF 的级联,从第二个的输出到第一个的输入有反馈。主触发器是正面电平触发器。但由于时钟线中有反相器,从触发器将对负电平做出响应。因此,当时钟 = 1(正电平)时,主触发器处于活动状态,从触发器处于非活动状态。而当时钟 = 0(低电平)时,从触发器处于活动状态,主触发器处于非活动状态。
Operation
S.N. |
Condition |
Operation |
1 |
J = K = 0 (No change) |
当时钟 = 0 时,从触发器变为活动状态,主触发器变为非活动状态。但由于 S 和 R 输入没有改变,因此从输出也将保持不变。因此,如果 J = K =0,输出将不会改变。 |
2 |
J = 0 and K = 1 (Reset) |
时钟 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。因此,主触发器的输出变为 Q1 = 0 和 Q1 bar = 1。也就是说,S = 0 和 R =1。时钟 = 0 − 从触发器处于活动状态,主触发器处于非活动状态。因此,从触发器的输出变为 Q = 0 和 Q bar = 1。时钟再次 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。因此,即使将改变后的输出 Q = 0 和 Q bar = 1 反馈给主触发器,其输出仍将为 Q1 = 0 和 Q1 bar = 1。也就是说,S = 0 和 R = 1。因此,当时钟 = 0、从触发器变为活动状态时,从触发器的输出仍将保持 Q = 0 和 Q bar = 1。因此,我们从主从触发器获得了稳定的输出。 |
3 |
J = 1 and K = 0 (Set) |
时钟 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。因此,主触发器的输出变为 Q1 = 1 和 Q1 bar = 0。也就是说,S = 1 和 R =0。时钟 = 0 − 从触发器处于活动状态,主触发器处于非活动状态。因此,从触发器的输出变为 Q = 1 和 Q bar = 0。时钟再次 = 1 − 然后可以表明从触发器的输出已稳定为 Q = 1 和 Q bar = 0。 |
4 |
J = K = 1 (Toggle) |
时钟 = 1 − 主触发器处于活动状态,从触发器处于非活动状态。主触发器的输出将会切换。因此,S 和 R 也将被反转。时钟 = 0 − 从触发器处于活动状态,主触发器处于非活动状态。从输出将会切换。这些改变的输出被返回到主触发器的输入。但由于时钟 = 0,主触发器仍然处于非活动状态。因此,它不会对这些改变的输出作出反应。这避免了导致周围竞争条件的多次切换。主从触发器将会避开围绕竞争的条件。 |
Digital Registers
触发器是一种 1 位存储单元,可用于存储数字数据。为了以位的数量增加存储容量,我们必须使用一组触发器。这样的一组触发器被称为 Register 。 n-bit register 将包括 n 个触发器,并能够存储 n-bit 字。
寄存器中的二进制数据可以在该寄存器中从一个触发器移动到另一个触发器。允许进行此类数据传输的寄存器被称为 shift registers 。移位寄存器的操作模式有四种。
-
Serial Input Serial Output
-
Serial Input Parallel Output
-
Parallel Input Serial Output
-
Parallel Input Parallel Output
Serial Input Serial Output
让所有触发器最初都处于复位条件,即 Q3 = Q2 = Q1 = Q0 = 0。如果将四位二进制数 1 1 1 1 输入寄存器,则应将此数字应用于 Din 位,首先应用 LSB 位。FF-3 的 D 输入即 D3 连接到串行数据输入 Din 。FF-3 输出即 Q3 连接到下一个触发器输入,即 D2,以此类推。
Operation
在应用时钟信号之前,令 Q3 Q2 Q1 Q0 = 0000,并将要输入数字的 LSB 位应用于 Din。所以 Din = D3 = 1。应用时钟。在时钟的第一个下降沿,FF-3 被置位,寄存器中存储的字为 Q3 Q2 Q1 Q0 = 1000。
将下一位应用于 Din。所以 Din = 1。时钟的下一次负沿到来后,FF-2 将置位,存储的字将变为 Q3 Q2 Q1 Q0 = 1100。
将要存储的下一位即 1 应用于 Din。应用时钟脉冲。时钟的第三个负沿到来后,FF-1 将置位,输出将修改为 Q3 Q2 Q1 Q0 = 1110。
类似地,使用 Din = 1 并随着时钟的第四个负沿到来,寄存器中存储的字为 Q3 Q2 Q1 Q0 = 1111。
Serial Input Parallel Output
-
在这样的操作类型中,数据按串行方式输入,并以并行方式输出。
-
数据逐位加载。在数据加载期间,输出被禁用。
-
一旦数据加载完成,所有触发器都包含了它们所需的数据,输出被启用,以便所有加载的数据在同一时间被所有输出线上提供。
-
加载一个四位字需要 4 个时钟周期。因此,SIPO 模式的操作速度与 SISO 模式相同。
Parallel Input Serial Output (PISO)
-
数据位以并行方式输入。
-
以下所示的电路是一个四位并行输入串行输出寄存器。
-
前一个触发器的输出通过组合电路连接到下一个触发器的输入。
-
二进制输入字 B0、B1、B2、B3 通过相同的组合电路施加。
-
此电路可以工作在两种模式中,即移位模式或加载模式。
Load mode
当移位/加载禁止线为低电平 (0) 时,与门 2、4 和 6 变得活跃,它们将 B1、B2、B3 位传递到相应的触发器。在时钟的下降沿,二进制输入 B0、B1、B2、B3 将被加载到相应的触发器中。从而进行并行加载。
Parallel Input Parallel Output (PIPO)
在这种模式下,4 位二进制输入 B0、B1、B2、B3 分别应用到四个触发器的各自数据输入 D0、D1、D2、D3。一旦施加负时钟沿,输入二进制位将同时加载到触发器中。加载的位将同时出现在输出侧。只有时钟脉冲对于加载所有位是必不可少的。
Bidirectional Shift Register
-
如果一个二进制数向左移一位,则相当于将原始数乘以 2。类似地,如果一个二进制数向右移一位,则相当于将原始数除以 2。
-
因此,如果我们想使用移位寄存器来乘法和除法给定的二进制数,那么我们就应该能够将数据向左或向右移动。
-
这样的寄存器被称为双向寄存器。四位双向移位寄存器如图所示。
-
有两个串行输入,即串行右移数据输入 DR 和串行左移数据输入 DL,以及一个模式选择输入 (M)。
Operation
S.N. |
Condition |
Operation |
1 |
With M = 1 − Shift right operation |
如果 M = 1,则与门 1、3、5 和 7 被启用,而其余的与门 2、4、6 和 8 将被禁用。在施加的时钟脉冲时,DR 处的数据从 FF-3 到 FF-0 逐位向右移位。因此,当 M = 1 时,我们获得串行右移操作。 |
2 |
With M = 0 − Shift left operation |
当模式控制 M 连接到 0 时,则与门 2、4、6 和 8 被启用,而 1、3、5 和 7 被禁用。在时钟脉冲的应用下,DL 的数据以逐位的方式从 FF-0 左移到 FF-3。因此,M = 0 时,我们得到了序列右移操作。 |
Universal Shift Register
只能将数据在一个方向移动的移位寄存器称为单向移位寄存器。可以将数据在两个方向移动的移位寄存器称为双向移位寄存器。运用相同的逻辑,一个可以将数据在两个方向移动并将其并行加载的移位寄存器称为通用移位寄存器。移位寄存器能够执行以下操作:
-
Parallel loading
-
Left Shifting
-
Right shifting
对于并行加载操作,模式控制输入连接到逻辑 1,而对于串行移位,其连接到 0。当模式控制引脚连接到接地时,通用移位寄存器充当双向寄存器。对于串行左操作,输入应用于图中所示与与门 1 相连的串行输入。而对于移位右操作,串行输入应用于 D 输入。
Digital Counters
计数器是一种顺序电路。用于计数脉冲的数字电路称为计数器。计数器是触发器的最广泛应用。它是一组带有时钟信号的触发器。计数器有两种类型。
-
Asynchronous or ripple counters.
-
Synchronous counters.
Asynchronous or ripple counters
图中所示为 2 位波纹上升计数器的逻辑图。正在使用触发器(T)翻转。但我们也可以使用 JK 触发器,将 J 和 K 永久连接到逻辑 1。外部时钟应用于触发器 A 的时钟输入,QA 输出应用于下一触发器(即 FF-B)的时钟输入。
Operation
S.N. |
Condition |
Operation |
1 |
Initially let both the FFs be in the reset state |
QBQA = 00 initially |
2 |
After 1st negative clock edge |
一旦第一个负时钟沿出现,FF-A 将翻转,QA 将等于 1。QA 连接到 FF-B 的时钟输入。由于 QA 从 0 变为 1,FF-B 将其视为正时钟沿。QB 没有变化,因为 FF-B 是负沿触发 FF。QBQA = 01 在第一个时钟脉冲后。 |
3 |
After 2nd negative clock edge |
在第二个负时钟沿到达时,FF-A 再次翻转,QA = 0。QA 中的变化充当 FF-B 的负时钟沿。所以它也会翻转,QB 将为 1。QBQA = 10 在第二个时钟脉冲后。 |
4 |
After 3rd negative clock edge |
在第 3 个负时钟沿到达时,FF-A 再次翻转,QA 从 0 变成 1。由于这是一个正向变化,FF-B 不对此做出响应并保持非活动状态。因此,QB 不变,并继续等于 1。QBQA = 11 在第三个时钟脉冲后。 |
5 |
After 4th negative clock edge |
在第 4 个负时钟沿到达时,FF-A 再次翻转,QA 从 0 变成 1。QA 中的这个负变化充当 FF-B 的时钟脉冲。因此,它翻转将 QB 从 1 更改为 0。QBQA = 00 在第四个时钟脉冲后。 |
Synchronous counters
如果“时钟”脉冲同时应用于计数器中的所有触发器,则这样的计数器称为同步计数器。
Operation
S.N. |
Condition |
Operation |
1 |
Initially let both the FFs be in the reset state |
QBQA = 00 initially. |
2 |
After 1st negative clock edge |
一旦第一个负时钟沿出现,FF-A 将翻转,QA 将从 0 变为 1。但在负时钟沿出现时,QA、JB = KB = 0。因此,FF-B 不会改变其状态。因此,QB 将保持为 0。QBQA = 01 在第一个时钟脉冲后。 |
3 |
After 2nd negative clock edge |
在第二个负时钟沿到达时,FF-A 再次翻转,QA 从 1 变为 0。但在这一刻,QA 为 1。因此,JB = KB = 1,FF-B 将翻转。因此,QB 从 0 变为 1。QBQA = 10 在第二个时钟脉冲后。 |
4 |
After 3rd negative clock edge |
在第三个下降时钟沿出现时,FF-A 将从 0 翻转到 1,但 FF-B 没有状态变化。QBQA = 11 在第三个时钟脉冲后。 |
5 |
After 4th negative clock edge |
在下一次时钟脉冲出现时,QA 将从 1 变为 0,因为 QB 也将从 1 变为 0。QBQA = 00 在第四个时钟脉冲后。 |
UP/DOWN Counter
上升计数器和下降计数器结合在一起得到一个上升/下降计数器。还提供了模式控制 (M) 输入以选择上升或下降模式。必须设计并使用组合电路,放在每对触发器之间,以实现上升/下降操作。
-
Type of up/down counters
-
UP/DOWN ripple counters
-
UP/DOWN synchronous counter
UP/DOWN Ripple Counters
在 UP/DOWN 纹波计数器里,所有 FF 以切换模式运行。因此,要使用 T 触发器或 JK 触发器。MSB 触发器直接接收时钟。但每个其他 FF 的时钟都从前一个 FF 的 (Q = Q_bar) 输出获得。
-
UP counting mode (M=0) − 如果要实现上升计数,则连接前一个 FF 的 Q 输出到下一级的时钟。对于这种模式,模式选择输入 M 为逻辑 0 (M = 0)。
-
DOWN counting mode (M=1) − 如果 M = 1,则前一个 FF 的 Q_bar 输出连接到下一个 FF。这将使计数器以计数模式运行。
Example
3 位二进制上升/下降纹波计数器。
-
3 位 − 因此需要三个 FF。
-
上升/下降 − 所以模式控制输入是必要的。
-
对于上升纹波计数器,连接前一个 FF 的 Q 输出到下一个的时钟输入。
-
对于上升纹波计数器,连接前一个 FF 的 Q 输出到下一个的时钟输入。
-
对于下降纹波计数器,连接前一个 FF 的 Q_bar 输出到下一个的时钟输入。
-
让模式控制输入 M 控制选择前一个 FF 的 Q 和 Q_bar 输出,使得:如果 M = 0,则上升计数。所以连接 Q 到 CLK。如果 M = 1,则下降计数。所以连接 Q_bar 到 CLK。
Operation
S.N. |
Condition |
Operation |
1 |
Case 1 − With M = 0 (Up counting mode) |
如果 M = 0 和 M_bar = 1,那么图中的与门 1 和 3 将被启用,而与门 2 和 4 将被禁用。因此,QA 连接到 FF-B 的时钟输入,QB 连接到 FF-C 的时钟输入。这些连接与正常上升计数器的连接相同。因此,当 M = 0 时电路作为上升计数器工作。 |
2 |
Case 2: With M = 1 (Down counting mode) |
如果 M = 1,则图中的与门 2 和 4 被启用,而与门 1 和 3 被禁用。因此,QA_bar 连接到 FF-B 的时钟输入,QB_bar 连接到 FF-C 的时钟输入。这些连接将产生一个下降计数器。因此,当 M = 1 时,电路作为下降计数器工作。 |
Memory Devices
存储器就像人脑。用于存储数据和指令。计算机内存是计算机中的存储空间,其中要处理的数据和处理所需的指令存储在其中。
存储器被分成许多小部分。每个部分称为一个单元。每个位置或单元都有一个唯一的地址,范围从零到存储器大小减一。
例如,如果计算机有 64k 个字,则该存储器单元有 64 * 1024 = 65536 个存储器位置。这些位置的地址范围从 0 到 65535。
内存主要分为两种类型
-
Internal Memory − 高速缓存和主/主存储器
-
External Memory − 磁盘/光盘等
当我们从上到下时,内存层次结构的特征如下。
-
存储容量增加。
-
每位存储成本降低。
-
CPU 访问内存的频率降低。
-
CPU 的访问时间增加。
RAM
RAM 构成 CPU 的内部存储器,用于存储数据、程序和程序结果。它是读写内存。它被称为随机存取存储器 (RAM)。
由于 RAM 中的访问时间与该字的地址无关,即存储器内部的每个存储位置都与其他位置一样容易到达,并且需要花费相同的时间。我们可以随机且极其快速地进入内存,但也可以非常昂贵。
RAM 是易失性的,即当我们关闭计算机或断电时,存储在其中的数据将丢失。因此,计算机通常使用备用不间断电源系统 (UPS)。RAM 很小,无论是在物理尺寸方面还是能够容纳的数据量方面。
RAM 分为两种类型
-
Static RAM (SRAM)
-
Dynamic RAM (DRAM)
ROM
ROM 代表只读存储,即只能读取但无法写入的存储器。这种类型的存储器是非易失性的。信息在制造过程中永久存储在这样的存储器中。
ROM 存储计算机第一次通电时启动计算机所需的指令,此操作称为引导。ROM 芯片不仅用于计算机,还用于洗衣机和微波炉等其他电子设备。
以下是各种类型的 ROM:
PROM (Programmable Read Only Memory)
· PROM 是用户只能修改一次的只读存储器。用户购买空白 PROM,并使用 PROM 编程器输入所需内容。PROM 芯片内部有小型的保险丝,在编程过程中被烧断。它只能编程一次,无法擦除。
Serial Access Memory
顺序访问表示系统必须从存储器地址的开始搜索存储设备,直到找到所需的数据片段为止。支持此类访问的存储设备称为顺序访问存储器或串行访问存储器。磁带是串行访问存储器的示例。
Cache Memory
高速缓存是能够加快 CPU 速度的超高速半导体存储器。它充当 CPU 和主存储器之间的缓冲区。它用于保存 CPU 最常使用的那些数据和程序部分。操作系统将数据和程序的部分从磁盘传输到高速缓存,CPU 可以从该部分访问它们。
Disadvantages
-
高速缓存存储器的容量有限。
-
It is very expensive.
虚拟存储器是一种技术,允许执行尚未完全在内存中可用的进程。此方案的主要可见优势是程序可以大于物理存储器。虚拟存储器是用户逻辑存储器和物理存储器之间的分离。
这种分离允许在仅提供较小物理存储器时,为程序员提供极大的虚拟存储器。当整个程序不需要完全加载到主存储器中时,以下是这种情况。
-
用户编写的错误处理例程仅在数据或计算中发生错误时才使用。
-
程序的某些选项和功能可能很少使用。
-
即使实际上只使用了少量表格,也会为许多表格分配固定数量的地址空间。
-
执行仅部分位于内存中的程序的能力会抵消许多好处。
-
将每个用户程序加载或换入内存所需的 I/O 数目将减少。
-
程序将不再受可用物理内存量的限制。
-
每个用户程序可以占用更少的物理内存,可以在同一时间运行更多的程序,从而相应提升 CPU 利用率和吞吐量。
Auxiliary Memory
辅助内存的尺寸远大于主内存,但速度较慢。它通常存储系统程序、指令和数据文件。它还称为二级存储器。当主内存容量超出时,它还可用作溢出/虚拟内存。二级存储器无法被处理器直接访问。先将辅助内存的数据/信息传输到主内存,CPU 随后可以访问该信息。辅助内存的特点如下所列:
-
Non-volatile memory − 断电时数据不会丢失。
-
Reusable − 数据永久保存在二级存储器中,除非被用户覆盖或删除。
-
Reliable − 由于二级存储器设备的高物理稳定性,二级存储器中的数据是安全的。
-
Convenience − 借助于计算机软件,经过授权的人员可以快速定位和访问数据。
-
Capacity − 二级存储器可以在多磁盘组中存储海量数据。
-
Cost − 将数据存储在磁带或磁盘上比主内存便宜得多。
CPU Architecture
微处理器与传统计算机中使用的中央处理单元 CPU 同义。微处理器 (MPU) 充当执行以下任务的设备或设备组。
-
communicate with peripherals devices
-
provide timing signal
-
direct data flow
-
按照内存中的指令执行计算机任务
Flags
标志是可编程的。可以通过使用指令从寄存器存储和传输数据。ALU 包括五个触发器,这些触发器根据累加器和其他寄存器中的数据条件进行设置和复位。
-
S (Sign) flag − 在执行算术运算之后,如果结果的位 D7 为 1,则设置符号标志。它用于有符号数。在给定的字节中,如果 D7 为 1 表示负数。如果它为零表示正数。
-
Z (Zero) flag − 如果 ALU 运算结果为 0,则设置零标志。
-
AC (Auxiliary Carry) flag − 在算术运算中,当位 D3 产生进位并传递给位 D4 时,设置 AC 标志。该标志仅在内部 BCD 运算中使用。
-
P (Parity) flag − 在算术或逻辑运算之后,如果结果有偶数个 1,则设置标志。如果它有奇数个 1,则复位标志。
-
C (Carry) flag − 如果算术运算结果为进位,则设置进位标志,否则复位。
Register section
它基本上是一个存储设备,通过使用指令从寄存器传输数据。
-
Stack Pointer (SP) - 堆指针也是一个用作内存指针的 16 位寄存器。它指向读/写内存中的一个内存位置,称为堆栈。在程序执行期间,有时会将数据存储在堆栈中。堆栈的开始定义为在堆栈指针中加载一个 16 位地址。
-
Program Counter (PC) - 这个 16 位寄存器处理第四个操作以对指令的执行进行排序。此寄存器也是一个内存指针。内存位置具有 16 位地址。它用于存储执行地址。程序计数器的作用是从下一个字节将被提取的内存地址开始的。
-
Storage registers - 这些寄存器在程序执行期间存储 8 位数据。这些寄存器标识为 B、C、D、E、H、L。它们可以组合为寄存器对 BC、DE 和 HL 执行一些 16 位操作。
Time and Control Section
此单元负责根据时钟脉冲同步微处理器操作,并生成微处理器和外围设备之间平稳通信所需的控制信号。RD 栏和 WR 栏信号是同步脉冲,指示数据是否在数据总线上可用。控制单元负责控制微处理器、存储器和外围设备之间的数据流。
PIN diagram
所有信号都可以分为六组
S.N. |
Group |
Description |
1 |
Address bus |
8085 微处理器具有 8 条信号线,A15 - A8,它们是单向的,用作高阶地址总线。 |
2 |
Data bus |
信号线 AD7 - AD0 是双向的,用于双重目的。它们用作低阶地址总线和数据总线。 |
3 |
Control signal and Status signal |
控制信号 RD bar - 它是一个读取控制信号(低电平有效)。如果它处于活动状态,则读取内存数据。 WR bar - 它是一个写入控制信号(低电平有效)。它在写入所选内存时处于活动状态。状态信号 ALU (Address Latch Enable) - 当 ALU 高时。8085 微处理器使用地址总线。当 ALU 低电平时。8085 微处理器使用数据总线。 IO/M bar - 这是一个状态信号,用于区分输入/输出和存储器操作。当它高时,表示输入/输出操作;当它低时,表示存储器操作。 S1 and S0 - 这些状态信号与输入/输出和内存栏类似,可以识别各种操作,但它们在小型系统中很少使用。 |
4 |
Power supply and frequency signal |
Vcc - +5v 电源。 Vss - 接地参考。 X, X - 一个晶体连接在这两个引脚上。频率在内部除以两个,在 3 MHz 的系统中工作,晶体的频率应为 6 MHz。 CLK out - 此信号可用作其他设备的系统时钟。 |
5 |
Externally initiated signal |
INTR (i/p) - 中断请求。 INTA bar (o/p) - 它用作确认中断。 TRAP (i/p) - 这是不可屏蔽中断,具有最高优先级。 HOLD (i/p) - 它用于暂停执行程序。 HLDA (o/p) - 暂停确认。 READY (i/p) - 此信号用于延迟微处理器读取或写入周期,直到响应速度慢的外围设备准备好接收或发送数据。 RESET IN bar - 当此引脚上的信号变低时,程序计数器将被设置为零,总线将变成三态,MPU 将被重置。 RESET OUT - 此信号表示 MPU 正在被重置。此信号可用于重置其他设备。 RST 7.5, RST 6.5, RST 5.5 (Request interrupt) - 它用于将程序控制转移到特定的内存位置。它们的优先级高于 INTR 中断。 |
6 |
Serial I/O ports |
8085 微处理器具有两个信号来实现串行传输,即串行输入数据和串行输出数据。 |
Variable Instruction Formats
这些指令格式是指令长度根据操作码和地址说明符而变化的。例如,VAX 指令在 1 到 53 字节之间变化,而 X86 指令在 1 到 17 字节之间变化。
Addressing Modes
寻址模式提供了处理器访问给定数据地址的不同方法。操作的数据存储在内存位置中,每条指令都需要某些要操作的数据。有各种指定数据地址的技术。这些技术称为寻址模式。
-
Direct addressing mode − 在直接寻址模式中,操作数的地址在指令中给出,并且数据在指令中提供的内存位置中可用。我们将把这些数据移动到所需的位置。
-
Indirect addressing mode − 在间接寻址模式中,指令指定一个寄存器,其中包含操作数的地址。可通过间接寻址模式访问内部 RAM 和外部 RAM。
-
Immediate addressing mode − 在直接寻址模式中,直接数据在操作数中给出,将数据移动到累加器中。它非常快。
-
Relative addressing mode − 在相对地址模式中,有效地址由索引模式确定,方法是使用程序计数器代替通用处理器寄存器。此模式称为相对地址模式。
-
Index addressing mode − 在索引地址模式中,操作数的有效地址通过将内容值添加到寄存器的内容中来生成。该模式称为索引地址模式。