Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương

Nội dung

1. Tổ chức của Bộ xử lý

2. Tổ chức thanh ghi

3. Chu kỳ lệnh

4. Kỹ thuật đường ống lệnh (Pipelining)

5. Kiến trúc VXL tiên tiến+

12.1 Tổ chức bộ vi xử lý

 Truy xuất lệnh: Bộ xử lý đọc lệnh từ bộ nhớ (thanh ghi, bộ nhớ

cache, bộ nhớ chính).

 Giải mã lệnh: Lệnh được giải mã để xác định hành động nào được

yêu cầu.

 Truy xuất dữ liệu: Việc thực thi một lệnh có thể yêu cầu đọc dữ liệu

từ bộ nhớ hoặc một module vào/ra

 Xử lý dữ liệu: Việc thực thi một lệnh có thể yêu cầu thực hiện một

số phép toán số học hoặc logic trên dữ liệu.

 Ghi dữ liệu: Kết thúc việc thực hiện có thể yêu cầu ghi dữ liệu vào

bộ nhớ hoặc một module vào/ra.

Để thực hiện những việc này, bộ vi xử lý cần lưu tạm thời một số dữ

liệu  cần một bộ nhớ nhỏ bên trong  thanh ghi

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 1

Trang 1

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 2

Trang 2

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 3

Trang 3

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 4

Trang 4

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 5

Trang 5

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 6

Trang 6

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 7

Trang 7

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 8

Trang 8

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 9

Trang 9

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 38 trang xuanhieu 7600
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương

Bài giảng Kiến trúc máy tính - Chương 12: Chức năng và cấu trúc Vi xử lý - Nguyễn Thị Phương
+ 
 Chương 12
 Chức năng và cấu trúc Vi xử lý
+
 Nội dung
 1. Tổ chức của Bộ xử lý
 2. Tổ chức thanh ghi
 3. Chu kỳ lệnh
 4. Kỹ thuật đường ống lệnh (Pipelining)
 5. Kiến trúc VXL tiên tiến
+
 12.1 Tổ chức bộ vi xử lý
 Các yêu cầu xử lý:
  Truy xuất lệnh: Bộ xử lý đọc lệnh từ bộ nhớ (thanh ghi, bộ nhớ 
 cache, bộ nhớ chính).
  Giải mã lệnh: Lệnh được giải mã để xác định hành động nào được 
 yêu cầu.
  Truy xuất dữ liệu: Việc thực thi một lệnh có thể yêu cầu đọc dữ liệu 
 từ bộ nhớ hoặc một module vào/ra
  Xử lý dữ liệu: Việc thực thi một lệnh có thể yêu cầu thực hiện một 
 số phép toán số học hoặc logic trên dữ liệu.
  Ghi dữ liệu: Kết thúc việc thực hiện có thể yêu cầu ghi dữ liệu vào 
 bộ nhớ hoặc một module vào/ra.
 Để thực hiện những việc này, bộ vi xử lý cần lưu tạm thời một số dữ 
 liệu cần một bộ nhớ nhỏ bên trong thanh ghi
+
 Tổ chức VXL
  ALU: khối tính toán số 
 học và logic
  CU: khối điều khiển: 
 kiểm soát việc di 
 chuyển dữ liệu và lệnh 
 vào và ra khỏi bộ xử lý 
 và điều khiển hoạt 
 động của ALU
  Các thanh ghi: lưu trữ 
 dữ liệu tạm thời trong 
 quá trình lệnh được 
 thực hiện 
Cấu trúc bên trong CPU
+
 12.2 Tổ chức thanh ghi
  Các thanh ghi là một loại bộ nhớ. 
  Vai trò của thanh ghi:
 Thanh ghi hiển thị với người Thanh ghi điều khiển và 
 dùng trạng thái
  Cho phép người lập trình ngôn  Được sử dụng bởi CU để điều 
 ngữ assembly hoặc ngôn ngữ khiển hoạt động của bộ vi xử 
 máy sử dụng trong các câu lý và bởi các chương trình hệ 
 lệnh
 điều hành được đặc quyền 
  VD: ADD AX, 300: lấy dữ liệu 
 ở ngăn nhớ 300 cộng với AX (privileged) để kiểm soát việc 
 và ghi kết quả vào AX thực thi chương trình
  VD: thanh ghi PC chứa địa 
  Giảm thiểu các tham chiếu bộ chỉ lệnh tiếp theo của 
 nhớ chính bằng cách sử dụng 
 thanh ghi chương trình
a. Thanh ghi hiển thị với người 
dùng
. Là các thanh ghi lập trình viên có thể sử dụng trong các lệnh 
 để phục vụ cho mục đích viết chương trình của mình
. Phân loại
 . Thanh ghi đa năng: lập trình viên có thể sử dụng các 
 thanh ghi nhóm này cho nhiều mục đích khác nhau
 . Thanh ghi dữ liệu: sử dụng để chứa dữ liệu và không 
 dùng để tính toán địa chỉ toán hạng.
 . Thanh ghi địa chỉ: có thể là thanh ghi đa năng hoặc là 
 thanh ghi dành riêng cho một chế độ địa chỉ cụ thể. 
 . VD: thanh ghi SP (con trỏ đoạn), thanh ghi index, thanh ghi 
 SP (con trỏ ngăn xếp)
 . Mã điều kiện
 . Còn gọi là bit cờ 
 . Là các bit do phần cứng của bộ xử lý đặt theo kết quả của 
 hoạt động
+
 b. Thanh ghi điều khiển và trạng thái
 Bốn thanh ghi cần thiết để thực thi lệnh:
  Thanh ghi PC - Bộ đếm chương trình
  Chứa địa chỉ của lệnh sắp được truy xuất
  Thanh ghi IR – thanh ghi lệnh
  Chứa lệnh đang được truy xuất
  Thanh ghi MAR – thanh ghi địa chỉ bộ nhớ
  Chứa địa chỉ của một vị trí trong bộ nhớ
  Thanh ghi MBR (hoặc MDR) – thanh ghi đệm bộ nhớ 
  Chứa một từ dữ liệu sắp được ghi vào bộ nhớ hoặc từ vừa được đọc ra 
 từ BN
  Một số BXL còn có một hoặc nhiều thanh ghi PSW (program status 
 word - từ trạng thái chương trình): chứa thông tin trạng thái của 
 chương trình đang được thực hiện
+
 b. Thanh ghi điều khiển và trạng thái
 Thanh ghi PSW – Thanh ghi trạng thái chương trình
  Thanh ghi hoặc tập hợp thanh ghi chứa thông tin trạng thái và mã 
 điều kiện
  Các trường hoặc cờ phổ biến gồm:
  Sign: Chứa bit dấu của kết quả của phép tính số học cuối cùng. 
  Zero: Thiết lập khi kết quả bằng 0.
  Carry: Thiết lập nếu một phép tính có nhớ (phép cộng) hoặc vay 
 (phép trừ) vào bit có bậc lớn hơn. Được sử dụng cho các phép tính 
 số học nhiều từ.
  Equal: Thiết lập nếu kết quả so sánh logic là bằng nhau.
  Overflow: Được sử dụng để chỉ định sự tràn số học.
  Interrupt Enable/Disable: Được sử dụng để cho phép hoặc vô hiệu 
 hoá ngắt.
  Supervisor: Cho biết bộ xử lý đang thực hiện trong chế độ giám sát 
 hay chế độ người dùng. Một số lệnh privileged chỉ có thể được thực 
 hiện trong chế độ giám sát, và một số vùng bộ nhớ chỉ có thể được 
 truy cập trong chế độ giám sát.
+ c. Ví dụ tổ chức thanh ghi 
 MC68000, Intel 8086, Intel 80386
 12.3 Chu kỳ lệnh
Bao gồm các tầng sau:
. Truy xuất
 . Đọc lệnh tiếp theo từ bộ nhớ vào bộ vi xử lý
. Thực thi
 . Giải mã opcode và thực hiện hoạt động được chỉ định
. Ngắt
 . Nếu có yêu cầu ngắt được gửi đến, VXL lưu trạng thái 
 hiện tại của chương trình và chuyển sang phục vụ ngắt
Sơ đồ trạng thái chu kỳ lệnh
Luồng dữ liệu, chu kỳ truy xuất
Luồng dữ liệu chu kỳ ngắt
 12.4 Kỹ thuật đường ống Pipelining
. Chu kỳ lệnh được chia thành 6 giai đoạn:
  Truy xuất lệnh (FI – Fetch instruction): Đọc lệnh tiếp theo 
 vào bộ đệm.
  Giải mã lệnh (DI – Decode instruction): Giải mã opcode và 
 nhận diện toán hạng.
  Tính toán địa chỉ toán hạng (CO – Calculate operands): 
 Tính toán địa chỉ hiệu dụng của từng toán hạng nguồn: địa 
 chỉ dịch chuyển, gián tiếp thanh ghi, gián tiếp .v.v....
  Truy xuất toán hạng (FO – Fetch operands): Truy xuất 
 từng toán hạng từ bộ nhớ. Không cần truy xuất toán hạng 
 từ thanh ghi
  Thực thi lệnh (EI – Execute instruction): Thực hiện hành 
 động và lưu trữ kết quả (nếu có) trong vị trí toán hạng đích 
 đã định.
  Ghi toán hạng (WO – Write operand): Lưu kết quả vào bộ 
 nhớ.
Biểu đồ thời gian của pipeline lệnh
Ví dụ: kỹ thuật đường ống lệnh trong 
trường hợp câu lệnh rẽ nhánh
+
 Pipeline lệnh 
 6 giai đoạn
Mô tả khác 
về Pipeline
 Xung đột trong kỹ thuật đường ống 
 (Pipeline Hazard)
. Trong một số trường hợp, kỹ thuật đường ống bị đình trệ 
 do một số xung đột như sau:
 • Xung đột tài nguyên: do nhiều công đoạn dùng chung một 
 tài nguyên.
 • Xung đột dữ liệu: lệnh sau sử dụng kết quả của lệnh trước 
 (một bộ phận phần cứng được dùng để đưa kết quả từ đầu ra 
 ALU trực tiếp vào một trong các thanh ghi đầu vào)
 • Xung đột điều khiển: do rẽ nhánh gây ra (đóng băng kỹ thuật 
 ống dẫn trong một chu kỳ)
 Xung đột
 tài nguyên
 Hazard tài nguyên xảy ra 
 khi hai hoặc nhiều lệnh 
 đã ở trong đường ống 
 cần dùng cùng một tài 
 nguyên
 VD: Lệnh I1 truy xuất 
 toán hạng từ bộ nhớ 
 xung đột với việc truy 
 xuất lệnh I3 việc truy 
 xuất lệnh I3 phai chậm 
 lại 1 chu kỳ (hình b)
 Còn được gọi là Hazard 
 cấu trúc
 RAW
 Hazard
+ 
 Xung đột dữ liệu
 Câu lệnh I2 sử dụng kết quả của câu lệnh I1 (EAX): việc truy xuất toán hạng 
 phải chậm lại 2 chu kỳ đồng hồ để đợi câu lệnh I1 thực hiện xong việc ghi 
 toán hạng
+
 Các loại Hazard dữ liệu 
  Đọc sau khi ghi (RAW)
  Một lệnh sửa đổi một thanh ghi hoặc vị trí bộ nhớ
  Lệnh tiếp theo đọc dữ liệu trong bộ nhớ hoặc vị trí thanh ghi
  Hazard xảy ra nếu việc đọc diễn ra trước khi hoạt động ghi hoàn tất
  Ghi sau khi đọc (WAR)
  Một lệnh đọc một thanh ghi hoặc vị trí bộ nhớ
  Lệnh tiếp theo ghi vào vị trí đó
  Hazard xảy ra nếu thao tác ghi hoàn thành trước khi có thao tác đọc
  Ghi sau khi ghi (WAW)
  Hai lệnh cùng ghi vào 1 vị trí 
  Hazard xảy ra nếu các thao tác ghi diễn ra theo thứ tự ngược với trình 
 tự dự định
+
 Xung đột điều khiển
  Còn được gọi là Hazard nhánh
  Xảy ra khi kỹ thuật đường ống đưa ra dự báo nhánh bị 
 sai so với nhánh thực tế
  Các lệnh được truy xuất sẽ bị loại bỏ
 25/8
+ 6
 12.5 Kiến trúc VXL tiên tiến
 a. Cấu trúc chung của các bộ xử lý tiên tiến 
 b. Các kiến trúc song song mức lệnh 
 c. Kiến trúc RISC
 Kiến trúc máy tính
12.5 Kiến trúc VXL tiên tiến
 a. Cấu trúc chung của các BXL tiên tiến 
 26/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 Các đơn vị xử lý dữ liệu
 Các đơn vị số nguyên (Integer Unit – IU) 
 Các đơn vị số dấu chấm động (Floating Point Unit – FPU) 
 Các đơn vị chức năng đặc biệt: 
  Đơn vị xử lý dữ liệu âm thanh 
  Đơn vị xử lý dữ liệu hình ảnh 
  Đơn vị xử lý dữ liệu vector
 27/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 Bộ nhớ cache
 Được tích hợp trên chip vi xử lý 
 Thường bao gồm 2 mức Cache: 
  Cache L1 gồm 2 phần tách rời: 
  Cache lệnh 
  Cache dữ liệu 
 → Giải quyết xung đột khi nhận lệnh và dữ liệu 
  Cache L2: dùng chung cho lệnh và dữ liệu
 28/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 Đơn vị quản lý bộ nhớ
 Chuyển đổi địa chỉ ảo thành địa chỉ vật lý 
 Cung cấp cơ chế phân trang hoặc phân đoạn 
 Cung cấp chế độ bảo vệ bộ nhớ
 29/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 b. Kiến trúc song song mức lệnh
 Siêu đường ống (Superpipeline và Hyperpipeline) 
 Siêu vô hướng (Superscalar)
 Từ lệnh dài – VLIW (Very Long Instruction Word)
 30/86
 Kiến trúc máy tính
12.5 Kiến trúc VXL tiên tiến
 31/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
VLIW (Very Long Instruction Word) 
 32/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 c. Kiến trúc RISC
 CISC và RISC: 
  CISC – Complex Instruction Set Computer: 
  Máy tính có tập lệnh phức tạp 
  VD: các bộ xử lý 80x86 ... 
  RISC – Reduced Instruction Set Computer: 
  Máy tính có tập lệnh rút gọn 
  VD: các bộ xử lý Sun SPARC, Power PC, ...
 33/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 Các đặc trưng của RISC 
 Số lượng lệnh ít 
 Các lệnh có thời gian thực hiện là 1 chu kỳ máy 
 Độ dài của các lệnh bằng nhau (32 bit) 
 Có ít khuôn dạng lệnh (≤ 4) 
 Có ít chế độ địa chỉ hóa toán hạng (≤ 4) 
 Có nhiều thanh ghi 
 Các lệnh chủ yếu là thao tác giữa thanh ghi với thanh ghi 
 Truy cập bộ nhớ thông qua 2 lệnh LOAD và STORE
 34/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 Các bộ xử lý 4 bit: 4004, 4040 
 Các bộ xử lý 8 bit: 8008, 8080, 8085 
 Các bộ xử lý 16 bit: 8086, 8088, 80186, 80188, 80286 
 Các bộ xử lý 32 bit: họ 80386, 80486, các họ Pentium I, II, III, 4 
 Các bộ xử lý 64 bit: Itanium, Itanium 2, Pentium D, Xeon, Intel 
 Core 2
 35/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 a. Kiến trúc Intel x86 16 bit (IA-16)
 Các thanh ghi bên trong: 16 bit 
 Xử lý phép toán số nguyên với 16 bit 
 Quản lý bộ nhớ theo đoạn 64KB 
 Là kiến trúc mở đầu cho dòng máy tính IBM-PC
 36/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 b. Kiến trúc 32 bit (IA-32) 
 Các thanh ghi bên trong: 32 bit 
 Xử lý phép toán số nguyên với 32 bit 
 Có 3 chế độ làm việc: 
  Chế độ 8086 thực (Real 8086 mode): làm việc như 1 bộ xử lý 8086 
  Chế độ 8086 ảo (Virtual mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-
 bit) 
  Chế độ bảo vệ (Protected mode): 
  Đa nhiệm 32 bit
  Quản lý bộ nhớ ảo 
 Xử lý các phép toán số dấu chấm động (từ 80486)
 37/86
 Kiến trúc máy tính
 12.5 Kiến trúc VXL tiên tiến
 c. Kiến trúc 64 bit (IA-64) 
 Các thanh ghi bên trong: 64 bit 
 Xử lý 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ộ phận trước đó
 Tương thích phần mềm bằng cách giả lập môi trường
 38/86
 Kiến trúc máy tính

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_12_chuc_nang_va_cau_truc.pdf