Kiến trúc CISC Complex Instruction Set Computer Trong máy tính mọi thứ đều được đưa về các con số nhị phân “0”, “1” bởi vì máy tính chỉ hiểu các mức điện thế tương ứng với 0/1 trên mỗi
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
BÁO CÁO BÀI TẬP KIẾN TRÚC MÁY TÍNH NÂNG CAO
SO SÁNH KIẾN TRÚC RISC VÀ CISC
Học viên:
Phạm Minh Khuê – 1570213 Thái Hoàng Sơn – 1570227 Đặng Danh Hữu – 1570210 Thái Bình Dương – 1570204 Lục Minh Tuấn – 1570235
Đỗ Thanh Thái - 1570229
TP HỒ CHÍ MINH, THÁNG 09/2015
Trang 2I LỊCH SỬ VÀ TỔNG QUAN
1 Kiến trúc CISC (Complex Instruction Set Computer)
Trong máy tính mọi thứ đều được đưa về các con số nhị phân “0”, “1” bởi vì máy tính chỉ hiểu các mức điện thế tương ứng với 0/1 trên mỗi transistor cụ thể, người sử dụng muốn thực hiện một chương trình nào đó, phải nạp mã lệnh chỉ gồm các con số 0-1 vào bộ nhớ cho máy tính Có 3 cách để thực hiện vấn đề này:
Viết ngay mã máy với các con số 0-1 và nạp vào bộ nhớ Cách này rất khó thực hiện vì rất dễ gây nhầm lẫn cho người viết và khó trong việc nhớ các câu lệnh, mất rất nhiều thời gian để viết được một câu lệnh hoàn chỉnh
Viết dạng tên gợi nhớ bằng hợp ngữ Assembly sau đó dịch ra mã máy Cấp độ này gần với ngôn ngữ máy nhưng vẫn còn phức tạp với người viết vì khó thực hiện trong các chương trình phức tạp Tuy nhiên trong cách này thì cấu trúc các câu lệnh tương đối gọn nhẹ và cũng dễ nhớ
Viết bằng ngôn ngữ lập trình cấp cao như C, C++, Pascal… sau đó dùng trình biên dịch ra mã máy Cách này thân thiện với người lập trình tuy nhiên tạo ra các chương trình có dung lượng lớn hơn nhiều so với viết bằng hợp ngữ (Assembly) Thách thức lớn nhất là làm sao để có sự kết hợp hài hòa giữa người làm phần cứng và người làm phần mềm để chương trình dịch được thực hiện chuẩn tắc, nhỏ gọn và không tạo ra nhiều code trung gian
Trong suốt thập niên 1960, các nhà thiết kế cố gắng thu hẹp khoảng cách giữa ngôn ngữ lập trình bậc cao của con người và ngôn ngữ máy, họ đưa ra cấu trúc với tập các câu lệnh phức tạp gọi là CISC (Complex Instruction Set Computer) có các chế độ định địa chỉ khác nhau và do đó tốn nhiều chu kì xung nhịp cho mỗi câu lệnh 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 giảm độ dài chương trình Do vậy 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
Việc giảm thiểu ranh giới giữa tập lệnh vi điều khiển và ngôn ngữ cấp cao không phải là một cách hay
để cho máy tính hoạt động hiệu quả Vì vậy để biết được làm sao vi xử lý có thể hoạt động nhanh hơn ta cần biết vi xử lý dùng nhiều thời gian vào việc gì
Trang 3Sự khác biệt cơ bản giữa các dòng chip của các máy tính sử dụng với tập lệnh rút gọn RISC và máy tính sử dụng với tập lệnh phức tạp CISC có thể được xem như là một cuộc chạy đua giữa các nhà lập trình
và các nhà thiết kế chíp Chip CISC được đưa ra nhằm tạo thuận lợi cho những người lập trình ứng dụng bằng cách bỏ các câu lệnh đơn giản mà thay vào đó là một câu lệnh thực thi dài Điều này làm cho CISC
xử lý chậm như lại đạt yếu tố thân thiện Ở mặt khác thì RISC kém thân thiện hơn nhưng mỗi câu lệnh trong RISC phục vụ rất hiệu quả cho một mục đích hẹp và cụ thể RISC đòi hỏi người lập trình cần rất kiên nhẫn, giỏi và một trình biên dịch được tối ưu kỹ càng
2 Kiến trúc RISC (Reduced instruction set computing):
Một số hệ thống từ những năm 1970 ( có thể là 1960) đã được ghi nhận là những kiến trúc RISC đầu tiên, dựa một phần trên kiến trúc load/store Khái niệm RISC được đưa ra đầu tiên bởi David Patterson của dự án Berkeley RISC
CDC 6600 dước thiết kế bởi Seymour Crayd năm 1964 đã sử dụng cấu trúc load/store với chỉ hai kiểu addressing (register+register, and register+immediate constant) và 74 opcode với tỉ lệ clock cycle/instruction nhanh hơn 10 lần so với tỉ lệ truy suất memory Việc nhanh hơn này một phần do cấu trúc tối ưu của CDC 6600 nhưng nó chính là tiền thân của của cấu trúc RISC sau này
Michael J Flynn coi kiến trúc RISC đầu tiên là IBM 801 được thiết kế năm 1975 bởi John Cocke và hoàn thành năm 1980 IBM 801 thất bại trong việc thương mại hóa nhưng chính nó đã mang lại nguồn cảm hứng cho các dự án sau này và dẫn tới IBM POWER instruction set architecture Những thiết kế RISC phổ biến nhất là xuất phát từ kết quả nghiên cứu của chương trình được tài trợ bởi DARPA VLSI, được biết đến như là một tổ chức có rất nhiều nghiên cứu về chip design, computer graphics
RISC của Berkeley dành được hiệu suất dựa trên sử dụng pipelining và kĩ thuật register windowing Trong CPU truyền thống sẽ có một số lượng thanh ghi và một chương trình có thể sử dụng bất kì thanh ghi tại mọi thời điểm Những CPU sử dụng kĩ thuật register windowing sẽ có một lượng lớn các thanh ghi nhưng chương trình chỉ sử dụng số lượng nhỏ các thanh ghi đó Những chương trình sử dụng giới hạn các thanh ghi sẽ làm tăng tốc độ procedure được gọi: Sự gọi đơn giản là di chuyển windown xuống để thiết
Trang 4lập 8 thanh ghi được sử dụng và trả sự di chuyển window trở lại Dự án Berkeley RISC tạo ra RISC-I processor năm 1982 chứa chỉ 44420 transistor (nhỏ hơn rất nhiều so với 100000 của CISC) RISC-I chỉ có
32 instruction, vượt trội hoàn toàn so với single-chip design khác RISC-II năm 1983 cóc 40760 transistor
và 39 instuction Nó chạy nhanh gấp 4 lần RISC-I
MISP cũng là một dạng của RISC, được phát triển bởi John L Hennessy tại đại học Stanford năm 1981
Nó trở thành hệ thống function năm 1983 và có thể chạy chương trình đơn giản năm 1984 MISP sử dụng cách tiếp cận là clock cycle tích cực và sử dụng pipeline để giúp nó đảm bảo có thể hoạt động một cách đầy đủ Theo sau MIPS là MIPS-X Năm 1984, Hennessy và cộng sự đã tạo hệ thống MIPS Computer Sản phẩm thương mại là R2000 microprocessor năm 1985 và theo sau đó là R3000 năm 1988
Đầu những năm 1980, có những hồ nghi bao quanh khái niệm RISC về sự thương mại hóa trong tương lai, nhưng đến giữa những năm 1980, RISC đã có sự phát triển tương đối đủ để thương mại hóa Năm 1986, Hewlett Packard đã bắt đầu sử dụng PA-RISC trong hệ thống máy tính của họ Trong khi ấy, những nỗ lực của Berkeley đã làm cho khái niệm RISC trở nên nổi tiếng và đến năm 1987, Sun Microsystems bắt đầu di chuyển hệ thống với SPARC processor, dựa trên nền tảng là hệ thống RISC-II
SPARC của SUN
Trang 5Tổ chức US government Committee on Innovations in Computing and Communications chấp nhạn khái niệm RISC nhờ sự thành công của hệ thống RISC-II Sự thành công này cũng đã thu hút sự đầu tư của IBM với việc ra đời hệ thống RISC vào năm 1990 Đến năm 1995, RISC processors là nền tảng của ngành công nghiệp máy chủ trị giá 15 tỷ USD
Từ năm 2010, một open source: ISA, RISC-V được phát triển bởi đại học California với mục đính nghiên cứu và như một sự thay thế cho sự độc quyền của ISA Năm 2014, ISA được thiết kế để mở rộng
từ lõi barbone đủ cho một embedded processor nhỏ cho siêu máy tính và điện toán đám mây
II ĐẶC ĐIỂM SO SÁNH:
1 Kiến trúc CISC
Ứng dụng điển hình là sử dụng trong kiến trúc x86 của Intel Dưới đây là một số đặc điểm chính của CISI/x86
Format:
Độ dài câu lệnh thay đổi
Thông thường các câu lệnh là ngắn và đơn giản Tuy nhiên có một số câu lệnh đặc biệt phức tạp và dài
Độ dài khoảng 1B tới 16B
Toán tử
Phức tạp, cần nhiều chu kì để thực hiện câu lệnh
Các phép toán thể hiện phức tạp, được mã hóa
Thao tác với kiểu chuỗi
Toán hạng:
Bộ nhớ, thanh ghi và trực tiếp
Có nhiều mode địa chỉ
X86: 8 thanh ghi 32b và 6 thanh ghi 16b
Việc tiến bộ trong mạch kết và phương pháp dịch đã làm cho nhận định trước đây phải xem xét lại nhất là khi có một khảo sát định lượng về việc dùng tập lệnh các máy CISC
Cách thực hiện lệnh Thanh ghi – thanh ghi
Thanh ghi – bộ nhớ
Bộ nhớ - bộ nhớ
Thanh ghi – thanh ghi Thanh ghi – bộ nhớ
Bộ nhớ - bộ nhớ
Ngăn xếp
Bộ nhớ - bộ nhớ
Trang 6Bảng trên cho ta thấy các đặc tính của vài máy sử dụng CISC tiêu biểu Ta thấy 3 máy đều có điểm chung là có nhiều lệnh và chiều dài thay đổi Có nhiều cách thực hiện lệnh và nhiều vi chương trình được dùng
⊕。Ưu điểm CISC
Kích thước tập lệnh thay đổi với rất nhiều định dạng khác nhau
Cho phép giá trị trong bộ nhớ được dùng như toán hạng trong các chỉ lệnh xử lý dữ liệu
Có rất nhiều thanh ghi, nhưng hầu hết chỉ sử dụng cho một mục đích riêng biệt nào đó
Có nhiều lệnh, khoảng 500 lệnh
Có nhiều kiểu định vị
Có nhiều dạng lệnh
Có nhiều lệnh khác thâm nhập vào bộ nhớ
⊕。Nhược điểm
Sử dụng rất nhiều code ROM giải mã các chỉ lệnh
Các máy cũ ít khi cho phép dòng lệnh thực thi kiểu cấu trúc dòng chảy, chúng phải thực thi tuần tự hết dòng lệnh này mới tới dòng lệnh khác
Cần nhiều chu kì xung nhịp cho việc hoàn thành một lệnh
2 Kiến trúc RISC:
⊕。Instruction set
Có một hiểu lầm lớn với cụm từ “reduced instruction set computer” là một ý tường tồi rằng instructions được giới hạn đơn giản và cho kết quả là một tập các instructions nhỏ hơn Do đó, trong những năm qua, tập RISC instruction có sự phát triển về kích thước và ngày nay nhiều trong số chúng có tập các instruction lớn hơn CISC CPU Từ “reduced” được dùng để mô tả lượng công việc của bất kì single instruction được hoàn thành thì được giảm tại bất kì single data memory cycle, để so sánh với instructions phức tạp của CISC CPU CISC CPU yêu cầu nhiều data memory cycles để thực hiện các single instruction Thông thường, RISC processors chia instructions cho I/O and data processing
⊕。Triết lý thiết kế
Đối với bất kỳ mức độ nào, một chip RISC thường sẽ có rất ít transistors dành riêng cho lõi logic Điều đó cho phép cho phép các nhà thiết kế để tăng kích thước của tập register và tăng xử lý song song nội bộ
Các tính năng khác thường được tìm thấy trong kiến trúc RISC là:
Định dạng instruction thống nhất, bằng cách sử dụng một từ duy nhất với các opcode trong các vị trí bit giống nhau ở mọi instruction, yêu cầu giải decoding;
Registers mục đích chung giống hệt nhau, cho phép bất kỳ registers để được sử dụng trong mọi context, đơn giản hóa thiết kế compiler
Addressing modes đơn giản, với addressing phức tạp thực hiện thông qua trình tự của các phép tính số học, load-store operations, hoặc cả hai
Vài kiểu dữ liệu trong phần cứng, một số CISCs có byte string instructions, hoặc hỗ trợ số phức tạp
Ý 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ộ 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 thi Cộng thêm sự cách biệt về hiệu suất giữa các CPU và bộ
Trang 7nhớ 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ộ 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ì 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ế VXL, 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 (sau này gọi
là cache) để 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 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
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
⊕。Ứng dụng của RISC: từ cell phone đến supercomputer
Low end và hệ thống mobile:
Đến đầu thế kỷ 21, phần lớn các Low end hệ thống mobile dựa trên kiến trúc RISC bao gồm :
Các kiến trúc ARM đang thống trị thị trường tiết kiệm năng lượng và giá thành thấp trong các hệ thống nhúng Nó được sử dụng trong một số hệ thống như Android, iPhone, iPad, thiết bị RIM, Nintendo Game Boy Advance
Trang 8Dòng MIPS xuất hiện trong PlayStation, PlayStation 2, Nintendo 64, PlayStation Portable gateways như Linksys WRT54G loạt
High end RISC và supercomputing:
MIPS của Silicon Graphics ,SPARC của Oracle, RISC-V: open source của Berkeley
RISC-V
3 So sánh giữa kiến túc CISC và RISC
Từ những đặc điểm đánh giá giữa hai kiến trúc CISC và RISC, ta có thể đưa ra những so sánh mang tính tham khảo:
Trang 9RISC CISC
Ưu
điểm
Vì số lượng instruction nhỏ trong RISC, những trình biên dịch cấp cao có thể tạo ra những code hiệu quả
RISC cho phép tự do trong việc sử dụng các không gian trên các microprocessors vì cấu trúc đơn giản của nó
Thay vì sử dụng Stack, nhiều RISC processors dùng register để passing arguments và giữ những giá trị cục bộ
Tốc độ thực thi tăng cao và thời gian thực thi tối thiểu
Số lượng format của các instructions nhỏ (thường là nhỏ hơn 4), một vài instructions (khoảng 150) và vài addressing modes (nhỏ hơn 4) cần thiết
Mỗi chỉ lệnh ngôn ngữ máy được nhóm lại thành một hướng dẫn vi và thực hiện phù hợp, và sau đó được lưu trữ sẵn trong bộ nhớ của bộ xử lý chính, được gọi là hiện thực microcode
Nhờ vào bộ nhớ của microcode nhanh hơn bộ nhớ chính, nên những tập microcode instructions có thể được hiện thực mà không giảm tốc
độ đáng kể so với việc hiện thực có dây cứng
Toàn thể tập instructions mới có thể gần như không thể hiệu chỉnh thiết
kế chương trình micro
Trong CISC, số lượng instructions yêu cầu cho việc hiện thực một chương trình có thể được giảm xuống bằng cách xây dựng những tập instructions giàu và cũng có thể được thực hiện
để sử dụng chậm nhớ chính hiệu quả hơn
Bởi vì superset của instructions bao gồm tất cả những instructions trước, điều đó làm cho việc tạo ra micro coding dễ hơn
Trang 10RISC CISC
Nhược
điểm
Việc tăng lên về độ dài của các instructions dẫn đến sự phức tạp tăng lên bên trong RISC processors trong việc thực thi vì chu kì của các kí tự mỗi instruction
Performance của các RISC processors phụ thuộc hầu hết vào compiler hoặc programming bởi vì kiến thức của compiler đóng vài trò chính trong việc chuyển từ CISC code sang RISC code,
vì vậy chất lượng trọng việc tạo ra code phụ thuộc vào compiler
Trong việc chuyển từ mã CISC sang mã RISC, được hiểu như việc mở rộng code, sẽ tăng lên về kích thước Và chất lượng của code mở rộng một lần nữa phụ thuộc vào compiler và cũng nhưng trên tập instruction của máy
Caches level đầu của RISC cũng là một bất lợi của nó, những processors có bộ nhớ lớn trên những con chip của nó
Để cung cấp cho các instructions, nó đòi hỏi một hệ thống có bộ nhớ nhanh
Chi phí của clock time tuỳ thuộc vào từng instructions khác nhau, bởi vì điều đó, performance của máy sẽ bị giảm xuống
Các hướng dẫn thiết lập phức tạp và chip phần cứng tăng lên khi mỗi phiên bản mới của bộ vi xử lý bao gồm một tập hợp con của các thế hệ trước đó
Chỉ có 20% các instructions được sử dụng trong những sự kiện lập trình kinh điển, mặc dù có rất nhiều chỉ dẫn đặc biệt trong sự tồn tại mà thậm chí còn không được sử dụng thường xuyên
Các mã có điều kiện được thiết lập bởi các lệnh CISC như một tác dụng phụ của mỗi hướng dẫn mà cần có thời gian để cài đặt này - như hướng dẫn tiếp theo thay đổi các bit mã điều kiện - vì vậy, trình biên dịch đã kiểm tra các bit mã điều kiện trước khi điều này xảy ra
III ĐỊNH HƯỚNG PHÁT TRIỂN CỦA CISC VÀ RISC
Trong tương lai, công nghệ ngày càng có những bước tiến vượt bậc về những kiến trúc phần cứng, vậy tương lai nào cho hai kiến trúc RISC và CISC?
CISC và RISC sẽ hội tụ?
Các công nghệ xử lý hiện đại đã thay đổi đáng kể kể từ chip RISC đầu tiên được giới thiệu vào đầu những năm 80 Bởi vì một số tiến bộ được sử dụng bởi cả hai kiến trúc RISC và CISC, ranh giới giữa hai kiến trúc đã bắt đầu mờ đi Trong thực tế, hai kiến trúc gần như có vẻ như đã được thông qua các chiến lược của nhau Bởi vì tốc độ xử lý đã tăng lên, chip CISC hiện nay có thể thực hiện nhiều hơn một lệnh trong một single clock Điều này cũng cho phép chip CISC tận dụng pipelining Với những cải tiến công nghệ khác, bây giờ có thể để phù hợp với nhiều transistor hơn trên một chip duy nhất Điều này cho phép
bộ vi xử lý RISC đủ không gian để kết hợp, và bộ vi xử lý CISC cũng có thể phức tạp hơn Chip RISC cũng
sử dụng các phần cứng phức tạp hơn Từ tất cả yếu tố này có thể nói chúng ta đang ở thời đại "hậu-RISC", trong đó hai phong cách đã trở nên tương tự mà phân biệt giữa chúng là không còn phù hợp nữa Tuy nhiên, cần lưu ý rằng chip RISC vẫn giữ lại một số đặc điểm quan trọng Chip RISC sử dụng thống nhất, tập lệnh chu trình đơn Họ cũng giữ lại, kiến trúc “register-to-register” và “load-store”
Tóm lại CISC và RISC ngày càng trở nên giống nhau Nhiều con chip RICS hiện nay có nhiều chỉ lệnh
và ngược lại, những con chip CISC hiện hay sử dụng nhiều kĩ thuật trước đây kết hợp với con chip RISC Chip CISC của Intel đã dùng kỹ thuật RISC trong chip 486 của nó và làm tăng số lượng trong những bộ xử
lý của dòng Pentium