Bộ xử lý trong máy tính
Trang 1Chương II: Các thành phần cơ
bản của máy tính số
2.1 Bộ xử lý 2.2 Bộ nhớ và thiết bị lưu trữ ngoài
2.3 Thiết bị nhập xuất dữ liệu
Trang 2 CPU là bộ phận thi hành lệnh CPU lấy lệnh từ
bộ nhớ trong và lấy các số liệu mà lệnh đó xử
lý CPU thực thi lệnh/ điều khiển việc thực thi lệnh
Trang 4Slide 3
h2 Chương I Chức năng
Chương II Thành phần cơ bản
II 1 Đơn vị điều khiển (CU)
II 2 Đơn vị số học và logic (ALU)
II 3 Thanh ghi
Chương III Cơ chế hoạt động
III 1 Chu trình xử lý lệnh
III 1 1 Lấy chỉ lệnh và giải mã
III 1 2 Thực thi chỉ lệnh
III 2 Tập lệnh
Chương IV Tăng hiệu năng
IV 1 Tăng hiệu năng Bộ xử lý
IV 1 1 Kiến trúc song song
a Đường ống
b Siêu đường ống
c Siêu vô hướng
d Tăng độ dài từ lệnh (VLIW)
IV 1 2 CISC và RISC
IV 2 Tăng hiệu năng và độ tin cậy hệ thống (nhiều ALU và nhiều CPU)
Trang 52.1.1 Chức năng
Điều khiển: điều khiển tất cả các đơn vị còn
lại của máy tính, việc điều khiển này được thực hiện bởi đơn vị điều khiển CU
• Lấy chỉ lệnh, dữ liệu từ bộ nhớ và ghi dữ liệu vào bộ nhớ
• Điều khiển ALU th ực hiện các tính toán
• Điều khiển vào ra
Tính toán: thực hiện hầu hết các phép tính toán số học, các phép logic, việc tính toán được thực hiện bởi đơn vị số học ALU
Trang 7Chân cắm chíp vi
xử lý trong bo
mạch chủ của PC, chíp vxl được đi kèm với quạt làm mát
Trang 8• Kiểm tra xem một số có bằng 0 ?
• Vận chuyển một nhóm dữ liệu từ vùng này của bộ
nhớ sang vùng khác.
• …
và được gọi là chỉ lệnh ngôn ngữ máy/lệnh
mã máy (machine language instructions).
Trang 9Chỉ lệnh /Lệnh mã máy(t)
• Mỗi lệnh mã máy thông thường chứa: mã
lệnh/tác vụ, địa chỉ toán hạng nguồn, địa chỉ toán hạng kết quả, lệnh kế tiếp (thông thường thì thông tin này ẩn)
• Ví dụ về một lệnh mã máy cộng 32 bit một giá trị tức thời vào thanh ghi và lưu vào một thanh ghi khác
trong kiến trúc MIPS (Microprocessor without
Interlocked Pipeline Stages
Trang 10Chỉ lệnh (t)
cao sẽ được chuyển đổi sang ngôn ngữ máy
dựng bằng một lệnh mã máy hoặc một chuỗi nhiều lệnh mã máy), các chỉ lệnh này được
giải mã và được thực thi.
cài đặt sẵn trong CPU Các chỉ lệnh trong tập lệnh khác nhau về số lượng và định dạng và phụ thuộc vào từng máy tính
Trang 11a Thanh ghi
Là bộ nhớ đặc biệt có tốc độ cao dung lượng nhỏ được cấu tạo từ những vi mạch điện tử nằm ngay trong bộ xử lý nhằm lưu trữ những
dữ liệu đang được thao tác bởi CPU
Kích thước của thanh ghi, đo bằng bits, là bội
số của 8 (8, 16, 32, 64 ) chỉ dung lượng mà
thanh ghi đó có thể lưu trữ đồng thời cũng là lượng dữ liệu mà bộ xử lý có thể tính toán tại một thời điểm Trong một số trường hợp người
ta sử dụng kích thước thanh ghi để đo “kích
cỡ” của bộ xử lý Ví dụ bộ vi xử lý 32 bits.
Trang 12a.Thanh ghi (t)
IR: Thanh ghi ch ỉ lệnh (IR_Instruction Register) chứa
nội dung chỉ lệnh
PC: Thanh ghi đếm chương trình/Con đếm chương trình
(PC_Program Counter) : Tự động tăng để trỏ tới lệnh kế
tiếp trong chương trình.
Thanh ghi lưu trữ dữ liệu
Thanh ghi lưu trữ địa chỉ
Ý nghĩa của thanh ghi được gắn liền với các thiết kế của
bộ vi xử lý cụ thể, nên không thể có một chuẩn chung về thanh ghi cho các thế hệ bộ xử lý khác nhau.
Trang 13b Đơn vị điều khiển (CU)
Điều khiển mọi hoạt động của máy tính:
• Nhận chỉ lệnh được lưu trong bộ nhớ
• Giải mã chỉ lệnh nhờ bộ giải mã chỉ lệnh (Instruction decoder)
• Thực hiện : Đảm bảo thi hành các chỉ lệnh một cách tuần tự và tác
động các mạch chức năng để thi hành các lệnh
Modul cần thiết:
• Thanh ghi: IR, PC
• Giải mã chỉ lệnh: Giải mã ý nghĩa của chỉ lệnh
• Tuần tự (sequencer/microsequencer): Trong các máy sử dụng chỉ lệnh phức hợp (CISC), một chỉ lệnh có thể được thực hiện thông qua việc thực hiện một chuỗi các vi chỉ lệnh
(microcode/microinstruction) Các vi chỉ lệnh này được lưu trữ trong một vùng nhớ đặc biệt của CU gọi là control
cách tuần tự
Trang 14c Đơn vị số học và logic (ALU)
Thực hiện thao tác đơn giản
• Số học( v ới số nguyên *) giữa hai số : +,-,*,
• Logic thực hiện trên các bits: OR, AND, NOT, dịch bit
• Rẽ nhánh: thay đổi thứ tự thực thi các chỉ lệnh tuần tự dựa trên điều kiện.
Trang 15c Đơn vị số học và logic (ALU)(t)
• Thiết kế ALU đơn giản đồng thời thiết kế một bộ xử lý kèm theo có thể xử lý theo hai cách tiếp cận 1 và 2 Bộ xử lý đó gọi là đồng xử
Trang 16Đường dữ liệu
Dữ liệu chuyển từ bộ nhớ tới các
thanh ghi trong processor ALU lấy dữ
liệu từ các thanh ghi, xử lý và lưu kết
quả vào một thanh ghi đầu ra Kết quả
này có thể được đưa ra ngoài bộ nhớ
hoặc được sử dụng làm dữ liệu vào
Trong rất nhiều thiết kế ALU nhận từ
đầu vào hoặc tạo ra ở đầu ra một tập
các mã điều kiện (condition
code),được lưu trong thanh ghi trạng
thái (status registry) Các mã này
được sử dụng để xác định các tình
huống như: nhớ (carry-in, carry-out),
tràn bộ đệm (overflow), chia cho 0
(divide by zero) v v.
Đường dữ liệu (Data Path): Tập hợp các đơn vị chức nămg (ALU + thanh ghi + bus nối kết) thực hiện các thao tác xử lý dữ liệu
Trang 172.1.3 Cơ chế hoạt động
Việc thi hành một lệnh mã máy có thể chia thành các bước:
• Đọc chỉ lệnh (IF: Instruction Fetch)
• Giải mã chỉ lệnh (ID: Instruction Decode)
• Thi hành chỉ lệnh (EX: Execute)
• Lưu trữ kết quả (RS: Result Storing)
Mỗi bước được thi hành trong một hoặc nhiều chu
kỳ xung nhịp
Bộ xử lý thực thi chương trình bằng cách lặp đi lặp lại những bước này cho tới chỉ lệnh cuối cùng.
Trang 182.1.3 Cơ chế hoạt động (t)
Đọc chỉ lệnh: Chỉ lệnh được đọc từ bộ nhớ
trong dựa vào thanh ghi PC và được đưa vào thanh ghi chỉ lệnh IR
Giải mã chỉ lệnh: Chỉ lệnh trong IR được
giải mã nhờ bộ giải mã Bộ giải mã sẽ giải
mã dạng công việc và gửi các tín hiệu ra lệnh thực hiện các thao tác tới từng đơn vị
Trang 192.1.3 Cơ chế hoạt động (t)
Thi hành chỉ lệnh: Dựa trên kiểu của chỉ lệnh được
giải mã, một trong các tác vụ sau có thể được thực hiện:
• Liên hệ tới bộ nhớ (ghi dữ liệu ra bộ nhớ trong hoặc lấy dữ liệu
từ bộ nhớ vào thanh ghi)
• ALU thực hiện một phép tính
• ALU thực hiện một phép nhảy (tính toán đưa ra địa chỉ tới lệnh
kế tiếp)
Lưu kết quả: Lưu trữ kết quả trong thanh ghi cùa
ALU, kết quả này có thể được chuyển tới bộ nhớ
trong.
Trang 20Tổ chức của máy tính đơn giản sử
dụng một bộ xử lý dựa trên mô hình
cổ điển của Von Neumann
Đặc điểm hoạt động:
Một chương trình sẽ được sao
chép từ đĩa cứng vào bộ nhớ
trong cùng với các thông tin
cần thiết cho chương trình
hoạt động, các thông tin này
được nạp vào bộ nhớ trong từ
kết quả trở lại bộ nhớ trong
hay cho xuất kết quả ra bộ
phận xuất thông tin (màn hình
hay máy in)
Trang 21Cơ chế điều khiển tuần tự theo mô hình VonNeumann
Trang 221 Đọc chỉ lệnh
1
Trang 232 Giải mã chỉ lệnh
a Phần lệnh
2
Trang 242 Giải mã lệnh (t)
Phần địa chỉ
2
Trang 253 Thực thi chỉ lệnh
Lấy dữ liệu
3
Trang 264 Lưu kết quả
4
Trang 272.1.4 Một số chỉ tiêu đánh giá hiệu năng
Hiệu năng của bộ xử lý được đo bằng số lượng các chỉ lệnh có thể được thực thi trong một đơn vị thời gian thể hiện qua các chỉ số sau:
• Triệu lệnh trên giây (Millons Intructions Per Second
_MIPS)
• Tần số đồng hồ (Clock)
• Ví dụ; Hiệu năng máy tính với tần số đồng hồ là 500 MHz
• Số chu kỳ cho một lệnh (CPI) hoặc IPC
Trang 28Bộ xử lý cho máy tính PC
Pentium:Bộ vi xử lý chiến lược của Intel
Celeron: Phiên bản rẻ tiền hơn và hiệunăng thấp hơn so với Pentum
Athlon: Bộ vi xử lý của AMD cạnh tranhvơi Pentium
Duron: Giống Celeron của Intel do AMD sản xuất
…
Trang 30CPUZ v.1.46
Trang 312.1.5.Tăng hiệu năng bộ xử lý (TK)
a.Kỹ thuật song song: các giai đoạn khác
nhau của nhiều lệnh được thi hành cùngmột lúc
b.CISC và RISC
Trang 32Kỹ thuật đường ống
Mỗi chỉ lệnh thành nhiều bước
CPU được thiết kế bao gồm một số đơn vị chức năng, mỗi đơn vị chức năng sẽ thực hiện một bước.
Kỹ thuật này khiến các lệnh được thực hiện song song, đồng thời và làm tăng tốc độ xử lý
Trang 33Kỹ thuật siêu đường ống
Là một cải tiến của kiến trúc đường ống, chỉ lệnh tiếp theo được bắt đầu trước khi kết thúc một bước của chỉ lệnh hiện tại
Trang 34Kỹ thuật siêu vô hướng
Trang 35Tăng độ dài từ lệnh
Chiều dài của một chỉ lệnh sẽ dài ra bởi rất nhiều tác vụ được định nghĩa trong đó.
Trang 36b RISC và CISC
Các chỉ lệnh ở dạng phức hợp
Các chỉ lệnh được phân tích nhỏ thành vi chỉ lệnh để thực thi nhờ vi chương trình
Độ dài cũng như kích thước các chỉ lệnh thay đổi
Trang 372.1.6.Tăng hiệu năng và độ tin cậy hệ thống
Nhiều CPU: Nhiều bộ xử lý song song
và mỗi bộ xử lý có một nhiệm vụ (chứcnăng) định sẵn Khi có một sai sót xảy
ra, bộ xử lý sẽ thực hiện việc chuyển đổi
và những bộ xử lý còn lại sẽ chia nhaucông việc đang được thực hiện dở
Trang 38a Máy tính SISD
Trang 39a Máy tính SISD(t)
Đơn vị điều khiển CU nhận về một lệnhrồi chuyển cho một trong các ALU thựchiện, đồng thời CU nhận về các lệnh tiếptheo, rồi chuyển cho một trong những
ALU khác đang rỗi thực hiện, quá trìnhnày chỉ dừng lại khi mọi ALU đã bận
Chiến lược làm việc này có hiệu quả khithời gian thực hiện một lệnh hơn thời
gian lấy lệnh
Trang 40b Máy tính SIMD (Vectơ)
Trang 41b Máy tính SIMD (Vectơ)
Không phải chỉ có một biến đơn cho mỗilối vào ALU mà có một vector n lối vào
ALU thực sự là một ALU vector, nó cókhả năng thực hiện một phép toán như
là phép cộng vector đối với 2 vector lốivào và đưa ra vector kết quả
Trang 42c Máy tính SIMD (Mảng)
Trang 44d Máy tính MIMD
Trang 45 Máy tính loại này có nhiều CPU, mỗi CPU thực hiện một chương trình khác nhau, các CPU có thể cùng chia sẻ một vùng nhớ chung (được gi
là shared memory).
Mỗi bộ xử lý có thể được trang bị một bộ nhớ
cục bộ riêng, các bộ xử lý khác không truy cập được, Bộ nhớ cục bộ được sử dụng để chứa
các đoạn mã chương trình hoặc các phần tử dữ liệu không được sử dụng chung Các bộ xử lý
khi truy cập bộ nhớ cục bộ riêng của mình không
sử dụng bus chính dùng chung, nhờ vậy làm
giảm rất nhiều việc truyền thông trên bus chính.
Trang 47 CPI (Cycles Per Instruction): Chu kỳ cho một lệnh
CPU (Central Processing Unit): Đơn vị xử lý trung tâm
FPU (Floating Point Unit): Đơn vị xử lý dấu chấm động
Instruction Set: Tập lệnh
IR (Instruction Register): Thanh ghi chỉ lệnh
Machine Language Instruction: Chỉ lệnh ngôn ngữ máy
Microcode/ Microinstruction: Vi chỉ lệnh
Microprogram: Vi chương trình
Trang 48Chỉ mục
MIMD (Multiple Intruction stream Multiple Data stream):
Máy tính nhiều dòng chảy lệnh nhiều dòng chảy dữ liệu
MIPS (Million Instruction Per Second): Triệu lệnh trên
SIMD ( Single Intruction stream Multiple Data stream):
Máy tính một dòng chảy lệnh và nhiều dòng chảy dữ liệu
SISD (Single Intruction stream Single Data stream): Máy
tính một dòng chảy lệnh và một dòng chảy dữ liệu
Trang 49Chỉ mục
ống
lệnh dài
Trang 50cao thành chương trình mã máy của
máy tính đang sử dụng