Tìm hiểu kiến trúc vi xử lý Pentium M - pdf 15

Download miễn phí Tiểu luận Tìm hiểu kiến trúc vi xử lý Pentium M



Mục lục
I,GIỚI THIỆU: 3
1, Giới thiệu chung 3
1.1, Vi xử lý là gì? 3
1.2, Các thành phần cơ bản : 3
2, Giới thiệu về vi xử lý Intel Pentium M(PM) 5
2.1, Xuất sứ 5
2.2, Ứng dụng 6
2.3, Các thông số chính 7
2.4, Các dòng vi xử lý Phần mềm : 9
II, KIẾN TRÚC CỦA VI XỬ LÝ INTEL PENTIUM M 11
1. Sơ đồ khối : 13
2, Các thành phần chính và cách hoạt động của chúng 14
2.1, Pipeline trong Pentium M 14
2.2, Bộ nhớ cache và đơn vị tìm nạp 18
2.3, Instruction Decoder và Register Renaming 19
2.4, Bộ đệm xắp xếp 20
2.5, Reservation station và đơn vị thực thi 21
2.6, Đơn vị tính toán và số học ALU 23
2.7, Đơn vị xử lý dấu phảy động FPU(Floating Point Unit) 23
2.8, Cache L1 24
2.9, Giao diện bus 25
2. Kiến trúc tập lệnh 25
2.1, MMX(MultiMedia eXtentions, Multiple Math eXtension, orMatrix Math eXtension): 26
2.2, SSE (Single SIMD Extentions): 27
2.3, SSE2: 28
3,Cơ chế dự đoán rẽ nhánh trong Phần mềm 29
3.1, Mispredition penalty: 29
3.2, Mô hình nhận biết điều kiện nhảy 29
3.3, Nhận biết lệnh nhảy và lời gọi gián tiếp: 30
III, CÁC ĐẶC TÍNH VÀ CÔNG NGHỆ MỚI 31
1, Các đặc trưng chủ yếu của Intel Pentium M” 31
2, Công nghệ SpeedStep nâng cao(Enhanced SpeedStep Technology) 33
III, KẾT LUẬN 35
1. So sánh đánh giá 35
1.1, Nhân PM(kernel) 35
2. Kết luận chung 36
 
 



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

hừa OOO(out of order execution, một mô hình được sử dụng hầu hết trong các vi xử lý hiệu năng cao để tận dụng vòng đợi lệnh) , giá trị của một thanh ghi có thể được thay thế bởi việc đặt nó trong dòng chương trình trước khi tính đúng đắn của nó được xác định, làm gián đoạn việc lấy dữ liệu của các lệnh khác. Để giải quyết xung đột này, tại giai đoạn này , thanh ghi gốc mà lệnh sử dụng được đổi thành 1 trong 40 thanh ghi bên trong mà vi kiến trúc P6 có.
ROB: tại giai đoạn này , 3 micro-ops được load vào Reorder Buffer(ROB). Nếu tất cả dữ liệu cần thiết cho việc thi hành một vi lệnh có sẵn và nếu có một vị trí tại hàng đợi vi lệnh reservation station thì một vi lệnh sẽ được chuyển đến hàng đợi này
DIS: nếu vi lệnh không được gửi đến trạm đăng ký hàng đợi(RS) thì nó đã hoàn thành tại giai đoạn này. Vi lệnh sẽ gửi nó tới đơn vị thi hành thích hợp
EX: vi lệnh được thi hành tại đơn vị thi hành lệnh thích hợp, thường mỗi vi lệnh chỉ cần một chu kỳ đồng hồ để được thi hành
RET1: kiểm tra Reorder Buffer nếu có vi lệnh nào có thể đánh dấu cờ đã thi hành
RET2: khi tất cả các vi lệnh liên quan đến lệnh x86 trước đây đã được chuyển khỏi Reorder Buffer và các lệnh x86 hiện tại đang được thi hành, các vi lệnh này được chuyển khỏi Reorder Buffer và thanh ghi x86 được cập nhật. Giai đoạn nghỉ phải được thực hiện theo thứ tự. Có thể có đến 3 vi lệnh được chuyển khỏi Reorder Buffer trong mỗi chu kỳ clock
Độ dài của pipeline có thể ước lượng được từ việc misprediction penalty. Việc đoán sai trong Phần mềm kéo dài hơn trong P2 và P3 khoảng 3-4 chu kỳ clock. Điều này chỉ ra rằng pipeline Phần mềm phải dài hơn khoảng 3-4 giai đoạn, chúng ta sẽ lần lượt tìm hiểu xem các giai đoạn này dùng để làm gì.
Cơ chế đoán rẽ nhánh trong Phần mềm phức tạp hơn các bộ xử lý trước đó, vì thế có thể nó cần tới 3 giai đoạn trong pipeline thay vì hai. Việc tìm nạp lệnh cũng được cải tiến để giới hạn 16 byte hay giới hạn dòng cache không làm chậm lệnh nhảy. Việc này có thể yêu cầu mở rộng đơn vị đọc lệnh từ 3 lên 4 giai đoạn. Stack engine mới được thực hiện gần giải mã lệnh, ít nhất một giai đoạn pipeline được dành cho stack engine và cho việc đồng bộ hóa các vi lệnh được chèn trong stack. Liệu cơ chế hợp các vi lệnh có yêu cầu thêm giai đoạn trong pipeline hay không? Số các giai đoạn từ giai đoạn ROB-read tới giai đoạn ROB-writeback có thể ược ước lượng bằng cách đo việc đọc của thanh ghi. Quá trình đo đạc chỉ ra rằng nó chỉ khoảng 3 chu kỳ clock nên có thể kết luận là không có giai đoạn bổ sung nào dành cho việc tách các vi lệnh trước khi đưa chúng vào xử lý. Hai phần của một vi lệnh hợp cùng chia sẻ một lối vào ROB. Các giai đoạn RAT, ROB-read và RS đều đã được chỉnh sửa để xử lý hợp nhất 3 vi lệnh với 3 đầu vào phụ thuộc. Có thể một giai đoạn bổ sung của pipeline được thêm vào RAT vì khối lượng công việc trong giai đoạn này tăng lên. Phần mềm còn có nhiều đặc tính tiết kiệm năng lượng bằng cách tắt các phần trong bus trong, các đơn vị thực thi, … khi chúng không được sử dụng đến. Chúng ta không biết liệu các đặc tính này liệu có yêu cầu thêm giai đoạn trong pipeline hay không, nhưng nó mang lại ảnh hưởng tích cực trong việc chạy với tần số tối đa mà không làm nóng chip. Các cơ chế hợp lệnh, stack engine và đoán rẽ nhánh phức tạp không những giúp giảm hao phí điện năng mà còn giúp tăng tốc độ thực thi.
Nói tóm lại pipeline của Phần mềm có nhiều hơn pipeline PPro khoảng 3 đến 4 giai đoạn, bao gồm một giai đoạn cho đoán rẽ nhánh, một cho việc tìm nạp lệnh, và một cho stack engine
2.1.2, Hiện tượng nút cổ chai
Đây là điểm quan trọng cần chú ý, khi tối ưu hóa một mẩu của đoạn mã, để tìm ra nhân tố điều khiển tốc độ thực thi.
Truy cập bộ nhớ:Nếu chương trình đang làm việc với một lượng dữ liệu rất lớn, hay nếu dữ liệu được đặt rải rác trong bộ nhớ sẽ dẫn đến tình trạng cache không tìm đúng được dữ liệu đó. Việc truy cập vào dữ liệu không có trong cache dẫn đến việc tốn thời gian. Các cache được tổ chức như các dòng được căn độ dài 64 byte mỗi dòng, neesy một byte trong số 64 byte được truy ập thì tất cả 64 byte sẽ được tải về cache L1. Vì vậy để tránh tình trạng miss của cache, nên đặt các dữ liệu có liên quan ở cùng một chỗ. Phần mềm có 6 cổng ghi, việc có nhiều hơn 6 thao tác ghi liền lúc cũng khiến cho quá trình xử lý bị chậm lại vài chu kỳ clock.
Tìm nạp và giải mã lệnh: Các lệnh nên được tổ chức để sao cho không có quá 6 vi lệnh được sinh ra sau giải mã, tránh các lệnh có nhiều hơn 1 tiền tố, lệnh 26bit với toán hạng tức thì trong chế độ 32 bit
Hợp các vi lệnh: Hợp các vi lệnh và stack engine cho phép các vi lệnh chứa nhiều thông tin hơn. Nó có thể là một lợi thế nế bộ giải mã hay giới hạn 3 vi lệnh/chu lỳ clock là một nút cổ chai.
Các cổng thực thi: Các vi lệnh hợp sau khi được tách ra phải được phân bổ đều về 5 cổng. Cổng 0 và một dễ trở thành một nút cổ chai trong một đoạn mã có một vài thao tác với bộ nhớ. Các vi lệnh stack đồng bộ hóa đi đến cổng 0 hay 1. Số các lệnh kiểu này có thể được hạn chế bằng cách thay lệnh MOV liên quan đến con trỏ stack bằng các lệnh PUSH và POP
đoán rẽ nhánh: Bộ đệm rẽ nhánh đích (BTB) trong Phần mềm nhỏ hơn trong các bộ xử lý khác vì vậy nên tránh các lệnh nhảy không cần thiết để hạn chế tải trên BTB.
2.2, Bộ nhớ cache và đơn vị tìm nạp
hình II.2.2-a: bộ nhớ cache và đơn vị tìm nạp
Dung lượng bộ nhớ cache L2 có thể là 1MB(dòng Banias) hay 2MB(dòng Dothan), trong khi vi xử lý có hai bộ nhớ cache L1, một có dung lượng 32KB để chứa các lệnh và phần còn lại chứa dữ liệu cũng với dung lượng 32KB. Đơn vị tìm nạp lệnh được chia làm 3 giai đoạn. Đơn vị tìm nạp tải một dòng(32 byte) vào trong bộ đệm dòng lệnh(ISB), sau đó Instruction Length Decoder nhận dạng ranh giới các lệnh trong vòng 16 byte. Các lệnh x86 không có độ dài cố định , giai đoạn này đánh dấu nơi lệnh bắt đầu và kết thúc trong vòng nạp 128 bit. Nếu có bất kỳ lệnh rẽ nhánh nào trong số các bit này, địa chỉ của nó sẽ được lưu lại tại Branch Target Buffer(BTB) để CPU có thể sử dụng chúng trong các mạch đoán rẽ nhánh. BTB có 512 lối vào. Sau đó giai đoạn Decoder Alignment đánh dấu vị trí của đơn vị giải mã lệnh mà mỗi lệnh được gửi tới.
2.3, Instruction Decoder và Register Renaming
Từ khi giới thiệu kiến trúc P6 với bộ xử lý Pentium Pro sử dụng kiến trúc CISC/RISC, bộ xử lý phải chấp nhận các lệnh CISC, còn được biết đến như là các lệnh của x86, cho đến nay, tất cả các phần mềm được viết đều sử dụng loại lệnh này. Một CPU chỉ có RISC không thể sử dụng trong PC bởi nó không chạy được các phần mềm ngày nay như Window hay Office. Vì vậy giải pháp được sử dụng cho tất cả các bộ xử lý trên thị trường ngày nay từ Intel tới AMD là sử dụng một bộ giải mã CISC/RISC. Trong CPU, RISC được xử lý như lệnh, nhưng phía trước kết thúc của nó chỉ chấp nhận các lệnh CISC x86
Các lệnh CISC x86 được gọi là lệnh như các lệnh RISC bên trong được gọi là vi lệnh. T...
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status