ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
BÁO CÁO MÔN HỌC
KIẾN TRÚC MÁY TÍNH NÂNG CAO
ĐỀ TÀI: TÌM HIỂU VỀ CISC và RISC
Giảng Viên: PGS.TS. Trần Ngọc Thịnh
Học viên:
1570207 – Lê Nguyễn Trường Giang
1570222 – Nguyễn Ngọc Phương
1570209 – Diệp Hưng
1570208– Quách Đình Hoàng
1570214 – Nguyễn Văn Kiên
1570218 – Nguyễn Hữu Lộc
Tp. Hồ Chí Minh, tháng 9 năm 2015
MỤC LỤC
Trang
1. Tổng quan 3
1.1. Giới thiệu về CISC và RISC 3
1.1.1 CISC 3
1.1.2. RISC 4
1.2. Lịch sử phát triển của CISC và RISC 5
1.3. Ưu điểm, nhược điểm của CISC, RISC 6
1.3.1. CISC 6
1.3.2. RISC 6
2. So Sánh CISC và RISC 7
3. Đánh giá CISC và RISC 7
4. Kết Luận. 8
TÀI LIỆU THAM KHẢO 11
2
1. Tổng quan
1.1. Giới thiệu về CISC và RISC
1.1.1 CISC
CISC (Complex Instruction Set Computers) là một kiến trúc vi xử lý với một tập lệnh
lớn và nhiều lệnh phức tạp. Hướng tiếp cận của CISC là cố gắng thực hiện các tác vụ phức
tạp chỉ bằng một câu lệnh.
Hướng tiếp cận của kiến trúc CISC xuất phát từ đặc điểm ở giai đoạn đầu của máy tính
là việc thiết kế phần cứng dễ hơn thiết kế trình biên dịch và bộ nhớ chậm, đắt tiền. Do đó
các nhà thiết kế CPU cố gắng tạo ra các lệnh có thể làm được càng nhiều tác vụ càng tốt
nhằm mục đích giảm thiểu sự truy cập vào bộ nhớ và kích thước bộ nhớ. Bởi vì một câu
lệnh cần phải thực hiện nhiều thao tác nên kiến trúc CISC thường chứa một số lượng lớn
các câu lệnh phức tạp.
Các bộ xử lý dựa trên kiến trúc CISC được thiết kế nhằm đơn giản hóa các trình biên
dịch và cải thiện hiệu suất khi bị ràng buộc về kích thước và tốc độ của bộ nhớ. CISC hỗ
trợ các ngôn ngữ cấp cao phức tạp, chịu trách nhiệm tạo ra các mã lệnh máy cho bộ xử lý.
Ví dụ, thay vì tạo ra một trình biên dịch để viết các câu lệnh nhân hai số nguyên, một bộ
xử lý dựa trên kiến trúc CISC sẽ có sẵn một câu lệnh để thực hiện chức năng nhân hai số
nguyên.
Chip CISC (Intel Xeon x86 của Intel) và Opteron của AMD
* Đặc điểm của CISC:
- Kích thước tập lệnh lớn với nhiều lệnh rất phức tạp.
- Nguyên lý giải mã lệnh phức tạp (Complex instruction-decoding logic): xuất phát từ
nhu cầu một câu lệnh hỗ trợ nhiều chế độ d địa chỉ (addressing mode).
- Số lượng các thanh ghi mục đích chung (general purpose register) ít: Các lệnh hoạt
động trực tiếp trên bộ nhớ, và không gian chip được dùng làm các thanh ghi mục đích
chung bị hạn chế.
3
- Có nhiều thanh ghi mục đích đặc biệt (special purpose register): Nhiều thiết kế CISC
dành các thanh ghi đặc biệt làm con trỏ ngăn xếp, xử lý gián đoạn, . . . Điều này tuy đơn
giản hóa việc thiết kế phần cứng, nhưng tiêu tốn chi phí do tập lệnh phức tạp hơn.
- Thông thường, một câu lệnh thường tốn hơn một chu kỳ để xử lý.
- Độ dài của câu lệnh không cố định.
* Một số bộ xử lý dựa trên kiến trúc CISC:
- IBM 370/168 : Được công bố vào năm 1970 với bộ xử lý 32 bit và thanh ghi dấu
phẩy động 64-bit (floating point registers).
- VAX 11/780 : Bộ xử lý 32 bit, hỗ trợ nhiều chế độ định địa chỉ ( addessing mode) và
mã máy.
- Intel 80486 : Được công bố vào năm 1989 với 235 câu lệnh có độ dài từ 1 đến 11.
1.1.2. RISC
RISC (Reduced Instruction Set Computers) là một kiến trúc vi xử lý thiết kế 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.
Khác với hướng tiếp cận của CISC, RISC cố gắng giảm số lượng thao tác trên một câu
lệnh nên câu lệnh sẽ trở nên đơn giản. Vi xử lý RISC nhấn mạnh tính đơn giản và hiệu
quả. Các thiết kế RISC khởi đầu với tập lệnh thiết yếu và vừa đủ. RISC tăng tốc độ xử lý
bằng cách giảm số chu kỳ đồng hồ trên một lệnh. Mục đích của RISC là tăng tốc độ hiệu
dụng bằng cách chuyển việc thực hiện các tác vụ không thường xuyên vào phần mềm,
những tác vụ phổ biến do phần cứng thực hiện nhằm tăng hiệu năng của máy tính.
Vi xử lý RISC thường phù hợp với các ứng dụng điều khiển hay nhúng như máy in
lazer, máy in đa chức năng. Vi xử lý RISC cũng rất phù hợp với các ứng dụng như xử lý
ảnh, robot và đồ họa nhờ có mức tiêu thụ điện thấp, thực thi nhanh chóng.
Chip RISC (Itanium của Intel)
* Đặc điểm của RISC:
4
- Các lệnh đơn giản: Kiến trúc CISC sử dụng rộng rãi các lệnh phức tạp bởi vì các câu
lệnh giúp giảm sự phức tạp của ngữ nghĩa. Tuy nhiên, trong thực tế, trình biên dịch hầu
như bỏ qua các lệnh này. Vì lý do này, các kiến trúc RISC sử dụng các lệnh đơn giản hơn
với độ dài cố định và không có các lệnh kết hợp load/store với số học.
- Ít kiểu dữ liệu: kiến trúc CISC hỗ trợ một loạt các cấu trúc dữ liệu từ đơn giản cho
đến phức tạp . Tuy nhiên, dữ liệu thực nghiệm cho thấy rằng các cấu trúc dữ liệu phức tạp
ít được sử dụng. RISC hỗ trợ một vài kiểu dữ liệu đơn giản một cách hiệu quả và các kiểu
dữ liệu kết hợp/phức tạp được tổng hợp từ chúng.
- Các chế độ định địa chỉ (addressing mode) đơn giản: thiết kế CISC cung cấp một số
lượng lớn các chế độ đánhđịa chỉ để hỗ trợ cấu trúc dữ liệu phức tạp cũng như để cung cấp
sự linh hoạt để truy cập các toán hạng. Tuy nhiên nó dẫn đến các vấn đề về thời gian thực
thi lệnh và độ dài lệnh biến thiên. Điều này dẫn đến việc giải mã lệnh và định thời không
hiệu quả. Thiết kế RISC dùng các chế độ định địa chỉ đơn giản và các lệnh có chiều dài cố
định để tạo điều kiện cho việc xử lý song song (pipelining). Chế độ định địa chỉ bộ nhớ
gián tiếp không được cung cấp.
- Các thanh ghi mục đích chung giống nhau: thiết kế RISC cho phép bất kỳ thanh ghi
nào cũng có thể dùng trong bất kỳ ngữ cảnh nào, đơn giản hóa thiết kế trình biên dịch.
- Kiến trúc Harvard: các thiết kế RISC thường sử dụng mô hình bộ nhớ Harvard, các
dòng lệnh và các luồng dữ liệu được tách ra.
* Một số bộ xử lý phổ biến dựa trên kiến trúc RISC:
ARM, SuperH, MIPS, SPARC, DEC, Alpha, PA-RISC, PIC, và PowerPC của IBM.
1.2. Lịch sử phát triển của CISC và RISC
Cuối những năm 1950, với nhu cầu đưa các dòng sản phẩm máy tính ra thị trường,
IBM đã tiến hành một chương trình nghiên cứu với mục đích tạo ra một loạt các phần
mềm tương thích với máy tính của mình. Vào ngày 7 tháng 4 năm 1964, IBM System/360,
máy tính thương mại đầu tiên dựa trên kiến trúc CISC được công bố. Sự thành công của
IBM System/360 đánh dấu sự thống trị của kiến trúc CISC trong 2 thập kỷ. Tuy nhiên,
vào giữa những năm 1970, IBM nhận thấy rằng nhiều câu lệnh trong tập lệnh của kiến
trúc CISC có thể loại bỏ, kết quả là sự ra đời của RISC, kiến trúc sử dụng tập lệnh nhỏ
hơn với những lệnh đơn giản giúp tăng tốc độ xử lý, giảm kích thước bộ xử lý và giảm sự
tiêu thụ năng lượng. Hệ thống RISC đầu tiên được bắt đầu thiết kế vào năm 1975 bởi John
5
Cocke và hoàn thành vào năm 1980 có tên là IBM 801. IBM 801 được thiết kế để phục vụ
cho các công việc nhỏ và được sử dụng cho máy tính IBM RT vào năm 1986 nhưng bị
thất bại. Mặc dù bị thất bại nhưng IBM 801 đã tạo nên một nguồn cảm hứng cho các dự
án nghiên cứu dẫn đến sự ra đời của các vi xử lý dựa trên kiến trúc RISC sau này. Vào
năm 1982, dự án Berkeley RISC công bố bộ xử lý RISC – I chứa 44420 transistor và có
32 câu lệnh. Năm 1983, Berkeley RISC tiếp tục công bố bộ xử lý RISC – II với 40760
transistor và 39 câu lệnh. Năm 1985 và 1988, MIPS Computer Systems lần lượt công bố
vi xử lý R2000 và R3000. Năm 1986, công ty Hewlett Packard bắt đầu sử dụng kiến trúc
PA-RISC trong máy tính của mình. Năm 1987 Sun Micosystems, một công ty bán máy
tính sản xuất bộ xử lý SPARC dựa trên kiến trúc RISC – II của Berkeley.
1.3. Ưu điểm, nhược điểm của CISC, RISC
1.3.1. CISC
* Ưu điểm:
- Chương trình ngắn hơn so với kiến trúc RISC.
- Số lệnh để thực hiện chương trình ít hơn.
- Khả năng thâm nhập bộ nhớ dễ dàng hơn.
- Các bộ xử lý CISC trợ giúp mạnh hơn các ngôn ngữ cao cấp nhờ có tập lệnh phức tạp.
Hãng Honeywell đã chế tạo một máy có một lệnh cho mỗi động từ của ngôn ngữ COBOL.
* Nhược điểm:
- Diện tích của bộ xử lý dùng cho bộ điều khiển lớn. Giảm khả năng tích hợp thêm vào
vi xử lý.
- Tốc độ tính toán còn chậm.
- Thời gian xây dựng xong bộ vi xử lý là lâu hơn do các câu lệnh phức tạp.Và thời gian
thực hiện lệnh lâu khả năng xảy ra rủi ro nhiều.
1.3.2. RISC
* Ưu điểm:
- Diện tích của bộ xử lý dùng cho bộ điều khiển giảm so với kiến trúc CISC. Vì vậy có
thể tích hợp thêm vào bên trong bộ xử lý các thanh ghi, các cổng vào ra và bộ nhớ cache .
..
- Tốc độ tính toán cao nhờ vào việc giải mã lệnh đơn giản, có nhiều thanh ghi và thực
hiện kỹ thuật ống dẫn (pipeline) liên tục và có hiệu quả (các lệnh đều có thời gian thực
hiện giống nhau và có cùng dạng).
6
- Thời gian cần thiết để thiết kế bộ điều khiển là ít. Điều này góp phần làm giảm chi phí
thiết kế.
- Bộ điều khiển trở nên đơn giản và gọn làm cho ít rủi ro mắc phải sai sót mà ta gặp
thường trong bộ điều khiển.
* Nhược điểm:
- Việc cấm truy nhập bộ nhớ đối với tất cả các lệnh ngoại trừ các lệnh đọc (load) và ghi
(store) vào bộ nhớ. Vì vậy phải dùng nhiều lệnh để thực hiện một tác vụ nhất định.
- Cần phải tính các địa chỉ hiệu dụng vì không có nhiều cách định vị.
- Tập lệnh có ít lệnh nên các lệnh không có sẵn phải được thay thế bằng một chuỗi lệnh
của bộ xử lý RISC.
- Các chương trình dịch gặp nhiều khó khăn vì có ít lệnh làm cho việc diễn dịch các cấu
trúc của chương trình gốc bị hạn chế. Sự cứng nhắc của kỹ thuật ống dẫn cũng gây khó
khăn.
- Có ít lệnh trợ giúp cho ngôn ngữ cấp cao.
2. So Sánh CISC và RISC
CISC
- Hướng tiếp cận : hoàn thành một tác vụ
RISC
- Hướng tiếp cận: Cố gắng đơn giản hóa
với số lượng câu lệnh ít nhất
câu lệnh
- Tập trung vào thiết kế phần cứng
- Tập trung vào thiết kế phần mềm
- Gồm nhiều câu lệnh phức tạp, cần nhiều - Gồm các câu lệnh đơn giản được xử lý
chu kỳ để xử lý
trong 1 chu kỳ.
- Sử dụng kiểu kiến trúc tập lệnh ô nhớ - ô - Sử dụng kiểu kiến trúc tập lệnh thanh ghi
nhớ: Lệnh LOAD và STORE kết hợp với – thanh ghi: Lệnh LOAD và STORE là độc
nhau trong các câu lệnh.
- Truyền biến không hiệu quả ngoài bộ nhớ
- Kích thước của một chương trình nhỏ
- Độ dài của câu lệnh khác nhau
- Số chu kỳ trên giây cao
3. Đánh giá CISC và RISC
lập với nhau trong các câu lệnh.
- Truyền biến hiệu quả trên thanh ghi
- Kích thước của một chương trình lớn
- Độ dài của câu lệnh cố định.
- Số chu kỳ trên giây thấp.
- RISC chiếm ưu thế trong các cuộc chiến công nghệ, CISC chiếm ưu thế trong cuộc
chiến thương mại.
- CISC còn nhiều hạn chế về mặt kỹ thuật và công nghệ.
- Đối với công nghệ hiện tại, triển khai RISC sẽ nhanh hơn bởi vì :
+ Các công nghệ hiện tại có khả năng mở single-chip RISC
+ Với công nghệ mở single-chip CISC, RISC sẽ có pipeline.
7
+ Với công nghệ mở pipelined CISC, RISC sẽ có caches
- CISC có thể cải thiện bằng cách thêm nhiều transistor.
- Moore’s Law sẽ rút ngăn khoảng cách RISC/CISC.
- Để pipeline tốt: RISC cần 100000 transistor, CISC cần 300000 transistor.
- Trước 1995: 2M+ transistors đã tràn ngập thị trường
- Chi phí phần mềm và độ thương thích là ưu điểm quan trọng của CISC.
- Nhiều so sánh hiệu suất đã chỉ ra rằng chương trình chuẩn (benchmark) khi chạy trên
bộ vi xử lý RISC nhanh hơn so với trên bộ xử lý với CISC. Tuy nhiên, rất khó để xác định
được những tính năng của một bộ vi xử lý nào có hiệu suất cao hơn vì RISC có tốc độ cao
không phải là do tính năng của RISC tốt hơn mà do công nghệ, trình biên dịch tốt hơn.
- Sự đơn giản tập lệnh của bộ vi xử lý RISC yêu cầu bộ nhớ lớn hơn so với khi biên
chương trình biên dịch bằng CISC.
Tóm lại, kiến trúc RISC và CISC đều có những ưu và nhược điểm riêng nên rất khó
đánh giá cái nào sẽ tốt hơn.Hầu hết các bộ vi xử lý hiện nay không đơn thuần là RISC
hoặc CISC mà cố gắng kết hợp những ưu điểm của cả hai phương pháp.
4. Kết Luận.
Vào cuối những năm 1970, khi cuộc cách mạng về máy tính đang trên đà phát triển, giá
thành của phần cứng vẫn còn khá đắt tiền xuất phát từ hướng tiếp cận của CISC là tập
trung vào phần cứng. Với sự ra đời của kiến trúc CISC vào đầu những năm 1980, giá của
phần cứng đã giảm xuống đáng kể . Ranh giới giữa kiến trúc RISC và CISC đang dần trở
nên không rõ ràng vì sự tiến bộ của cả hai bộ xử lý CISC và RISC, khoảng cách giữa hai
kiến trúc này dần dần được thu hẹp. Với tốc độ của bộ xử lý đã được nâng cao, những
chip CISC ngày nay có thể thực thi nhiều hớn một lệnh trong một xung nhịp. Điều này
cho phép các chip CISC thực hiện song song hóa (pipeline). Với sự phát triển của một số
công nghệ khác, hiện nay một chip đơn có thể gắn nhiều transistor. Tương tự như vậy, bộ
xử lý RISC cũng có thể được làm bằng sự tích hợp phức tạp hơn của phần cứng, giống
như CISC.
Trong giai đoạn hiện nay, hướng tiếp cận trong thiết kế vi xử lý đang giao thoa giữa hai
kiến trúc RISC và CISC. Một kiến trúc mới với tên gọi
EPIC (Explicitly Parallel
Instruction Computing) đã mở cho một thời kỳ mới, nó mang ưu điểm của RISC lẫn
8
CISC. EPIC dựa trên bộ xử lý ”Itanium” và được sử dụng trong thương mại một cách
rộng rải bởi hai hãng máy tính lớn là HP-Compact và Unisys.
Với sự hậu thuẫn lớn của Intel, đã làm cho thị phần máy tính thông minh của CISC lớn
hơn. Tuy nhiên, RISC nhờ vào thế mạnh của phương pháp hiệu quả đã làm tăng nhanh sự
tiến triển của mình trong thị phần của thiết bị cầm tay và di động. Các thiết bị của
Nintendo và Apple… là những minh chứng đáng chú ý cho điều này. Vì vậy, cả 2 kiến
trúc này đều phát triển rất mạnh trong tương lai trừ khi có một kiến trúc mới tốt hơn xuất
hiện.
Trung tâm nghiên cứu và đào tạo thiết kế vi mạch (ICDREC) thuộc Đại học Quốc gia
TP HCM cũng ứng dụng những kiến trúc này trong việc nghiên cứu và thiết kế các chip
xử lý 8 bit, 24 bit và 32 bit.
Chip SG8V1 được ứng dụng nhiều trong chế tạo máy điều hòa, máy đo huyết áp, điện
kế điện tử, thiết bị giám sát hành trình...
Chip ADC 24-bit được ứng dụng nhiều trong lĩnh đo lường như đo điện kế điện tử, địa
chấn kế và đặc biệt trong lĩnh vực y tế như điện tâm đồ (ECG), xử lý tín hiệu y khoa...
Chip ADC 24-bit.
Chip vi xử lý 32-bit VN1632 được Trung tâm nghiên cứu và đào tạo thiết kế vi mạch
(ICDREC) thuộc Đại học Quốc gia TP HCM nghiên cứu và thiết kế. Chip VN1632 dựa
trên kiến trúc RISC Harvard, kiến trúc pipeline 5 tầng, bộ nhớ cache bên trong, tập lệnh
bao gồm 65 lệnh, độ rộng từ lệnh 32-bit, bộ nhân bằng phần cứng, có chế độ debug và
thiết kế đồng bộ.
9
Chip vi xử lý 32-bit VN1632 của ICDREC.
Hiện tại ICDREC đã đưa chip 32-bit VN1632 vào ứng dụng để phát triển sản phẩm hộp
đen ôtô, thiết bị khung ảnh số và phục vụ nghiên cứu giáo dục.
10
TÀI LIỆU THAM KHẢO
/> /> /> /> /> /> /> /> /> /> /> /> />
11