..
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
------------e f f f ------------LƯU THỊ THẢO
LƯU THỊ THẢO
CÔNG NGHỆ THÔNG TIN
THIẾT KẾ LÕI MỀM CHO BỘ XỬ LÝ
THEO KIẾN TRÚC RISC
LUẬN VĂN THẠC SĨ
CÔNG NGHỆ THÔNG TIN
2010 - 2012
HÀ NỘI – NĂM 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
LƯU THỊ THẢO
THIẾT KẾ LÕI MỀM CHO BỘ XỬ LÝ
THEO KIẾN TRÚC RISC
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ
CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. NGUYỄN KIM KHÁNH
HÀ NỘI – NĂM 2013
LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của tôi dưới sự hướng dẫn
của TS. Nguyễn Kim Khánh.
Các số liệu, kết quả nêu trong luận văn là trung thực và mọi trích dẫn trong
báo cáo đều được ghi rõ nguồn gốc trong phần tài liệu tham khảo. Nếu có sử dụng
bất 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
hoàn toàn chịu trách nhiệm.
Tác giả
Lưu Thị Thảo
1
LỜI CẢM ƠN
Lời đầu tiên tơi muốn bày tỏ lịng biết ơn sâu sắc và kính trọng của mình tới
thầy giáo, TS. Nguyễn Kim Khánh. Trong quá trình tìm hiểu, nghiên cứu để hồn
thành luận văn, tơi gặp khơng ít khó khăn, nhưng những lúc như vậy, tơi ln nhận
được sự động viên, khích lệ của thầy. Thầy đã giúp đỡ tơi rất nhiều trong q trì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ứu khoa
học cũng như hỗ trợ tơi trong việc tìm tài liệu.
Để có được những kết quả trong luận văn nà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 Hà 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ư
hồn thành khóa học.
Cuối cùng tơi xin bày tỏ lịng cảm ơn chân thành đến gia đình, người thân và
bạn bè đồng nghiệp đã khích lệ và động viên tơi hồn thành luận văn này.!
Tác giả.
2
MỤC LỤC
LỜI CAM ĐOAN .................................................................................................... 1
LỜI CẢM ƠN .......................................................................................................... 2
MỤC LỤC ................................................................................................................ 3
DANH MỤC THUẬT NGỮ ................................................................................... 6
DANH MỤC BẢNG ................................................................................................ 7
DANH MỤC HÌNH ................................................................................................. 8
MỞ ĐẦU ................................................................................................................ 10
1. Lý do chọn đề tài ........................................................................................... 10
2. Mục đích nghiên cứu ..................................................................................... 11
3. Đối tượng – Phạm vi nghiên cứu ................................................................... 11
4. Bố cục luận văn ............................................................................................. 11
5. Phương pháp nghiên cứu ............................................................................... 12
CHƯƠNG 1: GIỚI THIỆU VỀ LÕI MỀM CỦA BỘ VI XỬ LÝ VÀ ĐỊNH
HƯỚNG THỰC HIỆN CỦA LUẬN VĂN........................................................... 13
1.1. Nhiệm vụ của đề tài .................................................................................... 13
1.2. Định hướng giải quyết vấn đề..................................................................... 13
1.3. Cơ sở lý thuyết ............................................................................................ 14
1.3.1. Khái niệm chung về lõi mềm .............................................................. 14
1.3.2. Kiến trúc RISC .................................................................................... 14
1.3.3. Sơ đồ khối của thiết kế RISC .............................................................. 27
1.4. Nội dung thực hiện và công cụ sử dụng ..................................................... 29
1.5. Kết chương ................................................................................................. 29
3
CHƯƠNG 2: THIẾT KẾ CPU 8 BIT DỰA TRÊN KIẾN TRÚC RISC .......... 30
2.1. Nhiệm vụ .................................................................................................... 30
2.2. Tổ chức bộ nhớ của CPU ............................................................................ 30
2.3. Tập lệnh của CPU ....................................................................................... 31
2.3.1. Thiết kế tập lệnh .................................................................................. 31
2.3.2. Định nghĩa tập lệnh ............................................................................. 32
2.3.3. Tập lệnh của bộ xử lý RISC 8 bit ........................................................ 38
2.4. Chế độ địa chỉ của lệnh ............................................................................... 41
2.4.1. Các lệnh địa chỉ đầy đủ ....................................................................... 41
2.4.2. Các lệnh địa chỉ gián tiếp trong CPU .................................................. 42
2.5. Tổng thể thiết kế ......................................................................................... 42
2.5.1. Mơ hình thiết kế .................................................................................. 42
2.5.2. Cách thức hoạt động ........................................................................... 44
2.6. Cụ thể thiết kế các khối .............................................................................. 44
2.6.1. Khối Program Counter (PC) ................................................................ 44
2.6.2. Khối RAM, ROM ................................................................................ 46
2.6.3. Tập thanh ghi đa dụng (General Pupose Registers) ............................ 47
2.6.4. Thanh ghi cờ trạng thái (State Register) ............................................. 49
2.6.5. Khối ALU ............................................................................................ 50
2.6.6. Đơn vị giải mã lệnh ............................................................................. 54
2.6.7. Đơn vị điều khiển thực thi ................................................................... 54
2.7. Kết chương ................................................................................................. 56
CHƯƠNG 3: KẾT QUẢ THỰC THI................................................................... 57
4
3.1. Khối Program Counter (PC) ....................................................................... 57
3.2. Khối ROM .................................................................................................. 57
3.3. Khối RAM .................................................................................................. 58
3.4. Mô tả thanh ghi ........................................................................................... 58
3.5. Mô tả tập thanh ghi đa dụng (General Pupose Registers) ......................... 59
3.6. Mô tả thanh ghi IO ...................................................................................... 60
3.7. Mô tả thanh ghi cờ trạng thái (State Register)............................................ 60
3.8. Mô tả bộ MUX............................................................................................ 61
3.9. Khối ALU ................................................................................................... 62
3.10. Đơn vị điều khiển thực thi ........................................................................ 62
3.11. Đơn vị giải mã lệnh .................................................................................. 63
3.12. Kết chương ............................................................................................... 64
CHƯƠNG 4: KẾT LUẬN ..................................................................................... 65
4.1. Đánh giá kết quả ......................................................................................... 65
4.2. Phạm vi ứng dụng ....................................................................................... 65
4.3. Hướng phát triển của đề tài......................................................................... 66
TÀI LIỆU THAM KHẢO ..................................................................................... 67
5
DANH MỤC THUẬT NGỮ
Viết tắt
Tên đầy đủ
Chú giải
ALU
Arithmetic and Logic Unit
Đơn vị số học và logic
CPU
Central Processing Unit
Bộ xử lý trung tâm
CISC
Complex Instruction Set
Computer
Máy tính có tập lệnh lớn và phức
tạp
CU
Control Unit
Đơn vị điều khiển
FPGA
Field
Programmable
Arrays
GPR
General Purpose Register
Thanh ghi đa năng
PC
Program Counter
Bộ đếm chương trình
MCU
Microprogrammed Control Unit Đơn vị điều khiển vi chương trình
RISC
Reduce Instruction Set
Computer
Máy tính có tập lệnh rút gọn và đơn
giản
Verilog Hardware Description
Language
Ngôn ngữ mô tả phần cứng
VHDL
Gate Loại mạch tổ hợp có thể lập trình
được
VXL
Vi xử lý
6
DANH MỤC BẢNG
Bảng 1.1 Tóm tắt tập lệnh ........................................................................................ 22
Bảng 1.2 Các lệnh tương đương .............................................................................. 24
Bảng 1.3 Tập mã lệnh .............................................................................................. 24
Bảng 2.1 Bảng xác định điều kiện tràn khi thực hiện X + Y ................................... 34
Bảng 2.2 Bảng xác định điều kiện tràn khi thực hiện X – Y ................................... 35
Bảng 2.3 Tập lệnh của bộ xử lý RISC 8 bit ............................................................. 40
Bảng 2.4 Các tín hiệu vào/ra của khối Program Count ............................................ 46
Bảng 2.5 Các tín hiệu vào/ra của khối ROM ........................................................... 47
Bảng 2.6 Các tín hiệu vào/ra của khối RAM ........................................................... 47
Bảng 2.7 Các tín hiệu vào/ra của khối General Purpose Register ........................... 48
Bảng 2.8 Các tín hiệu vào/ra của khối State Register .............................................. 50
Bảng 2.9 Nhóm lệnh cơ bản của ALU ..................................................................... 51
Bảng 2.10 Tìm nạp tốn hạng .................................................................................. 52
Bảng 2.11 Các tín hiệu điều khiển ........................................................................... 54
7
DANH MỤC HÌNH
Hình 1.1 Quy trình thiết kế ...................................................................................... 13
Hình 1.2 Dạng lệnh trong kiểu định vị thanh ghi..................................................... 17
Hình 1.3 Dạng lệnh trong kiểu định vị tức thì thanh ghi ......................................... 18
Hình 1.4 Dạng lệnh thâm nhập bộ nhớ trong của một số kiến trúc RISC ............... 18
Hình 1.5 Chu kỳ lệnh của RISC ............................................................................... 25
Hình 1.6 Chu kỳ lệnh của MCU khơng sử dụng Pipeline........................................ 25
Hình 1.7 Chu kỳ lệnh sử dụng Pipeline ................................................................... 26
Hình 1.8 Hiện tượng nghẽn đường ống ................................................................... 26
Hình 1.9 Sơ đồ chân của RISC ................................................................................ 27
Hình 1.10 Kiến trúc của RISC ................................................................................. 27
Hình 2.1 Giao diện của bộ xử lý theo kiến trúc RISC ............................................. 30
Hình 2.2 Định dạng lệnh cho mỗi loại ..................................................................... 41
Hình 2.3 Các bước thực thi một lệnh ....................................................................... 44
Hình 2.4 Sơ đồ khối của Program Counter .............................................................. 44
Hình 2.5 Program Counter Symbol.......................................................................... 45
Hình 2.6 Program ROM Symbol ............................................................................. 46
Hình 2.7 RAM Symbol ............................................................................................ 46
Hình 2.8 Tập thanh ghi đa dụng ............................................................................... 47
Hình 2.9 Sơ đồ khối của thanh ghi trạng thái .......................................................... 49
Hình 2.10 State Register Symbol ............................................................................. 49
Hình 2.11 ALU Symbol ........................................................................................... 51
Hình 2.12 Đơn vị tìm nạp toán hạng ........................................................................ 52
8
Hình 2.13 Sơ đồ trạng thái của đơn vị điều khiển thực thi ...................................... 55
Hình 3.1 Kết quả thực thi khối PC ........................................................................... 57
Hình 3.2 Kết quả thực thi khối ROM ....................................................................... 57
Hình 3.3 Kết quả thực thi khối RAM ....................................................................... 58
Hình 3.4 Kết quả thực thi mơ tả thanh ghi ............................................................... 58
Hình 3.5 Kết quả thực thi mơ tả thanh ghi đa dụng ................................................. 59
Hình 3.6 Kết quả thực thi mơ tả thanh ghi IO.......................................................... 60
Hình 3.7 Kết quả thực thi mô tả thanh ghi cờ trạng thái .......................................... 60
Hình 3.8 Kết quả thực thi mơ tả bộ MUX................................................................ 61
Hình 3.9 Kết quả thực thi khối ALU........................................................................ 62
Hình 3.10 Kết quả thực thi mô tả đơn vị điều khiển thực thi .................................. 62
Hình 3.11a Kết quả thực thi mơ tả tín hiệu điều khiển giải mã ALU ...................... 63
Hình 3.11b Kết quả thực thi mơ tả tín hiệu điều khiển giải mã thanh ghi đa dụng . 63
Hình 3.11c Kết quả thực thi mơ tả tín hiệu điều khiển giải mã State Register ........ 64
9
MỞ ĐẦU
1. LÝ DO CHỌN ĐỀ TÀI
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 đã vươn lên chiếm vị thế ngày càng cao trong tất cả các lĩnh vực kinh tế, xã
hội, cũng như 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 đi sâu vào các mặt đời sống xã hội, thông qua các
hệ 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 đầu tư vào việc chế tạo các CPU nhằm tạo ra các máy
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ệ silicon và chi phí giảm của mạch tích hợp, bộ xử lý RISC đang gia tăng
sử dụng rộng rãi trong mọi lĩnh vực. RISC (Reduced Instruction Set Computer) là
một phần 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 đơ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
dụng điển hình bao gồm: xử lý dữ liệu thương mại, các ứng dụng tính tốn chun
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 đầy đủ chức năng cần một công cụ đủ mạnh. Từ đó
dẫn đến sự ra đời của các ngơn ngữ mô tả phần cứng như VHDL,Verilog... Ngôn
ngữ mô tả phần cứng (VHDL) sẽ được sử dụng trong luận văn này. Từ ngôn ngữ
VHDL các nhà thiết kế phần 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ả năng hoạt động của thiết bị trước khi đưa vào sản xuất, nhờ vậy có
thể giảm bớt thời gian, chi phí sản xuất...
Luận văn đã được viết với mục đí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ề thiết bị phần cứng sau này.
Xuấ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 dạn chọn đề tài “Thiết kế lõi mềm cho bộ xử lý
theo kiến trúc RISC” làm đề tài nghiên cứu cho luận văn tốt nghiệp của mình.
10
2. MỤC ĐÍCH NGHIÊN CỨU
Trong q trình nghiên cứu đề tài, tác giả đã nghiên cứu các vấn đề chính
sau:
-
Tổng quan về lõi mềm, kiến trúc RISC bao gồm: Khái niệm lõi mềm, lịch sử
kiến trúc 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 bit bằng ngôn ngữ VHDL.
-
Mô phỏng và đánh giá kết quả trên phần mềm Max + Plus II.
3. ĐỐ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 nhu 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ộ vi 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 hiểu lý thuyết liên quan sẽ sử dụng.
Chương 2: Thiết kế CPU 8 bit dựa trên kiến trúc 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 bit.
Chương 3: Kết quả thực thi
Chương này trình bày kết quả thực thi của từng khối, mơ phỏng bằng phần
mềm Max + Plus II (dùng ngôn ngữ VHDL).
Chương 4: Kết luận
11
Chương này trình bày tóm tắt kết quả đạt được và hướng phát triển tiếp theo
của luận văn.
5. PHƯƠNG PHÁP NGHIÊN CỨU
Kết hợp 3 phương pháp:
-
Nghiên cứu lý thuyết,
-
Mơ hình hóa,
-
Thực nghiệm.
Nghiên cứu lý thuyết: Luận văn tiến hành nghiên cứu tổng quan về lõi mềm,
kiến trúc RISC.
Mơ hình hóa: Luận văn xác định tập lệnh của bộ xử lý, mơ hình thiết kế cụ thể
của kiến trúc RISC.
Thực nghiệm: Luận văn đã thử nghiệm mô phỏng thiết kế trên phần mềm Max +
Plus II.
12
CHƯƠNG 1: GIỚI THIỆU VỀ LÕI MỀM CỦA BỘ VI XỬ LÝ
VÀ ĐỊNH HƯỚNG THỰC HIỆN CỦA LUẬ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.
Đề tài bao gồm các nội dung 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. ĐỊNH HƯỚNG GIẢI QUYẾT VẤN ĐỀ
Quy trình thiết kế mà luận văn dựa vào để thực hiện:
Phân tích yêu cầu đề tài
Chuẩn bị cơ sở lý thuyết
Thiết kế mơ hình tổng thể
Thiết kế chi tiết trên lý thuyết
Thiết kế bằng ngôn ngữ VHDL
Mô phỏng trên phần mềm
Cài đặt trên kit thật
Đánh giá kết quả đạt được
Hình 1.1. Quy trình thiết kế
13
Trong luận văn sẽ thực hiện hầu hết các vấn đề trong quy trình trên, bao
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ó.
2. Thiết kế tập lệnh bằng ngơn ngữ VHDL: Sử dụng ngôn ngữ VHDL để
thiết kế lõi mềm cho bộ xử lý dựa vào kiến thức đã tìm hiểu được về kiến
trúc RISC.
3. Dựa vào thiết kế, mô phỏng và đánh giá kết quả đạt được.
1.3. CƠ SỞ LÝ THUYẾT
1.3.1. KHÁI NIỆM CHUNG VỀ LÕI MỀM
Lõi mềm (Soft – Core processor) là một dạng của xu hướng thiết kế kiến trúc
máy tính thơng thường, được biết như máy tính có thể cấu hình lại. Nó là mơ hình
ngơn ngữ mơ tả phần cứng (Hardware Description Language - HDL) của bộ vi xử
lý có thể được tối ưu để dùng trong các ứng dụng và được tổng hợp cho đối tượng
FPGA hoặc ASIC.
Trong nhiều ứng dụng, lõi mềm cung cấp một số lợi ích 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 hoạt, khơng
phụ 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à FPGA được sử dụng nhiều trong các ứng dụng nhúng.
1.3.2. KIẾN TRÚC RISC [6, 7]
1.3.2.1. LỊCH SỬ KIẾN TRÚC RISC
RISC (Reduce Intruction Set 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 đó
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 và Seymour Cray thiết kế năm 1964, nó có 74 mã lệnh cộng với 12 máy
tính đơn giản được gọi là “bộ xử lý ngoại vi” để xử lý I/O. CDC 6600 sử dụng kiến
14
trúc Load/Store, nó hỗ trợ 2 phương pháp đánh địa chỉ, có 11 đơn vị được Pipeline,
5 đơn vị đọc dữ liệu và 2 đơn vị để lưu dữ liệu (bộ nhớ của nó được tổ chức theo
băng do đó các đơn vị đọc ghi có thể hoạt động đồng thời). Tốc độ xung đồng
hồ/lệnh nhanh hơn 10 lần so với tốc độ truy xuất bộ nhớ.
Một máy tính khác được thiết kế với kiến trúc Load/Store là Data General
Nova. Đây là một máy tính nhỏ 16 bit đượ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à dự án được tài trợ bởi
chương trình VLSI (Very Large - ScaleIntegration) 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 chip và cả đồ họa máy tính.
Dự án RISC cho ra đời VXL RISC - I năm 1982. VXL này chứa 44.420
transistor, với 32 lệnh nhưng hoàn toàn vượt xa các VXL đơn chip cùng thời. VXL
RISC - II ra đời năm 1983 với 39 lệnh, chứa 40.760 transistor và nhanh gấp 3 lần
RISC - I.
Cũng khoảng thời gian đó Jonh L.Hennessy thực hiện dự án MIPS ở đại học
Stanford năm 1981. MIPS hầu như chỉ tập trung vào kỹ thuật Pipeline nhằm tận
dụng tối đa 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 ở đây, và có lẽ cũng phiền tối nhất, là nó đị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ỏ đi rất nhiều lệnh có ích như nhân, chia.
Hầu hết các dự án trên đều nhằm mục đích cải tiến các kỹ thuật hiện có, phải
chờ đến năm 1975, dự án đầu tiên nhằm cho ra đời 1 chip RISC hoàn chỉnh được
thực hiện bởi IBM. Được đặt tên theo số của ngôi nhà nơi dự án được thực hiện, dự
án này đã cho ra đời họ VXL IBM 801 được sử dụng rộng rãi trong các phần cứng
của IBM.
15
Đến năm 1986, tất cả các dự án dựa trên kiến trúc RISC bắt đầu cho ra đời
sản phẩm. Ngày nay, hầu hết các chip RISC, đều được thiết kế dựa trên kiến trúc
RISC - II của Berkeley.
Các hệ thống phổ biến ngày nay sử dụng cấu trúc RISC:
-
Họ MIPS, trong các máy tính SGI, PlayStation và Nintendo 64 game
consoles.
-
Họ POWER trong các SuperComputers/mainframes của IBM.
-
Freescale (trước đây là Motorola SPS) và IBM’s PowerPC trong
Nintendo Gamecube, Microsoft Xbox 360, Nintendo Wii and Sony
PlayStation 3 game consoles, và cho tới gần đây là Apple Macintosh.
-
SPARC và UltraSPARC, trong tất cả các hệ thống của Sun.
-
Hewlett – Packard PA – RISC.
-
DEC Alpha.
-
ARM – Palm, Inc. Ban đầu sử dụng Motorola 680 x 0 (CISC) trong
những PDA đầu tiên, nhưng hiện tại là ARM (RISC); Nintendo sử dụng 1
chip ARM7 trong Game Boy Advance và Nintendo DS. Nhiều nhà sản
xuất điện thoại di độ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 ngày càng tăng, vì thế nhiều
người bắt đầu sử dụng thuật ngữ “Load/Store” để mơ tả RISC CPU, vì đây là mấu
chốt của kiến trúc RISC. Thay vì CPU xử lý nhiều phương pháp đánh đị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 dạng rất đơn
giản các q trình Load và Store.
1.3.2.2. ĐẶC TÍNH CƠ BẢN CỦA KIẾN 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ã.
16
-
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ực 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).
-
Đều được thiết kế kiểu Pipeline lệnh.
1.3.2.3. KIỂU ĐỊNH VỊ TRONG CÁC BỘ XỬ LÝ RISC
Trong bộ xử lý RISC, các lệnh số học và logic chỉ được thực hiện theo kiểu
thanh ghi và tức thì, cịn những lệnh đọc và ghi vào bộ nhớ là những lệnh có tố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 ghi
Đây là kiểu định vị thường dùng cho các bộ xử lý RISC, các toán hạng
nguồn và kết quả đều nằm trong thanh ghi mà số thứ tự được nêu ra trong lệnh.
Hình 1.2 là ví dụ về kiểu thanh ghi và dạng các lệnh tương ứng trong một số kiến
trúc RISC.
Hình 1.2. Dạng lệnh trong kiểu định vị thanh ghi
17
2. Kiểu định vị tức thì
Trong kiểu này, tốn hạng là một số có dấu, được chứa ngay trong lệnh.
Hình 1.3 cho ta một số ví dụ về dạng lệnh kiểu tức thì.
Hình 1.3. Dạng lệnh trong kiểu định vị tức thì thanh ghi
3. Kiểu định vị trực tiếp
Trong kiểu này địa chỉ tố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.
Hình 1.4. Dạng lệnh thâm nhập bộ nhớ trong của một số kiến trúc RISC
18
4. Kiểu định vị gián tiếp bằng thanh ghi + độ dời
Đây là kiểu đặc thù cho các kiến trúc RISC. Địa chỉ tốn hạng được tính như
sau: Địa chỉ toán hạng = Thanh ghi (địa chỉ ) + độ dời.
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
ghi (địa chỉ) = 0. Trong các bộ xử lý RISC, một thanh ghi (R0 hoặc R31) được mắc
vào điện thế thấp (tức là 0) và ta có định vị trực tiếp khi dùng thanh ghi đó như là
thanh ghi địa chỉ.
5. Kiểu định vị tự tăng
Một vài bộ xử lý 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ế 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 1.1)
-
Nhóm lệnh số học và logic: Gồm các lệnh tính tốn 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 ngồi.
-
Nhóm lệnh về bit: Gồm các lệnh bit như xóa, đặt bit, lệnh dịch xoay...
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
19
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
20
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
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
21
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
Bảng 1.1. Tóm tắt tập lệnh
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ốn hạng đích và tốn hạng nguồn.
Định địa chỉ trực tiếp thanh ghi đơn
Lệnh có một tố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...
Định địa chỉ trực tiếp thanh ghi đôi
22
Lệnh có hai tốn hạng là RA và RB. Sau khi tính tốn kết quả được ghi vào
RA.Ví dụ như lệnh toán học và logic…
Đị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.
Định địa chỉ dữ liệu gián tiếp
Tốn 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.
Đị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.
Định địa chỉ tức thời
Toán hạng là hằng số 8 bit được cho trong từ lệnh.
3. Đị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
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 1.2 chỉ ra các lệnh tương đương sử dụng chung mã máy và
bảng 1.3 là bảng tập mã máy.
23