Đồ án Thiết kế Risc Microcontroller sử dụng VHDL

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.

pdf65 trang | Chia sẻ: ngtr9097 | Lượt xem: 3200 | Lượt tải: 2download
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