1. Trang chủ
  2. » Tất cả

Phân tích cấu trúc và nguyên lý làm việc của bộ VXL AMD 64 bit

31 5 0

Đ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 835,71 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu Trong phần này chúng ta sẽ xem qua cấu trúc bên trong của bộ vi xử lí AMD64 được sử dụng trong Athlon 64, Athlon 64 X2, Athlon 64 FX, Opteron, Turion 64 và một vài kiểu Sempro

Trang 1

Trường Đại Học Công Nghiệp Hà Nội Khoa : công nghệ thông tin

Bài tiểu luận môn học: KTMT

Đề tài : Phân tích kiến trúc và nguyên lý làm việc của bộ VXL

64 bit của AMD

Giáo viên : Ths Nguyễn Tuấn TúNhóm số : 10

Lớp : 3188.2 – K14

Trang 2

Trường Đại Học Công Nghiệp Hà Nội Khoa : công nghệ thông tin

Bài tiểu luận môn học: KTMT

Đề tài : Phân tích kiến trúc và nguyên lý làm việc của bộ VXL

64 bit của AMD

Giáo viên : Ths Nguyễn Tuấn TúSinh viên thực hiện:

1 Bùi Như Toán

2 Phan Trọng Trường

3 Phùng Xuân Trường

4 Nguyễn Bá Tuấn

5 Vũ Minh TuấnLớp : 3188.2 – K14

Hà Nội, 2020

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 1

Chương 1: Kiến trúc AMD 64bit 2

1.1 Giới thiệu 2

1.2 Bus HyperTransport và Đa xử lí 5

1.3 Socket của CPU 9

1.4 Những đặc điểm chính AMD64 10

1.5 Pipeline AMD64 11

1.6 Bộ nhớ Cache và Fetch Unit 13

1.7 Decoder 15

1.8 Dispatch và Schedule 17

1.9 Execution Unit 19

Chương 2: Nguyên lý làm việc AMD 64 bit 21

2.1 Hoạt động của chíp điều khiển AMD 21

2.2 Chip bổ trợ AMD-8237A 22

2.2.1 Sơ đồ nguyên lý 22

2.2.2 Các trạng thái làm việc của thanh ghi 24

2.2.3 Các thanh ghi bên trong 8237 24

2.2.4 Chu kỳ nghỉ 24

2.2.5 Chu kì hoạt động 25

2.2.6 Các chế độ ưu tiên 25

2.2.7 Làm việc với vi xử lý 25

2.3 Athlon và hammer: giống và khác nhau 26

2.4 CPU hai nhân của AMD 27

Trang 4

LỜI NÓI ĐẦU

Vào ngày 1 tháng 6 năm 2006, AMD chính thức tung ra thị trườngthế hệ CPU K8 sử dụng socket AM2 (socket AM2 có 940 chân) Thế hệCPU K8 này hỗ trợ RAM DDR2 và có thêm 1 số tính năng, công nghệ mớinhư công nghệ máy tính ảo AMD Virtualization Đặc biệt thế hệ CPU K8dùng socket AM2 còn có dòng EE (Energy Efficient) với công suất tiêuthụ thấp hơn đáng kể Cốt lõi K8 là rất tương tự như các K7 Sự thay đổi

cơ bản nhất là sự tích hợp các hướng dẫn AMD64 và một bộ điều khiển bộnhớ on-chip Bộ điều khiển bộ nhớ đáng kể làm giảm độ trễ bộ nhớ và chịutrách nhiệm đối với hầu hết tăng hiệu suất từ K7 lên K8

Dưới đây là một số tìm hiểu cơ bản về kiến trúc, nguyên lí làm việccủa bộ vi xử lí AMD K8 Do thời gian chuẩn bị không nhiều và với kiếnthức còn hạn chế của bản thân nên sẽ không tránh khỏi những thiếu sót.Mong thầy cùng tham gia góp ý xây dựng thêm để thông tin hệ thống của

bộ vi xử lí được hoàn thiện hơn !

Trang 5

Hình 1: ảnh minh họa AMD 64 bit

Chương 1: Kiến trúc AMD 64bit

1.1 Giới thiệu

Trong phần này chúng ta sẽ xem qua cấu trúc

bên trong của bộ vi xử lí AMD64 được sử dụng

trong Athlon 64, Athlon 64 X2, Athlon 64 FX,

Opteron, Turion 64 và một vài kiểu Sempron

Cấu trúc này có tên gọi như K8 hoặc Hammer ,

chúng ta sau khi xem cấu trúc bên trong của nó và

so sánh với cấu trúc bên trong của bộ vi xử lí Intel

Sự khác nhau chính giữa cấu trúc AMD64 và

những bộ vi xử lí được thiết kế trước đó của AMD

như AthlonXP và Athlon đầu tiên ở chỗ phần điều

khiển bộ nhớ được đi kèm bên trong CPU mà

không thông qua Chip North Bridge ( Chip chính của

Chipset trên Mainboard ) Do đó Mainboard được sản

xuất cho bộ vi xử lí dựa trên cấu trúc AMD64 thì

Chip “North Bridge” là cầu nối giữa CPU và Bus đồ hoạ (AGP hoặc PCIExpress) và Chip "South Bridge" Từ khi Chip “North Bridge” được sản xuấtđơn giản hơn thì một vài nhà sản xuất chỉ còn một Chipset trên Mainboard chokiểu CPU của AMD64

Từ khi phần điều khiển bộ nhớ được đi kèm bên trong CPU , dung lượng của bộnhớ - bao gồm kiểu bộ nhớ được hỗ trợ và hỗ trợ Dual Channel - phụ thuộc vàoCPU mà không còn phụ thuộc vào North Bride ( không còn phụ thuộc vàoMainboard ) như đã từng xảy ra với những Mainboard sử dụng CPU có cấu trúckhác Như vậy đối với Mainboard dùng CPU dựa trên cấu trúc AMD64 màkhông tích hợp Video on-board thì không có những tính năng khác củaMainboard được quan tâm đến đối với những Mainboard dùng CPU dựa trêncấu trúc AMD64 có tích hợp Card màn hình on-board thì chỉ có tính năng củaphần Card màn hình là được quan tâm đến

Trang 6

Hình 2: Cấu trúc được dùng dựa trên CPU khác

Trang 7

Chúng ta có thể nói rằng Chip "North Bridge" được gắn bên trong CPU Trên Mainboard chúng ta sẽ tìm thấy Chip " Bridge" mà sẽ phù hợp giao diện giữa Bus "HyperTransport" ( có nghĩa là CPU ) với Bus của card đồ hoạ (AGP hoặc PCI Express x16) và Chip "South Bridge" Đôi khi nhà sản xuất Mainboard họ đưa ra một Chip duy nhất gọi là “Single-chip Solution” bao gồm Chip " Bridge"

và Chip "South Bridge"

Phần điều khiển bộ nhớ được đi kèm bên trong bộ vi xử lí AMD64 có thể điều khiển tới 04 thanh nhớ / kênh Do vậy hệ thống Dual - Channel có thể điều khiển 08 thanh nhớ Số của khe cắm được có sẵn trên Mainboard là giới hạn bởinhà sản xuất Mainboard

Hình 3: cấu trúc được dùng dựa trên bộ vi xử lí AMD64

Trang 8

1.2 Bus HyperTransport và Đa xử lí

Sự trao đổi thông tin giữa CPU AMD64 và Chip " Bridge" được thực hiệnbởi Bus có tên là HyperTransport Tốc độ HyperTransport phụ thuộc vào kiểucủa CPU Giá trị thông thường là 3200MB/s hoặc 4000MB/s Để hiểu kỹ hơn

về HyperTransport bạn có thể xem riêng bài này trong trang Web của chúng tôi

Bộ vi xử lí AMD64 có thế có nhiều hơn một bus HyperTransport Trong khi tất

cả CPU AMD64 của thị trường máy tính để bàn và máy tính xách tay Athlon 64,Athlon 64 FX, Athlon 64 X2, Sempron và Turion 64 chỉ có 01 busHyperTransport , thì kiểu CPU dùng AMD64 cho náy chủ và máy trạm làm việc

- Opteron - có nhiềuhơn 01 bus HyperTransport

Bộ vi xử lí Opteron có series 1xx không hỗ trợ Đa xử lí và chỉ có 01 busHyperTransport như hình trên ( ở phần 1)

CPU Opteron 2xx hỗ trợ đa xử lí tới 02 CPU và có 02 Bus HyperTransport

CPU Opteron 8xx hỗ trợ đa xử lí tới 08 CPU có 03 Bus HyperTransport NhữngBus thêm vào để dùng kết nối bên trong những CPU với nhau , chúng ta có thểxem hình dưới đây

Hình 4: Cấu hình Opteron 2xx hoặc 8xx có Dual-CPU

và Đa xử lí

Trang 9

Hình 5: Cấu hình Đa xử lí Opteron 8xx có 04 CPU

Trang 10

Quan điểm của AMD về vấn đề Đa xử lí cũng rất được đáng quan tâm

Mỗi một CPU có phần điều khiển bộ nhớ của nó , mỗi CPU truy cập vào những thanh nhớ riêng biệt

Hình 6 : Cấu hình đa xử lí Opteron 8xx có 08 CPU

Trang 11

Ví dụ : trong hệ thống 04 Opterron có 4GB bộ nhớ thì mỗi một CPU có điềukhiển riêng 1GB nhớ Trong hệ thống Opteron có 04 CPU 4GB được chia chotất cả CPU Như thế mỗi một CPU có thể điều khiển tới 04 thanh nhớ / kênh và

04 CPU có thể điều khiển trực tiếp tới 32 thanh nhớ ( 08 thanh / CPU ) Nhà sảnxuất Mainboard thiết kế số khe cắm RAM sẵn sàng trên Mainboard ( có nghĩa

là có thể nói rằng hệ thống Opteron 04 CPU có thể có tới 32 thanh nhớ màkhông thể nói rằng tất cả hệ thống Opteron 04 PCU có 32 khe cắm RAM )

Trong hình trên chúng ta có thể thấy phần "I/O " I/O này đại diện cho mỗi kiểucủa Bridge , thông thường là South Bridge , nó có thể là Bridge của Card đồ hoạAGP hoặc PCI Express x16 , nó cũng có thể là PCI-X hoặc PCI Express chomục đích Card Add-on

Hình 7 : Bus HyperTransport được kết nối bên trong CPU

Trang 12

Bộ vi xử lí AMD64 có "Crossbar" , ở đó là đường nạp dữ liệu và những lệnh từ

và tới CPU , bộ nhớ và với Bus HyperTransport

System Request Interface (SRI) cũng được gọi là System Request Queue (SRQ),trong khi APIC là Advanced Programmable Interrupt Controller

1.3 Socket của CPU

CPU AMD64 có vài kiểu Socket khác nhau Chúng ta phải dùngMainboard có cùng kiểu Socket với CPU mà chúng ta có

Những kiểu Socket khác nhau bởi vì những tính năng khác nhau của phần điềukhiển bộ nhớ

 Socket 754 : phần điều khiển bộ nhớ DDR và Single - Channel , có nghĩa

là điều khiển bộ nhớ truy cập bộ nhớ 64-bit được sử dụng đầu tiên chokiểu Athlon64 , Turion64 và kiểu Sempron socket 754

 Socket 939 : điều khiển bộ nhớ DDR và Dual - Channel , điều khiển bộnhớ truy cập 128-bit được sử dụng kiểu Athlon 64, Athlon 64 X2,Athlon 64 FX và một vài dòng Opteron 1xx

 Socket 940 : điều khiển bộ nhớ DDR và Dual - Channel yêu cầu bộ nhớECC được dùng trong Opteron và những kiểu đầu tiên của Athlon 64FX

 Socket AM2 : điều khiển bộ nhớ DDR2 và Dual - Channel Được dùngcho những sản phẩm sắp tới của Athlon 64, Athlon 64 X2 và Athlon 64

FX

Hình dưới đây là Socket của CPU và trên Mainboard

Hình 8 : Socket 754

Trang 13

Intel đã Copy tất cả những đặc điểm trên và họ không ngoại trừ bất kì đặc điểm

Hình 9 : Socket 939

Trang 14

không phải tất cả bộ vi xử lí của Intel đều hỗ trợ đặc điểm đó Để sử dụng đặcđiểm này thì hệ điều hành phải chạy 64-bit

Như chúng ta đã biết phần điều khiển nhớ của AMD64 làm việc trên công nghệDDR hoặc DDR2 Công nghệ Dual Data Rate làm việc bằng cáhc truyền 02 dữliệu trong một chu kì đồng hồ Do đó khi dùng Athlon64 có bộ nhớDDR400/PC3200 , CPU truy cập với tần số xung nhịp đồng hồ 200MHz chứkhông phải 400 MHz ( bộ nhớ DDR và DDR2 có tốc độ thực bằng 1/2 tốc độghi trên nhãn )

Tất cả CPU AMD64 có bộ nhớ Cache lệnh là 64KB và Cache dữ liệu là 64KB

Bộ nhớ cache L2 thì phụ thuộc vào kiểu của CPU Trong bộ vi xử lí Dual-corethì cache L2 được tách rời có nghĩa là mỗi nhân sở hữu bộ nhớ cache L2 riêngbiệt Trong CPU của Intel dòng mới nhất ( Core Duo và Core 2 Duo ) bọ nhớcache L2 được dùng chung và được chia xẻ tuỳ theo nhu cầu của mỗi nhân( Intel tuyên bố đó là cải tiến để tăng hiệu suất làm việc )

Trang 15

 Fetch : những lệnh được đưa tới từ bộ nhớ cache lệnh L1 thành nhữngnhóm 16 byte ( 128 bit ) Trong phần này thành 02 tầng Tầng thứ haiđược biết như là “Transit” - Sự đi qua , nó là hoạt đông jchính để chuyển

dữ liệu bên trong CPU ( tương tự như tầng Drive của Pentium 4 )

 Pick : Fetch Unit gửi 128-bit mà đã được chuyển tới tầng này , cung cấptới một bộ đệm được sẵn sàng ở đây Những lệnh x86 không có độ dài cốđịnh , trong tầng này CPU sẽ tìm và tách những lệnh hiện có bên trong bộđệm Nó cũng quyết định những lệnh x86 sẽ được gửi tới phần Decodernào : tới Decode đơn giản ( nhanh ) được dùng những lệnh x86 chung màchuyển đổi thành một hoặc hai vi lệnh , hoặc tới Decoder phức tạp ( chậm

Hình 10 : Pipeline số nguyên của AMD64

Trang 16

 Decode : ở đây những lệnh x86 được chuyểnthành những vi lệnh là nhânCPU có thể hiểu được Trong phần này có 02 tầng.

 Pack : những cặp vi lệnh đã được giải mã được ghép thành một vi lệnh ởđây

 Pack/Decode : một vài giải mã được làm ở đây trước khi vi lệnh được gửitới Instruction Control Unit của AMD64 ( tương tự như ROB ReorderBuffer của Intel )

 Dispatch : những vi lệnh được gửi tới Scheduler thích hợp trong tầng này

 Schedule : những vi lệnh được lên danh sách để thực hiện một trongnhững Scheduler của CPU

 AGU/ALU : những lệnh liên quan đến số nguyên và lên quan đến bộ nhớđược thực hiện ở đây

 Data Cache : dú liệu được sinh ra trong Execution Unit được gửi tới bộnhớ Cache L1 , những thanh ghi đầu tiên sẽ lưu được lưu trữ và lệnh đượcđánh dấu “executed” trong ROB Phần này giống như “Retirement” trongCPU của Intel

1.6 Bộ nhớ Cache và Fetch Unit

Trong cấu trúc AMD64 đường dữ liệu kết nối giữa bộ nhớ Cache L1 vàL2 có độ rộng 128-bit Trong bộ vi xử lí của Intel thuộc thế hệ thứ 7 ( Pentium

4 ) đường dữ liệu này có độ rộng 256-bit và trong CPU của Intel thuộc thế hệthứ 6 (Pentium Pro, Pentium II, Pentium III ) đường này rộng 64-bit

Trang 17

Bộ nhớ cache lệnh L1của CPU AMD64 bao gồm mạch logic Pre-decode , mỗi một byte lưu trữ bêntrong bộ nhớ cache L1 có một vài bit để đánh dấu bắt đầu và kết thúc mỗi lệnh Những lệnh x86 không có độ dài cố định ( chúng có thể có từ 1 đến 15 byte ) ,quá trình xử lí để tách đâu là điểm đầu và đâu là điểm cuối là rất quan trong đểCPU giải mã ( Decoder )

Cache lệnh L1 cung cấp 76 bit phụ tới Fetch Unit trong đó : 52 bit là Pre-decode, 08 bit chẵn lẻ và 16 phần chọn rẽ nhánh Những bit chọn rẽ nhánh được CPU

sử dụng để ccó gắng dự đoán trước những rẽ nhánh bên trong chương trình

Hình 11: Trong bộ vi xử lí của Intel thuộc thế hệ thứ

7 ( Pentium 4 )

Trang 18

Nó sẽ được tính là 102 KB gồm : 64KB cache lệnh + 4KB parity + 26 KB decode + 8KB dữ liệu rẽ nhánh

Pre-Cấu trúc AMD64 dùng 2048 đầu vào BTB (Branch Target Buffer) , có cuìngkích thước với cấu trúc thế hệ trước CPU của AMD , K7 BTB là bộ nhớ nhỏ

mà chứa danh sách tất cả những rẽ nhánh được nhận biết bên trong chươngtrình

BTB của Pentium 4 có 4096 đầu vào trong khi những bộ vi xử lí thuộc thế hệthứ 6 của Intel phần đệm này có 512 đầu vào

Thanh ghi rẽ nhánh khác BHT (Branch History Table) , được AMD gọi

là GHBC (Global History Bimodal Counter) , có 16384 đầu vào trong cấu trúcAMD64 , trong khi Pentium 4 của Intel có 4096 đầu vào , có cùng kích thướcvới BHT của cấu trúc K7 của AMD Thanh ghi này có 02-bit dùng để theo vếtnhững rẽ nhánh có điều kiện " có khả năng nhất " , "có khả năng" , " không cókhả năng" và "không có khả năng nhất "

kế cho PC bởi vì nó không chạy được những chương trình thông thường như :Windows , OFFICE

Do đo giải pháp được tất cả bộ vi xử lí trên thị trường ngày nay của AMD vàIntel là dùng bộ giải mã ( Decoder ) Bên trong CPU có những lệnh như làRISC , những đằng trước của Decoder chỉ có những lệnh CISC

Những lệnh x86 CISC được gọi là " lệnh " , những lệnh bên trong của RISC gọi

là "vi lệnh " hoặc : “micro-op”, “µops” , “ROP”

Cấu trúc AMD64 có kiểu lệnh thứ ba gọi là Macro-op hoặc "MOP" , nó là lệnhđược tạo ra từ Giải mã lệnh AMD64 thực hiện bên trong bằng những Macro-op Khi những Macro-op được đưa tới những Scheduler thích hợp , nó đẩy nhanhgiải mã thành những vi lệnh và sau đó những vi lệnh này được thực hiện

Nếu chúng ta chú ý nhớ rằng một cái gì đó trong cấu trúc mới của Intel cũngđược sử dụng kiểu Macro-op trên chính là đặc điểm Macro-fusion ( ghép hai vilệnh thành một vi lệnh trong một thanh ghi có độ rộng gấp đôi ) Những bộ vi

Trang 19

xử lí có sử dụng Macro-fusion chỉ làm việc với những lệnh rẽ nhánh , còn trongAMD64 dùng Macro-op được dùng trong tất cả các lệnh

Những vi lệnh RISC không thể truy cập trực tiếp , do chúng ta không tạo ranhững phần mềm viết trên tập lệnh này , do đó những lệnh phải đi qua phầnDecoder Mỗi một CPU có tập vi lệnh RISC riêng và không tương thích vớinhững vi lệnh từ CPU khác Có nghĩa là vi lệnh của AMD65 khác với vi lệnhcủa Pentium 4 , khác với cấu trúc vi lệnh của K7

Tuỳ thuộc vào độ phức tạp của lệnh x86 , nó có thể chuyển đổi thành một vài vilệnh RISC

Trong cấu trúc AMD64 , những vi lệnh x86 có thể được chuyển đổi thành nhữngMacro-op được sử dụng trong 03 phần khác nhau :

 Dùng Decoder đơn giản , gọi là DirectPath Single , mà chuyển một lệnhx86 thành một lệnh Macro-op

 Cũng dùng Decoder đơn giản , gọi là DirectPath Double , chuyển đổi 01lệnh x86 thành 02 Macro-op

 Hoặc dùng Decoder phức tạp , gọi là DirectPath Vector , chuyển 01 lệnhx86 thành vài lệnh Macro-op

Ở đây Decoder của AMD64 làm việc như thế nào ?

Trong tầng Pick , hoặc gọi là Scan , CPU tìm kiếm và tách những lệnh hiện thờitrong Instruction Byte Buffer , quyết định phần nào sẽ đượcdùng DirectPath hoặc VectorPath

Sau đó đến tầng giải mã Decode , được phân thành 02 bước , ở đây những lệnhx86 hiện tại được chuyển đổi thành những Macro-op Tầng này tương đươngvới tầng Aligh của CPU K7 Tốc độ giải mã lớn nhất ở đầu ra là 06 Macro-op /chu kì đồng hồ : 03 macro-op cho DirectPath và 03 macro-op cho VectorPath

Những Macro-op đi tới tầng Pack ( tương đương với tầng Decode 1 của K7 ) , ở

đó những lệnh Macro-op được gói lại với nhau , 03 Macro-op được gửi tới tầngtiếp theo - Pack/Decode - sau đó những Macro-op được gửi tới InstructionControl Unit ( tương đương với Reorder Buffer (ROB) của Intel

Ngày đăng: 11/12/2020, 19:55

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w