Professional Documents
Culture Documents
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 3 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 4
5.1. Tổ chức của CPU Sơ đồ cấu trúc cơ bản của CPU
1. Cấu trúc cơ bản của CPU
§ Nhiệm vụ của CPU: Đơn vị
Đơn vị
Tập
§ Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ nhớ số học
điều khiển thanh ghi
và logic
§ Giải mã lệnh (Decode Instruction): xác định thao tác mà (CU) (RF)
(ALU)
lệnh yêu cầu
§ Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ hoặc
bus bên trong
các cổng vào-ra
§ Xử lý dữ liệu (Process Data): thực hiện phép toán số Đơn vị nối ghép bus (BIU)
học hay phép toán logic với các dữ liệu
§ Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay cổng
bus điều khiển bus dữ liệu bus địa chỉ
vào-ra
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 5 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 6
Thanh ghi cờ
Thanh ghi cờ: hiển thị trạng thái của kết quả phép toán
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 7 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 8
3. Đơn vị điều khiển Mô hình kết nối đơn vị điều khiển
§ Chức năng
§ Điều khiển nhận lệnh từ bộ nhớ đưa vào CPU
§ Tăng nội dung của PC để trỏ sang lệnh kế tiếp Thanh ghi lệnh
§ Giải mã lệnh đã được nhận để xác định thao tác mà lệnh
yêu cầu Các tín hiệu
Các cờ
§ Phát ra các tín hiệu điều khiển thực hiện lệnh điều khiển
bên trong CPU
§ Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng Đơn vị điều khiển
với các yêu cầu đó. Clock
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 9 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 10
Các tín hiệu đưa đến đơn vị điều khiển Các tín hiệu phát ra từ đơn vị điều khiển
§ Clock: tín hiệu nhịp từ mạch tạo dao động bên § Các tín hiệu điều khiển bên trong CPU:
ngoài § Điều khiển các thanh ghi
§ Lệnh máy từ thanh ghi lệnh đưa đến để giải mã § Điều khiển ALU
§ Các cờ từ thanh ghi cờ cho biết trạng thái của CPU § Các tín hiệu điều khiển bên ngoài CPU:
§ Các tín hiệu yêu cầu từ bus điều khiển § Điều khiển bộ nhớ
§ Điều khiển các mô-đun vào-ra
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 11 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 12
Các phương pháp thiết kế đơn vị điều khiển Đơn vị điều khiển vi chương trình
§ Đơn vị điều khiển vi chương trình n Bộ nhớ vi chương trình
(ROM) lưu trữ các vi
(Microprogrammed Control Unit) Thanh ghi lệnh
chương trình
§ Đơn vị điều khiển nối kết cứng (Hardwired Control
Các tín hiệu
(microprogram) điều khiển từ
bus hệ thống
Bộ giải mã
Unit) n Một vi chương trình bao Clock Mạch dãy Thanh ghi địa chỉ vi lệnh
(microinstruction)
Bộ nhớ
n Mỗi vi lệnh mã hoá cho vi chương trình
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 13 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 14
Đơn vị điều khiển nối kết cứng 4. Hoạt động của chu trình lệnh
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 15 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 16
Giản đồ trạng thái chu trình lệnh Tính địa chỉ của lệnh
§ PC chứa địa chỉ của lệnh sẽ được nhận vào
§ Với MIPS:
Nhận lệnh Nhận Cất
toán hạng toán hạng
§ Tuần tự: PC = PC + 4
Nhiều Nhiều § Rẽ nhánh (đk đúng): PC = PC + imm x 4
toán toán
hạng hạng § Chú ý: PC đã được tăng thêm 4 từ trước đó
Có
Tính Giải mã Tính Tính ngắt § Nhảy: PC = PC31-28: (26bit địa chỉ) : 00
địa chỉ Thao tác Kiểm tra
thao tác địa chỉ địa chỉ Ngắt
của lệnh dữ liệu ngắt
lệnh toán hạng toán hạng
Không
Lệnh hoàn thành, Quay lại với dữ liệu ngắt
nhận lệnh tiếp theo String hoặc Vector
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 17 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 18
IR
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 19 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 20
Giải mã lệnh Tính địa chỉ toán hạng
§ Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị § Với MIPS: lệnh lw/ lh/ lb
điều khiển lw rt, imm(rs) #(rt) = mem[(rs)+imm]
§ Đơn vị điều khiển tiến hành giải mã lệnh để xác
định thao tác phải thực hiện
Địa chỉ toán hạng = (rs) + imm
§ Giải mã lệnh xảy ra bên trong CPU
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 21 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 22
MBR
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 23 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 24
Thực hiện lệnh Tính địa chỉ toán hạng
§ Có nhiều dạng tuỳ thuộc vào lệnh § Với MIPS: lệnh sw/ sh/ sb
§ Có thể là: sw rt, imm(rs) # mem[(rs)+imm]= rt
§ Đọc/Ghi bộ nhớ
§ Vào/Ra Địa chỉ toán hạng = (rs) + imm
§ Chuyển giữa các thanh ghi
§ Phép toán số học/logic
§ Chuyển điều khiển (rẽ nhánh)
§ ...
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 25 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 26
MBR
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 27 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 28
Ngắt Sơ đồ mô tả chu trình ngắt
§ Nội dung của bộ đếm chương trình PC (địa chỉ trở
về sau khi ngắt) được đưa ra bus dữ liệu CPU
SP MAR
§ CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn
xếp SP) ra bus địa chỉ PC
Đơn vị
§ CPU phát tín hiệu điều khiển ghi bộ nhớ điều khiển
Bộ nhớ
§ Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác
định (ở ngăn xếp) MBR
§ Địa chỉ lệnh đầu tiên của chương trình con điều
khiển ngắt được nạp vào PC MAR: Thanh ghi địa chỉ bộ nhớ
MBR: Thanh ghi đệm bộ nhớ
Bus Bus Bus
địa dữ điều
PC: Bộ đếm chương trình
chỉ liệu khiển
SP: Con trỏ ngăn xếp
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 29 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 30
5.2. Thiết kế bộ xử lý theo kiến trúc MIPS Tổng quan quá trình thực hiện các lệnh
§ Chỉ thực hiện với một số lệnh cơ bản của MIPS, § Hai bước đầu tiên với mỗi lệnh:
nhưng chỉ ra hầu hết các khía cạnh: § Đưa địa chỉ từ bộ đếm chương trình PC đến bộ nhớ
§ Các lệnh tham chiếu bộ nhớ: lw, sw lệnh, tìm và nhận lệnh từ bộ nhớ này
§ Các lệnh số học/logic: add, sub, and, or, slt § Sử dụng các số hiệu thanh ghi trong lệnh để chọn và
§ Các lệnh chuyển điều khiển: beq, j đọc một hoặc hai thanh ghi:
§ Lệnh lw: đọc 1 thanh ghi
§ Các lệnh khác (không kể lệnh jump): đọc 2 thanh ghi
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 31 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 32
Tổng quan quá trình thực hiện các lệnh (tiếp) Tổng quan quá trình thực hiện các lệnh (tiếp)
§ Các bước tiếp theo tùy thuộc vào loại lệnh: § Thay đổi nội dung bộ đếm chương trình PC:
§ Sử dụng ALU hoặc bộ cộng Add để: § Với các lệnh rẽ nhánh (branch), tùy thuộc vào kết quả
§ Tính kết quả phép toán với các lệnh số học/logic so sánh:
§ So sánh các toán hạng với lệnh branch § Điều kiện thỏa mãn: PC ß địa chỉ đích (địa chỉ của lệnh cần rẽ
§ Tính địa chỉ đích với các lệnh branch tới)
§ Tính địa chỉ ngăn nhớ dữ liệu với lệnh load/store § Điều kiện không thỏa mãn: PC ß PC + 4 (địa chỉ của lệnh kế
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 33 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 34
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 35 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 36
Bộ xử lý với các đường điều khiển chính 1. Thiết kế Datapath
§ Datapath: gồm các thành phần để xử lý dữ liệu và
địa chỉ
§ Tập thanh ghi, ALUs, MUX’s, bộ nhớ, …
§ Sẽ xây dựng tăng dần Datapath cho MIPS
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 37 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 38
rocessor
252
Các thành phần để thực hiện nhận lệnh Thực hiện phần nhận lệnh
252Chapter 4 The Processor
Chapter 4 The Processor
n
Instruction Instruction
address address
on Instruction Instruction
memory memory
n Khiwhich
có địa chỉ lệnh
were introduced
từwere
which PCisintroduced
in Chapter
instruction
đưa
add
đến
2. Recall
thì lệnh
in Chapter
that a typical
$t1,$t2,$t3,
được
2. Recall thatđọc
instance
which
raaninstance
a typical
of such
reads $t2 and $t3
of such an
and writes $t1.
instruction is add $t1,$t2,$t3, which reads $t2 and registers andare
writes
n Bộ 2.cộng fiele(Add): được sử
file. Adụng fităng nộiin$t3
dung PC thêm 4 can be
The processor’s 32 general-purpose $t1.
stored in a structure called a
roduced in Chapter Recall that a typical instance of such an
registerTh processor’s
A state 32register
general-purpose registers
register le isare stored
a collection ofa registers
structure incalled
which aany register
ddregister
$t1,$t2,$t3, which
element reads
that $t2
consists and $t3 and writesby $t1.
r’selement để trỏ
file A state
32 general-purpose
that consists a set tới
register
of registers
read
lệnh
file.
are
of registers
or written stored
that kếincontains
A register
tiếp
read
fileoriswritten
a collection
a structure
by specifying thenumber
the
specifying
called
register
of registers
state
of
the number
a ofregister
the
in whichofany
the computer.
the register in
In Th
in the file. addition,
e register
thebefile. The register file
can
wefiwill
le need an ALU to
egister file
of a set of registers that can contains
is aNKK-CA2021.1.0
collection beofread and written
registers
the in which
register any
operate
state of register
IT3030-Kiến
on
thethe can
trúc
values
computer. máybetính from the registers.
readIn addition, we will need an ALU to 39 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 40
by supplying a register
bycan be read andthe
specifying written
number of the
operate
number to beon register in the fi le.
R-formatTh e register
instructions
the values read from the registers.
accessed. fi le have three register operands, so we will need to read two
by supplying a register
ister state of the computer.R-format In addition, wedata
instructionswill words
haveneed from
three the register
anregister
ALU to file and
operands, so write
we willone datatoword
need readinto
two the register file for
Thực hiện lệnh số học/logic kiểu R 310 Các thành phần thực hiện lệnh kiểu R
Chapter 4 The Processor
§ bits 15:11: số hiệu thanh ghi đích rd n Read register 1, Read register 2: các đầu vào đểAppendix
port. The design of multiported register files is discussed in Section C.8 of
chọnC.các thanh ghi cần đọc
The register file
always outputs the contents of the registers corresponding to the Read register inputs on the outputs; no
n Write register: đầu vào để chọn thanh ghi cần ghi
other control inputs are needed. In contrast, a register write must be explicitly indicated by asserting the
§ bits 10:6: số bit được dịch với các lệnh dịch bit write control signal. Remember that writes are edge-triggered, so that all the write inputs (i.e., the value to
n Read data 1, Read data 2: hai đầu ra dữ liệu đọc từ thanh ghi (32-bit)
be written, the register number, and the write control signal) must be valid at the clock edge. Since writes to
the register file are edge-triggered, our design can legally read and write the same register within a clock cycle:
§ 00000 với các lệnh khác n Write
the read Data:
will get theđầu vào dữ
value written liệu clock
in an earlier ghicycle,
vàowhilethanh
the valueghi (32-bit)
written will be available to a read in
a subsequent clock cycle. The inputs carrying the register number to the register file are all 5 bits wide, whereas
§ bits 5:0: mã hàm để xác định phép toán (function code) n RegWrite:
the lines carrying tín hiệu điều khiển ghi dữ liệu vào thanh
data values are 32 bits wide. The operation to be performed
the ALU operation signal, which will be 4 bits wide, using the ALU designed in
by ghi
the ALU is controlled with
Appendix C. We will
n ALU use
đểthethực hiện các phép toán số học/logic
Zero detection output of the ALU shortly to implement branches. The overflow output will not be
needed until Section 4.9, when we discuss exceptions; we omit it until then.
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 41 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 42
sign-extend To increase In addition, we will need a unit to sign-extend the 16-bit offset field in the
the size of a data item by instruction to a 32-bit signed value, and a data memory unit to read from or write
replicating the high-order to. The data memory must be written on store instructions; hence, data memory
sign bit of the original has read and write control signals, an address input, and an input for the data to be
data item in the high-
written into memory. Figure 4.8 shows these two elements.
Mô tả thực hiện lệnh số học/logic kiểu R Thực hiện các lệnh lw/sw
order bits of the larger,
destination data item. The beq instruction has three operands, two registers that are compared
for equality, and a 16-bit offset used to compute the branch target address
branch target address relative to the branch instruction address. Its form is beq $t1,$t2,offset. To
§ Hai số hiệu thanh ghi rs và rt đưa đến hai đầu vào Read The address specified in
a branch, which becomes
implement this instruction, we must compute the branch target address by adding
the sign-extended offset field of the instruction to the PC. There are two details
the new program counter op rs of branchrtinstructions imm
register 1, Read register 2 để chọn hai thanh ghi nguồn (PC) if the branch is
in the definition (see Chapter 2) to which we must pay
taken. In the MIPS attention:
§ Số hiệu thanh ghi rd đưa đến đầu vào Write register để architecture the branch
31:26 25:21 20:16 15:0
■The instruction set architecture specifies that the base for the branch address
target is given by the
chọn thanh ghi đích sum of the offset field of §
calculation is the address of the instruction following the branch. Since we
bits 31:26 là mã thao tác
compute PC + 4 (the address of the next instruction) in the instruction fetch
the instruction and the
§ Hai dữ liệu từ hai thanh ghi nguồn được đọc ra 2 đầu ra address of the instruction
following the branch.
§ 100011
datapath, (35) vớitolệnh
it is easy
target address.
lw value as the base for computing the branch
use this
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 43 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 44
Các thành phần thực hiện các lệnh lw/sw Thực hiện lệnh lw
Chapter 4 The Processor
§ Số hiệu thanh ghi rs đưa đến đầu vào Read register 1 để
Tập thanh ghi Bộ số học/logic
chọn thanh ghi cơ sở rs, nội dung rs được đưa ra đầu ra
5 Read
register 1 Read
4
ALU operation
Read Data 1, rồi chuyển đến ALU
5 data 1
Register
numbers
Read
register 2 Zero § Hằng số imm 16-bit đưa đến bộ Sign-extend để mở rộng
Data ALU ALU
5 Write
register
Registers
result thành 32-bit, rồi chuyển đến ALU
Read
Data
Write
Data
data 2
§ ALU cộng hai giá trị trên đưa ra ALU result chính là địa chỉ
4.3 Building a Datapath 311
RegWrite của dữ liệu cần đọc từ bộ nhớ dữ liệu; địa chỉ này được đưa
a. Registers Bộ nhớ dữ liệu
b. ALU Bộ mở rộng số có dấu từ 16- đến đầu vào Address của bộ nhớ dữ liệu
bit à 32-bit
FIGURE 4.7 The two elements needed to implement R-format ALU MemWrite
operations are the
register file and the ALU. The register file contains all the registers and has two read ports and one write
§ Số hiệu thanh ghi rt đưa đến đầu vào Write Register để
port. The design of multiported register files is discussed in Section C.8 of Appendix C. The register file
always outputs the contents of the registers corresponding to the Read register inputs Read
Address
on the outputs; no chọn thanh ghi đích
other control inputs are needed. In contrast, a register write must be explicitly indicated data
by asserting the
write control signal. Remember that writes are edge-triggered, so that all the write inputs (i.e., the value to
be written, the register number, and the write control signal) must be valid at the clock edge. Since writes to
16
Sign-
32 § Dữ liệu 32-bit ở bộ nhớ dữ liệu, tại vị trí địa chỉ đã được
Data
the register file are edge-triggered, our design can legally read and write the same register within a clock cycle:
the read will get the value written in an earlier clock cycle, while the value written will be available to a read in
extend tính, được đọc ra ở đầu ra Read data của bộ nhớ dữ liệu
Write memory
nhờ tín hiệu điều khiển MemRead, rồi đưa về đầu vào
a subsequent clock cycle. The inputs carrying the register number to the register file are all 5 bits wide, whereas
data
the lines carrying data values are 32 bits wide. The operation to be performed by the ALU is controlled with
the ALU operation signal, which will be 4 bits wide, using the ALU designed in Appendix C. We will
use the Zero detection output of the ALU shortly to implement branches. The overflow output will not be
needed until Section 4.9, when we discuss exceptions; we omit it until then.
Write Data của tập thanh ghi để ghi vào thanh ghi đích rt
MemRead
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 45 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 46
a. Data memory unit b. Sign extension unit
increase In addition, we will need a unit to sign-extend the 16-bit offset field in the
item by FIGURE
instruction to a 32-bit signed 4.8
value, andThe
a datatwo unitsunit
memory needed
to readto implement
from or write loads and stores, in addition to the
igh-order to. The data memory must register file and
be written ALUinstructions;
on store of Figure 4.7, hence,aredata
thememory
data memory unit and the sign extension unit.
iginal has read and write control
high-
Thesignals,
memory an address
unit is ainput, and an input
state element with for the for
inputs datathe
to address
be and the write data, and a single output for
larger,
written into memory. Figure 4.8 shows
the read result. these
Theretwoare elements.
separate read and write controls, although only one of these may be asserted on
Hợp các thành phần cho các lệnh Datapath cho các lệnh R-Type/Load/Store
§ Datapath cho các lệnh thực hiện trong 1 chu kỳ
§ Mỗi phần tử của datapath chỉ có thể làm một chức năng
trong mỗi chu kỳ
§ Do đó, cần tách rời bộ nhớ lệnh và bộ nhớ dữ liệu
§ Sử dụng các bộ chọn kênh để chọn dữ liệu nguồn
cho các lệnh khác nhau
• ALUSrc: tín hiệu điều khiển chọn toán hạng đưa đến ALU:
• Lệnh kiểu R: toán hạng từ thanh ghi nguồn thứ hai
• Lệnh lw/sw: Hằng số imm 16-bit được mở rộng thành 32-bit (tính địa chỉ)
• MemtoReg: tín hiệu điều khiển chọn dữ liệu đưa về thanh ghi đích:
• Lệnh kiểu R: lấy kết quả từ ALU result
• Lệnh lw: dữ liệu đọc (Read data) từ bộ nhớ dữ liệu
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 51 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 52
Datapath đơn giản cho các lệnh R/lw/sw/branch 2. Thiết kế Control Unit
§ Đơn vị điều khiển có hai phần:
§ Bộ điều khiển ALU
§ Bộ điều khiển chính
• PCSrc: tín hiệu điều khiển chọn giá trị cập nhật PC
• Không rẽ nhánh: PC ß PC+4
• Rẽ nhánh: PC ß (PC+4) + (hằng số imm đã mở rộng thành 32-bit << 2)
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 53 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 54
ALU control lines Function Opcode ALUOp Operation funct ALU function ALU control
lw 00 load word XXXXXX add 0010
0000 AND
sw 00 store word XXXXXX add 0010
0001 OR beq 01 branch equal XXXXXX subtract 0110
0010 add R-type 10 add 100000 add 0010
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 55 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 56
Thiết kế bộ điều khiển chính Datapath và Control Unit
§ Các tín hiệu điều khiển được tạo ra từ lệnh
lw/sw 35 or 43 rs rt imm
31:26 25:21 20:16 15:0
beq 4 rs rt imm
31:26 25:21 20:16 15:0
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 57 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 58
Các tín hiệu điều khiển Các tín hiệu điều khiển (tiếp)
Tên tín hiệu Hiệu ứng khi tín hiệu = 0 Hiệu ứng khi tín hiệu = 1
RegDst Số hiệu thanh ghi đích là các bit Số hiệu thanh ghi đích là các bit 15:11 (rd) Tên tín hiệu Hiệu ứng khi tín hiệu = 0 Hiệu ứng khi tín hiệu = 1
20:16 (rt) MemRead Không làm gì cả Nội dung ngăn nhớ dữ liệu, được xác định
Branch Không có lệnh rẽ nhánh beq Có lệnh rẽ nhánh beq bởi địa chỉ do ALU tính, được đưa ra đầu
(Branch =1) & (Zero=1): rẽ nhánh xảy ra ra Read data của bộ nhớ dữ liệu
(Branch =1) & (Zero=0): rẽ nhánh không
xảy ra MemWrite Không làm gì cả Dữ liệu trên đầu vào Write Data của bộ
RegWrite Không làm gì cả Ghi dữ liệu trên đầu vào Write Data ở tập nhớ dữ liệu được ghi vào ngăn nhớ có địa
chỉ do ALU tính
thanh ghi đến thanh ghi đích
MemtoReg Giá trị được đưa đến đầu vào Giá trị được đưa đến đầu vào Write data
ALUSrc Toán hạng thứ hai của ALU lấy Toán hạng thứ hai của ALU là giá trị 16 bit
Write data của tập thanh ghi là của tập thanh ghi là từ bộ nhớ dữ liệu
từ thanh ghi nguồn thứ hai thấp của lệnh (bits 15:0) được mở rộng có từ ALU result
(Read data 2) dấu thành 32-bit
PCSrc PC ß PC+4 PC ß địa chỉ đích
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 59 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 60
Thực hiện lệnh số học/logic kiểu R Thực hiện lệnh Load
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 61 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 62
2 address
31:26 25:0
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 63 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 64
Datapath thêm cho lệnh jump 5.3. Kỹ thuật đường ống lệnh và song song mức lệnh
§ Kỹ thuật đường ống lệnh (Instruction Pipelining): Chia chu
trình lệnh thành các công đoạn và cho phép thực hiện gối
lên nhau (như dây chuyền lắp ráp)
§ Bộ xử lý MIPS có 5 công đoạn:
1. IF: Instruction fetch from memory – Nhận lệnh từ bộ nhớ
2. ID: Instruction decode & register read – Giải mã lệnh và đọc thanh
ghi
3. EX: Execute operation or calculate address – Thực hiện thao tác
hoặc tính toán địa chỉ
4. MEM: Access memory operand – Truy nhập toán hạng bộ nhớ
5. WB: Write result back to register – Ghi kết quả trả về thanh ghi
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 65 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 66
Biểu đồ thời gian của đường ống lệnh Các mối trở ngại (Hazard) của đường ống lệnh
§ Hazard: Tình huống ngăn cản bắt đầu của lệnh tiếp
1 2 3 4 5 6 7 8 9 10 11 12 t
IF ID EX MEM WB
theo ở chu kỳ tiếp theo
lệnh 1
IF ID EX MEM WB § Hazard cấu trúc: do tài nguyên được yêu cầu đang bận
lệnh 2
lệnh 3
IF ID EX MEM WB § Hazard dữ liệu: cần phải đợi để lệnh trước hoàn thành
lệnh 4
IF ID EX MEM WB việc đọc/ghi dữ liệu
lệnh 5
IF ID EX MEM WB
§ Hazard điều khiển: do rẽ nhánh gây ra
IF ID EX MEM WB
lệnh 6
IF ID EX MEM WB
lệnh 7
IF ID EX MEM WB
lệnh 8
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 67 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 68
Hazard cấu trúc Hazard dữ liệu
§ Xung đột khi sử dụng tài nguyên § Lệnh phụ thuộc vào việc hoàn thành truy cập dữ
§ Trong đường ống của MIPS với một bộ nhớ dùng liệu của lệnh trước đó
chung add $s0, $t0, $t1
§ Lệnh Load/store yêu cầu truy cập dữ liệu sub $t2, $s0, $t3
§ Nhận lệnh cần trì hoãn cho chu kỳ đó
§ Bởi vậy, datapath kiểu đường ống yêu cầu bộ nhớ
lệnh và bộ nhớ dữ liệu tách rời (hoặc cache
lệnh/cache dữ liệu tách rời)
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 69 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 70
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 71 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 72
Lập lịch mã để tránh trì hoãn Hazard điều khiển
§ Thay đổi trình tự mã để tránh sử dụng kết quả load § Rẽ nhánh xác định luồng điều khiển
ở lệnh tiếp theo § Nhận lệnh tiếp theo phụ thuộc vào kết quả rẽ nhánh
§ Đường ống không thể luôn nhận đúng lệnh
§ Mã C: § Vẫn đang làm ở công đoạn giải mã lệnh (ID) của lệnh rẽ nhánh
a = b + e; c = b + f; § Với đường ống của MIPS
§ Cần so sánh thanh ghi và tính địa chỉ đích sớm trong
lw $t1, 0($t0) lw $t1, 0($t0) đường ống
lw $t2, 4($t0) lw $t2, 4($t0) § Thêm phần cứng để thực hiện việc đó trong công đoạn
add $t3, $t1, $t2 lw $t4, 8($t0) ID
stall
sw $t3, 12($t0) add $t3, $t1, $t2
lw $t4, 8($t0) sw $t3, 12($t0)
stall add $t5, $t1, $t4 add $t5, $t1, $t4
sw $t5, 16($t0) sw $t5, 16($t0)
13 cycles 11 cycles
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 73 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 74
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 75 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 76
MIPS với dự đoán rẽ nhánh không xẩy ra Đặc điểm của đường ống
§ Kỹ thuật đường ống cải thiện hiệu năng bằng cách
tăng số lệnh thực hiện
§ Thực hiện nhiều lệnh đồng thời
Prediction
correct § Mỗi lệnh có cùng thời gian thực hiện
§ Các dạng hazard:
§ Cấu trúc, dữ liệu, điều khiển
§ Thiết kế tập lệnh ảnh hưởng đến độ phức tạp của
việc thực hiện đường ống
Prediction
incorrect
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 77 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 78
Tăng cường khả năng song song mức lệnh Kiến trúc máy tính
n Tăng số công đoạn của đường ống
Lệnh 1
Lệnh 2
Lệnh 3
Lệnh 4
Lệnh 5
Lệnh 6
Hết chương 5
n Siêu vô hướng (Superscalar)
Lệnh 1
Lệnh 2
Lệnh 3
Lệnh 4
Lệnh 5
Lệnh 6
NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 79 NKK-CA2021.1.0 IT3030-Kiến trúc máy tính 80