Chắc bác quên PIC có kiến trúc RISC (Reduced Instruction Set Computer=Máy tính có tập lệnh rút gọn). Còn 8051 có kiến trúc CISC (Complex Instruction Set Computer=Máy tính có tập lệnh phức tạp). Theo các nhà nghiên cứ điều tra thống kê thì:
+Trong nhiều chương trình điển hình được xử lý bằng bộ vi xử lý CISC thì đến 80% chạy chương trình chỉ bởi 20% số lệnh trong tập lệnh
+Có 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ẽ chạy nhanh hơn một lệnh phức tạp.
Tập lệnh của RISC tập chung vào các lệnh chính yếu và phần cứng được thiết kế sao cho các phần tử RISC hiểu ngay được lệnh máy do chương trình cung cấp, không cần phải giải mã thành một chuỗi các vi lệnh như CISC. Rõ ràng thời gian thực hiện một lệnh ở đây rút ngắn đi nhiều so với CISC.
Một đặc điểm quan trọng nữa mà bác quên là RISC có một số lượng lớn các thanh ghi nên ngăn xếp không cần nhiều (8) và đương nhiên các tính toán trên thanh ghi là nhanh hơn rồi. Còn nữa bộ xử lý RISC có một tập lệnh nhỏ chúng chỉ có các lệnh cơ sở, nên công việc của người lập trình khó khăn. Nhưng tại sao người ta lại dùng RISC vì trên 95% các lệnh đều được thực hiện chỉ với một nhịp đồng hồ. Bộ xử lý RISC có các BUS riêng cho dữ liệu và mã gọi là kiến trúc Harvardcòn CISC chỉ có một tập hợp BUS. Vì tập lệnh bé nhưng lại có ưu điểm đó bác, là các lệnh được nối cứng và việc cứng hóa chiếm không quá 10% transitor, số transitor dư ra làm được rất nhiều thứ hữu ích khác.-> Vì vậy theo tôi không thể nói là PIC chậm hơn 8051 được.
AVR (RISC)nói chạy ở clock 8Mhz thì công nhận là nó thực hiện được 8 triệu lệnh/giây thật. Nhưng không hẳn đã như thế đâu, vả lại so sánh giữa các con nó cũng khập khiễng phải không bác. Có chăng lấy con mạnh nhất của các họ ra so sánh may chăng còn kết luận được vì PIC có nhưng con chạy tới 30 triệu lệnh/giây mà.
Còn riêng tôi thấy PIC là quá đủ để dùng rồi nên cũng không cần bận tâm nhiều. :e-cu:
|