RISC và CISC
2 posters
Trang 1 trong tổng số 1 trang
RISC và CISC
Cách đơn giản để kiểm tra những lợi thế và bất lợi của kiến trúc RISC là bằng cách đối chiếu nó với nó là người tiền nhiệm: CISC (Complex Instruction Set Computers) kiến trúc.
Hai nhân số trong bộ nhớ
bên phải là một sơ đồ đại diện cho chương trình lưu trữ cho một máy tính chung chung. Bộ nhớ chính được chia thành các địa điểm số từ (hàng) 1: (cột) từ 1 tới (hàng) 6: (cột) 4 đơn vị thi công có trách nhiệm thực hiện tất cả các tính toán.. Tuy nhiên, các đơn vị thi công chỉ có thể hoạt động trên dữ liệu đã được nạp vào một trong sáu đăng ký (A, B, C, D, E, hoặc F). Hãy nói rằng chúng tôi muốn tìm các sản phẩm của hai con số - một trong những vị trí được lưu trữ trong 02:03 và lưu trữ trong một vị trí 5:02 - và sau đó lưu trữ các sản phẩm trở lại ở vị trí 2:3.
Phương pháp tiếp cận CISC
Mục tiêu chính của kiến trúc CISC là để hoàn thành một nhiệm vụ trong khi vài dòng lắp ráp càng tốt. Điều này đạt được bằng cách xây dựng phần cứng bộ xử lý có khả năng hiểu biết và thực hiện một loạt các hoạt động. Đối với nhiệm vụ đặc biệt này, một bộ xử lý CISC sẽ chuẩn bị sẵn sàng với một hướng dẫn cụ thể (chúng tôi sẽ gọi nó là "mult"). Khi thực hiện, hướng dẫn này tải hai giá trị vào sổ đăng ký riêng biệt, nhân với toán hạng trong các đơn vị thực hiện, và sau đó lưu trữ các sản phẩm trong sổ đăng ký thích hợp. Như vậy, toàn bộ công việc của nhân hai số có thể được hoàn thành với một hướng dẫn:
Mult 2:03, 5:2
Mult là những gì được biết đến như một "lệnh phức tạp." Nó hoạt động trực tiếp vào các ngân hàng bộ nhớ của máy tính và không cần lập trình để gọi một cách rõ ràng bất kỳ tải hoặc các chức năng lưu trữ. Nó gần giống như một lệnh trong một ngôn ngữ cấp cao hơn. Ví dụ, nếu chúng ta để cho "một" đại diện cho các giá trị của 02:03 và "b" đại diện cho các giá trị của 5:2, sau đó lệnh này giống hệt với tuyên bố C "a = a * b."
Một trong những lợi thế chính của hệ thống này là các trình biên dịch đã làm việc rất ít để dịch một tuyên bố ngôn ngữ cấp cao vào lắp ráp. Bởi vì chiều dài của mã này là tương đối ngắn, rất ít RAM là cần thiết để lưu trữ hướng dẫn. Sự nhấn mạnh được đặt vào việc xây dựng hướng dẫn phức tạp trực tiếp vào phần cứng.
RISC Phương pháp tiếp cận
xử lý RISC chỉ sử dụng hướng dẫn đơn giản có thể được thực hiện trong một chu kỳ đồng hồ. Như vậy, "mult" lệnh mô tả ở trên có thể được chia thành ba lệnh riêng biệt: "LOAD," trong đó di chuyển dữ liệu từ các ngân hàng bộ nhớ để đăng ký một, "PROD", mà tìm thấy các sản phẩm của hai toán hạng nằm trong sổ đăng ký, và " CỬA HÀNG ", trong đó di chuyển dữ liệu từ một đăng ký cho các ngân hàng bộ nhớ. Để thực hiện hàng loạt chính xác các bước được mô tả trong phương pháp tiếp cận CISC, một lập trình viên sẽ cần phải mã bốn dòng lắp ráp:
TẢI A, 02:03
TẢI B, 5:2
PROD A, B
CỬA HÀNG 2:03, A
Lúc đầu, điều này có vẻ như là một cách kém hiệu quả hoàn thành các hoạt động. Bởi vì có rất nhiều dòng mã, RAM nhiều hơn là cần thiết để lưu trữ các hướng dẫn lắp ráp cấp. Trình biên dịch cũng phải thực hiện công việc nhiều hơn để chuyển đổi một tuyên bố ngôn ngữ cấp cao thành mã của mẫu này.
CISC
Nhấn mạnh vào phần cứng
Bao gồm nhiều đồng hồ hướng dẫn phức tạp
Bộ nhớ đến bộ nhớ: "TẢI" và "CỬA HÀNG" đưa vào hướng dẫn
Kích thước mã nhỏ, chu kỳ mỗi giây cao
Bóng bán dẫn được sử dụng để lưu trữ hướng dẫn phức tạp
RISC
Nhấn mạnh vào phần mềm
Đơn đồng hồ, hướng dẫn giảm chỉ
Đăng ký để đăng ký: "TẢI" và "CỬA HÀNG" là hướng dẫn độc lập
Chu kỳ thấp cho mỗi thứ hai, kích thước mã lớn
Dành nhiều transistor trên bộ nhớ đăng ký
Tuy nhiên, chiến lược RISC cũng mang lại một số lợi thế rất quan trọng. Bởi vì mỗi lệnh đòi hỏi chỉ có một chu kỳ đồng hồ để thực hiện, toàn bộ chương trình sẽ thực hiện trong khoảng cùng một lượng thời gian như nhiều chu kỳ "mult" lệnh. Những RISC "hướng dẫn giảm" đòi hỏi ít bóng bán dẫn của không gian phần cứng hơn so với hướng dẫn phức tạp, để lại chỗ cho đăng ký mục đích chung. Bởi vì tất cả các hướng dẫn thực hiện trong một khoảng thời gian thống nhất (tức là một đồng hồ), pipelining là có thể.
Tách "TẢI" và "CỬA HÀNG" hướng dẫn thực sự làm giảm số lượng công việc mà máy tính phải thực hiện. Sau một CISC phong cách "mult" lệnh được thực thi, bộ vi xử lý sẽ tự động xóa sổ đăng ký. Nếu một trong các toán hạng cần phải được sử dụng để tính toán khác, bộ vi xử lý phải tái nạp dữ liệu từ bộ nhớ vào một ngân hàng đăng ký. Trong RISC, các toán hạng sẽ ở lại cho đến khi đăng ký giá trị khác được nạp vào vị trí của nó.
Hiệu suất phương trình
Phương trình sau đây thường được sử dụng để thể hiện khả năng hiệu suất của máy tính:
Cách tiếp cận CISC cố gắng để giảm thiểu số lượng các hướng dẫn cho mỗi chương trình, hy sinh số chu kỳ theo hướng dẫn. RISC không những đối diện, giảm chu kỳ theo hướng dẫn tại các chi phí của số hướng dẫn cho mỗi chương trình.
RISC rào chắn
Mặc dù những ưu điểm của xử lý RISC dựa trên chip RISC mất hơn một thập kỷ để đạt được một chỗ đứng trong thế giới thương mại. Điều này phần lớn là do thiếu sự hỗ trợ phần mềm.
Mặc dù dòng Power Macintosh của Apple đặc trưng chip RISC dựa trên và Windows NT là RISC tương thích, Windows 3.1 và Windows 95 được thiết kế với bộ xử lý CISC trong tâm trí. Nhiều công ty đã không sẵn sàng để mất một cơ hội với công nghệ RISC mới nổi. Nếu không có lợi ích thương mại, phát triển bộ vi xử lý không thể sản xuất chip RISC trong khối lượng đủ lớn để làm cho giá của họ cạnh tranh.
Một trở ngại lớn là sự hiện diện của Intel. Mặc dù chip CISC của họ ngày càng trở nên khó sử dụng và khó khăn để phát triển, Intel đã có các nguồn lực để cày thông qua phát triển và sản xuất bộ vi xử lý mạnh mẽ. Mặc dù chip RISC có thể vượt qua những nỗ lực của Intel trong lĩnh vực cụ thể, sự khác biệt không lớn, đủ để thuyết phục người mua thay đổi công nghệ.
Nhìn chung các RISC Advantage
Ngày nay, Intel x86 là đáng chip duy nhất mà vẫn giữ được kiến trúc CISC. Điều này chủ yếu là do những tiến bộ trong các lĩnh vực khác của công nghệ máy tính. Giá RAM đã giảm đáng kể. Năm 1977, 1MB DRAM có giá khoảng 5.000 USD. Năm 1994, cùng một số lượng bộ nhớ có giá chỉ $ 6 (khi điều chỉnh lạm phát). Công nghệ trình biên dịch cũng đã trở nên tinh vi hơn, do đó việc sử dụng chip RAM và nhấn mạnh vào phần mềm đã trở thành lý tưởng.
Hai nhân số trong bộ nhớ
bên phải là một sơ đồ đại diện cho chương trình lưu trữ cho một máy tính chung chung. Bộ nhớ chính được chia thành các địa điểm số từ (hàng) 1: (cột) từ 1 tới (hàng) 6: (cột) 4 đơn vị thi công có trách nhiệm thực hiện tất cả các tính toán.. Tuy nhiên, các đơn vị thi công chỉ có thể hoạt động trên dữ liệu đã được nạp vào một trong sáu đăng ký (A, B, C, D, E, hoặc F). Hãy nói rằng chúng tôi muốn tìm các sản phẩm của hai con số - một trong những vị trí được lưu trữ trong 02:03 và lưu trữ trong một vị trí 5:02 - và sau đó lưu trữ các sản phẩm trở lại ở vị trí 2:3.
Phương pháp tiếp cận CISC
Mục tiêu chính của kiến trúc CISC là để hoàn thành một nhiệm vụ trong khi vài dòng lắp ráp càng tốt. Điều này đạt được bằng cách xây dựng phần cứng bộ xử lý có khả năng hiểu biết và thực hiện một loạt các hoạt động. Đối với nhiệm vụ đặc biệt này, một bộ xử lý CISC sẽ chuẩn bị sẵn sàng với một hướng dẫn cụ thể (chúng tôi sẽ gọi nó là "mult"). Khi thực hiện, hướng dẫn này tải hai giá trị vào sổ đăng ký riêng biệt, nhân với toán hạng trong các đơn vị thực hiện, và sau đó lưu trữ các sản phẩm trong sổ đăng ký thích hợp. Như vậy, toàn bộ công việc của nhân hai số có thể được hoàn thành với một hướng dẫn:
Mult 2:03, 5:2
Mult là những gì được biết đến như một "lệnh phức tạp." Nó hoạt động trực tiếp vào các ngân hàng bộ nhớ của máy tính và không cần lập trình để gọi một cách rõ ràng bất kỳ tải hoặc các chức năng lưu trữ. Nó gần giống như một lệnh trong một ngôn ngữ cấp cao hơn. Ví dụ, nếu chúng ta để cho "một" đại diện cho các giá trị của 02:03 và "b" đại diện cho các giá trị của 5:2, sau đó lệnh này giống hệt với tuyên bố C "a = a * b."
Một trong những lợi thế chính của hệ thống này là các trình biên dịch đã làm việc rất ít để dịch một tuyên bố ngôn ngữ cấp cao vào lắp ráp. Bởi vì chiều dài của mã này là tương đối ngắn, rất ít RAM là cần thiết để lưu trữ hướng dẫn. Sự nhấn mạnh được đặt vào việc xây dựng hướng dẫn phức tạp trực tiếp vào phần cứng.
RISC Phương pháp tiếp cận
xử lý RISC chỉ sử dụng hướng dẫn đơn giản có thể được thực hiện trong một chu kỳ đồng hồ. Như vậy, "mult" lệnh mô tả ở trên có thể được chia thành ba lệnh riêng biệt: "LOAD," trong đó di chuyển dữ liệu từ các ngân hàng bộ nhớ để đăng ký một, "PROD", mà tìm thấy các sản phẩm của hai toán hạng nằm trong sổ đăng ký, và " CỬA HÀNG ", trong đó di chuyển dữ liệu từ một đăng ký cho các ngân hàng bộ nhớ. Để thực hiện hàng loạt chính xác các bước được mô tả trong phương pháp tiếp cận CISC, một lập trình viên sẽ cần phải mã bốn dòng lắp ráp:
TẢI A, 02:03
TẢI B, 5:2
PROD A, B
CỬA HÀNG 2:03, A
Lúc đầu, điều này có vẻ như là một cách kém hiệu quả hoàn thành các hoạt động. Bởi vì có rất nhiều dòng mã, RAM nhiều hơn là cần thiết để lưu trữ các hướng dẫn lắp ráp cấp. Trình biên dịch cũng phải thực hiện công việc nhiều hơn để chuyển đổi một tuyên bố ngôn ngữ cấp cao thành mã của mẫu này.
CISC
Nhấn mạnh vào phần cứng
Bao gồm nhiều đồng hồ hướng dẫn phức tạp
Bộ nhớ đến bộ nhớ: "TẢI" và "CỬA HÀNG" đưa vào hướng dẫn
Kích thước mã nhỏ, chu kỳ mỗi giây cao
Bóng bán dẫn được sử dụng để lưu trữ hướng dẫn phức tạp
RISC
Nhấn mạnh vào phần mềm
Đơn đồng hồ, hướng dẫn giảm chỉ
Đăng ký để đăng ký: "TẢI" và "CỬA HÀNG" là hướng dẫn độc lập
Chu kỳ thấp cho mỗi thứ hai, kích thước mã lớn
Dành nhiều transistor trên bộ nhớ đăng ký
Tuy nhiên, chiến lược RISC cũng mang lại một số lợi thế rất quan trọng. Bởi vì mỗi lệnh đòi hỏi chỉ có một chu kỳ đồng hồ để thực hiện, toàn bộ chương trình sẽ thực hiện trong khoảng cùng một lượng thời gian như nhiều chu kỳ "mult" lệnh. Những RISC "hướng dẫn giảm" đòi hỏi ít bóng bán dẫn của không gian phần cứng hơn so với hướng dẫn phức tạp, để lại chỗ cho đăng ký mục đích chung. Bởi vì tất cả các hướng dẫn thực hiện trong một khoảng thời gian thống nhất (tức là một đồng hồ), pipelining là có thể.
Tách "TẢI" và "CỬA HÀNG" hướng dẫn thực sự làm giảm số lượng công việc mà máy tính phải thực hiện. Sau một CISC phong cách "mult" lệnh được thực thi, bộ vi xử lý sẽ tự động xóa sổ đăng ký. Nếu một trong các toán hạng cần phải được sử dụng để tính toán khác, bộ vi xử lý phải tái nạp dữ liệu từ bộ nhớ vào một ngân hàng đăng ký. Trong RISC, các toán hạng sẽ ở lại cho đến khi đăng ký giá trị khác được nạp vào vị trí của nó.
Hiệu suất phương trình
Phương trình sau đây thường được sử dụng để thể hiện khả năng hiệu suất của máy tính:
Cách tiếp cận CISC cố gắng để giảm thiểu số lượng các hướng dẫn cho mỗi chương trình, hy sinh số chu kỳ theo hướng dẫn. RISC không những đối diện, giảm chu kỳ theo hướng dẫn tại các chi phí của số hướng dẫn cho mỗi chương trình.
RISC rào chắn
Mặc dù những ưu điểm của xử lý RISC dựa trên chip RISC mất hơn một thập kỷ để đạt được một chỗ đứng trong thế giới thương mại. Điều này phần lớn là do thiếu sự hỗ trợ phần mềm.
Mặc dù dòng Power Macintosh của Apple đặc trưng chip RISC dựa trên và Windows NT là RISC tương thích, Windows 3.1 và Windows 95 được thiết kế với bộ xử lý CISC trong tâm trí. Nhiều công ty đã không sẵn sàng để mất một cơ hội với công nghệ RISC mới nổi. Nếu không có lợi ích thương mại, phát triển bộ vi xử lý không thể sản xuất chip RISC trong khối lượng đủ lớn để làm cho giá của họ cạnh tranh.
Một trở ngại lớn là sự hiện diện của Intel. Mặc dù chip CISC của họ ngày càng trở nên khó sử dụng và khó khăn để phát triển, Intel đã có các nguồn lực để cày thông qua phát triển và sản xuất bộ vi xử lý mạnh mẽ. Mặc dù chip RISC có thể vượt qua những nỗ lực của Intel trong lĩnh vực cụ thể, sự khác biệt không lớn, đủ để thuyết phục người mua thay đổi công nghệ.
Nhìn chung các RISC Advantage
Ngày nay, Intel x86 là đáng chip duy nhất mà vẫn giữ được kiến trúc CISC. Điều này chủ yếu là do những tiến bộ trong các lĩnh vực khác của công nghệ máy tính. Giá RAM đã giảm đáng kể. Năm 1977, 1MB DRAM có giá khoảng 5.000 USD. Năm 1994, cùng một số lượng bộ nhớ có giá chỉ $ 6 (khi điều chỉnh lạm phát). Công nghệ trình biên dịch cũng đã trở nên tinh vi hơn, do đó việc sử dụng chip RAM và nhấn mạnh vào phần mềm đã trở thành lý tưởng.
NguyenHuuLuan (HLT3)- Tổng số bài gửi : 1
Join date : 23/03/2014
So sánh kiến trúc CISC và RISC
RISC (viết tắt của Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) là một phương pháp thiết kế vi xử lý (VXL) 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. Hiện nay các vi xử lý RISC phổ biến là PIC, ARM, DEC Alpha, PA-RISC, SPARC, MIPS, và PowerPC của IBM.
Ý tưởng bắt đầu khi người ta nhận thấy rất nhiều tính năng trong các VXL 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 hiện. 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 hướng thiết kế RISC
Những năm cuối của thập kỷ 70, những nhà nghiên cứu của IBM (và cả một số dự án khác) nhận thấy rằng các phương pháp đánh địa chỉ trực giao thường bị các phần mềm 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 những lệnh phức của các VXL 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ì những lệnh này càng bị bỏ quên.
Mặt khác những lệnh phức này ít được dùng vì thực ra chúng được thực thi chậm hơn một nhóm vi lệnh cùng thực hiện chức năng đó. Đây giống như 1 nghịch lý của quá trình thiết kế VXL, vì 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à tất nhiên những lệnh phức là những lệnh ít được sử dụng nhất. Ví dụ cụ thể nhất có lẽ là lệnh INDEX của VAX, sẽ nhanh hơn từ 45% đến 60% nếu lệnh này được thay bởi 1 nhóm các lệnh VAX đơn giản khác (http://www.sasktelwebsite.net/jbayko/cpuAppendA.html)
Cũng trong thời gian này, CPU bắt đầu hoạt động nhanh hơn bộ nhớ. Thậm chí trong những năm 70, người ta cho rằng điều này sẽ còn tiếp tục không dưới 1 thập kỷ nữa, đến lúc đó CPU sẽ nhanh hơn bộ nhớ hàng chục tới hàng trăm lần. Dường như đã đến lúc CPU cần thêm nhiều thanh ghi (sau này gọi là caches) để có thể hoạt động ở tốc độ cao hơn. Những thanh ghi và bộ nhớ đệm mới sẽ cần những khoảng trống trên board hoặc trên chip được tạo ra khi giảm sự phức tạp của CPU.
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 số 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ẽ bớt đi rất nhiều lần phải 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 này lại 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 dành 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 của CPU bị giới hạn bởi thời gian 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. Mục tiêu của RISC 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 giảm thiểu - RISC” .
Rất tiếc cụm từ “Máy tính với tập lệnh được giảm thiểu” 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ư Minimal Instruction Set Computer (MISC) hay One Instruction Set Computer (OISC) 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ấ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à Complex Instruction Set Computer –CISC. 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 1 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ư đó đã là 1 cuộc chiến dai dẳng về khái niệm RISC.
Định hướng thiết kế trước thời RISC
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) hoặc bằng hợp ngữ. Để việc lập trình đơn giản, các VXL đượ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 VXL 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.
[img][/img]
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 1 bit ở 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ế VXL 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 quả vào bộ nhớ. Khuynh hướng thiết kế VXL này được gọi là Complex Instruction Set Computer – CISC
Mục đích chung của thời kỳ này là mỗi lệnh hỗ trợ càng nhiều phương pháp đánh địa chỉ càng tôt, đây chính là lý thuyết trực giao. Điều này dẫn đến một số phức tạp cho CPU, mặc dù theo lý thuyết mỗi lệnh có thể được tối ưu riêng rẽ, làm quá trình thiết kế nhanh hơn nếu người lập trình sử dụng các lệnh đơn giản.
Sự tương phản rõ ràng nhất đến từ 2 VXL: 6502 và VAX. Chip 6502 có giá $25 với 1 thanh ghi duy nhất, và bằng cách tối ưu giao tiếp bộ nhớ nó có thể hoạt động ở tốc độ cao hơn so với thiết kế ban đầu. VAX vốn là 1 máy tính nhỏ, nó cần tới 1 tá các thiết bị phụ và được đặc biệt chú ý bởi một lượng rất lớn các kiểu đánh địa chỉ mà nó hỗ trợ, cũng như lệnh nào của nó cũng đều hỗ trợ các kiểu đánh địa chỉ đó.
Cùng lúc đó...
Trong khi những khái niệm về RISC đang dần được hoàn thiện thì những ý tưởng nhằm cải tiến hiệu suất cho các CPU cũng bắt đầu ra đời.
Những năm đầu thập kỷ 80, người ta sợ rằng, về lý thuyết, công nghệ thiết kế VXL đã đạt đến giới hạn. Sự cải tiến chỉ còn có thể thực hiện với công nghệ bán dẫn, như giảm kích thước của transistor hoặc của dây nối trên chip. Dù độ phức tạp của chip không đổi nhưng với kích thước nhỏ hơn nó vẫn có thể hoạt động ở tốc độ cao hơn. Cũng có nhiều cố gắng để thiết kế các chip xử lý song song. Thay vì làm cho chip nhanh hơn người ta làm cho nhiều chip có khả năng cùng chia xẻ các tác vụ. Tuy nhiên lịch sử đã chứng minh rằng nhận định lúc đầu là sai lầm, rất nhiều ý tưởng ra đời cuối thập kỷ 80 đã cải tiến một cách toàn diện hiệu suất của các VXL thời kỳ này.
Ý tưởng đầu tiên có lẽ là “kênh dẫn” (pipeline). Đây là một kỹ thuật nhằm chia nhỏ quá trình thực thi 1 lệnh thành nhiều bước, và các bước khác nhau của các lệnh khác nhau có thể được thực thi đồng thời. Một bộ xử lý thông thường đọc một lệnh, giải mã nó, đọc những vùng nhớ lệnh đó cần, thực thi lệnh, trả kết quả về. Với kỹ thuật “kênh dẫn”, bộ xử lý có thể đọc một lệnh ngay sau khi nó đọc xong lệnh trước đó, tức là nó vừa giải mã 1 lệnh vừa đọc lệnh kế tiếp, tới chu kỳ tiếp theo bộ xử lý sẽ làm việc với 3 lệnh cùng lúc, và cứ thế tiếp tục. Dù thực tế không có lệnh nào được thực thi nhanh hơn, nhưng do lệnh theo sau sẽ hoàn thành ngay sau khi lệnh trước hoàn tất nên đây là một giải pháp rất hiệu quả nhằm tận dụng tối đa tài nguyên của các VXL.
Một phương án khác là dùng nhiều đơn vị xử lý song song trong cùng một bộ xử lý. Thay vì thực thi 1 lệnh bộ xử lý sẽ tìm cách thực thi đồng thời lệnh kế tiếp trong một đơn vị xử lý khác. Tuy nhiên đây là 1 phương án khó vì nhiều lệnh đôi khi lại phụ thuộc vào kết quả của lệnh trước nó.
Cả 2 phương pháp trên hướng tới việc cải tiến bằng cách tăng độ phức tạp của CPU. Vì không gian trên chip là có hạn do đó để thêm những tính năng mới này người ta cần bỏ đi những tính năng khác. Vì thế RISC là kẻ được hưởng lợi trước tiên do về cấu trúc nó đơn giản hơn CISC rất nhiều. Những thiết kế RISC đầu tiên nhanh chóng được thêm những tính năng mới giúp chúng vuợt qua những chip CISC tương ứng. Lúc này người ta bắt đầu tính đến việc thêm những tính năng này vào những chip CISC trong khi vẫn đảm bảo kích thước của chúng, công việc này kéo dài suốt những năm cuối thâp kỷ 80 và đầu 90.
Dù ở bất kỳ cấp độ nào, đơn vị logic của 1 chip RISC bao giờ cũng cần ít transistor hơn so với của 1 chip CISC. Điều này giúp người thiết kế có rất nhiều sự linh hoạt, ví dụ họ có thể:
1. Tăng số lượng thanh ghi.
2. implement measures to increase internal parallelism
3. Tăng kích thước cache
4. Thêm các tính năng như I/O, timer v.v…
5. Thêm các bộ xử lý vector.
6. build the chips on older fabrication lines, which would otherwise go unused
7. Cung cấp những chip cho những ứng dụng có yêu cầu cao về thời gian sử dụng pin hoặc về kích thước chip.
Những đặc điểm thường thấy trong 1 chip RISC:
1. Định dạng chuẩn mã lệnh (ví dụ lệnh có chiều dài cố định, các bit của mã lệnh luôn nằm ở vị trí cố định trong mã lệnh) sẽ làm quá trình giải mã lệnh đơn giản hơn.
2. Các thanh ghi đồng nhất, do đó chúng có thể được sử dụng thay thế nhau trong mọi tình huống (tuy nhiên các thanh ghi dành cho số nguyên và số thực dấu chấm động vẫn phân biệt nhau).
3. Cách đánh địa chỉ đơn giản. Để có những phương pháp đánh địa chỉ phức tạp cần kết hợp với các phép toán số học.
4. Hỗ trợ rất ít kiểu dữ liệu (một số chip CISC có thể có cả các lệnh thao tác với chuỗi, xử lý số phức hoặc ma trận. Những lệnh như thế chẳng bao giờ tồn tại trong 1 chip RISC).
VXL RISC được xây dựng dựa kiến trúc Harvard, trong đó bus dữ liệu và bus chương trình tách rời nhau. Điều này giúp cho quá trình đọc dữ liệu và mã lệnh có thể xảy ra đồng thời do đó có khả năng nâng cao hiệu suất của VXL.
Một trong những điểm yếu của các VXL RISC thế hệ đầu tiên là hiệu ứng branch delay slot. Hiệu ứng này xảy ra khi có 1 lệnh nhảy có điều kiện, lúc đó dù có thực hiện nhảy hay không thì một hoặc một số lệnh theo sau vẫn được thực thi do các lệnh này đã được đưa vào pipeline trong lúc lệnh nhảy đang được xử lý. Điều này gây ra một khoảng thời gian trễ khi thực thi lệnh nhảy có điều kiện. branch delay slot không những xuất hiện trong những VXL RISC như MIPS, PA-RISC và SPARC mà còn cả trong các DSP như µPD77230 hoặc TMS320C3x. Tuy nhiên ngày nay trong các thiết kế RISC hiện đại người ta đã có thể loại bỏ được hiệu ứng này.
Những RISC đầu tiên...
VXL RISC đựoc biết đến đầu tiên là siêu máy tính CDC 6600 được Jim Thornton và Seymour Cray thiết kế năm 1964, nó có 74 mã lệnh (8086 có 400 mã lệnh) cộng với 12 máy tính đơn giản được gọi là “bộ xử lý ngoại vi” để xử lý I/O. CDC 6600 sử dụng kiến trúc load-store, nó hỗ trợ 2 phương pháp đánh địa chỉ, có 11 đơn vị đuợc “kênh dẫn hóa”, năm đơn vị đọc dữ liệu và 2 đơn vị để lưu dữ liệu (bộ nhớ của nó được tổ chức theo bank do đó các đơn vị đọc ghi có thể hoạt động đồng thời). Tốc độ xung đồng hồ/lệnh nhanh hơn 10 lần so với tốc độ truy xuất bộ nhớ.
Một máy tính khác được thiết kế trên với kiến trúc load-store là Data General Nova. Đây là một máy tính nhỏ 16 bit được thiết kế năm 1968 bởi 1 công ty Mỹ tên là Data General.
Tuy nhiên VXL RISC được biết nhiều nhất lai đến từ một dự án được tài trợ bởi chương trình VLSI (Very Large-Scale Integration) của DARPA (Defense Advanced Research Projects Agency). Chương trình trên đã cho ra đời rất nhiều cải tiến liên quan đến thiết kế, sản xuất chip và cả đồ họa máy tính.
Dự án RISC của Đại học Caifornia, Berkeley bắt đầu năm 1980 dưới sự hướng dẫn của David Patterson với mục đích nâng cao hiệu suất của các VXL dựa trên kỹ thuật pipeline và register windows. Một VXL thông thường có khá ít thanh ghi, các chương trình có thể tùy ý sử dụng các thanh ghi đó bất cứ lúc nào. Còn đối với các VXL sử dụng kỹ thuật register windows, có rất nhiều thanh ghi trong VXL nhưng chương trình chỉ sử dụng cùng lúc một tập hợp nhỏ các thanh ghi. Vì thông thường mỗi lần gọi 1 chương trình con, VXL cần lưu lại giá trị một số thanh ghi và sau đó hồi phục lại các thanh ghi đó khi thực hiện lệnh return. Vì vậy bằng cách chuyển từ tập thanh ghi này sang tập thanh ghi khác (chuyển cửa sổ) chương trình có thể thực hiện các lệnh gọi hàm hoặc lệnh trả về một cách nhanh chóng.
Dự án RISC cho ra đời VXL RISC-I năm 1982. VXL này chứa 44.420 transistor (so với 100.000 transistor cho 1 VXL CISC), với 32 lệnh nhưng hoàn toàn vượt xa các VXL đơn chip cùng thời. VXL RISC-II ra đời năm 1983 với 39 lệnh, chứa 40.760 transistor và nhanh gấp 3 lần RISC-I.
Cũng khoảng thời gian đó John L. Hennessy thực hiện dự án MIPS ở Đại học Stanford năm 1981. MIPS hầu như chỉ tập trung vào kỹ thuật pipeline nhằm tận dụng tối đa khả năng của các VXL. Cho dù đã được sử dụng trước đó, nhưng với MIPS, kỹ thuật này đã thực sự được cải tiến vượt bậc. Nhưng vấn đề quan trọng nhất ở đây, và có lẽ cũng phiền toái nhất, là nó đòi hỏi tất cả các lệnh bắt buộc phải được thực thi trong 1 chu kỳ máy. Nếu đáp ứng được yêu cầu này, pipeline có thể hoạt động ở tốc độ rất cao và đây hầu như là yếu tố quyết định đến tốc độ của VXL. Tuy nhiên nó cũng có mặt trái là phải bỏ đi rất nhiều lệnh có ích như nhân, chia.
Hầu hết các dự án kể trên đều nhằm mục đích cải tiến các kỹ thuật hiện có, phải chờ tới năm 1975, dự án đầu tiên nhằm cho ra đời 1 chip RISC hoàn chỉnh mới được thực hiện ở IBM. Được đặt tên theo số của ngôi nhà nơi dự án được thực hiên, dự án này đã cho ra đời họ VXL IBM 801 vốn được sử dụng rộng rãi trong các phần cứng của IBM.
Trong những năm đầu, các dự án chủ yếu chỉ được biết đến trong các trường đại học. Đến năm 1986, tất cả các dự án về RISC bắt đầu cho ra đời sản phẩm. Ngày nay hầu hết các chip RISC, đều được thiết kế dựa trên kiến trúc RISC-II của Berkeley.
Những RISC hiện đại
Berkerley không thương mại hóa dự án của mình, tuy nhiên hầu hết các công ty sau này đều sử dụng kiến trúc RISC – II như Sun Microsystems với SPARC, hoặc Pyramid Technology. Chính Sun là công ty đầu tiên chứng minh sức mạnh của RISC là có thật trong những hệ thống mới của mình, và cũng nhờ đó họ nhanh chóng chiếm lĩnh thị trường workstation lúc bấy giờ.
John Hennessy tạm thời rời Standford để thành lập MIPS Computer Systems nhằm thương mại hóa dự án MIPS. Thiết kế đầu tiên của họ là chip R2000, đây là thế hệ tiếp theo của chip MIPS. MIPS nhanh chóng trở thành chip phổ biến nhất khi nó được sử dụng trong PlayStation và Nintendo 64 game consoles. Ngày nay chúng là một trong những chip được sử dụng phổ biến trong các ứng dụng nhúng high-end.
Rút kinh nghiệm từ thất bại của RT-PC, IBM thiết kế RS/6000 dựa trên kiến trúc POWER mới. Họ chuyển họ chip AS/400 thành các chip có kiến trúc POWER, và nhận thấy ngay cả 1 lệnh phức tạp nhất cũng được thực thi nhanh hơn một cách đáng kể. Kết quả đó là sự ra đời của họ iSeries. Kiến trúc POWER cũng được sử dụng trong các chip PowerPC nhưng ở cấp độ thấp hơn. Ngày nay PowerPC là 1 trong những họ VXL được sử dụng phổ biến trong xe hơi (một số xe có thể sử dụng trên 10 chip loại này). Đây cũng là họ VXL được sử dụng trong máy tính Apple Macintosh cho tới năm 2006 (từ 2-2006 Apple chuyển qua sử dụng VXL của Intel).
Những nghiên cứu ở Anh cũng cho ra đời các dòng VXL như INMOS Transputer, Acorn Archimedes và Advanced RISC Machine. Những công ty vốn sản xuất CISC trước đây cũng nhanh chóng tham gia. Intel với i860 và i960 vào cuối những năm 1980, nhưng không đạt được thành công như mong muốn. Motorola với chip 88000 nhưng cũng ko thành công và họ nhanh chóng từ bỏ để hợp tác cùng IBM sản xuất PowerPC. AMD cho ra đời VXL 29000, và trở thành VXL phổ biến nhất những năm đầu thập kỷ 90.
Ngày nay CPU RISC (và microcontrollers) chiếm 1 lượng lớn CPU được sử dụng. Kỹ thuật thiết kế RISC đem đến sức mạnh ngay cả ở những kích thước nhỏ, do đó nó nhanh chóng chiếm lĩnh hoàn toàn thị trường CPU nhúng công suất thấp. Đây là một thị trường cực kỳ lớn của CPU, có thể tìm thấy chúng trong xe hơi, điện thoại di động, thậm chí một số thiết bị khác có thể chứa hàng tá CPU loại này. RISC cũng chiếm lĩnh thị trường workstation trong hầu hết những năm 90. Sau khi Sun cho ra đời SPARCstation, các hãng khác cũng vội vã hoàn thành các hệ thống dựa trên RISC của mình. Thậm chí ngày nay thế giới của các mainframe cũng hoàn toàn dựa trên RISC.
Dù vậy thị trường PC và server lại không phải là nơi dành cho RISC, đây là nơi họ x86 của Intel chiếm ưu thế tuyệt đối (đối thủ chính của Intel là AMD, nhưng chip của AMD lại cũng được xây dựng dựa trên nền x86). Có 3 nguyên nhân chính như sau. Thứ nhất, nền tảng rất lớn của các ứng dụng của PC đều được viết cho x86, trong khi đó chưa hề nền tảng tương tự cho RISC, điều đó đồng nghĩa với việc người dùng chỉ có 1 lựa chọn là x86. Thứ hai, cho dù kiến trúc RISC có thể mở rộng nhanh và rẻ, nhưng Intel, với thị trường khổng lồ của mình, lại có thể đầu tư hàng đống tiền vào công nghệ phát triển chip. Intel cũng đã bỏ thời gian để cải tiến các quá trình thiết kế, sản xuất như bất kỳ các nhà sản xuất VXL RISC khác. Thứ ba, những người thiết kế x86 nhận ra rằng họ hoàn toàn có thể vận dụng RISC trong các VXL của mình. Ví dụ lõi P6 của bộ xử lý PentiumPro, và những VXL kế tiếp, có những đơn vị đặc biệt nhằm bẻ hầu hết các lệnh CISC thành nhiều quá trình RISC. Như vậy bản thân các bộ xử lý sử dụng lõi P6 là các CPU RISC mô phỏng kiến trúc CISC.
Người dùng thật ra chỉ quan tâm đến tốc độ, giá cả, và tính tương thích với các phần mềm có sẵn hơn là chi phí để phát triển những chip mới. Cùng với sự phức tạp của CPU tăng lên, chi phí thiết kế và sản xuất cũng tăng lên nhanh chóng. Lợi nhuận thu được từ RISC trở nên quá nhỏ bé so với chi phí đầu tư để phát triển các CPU mới, do đó ngày nay chỉ có những nhà sản xuất lớn mới có đủ khả năng phát triển những CPU mạnh. Kết quả là hầu hết những nền tảng RISC (ngoại trừ IBM POWER/PowerPC) đều thu hẹp quy mô (SPARC và MIPS) hoặc thậm chí từ bỏ (Alpha và PA-RISC) phát triển các CPU mạnh. Năm 2004 CPU nhanh nhất trong các tác vụ với số nguyên là x86 (benchmark với SPECint), và với số thực dấu chấm động là IBM Power 5 (benchmark với SPECfp).
Các hệ thống và các RISC phổ biến:
• Họ MIPS , trong các máy tính SGI, PlayStation và Nintendo 64 game consoles
• Họ POWER tong các SuperComputers/mainframes của IBM
• Freescale (trước đây là Motorola SPS) và IBM's PowerPC trong Nintendo Gamecube, Microsoft Xbox 360, Nintendo Wii and Sony PlayStation 3 game consoles, và cho tới gần đây là Apple Macintosh
• SPARC và UltraSPARC, trong tất cả các hệ thống của Sun
• Hewlett-Packard PA-RISC
• DEC Alpha
• ARM — Palm, Inc. Ban đầu sử dụng (CISC) Motorola 680x0 trong những PDA đầu tiên, nhưng hiện tại là (RISC) ARM; Nintendo sử dụng 1 chip ARM7 trong Game Boy Advance và Nintendo DS. Nhiều nhà sản xuất điện thoại di động, như Nokia cũng dựa trên kiến trúc của ARM.
Thuật ngữ thay thế
Trải qua 1 thời gian dài, tập lệnh của các RISC ngày càng tăng. Vì thế nhiều người bắt đầu sử dụng thuật ngữ “load-store” để mô tả RISC CPU, vì đây là mấu chốt của kiến trúc RISC. Thay vì CPU xử lý rất nhiều phương pháp đánh địa chỉ, kiến trúc load-store sử dụng những đơn vị chuyên biệt để thực hiện những dạng rất đơn giản của các quá trình load và store. CISC CPU vì thế được gọi là "register-memory" hoặc "memory-memory".
NguyenVanNhieu74 (HLT3)- Tổng số bài gửi : 20
Join date : 23/03/2014
Age : 34
Similar topics
» Thảo luận Bài 3
» RISC và CISC
» So sánh kiến trúc CISC và RISC
» Phân biệt kiến trúc về chip RISC và CISC?
» RISC-CISC là gì?Mục tiêu máy tính giữa tập lệnh đơn giản và phức tạp?
» RISC và CISC
» So sánh kiến trúc CISC và RISC
» Phân biệt kiến trúc về chip RISC và CISC?
» RISC-CISC là gì?Mục tiêu máy tính giữa tập lệnh đơn giản và phức tạp?
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết