cấu trúc và chức năng cpu
Trang 1Cấu trúc và chức năng CPU
Giảng viên hướng dẫn : TS.Nguyễn Tiến Dũng
FSSGroup_DT8_K50
Phạm Hải Tuấn Phạm Gia Như Nguyễn Thanh Hải Nguyễn Thị Xuyên Nguyễn Thị Thùy
Trang 3I Tổ chức bộ vi xử lý
Các chức năng của CPU
Nạp lệnh ( Fetch Instructions ) : CPU đọc 1 lệnh từ bộ nhớ
Biên dịch lệnh ( Interpret Instructions ) : Lệnh được mã hóa
để xác định hành động gì được yêu cầu.
Nạp dữ liệu ( Fetch Data ) : Sự thực thi 1 lệnh có thể yêu cầu
dữ liệu đang đọc từ bộ nhớ hoặc từ thiết bị vào ra
Xử lý dữ liệu ( Process Data ) : Một lệnh thi hành có thể phải
sử dụng một vài phép toán số học hoặc logic trên dữ liệu
Ghi dữ liệu ( Write Data ) : Kết quả của một thao tác thực
hiện có thể yêu cầu được ghi vào bộ nhớ hoặc thiết bị vào ra.
Trang 4I Tổ chức bộ vi xử lý ( tiếp)
• Cấu trúc CPU với hệ thống Bus
Trang 5I Tổ chức bộ vi xử lý ( tiếp)
• Cấu trúc bên trong của CPU
Trang 6II Tổ chức thanh ghi
• Là nơi CPU lưu trữ tạm thời dữ liệu và lệnh mà CPU
sẽ thực hiện
• Số lượng và chức năng của các thanh ghi là thay đổi
giữa các bản thiết kế
• Có 2 loại thanh ghi
Thanh ghi người dùng lập trình được (User Visible Registers )
Thanh ghi trạng thái và điều khiển ( Control and Status Registers )
Trang 7II Tổ chức thanh ghi (tiếp)
• Thanh ghi người dùng lập trình được
Thanh ghi đa năng
Có thể được gán nhiều chức năng khác nhau : cho dữ liệu hoặc cho việc
đánh địa chỉ
Thanh ghi dữ liệu
Là các thanh ghi tích lũy
Thanh ghi địa chỉ
Con trỏ đoạn (Segment pointers) : Nắm giữ địa chỉ cơ sở của thanh ghi
Các thanh ghi chỉ số (Index Registers ) :Được sử dụng cho việc đánh địa
chỉ
Con trỏ Stack (Stack pointers) : Thanh ghi chuyên dụng trỏ đến đỉnh
của ngăn xếp (Stack) , cho phép địa chỉ hóa ẩn
Các thanh ghi mã điều kiện (Flags)
Các bit được thiết lập bởi phần cứng CPU như là một kết quả của phép
toán.
Các vấn đề cần quan tâm
Số lượng thanh ghi
Độ dài các thanh ghi
Trang 8II Tổ chức thanh ghi (tiếp)
• Thanh ghi trạng thái và điều khiển
Điều khiển hoạt động của CPU
Các thanh ghi này là ẩn với người sử dụng
Các bộ xử lý khác nhau thì có sự tổ chức thanh ghi là khác nhau.
Có 4 loại thanh ghi cơ bản để thực thi lệnh
Program Counter(PC) : Chứa địa chỉ của lệnh được nạp
Instruction Decoding Register (IR) : Chứa lệnh được nạp gần nhất
Memory Address Register (MAR) : Chứa địa chỉ của một vùng trong bộ nhớ
Memory Buffer Register (MBR) : Chứa từ của dữ liệu được viết vào bộ nhớ
hoặc từ được nạp gần nhất
PSW (Program Status Word ) : Một thanh ghi hoặc 1 tập các thanh
ghi chứa thông tin trạng thái
PSW chứa mã điều kiện và các thông tin trạng thái khác
Trang 9II Tổ chức thanh ghi (tiếp)
• Ví dụ về sự tổ chức các thanh ghi
Trang 10III Chu trình lệnh
• Chu trình vòng lệnh gồm các chu trình con dưới đây
Nạp: đọc lệnh tiếp theo từ bộ nhớ vào CPU
Thực thi: Biên dịch opcode và sử dụng các điều khiển chỉ dẫn
Ngắt: Nếu ngắt được kích hoạt và một ngắt đã xuất hiện, lưu trạng thái
lệnh hiện tại và phục vụ ngắt
Trang 11III Chu trình lệnh (Tiếp)
• Để cụ thể hóa chu trình lệnh, chúng ta phải đưa vào một chu trình con, gọi là chu
trình gián tiếp:
Có thể yêu cầu bộ nhớ truy nhập để truy xuất các operand
Địa chỉ gián tiếp yêu cầu nhiều bộ nhớ truy nhập hơn
Có thể xem như chu trình lệnh phụ thêm vào
Trang 12III Chu trình lệnh (tiếp)
• Biểu đồ trạng thái chu trình lệnh
Trang 13III Chu trình lệnh (tiếp)
• Luồng dữ liệu : Chu kỳ nạp
PC chứa địa chỉ của lệnh tiếp
Kết quả đặt trên bus dữ liệu,
được sao chép tới MR, sau đó tới IR
Trong lúc đó PC được tăng
lên 1
Trang 14III Chu trình lệnh (tiếp)
• Luồng dữ liệu : Chu kỳ gián tiếp
N bit bên phải của MBR được chuyển tới MAR
Điều khiển đơn vị truy xuất bộ nhớ đọc
Kết quả (địa chỉ của operand) được chuyển tới MBR
Trang 15III Chu trình lệnh (tiếp)
• Luồng dữ liệu : Chu kỳ ngắt
Đơn giản
Có thể đoán trước
PC hiện tại được lưu để cho
phép khôi phục sau khi ngắt
Nội dung của PC được sao
chép tới MBR
Vị trí bộ nhớ đặc biệt ( như
con trỏ ngăn xếp) được nạp vào MAR
MBR được ghi vào bộ nhớ
PC được nạp với địa chỉ
của chương trình con quản
lý ngắt
Lệnh tiếp theo ( đầu tiên
của trình quản lý ngắt) có thể được truy xuất
Trang 16IV Kiến trúc Pipeline
• Kiến trúc Pipeline 2 công đoạn
Trang 17IV Kiến trúc Pipeline (Tiếp)
Kiến trúc pipeline 6 công đoạn
• Truy xuất các toán hạng (FO): Truy xuất từng toán hạng từ bộ nhớ Các toán hạng trong các thanh ghi không cần được truy xuất.
• Thực thi lệnh (EI): Thực hiện các điều khiển được chỉ dẫn và lưu kết quả, có thể, tại nơi các toán hạng đích định vị theo lý thuyết.
• Ghi toán hạng (WO) : Lưu kết quả vào trong bộ nhớ.
Trang 18IV Kiến trúc Pipeline (tiếp)
• Biểu đồ thời gian cho kiến trúc Pipeline
Trang 19IV Kiến trúc Pipeline (tiếp)
• Ảnh hưởng của rẽ nhánh trong kiến trúc Pipeline
Trang 20IV Kiến trúc Pipeline (tiếp)
• Kiến trúc Pipeline CPU 6 công đoạn
Trang 21IV Kiến trúc Pipeline (tiếp)
• Phân chia với các lệnh rẽ nhánh
Đa dòng
Đích rẽ nhánh tìm nạp trước
Bộ đệm vòng
Sự dự báo nhánh
Trang 22IV Kiến trúc Pipeline (tiếp)
• Đa dòng
Có 2 xử lý liên lệnh
Tìm nạp trước mỗi nhánh rẽ vào một xử lý liên lệnh riêng biệt
Xử dụng xử lý liên lệnh tương thích
Nạp vào bộ nhớ kết hợp bus & thanh ghi
Nhiều nhánh nạp vào xử lý liên lệnh sau đó là cần thiết
Trang 23IV Kiến trúc Pipeline (tiếp)
• Bộ đệm vòng
Là một bộ nhớ nhỏ tốc độ cao
Duy trì bởi giai đoạn tìm nạp lệnh của pipeline.
Kiểm tra bộ đệm trước khi tìm nạp từ bộ nhớ.
Phù hợp cho các lệnh lặp hoặc lệnh nhảy nhỏ.
Nguyên lý tương tự như một bộ nhớ cache dành cho các lệnh.
Trang 24IV Kiến trúc Pipeline (tiếp)
Predict never taken
Predict always taken
Predict by opcode
Dynamic
Có thể thay đổi trong khi thực thi chương trình
Bao gồm
Taken/Not taken switch
Branch history table( Bảng quá trình rẽ nhánh )
Trang 25IV Kiến trúc Pipeline (tiếp)
• Dự báo nhánh
Static
Predict never taken
Cho rằng lệnh nhảy sẽ không xảy ra
Luôn luôn nạp lệnh tiếp theo
Predict always taken
Cho rằng lệnh nhảy sẽ xảy ra
Luôn luôn nạp lệnh đích
Predict by opcode
Dựa vào opcode của lệnh rẽ nhánh
Cho rằng rẽ nhánh sẽ xảy ra vì opcode của nhánh mà không vì cái khác
Tỷ lệ thành công là hơn 75%
Trang 26IV Kiến trúc Pipeline (tiếp)
• Dự báo nhánh
Dynamic
Taken/Not taken switch
Dựa vào quá trình trước đó
Phù hợp cho vòng lặp
Branch history table( Bảng quá trình rẽ nhánh )
Là một bộ nhớ Cache nhỏ kết hợp với tầng tìm nạp lệnh của pipeline
Mỗi entry trong bảng bao gồm 3 thành phần:
Địa chỉ của lệnh rẽ nhánh,
Một vài bit quá trình ghi lại trạng thái sử dụng của lệnh đó,
Thông tin về lệnh đích
Trang 27IV Kiến trúc Pipeline (tiếp)
• Lưu đồ dự báo
nhánh
Trang 28IV Kiến trúc Pipeline (tiếp)
• Intel 80486 Pipelining
• Tìm nạp (Fetch)
• Giải mã giai đoạn 1 (D1)
• Giải mã giai đoạn 2 (D2)
• Thực hiện (EX)
• Ghi lại (WB)
Trang 29IV Kiến trúc Pipeline (tiếp)
• Ví dụ về kiến trúc Pipeline 80486
Trang 30VI Bộ xử lý PowerPC
• Giới thiệu về PowerPC
Viết tắt của Power Performance Computing – PPC
Một loại vi xử lý RISC do Motorola chế tạo, đang cạnh tranh với Intel Pentium
Được IBM dùng cho dòng máy RS/6000
Được Apple Corporation dùng làm bộ xử lý cho thế hệ kế tiếp của máy tính Macintosh
Số bits 32/64 bits
Trang 31VI Bộ xử lý PowerPC(Tiếp)
• Tổ chức thanh ghi trong PowerPC 64 bits
Thanh ghi tổng quát
Thanh ghi ngoại lệ
Thanh ghi điều khiển và trạng thái dấu phảy động
Thanh ghi điều kiện
Thanh ghi liên kết
Thanh ghi đếm
Trang 32VI Bộ xử lý PowerPC (Tiếp)
• Các thanh ghi người dùng lập trình được trong
PowerPC
Trang 33VI Bộ xử lý PowerPC (Tiếp)
• Định dạng thanh ghi PowerPC
Trang 34VI Bộ xử lý PowerPC (Tiếp)
• Sự thể hiện của các bit trong thanh ghi điều kiện
Trang 35VI Bộ xử lý PowerPC (Tiếp)
• Xử lý ngắt trong PowerPC
Các ngắt được chấp nhận trong PowerPC Bảng ngắt