computation structures - montefiore institutepw/cours/psfiles/struct-cours1-e.pdf · a processor is...
TRANSCRIPT
![Page 1: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/1.jpg)
Computation structures
Pierre Wolper
Email: [email protected]
URL: http: //www.montefiore.ulg.ac.be/~pw/http: //www.montefiore.ulg.ac.be/
~pw/cours/struct.html
References
Stephen A. Ward and Robert H. Halstead, Computation Structures, MIT Press, 1990.
http://6004.lcs.mit.edu.
M. Ben-Ari, Principles of Concurrent and Distributed Programming, Pearson Education,2006.
1
![Page 2: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/2.jpg)
Course objectives
1. Computer organization and machine language.
(a) To study in detail how a simple programmable machine can be
built.
(b) To introduce processor performance enhancement techniques.
(c) To overview the concepts used in order to make the task of
programming a computer more manageable: interrupts and
supervisor (privileged) mode, virtual memory, . . .
2
![Page 3: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/3.jpg)
2. Operating systems and Concurrent programming
(a) To introduce programming with processes and the organization of
an operating system kernel.
(b) To develop the concepts pertaining to programming with processes
and interprocess communication.
(c) To study classical parallel programming problems.
(d) To give a brief introduction to questions concerning parallel
machines and how they are programmed.
3
![Page 4: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/4.jpg)
Exercises and programming assignments
• Exercises on processor design and microcode.
• Exercises and a programming assignment in assembly language on low
level programming and operating system kernels.
• Exercises and a programming assignment on using parallel processes
and interprocess communication (using C as programming language).
4
![Page 5: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/5.jpg)
Digital electronic circuits :review
We will use basic facts about digital circuits.
• In digital circuits, an electrical signal is used to represent a Boolean
(binary) piece of information (0,1), for example [0,1] volts represents
0 and [2,3] volts represents 1.
• Boolean circuits can perform operations on the represented Boolean
values.
• We will use three types of circuits: combinatorial circuits, memory
elements and synchronous sequential circuits.
5
![Page 6: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/6.jpg)
Digital circuitscombinatorial circuits
. . .
. . .
x1 x2 xn
f1(x1, . . . , xn) fk(x1, . . . , xn)
• Each fi is a Boolean function (∧,∨,¬) of x1, . . . , xn. If the inputs (xi)
change, there is a certain delay defore the outputs (fi) stabilize at the
correct value.
6
![Page 7: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/7.jpg)
Digital circuitsmemory elements
x1 x2 x3 xn. . .
y1 y2 y3
. . .
yn
a1
ak
a2a3...
LD
CLK
• CLK is a clock signal :
7
![Page 8: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/8.jpg)
• When LD is active (value 1), the values of x1, . . . , xn are stored at the
address given by a1, . . . , ak at the next (0→ 1) clock transition. The
values of the outputs y1, . . . , yn are equal to the values stored at the
address a1, . . . , ak.
• A register is a one location memory (no addess)
8
![Page 9: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/9.jpg)
Digital circuitsSynchronous sequential circuits
combinatorial circuit
registers
inputs outputs
clock
• At each clock transition, a Boolean function of the inputs and of the
previous register contents is loaded in the registers.
• The outputs are a Boolean function of the inputs and of the register
contents.
9
![Page 10: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/10.jpg)
From synchronous circuits to processors
A processor is a synchronous sequential circuit with a few peculiarities.
1. The circuit is divided into a “data” and a “control” part. The “data”
part performs operations on memorized data; the “control”
determines which operations are performed.
control logic
control registers data registers
inputs
clock
control data path
data path
logic
outputs
10
![Page 11: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/11.jpg)
2. A large capacity memory is included in the “data” part (the machine’s
main memory).
3. The behavior of the control part is influenced by the data part:
• control influenced -by the results of operations on the data;
• control determined by a program stored in the data path memory.
control logic
control registers data registers
inputs
clock
control data path
data path
logic
outputs
11
![Page 12: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/12.jpg)
A simple data path
In the date path shown below, one finds memory elements and a
computation element (a combinatorial circuit) interconnected by a bus.
N
3s
CLK
B
DRALU
CLK A
ALUFunctions
Status flags
LDA
I/OOELD
LDB
Static RAM
DRSRAMLDSRAM
SMARLDSMAR
LD OE
LDDMAR
OE
DMAR
Dynamic RAM
DRDRAMLD
CLK
LDDRAM
CLK
12
![Page 13: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/13.jpg)
A bus is a collection of shared interconnection lines.
• Each element with an output connected to the bus can be active (0 or
1) or inactive (disconnected – this is called 3 state logic).
• The bus presented is a simple bus with a centralized control managed
by the control unit.
The signals needed for the data path to operate will be generated by the
control unit.
To design the control unit one must first define the machine that is to be
built.
13
![Page 14: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/14.jpg)
A machine architecture:The β machine
• A 32 bit architecture: the registers contain 32 bits and the memory
addresses are 32 bits long, which makes it possible to address 232
bytes of memory.
• The machine has 32 (0 a 31) 32-bit registers and a 32-bit program
counter whose value is always a multiple of 4. Register 31 always
contains the value 0.
• All instructions are 32-bit long.
14
![Page 15: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/15.jpg)
32 bits
32 bits
232
32 bits
PC
R0
R1
R30
R31
R2
value always 0
3 2 1 0
CDEF
Registers Memory
bytes
0x00000008
0x00000000
0x00000004
0xFFFFFFFC
15
![Page 16: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/16.jpg)
β Machine: instruction formats
All operations of the β Machine (except those accessing the main
memory) are performed on registers.
There are two possible instruction formats :
• The format without a literal (valeur constante)
Opcode Rc Ra Rb
31 25 20 15 1026 21 16 11 0
unused
• The format with a literal
Opcode Rc
31 25 20 1526 21 16 0
Ra value (2’s complement)
16
![Page 17: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/17.jpg)
β Machine : arithmetic instructions
Without a literal With a literalOpcode name Opcode name0x20 ADD 0x30 ADDC0x21 SUB 0x31 SUBC0x22 MUL 0x32 MULC0x23 DIV 0x33 DIVC
ADD(Ra,Rb,Rc) : PC← PC + 4Reg[Rc]← Reg[Ra] + Reg[Rb]
ADDC(Ra,literal,Rc) : PC← PC + 4Reg[Rc]← Reg[Ra] + SEXT(literal)
SEXT(literal) represents the value contained in the instruction extended
from 16 to 32 bits, the sign being preserved.
The definitions of SUB, MUL and DIV are similar.
17
![Page 18: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/18.jpg)
β Machine : comparison instructions
Without a literal With a literalOpcode name Opcode name0x24 COMPEQ 0x34 COMPEQC0x25 COMPLT 0x35 COMPLTC0x26 COMPLE 0x36 COMPLEC
COMPEQ(Ra,Rb,Rc) : PC← PC + 4if Reg[Ra] = Reg[Rb] then Reg[Rc]← 1
else Reg[Rc]← 0
COMPEQC(Ra,literal,Rc) : PC← PC + 4if Reg[Ra] = SEXT(literal) then Reg[Rc]← 1
else Reg[Rc]← 0
CMPLT and CMPLTC compare according to the < relation, CMPLE and
CMPLEC according to ≤.
18
![Page 19: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/19.jpg)
β Machine : logical instructions
Without a literal With a literalOpcode name Opcode name0x28 AND 0x38 ANDC0x29 OR 0x39 ORC0x2A XOR 0x3A XORC
AND(Ra,Rb,Rc) : PC← PC + 4Reg[Rc]← Reg[Ra] & Reg[Rb]
ANDC(Ra,literal,Rc) : PC← PC + 4Reg[Rc]← Reg[Ra] & SEXT(literal)
OR and ORC compute “or”, XOR and XORC exclusive “or”.
19
![Page 20: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/20.jpg)
β Machine : shift instructions
Without a literal With a literalOpcode name Opcode name0x2C SHL 0x3C SHLC0x2D SHR 0x3D SHRC0x2E SRA 0x3E SRAC
SHL(Ra,Rb,Rc) : PC← PC + 4Reg[Rc]← Reg[Ra]� Reg[Rb]4:0
SHLC(Ra,literal,Rc) : PC← PC + 4Reg[Rc]← Reg[Ra]� literal4:0
The content of Ra is shifted by a number of positions given by the 5 leastsignificant bits of Rb and the result is placed in Rc. 0 bits are introducedin the freed positions.
SHR and SHRC shift to the right (0 bits are introduced in the freedpositions).
SRA and SRAC also shift to the right, but the sign bit (Reg[Ra]31) isintroduced in the freed positions.
20
![Page 21: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/21.jpg)
β Machine : memory access instructions
Opcode name0x18 LD0x19 ST
LD(Ra,literal,Rc) : PC← PC + 4EA← Reg[Ra] + SEXT(literal)Reg[Rc]←Mem[EA]
ST(Rc,literal,Ra) : PC← PC + 4EA← Reg[Ra] + SEXT(literal)Mem[EA]← Reg[Rc]
EA is called the “effective address”.
21
![Page 22: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/22.jpg)
β Machine : memory access instructions II
Opcode name0x1F LDR
LDR(label,Rc) : PC← PC + 4EA← PC + 4× SEXT(literal)Reg[Rc]←Mem[EA]
In LDR, the instruction given to the assembler contains a label. (label). In
the assembled instruction, the literal is computed from the label as follows
literal = ((OFFSET(label)−OFFSET(current inst.))÷ 4)− 1
22
![Page 23: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/23.jpg)
β Machine : branch instructions
Opcode name0x1B JMP
JMP(Ra,Rc) : PC← PC + 4EA← Reg[Ra] & 0xFFFFFFFCReg[Rc]← PCPC← EA
The 2 least significant bits of Ra are set to 0 to force the address to be a
word address. The address of the instruction following the JMP is saved
in Rc.
23
![Page 24: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/24.jpg)
β Machine : branch instructions II
Opcode name0x1D BEQ/BF0x1E BNE/BT
BEQ(Ra,label,Rc) : PC← PC + 4EA← PC + 4× SEXT(literal)TMP← Reg[Ra]Reg[Rc]← PCif TMP = 0 then PC← EA
In BEQ, the instruction given to the assembler contains a label. In the
assembled instruction, the literal is computed as follows
literal = ((OFFSET(label)−OFFSET(current inst.))÷ 4)− 1
BNE is similat to BEQ except that the test is “different from 0”
TMP is used because Ra and Rc could be the same register.
24
![Page 25: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/25.jpg)
An implementation of the β Machine :The machine ULg01
We start from the data path described previously.
• The static RAM will be used to implement the registers.
• The dynamic RAM will be used to implement the main memory.
• On still has to introduce a program counter (PC) and a control unit.
25
![Page 26: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/26.jpg)
A first sketch of ULg01
N
3s
CLK
CLK
LD...
DR...
B
DRALU
CLK A
ALUFunctions
Status flags
LDA
LDPC
DRPCI/O
OELD
Control Unit
INCPC
OE
LD
PCINC
PCINC
CLK
LDB
Functions
Status flags
Static RAM
DRSRAMLDSRAM
SMARLDSMAR
LD OE
LDDMAR
OE
DMAR
Dynamic RAM
DRDRAMLD
CLK
LDDRAM
CLK
26
![Page 27: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/27.jpg)
A detailed view of the PC of ULg01
DRPC
100
20
20
ND2...21
LDPC PCINC
20
LD
3s
20 bits counterCLK
Only 20 bits are used because the machine being built will not have more
than 4 megabytes (1 megaword) of memory.
27
![Page 28: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/28.jpg)
A detailed view of the SRAM of ULg01
LDSMAR5
LDSRAM
ND11−15
DRSRAM5
50
32
OE
LD
OE
LD LD
OE
LD
OE
888
8
3sD0...7D24...31
SRAM
CLK
CLK
SRAM SRAMSRAM
SMAR
The circuit is designed to produce the value 0 when register 31 is read.
28
![Page 29: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/29.jpg)
A detailed view of the DRAM of ULg01
LDDMAR
N
DRDRAM
LDDRAM
20
DMAR
20
D21−2
8 8 8 8
LD
OE
LD
OE
LD
OE
LD
OE
D24...31 D0...7
DRAM DRAM DRAMDRAM
CLK
The DRAM module must contain refresh circuitry.
The clock speed is chosen so that the DRAM can operate at the same
speed as the rest if the machine. In an optimized implementation, the
DRAM operates at a lower speed.
29
![Page 30: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/30.jpg)
A detailed view of the control unit of ULg01
8
8
6
2
4
3
55
N
88
33
1
3
3
78
8
8
8
16
LDINSTREGLDALDBLDSMARLDDMAR
LDPC
LDSRAMLDDRAM
DRRcDRRaDRLit/RbDRALUDRSRAMDRDRAMDRPC
ALU CinALU Fnct
PCINC
3s 3s 3s 3s3s
LDINSTREG
Control ROM
ResetPhaseCLK
3...7 0...20
DRRc
3...7 0...20
DRRa
ALU flags
CLK
END
Q
Latch flags
DRLit/Rb
D24...31
Instr. 2
Instr. 3
0,1
2...7
5...7
0...4
D8...15 D8...15 D8...15D0...7D16...31
Instr. 1
D0...7
D8...15
Instr. 0CLK
D16...23
D15
The control unit is microprogrammed and allows up to 16 phases by
instruction. The microprogram is stored in a ROM.
30
![Page 31: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/31.jpg)
The ALU flags are used as address bits into the ROM. This allows the
implementation of conditional instructions. The flags are
• E whose value is 1 is the output of the ALU is equal to 0xFFFFFFFF,
• C The complemented carry bit,
• N the sign bit (bit 31).
The left-hand part of the control unit is used to separate the different
parts of an instruction and connect them to the appropriate lines of the
bus.
All that needs to be done to finish the implementation of the β Machine,
is to write the microcode that has to be placed in the ROM.
31
![Page 32: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/32.jpg)
The microcode of ULg01
The instruction OR(Ra, Rb, Rc)
Opcode Phase Flags Latch ALU LD DR PC+flags F,Cin,Mode SEL SEL
101001 0000 * 1 000000 011 001 0 SMAR ← Ra101001 0001 * 1 000000 001 100 0 A ← SRAM101001 0010 * 1 000000 011 010 0 SMAR ← Rb101001 0011 * 1 000000 010 100 0 B ← SRAM101001 0100 * 1 000000 011 000 0 SMAR ← Rc101001 0101 * 1 111001 101 011 0 SRAM ← A | B101001 0110 * 1 000000 100 110 1 DMAR ← PC; PC+101001 0111 * 1 000000 000 101 0 INSTREG ← DRAM
32
![Page 33: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/33.jpg)
The instruction JMP(Ra, Rc)
Opcode Phase Flags Latch ALU LD DR PC+flags F,Cin,Mode SEL SEL
011011 0000 * 1 000000 011 001 0 SMAR ← Ra011011 0001 * 1 000000 001 100 0 A ← SRAM011011 0010 * 1 000000 011 000 0 SMAR ← Rc011011 0011 * 1 000000 101 110 0 SRAM ← PC011011 0100 * 1 111111 111 011 0 PC ← A011011 0101 * 1 000000 100 110 1 DMAR ← PC; PC+011011 0110 * 1 000000 000 101 0 INSTREG ← DRAM
33
![Page 34: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/34.jpg)
The instruction BEQ(Ra, label, Rc)
Opcode Phase Flags Latch ALU LD DR PC+flags F,Cin,Mode SEL SEL
011101 0000 * 1 000000 011 001 0 SMAR ← Ra011101 0001 * 1 000000 001 100 0 A ← SRAM011101 0010 * 0 111110 001 011 0 A ← A-1; Latch011101 0011 * 1 000000 011 000 0 SMAR ← Rc011101 0100 * 1 000000 101 110 0 SRAM ← PC011101 0101 E=0 1 000000 100 110 1 DMAR ← PC; PC+011101 0110 E=0 1 000000 000 101 0 INSTREG ← DRAM011101 0101 E=1 1 000000 001 010 0 A ← Lit011101 0110 E=1 1 110010 001 011 0 A ← A+A011101 0111 E=1 1 110010 001 011 0 A ← A+A011101 1000 E=1 1 000000 010 110 0 B ← PC011101 1001 E=1 1 100110 111 011 0 PC ← A+B011101 1010 E=1 1 000000 100 110 1 DMAR ← PC; PC+011101 1011 E=1 1 000000 000 101 0 INSTREG ← DRAM
Reminder : The literal that is found in the instruction interpreted by the
microcode is computed (by the assembler) from the label found in the
symbolically written instruction as follows
literal = ((OFFSET(label)−OFFSET(current inst.))÷ 4)− 1
34
![Page 35: Computation structures - Montefiore Institutepw/cours/psfiles/struct-cours1-e.pdf · A processor is a synchronous sequential circuit with a few peculiarities. 1.The circuit is divided](https://reader033.vdocument.in/reader033/viewer/2022041709/5e471ab9f45a4a57ae6c4af8/html5/thumbnails/35.jpg)
L’instruction LD(Ra, literal, Rc)
Opcode Phase Flags Latch ALU LD DR PC+flags F,Cin,Mode SEL SEL
011000 0000 * 1 000000 011 001 0 SMAR ← Ra011000 0001 * 1 000000 001 100 0 A ← SRAM011000 0010 * 1 000000 010 010 0 B ← Lit011000 0011 * 1 000000 011 000 0 SMAR ← Rc011000 0100 * 1 100110 100 011 0 DMAR ← A+B011000 0101 * 1 000000 101 101 0 SRAM ← DRAM011000 0110 * 1 000000 100 110 1 DMAR ← PC; PC+011000 0111 * 1 000000 000 101 0 INSTREG ← DRAM
35