Để đơn giản hóa và làm cho các khái niệm được giải thích trong bài viết này dễ hiểu hơn, chúng tôi đã quyết định mô tả một bộ xử lý cực kỳ đơn giản cho thời điểm hiện tại, vì vậy trong bài viết này, bạn sẽ thấy giải thích về chu trình lệnh là gì một cách tổng quát có thể áp dụng từ những bộ vi xử lý 8-bit đầu tiên đến những bộ xử lý phức tạp nhất hiện nay Show Hình dung chu trình hướng dẫnỞ một góc độ nào đó, bộ vi xử lý không khác động cơ đốt trong, động cơ này luôn thực hiện quá trình nổ nhiên liệu liên tục theo các giai đoạn khác nhau, dù là động cơ 2 thì hay 4 thì. Lý do cho điều này là các bộ xử lý hoạt động ở ba giai đoạn khác nhau trong phiên bản đơn giản nhất của chúng, đó là:
Ba giai đoạn này được thực hiện trong mọi bộ xử lý. Có một giai đoạn thứ tư, đó là Write-Back, là khi các đơn vị thực thi ghi kết quả, nhưng điều này thường được tính trong giai đoạn thực thi của chu trình lệnh. Giai đoạn đầu tiên của chu kỳ hướng dẫn: Tìm nạpGiai đoạn đầu tiên của chu trình hướng dẫn có trách nhiệm nắm bắt các hướng dẫn trong RAM bộ nhớ được gán cho bộ xử lý thông qua một loạt các đơn vị và thanh ghi như sau:
4 giai đoạn con này xảy ra trong tất cả các bộ xử lý bất kể tiện ích, kiến trúc và khả năng tương thích nhị phân của chúng hay cái mà chúng ta gọi là ISA. bộ điều khiểnKhối điều khiển là bộ phận phức tạp nhất tồn tại trong bộ xử lý và các nhiệm vụ của nó như sau:
Những gì đơn vị điều khiển làm là giải mã các hướng dẫn và nó thực hiện điều này bởi vì mỗi lệnh thực sự là một loại câu trong đó động từ đi trước rồi đến tân ngữ hoặc tân ngữ trực tiếp mà hành động được thực hiện. Chủ thể cuối cùng bị loại bỏ trong ngôn ngữ nội bộ này của máy tính bởi thực tế là nó được hiểu rằng chính máy tính thực thi nó, vì vậy mỗi số bit là một câu trong đó 1 và 0 đầu tiên tương ứng với hành động và các tiếp theo là dữ liệu hoặc vị trí của dữ liệu được thao tác. Giai đoạn thứ hai: Giải mãCó nhiều loại lệnh khác nhau và không phải tất cả chúng đều làm giống nhau, vì vậy tùy thuộc vào loại lệnh mà chúng ta cần biết đơn vị thực thi nào sẽ được gửi đến và cách thực hiện cổ điển nhất là thông qua cái mà chúng ta gọi là bộ giải mã. , lấy từng lệnh, phân chia nội bộ theo opcode hoặc lệnh và dữ liệu hoặc địa chỉ bộ nhớ nơi nó nằm. Ví dụ trong sơ đồ trên chúng ta có sơ đồ của một bộ xử lý chỉ có 8 lệnh, có thể được mã hóa chỉ trong 3 bit. Mỗi một trong các hướng dẫn, sau khi được giải mã, sẽ được gửi đến các đơn vị thực thi khác nhau sẽ giải quyết chúng. Chu trình lệnh này là chu trình phức tạp nhất và là chu trình xác định kiểu kiến trúc. Tùy thuộc vào việc chúng ta có một bộ lệnh giảm bớt hoặc phức tạp, điều này sẽ ảnh hưởng đến bản chất của khối điều khiển, tùy thuộc vào định dạng của lệnh hoặc số lượng lệnh được xử lý cùng lúc ở giai đoạn giải mã và do đó khối điều khiển sẽ có một bản chất khác nhau. khác. Cách dễ nhất để hình dung những gì sẽ xảy ra là nghĩ về các chỉ dẫn khi các đoàn tàu lưu thông qua một mạng lưới đường sắt phức tạp và bộ phận điều khiển hướng chúng đến một ga đầu cuối, đơn vị thực hiện sẽ chịu trách nhiệm giải quyết chỉ dẫn. Giai đoạn thứ ba: Thực thiGiai đoạn cuối cùng là thực thi các lệnh, trong giai đoạn này các lệnh được giải quyết, nhưng không phải tất cả các loại lệnh đều được giải quyết theo cùng một cách, vì cách sử dụng phần cứng sẽ phụ thuộc vào chức năng của từng loại lệnh. chúng, nói chung, chúng tôi có bốn loại hướng dẫn:
Điểm khác là các định dạng lệnh, vì một lệnh có thể được áp dụng cho một dữ liệu, vô hướng hoặc một số dữ liệu cùng một lúc, mà chúng ta gọi là SIMD. Để kết thúc và tùy thuộc vào định dạng dữ liệu, có nhiều loại ALU khác nhau để thực hiện các lệnh số học, ví dụ chúng ta có các đơn vị số nguyên và dấu phẩy động là các đơn vị phân biệt ngày nay. Khi lệnh đã được hoàn thành, kết quả được ghi vào một địa chỉ bộ nhớ cụ thể và lệnh tiếp theo được thực thi. Một số lệnh không thao tác các giá trị bộ nhớ mà là các thanh ghi nhất định. Do đó, thanh ghi bộ đếm chương trình được sửa đổi bởi các lệnh nhảy, nếu chúng ta muốn đọc hoặc ghi dữ liệu thì các thanh ghi MAR và MDR được thao tác. |