1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II

31 986 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 3,08 MB

Nội dung

Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Khoa Công Nghệ Thông Tin ---------- BÁO CÁO BÀI TẬP LỚN KĨ THUẬT VI XỬ Chủ đề : Tìm hiểu kiến trúc VXL AMD Athlon II Giảng viên: TS.Hoàng Xuân Dậu Lớp: D11CN7 – Nhóm 13 Tên thành viên: 1. Nguyễn Đăng Khiêm 2. Nguyễn Ngọc Kiên 3. Trần Kiên 4. Hoa Ngọc Lân 5. Trần Tuấn Linh 6. Lê Quang Long 7. Nguyễn Tiến Mạnh 8. Nguyễn Hoàng Nam 9. Nguyễn Ngọc Nguyên 10.Đặng Thị Phượng 11. Nguyễn Thị Phượng Hà nội, 9-10-2013 A. Lời mở đầu Báo cáo tiểu luận Vi xử AMD Athlon II đã cố gắng tổng hợp và phân tích các vấn đề liên quan một cách tốt nhất. Tuy vậy, sẽ không tránh khỏi những thiếu sót trong quá trình thu thập và trình bày. Chúng em mong sẽ nhận được sự góp ý tốt nhất để nhóm có thể hoàn thiện và trưởng thành hơn. Chúng em xin chân thành cảm ơn! B. Nội dung I. Giới thiệu 1. Tập đoàn AMD và các dòng sản phẩm AMD hay Advanced Micro Devices là nhà sản xuất linh kiện tích hợp bán dẫn đa quốc gia có trụ sở tại Sunnyvale, California, Hoa Kỳ. AMD là nhà sản xuất bộ vi xử (CPU) x86 lớn thứ hai thế giới sau Intel và là một trong những nhà sản xuất bộ nhớ flash hàng đầu trên thế giới; ngoài ra AMD còn sản xuất chipset và các linh kiện điện tử bán dẫn khác. AMD thành lập năm 1969 từ một nhóm kỹ sư thành viên tách ra từ Fairchild Semiconductor; ngày nay AMD trở thành một công ty đa quốc gia với hàng chục ngàn nhân viên tại châu Âu, Nhật Bản, Hoa Kỳ . AMD nổi tiếng với dòng sản phẩm Phenom, Sempron cho thị trường cao cấp, Athlon cho thị trường trung cấp và Duron cho thị trường cấp thấp giá rẻ. Một số linh kiện của các thế hệ đời trước của máy tính Apple cũng do AMD cung cấp. Thế hệ vi xử mới nhất của hãng hiện nay hỗ trợ tập lệnh mở rộng AMD64 cho điện toán 64 bit là AMD Athlon 64 cho thị trường máy tính để bàn và AMD Opteron cho thị trường máy chủ và trạm làm việc. AMD đem đến các sản phẩm và công nghệ máy tính với các giải pháp an toàn, sức mạnh, độ tin cậy và sự nhanh nhẹn. “Enjoy a better experience gaming, cloud computing or editing home videos with the best AMD product for you” - Thưởng thức một trải nghiệm chơi game tốt hơn, điện toán đám mây hay chỉnh sửa video gia đình với sản phẩm AMD tốt nhất cho bạn. 2. VXL Athlon II 2.1.VXL Athlon II Athlon II là dòng VXL đa lõi dành cho máy tính để bàn, được AMD bắt đầu giới thiệu vào nửa cuối năm 2009, dựa trên bộ vi kiến trúc AMD K10 có nguồn gốc từ các dòng Phenom II. Tuy nhiên, không giống như Phenom II, nó không chứa bộ nhớ cache L3, mà chỉ dừng lại ở 2 mức cache L1 và L2. Như vậy, có thể coi AMD Athlon II là một phiên bản rút gọn của dòng Phenom II, hướng tới đối tượng tầm trung. Thời gian sản xuất Từ 2009 đến hiện tại Thiết kế AMD Sản xuất tại GlobalFoundries Xung nhịp CPU 1,6 GHz đến 3,5 GHz Tốc độ HyperTransport 1,8 GHz đến 2 GHz Kích thước 45 nm đến 32 nm Tập lệnh hỗ trợ X86 – AMD64 Vi kiến trúc AMD K10 Số lõi 2-4 lõi Chân cắm Socket AM3 Socket AM2 + Dòng Athlon II không tích hợp card đồ họa vào nhân CPU như dòng APU của AMD, nhằm giảm giá thành và phục vụ những người cần card đồ họa rời, giá rẻ. VXL AMD Athon II là sự cân đối hợp giữa giá thành và hiệu năng, đảm bảo đem đến những trải nghiệm đầy đủ cho người dùng nhưng vẫn rất tiết kiệm. 2.2.Các bộ VXL thuộc dòng Athlon II AMD Athlon II có tất cả 6 dòng từ thấp đến cao cho các dòng Regor, Rana, Propus và LIano 2.2.1. AMD Athlon II x2 series Đây là dòng sản phẩm đạt danh số bán hàng cao nhất của AMD, thuộc phân khúc bình dân, hướng đến nhu cầu giải trí giá thành thấp, film HD, game online và tác vụ văn phòng, AMD Athlon II x2 đã làm rất tốt công việc của mình. o Tên mã: Regor o Xử lí lõi kép: 2 lõi AMD K10 o L1 cache: 64MB + 64MB (data+Intructions) mỗi lõi o L2 cache: 1024KB mỗi lõi o Tập lệnh hỗ trợ: MMX, Extended 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, Cool'n'Quiet, NX bit, AMD-V o Memory support: DDR2-1066 (Socket AM2+) và DDR3-1333 (Socket AM3) o Tốc độ HyperTransport: 2GHz o Xung nhịp CPU: 1,6-3,6 GHz o Công nghệ sản xuất: 45 nm ( SOI ), bán dẫn o Kích thước: 117,5 mm ² o Công suất tiêu thụ (TDP): 25-65W o Phát hành: 6/2009 o Đại diện: Athlon II X2 210e - 270 2.2.2. AMD Athlon II x3 series Những VXL này khá mạnh mẽ, chạy rất tốt và đáp ứng rất tốt nhu cầu của đại đa số người dùng. Game và đồ họa cũng rất ổn. AMD đã tạo ra một phân khúc người dùng mới bằng bộ VXL này. o Tên mã: Rana o Xử lí 3 lõi: 4 lõi AMD K10, trong đó 1 lõi bị vô hiệu hóa o L1 cache: 64MB + 64MB (data+Intructions) mỗi lõi o L2 cache: 512KB mỗi lõi o Tập lệnh hỗ trợ: MMX, Extended 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, Cool'n'Quiet, NX bit, AMD-V o Memory support: DDR2-1066 (Socket AM2+) và DDR3-1333 (Socket AM3) o Tốc độ HyperTransport: 2GHz o Xung nhịp CPU: 2,2 – 3,4 GHz o Công nghệ sản xuất: 45 nm ( SOI ), bán dẫn o Các Kích thước: 169 mm ² o Công suất tiêu thụ: 45W hoặc 95W o Phát hành: 10/2009 o Đại diện: Athlon II X3 400e – 460 2.2.3. AMD Athlon II x4 Series Bộ VXL tầm trung đa nhân giá rẻ, đó là mục đích chính AMD giới thiệu bộ VXL này đến người dùng. Dựa trên các nhân Deneb đã bỏ bớt Cache L3, hiệu năng giảm không đáng kể và khá mạnh mẽ, đa tác vụ tốt và hiệu năng cao, giá thành hợp lý. Những BXL này đã đáp ứng nhu cầu rất nhiều người dùng muốn hướng đến hiệu năng/giá cả tốt. Về hiệu năng CPU thì dòng này dưới Core i3 2100 một chút, người dùng đã mua hoàn toàn có thể yên tâm sử dụng tiếp hiệu năng vẫn rất ổn định. Và AMD đã dừng dòng này. o Tên mã: Propus o Xử lí 4 lõi: 4 lõi AMD K10 o L1 cache: 64MB + 64MB (data+Intructions) mỗi lõi o L2 cache: 512KB mỗi lõi o Tập lệnh hỗ trợ: MMX, Extended 3DNow!, SSE, SSE2, SSE3, SSE4a, AMD64, Cool'n'Quiet, NX bit, AMD-V o Memory support: DDR2-1066 (Socket AM2+) và DDR3-1333 (Socket AM3) o Tốc độ HyperTransport: 2 GHz o Xung nhịp CPU: 2,2 – 3,1 GHz o Công nghệ sản xuất: 45 nm ( SOI ), bán dẫn o Các Kích thước: 169 mm ² o Công suất tiêu thụ: 45W hoặc 95W o Phát hành: 10/2009 o Đại diện: Athlon II X4 600E - 645 2.2.4. AMD Athlon II x4 (Llano Core) Công nghệ 32nm mang đến cho AMD nhiều cải tiến, nhưng quy trình sản xuất nhân đồ họa trên quy trình mới tích hợp vào nhân CPU đã gặp những khó khăn nhất định. Hiệu xuất không cao nên AMD đã quyết định dựa vào những nhân lỗi card đồ họa, tung ra bộ VXL Athlon II x4 mới. Hướng đến người dùng muốn dùng 1 card đồ họa rời với giá thành thấp, hiệu năng tốt, AMD Athlon II x4 đã phải cạnh tranh với chính APU của AMD, tuy nhiên ở thị trường nước ngoài dòng này cũng đã có những thành công. o Tên mã: Llano o Tập lệnh hỗ trợ: MMX, SSE, SSE2, SSE3, SSE4a, Extended 3DNow!, NX bit, AMD64, Cool'n'Quiet, AMD-V, Turbo Core o Memory support: DDR3-1600 hoặc DDR-1866 tùy dòng (Socket FM1) o Công nghệ sản xuất: 32 nm ( SOI ), bán dẫn o Công suất tiêu thụ ( TDP ): 100 W o Ngày phát hành: tháng 9 năm 2011 o Xung nhịp CPU: 2,6-3,0 GHz II. Kiến trúc VXL Athlon II 1. Sơ đồ khối và các bộ phận chính 1.1.Giới thiệu về AMD K10 AMD đã cho ra mắt bộ xử đầu tiên dựa trên công nghệ này là chip máy chủ Opteron, dựa trên nhân có mật danh là Barcelona năm 2007.  K10 là kiến trúc mà các vi xử lí của AMD đang sử dụng như: Athlon II, Phenom và Opteron dựa trên cơ sở nhiều nhân “Barcelona”. Trên thực tế nhiều người nhầm kiến trúc K10 với “Barcelona”, trong khi Barcelona chỉ là một trong những CPU sẽ sử dụng kiến trúc này  Kiến trúc K10 được dựa trêm (AMD64) K8 với một số cải tiến. Một số điểm được nâng cao: + Khối dữ liệu được nạp có kích thước 32byte (256 bit) trên mỗi chu kì đồng hồ từ cache L1 – đây là CPU kép dựa trên kiến trúc K8 có thể nạp trên mỗi chu kì đồng hồ. CPU Intel dựa trên kiến trúc Core, như Core 2 Duo, cũng nạp 32byte trên mỗi chu kỳ đồng hồ. + Sử dụng đúng 128 bit trong đường truyền dữ liệu. Trong các CPU trước được xây dựng trên kiến trúc K8 đường truyền dữ liệu chỉ là 64 bit. Đây là một vấn đề cho tập lênh SSE, các thanh ghi của SSE đã được gọi là MMX khi có chiều dài 128 bit. vậy khi thực hiện một lệnh mà xử lí dữ liệu 128 bit, hoạt động này phải được chia ra thành hai hoạt động 64 bit. Đường dữ liệu 128 bit mới làm cho vi kiến trúc K10 xử lí nhanh hơn các lệnh SSE thao tác dữ liệu 128 bit so với K8. Bộ vi xử lí Intel dựa trên kiến trúc Core, cũng có đường dữ liệu 128 bit, trong khi bộ VXL Intel dựa trên kiến trúc Netburst (Pentium 4 và Pentium D) có 64 bit. AMD gọi tính năng mới này là “AMD Wide Floating Point Accelerator”. 1.2.Chi tiết mô hình, các thành phần và hoạt động của kiến trúc K10 1.2.1. Sơ đồ khối K10 AMD Athlon II sử dụng vi kiến trúc K10, tuy nhiên bị lược bỏ đi bộ phận L3 Cache Hình 1. K10 cải tiến so với K8 Sơ đồ khối vi kiến trúc AMD K10 Thành phần: 1. Instructions Fetch 2. Brach Prediction 3. Decoding 4. Interger Execution Unit 5. Floating Point Unit 6. Bộ nhớ trong 7. Prefetch 1.2.2. Các bộ phận chính  Tìm nạp dòng lệnh – Instructions Fetch Bộ xử bắt đầu quá trình mã hoá bằng việc tìm nạp dòng lệnh từ cache lệnh L1 và giải mã chúng.Độ dài của lệnh x86 thường không ổn định nên rất khó xác định giới hạn của chúng trước khi quá trình giải mã bắt đầu. Để đảm bảo rằng việc xác định độ dài lệnh không ảnh hưởng đến tốc độ giải mã, các bộ xử K8/K10 sẽ giải mã dòng lệnh trong khi chúng đang được nhập vào cache L1. Thông tin về quá trình giải mã được chứa trong những vùng đặc biệt bên trong cache L1 (3bit thông tin trước khi giải mã cho một byte lệnh). Bằng cách giải mã trước (predecoding) trong khi đang tải lệnh vào cache, phạm vi những lệnh có thể được xác định trong quá trình giải mã, cho phép đảm bảo tốc độ giải mã ổn định không phụ thuộc vào dạng thức và độ dài của lệnh. Các bộ xử tải các khối dòng lệnh từ cache và lấy ra các dòng lệnh mà nó cần gửi cho giải mã. Một chiếc CPU sử dụng công nghệ vi cấu trúc K10 sẽ tìm nạp lệnh từ cache L1 theo các khối 32-byte, còn các bộ xử K8 và Core 2 thì nạp lệnh trong các khối 16-byte. Khi đó, tốc độ nạp lệnh đủ nhanh để bộ xử K8 và Core 2 có thể gửi được ba dòng lệnh với tốc độ giải mã trung bình là 5 byte mỗi xung nhịp. Tuy nhiên, một số dòng lệnh x86 có thể dài 16 byte và theo một số thuật toán, độ dài của một số dòng lệnh cạnh đó có thể lớn hơn 5 byte. Do đó, không thể giải mã ba dòng lệnh trong một xung nhịp. (Hình 1). Hình1: Một số dòng lệnh dài liền nhau làm hạn chế tốc độ giải mã trong quá trình tìm nạp dòng lệnh trong khối 16 byte Cụ thể, SSE2 – một dòng lệnh đơn giản với những phép toán dạng thanh ghi-thanh ghi (ví dụ, movapd xmm0, xmm1 ) – dài 4 byte. Tuy nhiên, nếu dòng lệnh tạo lập bộ nhớ xác định bằng cách sử dụng thanh ghi cơ sở và Offset trống như movapd xmm0, [eax+16] , thì độ dài của nó tăng lên 6 đến 9 byte tùy thuộc vào khoảng Offset . Nếu có các thanh ghi bổ sung trong chế độ 64 bit, vẫn có một REX-prefix một byte thêm vào mã dòng lệnh. Khi đó, độ dài của dòng lệnh SSE2 trong chế độ 64 bit có thể tăng lên thành 7-10 byte. Các lệnh SSE1 thì ngắn hơn 1 byte nếu như đó là lệnh vector (nói cách khác là làm việc với 4 trị số 32 bit). Nhưng nếu nó là một dòng lệnh SSE1 vô hướng (chỉ có một toán hạng), chiều dài của nó cũng có thể tăng đến 7-10 byte trong cùng điều kiện. Trong trường hợp này, việc tìm nạp các khối 16 byte không phải là giới hạn của bộ xử K8, bởi nó không thể giải mã dòng lệnh vector quá 2 lần mỗi xung nhịp. Tuy nhiên, đối với dòng lệnh K10, một xung nhịp 16 byte là giới hạn cuối cùng, thế việc tăng kích thước khối lên 32 byte là việc rất cần thiết. Hơn nữa, các bộ xử Core 2 tìm nạp các khối lệnh 16- byte giống như bộ xử K8, đó là do tại sao chúng có thể giải mã 4 dòng lệnh trong mỗi xung nhịp nếu như độ dài trung bình của dòng lệnh không vượt quá 4 byte. Nếu không, bộ phận giải mã sẽ không thể xử 4, thậm chí là 3 dòng lệnh mỗi xung nhịp. Tuy nhiên, các bộ xử Core 2 lại có một bộ nhớ đệm trong 64 byte đặc biệt chứa các khối 16 byte được xử cuối cùng. Các dòng lệnh được tìm nạp từ bộ nhớ đệm này với tốc độ 32 byte mỗi xung nhịp. Bộ nhớ đệm này cũng giúp thời gian cache ngắn hơn, vượt giới hạn tốc độ thông thường và có thể tiết kiệm đến 1 xung nhịp mỗi lần. Mặc dù mỗi chu kì không thể chứa quá 18 dòng lệnh, 4 nhánh điều kiện và không chứa được một dòng lệnh RET nào cả. .  Dự đoán rẽ nhánh – Brach Prediction Nếu như chuỗi lệnh móc xích tới nhiều nhánh, CPU sẽ cố dự đoán xa hơn hướng của chương trình để tránh việc đứt đoạn trong quá trình giải mã và chọn lựa giải mã nhánh chắc chắn nhất. Trong trường hợp này, các thuật toán dự đoán nhánh sẽ được sử dụng để tìm nạp khối lệnh tiếp theo. Các bộ xử K8 sử dụng thuật toán thích ứng bậc hai để dự đoán nhánh. Thuật toán này xem xét quá trình dự đoán không chỉ trong dòng lệnh hiện thời, mà cả 8 dòng lệnh trước đó. Nhược điểm chính của các thuật toán dự đoán nhánh K8 là chúng không có khả năng dự đoán nhánh gián tiếp có địa chỉ không cố định. Nhánh gián tiếp là các nhánh sử dụng một con trỏ (Pointer) được tính toán động trong suốt quá trình xử mã chương trình. Các nhánh động này thường được thêm vào các lệnh Case trong chương trình dịch và được sử dụng trong suốt quá trình để gọi hàm địa chỉ vàhàm ảo trong việc lập trình hướng tới đối tượng. Các bộ xử K8 thường cố sử dụng địa chỉ nhánh cuối cùng để tìm nạp một nhóm mã. Nếu như địa chỉ đó đã thay đổi thì Pipe giải mã sẽ hoàn toàn trống rỗng. Còn nếu địa chỉ nhánh thường xuyên thay đổi thì hệ điều hành sẽ liên tục mắc lỗi. Việc dự đoán địa chỉ không cố định đối với nhánh gián tiếp được sử dụng lần đầu tiên trong bộ xử Pentium M. Do trong CPU K8 không có những thuật toán như vậy nên những CPU này cũng hoạt động kém hiệu quả hơn trong các mã định hướng đối tượng. K10 có những thuật toán dự đoán nhánh được cải tiến như sau: • Nó có những thuật toán dành cho địa chỉ nhánh không cố định. Thuật toán này sử dụng một bảng gồm 512 yếu tố. • Thanh ghi sự kiện tăng từ 8 lên 12 bit. Nó có nhiệm vụ xác định tính kế tiếp cho những lệnh rẽ nhánh trước đó . • Kích cỡ Ngăn xếp (Stack) địa chỉ trả về tăng từ 12 lên 24 vị trí. Stack này dùng để nhanh chóng thu nhận các địa chỉ trả về để việc tìm nạp diễn ra liên tục và không cần phải đợi lệnh RET nhận địa chỉ trả về Stack nữa. Các cải tiến trên có thể giúp K10 xử chương trình viết bằng mã định hướng đối tượng bậc cao nhanh chóng hơn. Nhưng rất khó để tính toán một cách khách quan hiệu quả của việc dự đoán nhánh 10K. Theo một số dữ liệu, hiệu quả của chúng có thể thấp hơn bộ xử của Intel trong một số trường hợp.  Giải mã - Decoding Các khối lệnh nhận được từ cache lệnh được sao chép vào bộ nhớ đệm tạm thời Predecode/Pick , nơi các dòng lệnh được chọn ra từ các khối, định dạng, và chuyển vào các bộ phận ( Pipe ) giải mã tương ứng. Các lệnh đơn giản có thể được giải mã chỉ bằng một hoặc hai vi lệnh ( Micro-Operation hay được ghi Micro-Ops ) sẽ được gửi đến một bộ phận giải mã đơn giản có tên DirectPath . Còn các dòng lệnh phức tạp hơn, yêu cầu từ 3 phép toán trở lên, sẽ được gửi vào bộ phận giải mã vi chương trình được gọi là VectorPath . Bộ phận giải mã Cứ mỗi xung nhịp, có tối đa 3 Macro-Operation (MOP) được ra khỏi bộ phận giải mã. Trong mỗi xung nhịp, bộ phận giải mã DirectPath có thể xử 3 lệnh 1-MOP đơn giản hoặc một lệnh 2-MOP và một lệnh 1- MOP, hoặc 1.5 lệnh 2-MOP (ba lệnh 2 MOP trong hai xung nhịp). Nhưng việc giải mã các lệnh phức tạp phải cần đến hơn 3 MOP, đó chính là do tại sao phải cần đến vài xung nhịp mới giải mã đầy đủ được chúng. Để tránh xung đột khi rời Pipe giải mã , K8 và K10 những lệnh đơn giản và phức tạp có thể được gửi liên tục để giải mã . Các MOP gồm hai vi lệnh ( Micro-Ops ) : một phép tính số nguyên hay một phép tính số học dấu phẩy động và một yêu cầu địa chỉ bộ nhớ. Các vi lệnh được lấy ra từ các MOP bằng một bộ phận phân phát ( Scheduler ) , sau đó chúng được gửi để thực hiện một cách độc lập . Các MOP rời khỏi bộ giải mã trong một xung nhịp lại được kết hợp vào các nhóm ba, đôi khi là hai, hoặc thậm chí chỉ có 1 MOP bởi các lệnh DirectPath và VectorPath hay các khoảng thời gian trễ khác nhau trong việc chọn lệnh để giải mã. Một nhóm không hoàn thiện như vậy cần phải bổ sung thêm các MOP rỗng để đủ 3 MOP, sau đó sẽ được chuyển đi xử lý. Các lệnh vector SSE, SSE2 và SSE3 trong bộ xử K8 được chia làm các cặp MOP chuyên xử riêng rẽ nửa trên và nửa dưới 64 bit trong thanh ghi SSE 128 bit bằng thiết bị 64 bit. Điều này làm thời gian hoàn thành quá trình giải mã tăng lên gấp đôi, và giảm số dòng lệnh chờ xuống 1 nửa. Nhờ FPU 128 bit trong các bộ xử K10, không cần phải chia các lệnh vector SSE thành 2 MOP nữa. Phần lớn các dòng lệnh SSE mà K8 sử dụng để giải mã như DirectPath Double đều đã được giải mã trong K10 như DirectPath Single trong 1 MOP. Hơn nữa, một số lệnh SSE thường được giải mã bằng bộ phận giải mã VectorPath của K8, giờ đã có thể giải mã trong K10 với bộ giải mã đơn giản DirectPath và ít MOP hơn: chỉ có 1 hoặc 2 MOP tuỳ theo phép toán. Việc giải mã lệnh stack cũng đã được đơn giản hoá. Phần lớn các lệnh stack thường được dùng trong hàm CALL-RET và PUSH-POP giờ đây đều có thể được xử bởi một bộ phận giải mã đơn giản với 1 MOP. Không chỉ có vậy, phương pháp Sideband Stack Optimizer đặc biệt đã chuyển hoá các lệnh này thành một chuỗi các vi lệnh mà có thể thực hiện song sông với nhau . Sideband Stack Optimizer Các bộ phận giải mã trong các bộ xử K10 kiểu mới có một khối đặc biệt có tên Sideband Stack Optimizer. Nguyên tắc hoạt động của nó cũng tương tự như Stack Pointer Tracker trong bộ xử Core. Vậy tại sao chúng ta cần đến nó? Hệ thống x86 sử dụng lệnh CALL, RET, PUSH và POP để lập hàm, xoá hàm, chuyển tham số và giữ lại những nội dung liên quan tới những thanh ghi. Tất cả những lệnh này sử dụng thanh ghi ESP để gián tiếp xác định giá trị Stack-Pointer hiện thời. Khi bạn sử dụng một hàm trong bộ xử K8, bạn có thể thực hiện quá trình xử lệnh bằng cách thiết lập quá trình giải mã như một chuỗi các phép tính đơn giản. Lệnh Phép tính tương ứng // hàm (x, y, z); push X push Y push Z call func sub esp, 4; mov [esp], X sub esp, 4; mov [esp], Y sub esp, 4; mov [esp], Z sub esp, 4; mov [esp], eip; jmp func push esi push edi mov eax, [esp+16] pop edi, pop esi ret sub esp, 4; mov [esp], esi sub esp, 4; mov [esp], edi mov eax, [esp+16] mov edi, [esp]; add esp, 4 mov esi, [esp]; add esp, 4 jmp [esp]; add esp, 4 add esp, 12 add esp, 12 Trong dụ trên, khi sử dụng một hàm nào đó, các lệnh sẽ không ngừng thay đổi thanh ghi ESP, vậy mỗi lệnh tiếp theo chỉ đơn giản là dựa trên kết quả của lệnh trước đó. Các lệnh trong chuỗi này không thể được sử dụng lại, đó là do tại sao hàm mở đầu bằng mov eax, [esp+16] không thể bắt đầu trừ khi lệnh PUSH trước đó đã được thực hiện. Sideband Stack Optimize sẽ lần theo sự thay đổi trạng thái Stack ( Ngăn xếp ) và biến đổi chuỗi lệnh thành một chuỗi độc lập bằng cách điều chỉnh khoảng trống Stack đối với mỗi lệnh và đặt các phép tính MOP đồng bộ (phần cuối cùng của quá trình đồng bộ hoá stack) trước các lệnh làm việc trực tiếp với thanh ghi stack. Bằng cách này, các lệnh làm việc trực tiếp với Stack có thể được sử dụng lại vô giới hạn. Lệnh Phép tính tương ứng // hàm (x, y, z); push X push Y push Z call func mov [esp-4], X mov [esp-8], Y mov [esp-12], Z mov [esp-16], eip; jmp func push esi push edi mov eax, [esp+16] pop edi, pop esi mov [esp-20], esi mov [esp-24], edi sub esp, 24 mov eax, [esp+16] mov esi, [esp] mov edi, [esp+4] sync-MOP . HỌC VI N CÔNG NGHỆ BƯU CHÍNH VI N THÔNG Khoa Công Nghệ Thông Tin ---------- BÁO CÁO BÀI TẬP LỚN KĨ THUẬT VI XỬ LÝ Chủ đề : Tìm hiểu kiến trúc VXL AMD. Phượng 11. Nguyễn Thị Phượng Hà nội, 9-10-2013 A. Lời mở đầu Báo cáo tiểu luận Vi xử lý AMD Athlon II đã cố gắng tổng hợp và phân tích các vấn đề liên quan

Ngày đăng: 07/11/2013, 12:03

HÌNH ẢNH LIÊN QUAN

1.2.Chi tiết mô hình, các thành phần và hoạt động của kiến trúc K10 - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
1.2. Chi tiết mô hình, các thành phần và hoạt động của kiến trúc K10 (Trang 5)
Bảng 1: Khả năng TLB của bộ vi xử lí K8 và K10 ITLB : Bộ đệm TLB cho lệnh - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
Bảng 1 Khả năng TLB của bộ vi xử lí K8 và K10 ITLB : Bộ đệm TLB cho lệnh (Trang 19)
Hình 7 a: Kiểu Shadow Paging khi chuyển giữa những hệ thống máy ảo thì Hypervisor phải chuyển giữa những Bảng trang đã được xoá sạch TLB trong cùng một thời gian - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
Hình 7 a: Kiểu Shadow Paging khi chuyển giữa những hệ thống máy ảo thì Hypervisor phải chuyển giữa những Bảng trang đã được xoá sạch TLB trong cùng một thời gian (Trang 21)
Pagin g. Trong hệ thống này những trang máy ảo được lồng nhau trong toàn bộ Bảng trang của Hypervisor ( Theo dõi những máy ảo – là một nền tảng ảo cho phép nhiều hệ điều hành chạy trên một PC )  - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
agin g. Trong hệ thống này những trang máy ảo được lồng nhau trong toàn bộ Bảng trang của Hypervisor ( Theo dõi những máy ảo – là một nền tảng ảo cho phép nhiều hệ điều hành chạy trên một PC ) (Trang 21)
Hình 7b : Kiểu Nested Paging khi chuyển giữa những hệ thống máy ảo Hypervisor khong cần phải xoá sạch TLB tại cùng một thời điểm . - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
Hình 7b Kiểu Nested Paging khi chuyển giữa những hệ thống máy ảo Hypervisor khong cần phải xoá sạch TLB tại cùng một thời điểm (Trang 22)
2.Các tập lệnh - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
2. Các tập lệnh (Trang 22)
• Geometr y- hình học: nó là sự tính toán những thuộc tính cơ bản của mỗi điểm của vật thể trong không gian 3 chiều  - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
eometr y- hình học: nó là sự tính toán những thuộc tính cơ bản của mỗi điểm của vật thể trong không gian 3 chiều (Trang 24)
HyperTransport bus, phụ thuộc vào từng mô hình. Các bus mở rộng này được sử dụng để kết nối với một số CPU để cho phép chúng có thể trao đổi với nhau, nghĩa là  được sử dụng trên các máy chủ có nhiều  CPU trên bo mạch chủ - Báo cáo chi tiết tìm hiểu vi xử lý AMD athlon II
yper Transport bus, phụ thuộc vào từng mô hình. Các bus mở rộng này được sử dụng để kết nối với một số CPU để cho phép chúng có thể trao đổi với nhau, nghĩa là được sử dụng trên các máy chủ có nhiều CPU trên bo mạch chủ (Trang 28)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w