b. Tương lai của công nghệ SO
2.6.6 Reservation Station và các khối thực th
Như chúng ta đã đề cập từ trước, Pentium M sử dụng các chỉ lệnh được nối (thường là hai chỉ lệnh được nối với nhau) từ khối giải mã đến vị trí các cổng gửi đi được đặt trên Reservation Station. Reservation Station gửi đi các chỉ lệnh giải mã một cách riêng biệt (đã tách ghép đôi).
Pentium M có 5 cổng như vậy, các cổng này được đánh số từ 0 đến 4 trên Reservation Station. Mỗi cổng được kết nối đến một hoặc nhiều khối thực thi, các ta có thể xem trên hình 2.6.6.
Hình 2.6.6: Reservation Station và các khối thực thi Dưới đây là giải thích vắn tắt về mỗi khối thực thi có trên CPU này:
• IEU: Instruction Execution Unit – Khối thực thi chỉ lệnh là nơi các chỉ lệnh thường được thực thi. Cũng được biết đến trong các sách giới thiệu về cấu trúc máy tính với tên ALU (Khối logic số học -
Arithmetic and Logic Unit). Các chỉ lệnh thông thường này cũng được hiểu là các chỉ lệnh “integer”.
• FPU: Floating Point Unit là nơi các chỉ lệnh toán học phức tạp được thực thi. Trước kia, khối này cũng có tên gọi là “math co-processor” – khối đồng xử lý toán học.
• SIMD: là nơi các chỉ lệnh SIMD được thực thi, nghĩa là MMX, SSE và SSE2.
• WIRE: Các hàm phức tạp.
• JEU: Jump Execution Unit xử lý các nhánh và cũng được biết đến là Branch Unit.
• Shuffle: Khối này thực thi một loại chỉ lệnh của SSE có tên gọi là “shuffle”.
• PFADD: Thực thi một chỉ lệnh SSE có tên gọi PFADD (Packed FP Add) và cả các chỉ lệnh COMPARE, SUBTRACT, MIN/MAX và CONVERT. Khối này được cung cấp riêng, chính vì vậy nó có thể bắt đầu việc thực thi một chỉ lệnh giải mã mới mỗi chu kỳ clock dù là nó
không hoàn tất được sự thực thi của chỉ lệnh đã giải mã trước. Khối này có một độ trễ ba chu kỳ clock, nghĩa là nó sẽ giữ chậm 3 chu kỳ clock đối với mỗi chỉ lệnh đã được xử lý.
• Reciprocal Estimates: Thực thi hai chỉ lệnh SSE, một được gọi là RCP (Reciprocal.Estimate) và một gọi là RSQRT (Reciprocal Square Root Estimate).
• Load: Khối này dùng để xử lý các lệnh hỏi dữ liệu để được đọc từ bộ nhớ RAM.
• Store Address: Khối xử lý các chỉ lệnh hỏi dữ liệu để được ghi tại bộ nhớ RAM. Khối này cũng có tên gọi là AGU, Address Generator Unit. Kiểu chỉ lệnh này sử dụng cả hai khối Store Address và Store Data tại cùng một thời điểm.
• Store Data: Xử lý các chỉ lệnh hỏi dữ liệu để ghi vào bộ nhơ RAM. Loại chỉ lệnh này sử dụng cả hai khối Store Address và Store Data tại cùng một thời điểm.
Chỉ lệnh phức tạp có thể mất đến vài chu kỳ clock để được xử lý. Chúng ta hãy lấy một ví dụ của cổng 0, nơi mà khối floating point unit (FPU) có mặt ở đó. Trong khi khối này đang xử lý một chỉ lệnh rất phức tạp, mất đến vài clock để thực thi thì cổng 0 sẽ không ngừng hoạt động: nó luôn luôn gửi các chỉ lệnh đơn giản đến IEU mặc dù khi đó FPU lại đang rất bận. Chính vì vậy, mặc dù tốc độ gửi đi lớn nhất là 5 chỉ lệnh giải mã trên mỗi một chu kỳ clock, nhưng thực tế CPU có thể tăng lên đến 12 chỉ lệnh giải mã tại cùng một thời điểm. Các chỉ lệnh yêu cầu CPU để có thể đọc dữ liệu được lưu trữ tại địa chỉ RAM đã cho, Khối lưu trữ địa chỉ (Store Address Unit) và lưu trữ dữ liệu (Store Data Unit) được sử dụng tại cùng một thời điểm, một dùng cho định địa chỉ và một dùng cho đọc dữ liệu. Đây là lý do tại sao cổng 0 và cổng 1 có nhiều khối thực thi. Nếu chú ý một chút thì sẽ thấy được Intel đã đặt trên cùng một cổng cả khối
“nhanh” và ít nhất cùng với một khối “chậm” (phức tạp). Chính vì vậy, trong khi khối phức tạp đang bận xử lý dữ liệu thì các khối khác có thể vẫn nhận các chỉ lệnh đã giải mã từ cổng gửi đi tương ứng của nó. Ý tưởng này là để giữ tất cả các khối thực thi luôn làm việc.
Sau mỗi một chỉ lệnh đã giải mã được thực thi, nó lại trở về bộ đệm Reorder Buffer, đây chính là nơi cờ của nó được thiết lập chế độ thực thi. Sau đó tại tầng cuối (Retirement Stage), các chỉ lệnh đã giải mã có cờ “thực thi” của chúng sẽ được xóa khỏi bộ đệm Reorder Buffer theo thứ tự ban đầu của nó (nghĩa là theo thứ tự mà chúng đã được giải mã) và sau đó các thanh ghi x86 được cập nhật (ngược lại bước của tầng đặt lại tên của thanh ghi). Có thể có đến 3 chỉ lệnh giải mã được xóa bỏ từ bộ đệm Reorder Buffer trên mỗi một chu kỳ clock. Sau đó, mỗi chỉ lệnh này được
thực thi hoàn toàn.
2.6.7 Công nghệ SpeedStep nâng cao
Công nghệ SpeedStep đã được tạo ra để tăng thời gian sống của pin và nó đã được giới thiệu đầu tiên trong các bộ vi xử lý của Pentium III, M. Phiên bản đầu tiên của công nghệ này cho phép các CPU có thể chuyển giữa hai tần số clock một cách động. Chế độ tần số thấp (LFM), chế độ cho phép thời lượng sống của pin lớn nhất, và chế độ tần số cao (HFM), chế độ cho phép chạy CPU tại tốc độ lớn nhất. CPU có hai tỉ lệ nhân clock. Tỉ lệnh LFM là tỉ lệnh factory-lock và ta không thể thay đổi được tỉ lệ này.
Pentium M đã giới thiệu công nghệ SpeedStep nâng cao (Enhanced
SpeedStep Technology), công nghệ này là công nghệ có một vài cấu hình clock và điện áp khác giữa LFM (cố định là 600 MHz) và HFM.
Một ví dụ để các ta có thể dễ hiểu hơn trong trường hợp này, bảng cấu hình clock và điện áp cho 1.6 GHz Pentium M dựa trên công nghệ 130nm: Điện áp Clock 1.484 V 1.6 GHz 1.42 V 1.4 GHz 1.276 V 1.2 GHz 1.164 V 1 GHz 1.036 V 800 MHz 0.956 V 600 MHz
Mỗi một mô hình của Pentium M lại có một bảng điện áp/clock của riêng nó. Cần phải chú ý một điều rằng khi không cần tốn nhiều năng lương đối với laptop thì không những chỉ giảm tốc độ clock mà còn giảm cả điện áp, việc giảm điện áp sẽ giúp giảm tiêu tốn rất nhiều pin máy.
Công nghệ Enhanced SpeedStep làm việc bằng cách kiểm tra các thanh ghi model cụ thể MSR (Model Specific Registers) của CPU, thành phần này được gọi là Performance Counter. Với thông tin thu nhận từ bộ phận này, CPU có thể giảm hoặc tăng clock/điện áp của nó phụ thuộc vào khả năng sử dụng của CPU. Đơn giản nếu ta tăng yêu cầu sử dụng CPU thì nó sẽ tăng clock/điện áp còn nếu ta giảm hiệu suất sử dụng CPU thì nó sẽ giảm clock/điện áp.
Enhanced SpeedStep chỉ là một trong những nâng cao đã được thực hiện với kiến trúc siêu nhỏ Pentium M nhằm mục đích tăng thời lượng sử dụng của pin.