THANH GHI ĐA NĂNG thanh ghi dữ liệu 1 Là các thanh ghi 16 bit,chia ra làm 2 nửa cao và thấp gồm các thanh ghi 8 bit : AL,AH,BL,BH,CL,CH,DL,DH DX :dùng cùng với AX trong nhân chia các
Trang 1CẤU TRÚC VÀ CHỨC NĂNG CỦA VI XỬ LÝ
Trang 2NỘI DUNG CHÍNH
Trang 4CPU VÀ HỆ THỐNG BUS
Trang 5CẤU TRÚC BÊN TRONG CỦA CPU
Trang 6 Là 1 thành phần quyết định chủ yếu các thiết kế.
Là mức cao nhất của hệ thống phân cấp bộ nhớ
Trang 7THANH GHI NGƯỜI DÙNG CÓ THỂ NHÌN THẤY
Thanh ghi đa năng
Thanh ghi đoạn
Thanh ghi con trỏ
Thanh ghi chỉ số
Thanh ghi cờ
Trang 8THANH GHI ĐA NĂNG (thanh ghi dữ liệu )(1)
Là các thanh ghi 16 bit,chia ra làm 2 nửa cao và thấp gồm các thanh ghi 8 bit : AL,AH,BL,BH,CL,CH,DL,DH
DX :dùng cùng với AX trong nhân chia các số 16
bit,hay dung để chứa các địa chỉ cổng vào ra dữ liệu trực tiếp
Trang 9THANH GHI ĐA NĂNG (ví dụ)
ADD 3,4
Kết quả nằm trong thanh ghi AL
MOV AX, 24H ; gán AX= 24h
MOV BX, 1234H; gán BX =1234H
ADD AX, [ BX]; cộng AX với địa chỉ của ô nhớ BX
Trang 10THANH GHI ĐOẠN
Gồm các thanh ghi 16bit :CS,DS,SS,ES
Dùng để định địa chỉ đoạn vùng nhớ 1MB bằng cách chia thành 16đoạn 64KB
Phạm vi 0 =>FFFFF =220 địa chỉ/ô nhớ
Trang 11THANH GHI CON TRỎ
Chứa địa chỉ bên trong của đoạn(gọi là địa chỉ lệch)
Địa chỉ lệch :là độ lệch so với địa chỉ đầu đoạn
Gồm các thanh ghi 16bit :BP,SP,IP
Trang 12THANH GHI CHỈ SỐ
SI: thanh ghi chỉ số nguồn
DI: thanh ghi chỉ số đích
Trang 14CÁC THANH GHI KHÁC
Có thể thanh ghi trỏ tới
Process control blocks (khối điều khiển xử lý)
Interrupt Vectors (vector ngắt)
Thiết kế CPU và thiết kế hệ điều hành có liên kết chặt chẽ
Trang 15VÍ DỤ CẤU TẠO THANH GHI
Trang 16CHU KỲ GIÁN TIẾP
Có thể yêu cầu truy cập bộ nhớ để lấy toán hạng
Địa chỉ gián tiếp đòi hỏi truy cập bộ nhớ nhiều hơn
Có thể được coi như thêm chu kỳ lệnh nhỏ
Trang 17CHU KỲ LỆNH GIÁN TIẾP
Trang 18LUỒNG DỮ LIỆU( LẤY LỆNH)
Phụ thuộc vào thiết kế của CPU
Fetch(LẤY)
Thanh ghi PC chứa địa chỉ của lệnh tiếp theo
Địa chỉ thì được di chuyển tới MAR
Hàng địa chỉ trên bus địa chỉ
Đơn vị điều khiển thì yêu cầu bộ nhớ đọc
Hàng kết quả trên bus dữ liệu, được copy tới MBR sau
đó tới IR
Trong khi đợi lấy lệnh tiêp theo PC tăng lên mức 1
Trang 19LUỒNG DỮ LIỆU ( LẤY DỮ
LIỆU)
Thanh ghi IR được kiểm tra
Nếu địa chỉ gián tiếp thì chu kỳ lệnh gián tiếp được thi hành
N bit ở phía bên phải nhất của MBR được di chuyển tới MAR
Đơn vị điều khiển thì yêu cầu bộ nhớ đọc
Kết quả (địa chỉ của toán hạng) đưa tới MBR
Trang 20LUỒNG DỮ LIỆU (sơ đồ lấy lệnh)
Trang 21LUỒNG DỮ LIỆU (sơ đồ lấy lệnh gián tiếp)
Trang 22LUỒNG DỮ LIỆU ( THI HÀNH)
Cho phép lấy nhiều dạng
Phụ thuộc vào lệnh đang thi hành
Trang 23LUỒNG DỮ LIỆU ( NGẮT)
Đơn giản
Có thể dự đoán
Dòng PC được lưu lại, cho phép lấy lại sau khi ngắt
Những nội dung của PC được copy sang MBR
Vị trí đặc biệt của bộ nhớ đưa tới MAR
Trang 24LUỒNG DỮ LIỆU ( SƠ ĐỒ NGẮT)
Trang 25TÌM NẠP
Lấy địa chỉ của bộ nhớ chính
Sự thi hành thường không được đưa tới bô nhớ chính
Có thể lấy lệnh tiếp theo trong khoảng thời gian đó
Sự thi hành của dòng lệnh
Lệnh tìm nạp được gọi
Trang 26CẢI THIỆN HIỆU SUẤT
Nhưng không tăng gấp đôi:
Tìm nạp thường ngắn hơn so với thực hiện
Nạp trước nhiều hơn 1 lệnh.
Bất kỳ nhảy hoặc nhánh có nghĩa là lệnh tìm nạp trước không phải là lệnh yêu cầu
Thêm nhiều giai đoạn để cải thiện hiệu suất
Trang 28SƠ ĐỒ THỜI GIAN HOẠT ĐỘNG CỦA PIPELINE
Trang 29TÁC ĐỘNG CỦA RẼ NHÁNH CÓ ĐIỀU KIỆN VÀO PIPELINE
Trang 30Nguy hiểm Pipeline
Pipeline, hoặc 1 vài đoạn của pipeline, phải được ngăn
Các loại nguy hiểm
Resource
Data
Control
Trang 31NGUY HẠI VỀ TÀI NGUYÊN
Hai hoặc nhiều lệnh trong pipeline cần sử dụng tài nguyên.
Thực hiện nối tiếp thay vì song song trong mỗi phần của đường ống.
Còn được gọi là nguy hiểm về cấu trúc.
Trang 32Nguy hại về dữ liệu
Tranh chấp trong việc tiếp cận một vị trí toán hạng
Hai lệnh được thực hiện theo thứ tự
Cả hai truy cập vào một bộ nhớ riêng hoặc thanh ghi toán hạng.
Nếu theo thứ tự không có vấn đề gì xảy ra.
Nếu trong một đường ống dẫn, giá trị toán hạng có thể được cập nhật để xuất kết quả khác nhau từ thực hiện tuần tự nghiêm ngặt.
Trang 33SƠ ĐỒ NGUY HẠI VỀ DỮ LIỆU
Trang 34CÁC LOẠI NGUY HIỂM DỮ LIỆU
Đọc sau ghi
1 lệnh thây đổi vị trí thanh ghi hoặc bộ nhớ.
Kế tiếp lệnh đọc dữ liệu tại điểm đó
Nguy hiểm nếu đọc trước khi ghi được hoàn tất.
Ghi sau đọc
1 lệnh đọc vị trí thanh ghi hoặc bộ nhớ
Kế tiếp lệnh ghi vào vi trí.
Nguy hiểm nếu ghi hoàn tất trước đọc.
Ghi sau ghi
Cả 2 lệnh ghi vào cùng 1 vị trí.
Nguy hiểm nếu ghi theo trình tự ngược lại.
Trang 35SƠ ĐỒ NGUY HIỂM TÀI NGUYÊN
Trang 36NGUY HIỂM ĐIỀU KHIỂN
Còn gọi là nguy hiểm rẽ nhánh
Pipeline tạo ra quyết định sai về dự báo nhánh
Lệnh đưa vào pipeline sau đó phải được loại bỏ
Trang 37Nhiều luồng
Có 2 pipelines
Tìm nạp trước mỗi nhánh vào một pipeline riêng biệt
Sử dụng pipeline phù hợp
Dẫn tới tranh chấp bus và thanh ghi
Nhiều nhánh dẫn đến luôn luôn cần dùng pipeline
Trang 38TÌM NẠP TRƯỚC NHÁNH MỤC TIÊU
Nhánh mục tiêu của chi nhánh là Tìm nạp trước ngoài lệnh sau đây:
Giữ mục tiêu cho đến khi chi nhánh được thực hiện
Được sử dụng bởi IBM 360/91
Trang 39VÒNG ĐỆM
Bộ nhớ cực nhanh
Duy trì bởi tìm nạp trạng thái của đường ống
Kiểm tra bộ đệm trước khi lấy từ bộ nhớ
Rất tốt cho vòng nhỏ hoặc nhảy
Như bộ nhớ cache
Trang 40SƠ ĐỒ VÒNG LẶP
Trang 41DỰ ĐOÁN NHÁNH(1)
Dự đoán không bao giờ xảy ra:
Giả định nhảy sẽ không xảy ra.
Luôn luôn tìm nạp lệnh kế tiếp.
Dự đoán luôn thực hiện:
Giả định nhảy sẽ xảy ra.
Luôn tìm nạp lệnh đích.
Trang 42DỰ ĐOÁN NHÁNH(2)
Dự đoán bởi mã máy
Một số lệnh có khả năng dẫn đến bước nhảy hơn các lệnh khác.
Có thể lên đến 75% thành công.
Chuyển đổi thực hiện/không thực hiện
Dựa vào lịch sử trước đó
Tốt cho các vòng lặp
Dựa trên mối tương quan
Trong các nhánh vòng lặp đóng, lịch sử là dự đoán tốt.
Trang 43DỰ ĐOÁN NHÁNH(3)
Nhánh bị làm trễ
Không có bước nhảy cho đến khi bạn tác động
Sắp xếp lại các lệnh
Trang 44Sơ đồ dự đoán nhánh
Trang 45Sơ đồ dự đoán trạng thái nhánh
Trang 46Xử lý nhánh
Trang 47Pipelining trong Intel 80486
Lấy:
Từ bộ nhớ cache hay bộ nhớ ngoài
Đưa vào một trong hai bộ đệm prefetch 16-byte
Điền vào bộ đệm với dữ liệu mới ngay sau khi dùng dữ liệu cũ
Trung bình có 5 lệnh lấy trên 1 tải
Các trạng thái độc lập để giữ bộ đệm full
Giải mã trạng thái 1: Tất cả mã máy và giải quyết các chế
độ thông tin được giải mã trong trạng thái D1 Các thông tin cần thiết, cũng như thông tin lệnh dài, được bao gồm trong nhiều nhất là 3 byte đầu tiên của chỉ lệnh
Trang 48Pipelining trong Intel 80486
Giải mã trạng thái 2
• Giải mã trạng thái 2: Giai đoạn D2 mở rộng mỗi mã máy
thành tín hiệu điều khiển cho ALU Nó cũng kiểm soát tính toán các chế độ giải quyết phức tạp hơn
• Thực hiện: Giai đoạn này bao gồm các hoạt động ALU, truy cập bộ nhớ cache, và thanh ghi cập nhật
Ghi lại:
Cập nhật thanh ghi và các cờ
Kết quả gửi đến bộ nhớ cache và bus giao tiếp ghi bộ đệm
Trang 49Ví dụ về xử lý đường ống trong 80486
Trang 50Pentium 4 Registers
Trang 51Thanh ghi EFLAGS
Trang 52Thanh ghi điều khiển
Trang 53Thanh ghi ánh xạ MMX
MMX là thanh ghi dùng 1 số dữ liệu 64bit
Sử dụng 3bit trong trường thanh ghi địa chỉ
8 thanh ghi
Trong thực tế, bộ vi xử lý không bao gồm thanh ghi MMX cụ thể Thay vào đó, bộ vi xử lý sử dụng một kỹ thuật khử răng cưa
Trang 54Ánh xạ của thanh ghi MMX tới thanh ghi dấu chấm động
Trang 55 Các ngoại lệ được lập trình: Đây là lệnh tạo ra một ngoại lệ (ví dụ, INTO, INT
3, INT, và BOUND)Interrupt vector table
Tất cả các loại ngắt được gán một con số, và con số này được sử dụng để chỉ vào bảng
Có 256 * 32 bit vector ngắt
Có 5 lớp ưu tiên
Trang 56Các thuộc tính ARM
RISC
Trang 57Tổ chức ARM đơn giản
Trang 58Tổ chức bộ xử lý ARM
Có rất nhiều biến thể phụ thuộc vào phiên bản ARM
Trao đổi dữ liệu giữa bộ xử lý và bộ nhớ thông qua bus dữ liệu
Lệnh đi qua bộ giải mã trước khi thực hiện
Xử lý đường ống và kiểm soát thế hệ tín hiệu trong đơn vị điều khiển
Các dữ liệu được đặt trong tập thanh ghi, bao gồm một tập các thanh ghi 32-bit
Lệnh xử lý dữ liệu ARM thường có hai thanh ghi nguồn, Rn và Rm
Luân chuyển hoặc thay đổi trước ALU
Trang 59 Một số thanh ghi dành riêng cho mỗi chế độ đặc quyền
Thay đổi mau lẹ trong bối cảnh
• Ngoại lệ :
5 chế độ đặc quyền
Nhập vào trường hợp ngoại lệ được
Thay thế một số thanh ghi cho người sử dụng thanh ghi
tránh hư hỏng
Trang 60Tổ chức thanh ghi trong ARM
Bộ vi xử lý ARM có tổng số 37 thanh ghi 32-bit
31thanh ghi đa năng
Sáu thanh ghi trạng thái chương trình
16 thanh ghi số và một hoặc hai thanh ghi trạng thái chương trình hiển thị
Trang 61Thanh ghi đa năng
Bình thương R13 là con trỏ ngăn xếp(SP)
Mỗi 1 chế độ ngoại lệ thì có R13 riêng biệt
R14 thnah ghi liên kết (LR)
Chương trình con và chế độ ngoại lệ địa chỉ trả lại
R15 chương trình đếm
Trang 62chứa cờ nhìn thấy trong người dùng chế độ, và có thể được
sử dụng để ảnh hưởng đến hoạt động của một chương trình
Trang 63Chương trình xử lý ngắt trong ARM
Hỗ trợ 7 loại ngoại lệ
Thực hiện buộc phải từ vector ngoại lệ Nhiều
trường hợp ngoại lệ xử lý theo thứ tự ưu tiên
Xử lý tạm dừng thực hiện sau khi lệnh hiện hành
Trạng thái xử lý lưu giữ trong SPSR cho ngoại lệ
Địa chỉ lệnh thực hiện đưa vào thanh ghi liên kết
Trở lại bằng cách di chuyển SPSR để CPSR và R14 với
máy tính(PC)