Đề tài Kỹ thuật vi xử lý - Tìm hiểu kiến trúc vi xử lý Intel Atom

Vào ngày 2 tháng 3năm 2008, Intel thông báora đờivi xử lý mới (tên mã Silverthorne) để sử dụng trong các Máy tínhcá nhân siêu di động/Thiết bị Internet di động(MID) sẽ thế chỗ Intel A100. Và cùng lúc đóIntel cũng ''hé l ộ'' thông tin về một bộ xử lý mới cho nền tảng di động, dưới tên mã Diamondville, được cho là để cạnh tranh với bộ xử lý Geode x86 giá rẻ củađối thủ lâu năm AMD. Tuy vậy, bộ xử lý mới này được Intel (cố tình) bán với thương hiệuAtom. Silverthorne và Diamondville đều dựa trên vi kiến trúc giống nhau. Silverthorne sẽ được gọi là các xê-ri Atom Z và Diamondville là Atom N. Đắt và tiêu thụ điện ít hơn là Silverthorne sẽ được sử dụng trong các thiết bị MIDcòn Diamondville sẽ được sử dụng trong các máy xách tay và để bàn giá rẻ.

pdf39 trang | Chia sẻ: tuandn | Lượt xem: 3287 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Kỹ thuật vi xử lý - Tìm hiểu kiến trúc vi xử lý Intel Atom, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KTVXL– D08CNTT3 – Nhóm 8 Page 1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Khoa công nghệ thông tin ------o0o-------- BÁO CÁO KỸ THUẬT VI XỬ LÝ Đề tài: Tìm hiểu kiến trúc VXL Intel Atom Nhóm 8: Nguyễn Thị Trang Văn Thị Thu Trang Vũ Hải Trung Quang Trung Vũ Xuân Trường KTVXL– D08CNTT3 – Nhóm 8 Page 2 Tìm hiểu kiến trúc VXL Intel Atom ( Phiên bản Intel® Atom™ Processor N550). Mục lục: I. Giới thiệu chung về VXL Intel Atom và phiên bản Intel® Atom™ Processor N550. II. Kiến trúc III. Tập lệnh IV. Các công nghệ mới tích hợp V. Kết luận. VI. Nguồn tài liệu KTVXL– D08CNTT3 – Nhóm 8 Page 3 Mở đầu. Vào ngày 2 tháng 3 năm 2008, Intel thông báo ra đời vi xử lý mới (tên mã Silverthorne) để sử dụng trong các Máy tính cá nhân siêu di động/Thiết bị Internet di động (MID) sẽ thế chỗ Intel A100. Và cùng lúc đó Intel cũng ''hé lộ'' thông tin về một bộ xử lý mới cho nền tảng di động, dưới tên mã Diamondville, được cho là để cạnh tranh với bộ xử lý Geode x86 giá rẻ của đối thủ lâu năm AMD. Tuy vậy, bộ xử lý mới này được Intel (cố tình) bán với thương hiệu Atom. Silverthorne và Diamondville đều dựa trên vi kiến trúc giống nhau. Silverthorne sẽ được gọi là các xê-ri Atom Z và Diamondville là Atom N. Đắt và tiêu thụ điện ít hơn là Silverthorne sẽ được sử dụng trong các thiết bị MID còn Diamondville sẽ được sử dụng trong các máy xách tay và để bàn giá rẻ. I. Giới thiệu chung Intel Atom là tên nhãn hiệu cho dòng CPU x86 của Intel, tên mã trước đó là bộ xử lý Silverthorne và Diamondville, thiết kế cho một tiến trình CMOS cỡ 45 nm dự định dùng cho máy tính siêu di động, điện thoại thông minh và các thiết bị bỏ túi cần tiêu thụ điện năng thấp. Intel® Atom™ - Bộ vi xử lý tí hon Intel® Atom™ có 47 triệu bóng bán dẫn dựa trên công nghệ 45nm High-K. Intel® Atom™ có kích thước cực nhỏ - 25 milimet vuông – 11 bộ vi xử lý tí hon Intel® Atom™ hợp lại với nhau mới lớn bằng đồng 1 xu USA (vui lòng nhìn hình dưới) - điều đặc biệt nhất là bộ vi xử lý tí hon Intel® Atom™ này có công suất tiêu thụ điện KTVXL– D08CNTT3 – Nhóm 8 Page 4 vào khoảng 2.4W – đây là khả năng tiết kiệm điện cực tốt (tiết kiệm hơn 90% lượng điện năng tiêu thụ) Sự ra đời của Intel® Atom™ Processor N550 Thứ 2 ngày 23/8/2010, Intel đã phát hành chip Atom lõi kép N550 cải thiện ứng dụng và hiệu năng đồ họa cho netbook đồng thời kéo dài thời gian làm việc của pin. BXL Intel Atom N550 dual-core. Bộ xử lý (BXL) Atom N550 là một nâng cấp lớn từ những BXL trước đó trong dòng Atom mà chủ yếu bao gồm các chip đơn nhân. KTVXL– D08CNTT3 – Nhóm 8 Page 5 N550 là mẫu vi xử lý Intel Atom 2 nhân đầu tiên dành cho Netbook. Nó không chỉ mạnh hơn mà còn hỗ trợ những công nghệ mới, hỗ trợ tốt hơn cho các ứng dụng multimedia như game, video HD, cũng như công nghệ Adobe Flash để truy cập một số lượng lớn các trang Web nội dung đa phương tiện. Intel Atom N550 có tốc độ 1,5GHz, 2 nhân, 4 luồng (nhờ công nghệ HT-Hyper Threading), bộ nhớ Cache 1MB, công nghệ xuất nguyên khối 45nm với GPU GMA 3150 tích hợp ngay trên nhân xử lý, có tốc độ xử lý đồ họa 200MHz. Đây cũng là vi xử lý Atom đầu tiên hỗ trợ bộ nhớ DDR3. Với mức tiêu thụ điện TDP tối đa chỉ 8,5W, dòng vi xử lý này cho thời gian sử dụng pin dài không kém là bao so với bộ vi xử lý đơn nhân Intel Atom N450. Với kiến trúc 2 nhân xử lý, N550 đã được giảm tốc độ từ 1,66MHz của N450 xuống còn 1,5GHz để giảm mức tiêu thụ điện. Ngoài ra, tuy mức Max TDP của N550 cao hơn 3W so với N450, nhưng hệ thống được bù lại với việc sử dụng DDR3 vốn ít hao điện hơn DDR2. N550 hỗ trợ bộ lệnh 64- bit như của N450. Tuy nhiên đây không phải là BXL Atom lõi kép đầu tiên. Intel đã phát hành BXL Atom 330 và được dùng ở một số MTXT. Chip này dựa trên thiết kế bộ vi xử lý máy tính để bàn. II. Kiến trúc. 1. Đặc điểm cấu trúc của vi xử lý - Sản xuất theo công nghệ 45nm. KTVXL– D08CNTT3 – Nhóm 8 Page 6 - Hỗ trợ NX bit và tập lệnh SSE2, SSE3, SSSE3.(NX bit là không thực thi, là một công nghệ sử dụng CPU để phân biệt các khu vực bộ nhớ để lưu trữ lệnh và dữ liệu) - Kênh dữ liệu nội 128-bit (Digital Media Boost): o 2 cổng được dùng để phân phối các lệnh SIMD (Single Information, Multiple Data) tới đơn vị xử lý. o Một chu kì đơn cho phép dòng lệnh SIMD nhiều nhất 128-bit integer. o Một chu kì, cho phép tính toán với những toán hạng có 6 số sau dấu phẩy động. - Atom có pipeline 16 bước. - Có trang bị công nghệ siêu phân luồng HyperThreading :(Intel HT Technology): - Công nghệ Enhanced Speed Step : Nhiều mức điện áp và xung nhịp vận hành mang lại hiệu suất hoạt động tối ưu ở mức tiêu thụ điện năng thấp nhất, cho phép hiệu suất hoạt động phù hợp nhất với mỗi nhu cầu ứng dụng. - Tính năng nạp dữ liệu (Enhanced Data Prefetcher) và quản lý Enhanced Register Access Manager: Dự đoán những dữ liệu mà bộ vi xử lý có thể cần đến và lưu trữ các thông tin đó trong bộ nhớ đệm L2 của bộ vi xử lý, giúp nâng cao hiệu suất hoạt động do bộ vi xử lý không phải chờ lâu khi nạp các dữ liệu. - Bộ nhớ đệm thông minh - Intel Smart Cache: Bộ nhớ đệm và kênh truyền hệ thống được thiết kế cho việc chia sẻ dữ liệu hiệu quả, mang KTVXL– D08CNTT3 – Nhóm 8 Page 7 lại hiệu suất hoạt động, tính nhạy bén, và khả năng tiết kiệm điện năng tốt hơn. o Cache L2 là 512KB với 8 cổng liên kết. o Tối ưu môi trường thực thi cho xử lý đơn luồng và đa luồng. o 256 bit dữ liệu trong giữa L1 và L2 làm tăng băng thông. - Hỗ trợ kiến trúc Intel 64 bit. - Tiêu tốn cực kì ít điện với TDP (Thermal Design Power) chỉ có 8.5W. - Advanced Micro-Ops Execution:  Một dòng lệnh được thực thi bằng cách giải mã các lệnh, bao gồm các lệnh chỉ với thanh ghi, nạp và lưu trữ.  Pipeline 16 bước, tối ưu hiệu suất và giảm điện năng tiêu thụ.  2 đường ống(pipelines) được dùng để giải mã, xuất ra, thực hiện và dừng. Mỗi chu kì có thể thực hiện cùng lúc 2 lệnh.  Nâng cao bộ nhớ stack để thực thi được nhiều hơn các chức năng vào/ra. - Efficient Memory Access (Hiệu suất truy cập bộ nhớ).  Thông tin về phần cứng sẽ được nạp trước vào L1 và L2, việc nạp dữ liệu giống như 1 yêu cầu từ vi xử lý để giảm áp lực cho cache. KTVXL– D08CNTT3 – Nhóm 8 Page 8 3. Các khối chính. Sơ đồ cơ bản của 1 CPU KTVXL– D08CNTT3 – Nhóm 8 Page 9 Kiến trúc máy tính Atom đã từ 3 chip trước đây (bên trái) giờ thành 2 chip. a. ALU: - Atom được trang bị 2 khối ALU (khối tính toán) và 2 khối FPU (dùng tính toán các phép tính với dấu phẩy động). - Khối ALU thứ nhất quản lý các phép dịch và khối thứ 2 quản lý các phép nhảy (jump). Tất cả các phép tính cộng và nhân được chuyển tới FPU ( ngoại trừ với các số nguyên). - Khối FPU thứ nhất dùng tính các phép cộng, trong khi khối thứ 2 quản lý các lệnh SIMD và các phép nhân/chia. KTVXL– D08CNTT3 – Nhóm 8 Page 10 b. Memory Cache: - Memory Cache là một kiểu bộ nhớ hiệu suất cao, cũng được gọi là bộ nhớ tĩnh. Kiểu bộ nhớ đã sử dụng trên bộ nhớ RAM chính của máy tính được gọi là bộ nhớ động. Bộ nhớ tĩnh tiêu tốn nhiều năng lượng điện hơn, đắt hơn và có kích thước vật lý lớn hơn so với bộ nhớ động, tuy nhiên nó lại chạy nhanh hơn. Nó có thể làm việc với cùng tốc độ clock của CPU, điều mà bộ nhớ động không thể thực hiện được. - Vào “thế giới bên ngoài” để tìm nạp dữ liệu làm cho CPU phải làm việc ở tốc độ clock thấp hơn do vậy mà kỹ thuật cache nhớ được sử dụng ở đây để khắc phục nhược điểm này. Khi CPU nạp dữ liệu từ một vị trí nhớ KTVXL– D08CNTT3 – Nhóm 8 Page 11 nào đó thì mạch có tên gọi là memory cache controller nạp vào cache nhớ một khối dữ liệu bên dưới vị trí hiện hành mà CPU đã nạp. Vì các chương trình được thực hiện theo thứ tự nên vị trí nhớ tiếp theo mà CPU sẽ yêu cầu có thể là vị trí ngay dưới vị trí nhớ mà nó đã nạp. Do memory cache controller đã nạp rất nhiều dữ liệu dưới vị trí nhớ đầu tiên được đọc bởi CPU nên dữ liệu kế tiếp sẽ ở bên trong cache nhớ, chính vì vậy CPU không cần phải thực hiện thao tác lấy dữ liệu bên ngoài: nó đã được nạp vào bên trong cache nhớ nhúng trong CPU, chính vì nhúng trong CPU mà chúng có thể truy cập bằng tốc độ clock trong. - Cache controller luôn luôn quan sát các vị trí nhớ đã và đang được nạp dữ liệu từ một vài vị trí nhớ sau khi vị trí nhớ vừa được đọc. Một ví dụ thực tế, nếu một CPU đã nạp dữ liệu được lưu tại địa chỉ 1.000 thì cache controller sẽ nạp dữ liệu từ “n” địa chỉ sau địa chỉ 1.000. Số “n” được gọi là trang; nếu một bộ vi xử lý này làm việc với 4KB trang (giá trị điển hình) thì nó sẽ nạp dữ liệu từ các địa chỉ 4.096 dưới vị trí nhớ hiện hành đang được nạp (địa chỉ 1.000 trong ví dụ). 1KB bằng 1.024 byte, do đó là 4,096 chứ không phải 4,000. Memory cache controller làm việc như thế nào? KTVXL– D08CNTT3 – Nhóm 8 Page 12 Memory cache càng lớn thì cơ hội cho dữ liệu yêu cầu bởi CPU ở đây càng cao, chính vì vậy CPU sẽ giảm sự truy cập trực tiếp vào bộ nhớ RAM, do đó hiệu suất hệ thống tăng (hãy nên nhớ rằng khi CPU cần truy cập trực tiếp vào bộ nhớ RAM thì nó phải thực hiện ở tốc độ clock thấp hơn nên giảm hiệu suất của toàn hệ thống). Chúng ta gọi là “hit” khi CPU nạp một dữ liệu yêu cầu từ cache và “miss” nếu dữ liệu yêu cầu không có ở đó và CPU cần phải truy cập vào bộ nhớ RAM của hệ thống. L1 và L2 tương ứng là “Level 1” và “Level 2”, được đại diện cho khoảng cách chúng cách lõi CPU (khối thực thi). Một sự ngờ vực hay có ở đây là tại sao có đến 3 bộ nhớ Cache (L1 data cache, L1 instruction cache và L2 cache). Hãy chú ý trên hình và bạn sẽ thấy được rằng L1 instruction cache làm việc như một “input cache”, trong khi đó L1 data cache làm việc như một “output cache”. L1 instruction cache – thường nhỏ hơn L2 cache – chỉ hiệu quả khi chương trình bắt đầu lặp lại một phần nhỏ của nó (loop), vì các chỉ lệnh yêu cầu sẽ gần hơn với khối tìm nạp. c. Pipeline - Atom có pipeline 16 bước, dài hơn so với các CPU Core 2 hiện nay. Điều này được thực hiện với một số lý do:  Thứ nhất, điều này làm giảm điện năng tiêu thụ, làm giảm sự tỏa nhiệt không cần thiết. Với các bước nhiều hơn, xác suất có các thành phần nghỉ nhiều hơn so với các CPU có ít bước hơn, do vậy ta có thể tắt đi một số bước không thực sự cần thiết để tiết kiệm điện năng.  Một ưu điểm khác trong pipeline dài hơn sẽ làm cho các vi kiến trúc có thể đạt được tốc độ đồng hồ cao hơn. KTVXL– D08CNTT3 – Nhóm 8 Page 13 Kết quả kiểm tra bằng CPU-Z III. Kiến trúc tập lệnh. Intel Atom N550 Là bộ VXL 2 nhân hỗ trợ kiến trúc Intel 64 và các tập lệnh mở rộng MMX,SSE,SSE2,SS3,SSSE3 1. Kiến trúc Intel 64: Hỗ trợ 2 chế độ hoạt động:chế độ tương thích và chế độ 64bits cho phép HĐH 64-bit chạy các ứng dụng 32bits và 64bits. a. Các đặc trưng: KTVXL– D08CNTT3 – Nhóm 8 Page 14  Cơ chế xử lý song song là song song các lệnh mã máy (EPIC) thay vì các bộ xử lý song song như hệ thống đa bộ xử lý.  Các lệnh dài hay rất dài (LIW hay VLIW).  Các lệnh rẽ nhánh xác định (thay vì đoán các lệnh rẽ nhánh như trước).  Nạp trước các lệnh.  Có nhiều thanh ghi: số lượng thanh ghi các bộ xử lý kiến trúc IA-64 là 256 thanh ghi. Trong đó, 128 thanh ghi tổng quát (GR) 64 bit cho các tính toán số nguyên, luận lý; 128 thanh ghi 82 bit (FR) cho các phép tính dấu chấm động và dữ liệu đồ hoạ; ngoài ra, còn có 64 thanh ghi thuộc tính (PR)1 bit để chỉ ra các thuộc tính lệnh đang thi hành.  Nhiều bộ thi hành lệnh: một máy tính có thể có tám hay nhiều hơn các bộ thi hành lệnh song song. Các bộ thi hành lệnh này được chia thành bốn kiểu: o Kiểu I (I-Unit): dùng xử lý các lệnh tính toán số nguyên, dịch, luận lý, so sánh, đa phương tiện. o Kiểu M (M-Unit): Nạp và lưu trữ giữa thanh ghi và bộ nhớ thêm vào một vài tác vụ ALU. o Kiểu B (B-Unit): Thực hiện các lệnh rẽ nhánh. o Kiểu F (F-Unit): Các lệnh tính toán số dấu chấm động b. Định dạng lệnh: Kiến trúc IA-64 định nghĩa một gói (buldle) 128 bit chứa ba lệnh (mỗi lệnh dài 41 bit) và một trường mẫu (template field) 5 bit. Bộ xử lý có thể lấy một hay nhiều gói lệnh thi hành cùng lúc. Trường mẫu (template field) này chứa các thông tin chỉ ra các lệnh có thể thực hiện song song . Các lệnh trong một bó có thể là các lệnh độc lập nhau. Bộ biên dịch sẽ sắp xếp lại các lệnh trong các gói lệnh kề nhau theo một thứ tự để các lệnh có thể được thực hiện song song KTVXL– D08CNTT3 – Nhóm 8 Page 15 Hình (a) chỉ ra định dạng lệnh trong kiến trúc IA-64. Hình (b) mô tả dạng tổng quát của một lệnh trong gói lệnh. Trong một lệnh, mã lệnh chỉ có 4 bit chỉ ra 16 khả năng có thể để thi thi hành một lệnh và 6 bit chỉ ra thanh ghi thuộc tính được dùng với lệnh. Tuy nhiên, các mã tác vụ này còn tuỳ thuộc vào vị trí của lệnh bên trong gói lệnh, vì vậy khả năng thi hành của lệnh nhiều hơn số mã tác vụ được chỉ ra. Hình (c) mô tả chi tiết các trường trong một lệnh (41 bit) 2. Các tập lệnh SIMD(Single Instruction,Multiple Data) hỗ trợ Intel Atom N550. a. SSE2 là một cải tiến đáng kể SSE với 144 hướng dẫn mới-hỗ trợ các lệnh số nguyên với thanh ghi 128 bit. SSE2 thêm hướng dẫn toán học mới cho độ chính xác kép(64 bit) và dấu chấm động cũng mở rộng MMX hướng dẫn để hoạt động trên các thanh ghi XMM-128bit.SSE2 cho phép lập trình để thực hiện các toán SIMD trên bất kỳ loại dữ liệu (từ số nguyên 8-bit đến 64 bit-float) hoàn toàn với các thanh ghi XMM, mà không cần phải sử dụng những di sản MMX hoặc FPU. Nhiều người lập trình xem xét SSE2 để được "tất cả mọi thứ SSE cần phải có được như SSE2” cung cấp một tập hợp các trực giao của các hướng dẫn xử lý các dữ liệu phổ biến các loại. KTVXL– D08CNTT3 – Nhóm 8 Page 16 VD: Số học: addpd-Thêm 2 64bit tăng gấp đôi. mulpd - 2 64bit sẽ nhân đôi. divpd - chia đôi 2 64bit. Logic: andnpd-logic không ANDs 2 64bit tăng gấp đôi. pand - logic ANDs 2 128bit đăng ký. So sánh: cmppd -So sánh 2 cặp đôi 64bit. So sánh Codes: eq-Bằng. lt-Ít hơn. le-Nhỏ hơn hoặc bằng. ne-Không phải bằng nhau. nlt-Không ít hơn. nle-Không ít hơn hoặc bằng. ord-đặt hàng. unord-có thứ tự. Chuyển đổi: cvtdq2pd-Chuyển đổi 2 vào 2 số nguyên 32bit 64bit tăng gấp đôi. Load / Store: movq - Di chuyển một giá trị 64bit, giải tỏa 64bits đầu trang của một XMM đăng ký. Shuffling: pshufd-Shuffles 32bit giá trị trong một cách phức tạp. Cache Control: KTVXL– D08CNTT3 – Nhóm 8 Page 17 clflush-flushes một Line Cache từ tất cả các cấp bộ nhớ cache. lfence-Đảm bảo rằng tất cả các bộ nhớ tải ban hành trước lfence hướng dẫn được hoàn tất trước khi anyloads sau khi lfence hướng dẫn. mfence-hướng dẫn được hoàn thành trước khi đọc hoặc viết sau khi mfence hướng dẫn. pause-thực hiện tạm dừng cho một khoảng thời gian. b. SSE3 còn gọi là Prescott New Instruction(PNI), là một nâng cấp của SSE2 với 13 hướng dẫn mới thêm một số ít các định hướng toán học DSP và quá trình hướng dẫn một số hướng dẫn quản lý,xử lý các số thực dấu phẩy động. VD: Số học: addsubpd-Thêm hai đôi trên và trừ đi phía dưới hai. addsubps-Thêm đĩa đơn đầu và trừ đơn dưới cùng. haddpd-Top gấp đôi là tổng của đáy, đáy và đỉnh là tổng của hai toán hạng của trang thứ hai và dưới cùng. haddps-Ngoài ngang chính xác của các giá trị duy nhất. hsubpd-ngang trừ chính xác giá trị tăng gấp đôi. hsubps-ngang trừ chính xác giá trị duy nhất. Load/Store: lddqu-128bit unaligned tải một giá trị. movddup-tải 64bits và bản sao nó ở trên và dưới nửa của một đăng ký 128bit. movshdup-Bản sao các cao và thấp đĩa đơn thành đĩa đơn cao. movsldup-Bản sao các đĩa đơn thành thấp và thấp đĩa đơn cao. fisttp-Chuyển đổi một giá trị điểm nổi đến một số nguyên bằng KTVXL– D08CNTT3 – Nhóm 8 Page 18 cách sử dụng cắt ngắn. Quy trình kiểm soát: monitor-Bộ lập một khu vực để giám sát cho hoạt động. mwait-Đợi cho đến khi hoạt động sẽ xảy ra trong một khu vực xác định bởi monitor c. SSSE3(Supplemental Streaming SIMD Extensions 3)là một nâng cấp của SSE3 thêm 16 hướng dẫn mới trong đó bao gồm permuting các byte trong một từ, nhân 16-bit đểm làm tròn số cố định với độ chính xác cao VD: psignd-Cung cấp cho 32bit số nguyên cường độ các dấu hiệu của các toán hạng thứ 2. psignw-Cung cấp cho 16bit số nguyên cường độ các dấu hiệu của các toán hạng thứ 2. psignb-Cung cấp cho 8 bit số nguyên cường độ các dấu hiệu của các toán hạng thứ 2. phaddd-ngang bổ sung các số nguyên unsigned 32bit. phaddw-ngang bổ sung các số nguyên unsigned 16bit. phaddsw- Ngoài ngang bão hòa của các số nguyên 16bit. phsubd-ngang trừ các số nguyên unsigned 32bit. phsubw-ngang trừ các số nguyên unsigned 16bit. phsubsw-ngang trừ bão hòa của 16bit từ. pmaddubsw-Nhân-tích lũy hướng dẫn (cuối cùng). pabsd - abs():cho số nguyên 32 bit. pabsw - abs():cho số nguyên 16bit. pabsb - abs():cho 8 bit số nguyên. pmulhrsw-16bit số nguyên nhân, các cửa hàng hàng đầu của kết quả 16bits. pshufb-Một hướng dẫn shuffle phức tạp. KTVXL– D08CNTT3 – Nhóm 8 Page 19 palignr-Kết hợp hai giá trị đăng ký, và chất chiết xuất từ một- chiều rộng giá trị đăng ký từ nó, dựa trên một bù đắp. Bổ sung:  Kiến trúc Intel64 Các thanh ghi bên trong: 64 bit. Xử lý các phép toán số nguyên với 64-bit. Xử lý các phép toán số dấu chấm động. Không tương thích phần cứng với các bộ xử lý trước đó. Tương thích phần mềm bằng cách giả lập môi trường.  Không gian địa chỉ + 64 bits không gian địa chỉ tuyến tính cho phần mềm + 40 bits không gian địa chỉ vật lý  Hỗ trợ 2 chế độ hoạt động: + chế độ tương thích: cho phép hệ điều hành 64 bit chạy các ứng dụng 32 bit + chế độ 64 bits: cho phép hệ điều hành 64-bit chạy các ứng dụng 64 bits  Các lệnh MMX có thể xử lý hiệu quả các mảng hoặc các luồng số nguyên  Các lệnh SSE có thể xử lý cả số nguyên và số thực. Chúng có thể được sử dụng hiệu quả trong các ứng dụng 3D hoặc nén và giải nén hình ảnh KTVXL– D08CNTT3 – Nhóm 8 Page 20  SSE2 mở rộng khả năng của SSE – hỗ trợ các lệnh số nguyên với các thanh ghi XMM 128 bits  SSE3, SSE4 cung cấp các lệnh xử lý hiệu quả các số thực dấu phẩy động  2. KIẾN TRÚC TẬP LỆNH INTEL64 Tài liệu tham khảo: - Slide KTMT của Th.S Dương Thị Thùy Vân - Giáo trình KTMT của Đại học Cần Thơ 2.1. Tập lệnh - Mỗi bộ xử lý có một tập lệnh xác định - Tập lệnh thường có hàng chục đến hàng trăm lệnh - Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu được để thực hiện một thao tác xác định - Các lệnh được mô tả bằng kí hiệu gợi nhớ gọi là các lệnh của hợp ngữ * Thực thi lệnh được chia thành các giai đoạn. Tiêu biểu có 4 giai đoạn: - Nạp lệnh (IF) : lệnh được nạp từ bộ nhớ vào CPU - Giải mã lệnh (ID) : CPU “đọc lệnh” - Thực thi lệnh : lệnh được CPU thực thi - Ghi kết quả (WB) : các kết quả xử lý (nếu có) được ghi lại vào thanh ghi hoặc bộ nhớ. * Các thành phần của lệnh máy Mã lệnh(operation code → opcode) : mã hóa thao tác mà bộ xử lý phải thực hiện. Địa chỉ toán hạng : chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động. KTVXL– D08CNTT3 – Nhóm 8 Page 21 – Toán hạng nguồn: dữ liệu vào của thao tác – Toán hạng đích: dữ liệu ra của thao tác *Các kiểu thao tác - Chuyển dữ liệu - Xử lý số học với số nguyên - Xử lý logic - Điều khiển vào-ra - Chuyển điều khiển (rẽ nhánh) - Điều khiển hệ thống - Xử lý số dấu chấm động - Xử lý các dữ liệu chuyên dụng 2.1.1. Các lệnh chuyển dữ liệu MOVE : Copy dữ liệu từ nguồn đến đích LOAD : Nạp dữ liệu từ bộ nhớ đến bộ xử lý STORE : Cất dữ liệu từ bộ xử lý đến bộ nhớ EXCHANGE : Trao đổi nội dung của nguồn và đích CLEAR : Chuyển các bit 0 vào toán hạng đích SET : Chuyển các bit 1 vào toán hạng đích PUSH : Cất nội dung toán hạng nguồn vào ngăn xếp POP : Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích 2.1.2. Các lệnh số học ADD : Cộng hai toán hạng SUBTRACT : Trừ hai toán hạng MULTIPLY : Nhân hai toán