1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn ngành công nghệ thông tin

12 686 1

Đ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 12
Dung lượng 98,5 KB

Nội dung

Định nghĩa về RISC và CISC RISC là viết tắt của “reduced instruction set computer”, với gợi ý là máy tính hay là bộ vi xử lý bên trong nó đã được giảm nhỏ tập lệnh.. Với các nhà lập trìn

Trang 1

Bài tập lớn ngành Công nghệ thông tin

So sánh kiến trúc RICS và CISC

Bài làm

I Định nghĩa về RISC và CISC

RISC là viết tắt của “reduced instruction set computer”, với gợi ý là máy tính (hay là bộ vi xử lý bên trong nó) đã được giảm nhỏ tập lệnh Nó giống như là CPU Lite Hay bạn có thể nói thô thiển là: đó là một dạng thu nhỏ (cắt giảm) của một con vi xử lý, có thể bạn nói đúng một phần nào đó Triết lý cho phát triển RISC đó là cắt giảm bộ vi xử lý để chỉ còn lại những bộ phận thiết yếu của nó Những gì không thực sự cần thiết sẽ

bị vứt bỏ Với các nhà lập trình thì đó có nghĩa là các chíp RISC thường không thể thực hiện một phép nhân đơn giản Lý thuyết của phép nhân là thực hiện liên tiếp nhiều phép cộng, do đó lệnh ADD là đủ Một ý khác của RISC đó là các chức năng phức tạp thích hợp thực hiện bằng phần mềm hơn là bằng phần cứng Phần mềm thì dễ thay đổi, dễ cập nhật, và tạo ra nhanh hơn Viết mã mới nhanh hơn là thiết kế và xây dựng một chíp mới Do đó các máy tính dựa trên RISC có thể được nâng cấp nhanh hơn Các chương trình và các thuật toán có thể điều chỉnh và cải tiến Tốt nhất là phần cứng RISC phải được đơn giản hóa, tối ưu hóa sao cho nó chạy nhanh hơn Đúng là lúc đầu các chíp RISC nhỏ hơn, đơn giản hơn, và nhanh hơn so với các chíp CISC vào thời điểm đó Vứt bỏ các trang bị thừa mứa mà các dòng vi xử lý như 68020 và 80286 đã tích lũy, các dòng RISC cạnh tranh như SPARC và MIPS trở nên nhanh hơn nhiều Nếu xét về tốc độ rõ ràng là RISC là người chiến thắng Các tạp chí kỹ thuật và các xuất bản thương mại tới tấp quảng cáo sâu rộng RISC như là một lĩnh vực mới cho máy tính Tất cả các vi xử lý quen thuộc

Trang 2

trước kia dường như kiệt quệ Dòng vi xử lý 68K tốc độ xung nhịp chỉ khoảng 66 MHz, trong khi đó với các dòng kia thì tốc độ xung nhịp tính bằng 3 con số Ngay cả bây giờ cũng vậy, hầu hết các vi xử lý 68K tốc

độ chỉ dưới 100 MHz Phải chăng dòng vi xử lý CISC sắp chết và không thể dùng cho các ứng dụng hiện đại ?

Dù thấp hơn về tốc độ xung nhịp, các chíp CISC như 68K và x86 vẫn cho hiệu suất ngang bằng, và có thể cao hơn so với các đối thủ RISC Chúng đáng xem xét hơn và thường là sự lựa chọn tốt nhất cho nhiều hệ thống nhúng Dù được gán nhãn chói lọi RISC thường là sự lựa chọn tệ hại cho các ứng dụng real-world

Những gì bạn nhận được từ kiến trúc RISC đó là một CPU khá đơn giản, với tập lệnh dễ hiểu và trực quan Tất cả các lệnh có cùng chiều dài, điều này làm cho chúng dễ dàng xắp xếp gọn gàng trong RAM Chúng cũng

có cách mã hóa tương tự nhau, do đó nếu bạn có ý định dịch ngược opcode của RISC thì cũng dễ thực hiện Cũng dễ dàng đếm số lệnh trong

bộ nhớ Và cuối cùng rất dễ tính toán số chu kỳ máy thực hiện cho một đoạn chương trình, bởi vì các lệnh của RISC hầu hết đều thực hiện trong một chu kỳ máy Chỉ cần đếm số lệnh (hoặc số byte, đem chia cho 4) và bạn có kết quả, dĩ nhiên là tạm loại trừ ảnh hưởng của cache và các trạng thái chờ RISC là những gì thực hiện bằng hoặc không bằng tập lệnh, hoặc các tính năng khác mà bạn muốn Trước tiên là về toán học Hầu hết các chíp RISC trước kia không có lệnh nhân và cũng không có lệnh chia Ngày nay hầu hết vẫn không có lệnh chia Nếu bạn là người lập trình bằng hợp ngữ thì xin chúc mừng, bạn phải tự viết các hàm thực hiện phép nhân và phép chia số nguyên Đừng nghĩ đến phép toán dấu chấm động, hầu hết các chíp RISC không hỗ trợ điều này Công bằng thì hầu hết các chíp CISC cũng chẳng có các bộ FPU, nhưng FPU phổ biến trong các bộ vi xử lý CISC loại cũ nhiều hơn là trong các chíp RISC

Trang 3

Bạn cũng chẳng có các phép toán trực tiếp trên bít Ví dụ, để kiểm tra và đảo một bít trong một thanh ghi trạng thái, bạn phải đọc toàn bộ nội dung của thanh ghi vào bên trong vi xử lý Rồi che các bít mà bạn không sử dụng, dịch phải kết quả, kiểm tra trạng thái của bít, đảo bít dùng phép exclusive-OR, dịch trái nó trở lại vị trí cũ, rồi ghi nó trở ra thanh ghi Truy cập bộ nhớ không xắp xếp cũng là phần bị bỏ đi trong RISC Các chíp RISC đã được thiết kế cho các trạm làm việc, nơi mà dữ liệu luôn được xắp xếp theo từ (word) bởi vì trình biên dịch đặt chúng nằm như thế Lượng dữ liệu nhỏ hơn (như byte) hoặc là không tồn tại hoặc là được chèn thêm zero để vừa với một từ 32 bít Trong các hệ thống nhúng hiếm khi có sự ngăn nắp như vậy Một số 32 bít được lưu ở một địa chỉ

lẻ sẽ không thể truy cập được bởi nhiều chíp RISC Chúng không thể xử

lý được các toán hạng không xắp xếp (?) Tương tự như vậy, lượng dữ liệu lẻ, như giá trị 24 bít phải được mở rộng zero- hoặc sign- khi lưu trữ chúng, và như thế là lãng phí RAM Có một tin tốt đó là trình biên dịch

đã xử lý điều này Nếu bạn là người lập trình bằng hợp ngữ, RISC sẽ là

sự đau khổ Nếu bạn lập trình bằng C hoặc là một ngôn ngữ cấp cao nào

đó thì bạn không cần để ý đến các giới hạn này Trừ khi bạn quan tâm đến mật độ mã

Hiệu suất là một vấn đề lớn mà ai cũng nhắm tới Hiệu suất tốt hơn là một trong những lợi ích chính của RISC, do đó mà các chíp RISC luôn

Cuộc đua giữa các vi điều khiển không đơn giản, bởi vì mọi người quan tâm đến các loại hiệu suất khác nhau Ví dụ, chíp nào tốt cho xử lý media

có thể không tốt cho xử lý mạng Thế đủ để nói rằng không có một vi xử

lý nào xuất sắc về mọi mặt Mỗi tập lệnh CPU là một sự thỏa hiệp Bạn phải chọn một CPU với kiến trúc tập lệnh (instruction set

Trang 4

architecture – ISA) phù hợp với ứng dụng thực tế của bạn Hai chíp chạy cùng tốc độ (ví dụ 100 MHz) có thể cho hiệu suất hoàn toàn khác nhau bởi vì sự khác nhau trong ISA Đó là lý do tại sao các nhà sản xuất vẫn tiếp tục điều chỉnh tập lệnh, và đó cũng là lý do tại sao các dòng CPU mới có tập lệnh do chính người sử dụng định nghĩa đang được mọi người

ưa chuộng Đa số các tập lệnh của RISC đều như nhau, tưởng chừng như chúng chỉ hỗ trợ những vấn đề thiết yếu ? Thực tế thì mỗi kiến trúc RISC đều đang dần thay đổi mà không bám chặt vào đường lối RISC trước kia Tuy nhiên đánh giá gần đúng thì các chíp RISC đều có điểm chung và có thể thay thế cho nhau Với CISC thì khác, chúng có tập lệnh đầy đủ, có thể hoặc rất hữu dụng hoặc hoàn toàn không phù hợp cho hệ thống của bạn Đôi khi bạn tự hỏi ở đâu chui ra các tập lệnh kỳ quặc như thế, các nhà lập trình sử dụng các tập lệnh đó vào việc gì Khi khác bạn lại tự hỏi bạn phải xoay xở làm sao nếu không có các tập lệnh như thế Một trong các lệnh mà tôi thích là 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ẽ cứu đời bạn khi bạn cần đến nó Tập TBLS cho phép bạn tạo ra một hàm hình học phức tạp từ một bảng các điểm dữ liệu rời rạc TBLS tìm kiếm trong bảng giá trị mà bạn đã tạo ra, xác định hai số gần nhất với số

mà bạn chỉ định Sau đó thông qua phép nội suy tuyến tính nó chỉ ra chính xác giá trị nằm giữa hai số kia Thực chất TBLS nối hai điểm trong

đồ thị các điểm x, y rời rạc, trả về giá trị y từ giá trị x như ở hình 2 Khá

lạ, bạn nghĩ thế ? Nhưng nó rất cần thiết nếu bạn đang làm điều khiển chuyển động Nó giúp thay thế hàng trăm dòng lệnh nếu dùng các hàm

xử lý hình học thông thường với tất cả các trường hợp biệt lệ và các điều kiện biên khác nhau Nhớ là TBLS là một lệnh đơn thực hiện chỉ mất khoảng 30 chu kỳ xung nhịp

Trang 5

1.RISC: Là chữ viết tắt của Reduced Instruction Set Computer

Nó còn được gọi là máy tính với tập lệnh rút gọn

Kiến trúc này có những đặc điểm cơ bản sau:

- Một lệnh có một chu kỳ

- Nhấn mạnh trên phần mềm

- Định dạng lệnh đơn giản (độ dài lệnh cố định)

- Chế độ địa chỉ đơn giản

- Chú trọng các thao tác với các thanh ghi

- Song song hóa thuận tiện

Ta gặp kiến trúc này trong các vi xử lý hiện nay như: ARM, SuperH,MIPS,SPARC,DEC Alpha, PIC và PowerPC của IBM.(theo bài giảng của thầy)

2.CISC: Là chữ viết tắt của Complex Instruction Set Computers Nó

còn được gọi là

Máy tính với tập lệnh phức tạp

Kiến trúc này có những đặc điểm cơ bản sau:

- Tập lệnh lớn với nhiều lệnh phức tạp

- Đơn giản hóa trình dịch

- Chương trình dịch nhỏ và nhanh hơn

- Song song hóa phức tạp

Một vài ví dụ về vi xử lý có kiến trúc CISC : System/360, PDP-11, VAX, 68000, và x86 (theo tài liệu của thầy)

II SO SÁNH KIẾN TRÚC CISC VÀ RISC.

1 Lịch sử ra đời của hai loại kiến trúc CISC và RISC.

Trang 6

Các kiến trúc với tập lệnh phức tạp CISC (Complex Instruction Set Computer) được nghĩ ra từ những năm 1960 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 làm giảm độ dài các chương trình Các đặc tính nầy khiến 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

Ví dụ, chương trình dịch đã biết sử dụng các thanh ghi và không có sự khác biệt đáng kể nào khi sử dụng ô nhớ cho các vi chương trình hay ô nhớ cho các chương trình Điều này dẫn tới việc đưa vào khái niệm về một máy tính với tập lệnh rút gọn RISC vào đầu những năm 1980

Vậy sự ra đời của kiến trúc máy RISC là muộn hơn so với kiến trúc CISC Vì vậy nó có nhiều điểm khác biệt so với kiến trúc CISC

2 Sự khác nhau trong nguyên tắc làm việc.

Ta sẽ xét các bảng số liệu của một vài máy CISC và máy RISC

Bộ xử lý IBM 370/168 DEC 11/780 iAPX

432 Năm sản

Bộ nhớ

vi

Trang 7

chương

trình

Chiều dài

lệnh (tính

bằng bit)

Kỹ thuật

chế tạo ECL - MSI TTl - MSI

NMOS VLSI

Cách

thực hiện

lệnh

Thanh ghi- thanh

ghiThanh ghi

- bộ nhớBộ nhớ - bộ nhớ

Thanh ghi - thanh

ghiThanh ghi

- bộ nhớBộ nhớ - bộ nhớ

Ngăn xếpBộ nhớ- bộ nhớ

Dung

lượng

cache

Bảng I: Đặc tính của một vài máy CISC

(theo http://vi.wikipedia.org/wiki/Reduced_Instruction_Set_Computer')

Trang 8

Bảng II:Đặc tính của ba mẫu đầu tiên máy RISC (theo http://vi.wikipedia.org/wiki/Reduced_Instruction_Set_Computer')

Các máy RISC dựa chủ yếu trên một tập lệnh cho phép thực hiện kỹ thuật ống dẫn một cách thích hợp nhất bằng cách thiết kế các lệnh có chiều dài cố định, có dạng đơn giản, dễ giải mã Máy RISC dùng kiểu thực hiện lệnh thanh ghi - thanh ghi Chỉ có các lệnh ghi hoặc đọc ô nhớ mới cho phép thâm nhập vào ô nhớ Còn ở kiến trúc CISC thì độ dài lệnh

là khác nhau :ví dụ IBM 370/168 có chiều dài lệnh là 16-48(bit),ở DEC 11/780 có chiều dài lệnh 16 – 456(bit),và ở iAPX 432 chiều dài lệnh là 6 – 321(bit)… kiến trúc CISC có rất nhiều lệnh, định dạng lệnh phức tạp Chúng ta xét ví dụ: cộng 1 vào vùng địa chỉ trong kiến trúc CISC thì các lệnh thực hiện là: đọc vùng nhớ, cộng them 1 và ghi lại vùng nhớ Còn ở kiến trúc RISC thì chỉ thực hiện một lệnh Điều khác biệt là CISC không cần tới nhiều thanh ghi với lệnh trên CISC có thể đọc trực tiếp giá trị

Dung lượng bộ

nhớ vi chương

trình

Độ dài lệnh

Kỹ thuật chế

NMOS VLSI

NMOS VLSI Cách thực hiện

lệnh

Thanh ghi-thanh ghi

Thanh ghi-thanh ghi

Thanh ghi-thanh ghi

Trang 9

của vùng nhớ vào ALU , thực hiện tăng lên 1 và lưu lại kết quả vào vùng nhớ Đối với RISC thì nếu giá trị được đọc có sẵn ở thanh ghi thì không cần lấy từ bộ nhớ, giá trị sau khi tăng lên 1 có thể lưu trực tiếp ở thanh ghi mà không cần lưu vào bộ nhớ

Tóm lại sự khác biệt căn bản trong kiến trúc RISC và CISC là nguyên tắc thực hiện lệnh ở các thanh ghi: đọc và lưu dữ liệu vào các thanh ghi Mặt khác tập lệnh ở kiến trúc CISC dài và phức tạp hơn tập lênh trong kiến trúc RISC, thời gian thực hiện một lệnh dài hơn và không cố đinh như ở kiến trúc RISC

3. Mật độ mã

Các chíp CISC có mật độ mã tốt hơn so với các chíp RISC Vì nguyên lý chủ đạo của RISC đó là phần cứng phải đơn giản, tất cả các hoạt động phức tạp được thực hiện bằng phần mềm Điều đó có nghĩa là chíp RISC của bạn sẽ cần nhiều phần mềm hơn để thực hiện cùng một công việc Hầu hết các chíp RISC không có lệnh chia Nếu muốn chia 2

số bạn phải hiện bằng phần mềm

4 Nén mã

Lý do mà các chíp CISC có mật độ mã tốt hơn đó là bởi vì chúng tập lệnh có xu hướng được làm ngắn hơn Theo định nghĩa các chíp RISC 32-bit phải có tập lệnh 32-bit Còn một chíp CISC 32-bit thì lại khác, có thể có lệnh 8-bit, 16-bit, 32-bit và có cả các lệnh dài hơn nữa Đâ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

5.Tiêu thụ năng lượng

Một trong những thuận lợi của các chíp RISC là chúng có sự tiêu thụ năng lượng thấp Như một luật lệ các chíp RISC dùng ít năng lượng hơn

Trang 10

nhiều so với CISC Điều này là rõ ràng: thiết kế của vi xử lý RISC là đơn giản hơn và hợp lý hơn thì phải dùng năng lượng ít hơn

6.Các ưu điểm và nhược điểm của kiến trúc RISC

A.Các ưu điểm:

- Diện tích của bộ xử lý dùng cho bộ điều khiển giảm từ 60% (cho các

bộ xử lý CISC) xuống còn 10% (cho các bộ xử lý RISC) Như 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, nhờ có nhiều thanh ghi (ít thâm nhập bộ nhớ), và nhờ thực hiện kỹ thuật ống dẫn 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

B.Những nhược điểm:

• Các chương trình dài ra so với chương trình viết cho bộ xử lý CISC Điều này do các nguyên nhân sau :

• Cấm thâm nhập bộ nhớ đối với tất cả các lệnh ngoại trừ các lệnh đọc

và ghi vào bộ nhớ Do đó ta buộc phải dùng nhiều lệnh để làm một công việc nhất định

• Cần thiết 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

Trang 11

• Các chương trình dịch gặp nhiều khó khăn vì có ít lệnh làm cho có ít lựa chọn để diễn dịch các cấu trúc của chương trình gốc 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

7.Những ưu nhược điểm của CISC:

A Lợi thế của kiến trúc CISC:- Chương trình ngắn hơn so với kiến trúc

RISC

- số lệnh để thực hiện trương chì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

B.Những hạn chế của kiến trúc CISC

- 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

8 Các kiến trúc của vi xử lý ngày nay.

Các vi xử lý ngày nay hầu hết có sự kết hợp giữa hai loại kiến trúc này

để được một vi xử lý có nhiều ưu điểm hơn và hạn chế từng những khuyết điểm của từng loại

Ngày đăng: 05/09/2016, 07:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w