SlideShare une entreprise Scribd logo
1  sur  40
Bài 07: Thiết kế bộ xử lý
Phạm Tuấn Sơn
ptson@fit.hcmus.edu.vn
Quan điểm về cấu tạo CPU
• William Stallings
– Registers
– ALU
– CU
– Internal bus
Mục tiêu: hiểu được cấu tạo và hoạt động của CPU
• Patterson & Hennessy
– Datapath
– Control
Mục tiêu: thiết kế CPU
2
Các bước thiết kế một CPU
1. Phân tích kiến trúc bộ lệnh (ISA)
⇒ các yêu cầu về datapath
– Trình bày từng lệnh dưới dạng register transfers language
(RTL) để thấy rõ ý nghĩa các các lệnh
– datapath phải có thành phần lưu trữ (bộ nhớ chính / cache)
cho các thanh ghi trong kiến trúc bộ lệnh
– datapath phải hỗ trợ thực thi tất cả các lệnh
2. Lựa chọn các khối mạch cần thiết để xây dựng
datapath
– Khối mạch tổ hợp
– Khối mạch tuần tự
3. Lắp ráp các khối mạch đáp ứng yêu cầu bộ lệnh
4. Phân tích mỗi lệnh để xác định các tín hiệu điều khiển
cần thiết
5. Thiết kế mạch cho các tín hiệu điều khiển
Vấn đề thiết kế datapath
• Vấn đề: xây dựng một khối datapath phức tạp để
xử lý một lệnh (nạp lệnh à thực thi lệnh à …)
sẽ khó khăn và không hiệu quả
• Giải pháp: chia nhỏ quá trình xử lý một lệnh
thành các công đoạn nhỏ (stages), xây dựng
khối xử lý cho từng công đoạn rồi lắp ráp thành
datapath
– Các công đoạn nhỏ dễ thiết kế
– Dễ thay đổi, tối ưu một công đoạn mà ít ảnh hưởng
tới các công đoạn khác
Thiết kế bộ xử lý MIPS thu gọn
• Bộ xử lý MIPS thu gọn gồm 9 lệnh
– add $1, $2, $3
– sub $1, $2, $3
– and $1, $2, $3
– or $1, $2, $3
– lw $1, 0($2)
– sw $1, 0($2)
– beq $1, $2, NHAN
– slt $1, $2, $3
– j NHAN
• Tại sao là 9 lệnh này ?
5
• Tất cả các lệnh MIPS đều dài 32 bit. Có 3 cấu trúc
– R-type
– I-type
– J-type
• Các trường
– op (“opcode”): mã thao tác của lệnh, xác định lệnh làm gì
– funct: kết hợp với op (nếu cần) để xác định lệnh làm gì
– rs, rt, rd: địa chỉ các thanh ghi nguồn và đích
– shamt: số bit dịch
– address / immediate: địa chỉ hoặc hằng số tính toán
– target address: địa chỉ cần nhảy tới
op target address
02631
6 bits 26 bits
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt address/immediate
016212631
6 bits 16 bits5 bits5 bits
Nhắc lại: Các cấu trúc lệnh của MIPS
• add, sub, and, or, slt
– add rd,rs,rt
– sub rd,rs,rt
– and rd,rs,rt
– or rd,rs,rt
– slt rd,rs,rt
• lw, sw, beq
– lw rt,imm16(rs)
– sw rt,imm16(rs)
– beq rs,rt,imm16
• j
– j addr26
op rs rt rd shamt funct
061116212631
6 bits 6 bits5 bits5 bits5 bits5 bits
op rs rt immediate
016212631
6 bits 16 bits5 bits5 bits
Cấu trúc các lệnh trong CPU
MIPS thu gọn
op target address
02631
6 bits 26 bits
Các công đoạn lệnh (1/3)
• Công đoạn 1: Nạp lệnh (Instruction Fetch)
– Nạp lệnh 32 bit từ bộ nhớ tại địa chỉ trong thanh ghi PC
vào thanh ghi lệnh. Công đoạn này như nhau cho tất cả
các lệnh
– Sau đó, tăng PC để chuẩn bị nạp lệnh kế tiếp sau khi
xử lý xong lệnh này (PC = PC + 4)
• Công đoạn 2: Giải mã lệnh (Instruction Decode)
– Phân tích các trường trong lệnh
• Xác định opcode để biết loại lệnh và vị trí của các trường khác
• Sau đó, đọc các thanh ghi nguồn để chuẩn bị thực hiện công
đoạn tiếp theo
Ví dụ
– Lệnh add, đọc 2 thanh ghi nguồn
– Lệnh lw, đọc 1 thanh ghi nguồn
• Công đoạn 3: Tính toán (ALU – Arithmetic-Logic
Unit)
– Công việc chính của hầu hết các lệnh thực hiện tại
công đoạn này: tính toán số học (+, -), luận lý (&, |), so
sánh (beq,slt)
– Lệnh beq tính vị trí cần nhảy tới
– Còn lệnh lw và sw làm gì trong công đoạn này ?
• lw $t0, 40($t1)
• Địa chỉ của vùng nhớ cần truy xuất = giá trị của $t1 CỘNG 40
• Do đó, thực hiện phép cộng trong công đoạn này
Các công đoạn lệnh (2/3)
Các công đoạn lệnh (3/3)
• Công đoạn 4: Truy xuất bộ nhớ (Memory Access)
– Thực sự chỉ có lệnh lw và sw thực hiện công đoạn
lệnh này
– Do công việc truy xuất bộ nhớ mất thời gian tương đối
nhiều nên cần một công đoạn riêng
• Công đoạn 5: Ghi kết quả vào thanh ghi (Register
Write)
– Hầu hết các lệnh đều ghi kết quả tính toán vào một
thanh ghi như tính toán số học, luận lý, lw, slt
– Còn các lệnh sw, lệnh nhảy ?
• Không ghi kết quả gì vào thanh ghi
• Do đó, các lệnh này không làm gì tại công đoạn lệnh này
Tại sao lại 5 công đoạn ?
• Chỉ có lệnh lw thực hiện cả 5 công đoạn. Vậy
tại sao MIPS lại chia làm 5 công đoạn ?
– Đó là sự tổ hợp đầy đủ cho tất cả các thao tác cần
thiết của tất cả các lệnh
– Thời gian thực hiện mỗi công đoạn không quá chênh
lệch nhau
• Có thể có nhiều công đoạn lệnh hơn không ?
– Có, các kiến trúc khác như x86
Kỹ thuật thiết kế CPU 1 chu kỳ
• Thiết kế CPU 1 chu kỳ: Tất cả các công đoạn
của 1 lệnh được xử lý trong 1 chu kỳ đồng hồ
– Chu kỳ đồng hồ phải đủ lâu để có thể hoàn thành xử
lý mọi lệnh
1. Instruction
Fetch
2. Decode/
Register
Read
3. Execute 4. Memory
5. Reg.
Write
Lệnh Register Transfers
Nạp {op , rs , rt , rd , shamt , funct} ← MEM[ PC ]
lệnh {op , rs , rt , Imm16} ← MEM[ PC ]
add R[rd] ←R[rs] + R[rt]; PC ← PC + 4
sub R[rd] ←R[rs] – R[rt]; PC ← PC + 4
and R[rd] ←R[rs] & R[rt]; PC ← PC + 4
or R[rd] ←R[rs] | R[rt]; PC ← PC + 4
lw R[rt] ← MEM[ R[rs] + sign_ext(imm16)]; PC ← PC + 4
sw MEM[ R[rs] + sign_ext(imm16) ] ←R[rt]; PC ← PC + 4
beq if ( R[rs] == R[rt] ) then PC ← PC + 4 + (sign_ext(imm16) << 2)
else PC ← PC + 4
slt if ( R[rs] < R[rt] ) then R[rd] ← 1; PC ← PC + 4
j PC = {PC[31:28],Addr26 << 2}
Bước 1: Biểu diễn các lệnh dưới dạng
RTL
Bước 1: Các khối mạch cần thiết
• Bộ nhớ (MEM)
– Lệnh + Dữ liệu
• Thanh ghi (32 x 32)
– Đọc RS
– Đọc RT
– Ghi RT / RD
• Thanh ghi PC (Program Counter)
• Sign Extender
• Đơn vị thực hiện các phép tính add/sub/and/or trên
các thanh ghi hoặc hằng số
• Đơn vị thực hiện (PC + 4)
• So sánh thanh ghi ? (lệnh beq,slt)
Bước 2: Các thành phần của datapath
• Các khối mạch tổ hợp
• Các khối lưu trữ
Các khối mạch tổ hợp
• Adder
Shift left 2
• MUX
Extender
• ALU
32
32
A
B
32
Sum
CarryOut
32
32
A
B
32
Result
OP
32
A
B
32
Y
32
Select
Adder
MUX
ALU
CarryIn
Extender
3216
imm16
Shift
left 2
Khối lưu trữ: Bộ nhớ
• Bộ nhớ
– Một đường dữ liệu vào
• Data In
– Một đường dữ liệu ra
• Data Out
– Đường địa chỉ (address) để xác định từ nhớ nào
được truy xuất
– Tính hiệu Write Enable = 1: xác định dữ liệu có được
ghi vào bộ nhớ qua đường vào dữ liệu hay không
Data In
Write Enable
32 32
DataOut
Address
Khối lưu trữ: Thanh ghi
• Xây dựng dựa trên các mạch lật (như mạch lật D)
– N bit đầu vào (Data In)
– N bit đầu ra (Data Out)
– Tín hiệu Write Enable
• Giá trị 0: dữ liệu trong thanh ghi không thay đổi
• Giá trị 1: cho phép ghi dữ liệu từ Data In vào thanh ghi
• Tập thanh ghi gồm 32 thanh ghi
– 2 đường truyền dữ liệu ra 32 bit
busA và busB
– Một đường truyền dữ liệu vào busW
• Thanh ghi được lựa chọn như sau
– RA lựa chọn thanh ghi để đưa dữ liệu ra busA
– RB lựa chọn thanh ghi để đưa dữ liệu ra busB RB
– RW lựa chọn thanh ghi để ghi dữ liệu từ busW vào khi Write
Enable = 1
Data In
Write Enable
N N
Data Out
busW
Write Enable
32
32
busA
32
busB
5 5 5
RWRA RB
32 32-bit
Registers
Bước 3 : Lắp ráp các khối mạch
thành datapath
a. Công đoạn 1: Nạp lệnh
b. Công đoạn 2: Giải mã lệnh
c. Công đoạn 3: Thực thi lệnh
d. Công đoạn 4: Truy xuất bộ nhớ
e. Công đoạn 5: Ghi kết quả vào thanh ghi
3a: Khối nạp lệnh
• Tất cả các lệnh đều thực hiện như nhau
– Nạp lệnh
• IR ← mem[PC]
– Cập nhật thanh ghi PC
• PC ← PC + 4
• Lệnh nhảy: PC ← “???”
32
Instruction WordAddress
Instruction
Memory
PC
4
32 32-bit
Registers
1
0
???adder
3b: Khối giải mã lệnh
• Tất cả các lệnh đều thực hiện như nhau
– Giải mã lệnh sẽ xác định được các giá trị Ra, Rb, Rw
(tương ứng với các trường Rs, Rt, Rd), và các tín
hiệu điều khiển RegWr,…
RegWr
32
busA
32
busB
5 5 5
Rw Ra Rb
32 32-bit
Registers
Rs RtRd
• Các lệnh R-Format
add,sub,and,or,beq,slt
– R[rs] op R[rt]
32
ALUctr
32busA
32
busB
ALU
3c: Khối thực thi lệnh (1/2)
=
Equal
• Lệnh lw, sw
– Mem[R[rs] + SignExt[imm16]]
3c: Khối thực thi lệnh (2/2)
32
ALUctr
32busA
32
busB
Extender
3216
imm16
ALUSrc
0
1
ALU
=
Equal
adder
PC+4
Shift
left 2
PC
4
1
0
• Lệnh beq
– PC + 4 + (SignExt[imm16]] << 2)
adder
PCSrc
• Lệnh lw, sw
– Mem[R[rs] + SignExt[imm16]]
Ví dụ: lw rt,rs,imm16
– Mem[ R[rs] + SignExt[imm16] ] = R[rt]
Ví dụ: sw rt, rs, imm16
3d: Truy xuất bộ nhớ
32
ALUctr
32busA
32
busB
Extender
3216
imm16
ALUSrc
Data In
32
MemWr
0
1
ALU
WrEn Adr
Data
Memory
=
Equal
• Các lệnh add,sub,add,or,lw,slt
– R[rd] = R[rs] op R[rt]
– R[rt] = Mem[R[rs] + SignExt[imm16]]
32
ALUctr
busW
RegWr
32
32busA
32
busB
5 5
Rw Ra Rb
RegFile
Rs
Rt
Rt
RdRegDst
Extender
3216
imm16
ALUSrc
MemtoReg
Data In
32
MemWr01
0
1 ALU
0
1
WrEn Adr
Data
Memory
5
3f: Ghi kết quả vào thanh ghi
Sơ đồ datapath tổng quát
26
Bước 4+5: Thiết kế đơn vị điều khiển
27
Thiết kế đơn vị điều khiển chính
(1/2)
28
Thiết kế đơn vị điều khiển chính
(2/2)
29
Thiết kế đơn vị điều khiển ALU
(1/2)
30
Thiết kế đơn vị điều khiển ALU
(2/2)
31
Sơ đồ xử lý lệnh R-Format
32
Sơ đồ xử lý lệnh lw
33
Sơ đồ xử lý lệnh beq
34
Bổ sung lệnh j
35
Hạn chế của kỹ thuật thiết kế CPU
một chu kỳ
• Kỹ thuật thiết kế CPU 1 chu kỳ không còn được sử dụng
vì không hiệu quả
– Tất cả công đoạn của 1 lệnh phải xử lý trong một chu kỳ theo tín
hiệu đồng bộ nên các thành phần mạch có khả năng dùng
chung đều được tách riêng, làm cho sơ đồ mạch phức tạp hơn
• Thành phần tính toán: ALU, Adder
• Thành phần lưu trữ: Instruction memory, Data memory
– Một chu kỳ đồng hồ phải đủ lâu để xử lý được lệnh phức tạp
nhất. Trong MIPS, lệnh lw xử lý phức tạp nhất (5 công đoạn),
trong khi tất cả các lệnh khác chỉ mất 3 (beq) hoặc 4 (R-Format,
…) công đoạn
– Với chương trình có IC (instruction count) lệnh thì sẽ xử lý trong
800×IC (ps)
Kỹ thuật thiết kế CPU nhiều chu kỳ
• Thiết kế CPU nhiều chu kỳ: Mỗi công đoạn lệnh thực
hiện trong 1 chu kỳ
– Mỗi chu kỳ đồng hồ phải đủ lâu để thực hiện mọi công đoạn lệnh
– Với chương trình có IC (instruction count) lệnh thì sẽ xử lý trong
(0.25×5 + 0.1×4 + 0.52×4 + 0.11×3 + 0.02×3) × 200 × IC
= 824×IC (ps) !!!
37
1. Instruction
Fetch
2. Decode/
Register
Read
3. Execute 4. Memory
5. Reg.
Write
Sơ đồ khối CPU nhiều chu kỳ
• Do mỗi công đoạn được thực thi trong một chu kỳ riêng,
nên có thể ghép các thành phần mạch dùng chung (ALU
+ Adder, Imem + DMem) mà không xảy ra đụng độ
• Cần thêm các thanh ghi để lưu giữ kết quả trung gian
của các công đoạn lệnh (A, B, ALUOut,…)
38
…
• Thiết kế chi tiết datapath và control của bộ
xử lý theo kỹ thuật nhiều chu kỳ
à môn KTMT nâng cao
39
Tham khảo
• Phần 5.5, P&H
40

Contenu connexe

Tendances

Kiến trúc máy tính và hợp ngữ bài 01
Kiến trúc máy tính và hợp ngữ bài 01Kiến trúc máy tính và hợp ngữ bài 01
Kiến trúc máy tính và hợp ngữ bài 01Nhóc Nhóc
 
Bai03 he thong tap tin fat
Bai03   he thong tap tin fatBai03   he thong tap tin fat
Bai03 he thong tap tin fatVũ Sang
 
KTMT Lý Thuyết Tổng Quát
KTMT Lý Thuyết Tổng QuátKTMT Lý Thuyết Tổng Quát
KTMT Lý Thuyết Tổng QuátDavid Nguyen
 
Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Nhóc Nhóc
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử líHong Phuoc Nguyen
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boolekikihoho
 
Chuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop nguChuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop ngumituan
 
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngmạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngChia sẻ tài liệu học tập
 
Bai02 he thong quan ly tap tin
Bai02   he thong quan ly tap tinBai02   he thong quan ly tap tin
Bai02 he thong quan ly tap tinVũ Sang
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTMasterCode.vn
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cậnDiên Vĩ
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.commai_non
 
Bai 01 tong quan ve phan cung may tinh
Bai 01  tong quan ve phan cung may tinhBai 01  tong quan ve phan cung may tinh
Bai 01 tong quan ve phan cung may tinhQuang Nguyễn Thái
 
Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)lieu_lamlam
 
BGKTMT Ch4 mức vi lập trình
BGKTMT Ch4 mức vi lập trìnhBGKTMT Ch4 mức vi lập trình
BGKTMT Ch4 mức vi lập trìnhCao Toa
 

Tendances (20)

Ktmt chuong 5
Ktmt chuong 5Ktmt chuong 5
Ktmt chuong 5
 
Hop ngu mips
Hop ngu mipsHop ngu mips
Hop ngu mips
 
Kiến trúc máy tính và hợp ngữ bài 01
Kiến trúc máy tính và hợp ngữ bài 01Kiến trúc máy tính và hợp ngữ bài 01
Kiến trúc máy tính và hợp ngữ bài 01
 
Bai03 he thong tap tin fat
Bai03   he thong tap tin fatBai03   he thong tap tin fat
Bai03 he thong tap tin fat
 
KTMT Lý Thuyết Tổng Quát
KTMT Lý Thuyết Tổng QuátKTMT Lý Thuyết Tổng Quát
KTMT Lý Thuyết Tổng Quát
 
Bài giảng Assembly
Bài giảng AssemblyBài giảng Assembly
Bài giảng Assembly
 
Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03
 
[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí[Cntt] bài giảng kĩ thuật vi xử lí
[Cntt] bài giảng kĩ thuật vi xử lí
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
Chuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop nguChuong 4. lap trinh hop ngu
Chuong 4. lap trinh hop ngu
 
MATMA - Chuong2
MATMA - Chuong2MATMA - Chuong2
MATMA - Chuong2
 
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngmạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
 
Bai02 he thong quan ly tap tin
Bai02   he thong quan ly tap tinBai02   he thong quan ly tap tin
Bai02 he thong quan ly tap tin
 
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPTBài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
 
Ktmt chuong 3
Ktmt chuong 3Ktmt chuong 3
Ktmt chuong 3
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
 
Bai 01 tong quan ve phan cung may tinh
Bai 01  tong quan ve phan cung may tinhBai 01  tong quan ve phan cung may tinh
Bai 01 tong quan ve phan cung may tinh
 
Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)
 
BGKTMT Ch4 mức vi lập trình
BGKTMT Ch4 mức vi lập trìnhBGKTMT Ch4 mức vi lập trình
BGKTMT Ch4 mức vi lập trình
 

Similaire à Kiến trúc máy tính và hợp ngữ bài 07

kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...
kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...
kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...ME8M
 
Chương 2 CPU và tập lệnh máy tính.ppt
Chương 2 CPU và tập lệnh máy tính.pptChương 2 CPU và tập lệnh máy tính.ppt
Chương 2 CPU và tập lệnh máy tính.pptDuongTranTrong
 
Bài Giảng Vi Xử Lý ICTU
Bài Giảng Vi Xử Lý ICTUBài Giảng Vi Xử Lý ICTU
Bài Giảng Vi Xử Lý ICTUNgô Doãn Tình
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asmMy Đá
 
BGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhBGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhCao Toa
 
2 kien truc phan mem
2 kien truc phan mem2 kien truc phan mem
2 kien truc phan memLy hai
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaViết thuê trọn gói ZALO 0934573149
 
vxl.vdk.TranThanhPhong
vxl.vdk.TranThanhPhongvxl.vdk.TranThanhPhong
vxl.vdk.TranThanhPhongLong Tran Huy
 
Chương 3. Dịch ngược mã độc.pdf
Chương 3.  Dịch ngược mã độc.pdfChương 3.  Dịch ngược mã độc.pdf
Chương 3. Dịch ngược mã độc.pdfdong55
 
Nhập môn Mạch số, Hà Lê Hoài Trung
Nhập môn Mạch số, Hà Lê Hoài TrungNhập môn Mạch số, Hà Lê Hoài Trung
Nhập môn Mạch số, Hà Lê Hoài TrungMan_Ebook
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttthut1101833
 
Cấu Trúc Máy Tính.pdf
Cấu Trúc Máy Tính.pdfCấu Trúc Máy Tính.pdf
Cấu Trúc Máy Tính.pdfPhamThao955982
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big DataNguyễn Duy Nhân
 
đề Cương ôn tập
đề Cương ôn tậpđề Cương ôn tập
đề Cương ôn tậphuynguyenvan19
 
Bài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhBài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhHa Nguyen
 
slide-cortex-m4.pptx
slide-cortex-m4.pptxslide-cortex-m4.pptx
slide-cortex-m4.pptxTrnHiu880919
 
Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...
Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...
Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...Tan Ngoc
 

Similaire à Kiến trúc máy tính và hợp ngữ bài 07 (20)

kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...
kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...
kien-truc-may-tinh-va-hop-ngu_pham-tuan-son_bai05_kien_truc_mips - [cuuduongt...
 
Chương 2 CPU và tập lệnh máy tính.ppt
Chương 2 CPU và tập lệnh máy tính.pptChương 2 CPU và tập lệnh máy tính.ppt
Chương 2 CPU và tập lệnh máy tính.ppt
 
Bài Giảng Vi Xử Lý ICTU
Bài Giảng Vi Xử Lý ICTUBài Giảng Vi Xử Lý ICTU
Bài Giảng Vi Xử Lý ICTU
 
Tim hieu thanh ghi in asm
Tim hieu thanh ghi in asmTim hieu thanh ghi in asm
Tim hieu thanh ghi in asm
 
BGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tínhBGKTMT Ch2 tổ chức hệ thống máy tính
BGKTMT Ch2 tổ chức hệ thống máy tính
 
2 kien truc phan mem
2 kien truc phan mem2 kien truc phan mem
2 kien truc phan mem
 
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xaĐề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
Đề tài giáo trình: Lập trình hệ thống và điều khiển thiết bị từ xa
 
Assembly v1.0
Assembly v1.0Assembly v1.0
Assembly v1.0
 
vxl.vdk.TranThanhPhong
vxl.vdk.TranThanhPhongvxl.vdk.TranThanhPhong
vxl.vdk.TranThanhPhong
 
Chương 3. Dịch ngược mã độc.pdf
Chương 3.  Dịch ngược mã độc.pdfChương 3.  Dịch ngược mã độc.pdf
Chương 3. Dịch ngược mã độc.pdf
 
Nhập môn Mạch số, Hà Lê Hoài Trung
Nhập môn Mạch số, Hà Lê Hoài TrungNhập môn Mạch số, Hà Lê Hoài Trung
Nhập môn Mạch số, Hà Lê Hoài Trung
 
Bai1laprapcaidat ttth
Bai1laprapcaidat ttthBai1laprapcaidat ttth
Bai1laprapcaidat ttth
 
Cấu Trúc Máy Tính.pdf
Cấu Trúc Máy Tính.pdfCấu Trúc Máy Tính.pdf
Cấu Trúc Máy Tính.pdf
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big Data
 
Chuong2
Chuong2Chuong2
Chuong2
 
đề Cương ôn tập
đề Cương ôn tậpđề Cương ôn tập
đề Cương ôn tập
 
Bài tập kiến trúc máy tính
Bài tập kiến trúc máy tínhBài tập kiến trúc máy tính
Bài tập kiến trúc máy tính
 
slide-cortex-m4.pptx
slide-cortex-m4.pptxslide-cortex-m4.pptx
slide-cortex-m4.pptx
 
Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...
Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...
Thiet ke-he-thong-nhung -chuong-6-(p3)-tong-hop-phan-cung-va-phan-mem - [cuud...
 

Plus de Nhóc Nhóc

Hướng dẫn giải bài tập Đại Số Tuyến Tính
Hướng dẫn giải bài tập Đại Số Tuyến TínhHướng dẫn giải bài tập Đại Số Tuyến Tính
Hướng dẫn giải bài tập Đại Số Tuyến TínhNhóc Nhóc
 
Pc magazine january 2015 usa
Pc magazine   january 2015  usaPc magazine   january 2015  usa
Pc magazine january 2015 usaNhóc Nhóc
 
Teach yourself photoshop 2014
Teach yourself photoshop   2014Teach yourself photoshop   2014
Teach yourself photoshop 2014Nhóc Nhóc
 
Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06Nhóc Nhóc
 
kiến trúc máy tính và hợp ngữ Bài 00
kiến trúc máy tính và hợp ngữ Bài 00kiến trúc máy tính và hợp ngữ Bài 00
kiến trúc máy tính và hợp ngữ Bài 00Nhóc Nhóc
 
Lập trình web - HTML cơ bản
Lập trình web - HTML cơ bảnLập trình web - HTML cơ bản
Lập trình web - HTML cơ bảnNhóc Nhóc
 
Cơ bản về tcp ip
Cơ bản về tcp ipCơ bản về tcp ip
Cơ bản về tcp ipNhóc Nhóc
 
10 Command Line quan trọng để giao tiếp với Cisco IOs
10 Command Line quan trọng để giao tiếp với Cisco IOs10 Command Line quan trọng để giao tiếp với Cisco IOs
10 Command Line quan trọng để giao tiếp với Cisco IOsNhóc Nhóc
 
Computer World - April 21 2014
Computer World - April 21 2014Computer World - April 21 2014
Computer World - April 21 2014Nhóc Nhóc
 

Plus de Nhóc Nhóc (9)

Hướng dẫn giải bài tập Đại Số Tuyến Tính
Hướng dẫn giải bài tập Đại Số Tuyến TínhHướng dẫn giải bài tập Đại Số Tuyến Tính
Hướng dẫn giải bài tập Đại Số Tuyến Tính
 
Pc magazine january 2015 usa
Pc magazine   january 2015  usaPc magazine   january 2015  usa
Pc magazine january 2015 usa
 
Teach yourself photoshop 2014
Teach yourself photoshop   2014Teach yourself photoshop   2014
Teach yourself photoshop 2014
 
Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06Kiến trúc máy tính và hợp ngữ bài 06
Kiến trúc máy tính và hợp ngữ bài 06
 
kiến trúc máy tính và hợp ngữ Bài 00
kiến trúc máy tính và hợp ngữ Bài 00kiến trúc máy tính và hợp ngữ Bài 00
kiến trúc máy tính và hợp ngữ Bài 00
 
Lập trình web - HTML cơ bản
Lập trình web - HTML cơ bảnLập trình web - HTML cơ bản
Lập trình web - HTML cơ bản
 
Cơ bản về tcp ip
Cơ bản về tcp ipCơ bản về tcp ip
Cơ bản về tcp ip
 
10 Command Line quan trọng để giao tiếp với Cisco IOs
10 Command Line quan trọng để giao tiếp với Cisco IOs10 Command Line quan trọng để giao tiếp với Cisco IOs
10 Command Line quan trọng để giao tiếp với Cisco IOs
 
Computer World - April 21 2014
Computer World - April 21 2014Computer World - April 21 2014
Computer World - April 21 2014
 

Kiến trúc máy tính và hợp ngữ bài 07

  • 1. Bài 07: Thiết kế bộ xử lý Phạm Tuấn Sơn ptson@fit.hcmus.edu.vn
  • 2. Quan điểm về cấu tạo CPU • William Stallings – Registers – ALU – CU – Internal bus Mục tiêu: hiểu được cấu tạo và hoạt động của CPU • Patterson & Hennessy – Datapath – Control Mục tiêu: thiết kế CPU 2
  • 3. Các bước thiết kế một CPU 1. Phân tích kiến trúc bộ lệnh (ISA) ⇒ các yêu cầu về datapath – Trình bày từng lệnh dưới dạng register transfers language (RTL) để thấy rõ ý nghĩa các các lệnh – datapath phải có thành phần lưu trữ (bộ nhớ chính / cache) cho các thanh ghi trong kiến trúc bộ lệnh – datapath phải hỗ trợ thực thi tất cả các lệnh 2. Lựa chọn các khối mạch cần thiết để xây dựng datapath – Khối mạch tổ hợp – Khối mạch tuần tự 3. Lắp ráp các khối mạch đáp ứng yêu cầu bộ lệnh 4. Phân tích mỗi lệnh để xác định các tín hiệu điều khiển cần thiết 5. Thiết kế mạch cho các tín hiệu điều khiển
  • 4. Vấn đề thiết kế datapath • Vấn đề: xây dựng một khối datapath phức tạp để xử lý một lệnh (nạp lệnh à thực thi lệnh à …) sẽ khó khăn và không hiệu quả • Giải pháp: chia nhỏ quá trình xử lý một lệnh thành các công đoạn nhỏ (stages), xây dựng khối xử lý cho từng công đoạn rồi lắp ráp thành datapath – Các công đoạn nhỏ dễ thiết kế – Dễ thay đổi, tối ưu một công đoạn mà ít ảnh hưởng tới các công đoạn khác
  • 5. Thiết kế bộ xử lý MIPS thu gọn • Bộ xử lý MIPS thu gọn gồm 9 lệnh – add $1, $2, $3 – sub $1, $2, $3 – and $1, $2, $3 – or $1, $2, $3 – lw $1, 0($2) – sw $1, 0($2) – beq $1, $2, NHAN – slt $1, $2, $3 – j NHAN • Tại sao là 9 lệnh này ? 5
  • 6. • Tất cả các lệnh MIPS đều dài 32 bit. Có 3 cấu trúc – R-type – I-type – J-type • Các trường – op (“opcode”): mã thao tác của lệnh, xác định lệnh làm gì – funct: kết hợp với op (nếu cần) để xác định lệnh làm gì – rs, rt, rd: địa chỉ các thanh ghi nguồn và đích – shamt: số bit dịch – address / immediate: địa chỉ hoặc hằng số tính toán – target address: địa chỉ cần nhảy tới op target address 02631 6 bits 26 bits op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bits op rs rt address/immediate 016212631 6 bits 16 bits5 bits5 bits Nhắc lại: Các cấu trúc lệnh của MIPS
  • 7. • add, sub, and, or, slt – add rd,rs,rt – sub rd,rs,rt – and rd,rs,rt – or rd,rs,rt – slt rd,rs,rt • lw, sw, beq – lw rt,imm16(rs) – sw rt,imm16(rs) – beq rs,rt,imm16 • j – j addr26 op rs rt rd shamt funct 061116212631 6 bits 6 bits5 bits5 bits5 bits5 bits op rs rt immediate 016212631 6 bits 16 bits5 bits5 bits Cấu trúc các lệnh trong CPU MIPS thu gọn op target address 02631 6 bits 26 bits
  • 8. Các công đoạn lệnh (1/3) • Công đoạn 1: Nạp lệnh (Instruction Fetch) – Nạp lệnh 32 bit từ bộ nhớ tại địa chỉ trong thanh ghi PC vào thanh ghi lệnh. Công đoạn này như nhau cho tất cả các lệnh – Sau đó, tăng PC để chuẩn bị nạp lệnh kế tiếp sau khi xử lý xong lệnh này (PC = PC + 4) • Công đoạn 2: Giải mã lệnh (Instruction Decode) – Phân tích các trường trong lệnh • Xác định opcode để biết loại lệnh và vị trí của các trường khác • Sau đó, đọc các thanh ghi nguồn để chuẩn bị thực hiện công đoạn tiếp theo Ví dụ – Lệnh add, đọc 2 thanh ghi nguồn – Lệnh lw, đọc 1 thanh ghi nguồn
  • 9. • Công đoạn 3: Tính toán (ALU – Arithmetic-Logic Unit) – Công việc chính của hầu hết các lệnh thực hiện tại công đoạn này: tính toán số học (+, -), luận lý (&, |), so sánh (beq,slt) – Lệnh beq tính vị trí cần nhảy tới – Còn lệnh lw và sw làm gì trong công đoạn này ? • lw $t0, 40($t1) • Địa chỉ của vùng nhớ cần truy xuất = giá trị của $t1 CỘNG 40 • Do đó, thực hiện phép cộng trong công đoạn này Các công đoạn lệnh (2/3)
  • 10. Các công đoạn lệnh (3/3) • Công đoạn 4: Truy xuất bộ nhớ (Memory Access) – Thực sự chỉ có lệnh lw và sw thực hiện công đoạn lệnh này – Do công việc truy xuất bộ nhớ mất thời gian tương đối nhiều nên cần một công đoạn riêng • Công đoạn 5: Ghi kết quả vào thanh ghi (Register Write) – Hầu hết các lệnh đều ghi kết quả tính toán vào một thanh ghi như tính toán số học, luận lý, lw, slt – Còn các lệnh sw, lệnh nhảy ? • Không ghi kết quả gì vào thanh ghi • Do đó, các lệnh này không làm gì tại công đoạn lệnh này
  • 11. Tại sao lại 5 công đoạn ? • Chỉ có lệnh lw thực hiện cả 5 công đoạn. Vậy tại sao MIPS lại chia làm 5 công đoạn ? – Đó là sự tổ hợp đầy đủ cho tất cả các thao tác cần thiết của tất cả các lệnh – Thời gian thực hiện mỗi công đoạn không quá chênh lệch nhau • Có thể có nhiều công đoạn lệnh hơn không ? – Có, các kiến trúc khác như x86
  • 12. Kỹ thuật thiết kế CPU 1 chu kỳ • Thiết kế CPU 1 chu kỳ: Tất cả các công đoạn của 1 lệnh được xử lý trong 1 chu kỳ đồng hồ – Chu kỳ đồng hồ phải đủ lâu để có thể hoàn thành xử lý mọi lệnh 1. Instruction Fetch 2. Decode/ Register Read 3. Execute 4. Memory 5. Reg. Write
  • 13. Lệnh Register Transfers Nạp {op , rs , rt , rd , shamt , funct} ← MEM[ PC ] lệnh {op , rs , rt , Imm16} ← MEM[ PC ] add R[rd] ←R[rs] + R[rt]; PC ← PC + 4 sub R[rd] ←R[rs] – R[rt]; PC ← PC + 4 and R[rd] ←R[rs] & R[rt]; PC ← PC + 4 or R[rd] ←R[rs] | R[rt]; PC ← PC + 4 lw R[rt] ← MEM[ R[rs] + sign_ext(imm16)]; PC ← PC + 4 sw MEM[ R[rs] + sign_ext(imm16) ] ←R[rt]; PC ← PC + 4 beq if ( R[rs] == R[rt] ) then PC ← PC + 4 + (sign_ext(imm16) << 2) else PC ← PC + 4 slt if ( R[rs] < R[rt] ) then R[rd] ← 1; PC ← PC + 4 j PC = {PC[31:28],Addr26 << 2} Bước 1: Biểu diễn các lệnh dưới dạng RTL
  • 14. Bước 1: Các khối mạch cần thiết • Bộ nhớ (MEM) – Lệnh + Dữ liệu • Thanh ghi (32 x 32) – Đọc RS – Đọc RT – Ghi RT / RD • Thanh ghi PC (Program Counter) • Sign Extender • Đơn vị thực hiện các phép tính add/sub/and/or trên các thanh ghi hoặc hằng số • Đơn vị thực hiện (PC + 4) • So sánh thanh ghi ? (lệnh beq,slt)
  • 15. Bước 2: Các thành phần của datapath • Các khối mạch tổ hợp • Các khối lưu trữ
  • 16. Các khối mạch tổ hợp • Adder Shift left 2 • MUX Extender • ALU 32 32 A B 32 Sum CarryOut 32 32 A B 32 Result OP 32 A B 32 Y 32 Select Adder MUX ALU CarryIn Extender 3216 imm16 Shift left 2
  • 17. Khối lưu trữ: Bộ nhớ • Bộ nhớ – Một đường dữ liệu vào • Data In – Một đường dữ liệu ra • Data Out – Đường địa chỉ (address) để xác định từ nhớ nào được truy xuất – Tính hiệu Write Enable = 1: xác định dữ liệu có được ghi vào bộ nhớ qua đường vào dữ liệu hay không Data In Write Enable 32 32 DataOut Address
  • 18. Khối lưu trữ: Thanh ghi • Xây dựng dựa trên các mạch lật (như mạch lật D) – N bit đầu vào (Data In) – N bit đầu ra (Data Out) – Tín hiệu Write Enable • Giá trị 0: dữ liệu trong thanh ghi không thay đổi • Giá trị 1: cho phép ghi dữ liệu từ Data In vào thanh ghi • Tập thanh ghi gồm 32 thanh ghi – 2 đường truyền dữ liệu ra 32 bit busA và busB – Một đường truyền dữ liệu vào busW • Thanh ghi được lựa chọn như sau – RA lựa chọn thanh ghi để đưa dữ liệu ra busA – RB lựa chọn thanh ghi để đưa dữ liệu ra busB RB – RW lựa chọn thanh ghi để ghi dữ liệu từ busW vào khi Write Enable = 1 Data In Write Enable N N Data Out busW Write Enable 32 32 busA 32 busB 5 5 5 RWRA RB 32 32-bit Registers
  • 19. Bước 3 : Lắp ráp các khối mạch thành datapath a. Công đoạn 1: Nạp lệnh b. Công đoạn 2: Giải mã lệnh c. Công đoạn 3: Thực thi lệnh d. Công đoạn 4: Truy xuất bộ nhớ e. Công đoạn 5: Ghi kết quả vào thanh ghi
  • 20. 3a: Khối nạp lệnh • Tất cả các lệnh đều thực hiện như nhau – Nạp lệnh • IR ← mem[PC] – Cập nhật thanh ghi PC • PC ← PC + 4 • Lệnh nhảy: PC ← “???” 32 Instruction WordAddress Instruction Memory PC 4 32 32-bit Registers 1 0 ???adder
  • 21. 3b: Khối giải mã lệnh • Tất cả các lệnh đều thực hiện như nhau – Giải mã lệnh sẽ xác định được các giá trị Ra, Rb, Rw (tương ứng với các trường Rs, Rt, Rd), và các tín hiệu điều khiển RegWr,… RegWr 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32-bit Registers Rs RtRd
  • 22. • Các lệnh R-Format add,sub,and,or,beq,slt – R[rs] op R[rt] 32 ALUctr 32busA 32 busB ALU 3c: Khối thực thi lệnh (1/2) = Equal
  • 23. • Lệnh lw, sw – Mem[R[rs] + SignExt[imm16]] 3c: Khối thực thi lệnh (2/2) 32 ALUctr 32busA 32 busB Extender 3216 imm16 ALUSrc 0 1 ALU = Equal adder PC+4 Shift left 2 PC 4 1 0 • Lệnh beq – PC + 4 + (SignExt[imm16]] << 2) adder PCSrc
  • 24. • Lệnh lw, sw – Mem[R[rs] + SignExt[imm16]] Ví dụ: lw rt,rs,imm16 – Mem[ R[rs] + SignExt[imm16] ] = R[rt] Ví dụ: sw rt, rs, imm16 3d: Truy xuất bộ nhớ 32 ALUctr 32busA 32 busB Extender 3216 imm16 ALUSrc Data In 32 MemWr 0 1 ALU WrEn Adr Data Memory = Equal
  • 25. • Các lệnh add,sub,add,or,lw,slt – R[rd] = R[rs] op R[rt] – R[rt] = Mem[R[rs] + SignExt[imm16]] 32 ALUctr busW RegWr 32 32busA 32 busB 5 5 Rw Ra Rb RegFile Rs Rt Rt RdRegDst Extender 3216 imm16 ALUSrc MemtoReg Data In 32 MemWr01 0 1 ALU 0 1 WrEn Adr Data Memory 5 3f: Ghi kết quả vào thanh ghi
  • 26. Sơ đồ datapath tổng quát 26
  • 27. Bước 4+5: Thiết kế đơn vị điều khiển 27
  • 28. Thiết kế đơn vị điều khiển chính (1/2) 28
  • 29. Thiết kế đơn vị điều khiển chính (2/2) 29
  • 30. Thiết kế đơn vị điều khiển ALU (1/2) 30
  • 31. Thiết kế đơn vị điều khiển ALU (2/2) 31
  • 32. Sơ đồ xử lý lệnh R-Format 32
  • 33. Sơ đồ xử lý lệnh lw 33
  • 34. Sơ đồ xử lý lệnh beq 34
  • 36. Hạn chế của kỹ thuật thiết kế CPU một chu kỳ • Kỹ thuật thiết kế CPU 1 chu kỳ không còn được sử dụng vì không hiệu quả – Tất cả công đoạn của 1 lệnh phải xử lý trong một chu kỳ theo tín hiệu đồng bộ nên các thành phần mạch có khả năng dùng chung đều được tách riêng, làm cho sơ đồ mạch phức tạp hơn • Thành phần tính toán: ALU, Adder • Thành phần lưu trữ: Instruction memory, Data memory – Một chu kỳ đồng hồ phải đủ lâu để xử lý được lệnh phức tạp nhất. Trong MIPS, lệnh lw xử lý phức tạp nhất (5 công đoạn), trong khi tất cả các lệnh khác chỉ mất 3 (beq) hoặc 4 (R-Format, …) công đoạn – Với chương trình có IC (instruction count) lệnh thì sẽ xử lý trong 800×IC (ps)
  • 37. Kỹ thuật thiết kế CPU nhiều chu kỳ • Thiết kế CPU nhiều chu kỳ: Mỗi công đoạn lệnh thực hiện trong 1 chu kỳ – Mỗi chu kỳ đồng hồ phải đủ lâu để thực hiện mọi công đoạn lệnh – Với chương trình có IC (instruction count) lệnh thì sẽ xử lý trong (0.25×5 + 0.1×4 + 0.52×4 + 0.11×3 + 0.02×3) × 200 × IC = 824×IC (ps) !!! 37 1. Instruction Fetch 2. Decode/ Register Read 3. Execute 4. Memory 5. Reg. Write
  • 38. Sơ đồ khối CPU nhiều chu kỳ • Do mỗi công đoạn được thực thi trong một chu kỳ riêng, nên có thể ghép các thành phần mạch dùng chung (ALU + Adder, Imem + DMem) mà không xảy ra đụng độ • Cần thêm các thanh ghi để lưu giữ kết quả trung gian của các công đoạn lệnh (A, B, ALUOut,…) 38
  • 39. … • Thiết kế chi tiết datapath và control của bộ xử lý theo kỹ thuật nhiều chu kỳ à môn KTMT nâng cao 39
  • 40. Tham khảo • Phần 5.5, P&H 40