ALU Arithmetic and Logic Unit Đơn vị số học vả logic ŒPU Central Processing Unit Bộ xử lý trung tâm cise Complex Instruction Set Máy tính có tập lệnh lớn và phúc FPGA Field Programmabl
Trang 1BO GIAO DUC VA DAO TAO
TRUONG DAI HOC BACH KHOA HA NOI
—¬ ef Gf f ———- —
LƯU THỊ THẢO
THIET KE LOI MEM CHO BO XU LY
TIIEO KIEN TRUC RISC
LUAN VAN TIIAC SI
CONG NGHE THONG TIN
Trang 2
BO GIAO DUC VA DAO TAO
TRUONG DALHQC BACH KHOA HA NOL
LƯU THỊ THÁO
THIẾT KÉ LỠI MÈM CTIO BỘ XỨ LÝ
'THEO KIÊN TRUC RISC
NGƯỜI HƯỚNG DÂN KHOA HỌC
TS NGUYEN KIM KHANH
HÀ NỘI — NAM 2013
Trang 3
LỚI CAM DOAX
Tôi xin cam đoan đây là công trinh nghiên cứu của tôi đưới sự hướng dẫn
của TS Nguyễn Kim Khánh
êu, kết quê nêu lrong luận văn là trưng thực và mọi trích đẫn trong
báo cáo đều dược ghi rồ nguồn gốc trong phản tài liệu tham khảo Nếu có sử dụng,
‘bat hợp pháp kết quả công trình nghiên củu của người khác trong báo cáo tôi xin
Thoàn toàn chịu (rách 1Ìnệm
Tác giả
1.eu Thị Thảu
Trang 4được sự động viên, khích lệ của thay Thay đã giúp đỡ lôi rất nhiều trong quá Irình
nghiên cứu, hướng, dân tận tỉnh trong cách thức và phương pháp nghiên cửa khoa
Tiọc cũng như hỗ trợ tôi trong việc tìm lãi Hệu
Để có được những kết quả trong luận văn mây, tôi xin gửi lời cảm ơn sâu sắc đến Thấy, Cô Viên Công nghẻ thông tin và Truyền thông, Trường Đại học Bách khoa Liả Nội đã tạo điều kiện cho tôi được học hỏi thông qua các môn học cũng như
Trang 5CHUONG 1: GIGI THIEU VE LOI MEM CUA BO VI XU’ LY VA BINH
HUONG THUC HIEN CUA LUAN VAN
1.4 Nội đụng thực hiện và công cụ sử đụng 229
Trang 6CHUONG 2: THIET KE CPU 8 BIT DITA TREN KIEN TRUC RISC
Trang 73.1 Khối Program Counter (PC)
3.2 Khoi ROM
3.3 Khoi RAM
3-4 Mỗ tả thanh ghi
3.5 M6 tA tp thanh ghi da dung (General Pupose Registers)
3.6 Mô tả thanh ghỉ IO
3.7 Mé t& thanh ghi ca trang thai (State Register)
4.3 Lưởng phát triển của để tái Hee
TAL LIEU THAM KHẢO
5
Trang 8
ALU Arithmetic and Logic Unit Đơn vị số học vả logic
ŒPU Central Processing Unit Bộ xử lý trung tâm
cise Complex Instruction Set Máy tính có tập lệnh lớn và phúc
FPGA Field Programmable = Gale Loại mạch tổ hợp có thé jap tinh
Arrays được
GPR General Purpose Register Thanh ghi da ning
MCU Microprogrammed Control Unit Đơn vị điểu khiến vi chương trình RISC Reduce Instruction Set Mây tính có tập lệnh rút gọn và đơn
Trang 9DANH MỤC BÁNG
Tảng 1.1 Tóm tắt tập lệnh
Bảng 1.2 Các lệnh tương đương
Bảng 1.3 Tập mã lệnh
Bang 2.1 Bang xac dinh điều kiện trân khi thực hiện X + Ý
Bang 2.2 Bang xác định điều kiện tràn khi thực hiện X — Y
Bang 2.3 Tập lệnh của bộ xứ lý BISC 8 bit
Bang 2.4 Các tín hiệu vào+a của khối Program Count
Bảng 2.5 Các tín hiệu vàoZa của khối ROM
Tảng 2.6 Các lin hiệu vào#ta cũa khối RAM
Bang 2.7 Các tín hiệu vao#+a của khối General Purpose Register
Bang 2.8 Các tín hiệu vao#ta của khối State Register
Tảng 2.9 Nhóm lệnh cơ bản của ALU
Trang 10
Hình 1.1 Quy trình thiết kế
Hình 1.2 Dạng lệnh bong kiểu định vì thanh ghi
Tình 1.3 Dạng lênh trong kiểu địh vị tức thì thanh ghỉ
Tình 1.4 Dạng lênh thâm nhập bộ nhớ trong của một số kiến nie RISC
Hình 1.5 Chu kỳ lệnh của RISC
Hình 1.6 Chu kỳ lệnh của MCU khéng str dung Pipeline
Hình 1.7 Chu kỳ lệnh sử dung Pipeline
Hình 1.8 Hiện tượng nghẽn đường ông
Tình 1.9 Sơ đồ chân của RISC
THình 1.10 Kiến trúc của RISC
Tlinh 2.1 Giao diện của bộ xử lý theo kiến tric RISC
Tĩnh 22 Dịnh dạng lệnh cho mỗi loại
Linh 2.6 Program ROM Symbol
llinh 2.7 RAM Symbol
Tlinh 2.8 Tập thanh ghỉ đa dụng
Hình 3.9 Sơ dễ khối cửa thanh ghi trạng thải
Trang 11Tình 2.13 Sơ đô trạng thái cửa đơn vị điều khiếu thực thì
Tình 31 Kết quả thục thí khối PC
Hinh 3.2 Kết quả thục thị khôi RƠM
Tình 3.3 Kết quả thực thì khối RAM
Hinh 3.1 Kết quả thực thị mé ta thanh ghi
Hình 3.5 Kết quả thực thi mô tả thanh ghi đa đụng,
Hinh 3.6 Kết quả thực thi mé ta thanh ghi 10
Hinh 3.7 Kết quả thực thi mé ta thanh ghi ca trang thai
Hinh 3.8 Kết qua thie thi mé tả b6 MUX
Tĩnh 3.9 Kết qua thye thi khéi ALU
Tĩnh 3.L0 Kết quả thực thi mô tã đơn vị điều khiên thục thí
Tlinh 3.1 La Két qua thyre thi mô tả tin hiệu điều khiển giải mã ALU
Tĩnh 3.LIb Kết quả thực thi mô tả tín hiệu điều khiên giải má thanh ghỉ đa đụng
Tĩnh 3.L1e Kết quả thực thị mô tả tin hiệu điều khiển giải mã State Register
Trang 12MO DAU
1 LY DO CHON DE TAT
Cùng với sự phát triển của xã hội, lĩnh vực Công nghệ thông tin và Truyền thông dã vươn lên chiếm vi thé ngày cảng cao trong tất cá các lĩnh vực kinh tê, xã hội, cũng nhu trong đời sống Công nghệ thông tin bây giờ không chỉ được hiếu trong chiếc máy tỉnh mà nó côn củ sâu vào các mặt đời sống xã hội, hông qua cáo
tệ nhúng, Một thành phân quan trọng của máy tính lả bộ xứ lý trung tâm (CPU)
Có rất nhiêu công sức được dau ur vao việc chế tạo các CPU nhằm tao ra cac may tính đáp ứng yêu cầu ngày cảng cao của xã hội Với sự phát triển nhanh chóng của
công nghệ silieon và chỉ phi giảm của mạch tích hợp, bộ xử lý RISC dang gia ting
sử dụng rộng rãi trong moi lĩnh vực RISC (Reduced Instruction Set Computer) 1a
một phan mở rộng của các nguyễn tắc kiến trủc máy tính với tập lệnh dơn giản hỏa Thiết kế đơn giản cung cấp hiệu năng vượt trội là lý tưởng để sử dựng Một số ứng đụng điển hình bao gằm: xử lý dữ liện thương mại, các ứng đụng tỉnh toán chuyên sâu khoa học và kỹ thuật, và kiếm soát thời gian thực
Để thiết kế một CPU với dây dũ chức năng cần một công cụ đủ nưạnh Từ đó din đến sự ra đời của các ngền ngữ mô ta phân cứng như VIIDL,Verilog Ngên
ngữ mô (4 phan cứng (VHDI,) sẽ đuợc sử đụng trong luận văn này Từ ngôn ngữ
VHDL các nhà thiết kế phan cứng có thể thiết kế ra những thiết bị phân cửng như CPU, bộ vi điểu khiến một cách nhanh chóng và cũng có thể thực hiện mô phỏng
và kiểm tra khả răng hoại động của thiết bị trước khi đua vào sân xuất, nhờ vậy có thể giảm bớt thời gian, chỉ phi sản xuất
Luan vin dã dược viết với mục dịch nhằm nghiên cửu vẻ thiết kế lối mém cho bộ xử lý theo kiến trúc RISC, phục vụ cho nhu cầu nghiên cứu các lĩnh vục chuyên sâu về tết bị phần cứng sau nảy
mất phát từ những lợi ích thực tê mà bộ xử lý có thể mang lại và niềm hy vọng của bán thân, tác giá đã mạnh dan chọn đề tài “7iết bể lãi mm cho bộ xứ lý
theo kién tric RTSC” làm đề tài nghiên cứu cho luận văn tốt nghiệp của minh.
Trang 132 MỤC ĐÍCH NGHIÊN CỨU
Trong quá trình nghiên cứu để tải, tác giả đã nghiên cứu các vấn dé chỉnh
sau:
-_ Tổng quan vẻ lõi mềm, kiến trac RISC bao gdm: Khai niệm lõi mẻm, lịch sử
kiến trúe RISC, các đặc tính cơ bản của RISC,
-_ Thiết kế tập lệnh của bệ xử lý RISC 8 bịt bằng ngôn ngữ VIIDL
- Mé phang và đánh giá kết quả trên phản mềm Max + Phw II
3 DỐI TƯỢNG — PHẠM VI NGHIÊN CỨU
'Thiết kế được xây dựng với mục đỉch tạo ra bộ xứ lý đơn giản dựa trên kiến trúc RISC, phục vụ cho nhủ câu nghiên cứu các lĩnh vực chuyên sâu vẻ thiết bị phần
cứng,
4 BỐ CỤC LUẬN VĂN
Luận văn được chia làm 4 chương với nội dung cụ thể như sau:
Chương 1: Giới thiệu về lõi mềm của bộ vỉ xử lý và định hướng thực
hiện của luận văn
Chương này phân tích về nhiệm vụ của luận văn, định hưởng giải quyết vẫn
để đặt ra, và tìm biểu lý thuyết liên quan sẽ sử dụng,
Chương 2: Thiết kế CPU 8 bit dựa trên liên trac RISC
Chương này trình bày tổ chức bộ nhớ CPU, tập lệnh của CPU và mô hình
thiết kế cụ thể từng khối của bộ xử lý theo kiến trúc RISC 8 bil
Chương 3: Kết quả thực thí
Chương tây trình bay kết quả thực (lí của từng khối, mô phỏng bằng phần mềm Max + Plus 11 (dùng ngôn ngữ VIIDL)
Chương 4: Kết luận
Trang 14Chương này trình bảy tóm tắt kết quả đại được và hướng phát triển tiếp theo
của luận văn
š PHƯƠNG PHÁP NGHIÊN CUU
Trang 15CHUONG 1: GIGI THIEU VE LOI MEM CUA BO VI XU LY
VẢ DỊNH HƯỚNG THỰC HIỆN CÚA UUẬN VĂN
1.1 NHIỆM VỤ CỦA ĐÈ TÀI
Tên đề tài: Thiết kế lõi mềm cho bộ xử lý theo kiến trúc RISC
Dé tat bao gdm các nội đưng cân phải thực hiện:
-_ Nghiên cứu kiến trúc RISC
-_ Thiết kế tập lệnh bằng ngôn ngữ VHDL
-_ Thử nghiệm vả đánh giá
1.2, DỊNH HƯỚNG GIẢI QUYẾT VẤN ĐỀ
Quy trình thiết kẻ mã luận văn đựa vào để thực hiện:
Thiết kế bằng ngôn ngữ VIIDL
.Mö phỏng trên phân mêm
FO Cai dit trén kit that
Trang 16Trong luận văn sẽ thực hiện hấu hết các vận để trong quy tri: tiên, báo
gồm:
1 Nghiên cửu kiến trúc RISC: Tìm hiểu kiến trúc RISC và tập lệnh của nó k2 Thiết kế tập lệnh bằng ngôn ngữ VHDL: Sử dụng ngôn ngữ VHDL dễ thiết kế lỗi mềm cho bộ xứ lý đựa vào kiến thùc đã tìm hiểu được về kiến
ngôn ngữ mô tá phần củng (ardware Description Language - HDL) của bộ vi xứ
Tý có thể được tối uu để dùng trưng các ứng dụng và được tổng hợp cho đối tượng,
TPGA hoặc ASIC,
Trong nhiễu ứng dung, 1éi mém cung cấp một số lợi ich hơn việc đặt mua
các bộ xử lý đã được thiết kế sẵn như giảm giá thành sản phẩm, linh hoat, không
phu thuộc vào nên tăng sẵn có, hạn chế tôi đa sự hao mờn
Ngày nay, lõi mềm vả EPGA được sử dụng nhiễu trong các ứng đụng nhúng,
1.3.2 KIÊN TRUC RISC [6, 7]
1.3.2.1 LỊCH SỬ KIEN TRÚC RISC
RISC (Reduce Tntruction SeL Computer - Máy tính với tập lệnh đơn giản hóa)
là một phương pháp thiết kế các VXL theo hưởng đơn giản hỏa tập lệnh, trong do thời gian thực thi tất cá các lệnh đều như nhau,
VXL RISC được biết đến đầu tiên là siêu máy tính CDC 6600 được Jim
Thornton va Seymour Cray thiết kế năm 1964, nó có 74 mã lệnh cộng với 12 máy
tình dơn giãn dược gọi là “bộ xứ lý ngoại ví” dễ xử lý 1O CDC 6600 sử dụng kiến
Trang 17trúc I.oad/Stere, nó hỗ trợ 2 phương pháp đánh địa chỉ, có 11 đơn vị được Pipeline,
$ đơn vị đọc dữ liệu và 2 đơn vị để lưu đữ liệu (bộ nhở của no được tô chức theo
bằng de đỏ các đơn vị đọc phi có thể hoạt động đồng thời) Tốc đệ xung đồng
Thö/lệnh nhanh Hơn TÔ lần so với tốc độ truy kuảt bộ nhớ
Một máy lính khác được thiết kế với kiến trúc I.oad/8tore là Data General Nova, Day là một máy tinh nhỏ 16 bít được thiết kế năm 1968 bởi một công ty Mỹ
tên là Data General
Tuy nhiên VXL RISC được biết đến nhiều nhất là đự án được tài trợ bởi
chương trình VLSI (Very Large - Scalelntcgration) của DARPA (Defense
Advanced Research Projects Agency) Chương trình nảy đã cho ra đời rất nhiều cái
tiễn liên quan đến thiết kế, sản xuất chín và cả đồ họa máy tính
Du an RISC cho ra doi VXL RISC - 1 năm 1982 VXL này chửa 11.420
transistor, ven 32 lệnh nhưng hoàn toàn vượt xa các VẤT, đơn chíp cũng thời VẤT,
RISC - H ra đời năm 1983 với 39 lệnh, chứa 10.760 transistor và nhanh gấp 3 lần
RISC -1
Cũng khoảng thời gian đó Ianh L Henmessy thực hiện dự án MIPS ở đại học Stanford nm 1981 MIPS hau nhs chi tập trung vào kỹ thuật Pipeline nhằm lận
dụng tối da khả năng của các VXL, Cho dù đã được sứ dụng trước đỏ, nhưng với
MIPS, kỹ thuật này đã thục sự được cải tiến vượt bậc Nhưng vẫn đề quan trọng
nhất ở dây, và có lẽ cũng phiên toái nhất, là nó dòi hỏi tắt cả các lệnh bắt buộc phải được thực thi trong 1 chu kỳ máy Nếu đáp ứng được yêu cầu này, Pipeline có thể
hoạt động ở tắc độ rất cao và đây cũng là yếu tổ quyết định đến tốc độ của VXL,
‘Tuy nhiền nó cũng có mặt trái là phải bỏ di rất nhiều lệnh có ich như nhân, chúa
Hau hết các dự án trên dầu nhằm mục dịch cải tiến cáo kỹ thuật hiện có, phải chờ đến năm 1975, dy án đầu tiên nhằm cho ra đời 1 chip RISC hoàn chỉnh được
thực hiện bởi ITBM Được đặt tên theo số của ngôi nhà nơi dự án được thực hiện, đự
án này đã cho ra đời họ VXL LBM BÙI được sử dụng rộng rãi trong các phần cứng, của IBM.
Trang 18Đến năm 1986, ll ca cae đự án dua irén kiến bic RISC bal dau cho ra dei
sản phẩm Ngày nay, hiu hét cdc chip RISC, déu được thiết kế dựa trên kiến trúc RISC - II cita Berkeley
Cáo hệ thông phố biến ngày nay sử đụng câu trúc RISC:
- lg MIPS, trong các máy tính SỐI, PlayStation và Nintendo 64 game consoles,
- Ho POWER trong cac SuperComputers/mainframnes ci TBM
- Freescale (Hước đây là Motorola SPS) va IBM's PowerPC tong Nintendo Gamecube, Microsoft Xbox 360, Nintendo Wii and Sony
PlayStation 3 game consoles, va cho t6i gn day 14 Apple Macintosh
- SPARC va UltraSPARC, trong tat 08 các hệ thông của Sun
- Lewlett PackardPA RISC
- DUC Alpha
- ARM Paim, Inc Ban dau sit dung Motorola 680 x 0 (CISC) trong
những PDA đầu tién, nhumg hién tai la ARM (RISC); Nintendo str dung 1
chip ARM? trong Game Boy Advance va Nintendo DS Nhiều nhà san
xuất điện thoại đi động, như Nokia cũng dựa trên kiến trúc của ARM
Trải qua một thời gian dải tập lệnh của RISC ngay càng tăng, vì thế nhiều người bắt đâu sử đụng thuật ngữ “Load/Store” dé mô tả RISC CPU, vì đây là mâu chốt của kiến trúc RISƠ Thay vì CPU xử lý nhiều phương pháp đánh dịa chỉ kiến
trúc Load/Store sử dựng những đơn vị chuyên biệt để thực hiện những đạng rất đơn giãn các quá trình Load va Store
1.3.2.2 ĐẶC TÍNH CƠ BẢN CỦA KIÊN TRÚC RISC
~_ Chu kỳ lệnh được chía thành 2 chủ kỳ: Tùn nạp lệnh và thục thị lệnh
-_ Lệnh được thực thi trong 1 chu kỷ xung elock
-_ Lệnh có chiều đải cổ định (16 bịt hay 32 bit), va ca dinh dang đễ giải mã
Trang 19-_ Tập lệnh có số lượng lệnh í1
~_ Íthế độ định địa chi
~ Hạn chế lênh truy xuất bộ nhớ, chỉ truy xuất thông qua gon trô dữ liệu
~ Tắt cõ các lệnh được thực hiện thông qua các Lhanh ghi eda CPU,
-_ Thường sử đụng mạch logic để điền khiển thực thi lệnh hơn là sử dụng ví chương trình (Microprogram) như CISC
-_ Số lượng thanh ghi da năng khả nhiều (ït nhất là 32 E.egister)
~_ Pều được thiết kế kiểu Pipeline lệnh
1.3.2.3 KIỂU ĐỊNH VỊ TRONG CÁC BỘ XỬ I.Ý RISC
Trong bé xtr ly RISC, các lệnh số học và logie chỉ được thực hiện theo kiểu
thanh ghi và tức thị, còn những lệnh đọc và ghả vào bộ nhớ là những lệnh cỏ toàn hạng bộ nhớ thì được thục hiện với những kiểu định vị khác
1 Kiểu định vị thanh ghỉ
Đây là kiếu định vị thường đừng cho cáo bộ xử lý RISC, các toán hạng
nguồn và kết quả đền nằm trong thanh ghủ mà số thứ tự đuợc nêu ra trong lệnh linh 1.2 lá ví dụ về kiểu thanh ghi và dạng các lệnh tương ứng trong ruột số kiến
Trang 20Trong kiểu này địa chỉ toán hạng năm ngay trong lệnh (Hình 1.4) Ví dụ,
kiểu định vị trực tiếp được dùng cho các biến cúa hệ điều hành, người sử dụng,
kháng có quyên thâm nhập các biến này
MIPS | Opcodz | Thanh ghi | Thanh ghi Độ dời sô đấu
dia chi số liệu
SPARC | Øp | Thanh | Op vode [Thanh gui] 1 Độ đời có dấu
Tĩnh 1.4 Dạng lệnh thâm nhập bộ nhá trong của một số kién tritc RISC
Trang 214 Kiểu định vị giản tiếp bằng thanh ph
độ dời
Đây làk
sau; Dia chi toán hạng ~ Thanh ghi (dia chỉ ) + độ đời
đặc thủ cho các kiến Irúc RISC Dia chi toan hang được tính như
Kiểu định vị trực tiếp chỉ là một trường hợp đặc biệt của kiểu nảy khi thanh:
phủ (địa chi) = 0 Trong các bộ xứ lý RISC, một thanh ghỉ (RO hoặc R31) được mic
vào diện thế thấp (tức là Ø) vẻ ta có định vị trực tiếp khi đừng thánh ghỉ đó như là
thanh ghỉ địa chi
5, Kiểu định vị tự tăng
Một vải bộ xứ ly RISC, ví dụ bộ xử lý PowerPC, dàng kiểu định vị này,
1.3.2.4 TẬP LỆNH [6]
1 Tóm tắt tập lệnh
Thiết ké dua trén tap Iénh cia Atmel AVR AT90S1200, Bang cách này, thiết
kế có thê sử dụng các công cu assempler, simulater do Atmel cung cấp Tập lệnh
được cha thành 4 nhón lệnh: (xem bang 1.1)
-_ Nhằm lệnh số học và logic: Gôm các lệnh tính toán số học và logie
-_ Nhâm lệnh rẽ nhámk: 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 ham va Return
-_ Nhóm lệnh truyền die Hiệu: êm các lệnh đi chuyển đứ liệu giữa ofc thank ghi, 6 nhé RAM và Port lO bên ngoài
- Nhém lénh về bút: Gôm các lệnh bịt như xóa, đặt bịt, lệnh địch xoay
ARITOMETIC AND LOGIC INSTRUCTIONS
Trang 22
SBC Subtract with Carry Two Registers 8,Z,C,N, Vj
SBCI Subtract with Carry Constant [rom Register S7.CN,VH
ORT Logical OR Register and Constant S.Z.NLV
RCALL Relative Subroutine Call None
RET Subroutine Return None
CPC Compare with Carry (Rd Rr- C) 8,C,4,N,V,H
CPI Compare Register with Tmmmediate (Rd - K) s,C.N.V.H
BRBS Branch if Status Flag Set ‘None
BRBC Branch if Status Flag Cleared ‘None
Trang 23BRCC Branch if Carry Cleared (C — 0) None
BRSH Branch if Same or Higher (C — 0) Kone
BELO Branch if Lower (C = 1) one
BEMI Branch if Minus (X = 1) one
BRGE Branch if Greater of Equal, Signed (S — 1) None
BRLT Branch if Less than Zero, Signed (S — 0} Kone
BRHC Branch if Half Carry Cleared (H = 0) None
BRVS Branch if Overflow Flag is Set (V = 1) hone
BRYC Branch if Overllow Flag is Cleared (V0) Kone
DATA TRANSFER INSTRUCTIONS
Mov Move Between Registers None
LDI Load Immediate to Register one
LDZ Load Indirect with Z-Poinicr Kone
LD ZI Load Indirect and Post-Increment with Z-Pointer ‘None
Lb 4 Load Indirect and Pre-Decrement with Z-Pointer hone
STZ Store Indirect with Z-Pointer Kone
ST Z+ Store Indirect and Post-Increment with Z-Pointer Kone
ST? Store Indirect and Pre-Decrement with 7.-Pointer Kone
our Out Register to Port hone
BIT INSTRUCTIONS
SBI Set Bit in 1/O Register ‘None
CBI Clear Bit in L’O Register ‘None
Trang 24ASR Arithmetic Shift Right
SWAP Swap Nibbles
BSET Flag Set
BCLR Wag Clear
Theo thiét ké thi RTSC cé 6 chế độ định địa chỉ RA, RĐ được xem như là
toán hạng dích và toán hang nguồn
> Dinh dia chi truc tiép thanh ghỉ dơn
Lénh od met toan hang 14 RA: vita la thanh ghi nguén vira la thanh ghi dich
Vi du như lệnh: dịch, xoay, set bịt
> Dịnh địa chỉ trực tiếp thanh ghi đôi
Trang 25Lénh cé hai tean hang fa RA va RB Sau khí tính toán kết quả được ghỉ vào
RA, Ví dụ như lệnh toán học vá logic
> Định dịa chí ƯƠ trực tiếp
Toán hạng là ƯO register Địa chí được chứa trong 6 bít trong từ lệnh Cách định địa chỉ này được sử dụng trong lệnh [N vá OUT
> Dinh dia chi da Hệu gián tiếp
Toán hạng là õ nhớ RB.AM có địa chỉ chúa trong thanh ghỉ Z Cách định địa chỉ được sử đựng trong lệnh LD và ST
xv inh đị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 RTMP, RCAIL, Địa chỉ lệnh
kế dược tính bằng PC + Offset Offset dược chứa trong từ lệnh
> Dinh dia chi tac thoi
Toán hang 1a hang 36 8 bit duge cho trong từ lệnh
Trang 26LDI | SER BCLR_| CLL CLT, CLH, CLS, CLV, CLN, CLZ, CLC
BSET _| SEI, SET, SEH, SES, SEV, SEN, SEZ, SEC
BRAC BRID, BRC, BRHS, BRE, ARVO, BRP, BRNE, BROX,
ADO 0000 Liza gad reer (LSZi
ADC 0002 Liza gadd rere (ROL
ANG 0020 OUad ddd mrxc (5S)
RRR OANEN niựa Ada vườn — (TRỤ xo
OR = 0010 Loza dada cere
Mov 0020 Lima dada rere
SUI 0102 KRER
asc Rone oLna
Lan XU0A DIDa,
xuus ULua
goo 01ml auuk ULUL
A018 DAXđ
3033 Lar IMP 3300 kikE
Ea mirimrr
Bang 1.3 Tập mã lệnh
Trang 27PC bắt đầu nạp lệnh mới Tại chủ kỷ thực ti lệnh đơu vị diễu khiển sẽ giải ruä để
biết lệnh cân thực hiện và toán hạng cần tác động, tính toán kết quả, chốt kết quả, và
phí lại kết quả tại phá cuỗi cũng của chủ kỳ thực thị lệnh
2, Sử dụng đường ẩng (Pipel.ine)
Chủ kỳ lệnh của RISC sẽ đuợc chữa thành 2 uhu ky Fetch va Execute Néu 2
chu ky này hoạt dộng nối tiếp nhau, chu kỳ dâu tìm nạp lệnh chu kỷ 2 thực thị lệnh
như hình 1.6, thi] chu kỳ lệnh sẽ phải mắt 2 chư kỳ xung Clock
Felr) > Executed > Fetch! 3 Executel > Fetch 2 > Execute?
Hinh 1.6 Chủ kỳ lệnh cũa MCU không sĩ đụng PipeLine
Ý tưởng của việc sử đụng dường ống ở dây la cho 2 chu ky Fetch va Execute cùng hoạt động song song, cd nghia 1a trong 1 chu ky xung Clock MCU sé tim nap
lệnh mới và thục thì lệnh cũ xem hình 1 7, vì vậy để thục hiện một chu kỳ lệnh chỉ tốn 1 xưng clek, do đó RISC sẽ hoạt động nhanh hơn
Trang 28Instruction 0 Fetch 0 | Execute 0
Instruction 1 Fetch 1_| Execute 1 Instruction 2 Fetch 2_ | Execute 2
Hình 1.7 Chu kỳ lệnh sử dụng Pipeline
Tai chu ky Reset = 0 lénh Ø được tim nap, sau dé tai chu kỷ 1 lệnh 0 sẽ được
thực hiện đồng thời PC sé tim nap lénh 1 Và tại chu kỳ 2, lênh 1 sẽ được thực thị,
đồng thời PC sẽ tìm nạp lệnh 2 cứ như thể MCU sẽ tim nạp và thực thí chương
trình song song với nhau, PC sẽ trỏ đến lệnh đang được tìm nạp và sẽ được thực thi
ở chu kỷ kẻ
3 Nghẽn đường ống
Khi gặp lệnh rẽ nhánh đường ỏng sẽ bị nghẽn Vì trong khi lênh rẽ nhánh
được thực thi thì lênh kế đỏ đã được đưa vào đường ống, nhưng trong trường hợp
lệnh rẽ nhánh nhảy đến thực thị 1 lệnh khác với lệnh đã nạp trong đường ông thi
hiện tượng nghẽn đường ông sẽ xảy ra xem hình 1.8
20(Brmehto73) | Fetch 20 | Execute 20 | Execute 21 | Execute 73
Tnstuction 21 Fetch 21 | Flushed
Instruction 23 Fetch 74 | Execute 75
Hình 1.8 Hiện tượng nghẽn đường ông
Để giải quyết việc nghẽn đường dng thi: Vi đường ống chỉ có 2 đơn vị hoạt đông song song Khu lệnh kẻ tiếp thực thí đang vào đường ống thì lệnh rẽ nhánh
cũng đang thực thi, nêu lệnh rế nhánh cỏ yêu cầu rẽ nhánh thì PC sẽ phải nap gia tri
mới vả tìm nạp lệnh tại điểm nhay đến thay vì nạp lệnh kẻ để đưa vào đường ông Như vây việc nghẽn đường ông đã được khắc phục
26
Trang 2913.3 SO DO KHOI CUA THIET KE RISC
Hình 1.9 Sơ đồ chân cña RISC
Có 3 port I/O Port B, Port C, Port D mỗi port cỏ độ rộng 8 bịt (3 port = 24
pins), va có 2 chân Input là Clock va Reset (tich cực thấp) Mỗi Port có 8 bit (theo
thiét ke Port nay chi la Port xuat)
1.3.3.2 SO DO KHOI CUA RISC
Hình 1.10 Kiến trúc cña RISC
Kiến trúc của RISC được chia thành 2 đơn vị:
- Đơn vị giải mã và điều khiển lệnh (Control Unit): Gồm cỏ các Modul giải
mã lệnh vả Modul điều khiển
Trang 30- Dun vị đường dữ liệu: Gồm có Program Conter, thanh phú lệnh, A1/U, RAM, Status Register, General Purpose Register, Data Mux, 1/0
13.3.3 BAC DIEM TUNG KHOI TRONG KIEN TRUC RISC
1, PC (Program Counter)
Program Counter chửa dịa chỉ lệnh thực thi, nó gửi dia chi lénh dén ROM
chương trinh
2, Program ROM (Read Only Memory)
Chương trình ROM nhận lệnh từ PC và chốt vao thanh ghi lénh (IR)
3, Instruction Register (IR)
'Thanh ghi lệnh (1R) nhận lệnh từ ROM sau dé chuyén lệnh đến đơn vị điều
khiển
4, Control Unit (CU)
Don vi digu khién (CU) nhan lénh tir IR dé giai ma, sau khi gidi ma xong thi
điều khiến các tín hiệu đồng bộ dễ thực thị lệnh
5 General Purpose Register
Do RISC han ché vé truy xual 6 whé, nén RISC không cỏ cáo lệnh truy xuất
trực tiếp từ 6 nhớ của RAMI chỉ có lệnh LI và ST dùng truy xuất giản tiếp thông,
qua con tré Z J thanh ghi da dung
Tập thanh ghi đa dụng chứa l6 thanh ghi, cung cấp đồng thời 2 toán hang
thanh ghủ cho A1.U, và địa chỉ là nội dụng thanh gi Z trỏ tới ô nhớ RAM
6 ALU (Arithmetic and Logic Unit)
AT2U có nhiệm vụ thực thì các phép tính trén 2 toan bang
7 DATA MUX
Data Mux ding dé chon dit ligu để ghỉ vào lập thanh ghi da dụng hoặc làm
toan hang cho ALU
Trang 31§ Khải /0
Modul 1/0 gom 3 thanh ghỉ mà các bắt được đưa ra ngoài ở chân ngõ ra Các
thanh ghủ MO có thể dược dọc và ghủ thông qua các bus dữ liệu
9 RAM (Random Access Memory)
RISC cò 3 dơn vị: tìm nạp lệnh vá thực thi lệnh hoạt dộng song son nên đỏi hỏi phải eó bộ nhớ chương trình và bộ nhớ đữ liệu riêng biệt Vì vậy bộ nhớ chương trình sẽ được lưu trong RỚM và bộ nhớ đữ liệu được cất trong RAM RAM số duợc khởi động với giá trị là OOH
1.4 NỘI DUNG THỰC HIỆN VÀ CÔNG CỤ
Thiết ké dường dữ liệu (Davapath) va dơn ví diễu khiển (Control UmiQ theo
kiên tric RISC 8 bit Microcontroller
Phần thiết kế bằng ngôn ngữ VIIDL và mỏ phỏng được thực hiện trên môi
trường Max + Plus TĨ của hãng Altera
1.5 KET CHƯƠNG
‘Luan van đã tiễn hành nghiên cứu về kiến trúc của RISC, bao gồm những nội
dung chính sau:
-_ Tìm hiểu tổng thể kiến trúc RISC
~_ Nghiên củu chỉ tiết kiến trúc RISC
~ Nghiên cứu cụ thể chức năng và cách thức hoạt động của các khối trong,
kién tric RISC
- Tìm hiểu tập lệnh cua kién trie RISC từ đỏ phân tích đặc điểm chung và
riêng của chúng đề hình thánh quy tắe giải mã lệnh
-_ Hên cạnh đó là các lý thuyết vẻ thiết kế lãi mềm,
Trang 32CHƯƠNG2: THIẾT KÉ CPU 8 BIT DỰA TRÊN
KIEN TRUC RISC
rile geverator 1 Bit seh
mm Loy cal eperater aval el Shirter centile
Sib csi Gh, CR, MOR) Paral el Shifts Blick
Tink 2.1 Giao diệu của bộ xử Lý theo kiến trite RISC
2.2 TÔ CHỨC BỘ NHỚ CỦA CPU [9]
CPU 06 kha ning định vị địa chỉ 1096 byte nhớ thông qua bus dia chi 12 bit
Tộ nhớ này phân chia thanh 16 Inmg mdi Irang là 256 byte, tang đầu tiên nằm trong CPU, 4 bit 06 trong sé cao nhất của tuyến địa chỉ thiết lập địa chỉ trang (Page), 8 bit có trọng số thấp nhất của nó chỉ độ đời (Offset) Bộ nhớ được phân
thành 16 trang (Page 0 > Pagel 5)
30
Trang 332.3 TẬP LỆNH CỦA CPU
2.3.1 THIẾT KE TAP LENH |4]
Phân loại các lệnh sử dụng trong bộ xử lý
Thao tác sỗ học: Các phép tỉnh số học eø bắn là nên tăng cho hoạt động của
bộ vi xứ lý Các phép tính số học nhị phan dung như dẫu vào giá trị của hai toàn hang va kết quả là một giá trị đầu ra duy nhất, Ngoài ra, trừ, nhân, và chia là tất cả các thao lác nhị phân Thao tác số học, có một toán hạng dâu vào duy that va tao ra một kết quả duy nhất, Phú định số hợc giống như trừ đi một giá trị tử con số không,
lã một hoạt động nguyên phân thường được triển khai thực hiện trang các bộ vi xử
lý Các thao khác bao gồm các hàm ví dụ như sin, cos, va logarit
Thao tác logical: Các phép lính logic thao lắc trên các Tnk riêng lẽ giả trị
được biểu diễn như là các số nhị phân Các phép tính logic nhị phân, yêu cau hai
toán hạng đầu vào, bao gốm AID, OR, va loai trừ OR (XOR) Thao tác logic bổ sung bil - by - bil, NOT, la mat vi du vé mai thao tác logic đơn nguyên,
Thao tac diéu khién: Nguoi lập trình cho rằng, các lệnh trong một chương, trình sẽ dược thực hiện theo thứ tự mà chúng xuất hiện trong mã nguồn Chúng,
được thực hiện theo một thử tự tuần tự đơn giản Tuy nhiền, sức mạnh thực sự cửa
một hệ thống máy tính dựa trên khả nẵng so sánh giá trị và dưa ra quyết định dựa trên sự so sánh nảy Quyết định lựa chọn 1 trong 2 khá năng sau: 1) Thực biện lệnh
tiên thao trang chuối nêu kết quả so sánh là Tralse, hoặc 2) Rẽ nhánh đến một lệnh
đã xác dịnh ở một nơi khác trong chương trình nếu kết quả so sánh là Truc Loại thao tac nay được gọi lá rẽ nhành có điểu kiện “Thao tác điều khiển khác bao gồm một rẽ nhánh không điều kiện, trong đó quyết định nhị phân luôn luôn cho kết quả
la True, va thao tae nhay (Jump) tuong ty, trong do trình tự thực hiện luôn luôn
chuyển đến các lệnh mục tiêu được chỉ định
Thao tác tuyển dữ liệu: Các thao tác truyền ảữ liệu được sử dụng để di chuyến các giá trị từ một vị trí lưu trứ này đến vị trí hmi trữ khác mà không thay đổi giả trị trong mã nguồn lưu trữ ban đầu Thao tác truyền đừ liệu dược sử dụng dễ di
31
Trang 34chuyển giá Irị giữa các tranh ghỉ hoặc để đọc các giá trị, hoặc việt các giá Irị Lừ bộ
nhở Thao tác truyền đữ liệu thực sự lá sao chép một giả trị tử một vị trí lưu trữ nảy đến vị trí lưu trữ khác thay vi di chuyến vật lý giá trị
3.3.2 BỊNH NGHĨA TẬP LỆNH [4]
2.3.2.1 LỆNH SỐ HỌC
Xác định tất cả các lệnh số học trong tập lệnh thường là bước đầu tiên Ngoài vide chúng ta phối xác dịnh các thao tác cụ thế chúng ta cũng cần phải xác định làm: thể náo đề xác định được các toán hang
1 Đặc tả toán hạng
Mỗi lệnh phải dược đặc tả thao tác của chính nó, các toán lạng dược thao tác
và lệnh tiếp theo được thục thi Chứng ta sẽ giả định rằng có một máy tính ngằm
xác đình lệnh tiếp theo được thục hiện Trong đặc tä các toán lưng, chúng ta có Hiễ
chỉ định cụ thể hoặc ngàm định Nếu chúng ta chỉ dịnh mỗi toán hạng một cách cụ thé, mỗi thao tác nhị phân sẽ cản ba trường, bai trường để xác định các toán hạng, đầu vào và một trường xác định tuán hạng đích Chúng ta có thê làm: giảm số lượng, các trường, của toán hạng cần thiết trong mỗi lệnh Số lượng các toàn hạng dược chỉ
định cụ thể đẫn đến các tùy chọn sau đây:
Three - address machine: Miột máy ba địa chỉ rõ ràng xáo định cả hai đầu vào toán hạng và đích cho các giá trị đâu ra trong mỗi lệnh số học Ví đụ, trong, ngôn ngữ assembly định dang phép cộng add r1, r2, r3 để xác định tổng của thanh
hú r2 và r3 kết quả được lưu trang thanh ghi rì (Nó giống như r] =z3 + r2)
Two - address machine: Trong mat may hai dia chỉ này, chỉ có hai toàn hạng,
nguồn được quy định một cách cụ thể, Các toàn lưng đích mặc tiên giả định giống, như trong các toán hạng nguồn Ví dụ, add r2, r3 tức là tính tổng của r2 và r3 và kết quã lưu vào z2 Cách tiếp cận này làm giam số lượng, bịt cần thiết trong lệnh để xác
định loán hạng Tuy nhiên, mức giảm nảy di kèm với sự phúc tạp hơn trong việc
xác định các toán hạng treng ngôn ngĩĩ assembly.