So sánh giữa RISC và CISC

Trong bài viết này, tôi sẽ giới thiệu cho bạn chi tiết hơn về sự khác nhau giữa 2 kiểu thiết kế bộ vi xử lý CPUvà nguyên nhân của 2 kiểu đó bắt nguồn từ 2 kiểu kiến trúc khác nhau của bộ vi xử lý (CPU) 1 cái được gọi là Máy tính với tập lệnh đơn giản hóa (reduced instruction set computing – RISC) và 1 cái được gọi là Máy tính với tập lệnh đơn phức tạp (complex instruction set computing – CISC).

đăng bởi , trong chuyên mục Máy tính Pi vào . các từ khóa: , ,

1. Mở đầu

Trong bài viết này, tôi sẽ giới thiệu cho bạn chi tiết hơn về sự khác nhau giữa 2 kiểu thiết kế bộ vi xử lý CPUvà nguyên nhân của 2 kiểu đó bắt nguồn từ 2 kiểu kiến trúc khác nhau của bộ vi xử lý (CPU) 1 cái được gọi là Máy tính với tập lệnh đơn giản hóa (reduced instruction set computing – RISC) và 1 cái được gọi là Máy tính với tập lệnh đơn phức tạp (complex instruction set computing – CISC).

2. Sự khởi đầu

Cuộc tranh luận về cách thiết kế CPU tốt nhất đã bắt đầu từ những năm 80. Một số nhà khoa học máy tính ủng hộ ý kiến rằng các chỉ thị cấp thấp nên dài và mạnh mẽ. Điều này có thể được thực hiện bằng cách sử dụng ít chỉ thị riêng lẻ hơn để thực hiện một nhiệm vụ phức tạp (CISC), mỗi vòng của chỉ thị được gọi là 1 chu kỳ, và nếu 1 nhiệm vụ phức tạo nó sẽ kéo dài nhiều chu kỳ (cycle). Một cách khác gây tranh cãi, một số nhà khoa học máy tính khác lại cho rằng các chỉ thị có thể ngắn gọn và đơn giản hơn. Điều này đòi hỏi nhiều chỉ thị riêng lẻ hơn để thực hiện một nhiệm vụ phức tạp (RISC). Tuy nhiên, nó cho phép ít chu kỳ mỗi chỉ thị.

Theo Định luật Moore, số lượng bán dẫn trên một vi mạch tí hon tăng gấp đôi sau mỗi hai năm và giá thành giảm đi một nửa. Trong quá trình thiết kế CISC, luôn có nguy cơ cao do sự phức tạp lớn ở phía phần cứng. Nó cũng mất nhiều thời gian hơn để thiết kế kiến trúc CISC mới. Trái lại, RISC là một kiến trúc đơn giản và dễ thực hiện. Điều này có nghĩa là nó mất ít thời gian để đưa sản phẩm ra thị trường và có nguy cơ thấp hơn so với CISC. Vì lý do đó, RISC là kết luận không thể tránh khỏi của Định luật Moore.

Mặc dù có một số cuộc tranh luận về cái nào tốt hơn, chúng ta có thể nói rằng không có câu trả lời chính xác cho cuộc tranh luận này. Bởi vì cả hai phương pháp đều có ưu điểm và nhược điểm. Chúng ta có thể thấy sự so sánh tổng quan giữa RISC và CISC trong hình dưới đây:

3. Ưu điểm và nhược điểm

Trên bài viết gốc (https://www.baeldung.com/cs/risc-vs-cisc) có so sánh các ưu và nhược điểm của RISC và CISC, nhưng tôi chỉ tóm gọn lại trong 2 ý sau. Một là bảng so sánh sự khác nhau giữa RISC và CIS này

 

 

RISC CISC
1 Nhấn mạnh vào phần mềm Nhấn mạnh vào phần cứng
2 Số chu kỳ ít trên mỗi giây Số chu kỳ cao trên mỗi giây
3 Lượng code lập trình lớn Lượng code lập trình ít
4 Sử dụng nhiều transitor vào để ghi bộ nhớ Sử dụng transitor vào lưu trữ các chỉ thị phức tạp
5 Single-clock, chỉ thị đơn giản Chỉ chị phức tạp và multi-clock

và hai là mô hình tính toán của cùng 1 phép tính nhân trên 2 CPU sử dụng CISC và RISC như sau:

Như các bạn thấy, với CPU CISC, 1 phép tính nhân đơn giản là 1 phép tính nhân, vì bộ lệnh nhân đã được lập trình sẵn trên CPU,lệnh này thực thi luôn trên bộ nhớ của máy tính. Như vậy thì lập trình sẽ chỉ cần đơn giản đưa ra lệnh nhân trong khi lập trình mà không quan tâm việc lưu trữ hay load dữ liệu. Nó gần giống như việc sử dụng một ngôn ngữ lập trình phức tạp mà các hàm đã được viết sẵn trên các thư viện.

Còn với RISC, quá trình xảy ra lâu hơn thành 4 chỉ thị, mỗi chu kỳ thực hiện 1 lệnh đơn lẻ để ra được phép tính, bao gồm 2 chỉ thì LOAD để lưu trữ dữ liệu, PROD để ra kết quả, và STORE để đưa dữ liệu ngược lại vào bộ nhớ. Có thể nói, nếu lập trình cho CPU RISC, bạn cần  nhiều hơn các dòng lệnh hay nó giống như việc sử dụng ngôn ngữ lập trình căn bản của máy tính dạng như Assembler.

4. Kết luận

Vậy thì RISC hay CISC tốt hơn? Thực ra không có câu trả lời chính xác. Trước đây khi chưa có kiến trúc ARM thì kiến trúc X86 hay gọi là kiến trúc Intel phổ biến hơn đối với người dùng phổ thông. Tuy nhiên, càng ngày với sự phát triển của các ứng dụng, internet và nhu cầu người dùng, thì các bộ vi xử lý CPU ngày càng phải mạnh hơn, nhanh hơn, và đương nhiên nếu sử dụng CISC thì sẽ phải nhiều transitor nên sẽ đắt hơn.

Còn với ARM, việc sử dụng RISC sẽ tận dụng được nhiều hơn việc tích hợp cả CPU, GPU và nhiều hơn thế vào 1 con chip, làm cho chi phí rẻ hơn rất nhiều so với các máy tính X86. Thay vào đó, việc lập trình cho ARM sẽ phải cần chi tiết hơn và khó khăn hơn, do đó các ứng dụng cho ARM lại không phải là phổ biến đối với người dùng phổ thông.

Thời gian gần dây, khi mà ARM ngày càng phát triển, vả cả RISC-V nữa, thì các ứng dụng hay hệ điều hành trên nền ARM không còn quá khó để tìm kiếm nữa. Hy vọng của ARM đang tươi sáng hơn bao giờ hết.