Download presentation
Presentation is loading. Please wait.
Published byMabel Roberts Modified over 9 years ago
1
CSC321 Where We’ve Been Binary representations Boolean logic Logic gates – combinational circuits Flip-flops – sequential circuits Complex gates – modules Circuit design techniques Assembly language programming
2
CSC321 What We Can Do Create digital systems –Interconnection of modules to accomplish a specific task –Through an appropriate set of modules and connections we can create a digital computer –Rather than show the circuits in all their glorious detail we use an abstract representation
3
CSC321 Architectural Functional Block Diagram
4
CSC321 So What? A digital computer is a fascinating thing in and of itself but somewhat useless It is the job of the programmer to make it do something useful The programmer’s job is to supply specific, detailed instructions to move and manipulate binary data patterns within the architecture to accomplish a meaningful task
5
CSC321 Sounds Easy The problem is that we [the programmers] don’t want to be burdened with the knowledge of gates, registers, flip-flops, etc. So, we describe the architecture in terms of various parameters useful to the programmer Note that “the programmer” may not be an “applications programmer” – it may be a “language compiler writer”, for example
6
CSC321 Descriptive Parameters The set of registers within the architecture –The names and functions (uses) of the registers The set of operations available for moving data between registers and manipulating data contained within registers –Microoperations The method of specifying the sequence of execution of the microoperations Note that this is a level lower than assembly language
7
CSC321 Microoperations To describe the operations we use a language called Register Transfer Language We [as programmers] assume that the logic circuits [combinational and/or sequential] are available to perform the “transfers”
8
CSC321 Register Transfer Language A register is nothing but a small, fast piece of memory A system for expressing in symbolic form the micro-operation sequences among the registers of a digital module Note [again] that this is not Assembly Language!!!
9
CSC321 Register Transfer Language (RTL) Registers are designated by capital letters –MAR – Memory Address Register –PC – Program Counter –IR – Instruction Register –Rx – General purpose register –etc. Bits within registers are numbered 0 to n-1 (n-bit register) starting at the LSB (rightmost bit) What are registers made of?
10
CSC321 Register Representations (Pictorial) R1 76543210 07 R2 0150 R2(H)R2(L) 78
11
CSC321 Register Transfers Move the data from one register to another The bit pattern that is in register R1 is copied into register R2 –Again, we are assured that the circuitry required to perform the transfer is available –Implies a parallel load operation R1R2
12
CSC321 Conditional Transfer Conditionally move the data from one register to another The bit pattern that is in register R1 is copied into register R2 if the control signal P is high (1) –This isn’t a Java “if/then” statement! –Again, we are assured that the circuitry required to perform the transfer is available –Implies a parallel load operation R1if (P = 1) then R2
13
CSC321 Control Function Conditionally move the data from one register to another Same meaning as the if/then statement P may be [typically is] a complex logic expression/combinational circuit R1P: R2
14
CSC321 Hardware Implication R1P: R2 Control circuit R2 R1 clock PLoad n clock load Rising edge of clock sets the load signal Next rising edge cause the transfer to occur
15
CSC321 Parallel Operations Some microoperations take multiple clock cycles (periods) Some microoperations can be performed simultaneously (in parallel) –During the same clock edge transition –It’s this kind of operation that distinguishes between computers and “super computers” R1, R3P: R2R0
16
CSC321 Data Paths We’ve been assuming that the circuitry to perform the transfers exists Two choices for realizing this assumption
17
CSC321 Data Paths Lots and lots of little wires Every register pair that can transfer data must be wired together 3210 C0C0 C1C1 C2C2 C3C3 register C 3210 B0B0 B1B1 B2B2 B3B3 register B 3210 A0A0 A1A1 A2A2 A3A3 register A 3210 D0D0 D1D1 D2D2 D3D3 register D You would have to do this for all registers!
18
CSC321 Data Paths Common bus –A set of n wires (for n-bit register transfers) shared by all registers –Registers take turns putting their bit patterns onto the bus
19
CSC321 Bus Implementation 3210321032103210 3210 4 x 1 MUX 3210 4 x 1 MUX 3210 4 x 1 MUX 3210 4 x 1 MUX A0A0 A1A1 A2A2 A3A3 B0B0 B1B1 B2B2 B3B3 C0C0 C1C1 C2C2 C3C3 D0D0 D1D1 D2D2 D3D3 A0A0 B0B0 C0C0 D0D0 A1A1 B1B1 C1C1 D1D1 A2A2 B2B2 C2C2 D2D2 A3A3 B3B3 C3C3 D3D3 bit 0 bit 1 bit 2 bit 3 select 0 select 1 register Dregister Cregister Bregister A
20
CSC321 Bus Implementation Completing the transfer (we now have data bits from a register on the bus) –Simple – we just connect the bus data lines to the inputs of the registers –The data is then available to all registers on the bus –We activate the Load line for the actual destination register
21
CSC321 Register Transfer Language In long-hand: In short-hand Bus activation is implied R1, R2BUS R1R2
22
CSC321 Three-State Gates In constructing the bus we used multiplexers –Convenient but expensive in terms of size and money An alternative is the three-state gate –Similar to the logic gates we’ve looked at so far (NOT, AND, OR, NAND, NOR, XOR) –Different in that they’re not binary
23
CSC321 Three-State Gates Three-state gates have a 3 rd output value that corresponds to “no output” –When in this state the gate is effectively out of the circuit – it acts as if it isn’t even there –Technically, this is called a high-impedance state and acts as an open circuit You’ll also here these called tri-state gates
24
CSC321 Three-State Gates The most common tri-state gate is the buffer What’s a buffer? What’s a tri-state buffer? inputoutput 00 11 inputcontroloutput 00open 010 10 111 inputoutput control
25
CSC321 Tri-State Buffer Usage 2 x 4 Decoder 0 1 2 3 S0S0 S1S1 E A0A0 B0B0 C0C0 D0D0 A3A3 B3B3 C3C3 D3D3 bit 0 bit 3 Select Enable from registers bus lines ─1 decoder ─A bunch of buffers
26
CSC321 Memory Transfers Recall we must specify a direction (read/write), a source address, and a destination address Read from memory location at address in the AR register (Address Register) and place the contents into the R1 register M[AR]Read: R1
27
CSC321 Memory Transfers Write (copy) the contents of register R1 to the memory location at address in the AR register (Address Register) R1Write: M[AR]
28
CSC321 Register Transfer Language (RTL) Arithmetic Operations R1 + R3R2 R1 - R3R2 R1R2 R1 + 1R2 R2 + R1 + 1R2 R1 + 1R2 R1 - 1R2 Addition Subtraction Increment Decrement Negate (2’s complement) Complement (invert bits) Subtraction We need circuits to do all these operations
29
CSC321 Binary Adder Circuit Recall there are two types of adder –Half adder Adds two bits Produces a sum and carry –Full adder Adds three bits Produces a sum and carry S C S C
30
CSC321 Creating Larger Adders Connect full adders together –n-bit binary adder is created from n full adders Full Adder B3B3 A3A3 B2B2 A2A2 B1B1 A1A1 B0B0 A0A0 C3C3 C2C2 C1C1 C0C0 C out S3S3 S2S2 S1S1 S0S0 4-bit binary adder
31
CSC321 Binary Subtractor Subtraction is performed by a 2’s complement operation followed by an addition Full Adder B3B3 A3A3 B2B2 A2A2 B1B1 A1A1 B0B0 A0A0 C3C3 C2C2 C1C1 C0C0 C out S3S3 S2S2 S1S1 S0S0 M
32
CSC321 Incrementer Can use a binary adder with a 1 as the 2 nd input Can be done more simply with a series of half adders Half Adder Half Adder Half Adder Half Adder A0A0 A1A1 A2A2 A3A3 1 S3S3 S2S2 S1S1 S0S0 C3C3 C2C2 C1C1 C0C0
33
CSC321 Decrementer Subtractor with a 1 at the 2 nd input
34
CSC321 Arithmetic Unit We don’t want all these separate circuits in our system –Too much space, too much complexity, too much money Can we combine all these operations in a single circuit?
35
CSC321 Arithmetic Unit Note: MSB is on the right, LSB is on the left
36
CSC321 Select Lines Set To 00
37
CSC321 Select Lines Set To 01
38
CSC321 Select Lines Set To 10
39
CSC321 Select Lines Set To 11
40
CSC321 Summary Select S0S0 S1S1 C in 1 st Operand2 nd OperandOutput (D)Microoperation 000ABA + Badd 001ABA + B + 1add with carry 010AB’A + B’subtract with borrow 011AB’A + B’ + 1subtract 100A0Atransfer (assignment) 101A0A + 1increment 110A1A - 1decrement 111A1Atransfer (assignment)
41
Where are we? This takes us up to section 4-5 Homework: –4-1, 4-2, 4-3, 4-6, 4-7, 4-8 –Due next lecture CSC321
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.