1. Trang chủ
  2. » Công Nghệ Thông Tin

bài tập lớn môn kiến trúc máy tính phân biệt CISC và RISC

13 183 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 221,62 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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. 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.

Trang 1

TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN MÔN KIẾN TRÚC MÁY TÍNH

Đề tài:

PHÂN BIỆT HAI KIẾN TRÚC RISC VÀ CISC

Giảng viên: Nguyễn Thu Hiền

Sinh viên:

20203100002 Nguyễn Thế Anh DHTI14A1ND

20203100015 Vũ Thành Công DHTI14A1ND

20203100037 Nguyễn Minh Đức DHTI14A1ND

20203100009 Nguyễn Văn Thịnh DHTI14A1ND

20203100054 Lê Đắc Tiến DHTI14A1ND

Trang 2

Mục lục

1 Tổng quan 2

1.1 Giới thiệu RISC và CISC 2

1.1.1 CISC 2

1.1.2 RISC 3

1.2 Đinh hướng thiết kế 3

1.2.1 CISC 3

1.2.2 RISC 5

2 Ưu nhược điểm CISC và RISC 8

2.1 CISC 8

2.1.1 Ưu điểm 8

2.1.2 Nhược điểm 9

2.2 RISC 9

2.2.1 Ưu điểm 9

2.2.2 Nhược điểm 9

3 So sánh hai kiến trúc CISC và RISC 10

3.1 So sánh 10

3.2 Đánh giá 10

4 Kết luận 11

TÀI LIỆU THAM KHẢO 13

Trang 3

1 Tổng quan

1.1 Giới thiệu RISC và CISC

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

- 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ý 32bit và thanh ghi dấu phẩy động 64-bit (floating point registers)

Trang 4

- 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)

* 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 Đinh hướng thiết kế

1.2.1 CISC

Những ngày đầu của ngành công nghiệp máy tính, trình biên dịch chưa xuất hiện Công việc lập trình được thực hiện hoặc bằng ngôn ngữ máy (mã nhị phân)

Trang 5

hoặc bằng hợp ngữ Để việc lập trình đơn giản, các vi xử lý được thêm những lệnh

có thể biểu diễn trực tiếp những cấu trúc của ngôn ngữ lập trình cấp cao Lúc đó thiết kế phần cứng dễ hơn nhiều so với thiết kế trình dịch, vì thế mọi phức tạp đều dồn vào phần cứng

Một nguyên nhân khác thúc đẩy sự ra đời của những lệnh phức là sự thiếu thốn bộ nhớ Do bộ nhớ quá nhỏ, do đó sẽ có lợi hơn nhiều nếu tăng mật độ tập trung thông tin trong mã lệnh Khi mà mỗi byte bộ nhớ còn quá đắt, bộ nhớ chính của toàn bộ

hệ thống ở thời kỳ này chỉ vài KB, ngành công nghiệp vi xử lý bị thúc đẩy phải mã hóa thật cao mã lệnh, mã lệnh có thể có kích thước thay đổi, 1 lệnh có thể thực hiện nhiều phép toán hoặc một lệnh có thể vừa chuyển dữ liệu vừa xử lý dữ liệu Lúc đó việc đưa ra một lệnh nén thật tốt được ưu tiên hơn là đưa ra một lệnh dễ giải mã

Lúc này bộ nhớ được sản xuất bằng công nghệ từ do đó nó không những đã

ít mà còn chậm Đây cũng là 1 lý do để tăng mật độ thông tin trong một mã lệnh Một mã lệnh với nhiều thông tin sẽ giảm được rất nhiều lần phải truy xuất nguồn

bộ nhớ chậm chạp này

Những CPU thời kỳ này chứa ít thanh ghi vì những lý do sau:

1 Một bit trong CPU bao giờ cũng mắc hơn rất nhiều so với 1bit ở bộ nhớ ngoài Với công nghệ tích hợp ở thời kỳ này muốn có thêm thanh ghi bắt buộc phải có thêm vùng trống trên board hoặc trên chip

2 Một lượng lớn thanh ghi cũng sẽ cần 1 lượng lớn các bit trong mã lệnh để xác định các thanh ghi đó

Vì những lý do trên, những nhà thiết kế vi xử lý cố gắng để mỗi lệnh có thể thực hiện càng nhiều chức năng càng tốt Điều này dẫn đến một lệnh sẽ làm tất cả công việc như nạp 2 số cần cộng, cộng chúng lại, và cuối cùng lưu trở lại vào bộ nhớ Cũng lệnh đó lại có thể đọc 1 số từ thanh ghi và số còn lại từ bộ nhớ sau đó lưu kết

Trang 6

quả vào bộ nhớ Khuynh hướng thiết kế vi xử lý này được gọi là Complex Instruction Set Computer – CISC

Chip CISC (Intel Xeon x86 của Intel & 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ế

1.2.2 RISC

Ý 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ộ vi

xử lý 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ộ 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ộ vi xử

Trang 7

lý 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ế vi xử lý, 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 để 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

Trang 8

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 Rất tiếc cụm từ "Máy tính với tập lệnh được đơn giản hóa" thường bị hiểu sai là máy tính với tập lệnh ít hơn các máy tính khác Thực ra RISC lại thường có tập lệnh rất lớn Cũng từ khuynh hướng đơn giản hóa đó, một số thiết kế thú vị ra đời như MISC (Minimal Instruction Set Computer - Máy tính với tập lệnh tối thiểu) hay OISC (One Instruction Set Computer) với những máy tính như Transport Triggered Architectures, trong khi các thiết kế khác đi sâu vào vấn đề Turing tarpit

Điểm khác biệt thực sự giữa RISC so với CISC là nguyên tắc thực hiện mọi thứ trong các thanh ghi, đọc và lưu dữ liệu vào các thanh ghi Do đó để tránh hiểu lầm nhiều nhà nghiên cứu thích dùng thuật ngữ load-store

Qua thời gian, các kỹ thuật thiết kế cũ được gọi là CISC (Complex Instruction Set Computer – Máy tính với tập lệnh phức tạp), dù rằng thuật ngữ này thường chỉ được dùng với mục đích so sánh

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

* Đặc điểm của RISC:

- 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

Trang 9

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

2 Ưu nhược điểm CISC và RISC

2.1 CISC

2.1.1 Ư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

Trang 10

2.1.2 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

2.2 RISC

2.2.1 Ư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

- 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

2.2.2 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

Trang 11

3 So sánh hai kiến trúc CISC và RISC

3.1 So sánh

Hướng tiếp cận: hoàn thành một tác vụ

với số lượng câu lệnh ít nhất

Hướng tiếp cận: cố gắng đơn giản hóa

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

chu kỳ để xử lý

Gồm các câu lệnh đơn giản được xử lý trong 1 chu kỳ

Sử dụng kiểu kiến trúc tập lệnh ô nhớ - ô

nhớ: Lệnh LOAD và STORE kết hợp với

nhau trong các câu lệnh

Sử dụng kiểu kiến trúc tập lệnh thanh ghi – thanh ghi: Lệnh LOAD và STORE là độc lập với nhau trong các câu lệnh

Truyền biến không hiệu quả ngoài bộ nhớ Truyền biến hiệu quả trên thanh ghi

Kích thước của một chương trình nhỏ Kích thước của một chương trình lớn

Độ dài của câu lệnh khác nhau Độ dài của câu lệnh cố định

Số chu kỳ trên giây cao Số chu kỳ trên giây thấp

3.2 Đánh giá

- 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ở 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

Ngày đăng: 05/12/2021, 18:54

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w