Tải bản đầy đủ (.pdf) (19 trang)

Tiểu luận môn kiến trúc máy tính nâng cao kiến trúc tập lệnh cisc và risc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (654.44 KB, 19 trang )

Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minh
Khoa Khoa học và Kỹ thuật máy tính

Kiến trúc tập lệnh
CISC và RISC

Nhóm thực hiện:
Lê Quốc Nam (1570061)
Cao Tấn Thành (1570231)
Phạm Thành Trí (1570234)
Nguyễn Văn Luân (1570220)
Nguyễn Hoàng Minh Quân (1570224)

Thành phố Hồ Chí Minh, ngày 15, tháng 9, năm 2015


Mục lục
Chương 1. Kiến trúc tập lệnh CISC ................................................................................ 1
1.1. Khái niệm .................................................................................................................. 1
1.2. Lịch sử hình thành và phát triển ............................................................................... 1
1.3. Các tính chất chung của kiến trúc CISC ................................................................... 1
Nguyên lý thiết kế ........................................................................................................ 1
Đặc trưng ...................................................................................................................... 2
Ví dụ tập lệnh CISC ..................................................................................................... 2
Chương 2. Kiến trúc tập lệnh RISC ................................................................................ 5
2.1. Khái niệm .................................................................................................................. 5
2.2. Lịch sử hình thành và phát triển ............................................................................... 5
Lịch sử hình thành ........................................................................................................ 5
Quá trình phát triển ...................................................................................................... 6
2.3. Các tính chất chung của kiến trúc RISC ................................................................... 6
Tập lệnh với số lượng lệnh ít, bao gồm các lệnh đơn giản, đa số các lệnh được thực


hiện trong một chu kỳ .................................................................................................. 6
Kiến trúc Load-and-store ............................................................................................. 6
Sử dụng một số cách đánh địa chỉ đơn giản................................................................. 7
Các lệnh có cùng định dạng và độ dài cố định............................................................. 7
Sử dụng nhiều thanh ghi .............................................................................................. 7
Sử dụng kỹ thuật pipeline để nâng cao hiệu năng........................................................ 7
Ví dụ tập lệnh RISC ..................................................................................................... 9
Chương 3. Đánh giá kiến trúc tập lệnh CISC và RISC ............................................... 10
3.1. Những điểm khác biệt giữa CISC và RISC ............................................................ 10
Câu lệnh...................................................................................................................... 10
Đặc điểm thiết kế ....................................................................................................... 10
Kích thước mã assembly ............................................................................................ 10
Phần cứng ................................................................................................................... 10


3.2. Ưu điểm và khuyết điểm của CISC ........................................................................ 11
Ưu điểm ...................................................................................................................... 11
Khuyết điểm ............................................................................................................... 11
3.3. Ưu điểm và khuyết điểm của RISC ........................................................................ 12
Ưu điểm ...................................................................................................................... 12
Khuyết điểm ............................................................................................................... 12
Chương 4. Kết luận ......................................................................................................... 13
4.1. CISC và RISC ở hiện tại ......................................................................................... 13
4.2. Tương lai ................................................................................................................. 13
Tài liệu tham khảo ........................................................................................................... 15


Danh mục hình
Hình


Trang

Hình 1. Nhân hai số trong bộ nhớ ....................................................................................... 3
Hình 2. Thực thi công việc tuần tự ...................................................................................... 8
Hình 3. Thực thi công việc theo kỹ thuật pipeline .............................................................. 8


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Chương 1. Kiến trúc tập lệnh CISC
1.1. Khái niệm
Complex Instruction Set Computing (CISC) - máy tính với tập lệnh phức tạp là phương
pháp thiết kế vi xử lý với một lệnh có thể thực thi một hoặc nhiều phép tính cấp thấp hoặc
có khả năng xử lý nhiều bước hoặc định vị địa chỉ.
CISC được sử dụng trong các bộ xử lý System/360, z/Architecture, CISC còn được sử
dụng trong các bộ xử lý và điều khiển như Motorola 6800, Intel 8080…

1.2. Lịch sử hình thành và phát triển
CISC được giới thiệu vào đầu những năm 1960, trong thời điểm này, việc sản xuất phần
cứng dễ hơn nhiều so với sản xuất phần mềm, vì thế mọi ưu tiên đều tập trung vào phát
triển phần cứng.
Trước khi kiến trúc RISC (được trình bày ở chương kế) ra đời, nhiều nhà phát triển đã cố
gắng thiết kế những tập lệnh hỗ trợ trực tiếp những ngôn ngữ bậc cao, cho phép gọi hàm,
điều khiển lặp, đánh dấu địa chỉ phức tạp, truy xuất trực tiếp cấu trúc dữ liệu và mảng, tất
cả được tổ hợp trong một tập lệnh. Do đó mật độ thông tin trong một mã lệnh sẽ khá cao.
Trong thời gian này, bộ nhớ còn bị giới hạn về kích thước bởi chi phí của mỗi byte bộ
nhớ còn rất đắt. Hơn nữa, tốc độ CPU cao hơn nhiều so với tốc độ của bộ nhớ, người ta
mong muốn có một bộ xử lý với kiến trúc tập lệnh tận dụng tối đa thời gian chờ của CPU,

nghĩa là càng giới hạn sử dụng bộ nhớ càng nhiều càng tốt. Do đó, việc tăng lượng thông
tin trong một mã lệnh có thể giảm truy xuất và gánh nặng lên bộ nhớ.
Tuy nhiên việc phát triển những tập lệnh có thông lượng lớn, giá rẻ cũng như cho phép
những ngôn ngữ bậc cao có thể xử lý trên ít tập lệnh hơn không phải lúc nào cũng hiệu
quả. Chi tiết cụ thể sẽ lần lược được trình bày trong các phần kế của báo cáo này.

1.3. Các tính chất chung của kiến trúc CISC
Nguyên lý thiết kế
CISC được thiết kế dựa trên ba nguyên lý: sử dụng Microcode, xây dựng mã lệnh được
tích hợp và xây dựng tập lệnh bậc cao.
-

-

Microcode: Trong lập trình hệ thống microcode, tập lệnh tương ứng với mỗi
ngôn ngữ máy khác nhau. Vì vậy khi một tập lệnh của ngôn ngữ máy bất kỳ được
nạp vào bộ xử lý, nó chỉ thực thi những lệnh tương ứng được tích hợp vào bộ nhớ
trước đó.
Xây dựng mã lệnh được tích hợp: Bằng cách sử dụng microcode, nhà thiết kế
có thể tích hợp nhiều chức năng cho mỗi lệnh. Do đó, chương trình có khả năng
Trang 1


Kiến trúc máy tính nâng cao

-

Kiến trúc tập lệnh CISC và RISC

giảm số lệnh khi thực thi chương trình, đồng thời làm giảm truy xuất đến bộ nhớ

chính, vốn dĩ chậm và giới hạn trong thời điểm CISC ra đời.
Xây dựng tập lệnh cấp cao: triết lý này cho phép những nhà thiết kế xây dựng
những tập lệnh tương ứng với những ngôn ngữ bậc cao. Vì vậy trình biên dịch có
thể được tối giản hơn, câu lệnh được rút ngắn.

Đặc trưng
-

-

-

CISC có một số lượng lớn mã lệnh, thông thường từ khoảng 100 – 250.
Giảm thiểu ranh giới giữa tập lệnh của vi điều khiển và ngôn ngữ cấp cao.
Một số mã lệnh chỉ thực hiện một số chức năng chuyên biệt và rất ít khi được sử
dụng.
Số lệnh để thực hiện chương trình ít. Khả năng thâm nhập bộ nhớ dễ dàng hơn
Mất nhiều thời gian xây dựng bộ xử lý
Thời gian thực hiện lệnh lâu nên rủi ro nhiều
Có thể thay đổi chiều dài của mã lệnh. Đây là một trong những đặc điểm làm cho
chíp CISC phức tạp, nhưng điều đó cũng làm cho nó thực tế hơn trong các hệ
thống nhúng.
Đơn giản hóa trình biên dịch
Chương trình dịch nhỏ và nhanh hơn
Việc hiện thực song song hóa phức tạp, do các lệnh thường có độ dài và thời gian
thực thi khác nhau, nên các kỹ thuật tối ưu như pipeline (trình bày ở chương kế)
sẽ khó hiện thực trên kiến trúc CISC
Tiêu thụ nhiều năng lượng
Các vi xử lý khác nhau có thể có tập lệnh rất khác nhau, hoặc rất hữu dụng hoặc
vô dụng với nhu cầu của mỗi người dùng. Ví dụ lệnh TBLS ở dòng chíp 68300

của Motorola. TBLS là một lệnh tra bảng và nội suy (table look up and
interpolate instruction). Hầu hết các nhà lập trình sẽ chẳng bao giờ dùng nhưng
nó sẽ là vô giá khi họ cần đến.

Một vài ví dụ về vi xử lý có kiến trúc CISC : System/360, PDP-11, VAX, 68000, và
x86.
Ví dụ tập lệnh CISC
Ta xét ví dụ về nhân 2 số trong trong bộ nhớ để thấy được cách tiếp cận của CISC.
Hình bên dưới là một biểu đồ mô phỏng cơ chế lưu trữ tổng quát trong máy tính. Bộ nhớ
chính được chia làm những ô nhớ được đánh dấu bằng dòng 1- 6, cột 1- 4. Đơn vị thực
thi sẽ chịu trách nhiệm truyền ra ngoài tất cả các tính toán. Tuy nhiên, đơn vị thực thi chỉ
có thể vận hành khi dữ liệu được nạp vào 6 thanh ghi (A, B,C, D, E hoặc F). Vấn đề đặt
Trang 2


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

ra là chúng ta muốn tìm ra kết của của phép tính của 2 số - Số thứ nhất được lưu ở ô nhớ
2:3, số còn lại được lưu ở ô nhớ 5:2 – và lưu kết quả trả về ở ô nhớ 2:3.

Hình 1. Nhân hai số trong bộ nhớ

Trong ví dụ này công việc là lệnh MULT. Lệnh này khi thực thi sẽ
-

Nạp 2 giá trị từ bộ nhớ vào thanh ghi khác nhau.
Nhân 2 giá trị này.
Nhân 2 giá trị này.

Lưu kết quả vào thanh ghi.

Tất cả 3 tác vụ trên được thực hiện chỉ với 1 lệnh:
MULT 2:3, 5:2
Lệnh MULT được biết như là một lệnh phức tạp. Nó hoạt động trực tiếp trên bộ nhớ và
không yêu cầu lập trình viên gọi bất kỳ hàm nạp và lưu giá trị nào. Lệnh này giống như là
một lệnh trong ngôn ngữ cấp cao. Giả sử a là giá trị của 2:3 và b là giá trị của 5:2, khi đó
lệnh này được xác định trong lệnh của ngôn ngữ C là “a = a * b”.
Ưu điểm lớn nhất của cách tiếp cận này là trình biên dịch làm rất ít việc khi chuyển từ
ngôn ngữ cấp cao sang Assembly. Bởi vì chiều dài của code rất ngắn nên sẽ tốn ít RAM
Trang 3


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

để lưu trữ các lệnh. Điều này sẽ đặt nặng vai trò ở việc xây dựng những lệnh trực tiếp đến
phần cứng.

Trang 4


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Chương 2. Kiến trúc tập lệnh RISC
2.1. Khái niệm
Reduced instruction set computing (RISC) là phương pháp thiết kế vi xử lý theo hướng

đơn giản hóa kiến trúc tập lệnh và giảm số chu kỳ thực thi của mỗi lệnh, từ đó nâng cao
hiệu năng của bộ vi xử lí [1].
Một số kiến trúc tập lệnh RISC phổ biến bao gồm ARM, MISP, Motorola 88000,
PowerPC, … Trong số đó, kiến trúc ARM được dùng rất nhiều trong máy tỉnh bảng và
điện thoại thông minh ngày nay.

2.2. Lịch sử hình thành và phát triển
Lịch sử hình thành
Vào năm 1964, siêu máy tính CDC 6600 được thiết kế bởi Seymour Cray sử dụng kiến
trúc load/store chỉ với hai cách đánh địa chỉ bộ nhớ và 74 mã lệnh, thời gian thực hiện
lệnh nhanh hơn 10 lần so với việc truy xuất bộ nhớ thông thường. CDC 6600 được biết
đến như máy tính có vi xử lí RISC đầu tiên.
Các dự án RISC sau đó được thực hiện bởi IBM, Stanford và UC-Berkeley vào cuối năm
1970 đến năm 1980, cụ thể là IBM 801, Stanford MIPS và Barkeley RISC.
Dự án IBM 801 bắt đầu vào năm 1975 và hoàn thành vào năm 1980, cho ra đời chip vi
xử lý ROMP được sử dụng trong máy tính IBM RT-PC vào năm 1986.
Tuy nhiên, thiết kế RISC được nhiều người biết đến nhất đến nhất xuất phát từ các
chương trình nghiên cứu ở các trường đại học, điển hình là Berkeley RISC ở đại học
California và MIPS ở đại học Stanford.
Dự án Berkeley RISC bắt đầu vào năm 1980 bởi David Patterson và Carlo H. Sequin,
với khả năng nâng cao hiệu suất của các bộ vi xử lí bằng kỹ thuật đường ống (pipeline)
và cửa sổ thanh ghi (register window). Dự án này cho ra đời vi xử lí RISC-I vào năm
1982, với 44 420 transistor với tập lệnh chỉ có 32 lệnh. RISC-II ra đời vào năm 1983, với
40 760 transistor, tập lệnh gồm 39 lệnh và nhanh hơn gấp 3 lần.
Cũng trong cùng thời gian đó, dự án MIPS được thực hiện bởi Join L. Hennessy tại đại
học Stanford và năm 1981, tập trung chủ yếu vào kỹ thuật đường ống để tối ưu bộ vi xử
lí. Hệ thống hoàn chỉnh được hoàn thành vào năm 1983, và có thể thực thi các chương
trình đơn giản vào năm 1984.

Trang 5



Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Quá trình phát triển
Dự án 801 của IBM được ứng dụng trong máy tính RT-PC với chip ROMP dù sau đó
không thành công về mặt thương mại nhưng đã tạo tiền đề cho kiến trúc tập lệnh IBM
Power, được sử dụng trong chip PowerPC sau này. Đây là một trong những họ vi xử lí
được sử dụng rất phổ biến trong các xe hơi. Các máy tính của Apple cũng sử dụng họ vi
xử lí này mãi cho đến năm 2006.
Dù không được thương mại hóa, nhưng kiến trúc RISC-II được khá nhiều công ty áp
dụng vào thời điểm đó, điển hình nhất là Sun Microsystem với vi xử lí SPARC. Hầu hết
các chip RISC ngày nay cũng đều được thiết kế dựa trên kiến trúc RISC-II của Berkeley.
Năm 2010, dự án kiến trúc tập lệnh mã nguồn mở RISC-V được bắt đầu và hiện vẫn đang
tiếp tục được phát triển.
Dự án MIPS của đại học Stanford sau đó được tiếp nối với tên MIP-X và thương mại hóa
với vi xử lí R2000 vào năm 1985, R3000 vào năm 1986, được sử dụng trong các máy
chơi game Nintendo 64 Console và PlayStation.
Ngày này, dù không được sử dụng trong mảng PC và Server (vốn được thống trị bởi nền
tảng x86 của Intel) nhưng các vi xử lí RISC vẫn được sử dụng khá phổ biến trong đời
sống, điển hình nhất là trong các hệ thống nhúng công suất thấp có thể tìm thấy ở xe hơi,
điện thoại di động, thiết bị điện tử dân dụng…

2.3. Các tính chất chung của kiến trúc RISC
Các tập lệnh được thiết kế theo kiến trúc RISC khá đa dạng, được ứng dụng vào nhiều
lĩnh vực khác nhau. Theo thời gian, số lượng các lệnh, tính chất tập lệnh cũng được thay
đổi khá nhiều để đáp ứng nhu cầu ngày càng cao của các ứng dụng. Tuy nhiên, nhìn
chung, các ví xử lí dựa trên kiến trúc RISC vẫn có chung các đặc điểm sau đây:

Tập lệnh với số lượng lệnh ít, bao gồm các lệnh đơn giản, đa số các lệnh được thực
hiện trong một chu kỳ
Mục tiêu chính của kiến trúc RISC là tăng hiệu năng xử lí của CPU thông qua việc đơn
giản hóa kiến trúc tập lệnh. Tập lệnh được thiết kế chỉ bao gồm các lệnh đơn giản, thường
sử dụng nhất và đa số được thực thi trong một chu kỳ của bộ xử lí.
Kiến trúc Load-and-store
Trong tập lệnh được thiết kế theo kiến trúc RISC, chỉ có hai lệnh LOAD và STORE là
thao tác trực tiếp lên bộ nhớ, trong khi tất cả các lệnh khác đều thao tác trên các thanh
ghi. Các lệnh thông thường do đó sẽ được thực thi nhanh hơn, và chỉ một số ít các lệnh
thao tác trên vùng nhớ là có thể cần nhiều hơn một chu kì xử lí.
Trang 6


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Sử dụng một số cách đánh địa chỉ đơn giản
RISC chỉ sử dụng một số cách đánh địa chỉ đơn giản, cùng với tập lệnh đơn giản hóa và
mỗi lệnh được thực thi trong một chu kì là điều kiện cần thiết để thực hiện cơ chế
pipeline, từ đó nâng cao hiệu năng của bộ vi xử lý.
Các lệnh có cùng định dạng và độ dài cố định
Tập lệnh thiết kế theo kiến trúc RISC có cùng độ dài (thông thường là 32 bit), tuy nhiên
cũng có một số trường hợp ngoại lệ, điển hình là vi xử lí ROMP sử dụng trong IBM PCRT có tập lệnh với hai kích thước là 32 và 16 bit. Điều này đảm bảo cho mỗi lệnh có thể
được dịch (decode) nhanh chóng và đơn giản hơn, do vị trí mã lệnh (opcode) cũng như độ
dài mỗi lệnh là như nhau.
Việc các lệnh có cùng độ dài cũng giúp cho cơ chế pipeline được hiện thực dễ dàng hơn
thông qua việc xác định được lệnh kế tiếp mà không cần phải dịch hoàn chỉnh lệnh hiện
tại.
Sử dụng nhiều thanh ghi

Việc sử dụng nhiều thanh ghi để lưu các biến và kết quả tạm của quá trình tính toán sẽ
giảm các thao tác đọc/ghi vào bộ nhớ (vốn chậm hơn so với thanh ghi). Đây cũng là ưu
thế của kiến trúc RISC, với tập lệnh đơn giản đồng nghĩa với việc phần cứng của vi xử lí
có thể hiện thực dễ dàng hơn và có nhiều không gian hơn cho các thanh ghi.
Sử dụng kỹ thuật pipeline để nâng cao hiệu năng
Với các đặc điểm đã trình bày ở các phần trước, cụ thể là tập lệnh đơn giản, các lệnh
được thực hiện trong cùng một chu kỳ và có cùng định dạng, các vi xử lí được thiết kế
theo kiến trúc RISC có thể áp dụng kỹ thuật pipeline dễ dàng hơn rất nhiều so với kiến
trúc CISC, từ đó nâng cao hiệu năng của vi xử lý. Đây có thể được xem như một trong
những đặc điểm cơ bản của các vi xử lý RISC.
Để hiểu hơn về các các vi xử lí hiện thực theo kỹ thuật pipeline, ta cùng xét ví dụ bên
dưới:
Giả sử một công việc giặt ủi bao gồm 3 công đoạn như sau:
-

Giặt: 30 phút
Sấy khô: 40 phút
Ủi: 20 phút

Nếu ta có 4 túi quần áo được đánh ký hiệu lần lượt là A, B, C, D. Theo cách tiếp cận
thông thường, 4 túi quần áo sẽ được giặt lần lượt qua 3 công đoạn một cách tuần tự cho
đến khi hoàn thành (Hình 2)
Trang 7


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Hình 2. Thực thi công việc tuần tự


Khi đó, để giặt xong tất cả các túi đồ, ta phải mất tới 6 tiếng.
Tuy nhiên, nếu áp dụng cách tiếp cận theo kỹ thuật pipeline, cụ thể như sau:
-

Khi giặt xong túi A và chuyển sang giai đoạn sấy khô, ta đồng thời giặt túi đồ B
Khi túi đồ A sấy xong và chuyển sang giai đoạn ủi, ta tiếp tục thực hiện sấy túi đồ
B

Quá trình trên được thực hiện tương tự cho túi đồ C và D (hình 3).

Hình 3. Thực thi công việc theo kỹ thuật pipeline

Với việc áp dụng kỹ thuật pipeline, quá trình giặt 4 túi đồ có thể kết thúc trong vòng 3
tiếng, tiết kiệm được rất nhiều thời gian so với cách tiếp cận thông thường.
Có thể thấy rằng, khi túi đồ A thực hiện giai đoạn sấy, thì túi đồ sau đó (túi đồ B) dù đã
được giặt xong trước (chỉ mất 30 phút) nhưng vẫn phải đợi 10 phút để đi vào giai đoạn
tiếp theo. Quá trình này cũng xảy ra tương tự cho những túi đồ còn lại, hay nói cách khác,
thời gian thực hiện công việc theo kỹ thuật pipelines phải phụ thuộc vào bước thực
hiện có độ dài lớn nhất. Với việc các lệnh đều được đơn giản hóa và đa số thực thi trong
Trang 8


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

một chu kỳ, việc hiện thực pipeline với kiến trúc tập lệnh RISC sẽ dẽ dàng và hiệu quả
hơn nhiều so với kiến trúc tập lệnh CISC.
Quá trình thực thi pipeline của RISC cũng được thực hiện tương tự như ví dụ trên, cụ thể,

mỗi lệnh RISC sẽ được thực thi qua 5 bước:
-

Bước 1: Lấy lệnh từ bộ nhớ (Instrution fetch)
Bước 2:Đọc thanh ghi và giải mã lệnh(Decode)
Bước 3:Thực hiện lệnh và tính toán địa chỉ (Excute, address calculate)
Bước 4:Truy cập đến toán hạng trong bộ nhớ (Memory access)
Bước 5:Ghi kết quả trở lại vào thanh ghi (Write back)

Ví dụ tập lệnh RISC
Ta xem lại ví dụ nhân hai số đã nêu ở chương 1 với cách tiếp cận của RISC:
Với hướng tiếp cận đơn giản hóa tập lệnh, lệnh MULT theo cách tiếp cận ở chương 1 của
kiến trúc tập lệnh CISC sẽ được chia thành các lệnh đơn giản hơn, cụ thể như sau:
LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A
Trong đó:
-

Lệnh LOAD: lấy dữ liệu từ bộ nhớ và lưu vào thanh ghi
Lệnh PROD: tính phép nhân giữa hai số được lưu trong hai thanh ghi
Lệnh STORE: lấy dữ liệu từ thanh ghi và lưu vào bộ nhớ

Nhìn qua cách tiếp cận của RISC có vẻ kém hiệu quả hơn, do phải thực thực nhiều lệnh
hơn (4 so với 1 của RISC), đồng nghĩa với việc phải cần nhiều bộ nhớ hơn để lưu các
lệnh này khi thực thi.
Tuy nhiên, vì mỗi lệnh sẽ được thực thi trong một chu kì xử lí, nên đoạn chương trình
trên sẽ mất thời gian xử lí tương đương với CISC. Ngoài ra, do các lệnh có cùng chu kỳ
nên việc áp dụng kỹ thuật pipeline (như đã phân tích ở trên sẽ dễ dàng hơn rất nhiều).


Trang 9


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Chương 3. Đánh giá kiến trúc tập lệnh CISC và RISC
Từ những nội dụng đã trình bày ở hai chương trước, chương này tóm tắt lại những điểm
khác biệt chính của hai kiến trúc tập lệnh, cũng như trình bày những ưu, khuyết điểm của
cả hai.

3.1. Những điểm khác biệt giữa CISC và RISC
Câu lệnh
Đây là khác biệt cơ bản nhất giữa hai kiến trúc tập lệnh. Trong khi RISC đơn giản hóa
kiến trúc tập lệnh và giảm thời gian thực thi mỗi lệnh thì CISC tập trung vào các câu lệnh
phức tạp, gần với chương trình cấp cao.
Đặc điểm thiết kế
Với việc có các câu lệnh phức tạp gần với ngôn ngữ cấp cao (ví dụ ở hai chương trước),
các chương trình dịch thường không cần phải tốn nhiều công sức để dịch các ngôn ngữ
cấp cao hơn sang mã assembly với kiến trúc CISC, nhưng bù lại, việc thiết kế phần cứng
bên dưới sẽ khó khăn hơn rất nhiều.
Kích thước mã assembly
Như đã trình bày ở chương trước, RISC sẽ sinh ra nhiều câu lệnh hơn (do các câu lệnh
đều đơn giản), đồng nghĩa với việc mã assembly sẽ có kích thước lớn hơn và cần nhiều
bộ nhớ hơn để lưu trữ so với CISC.
Phần cứng
Từ đặc trưng trong cách tiếp cận, CISC cần nhiều transitor để lưu các câu lệnh phức tạp,
trong khi RISC cần nhiều thanh ghi để lưu và thực hiện các thao tác tính toán.

Tiêu chí

CISC

RISC

Đặc điểm thiết kế

Phần cứng phức tạp

Phần mềm (compiler) phức
tạp

Kích thước mã assembly

Nhỏ

Lớn

Câu lệnh (instruction)

Thực thi trong nhiều chu kỳ,
tập lệnh phức tạp

Đa số thực thi trong một chu
kỳ, tập lệnh đơn giản

Phần cứng

Cần nhiều transistor để lưu

các lệnh phức tập

Có nhiều thanh ghi

Bảng 1. Tóm tắt những điểm khác biệt giữ CISC và RISC
Trang 10


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Những khác biệt giữa hai kiến trúc được tóm tắt như bảng 1.

3.2. Ưu điểm và khuyết điểm của CISC
Ưu điểm
Ưu điểm nổi bật nhất của CISC là giảm việc sử dụng cache và bộ nhớ. Vì vậy nó tốt hơn
cho các ứng dụng đòi hỏi nhiều trong việc truy xuất bộ nhớ hiệu suất cao.
Khi hầu hết các trở ngại (nút cổ chai) lớn trong các hệ thống là do dung lượng và tốc độ
bộ nhớ gây ra, việc sử dụng các bộ xử lý CISC sẽ giúp hệ thống đạt hiệu suất cao hơn, vì
nó giảm được số lần truy xuất bộ nhớ cũng như dung lượng bộ nhớ.
Với cùng một bộ nhớ cache, bộ vi xử lý CISC có thể mô tả nhiều thông tin hơn RISC.
Ví dụ, để thực hiện R1 = R2 + R3 + R4 + R5 + R6 và đẩy kết quả vào stack, mã
RISC được viết ra như sau:
ADD R1, R2, R3 (4-byte)
ADD R1, R4, R5 (4-byte)
ADD R1, R6, R0 (4-byte, R0 = 0)
PUSH R1 (4 byte)
Các lệnh RISC đòi hỏi phải có 16 byte bộ nhớ.
Đối với CISC, có thể mã hoá với các kiểu khác nhau, cùng một thông tin có thể được

biểu diễn như sau:
ADD R1, R2, R3 (4-byte)
ADD R1, R4, R5 (4-byte)
ADD R1, R6 (2-byte)
PUSH R1 (1-byte)
CISC chỉ mất 12 bytes của bộ nhớ. Việc sử dụng bộ nhớ được cải thiện cho phép bộ vi xử
lý thực hiện nhiều lệnh hơn và vì vậy làm giảm chu kỳ nhàn rỗi (idle cycles).
Khuyết điểm
Các khuyết điểm của CISC chủ yếu đến từ việc tập lệnh phức tạp, kéo theo khó khăn
trong quá trình thiết kế phần cứng bên dưới, cũng như khó khăn trong hiện thực kỹ thuật
pipeline.

Trang 11


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

3.3. Ưu điểm và khuyết điểm của RISC
Ưu điểm
Với tập lệnh đơn giản, thiết kế phần cứng cho các vi xử lí RISC sẽ đơn giản và dễ tối ưu
hơn rất nhiều, từ đó giảm chi phí trong quá trình thiết kế. Ngoài ra, các lệnh cùng định
dạng và chu kỳ cũng giúp cho việc thực hiện kỹ thuật pipine trên vi xử lý RISC đơn giản
hơn, từ đó nâng cao hiệu năng.
Khuyết điểm
RISC tốn nhiều bộ nhớ để lưu các câu lệnh hơn so với CISC do số lượng câu lệnh dịch ra
từ các ngôn ngữ cấp cao hơn sẽ nhiều hơn (vì tập lệnh đơn giản hơn). Tương tự, các
chương trình dịch viết trên vi xử lí RISC cũng sẽ phức tạp hơn.


Trang 12


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Chương 4. Kết luận
Các chương trước đã trình bày đầy đủ các thông tin về hai kiến trúc tập lệnh RISC và
CISC, cũng như so sánh sự khác biệt, ưu, khuyết điểm của từng kiến trúc tập lệnh. Trong
chương cuối cùng của báo cáo này, nhóm sẽ trình bày sơ lược ứng dụng tại thời điểm
hiện tại của hai kiến trúc tập lệnh, cũng như xu hướng của các các công nghệ liên quan
trong tương lai.

4.1. CISC và RISC ở hiện tại
Ở thời điểm hiện tại, với sự bùng nổ của các thiết bị cầm tay nhỏ gọn, vi xử lý theo kiến
trúc RISC xuất hiện rất nhiều trong máy tính bảng, điện thoại thông minh (kiến trúc
ARM), xe hơi (PowerPC), thiết bị điện tử gia dụng (MIPS)…Kiến trúc RISC mang lại
sức mạnh cho những vi xử lí dù bị giới hạn về kích thước và điện năng tiêu thụ nên gần
như thống lĩnh thị trường này.
Tuy nhiên, tại thị trường PC và Server, nền tảng x86 của Intel (được thiết kế theo kiến
trúc CISC) gần như thống lĩnh tuyệt đối.
Từ góc nhìn khoa học, có thể thấy rằng, kiến trúc RISC ra đời sau và có nhiều ưu điểm
nổi bật so với CISC. Tập lệnh đơn giản, phần cứng dễ thiết kế, dễ dàng hiện thực pipeline
và các kỹ thuật song song hóa (vốn khó hiện thực hơn nhiều trên kiến trúc CISC). Tuy
nhiên, việc so sánh hai nền tảng này xưa nay chưa bao giờ có thể kết luận ai là người
thắng cuộc, bất chấp những ưu điểm của kiến trúc RISC.
Một trong những nguyên nhân chính là vấn đề tương thích phần mềm. Trong lịch sử phát
triển, các vi xử lý RISC mất tới 10 năm để thương mại hóa. Các nền tảng phổ biến thời
bấy giờ (window 3.1 và window 95) vốn dĩ chỉ thiết kế cho các vi xử lý CISC.

Không có lợi nhuận lớn về mặt thương mại, các vi xử lí RISC dần hụt hơi trong quá trình
nâng cấp và phát triển. Intel với vị thế (và lợi nhuận) khổng lồ của mình đã đầu tư rất
nhiều cho quá trình phát triển vi xử lý, bao gồm cả việc tận dụng các ưu thế của kiến trúc
RISC vào sản phẩm của mình (trong phạm vi bài báo cáo này, chúng ta không trình bày
chi tiết).

4.2. Tương lai
Ngày nay với sự phát triển mạnh mẽ của công nghệ, các khuyết điểm của hai kiến trúc
dần được khắc phục. Một vi xử lý CISC có thể thực hiện được nhiều lệnh trong một chu
kỳ máy, giúp cho việc hiện thực pipeline dễ dàng hơn. Mặc khác trên vi xử lí cũng có thể
chứa rất nhiều transitor, giúp cho RISC có đủ không gian lưu trữ để thực hiện được các
lệnh phức tạp như CISC.
Trang 13


Kiến trúc máy tính nâng cao

Kiến trúc tập lệnh CISC và RISC

Ngoài ra, các nhà phát triển cũng dần tìm ra những cách khác nhau để đưa ưu điểm của
kiến trúc RISC vào CISC (cũng như ngược lại).
Tóm lại, với sự phát triển của công nghệ hiện tại, sự phân biệt giữa RISC và CISC không
còn thật sự rõ ràng. Cả hai đều đã đóng góp rất nhiều trong quá trình phát triển của vi xử
lý nói riêng và nền công nghệ nói chung.

Trang 14


Kiến trúc máy tính nâng cao


Kiến trúc tập lệnh CISC và RISC

Tài liệu tham khảo

[1] "Reducted instruction set computing - Wikipedia",
/>[Accessed 2015].
[2] "Intel x86 Processors – CISC or RISC? Or both??",
/>[3] "Complex instruction set computing",
/>[4] "Risc vs Cisc",
/>[5] "Why would anyone want CISC?", />
Trang 15



×