Kiến trúc CISC, RISC

Một phần của tài liệu Giáo trình Cấu trúc máy tính (Nghề: Quản trị mạng máy tính - Cao đẳng) - Trường Cao đẳng Cộng đồng Đồng Tháp (Trang 44 - 47)

CHƢƠNG 2 : BỘ XỬ LÝ

2. Kiến trúc CISC, RISC

Các vi xử lý hoạt động theo nguyên tắc kể trên có số lƣợng lệnh vĩ mơ lớn (thƣờng hơn 300 lệnh), có các khả năng định địa chỉ phức tạp, các lệnh này đƣợc thực hiện bằng một chuỗi vi lệnh, vi chƣơng trình. Do vậy các vi xử lý này đƣợc gọi là máy tính có tập lệnh phức tạp CISC (Complex Instruction Set Computer). Vi chƣơng trình đƣợc phát triển mạnh trong những năm 70 khi bộ nhớ chính có tốc độ truy cập tƣơng đối chậm. Lúc đó các nhà thiết kế máy tính sử dụng bộ nhớ chính tốc độ chậm để lƣu trữ các lệnh phức tạp tạo nên chƣơng trình ở mức máy. Các lệnh đó sẽ đƣợc dịch bằng vi mã trong bộ nhớ điều khiển vi chƣơng trình có tốc độ nhanh hơn. Ngày nay, các bộ nhớ chính có thời gian truy cập ngắn hơn 80ns làm cho các ƣu điểm kể trên của vi chƣơng trình khơng những biến mất mà cịn gây cản trở cho hệ thống.

Trong hàng thập kỷ, các nhà khoa học máy tính đã nghiên cứu cách thức mà các máy tính hiện nay chạy chƣơng trình. Điều tra thống kê đã chỉ ra những kết luận sau:

 Trong nhiều chƣơng trình điển hình đƣợc xử lý bằng bộ xử lý CISC nhƣ nói trên thì đến 80% thời gian chạy chƣơng trình đƣợc thực hiện chỉ bởi 20% số lệnh trong tập lệnh

Ví dụ: tác giả Fairclough đã chia các lệnh ra thành 8 nhóm và đã thống kê đƣợc kết quả trung bình tần suất sử dụng (xét về cả chƣơng trình và kiến trúc máy tính) của chúng nhƣ sau:

Nhóm 1 2 3 4 5 6 7 8

Tần suất % 45.28 28.73 10.75 5.92 3.91 2.93 2.05 0.44 Trong đó:

1 là nhóm các lệnh chuyển dữ liệu

2 là nhóm các lệnh thay đổi tính tuần tự của chƣơng trình (branch, call, return)

4 là nhóm các lệnh so sánh 5 là nhóm các lệnh logic 6 là nhóm các lệnh dịch 7 là nhóm các lệnh xử lý bit 8 là nhóm các lệnh vào/ra

Rõ ràng trong tổng số 8 nhóm lệnh thì 2 nhóm lệnh chuyển dữ liệu và thay đổi chƣơng trình có tần suất sử dụng chiếm đến 74%

 Có những trƣờng hợp, để đạt đƣợc cùng một kết quả thì việc chạy một chuỗi lệnh đơn giản sẽ nhanh hơn là chạy một lệnh phức tạp.

Những kết luận này là tiền đề để một loại vi xử lý khác ra đời: nó hoạt động theo phƣơng pháp sử dụng tập lệnh rút gọn RISC (Reduced Instruction Set Computer). Tập lệnh ở đây đƣợc hạn chế vào các lệnh chính yếu cần thiết trong số 20% lệnh nói trên và phần cứng đƣợc thiết kế sao cho các phần tử RISC này hiểu ngay đƣợc lệnh máy do chƣơng trình cung cấp. Do đó, các lệnh loại này không cần chuyển cho bộ giải mã vi lệnh mà có thể thực hiện đƣợc ngay. Kiểu kiến trúc vi xử lý mới có tên gọi là RISC này cho phép thực hiện một mã thao tác chỉ trong một chu kỳ máy.

 Các đặc điểm của kiến trúc RISC

Kiến trúc RISC cần có những đặc điểm sau:

- Cần có đủ số thanh ghi (thực chất là các bộ nhớ ngay trong chip, có thời gian truy cập nhanh hơn so với bộ nhớ ngoài) để khắc phục đƣợc hiệu ứng nghẽn cổ chai

- Vì các lệnh trong nhóm 2 (call, return…) thƣờng xảy ra nên yêu cầu cần có một kiến trúc tạo sự dự phịng cho việc chuyển hiệu quả các tham số giữa các thủ tục

- Các lệnh phức tạp làm tăng thời gian thiết kế, sản xuất và thử nghiệm - Nếu một bộ xử lý RISC đủ nhanh thì nó phải chạy đƣợc một lệnh trong một chu kì máy. Điều này cũng có nghĩa là sự phức tạp của các lệnh phải có giới hạn của chúng

- Kết quả tất yếu suy ra từ điều trên là một kiến trúc có hiệu quả khơng nên đƣợc vi chƣơng trình hóa vì nó phải dịch một lệnh bằng việc chạy các vi lệnh.

- Bộ xử lý hiệu quả phải có một bộ định dạng lệnh đơn. Khi đó việc giải mã lệnh có thể đƣợc thực hiện bằng một mạch logic giải mã tối thiểu

 Để giảm thời gian chạy lệnh, các lệnh dài có liên quan tới các vi xử lý thế hệ 1 và 2 cần phải bỏ đi.

2.1. Bộ điều khiển vi chƣơng trình (CISC)

Hình 2.2 Nguyên tắc vận hành của bộ điều khiển dùng vi chương trình

Sơ đồ nguyên tắc của bộ điều khiển dùng vi chƣơng trình đƣợc trình bày ở hình 2.2. Trong kỹ thuật này, các đƣờng dây điều khiển của bộ đƣờng đi dữ liệu ứng với các ngã ra của một vi lệnh nằm trong bộ nhớ vi chƣơng trình. Việc điều khiển các tác vụ của một lệnh mã máy đƣợc thực hiện bằng một chuỗi các vi lệnh. Một vi máy tính nằm bên trong bộ điều khiển thực hiện từng lệnh của vi chƣơng trình này. Chính vi máy tính này điều khiển việc thực hiện một cách tuần tự các vi lệnh để hoàn thành tác vụ mà lệnh mã máy phải thực hiện. Các tác vụ của lệnh mã máy cũng tùy thuộc vào trạng thái của phần đƣờng đi dữ liệu. Bộ điều khiển bằng vi chƣơng trình đƣợc dùng rộng rãi trong các bộ xử lý CISC. Bộ xử lý này có tập lệnh phức tạp với các lệnh có chiều dài khác nhau và có dạng thức phức tạp. Trong các bộ xử lý CISC, ngƣời ta cài đặt một lệnh mã máy bằng cách viết một vi chƣơng trình. Nhƣ vậy cơng việc khá đơn giản và rất hữu hiệu. Các sai sót trong thiết kế automat điều khiển cũng dễ sửa đổi

2.2. Bộ điều khiển mạch điện tử

Để hiểu đƣợc vận hành của bộ điều khiển mạch điện tử, chúng ta xét đến mơ tả về Automate trạng thái hữu hạn: có nhiều hệ thống hay nhiều thành phần mà ở mỗi thời điểm xem xét đều có một trạng thái (state). Mục đích của trạng thái là

ghi nhớ những gì có liên quan trong q trình hoạt động của hệ thống. Vì chỉ có một số trạng thái nhất định nên nói chung khơng thể ghi nhớ hết tồn bộ lịch sử của hệ thống, do vậy nó phải đƣợc thiết kế cẩn thận để ghi nhớ những gì quan trọng. Ƣu điểm của hệ thống (chỉ có một số hữu hạn các trạng thái) đó là có thể cài đặt hệ thống với một lƣợng tài nguyên cố định. Chẳng hạn, chúng ta có thể cài đặt Automate trạng thái hữu hạn trong phần cứng máy tính ở dạng mạch điện hay một dạng chƣơng trình đơn giản, trong đó, nó có khả năng quyết định khi chỉ biết một lƣợng giới hạn dữ liệu hoặc bằng cách dùng các mã tác vụ trong đoạn mã lệnh để đƣa ra quyết định

Hình 2.3 Nguyên tắc vận hành của bộ điều khiển dùng mạch điện

Hình 2.3 cho thấy nguyên tắc của một bộ điều khiển bằng mạch điện. Các đƣờng điều khiển của phần đƣờng đi số liệu là các ngã ra của một hoặc nhiều Automate trạng thái hữu hạn. Các ngã vào của Automate gồm có thanh ghi lệnh, thanh ghi này chứa lệnh phải thi hành và những thông tin từ bộ đƣờng đi số liệu. Ứng với cấu hình các đƣờng vào và trạng thái hiện tại, Automate sẽ cho trạng thái tƣơng lai và các đƣờng ra tƣơng ứng với trạng thái hiện tại. Automate đƣợc cài đặt dƣới dạng là một hay nhiều mạch mảng logic lập trình đƣợc (PLA: Programmable Logic Array) hoặc các mạch logic ngẫu nhiên.

Kỹ thuật điều khiển này đơn giản và hữu hiệu khi các lệnh có chiều dài cố định, có dạng thức đơn giản. Nó đƣợc dùng nhiều trong các bộ xử lý RISC.

Một phần của tài liệu Giáo trình Cấu trúc máy tính (Nghề: Quản trị mạng máy tính - Cao đẳng) - Trường Cao đẳng Cộng đồng Đồng Tháp (Trang 44 - 47)

Tải bản đầy đủ (PDF)

(108 trang)