Hiện nay, công nghệvi mạch phát triển rất nhanh và tạo ra rất nhiều hướng phát
triển mới cho tương lai. Điển hình cho sựphát triển nay là xuất hiện của các IC logic lập
trình được nhưPLA, FPGA, ASIC . các IC nay có mức độtích hợp ngày càng cao(có thể
chứa trên 1 triệu Transitor đối với loại VLSI), các ứng dụng của nó cũng trởnên phổbiến
hơn.Do mức độtích hợp của các IC cao dẫn theo sựphức tạp trong cấu trúc của nó,chinh
vì vây yêu cầu đặt ra là cần có 1 công cụvạn năng đểhỗtrợcho việc thiết kếsố. Từ đó dẫn
đến sựra đời của các ngôn ngữmô tảphần cứng nhưVHDL,Verilog.Nó giúp cho các
nhà thiết kếdễdàng hơn trong việc thiết kếhệthống sốdựa trên các IC lập trình được này.
Em chọn đềtài “Thiết kếRisc Microcontroller dùng VHDL” với mục đích là tìm
hiểu vềcác IC Logic lập trình được, cách thức lập trình mô tảphần cứng trên ngôn ngữ
VHDL, và cấu trúc, họat động của 1 MCU dạng RISC.
Em xin chân thành cảm ơn các thầy cô trong trường Đại học Bách khoa TPHCM
nói chung và các thầy cô trong khoa Điện- Điện tửnói riêng đã truyền dạy những kinh
nghiệm quý báu và giúp đởem trong suốt quá trình học tập.
Đặc biệt, em xin gửi lời cảm ơn chân thành đến thầy HỒTRUNG MỸngười đã tận tình
giúp đởem hoàn thành đồán này.
65 trang |
Chia sẻ: ngtr9097 | Lượt xem: 3258 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế Risc Microcontroller sử dụng VHDL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
1
Trường Đại học Bách Khoa Tp HCM
Khoa Điện-Điện tử
ĐỒ ÁN MÔN HỌC
ĐIỆN TỬ VIỄN THÔNG 1
ĐỀ TÀI: THIẾT KẾ RISC MICROCONTROLLER
SỬ DỤNG VHDL
GVHD: HỒ TRUNG MỸ
SVTH : PHẠM HƯNG THỊNH
MSSV : 40202563
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
2
Lời mở đầu
Hiện nay, công nghệ vi mạch phát triển rất nhanh và tạo ra rất nhiều hướng phát
triển mới cho tương lai. Điển hình cho sự phát triển nay là xuất hiện của các IC logic lập
trình được như PLA, FPGA, ASIC .... các IC nay có mức độ tích hợp ngày càng cao(có thể
chứa trên 1 triệu Transitor đối với loại VLSI), các ứng dụng của nó cũng trở nên phổ biến
hơn.Do mức độ tích hợp của các IC cao dẫn theo sự phức tạp trong cấu trúc của nó,chinh
vì vây yêu cầu đặt ra là cần có 1 công cụ vạn năng để hỗ trợ cho việc thiết kế số. Từ đó dẫn
đến sự ra đời của các ngôn ngữ mô tả phần cứng như VHDL,Verilog...Nó giúp cho các
nhà thiết kế dễ dàng hơn trong việc thiết kế hệ thống số dựa trên các IC lập trình được này.
Em chọn đề tài “Thiết kế Risc Microcontroller dùng VHDL” với mục đích là tìm
hiểu về các IC Logic lập trình được, cách thức lập trình mô tả phần cứng trên ngôn ngữ
VHDL, và cấu trúc, họat động của 1 MCU dạng RISC.
Em xin chân thành cảm ơn các thầy cô trong trường Đại học Bách khoa TPHCM
nói chung và các thầy cô trong khoa Điện- Điện tử nói riêng đã truyền dạy những kinh
nghiệm quý báu và giúp đở em trong suốt quá trình học tập.
Đặc biệt, em xin gửi lời cảm ơn chân thành đến thầy HỒ TRUNG MỸ người đã tận tình
giúp đở em hoàn thành đồ án này.
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
3
Mục lục
trang
I > Giới Thiệu đề tài 4
II> KHÁI QUÁT VỀ RISC VÀ CISC 5
III> TẬP LỆNH 6
IV > PIPELINE PROCESSING 12
V> SƠ ĐỒ KHỐI CỦA THIẾT KẾ RISC 14
VI> THIẾT KẾ ĐƯỜNG DỮ LIỆU (DATAPATH) 16
VII> THIẾT KẾ ĐƠN VỊ ĐIỀU KHIỂN (CONTROL UNIT) 25
VIII> CHƯƠNG TRÌNH VHDL VÀ KẾT QUẢ MÔ PHỎNG 28
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
4
I> GIỚI THIỆU ĐỀ TÀI
1. Mục đích cùa đồ án:
Tìm hiểu cấu trúc, và hoạt động của 1 RISC Microcontroller cơ bản,
Thiết kế và dùng ngôn ngữ VHDL để mô tả RISC MCU.
2. Phạm vi thiết kế của đồ án:
Thiết kế chỉ thực hiện các chức năng cơ bản của 1 MCU như: thưc hiện các
phép tóan cộng trừ, logic, dịch, di chuyển dữ liệu, rẽ nhánh không điều kiện và có điều kiện, gọi
hàm, và các lệnh tác động lên bit.
Thiết kế dựa trên tập lệnh của Atmel AVR AT90S1200. Bằng cách này,
Thiết kế có thể sử dụng các công cụ assempler, simulater do Atmel cung cấp.
Do giới hạn của đề tài nên RISC MCU không hỗ trợ ngắt ngoài, Timer, Port
IO 2 chiều, analog comparator, điện trở kéo lên bên trong, watchdog reset... như AVR
AT90s1200.
Thiết kế sử dụng phần mềm MAX + plus II để thực hiện và mô phỏng thiết
kế. MAX + plus II là phần mềm do ALTERA phát triển. Nó có một số Modul quan trọng
cho thiết kế, ví dụ như Compiler, Simulater, Wavefrom editor, và Programmer...
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
5
II> KHÁI QUÁT VỀ RISC VÀ CISC
1. Comples Instruction Set Computer (CISC)
Những năm trước đây, Tập lệnh của máy tính có số lượng lệnh ít và đơn giản.
Với sự phát triển của kỹ thuật và yêu cầu của các ứng dụng khác nhau, tập lệnh của máy tính ngày
càng tăng về số lượng lẫn độ phức tạp( sử dụng nhiều loại dữ liệu và nhiều mode định địa chỉ).
Một máy tính có tập lệnh lớn và phức tạp được gọi là CISC(Complex Intrucstion Set Computer).
Đặc tính cơ bản của cấu trúc CISC:
- Có số lượng lệnh rất nhiều, thông thường từ 100 tới 250 lệnh.
- Một số lệnh thực hiện các chức năng đặc biệt và thường không được sử dụng.
- Rất nhiều chế độ định địa chỉ, thường có khoảng từ 5->20 chế độ định địa chỉ.
- Cấu trúc lệnh không cố định và dài, thường từ 2 tới 6 bytes.
- Lệnh có tóan hạng chứa trong ô nhớ.
2. Reduce Instruction Set Computer (RISC)
Vào đầu năm 1980, trong các thống kế của hệ thống máy tính, người ta thấy
hầu hết 80% số lệnh trong tập lệnh ít được sử dụng. Vì vậy để tăng hiệu quả cho ứng dụng và việc
thiết kế, người ta đặt ra vấn đề về một máy tính có tập lệnh được rút gọn và đơn giản được gọi là
RISC (Reduce Intruction Set Computer).
Đặc tính cơ bản của cấu trúc RISC:
- Chu kỳ lệnh được chia thành 2 chu kỳ: tìm nạp lệnh và thực thi lệnh.
- Lệnh được thực thi trong 1 chu kỳ xung clock.
- Lệnh có chiều dài cố định(16 bit hay 32 bit), và có định dạng dễ giải mã.
- Tập lệnh có số lượng lệnh ít.
- Ít chế độ định địa chỉ.
- Hạn chế lệnh truy xuất bộ nhớ, chỉ truy xuất thông qua con trỏ dữ liệu.
- Tất cả các lệnh được thự hiện thông qua các thanh ghi của CPU.
- Thường sử dụng mạch logic để điều khiển thực thi lệnh hơn là sử dụng vi chương
trình (microprogram) như CISC.
- Số lượng thanh ghi đa năng khá nhiều (ít nhất là 32 Register).
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
6
III> TẬP LỆNH:
1. Tóm tắt Tập lệnh
Thiết kế dựa trên tập lệnh của Atmel AVR AT90S1200. Bằng cách này,
Thiết kế có thể sử dụng các công cụ assempler, simulater do Atmel cung cấp.
Tập lệnh được chia thành 4 nhóm lệnh:(xem bảng 3.1)
- Nhóm lệnh số học và logic: gồm các lệnh tính tóan số học và logic
- Nhóm lệnh rẽ nhánh: gồm các lệnh nhảy không điều kiện, nhảy có điều
kiện theo các cờ trạng thái, lệnh gọi hàm và Return.
- Nhóm lệnh truyền dữ liệu: gồm các lệnh di chuyển dữ liệu giữa các thanh
ghi, ô nhớ RAM và Port IO bên ngoài.
- Nhóm lệnh về bit: gồm các lệnh bit như xóa, đặt bit, lệnh dịch xoay...
2. Chế độ định Địa chỉ (Addressing Modes):
Theo thiết kế thì RISC có 6 chế độ định địa chỉ. RA, RB được xem như là
tóan hạng đích và toán hạng nguồn.
2.1 Định địa chỉ trực tiếp thanh ghi đơn:
Lệnh có một toán hạng là RA: vừa là thanh ghi nguồn vừa là thanh ghi đích.
Ví dụ như lệnh: dịch, xoay, set bit...
2.2 Định địa chỉ trực tiếp thanh ghi đôi:
Lệnh có hai toán hạng là RA và RB. Sau khi tính tóan kết quả được ghi vào
RA.Ví dụ như lệnh tóan học và logic…
2.3 Định địa chỉ I/O trực tiếp :
Toán hạng là I/O register. Địa chỉ được chứa trong 6 bit trong từ lệnh. Cách
định địa chỉ này được sử dụng trong lệnh IN và OUT.
2.4 Định địa chỉ dữ liệu gián tiếp:
Tóan hạng là ô nhớ Ram có địa chỉ chứa trong thanh ghi Z. Cách định địa chỉ
được sử dụng trong lệnh LD và St.
2.5 Định địa chỉ tương đối bộ nhớ chương trình:
Cách định địa chỉ này được sử dụng trong lệnh RJMP, RCALL. Địa chỉ lệnh
kế được tính bằng PC + Offset. Offset được chứa trong từ lệnh.
2.6 Định địa chỉ tức thời:
Tóan hạng là hằng số 8 bit đựơc cho trong từ lệnh
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
7
Bảng 3.1 Tóm tắt Tập lệnh
Mnemonic Operation Flags
ARITHMETIC AND LOGIC INSTRUCTIONS
ADD Add Two Registers S,Z,C,N,V,H
ADC Add with Carry Two Registers S,Z,C,N,V,H
SUB Subtract Two Registers S,Z,C,N,V,H
SUBI Subtract Constant from Register S,Z,C,N,V,H
SBC Subtract with Carry Two Registers S,Z,C,N,V,H
SBCI Subtract with Carry Constant from Register S,Z,C,N,V,H
AND Logical AND Registers S,Z,N,V
ANDI Logical AND Register and Constant S,Z,N,V
OR Logical OR Registers S,Z,N,V
ORI Logical OR Register and Constant S,Z,N,V
EOR Exclusive OR Registers S,Z,N,V
COM One’s Complement Register S,C,Z,N,V
NEG Negate (2’s Complement) Register S,C,Z,N,V,H
SBR Set Bit(s) in Register S,Z,N,V
CBR Clear Bit(s) in Register S,Z,N,V
INC Increment S,Z,N,V
DEC Decrement S,Z,N,V
TST Test for Zero or Minus S,Z,N,V
CLR Clear Register S,Z,N,V
SER Set Register None
BRANCH INSTRUCTIONS
RJMP Relative Jump None
RCALL Relative Subroutine Call None
RET Subroutine Return None
CP Compare (Rd - Rr) S,C,Z,N,V,H
CPC Compare with Carry (Rd - Rr - C) S,C,Z,N,V,H
CPI Compare Register with Immediate (Rd – K) S,C,Z,N,V,H
BRBS Branch if Status Flag Set None
BRBC Branch if Status Flag Cleared None
BREQ Branch if Equal (Z = 1) None
BRNE Branch if Not Equal (Z = 0) None
BRCS Branch if Carry Set (C = 1) None
BRCC Branch if Carry Cleared (C = 0) None
BRSH Branch if Same or Higher (C = 0) None
BRLO Branch if Lower (C = 1 None
BRMI Branch if Minus (N = 1) None
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
8
BRPL Branch if Plus (N = 0) None
BRGE Branch if Greater of Equal, Signed (S = 1) None
BRLT Branch if Less than Zero, Signed (S = 0) None
BRHS Branch if Half Carry Set (H = 1) None
BRHC Branch if Half Carry Cleared (H = 0) None
BRVS Branch if Overflow Flag is Set (V = 1) None
BRVC Branch if Overflow Flag is Cleared (V = 0) None
DATA TRANSFER INSTRUCTIONS
MOV Move Between Registers None
LDI Load Immediate to Register None
LD Z Load Indirect with Z-Pointer None
LD Z+ Load Indirect and Post-Increment with Z-Pointer None
LD –Z Load Indirect and Pre-Decrement with Z-Pointer None
ST Z Store Indirect with Z-Pointer None
ST Z+ Store Indirect and Post-Increment with Z-Pointer None
ST -Z Store Indirect and Pre-Decrement with Z-Pointer None
IN In Port to Register None
OUT Out Register to Port None
BIT INSTRUCTIONS
SBI Set Bit in I/O Register None
CBI Clear Bit in I/O Register None
LSL Logical Shift Left S,C,Z,N,V
LSR Logical Shift Right S,C,Z,N,V
ROL Rotate Left through Carry S,C,Z,N,V
ROR Rotate Right through Carry S,C,Z,N,V
ASR Arithmetic Shift Right S,C,Z,N,V
SWAP Swap Nibbles None
BSET Flag Set Any
BCLR Flag Clear Any
SEC Set Carry C
CLC Clear Carry C
SEN Set Negative Flag N
CLN Clear Negative Flag N
SEZ Set Zero Flag Z
CLZ Clear Zero Flag Z
SES Set Signed Test Flag S
CLS Clear Signed Test Flag S
SEV Set Two’s Complement Overflow V
CLV Clear Two’s Complement Overflow V
SHE Set Half-carry Flag in SREG H
CLH Clear Half-carry Flag in SREG H
NOP No Operation None
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
9
3. Các Định dạng Lệnh:
Lệnh của RISC có chiều dài cố định và dễ giải mã. Trong Thiết kế này, lệnh
có chiều dài là 16 bit và có những định dạng sau đây để tiện cho việc giải mã.
Đối với lệnh có 2 toán hạng là thanh ghi đa dụng, mỗi toán hạng cần 4 bit
d(destination) và r(soure) ,ứng với địa chỉ 32 thanh ghi đa năng, để định địa chỉ thanh ghi. Ví dụ
như lệnh ADD, AND...
Đối với các lệnh có 1 toán hạng là thanh ghi, cần 4 bit d để định địa chì cho
tóan hạng đích và nguồn. ví dụ như các lệnh NEG, CMP...
Đối với các lệnh có tóan hạng là hằng số (định địa chỉ tức thời), thì từ lệnh
phải chứa 8 bit K của hằng số và 4 bit d địa chỉ của thanh ghi nguồn. Ví dụ như các lệnh ANDI,
ADDI...
Đối với các lệnh rẽ nhánh không điều kiện như lệnh RJMP,RCALL thì cần 9
bit K làm giá trị bù 2 của Offset.
Đối với các lệnh rẽ nhánh có điều kiện như lệnh BRBS, BRBC... thì cần 7 bit
K làm giá trị bù 2 của Offset và thêm 3 s bit để chọn điều kiện nhảy, chọn 1 trong 8 cờ trạng thái
Đối với các lệnh có toán hạng là Port I/O thì từ lệnh có chứa 4 bit A để xác
định địa chỉ I/O, và 4 bit d để xác định tóan hạng đích, ví dụ như lệnh IN, OUT..., hoặc 3 bit b để
xác định 1 trong 8 bit I/O cần tác động, ví dụ như lệnh SBI,SBI.
d d d d r r r r
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
d d d d
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
d d d d K K K K K K K K
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
K K K K K K K K K
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
K K K K K s s s K K
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
10
Đối với các lệnh tác động đến bit của thanh ghi trạng thái ví dụ như lệnh
BCLR, BSET thì cần 3 bit s để chọn 1 trong 8 bit của thanh ghi.
4, Mã máy:
Trong tập lệnh có thể ghép các lệnh tương đương để có thể sử dụng chung
mã máy. Chính vì vậy mà tập mã máy sẽ được rút gọn hơn giúp cho việc giải mã đơn giản hơn.
bảng 3.2 chỉ ra các lệnh tương đương sử dụng chung mã máy và bảng 3.3 là bảng tập mã máy
ADD LSL
ADC ROL
AND TST
EOR CLR
ORI SBR
ANDI CBR
LDI SER
BCLR CLI, CLT, CLH, CLS, CLV, CLN, CLZ, CLC
BSET SEI, SET, SEH, SES, SEV, SEN, SEZ, SEC
BRBC BRID, BRTC, BRHS, BRGE, BRVC, BRPL, BRNE, BRCC,
BRSH
BRBS BRIE, BRTS, BRHS, BRLT, BRVS, BRMI, BREQ, BRCS,
BRLO
Bảng 3.2 Các lệnh tương đương
Ví dụ: lệnh ADD và lệnh LSL. Ta thấy lệnh LSL là lệnh dịch trái tương ứng với
việc nhân 1 số với 2. Nếu lệnh ADD thực hiện cộng 2 số hạng giống nhau sẽ tương đương với
việc nhân 1 số với 2. Như vậy 2 lệnh này tương đương nhau có thể sử dụng chung mã máy.
d d d d A A A A
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
A A A A b b b
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
s s s
15 14 13 12 | 11 10 9 8 | 7 6 5 4 | 3 2 1 0
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
11
Bảng 3.3 Tập mã máy
NOP 0000 0000 0000 0000
CPC 0000 01rd dddd rrrr
SBC 0000 10rd dddd rrrr
ADD 0000 11rd dddd rrrr (LSL)
NO OPERATION
COMPARE WITH CARRY
SUBTRAC WITH CARRY
CP 0001 01rd dddd rrrr
SUB 0001 10rd dddd rrrr
ADC 0001 11rd dddd rrrr (ROL)
COMPARE
AND 0010 00rd dddd rrrr (TST)
EOR 0010 01rd dddd rrrr (CLR)
OR 0010 10rd dddd rrrr
MOV 0010 11rd dddd rrrr
XOR
CPI 0011 KKKK dddd KKKK COMPARE IMMEDIATE
SBCI 0100 KKKK dddd KKKK SUB IMMEDIATE WITH CAR.
SUBI 0101 KKKK dddd KKKK
ORI 0110 KKKK dddd KKKK (SBR)
ANDI 0111 KKKK dddd KKKK (CBR)
LD 1000 000d dddd 0000
ST 1000 001r rrrr 0000
( Z ) <= (ddddd)
(ddddd) <= ( Z )
LD Z+ 1001 000d dddd 0001
LD –Z 1001 000d dddd 0010
ST Z+ 1001 001r rrrr 0001
ST –Z 1001 001r rrrr 0010
COM 1001 010d dddd 0000
NEG 1001 010d dddd 0001
SWAP 1001 010d dddd 0010
INC 1001 010d dddd 0011
ASR 1001 010d dddd 0101
LSR 1001 010d dddd 0110
ROR 1001 010d dddd 0111
DEC 1001 010d dddd 1010
RET 1001 0101 0000 1000
CBI 1001 1000 AAAA Abbb
SBI 1001 1010 AAAA Abbb
COMPLEMENT
ARITHMETIC SHIFT RIGHT
CLEAR BIT IO
SET BIT IO
IN 1011 0AAd dddd AAAA
OUT 1011 1AAr rrrr AAAA
RJMP 1100 kkkk kkkk kkkk
RCALL 1101 kkkk kkkk kkkk
LDI 1110 KKKK dddd KKKK LOAD IMMEDIATE
BRBS 1111 00kk kkkk ksss
BRBC 1111 01kk kkkk ksss
BRANCH BIT SET
BRANCH BIT CLEAR
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
12
IV > PIPELINE PROCESSING
1. Chu kỳ Lệnh:
Khác với CISC, trong cấu trúc của RISC chu kỳ lệnh được chia thành 2 chu
kỳ nhỏ: chu kỳ tìm nạp lệnh (Fetch) và Chu kỳ thực thi lệnh (Execute) đươc thể hiện ở hình 4.1.
FETCH EXECUTE
Instruction Fetch PC count Push Pop Decode & operate Latch Write
Hình 4.1 Chu kỳ lệnh của RISC
Trong chu kỳ tìm nạp lệnh, mã máy của 1 lệnh được nạp vào thanh ghi lệnh, PC bắt
đầu nạp lệnh mới.Tại chu kỳ thực thi lệnh đơn vị điều khiển sẽ giải mã biết lệnh cần thực hiện và
tóan hạng cần tác động , tính tóan kết quả, chốt kết quả, và ghi lại kết quả tại pha cuối cùng của
chu kỳ thực thi lệnh.
Ví dụ như lệnh ADD R1,R2;
Tại chu kỳ tìm nạp lệnh, mã máy lệnh ADD đươc đưa vào thanh ghi lệnh và PC tiếp
tục tìm nạp lệnh mới. Tại chu kỳ thực thi lệnh, Đơn vị điều khiển sẽ giải mã lệnh và thưc hiện
Cộng R1 và R2 sau đó kết quả được chốt lại, tới pha cuối của chu kỳ thực thi lệnh thi kết quả sẽ
được ghi trở lại vào R1. Chu kỳ lệnh ADD đã hoàn thành.
2. Sử dụng Đường ống (PipeLine)
Như đã đề cập, chu kỳ lệnh của RISC sẽ được chia thành 2 chu kỳ Fetch và
Execute. Nếu 2 chu kỳ này họat động nối tiếp nhau, chu kỳ đầu tìm nạp lệnh chu kỳ 2 thực thi
lệnh như hình 4.2, thì 1 chu kỳ lệnh sẽ phải mất 2 chu kỳ xung clock.
Hình 4.2: Chu kỳ lệnh của MCU không sử dụng PipeLine
Ý tưởng của việc sử dụng đường ống ở đây là cho 2 chu kỳ Fetch và Execute
cùng họat động song song, có nghĩa là trong 1 chu kỳ xung clock MCU sẽ tìm nạp lệnh mới và
thực thi lệnh củ xem hình 4.3, vì vậy để thực hiện một chu kỳ lệnh chỉ tốn 1 xung clock, do đó
RISC sẽ hoạt động nhanh hơn.
Fetch0 Æ Execute0 Æ Fetch1 Æ Execute1 Æ Fetch 2 Æ Execute2 ...
ĐAMH Điện Tử Viễn Thông II ___________________________________ GVHD: Hồ Trung Mỹ
_____________________________________*******______________________________________
Thiết kế RISC microcontroller _________________________________ SVTH: Phạm Hưng Thịnh
_____________________________________*******______________________________________
13
Clock Transition Reset T1 T2 T3
PC(Program Counter) 0 1 2 3
Instruction 0 Fetch 0 Execute 0
Instruction 1 Fetch 1 Execute 1
Instruction 2 Fetch 2 Execute 2
Hình 4.3:chu kỳ lệnh sử dụng Pipeline
Tại chu k