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

Tiểu luận môn kiến trúc máy tính nâng cao so sánh kiến trúc 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 (728.38 KB, 10 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

BÁO CÁO BÀI TẬP KIẾN TRÚC MÁY TÍNH NÂNG CAO

SO SÁNH KIẾN TRÚC RISC VÀ CISC
Học viên:
Phạm Minh Khuê – 1570213
Thái Hoàng Sơn – 1570227
Đặng Danh Hữu – 1570210
Thái Bình Dương – 1570204
Lục Minh Tuấn – 1570235
Đỗ Thanh Thái - 1570229

TP. HỒ CHÍ MINH, THÁNG 09/2015

-1-|Page


I.

LỊCH SỬ VÀ TỔNG QUAN

1. Kiến trúc CISC (Complex Instruction Set Computer)
Trong máy tính mọi thứ đều được đưa về các con số nhị phân “0”, “1” bởi vì máy tính chỉ hiểu các
mức điện thế tương ứng với 0/1 trên mỗi transistor cụ thể, người sử dụng muốn thực hiện một chương
trình nào đó, phải nạp mã lệnh chỉ gồm các con số 0-1 vào bộ nhớ cho máy tính. Có 3 cách để thực hiện
vấn đề này:







Viết ngay mã máy với các con số 0-1 và nạp vào bộ nhớ. Cách này rất khó thực hiện vì rất dễ
gây nhầm lẫn cho người viết và khó trong việc nhớ các câu lệnh, mất rất nhiều thời gian để
viết được một câu lệnh hoàn chỉnh.
Viết dạng tên gợi nhớ bằng hợp ngữ Assembly sau đó dịch ra mã máy. Cấp độ này gần với
ngôn ngữ máy nhưng vẫn còn phức tạp với người viết vì khó thực hiện trong các chương trình
phức tạp. Tuy nhiên trong cách này thì cấu trúc các câu lệnh tương đối gọn nhẹ và cũng dễ
nhớ.
Viết bằng ngôn ngữ lập trình cấp cao như C, C++, Pascal… sau đó dùng trình biên dịch ra mã
máy. Cách này thân thiện với người lập trình tuy nhiên tạo ra các chương trình có dung lượng
lớn hơn nhiều so với viết bằng hợp ngữ (Assembly). Thách thức lớn nhất là làm sao để có sự
kết hợp hài hòa giữa người làm phần cứng và người làm phần mềm để chương trình dịch
được thực hiện chuẩn tắc, nhỏ gọn và không tạo ra nhiều code trung gian.

Trong suốt thập niên 1960, các nhà thiết kế cố gắng thu hẹp khoảng cách giữa ngôn ngữ lập trình bậc
cao của con người và ngôn ngữ máy, họ đưa ra cấu trúc với tập các câu lệnh phức tạp gọi là CISC
(Complex Instruction Set Computer) có các chế độ định địa chỉ khác nhau và do đó tốn nhiều chu kì xung
nhịp cho mỗi câu lệnh. Vào thời kì này, người ta nhận thấy các chương trình dịch khó dùng các thanh ghi,
rằng các vi lệnh được thực hiện nhanh hơn các lệnh và cần thiết phải giảm độ dài chương trình. Do vậy
người ta ưu tiên chọn các kiểu ô nhớ - ô nhớ và ô nhớ - thanh ghi với những lệnh phức tạp và dùng nhiều
kiểu định vị. Điều này dẫn tới việc các lệnh có chiều dài thay đổi và như thế thì dùng bộ điều khiển vi
chương trình là hiệu quả nhất.
Việc giảm thiểu ranh giới giữa tập lệnh vi điều khiển và ngôn ngữ cấp cao không phải là một cách hay
để cho máy tính hoạt động hiệu quả. Vì vậy để biết được làm sao vi xử lý có thể hoạt động nhanh hơn ta
cần biết vi xử lý dùng nhiều thời gian vào việc gì.

-2-|Page



Sự khác biệt cơ bản giữa các dòng chip của các máy tính sử dụng với tập lệnh rút gọn RISC và máy
tính sử dụng với tập lệnh phức tạp CISC có thể được xem như là một cuộc chạy đua giữa các nhà lập trình
và các nhà thiết kế chíp. Chip CISC được đưa ra nhằm tạo thuận lợi cho những người lập trình ứng dụng
bằng cách bỏ các câu lệnh đơn giản mà thay vào đó là một câu lệnh thực thi dài. Điều này làm cho CISC
xử lý chậm như lại đạt yếu tố thân thiện. Ở mặt khác thì RISC kém thân thiện hơn nhưng mỗi câu lệnh
trong RISC phục vụ rất hiệu quả cho một mục đích hẹp và cụ thể. RISC đòi hỏi người lập trình cần rất kiên
nhẫn, giỏi và một trình biên dịch được tối ưu kỹ càng.

2. Kiến trúc RISC (Reduced instruction set computing):
Một số hệ thống từ những năm 1970 ( có thể là 1960) đã được ghi nhận là những kiến trúc RISC đầu
tiên, dựa một phần trên kiến trúc load/store. Khái niệm RISC được đưa ra đầu tiên bởi David Patterson
của dự án Berkeley RISC.
CDC 6600 dước thiết kế bởi Seymour Crayd năm 1964 đã sử dụng cấu trúc load/store với chỉ hai kiểu
addressing (register+register, and register+immediate constant) và 74 opcode với tỉ lệ clock
cycle/instruction nhanh hơn 10 lần so với tỉ lệ truy suất memory. Việc nhanh hơn này một phần do cấu
trúc tối ưu của CDC 6600 nhưng nó chính là tiền thân của của cấu trúc RISC sau này.
Michael J. Flynn coi kiến trúc RISC đầu tiên là IBM 801 được thiết kế năm 1975 bởi John Cocke và
hoàn thành năm 1980. IBM 801 thất bại trong việc thương mại hóa nhưng chính nó đã mang lại nguồn
cảm hứng cho các dự án sau này và dẫn tới IBM POWER instruction set architecture. Những thiết kế RISC
phổ biến nhất là xuất phát từ kết quả nghiên cứu của chương trình được tài trợ bởi DARPA VLSI, được biết
đến như là một tổ chức có rất nhiều nghiên cứu về chip design, computer graphics.
RISC của Berkeley dành được hiệu suất dựa trên sử dụng pipelining và kĩ thuật register windowing.
Trong CPU truyền thống sẽ có một số lượng thanh ghi và một chương trình có thể sử dụng bất kì thanh
ghi tại mọi thời điểm. Những CPU sử dụng kĩ thuật register windowing sẽ có một lượng lớn các thanh ghi
nhưng chương trình chỉ sử dụng số lượng nhỏ các thanh ghi đó. Những chương trình sử dụng giới hạn các
thanh ghi sẽ làm tăng tốc độ procedure được gọi: Sự gọi đơn giản là di chuyển windown xuống để thiết

-3-|Page



lập 8 thanh ghi được sử dụng và trả sự di chuyển window trở lại. Dự án Berkeley RISC tạo ra RISC-I
processor năm 1982 chứa chỉ 44420 transistor (nhỏ hơn rất nhiều so với 100000 của CISC) RISC-I chỉ có
32 instruction, vượt trội hoàn toàn so với single-chip design khác. RISC-II năm 1983 cóc 40760 transistor
và 39 instuction. Nó chạy nhanh gấp 4 lần RISC-I.

MISP cũng là một dạng của RISC, được phát triển bởi John L. Hennessy tại đại học Stanford năm 1981.
Nó trở thành hệ thống function năm 1983 và có thể chạy chương trình đơn giản năm 1984. MISP sử dụng
cách tiếp cận là clock cycle tích cực và sử dụng pipeline để giúp nó đảm bảo có thể hoạt động một cách
đầy đủ. Theo sau MIPS là MIPS-X. Năm 1984, Hennessy và cộng sự đã tạo hệ thống MIPS Computer. Sản
phẩm thương mại là R2000 microprocessor năm 1985 và theo sau đó là R3000 năm 1988.
Đầu những năm 1980, có những hồ nghi bao quanh khái niệm RISC về sự thương mại hóa trong
tương lai, nhưng đến giữa những năm 1980, RISC đã có sự phát triển tương đối đủ để thương mại hóa.
Năm 1986, Hewlett Packard đã bắt đầu sử dụng PA-RISC trong hệ thống máy tính của họ. Trong khi ấy,
những nỗ lực của Berkeley đã làm cho khái niệm RISC trở nên nổi tiếng và đến năm 1987, Sun
Microsystems bắt đầu di chuyển hệ thống với SPARC processor, dựa trên nền tảng là hệ thống RISC-II.

SPARC của SUN

-4-|Page


Tổ chức US government Committee on Innovations in Computing and Communications chấp nhạn khái
niệm RISC nhờ sự thành công của hệ thống RISC-II. Sự thành công này cũng đã thu hút sự đầu tư của
IBM với việc ra đời hệ thống RISC vào năm 1990. Đến năm 1995, RISC processors là nền tảng của ngành
công nghiệp máy chủ trị giá 15 tỷ USD.
Từ năm 2010, một open source: ISA, RISC-V được phát triển bởi đại học California với mục đính
nghiên cứu và như một sự thay thế cho sự độc quyền của ISA. Năm 2014, ISA được thiết kế để mở rộng
từ lõi barbone đủ cho một embedded processor nhỏ cho siêu máy tính và điện toán đám mây.


II.

ĐẶC ĐIỂM SO SÁNH:

1. Kiến trúc CISC
Ứng dụng điển hình là sử dụng trong kiến trúc x86 của Intel. Dưới đây là một số đặc điểm chính của
CISI/x86.
Format:




Độ dài câu lệnh thay đổi.
Thông thường các câu lệnh là ngắn và đơn giản. Tuy nhiên có một số câu lệnh đặc biệt phức
tạp và dài.
Độ dài khoảng 1B tới 16B

Toán tử




Phức tạp, cần nhiều chu kì để thực hiện câu lệnh
Các phép toán thể hiện phức tạp, được mã hóa.
Thao tác với kiểu chuỗi

Toán hạng:





Bộ nhớ, thanh ghi và trực tiếp
Có nhiều mode địa chỉ
X86: 8 thanh ghi 32b và 6 thanh ghi 16b

Việc tiến bộ trong mạch kết và phương pháp dịch đã làm cho nhận định trước đây phải xem xét lại
nhất là khi có một khảo sát định lượng về việc dùng tập lệnh các máy CISC.
Bộ xử lý

IBM 370/168

DEC 11/780

iAPX 432

Năm sản xuất

1973

1978

1982

Số lệnh

208

303


222

Bộ nhớ vi chương trình

420Kb

480Kb

64Kb

Chiều dài lệnh

16-48

16-456

6-321

Kỹ thuật chế tạo

ECL – MSI

TT1 – MSI

NMOS VXLI

Cách thực hiện lệnh

Thanh ghi – thanh ghi


Thanh ghi – thanh ghi

Ngăn xếp

Thanh ghi – bộ nhớ

Thanh ghi – bộ nhớ

Bộ nhớ - bộ nhớ

Bộ nhớ - bộ nhớ

Bộ nhớ - bộ nhớ

64kb

64kb

Dung lượng cache

-5-|Page

0


Bảng trên cho ta thấy các đặc tính của vài máy sử dụng CISC tiêu biểu. Ta thấy 3 máy đều có điểm
chung là có nhiều lệnh và chiều dài thay đổi. Có nhiều cách thực hiện lệnh và nhiều vi chương trình được
dùng.
⊕。Ưu điểm CISC









Kích thước tập lệnh thay đổi với rất nhiều định dạng khác nhau.
Cho phép giá trị trong bộ nhớ được dùng như toán hạng trong các chỉ lệnh xử lý dữ liệu.
Có rất nhiều thanh ghi, nhưng hầu hết chỉ sử dụng cho một mục đích riêng biệt nào đó.
Có nhiều lệnh, khoảng 500 lệnh
Có nhiều kiểu định vị.
Có nhiều dạng lệnh.
Có nhiều lệnh khác thâm nhập vào bộ nhớ

⊕。Nhược điểm




Sử dụng rất nhiều code ROM giải mã các chỉ lệnh
Các máy cũ ít khi cho phép dòng lệnh thực thi kiểu cấu trúc dòng chảy, chúng phải thực thi
tuần tự hết dòng lệnh này mới tới dòng lệnh khác.
Cần nhiều chu kì xung nhịp cho việc hoàn thành một lệnh.

2. Kiến trúc RISC:
⊕。Instruction set
Có một hiểu lầm lớn với cụm từ “reduced instruction set computer” là một ý tường tồi rằng
instructions được giới hạn đơn giản và cho kết quả là một tập các instructions nhỏ hơn. Do đó, trong
những năm qua, tập RISC instruction có sự phát triển về kích thước và ngày nay nhiều trong số chúng có

tập các instruction lớn hơn CISC CPU. Từ “reduced” được dùng để mô tả lượng công việc của bất kì single
instruction được hoàn thành thì được giảm tại bất kì single data memory cycle, để so sánh với instructions
phức tạp của CISC CPU. CISC CPU yêu cầu nhiều data memory cycles để thực hiện các single instruction.
Thông thường, RISC processors chia instructions cho I/O and data processing.
⊕。Triết lý thiết kế
Đối với bất kỳ mức độ nào, một chip RISC thường sẽ có rất ít transistors dành riêng cho lõi logic.
Điều đó cho phép cho phép các nhà thiết kế để tăng kích thước của tập register và tăng xử lý song song
nội bộ.
Các tính năng khác thường được tìm thấy trong kiến trúc RISC là:






Định dạng instruction thống nhất, bằng cách sử dụng một từ duy nhất với các opcode trong
các vị trí bit giống nhau ở mọi instruction, yêu cầu giải decoding;
Registers mục đích chung giống hệt nhau, cho phép bất kỳ registers để được sử dụng trong
mọi context, đơn giản hóa thiết kế compiler
Addressing modes đơn giản, với addressing phức tạp thực hiện thông qua trình tự của các
phép tính số học, load-store operations, hoặc cả hai
Vài kiểu dữ liệu trong phần cứng, một số CISCs có byte string instructions, hoặc hỗ trợ số
phức tạp

Ý tưởng bắt đầu khi người ta nhận thấy rất nhiều tính năng trong các bộ VXL vốn được thiết kế nhằm
giúp công việc lập trình trở nên dễ dàng hơn lại thường bị các phần mềm bỏ sót. Những tính năng này
thông thường cần vài chu kỳ máy để thực thi. Cộng thêm sự cách biệt về hiệu suất giữa các CPU và bộ

-6-|Page



nhớ chính đã dẫn đến nhiều kỹ thuật hoặc nhằm tổ chức lại quá trình thực thi trong bộ xử lý hoặc nhằm
giảm bớt số lần truy xuất bộ nhớ.
Những năm cuối của thập niên 1970, các nhà nghiên cứu của IBM (và cả một số dự án khác) đã
chứng minh rằng phần lớn các phương pháp đánh địa chỉ trực giao thường bị các chương trình bỏ qua.
Đây chính là kết quả không mong đợi do sử dụng các trình biên dịch cấp cao thay vì sử dụng hợp ngữ.
Các trình dịch tại thời điểm đó không đủ khả năng để tận dụng hết tính năng của các bộ VXL CISC; chủ
yếu là do sự khó khăn trong thiết kế trình dịch. Trình biên dịch càng trở nên phổ biến thì các tính năng
này lại càng bị bỏ quên.
Một nghiên cứu khác cũng chỉ ra rằng những tính năng này ít được dùng vì thực ra chúng được thực
thi chậm hơn một nhóm lệnh cùng thực hiện tác vụ đó. Đây giống như một nghịch lý của quá trình thiết
kế VXL, người thiết kế không có đủ thời gian để tối ưu cho tất cả các lệnh, do đó họ chỉ chú trọng đến
những lệnh thường được sử dụng nhiều nhất. Ví dụ cụ thể nhất có lẽ là lệnh INDEX của CPU máy VAX, sẽ
nhanh hơn từ 45% đến 60% nếu lệnh này được thay bằng một nhóm các lệnh VAX đơn giản khác.
Cũng trong thời gian này, CPU bắt đầu hoạt động nhanh hơn bộ nhớ. Thậm chí trong thập niên 1970,
người ta cho rằng điều này sẽ còn tiếp tục không dưới 1 thập niên nữa, và tới lúc đó CPU sẽ nhanh hơn
bộ nhớ hàng chục tới hàng trăm lần. Có lẽ đã đến lúc CPU cần thêm nhiều thanh ghi (sau này gọi
là cache) để có thể hoạt động ở tốc độ cao hơn. Những thanh ghi và bộ nhớ đệm mới sẽ cần khoảng
trống trên bo mạch hoặc trên chip được tạo ra nếu giảm sự phức tạp của CPU.
Tới lúc này, một phần đóng góp cho kiến trúc RISC đến từ thực tế đo đạc những chương trình trong
thế giới thực. Andrew Tanenbaum từ tổng kết rất nhiều đo đạc này đã chỉ ra rằng hầu hết những CPU lúc
bấy giờ đều được thiết kế thừa quá mức. Ví dụ, ông cho rằng 98% các hằng hoàn toàn có thể biểu diễn
bằng 13 bit, trong khi đó các CPU được thiết kế theo bội số của 8 thường là 8, 16 hoặc 32. Do đó nếu CPU
cho phép các hằng được lưu trong những bit dư của mã lệnh sẽ làm giảm đi rất nhiều lần truy xuất bộ
nhớ. Thay vì phải đọc từ bộ nhớ hay từ thanh ghi, các hằng đã ở ngay đó khi CPU cần, vì thế quá trình
thực thi sẽ nhanh hơn. Tất nhiên điều lại này yêu cầu mã lệnh phải thật nhỏ để những lệnh 32 bit có thể
chứa được những hằng tương đối lớn.
Những chương trình trong thực tế thường tốn phần lớn thời gian để thực hiện một số tác vụ đơn giản,
do đó một số nhà nghiên cứu hướng tới việc tối ưu hóa những tác vụ này. Do xung nhịp (clock rate) của
CPU bị giới hạn bởi thời gian thực hiện lệnh chậm nhất, nên nếu tối ưu lệnh này (có thể bằng cách giảm

số phương pháp đánh địa chỉ mà nó hỗ trợ) sẽ khiến cho toàn bộ tập lệnh được thực thi nhanh hơn nhiều.
Mục tiêu của RISC chính là đơn giản hóa các lệnh, để mỗi lệnh có thể được thực thi chỉ trong 1 chu kỳ
máy. Việc tập trung đơn giản hóa các lệnh đã cho ra đời các loại "Máy tính với tập lệnh được đơn giản
hóa" - RISC.
Giờ đây để thực hiện cùng một công việc, chương trình được viết với những lệnh đơn giản thay vì với
một lệnh phức tạp, tổng số các lệnh phải đọc từ bộ nhớ nhiều hơn do đó cũng mất nhiều thời gian hơn.
Tại thời điểm đó người ta chưa biết khuyết điểm này có còn đảm bảo sự ưu việt hơn về hiệu suất của
RISC hay không, và hầu như đó cũng đã là một cuộc chiến dai dẳng về khái niệm RISC.
⊕。Ứng dụng của RISC: từ cell phone đến supercomputer
Low end và hệ thống mobile:
Đến đầu thế kỷ 21, phần lớn các Low end hệ thống mobile dựa trên kiến trúc RISC bao gồm :
Các kiến trúc ARM đang thống trị thị trường tiết kiệm năng lượng và giá thành thấp trong các hệ
thống nhúng .Nó được sử dụng trong một số hệ thống như Android, iPhone, iPad, thiết bị RIM, Nintendo
Game Boy Advance.

-7-|Page


Dòng MIPS xuất hiện trong PlayStation, PlayStation 2, Nintendo 64, PlayStation Portable gateways
như Linksys WRT54G loạt.
High end RISC và supercomputing:
MIPS của Silicon Graphics ,SPARC của Oracle, RISC-V: open source của Berkeley.

RISC-V

3. So sánh giữa kiến túc CISC và RISC
Từ những đặc điểm đánh giá giữa hai kiến trúc CISC và RISC, ta có thể đưa ra những so sánh mang
tính tham khảo:
RISC


-8-|Page

CISC


RISC
Ưu
điểm










Vì số lượng instruction nhỏ trong RISC,
những trình biên dịch cấp cao có thể
tạo ra những code hiệu quả
RISC cho phép tự do trong việc sử
dụng các không gian trên các
microprocessors vì cấu trúc đơn giản
của nó.
Thay vì sử dụng Stack, nhiều RISC
processors dùng register để passing
arguments và giữ những giá trị cục bộ.
Tốc độ thực thi tăng cao và thời gian
thực thi tối thiểu.

Số lượng format của các instructions
nhỏ (thường là nhỏ hơn 4), một vài
instructions (khoảng 150) và vài
addressing modes (nhỏ hơn 4) cần
thiết.

CISC










-9-|Page

Mỗi chỉ lệnh ngôn ngữ máy được
nhóm lại thành một hướng dẫn vi và
thực hiện phù hợp, và sau đó được
lưu trữ sẵn trong bộ nhớ của bộ xử lý
chính, được gọi là hiện thực
microcode.
Nhờ vào bộ nhớ của microcode
nhanh hơn bộ nhớ chính, nên những
tập microcode instructions có thể
được hiện thực mà không giảm tốc
độ đáng kể so với việc hiện thực có

dây cứng.
Toàn thể tập instructions mới có thể
gần như không thể hiệu chỉnh thiết
kế chương trình micro.
Trong CISC, số lượng instructions yêu
cầu cho việc hiện thực một chương
trình có thể được giảm xuống bằng
cách xây dựng những tập instructions
giàu và cũng có thể được thực hiện
để sử dụng chậm nhớ chính hiệu quả
hơn.
Bởi vì superset của instructions bao
gồm tất cả những instructions trước,
điều đó làm cho việc tạo ra micro
coding dễ hơn.


RISC
Nhược
điểm









Việc tăng lên về độ dài của các

instructions dẫn đến sự phức tạp tăng
lên bên trong RISC processors trong
việc thực thi vì chu kì của các kí tự mỗi
instruction
Performance của các RISC processors
phụ thuộc hầu hết vào compiler hoặc
programming bởi vì kiến thức của
compiler đóng vài trò chính trong việc
chuyển từ CISC code sang RISC code,
vì vậy chất lượng trọng việc tạo ra code
phụ thuộc vào compiler.
Trong việc chuyển từ mã CISC sang mã
RISC, được hiểu như việc mở rộng
code, sẽ tăng lên về kích thước. Và
chất lượng của code mở rộng một lần
nữa phụ thuộc vào compiler và cũng
nhưng trên tập instruction của máy.
Caches level đầu của RISC cũng là một
bất lợi của nó, những processors có bộ
nhớ lớn trên những con chip của nó.
Để cung cấp cho các instructions, nó
đòi hỏi một hệ thống có bộ nhớ nhanh.

CISC









Chi phí của clock time tuỳ thuộc vào
từng instructions khác nhau, bởi vì
điều đó, performance của máy sẽ bị
giảm xuống.
Các hướng dẫn thiết lập phức tạp và
chip phần cứng tăng lên khi mỗi
phiên bản mới của bộ vi xử lý bao
gồm một tập hợp con của các thế hệ
trước đó.
Chỉ có 20% các instructions được sử
dụng trong những sự kiện lập trình
kinh điển, mặc dù có rất nhiều chỉ
dẫn đặc biệt trong sự tồn tại mà
thậm chí còn không được sử dụng
thường xuyên.
Các mã có điều kiện được thiết lập
bởi các lệnh CISC như một tác dụng
phụ của mỗi hướng dẫn mà cần có
thời gian để cài đặt này - như hướng
dẫn tiếp theo thay đổi các bit mã
điều kiện - vì vậy, trình biên dịch đã
kiểm tra các bit mã điều kiện trước
khi điều này xảy ra.

III. ĐỊNH HƯỚNG PHÁT TRIỂN CỦA CISC VÀ RISC
Trong tương lai, công nghệ ngày càng có những bước tiến vượt bậc về những kiến trúc phần cứng,
vậy tương lai nào cho hai kiến trúc RISC và CISC?
CISC và RISC sẽ hội tụ?

Các công nghệ xử lý hiện đại đã thay đổi đáng kể kể từ chip RISC đầu tiên được giới thiệu vào đầu
những năm 80. Bởi vì một số tiến bộ được sử dụng bởi cả hai kiến trúc RISC và CISC, ranh giới giữa hai
kiến trúc đã bắt đầu mờ đi. Trong thực tế, hai kiến trúc gần như có vẻ như đã được thông qua các chiến
lược của nhau. Bởi vì tốc độ xử lý đã tăng lên, chip CISC hiện nay có thể thực hiện nhiều hơn một lệnh
trong một single clock. Điều này cũng cho phép chip CISC tận dụng pipelining. Với những cải tiến công
nghệ khác, bây giờ có thể để phù hợp với nhiều transistor hơn trên một chip duy nhất. Điều này cho phép
bộ vi xử lý RISC đủ không gian để kết hợp, và bộ vi xử lý CISC cũng có thể phức tạp hơn. Chip RISC cũng
sử dụng các phần cứng phức tạp hơn. Từ tất cả yếu tố này có thể nói chúng ta đang ở thời đại "hậuRISC", trong đó hai phong cách đã trở nên tương tự mà phân biệt giữa chúng là không còn phù hợp nữa.
Tuy nhiên, cần lưu ý rằng chip RISC vẫn giữ lại một số đặc điểm quan trọng. Chip RISC sử dụng thống
nhất, tập lệnh chu trình đơn. Họ cũng giữ lại, kiến trúc “register-to-register” và “load-store”.
Tóm lại CISC và RISC ngày càng trở nên giống nhau. Nhiều con chip RICS hiện nay có nhiều chỉ lệnh
và ngược lại, những con chip CISC hiện hay sử dụng nhiều kĩ thuật trước đây kết hợp với con chip RISC.
Chip CISC của Intel đã dùng kỹ thuật RISC trong chip 486 của nó và làm tăng số lượng trong những bộ xử
lý của dòng Pentium.

- 10 - | P a g e



×