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

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

19 2K 8

Đ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 19
Dung lượng 654,44 KB

Nội dung

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

Trang 1

Khoa Khoa học và Kỹ thuật máy tính

Kiến trúc tập lệnh

CISC và RISC

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

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)

Trang 2

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

Trang 3

Ư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

Trang 4

Danh mục hình

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

Trang 5

Trang 1

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 6

Kiến trúc máy tính nâng cao Kiến trúc tập lệnh CISC và RISC

Trang 2

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 7

Trang 3

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 8

Kiến trúc máy tính nâng cao Kiến trúc tập lệnh CISC và RISC

Trang 4

để 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 9

Trang 5

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 10

Kiến trúc máy tính nâng cao Kiến trúc tập lệnh CISC và RISC

Trang 6

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 11

Trang 7

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

PC-RT 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 12

Kiến trúc máy tính nâng cao Kiến trúc tập lệnh CISC và RISC

Trang 8

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

Ngày đăng: 09/02/2016, 13:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] "Reducted instruction set computing - Wikipedia", https://en.wikipedia.org/wiki/Reduced_instruction_set_computing#cite_note-7.[Accessed 2015] Sách, tạp chí
Tiêu đề: Reducted instruction set computing - Wikipedia
[2] "Intel x86 Processors – CISC or RISC? Or both??", http://sunnyeves.blogspot.com/2009/07/intel-x86-processors-cisc-or-risc-or.html Sách, tạp chí
Tiêu đề: Intel x86 Processors – CISC or RISC? Or both
[3] "Complex instruction set computing", https://en.wikipedia.org/wiki/Complex_instruction_set_computing Sách, tạp chí
Tiêu đề: Complex instruction set computing
[4] "Risc vs Cisc", http://cs.stanford.edu/people/eroberts/courses/soco/projects/risc/risccisc/ Sách, tạp chí
Tiêu đề: Risc vs Cisc
[5] "Why would anyone want CISC?", http://cs.stackexchange.com/questions/269/why-would-anyone-want-cisc Sách, tạp chí
Tiêu đề: Why would anyone want CISC

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w