KTMT-PHD
Giới thiệu kiến trúc máy
tínhNội dung
2010 Giới thiệu kiến trúc máy tính 2
Kiến trúc và tổ chức máy tính
Cấu trúc máy tính và các chức năng các bộ phận
Lịch sử máy tính
Kiến trúc Von Neumann
Kiến trúc architecture
Kiến trúc hiện đại
Biểu diễn dữ liệu máy tínhKiến trúc vs. tổ chức
2010 Giới thiệu kiến trúc máy tính 3
Tổ chức máy tính là khoa học nghiên cứu về các bộ
phận của máy tính và phương pháp làm việc của
chúng
Kiến trúc máy tính là khoa học nghiên cứu và lựa
chọn kết nối các bộ phận để tạo nên các máy tính
đáp ứng mục tiêu chức năng, hiệu năng và chi phí:
Hiệu năng: càng nhanh càng tốt
Chức năng: càng nhiều càng tốt
Chi phí: càng rẻ càng tốtKiến trúc vs. tổ chức
2010 Giới thiệu kiến trúc máy tính 4
Ba thành phần chính của kiến trúc
Kiến trúc tập lệnh
Vi kiến trúc
Thiết kế hệ thốngKiến trúc vs. tổ chức
2010 Giới thiệu kiến trúc máy tính 5
Kiến trúc tập lệnh: là hình ảnh khái quát của hệ
thống máy tính ở mức ngôn ngữ máy gồm có:
Tập lệnh
Các chế độ địa chỉ bộ nhớ
Các thanh ghi
Định dạng dữ liệu và địa chỉKiến trúc vs. tổ chức
2010 Giới thiệu kiến trúc máy tính 6
Vi kiến trúc cách tổ chức hay mô tả máy tính ở mức
thấp liên quan đến:
Kết nối các bộ phận phần cứng
Tương tác giữa các bộ phận để triển khai kiến trúc tập
lệnhKiến trúc vs. tổ chức
2010 Giới thiệu kiến trúc máy tính 7
Thiết kế hệ thống liên quan đến tất cả các bộ phận phần
cứng khác bên trong hệ thống máy tính như
Kết nối các hệ thống: buýt
Điều khiển và phân cấp bộ nhớ
Các cơ chế giảm tải cho CPU như DMA
Vấn đề đa xử lýSơ đồ khối chức năng
2010 Giới thiệu kiến trúc máy tính 8Các bộ phận chính - CPU
2010 Giới thiệu kiến trúc máy tính 9
CPU:
Nạp các lệnh từ bộ nhớ và thực thi chúng
CPU gồm có:
Đơn vị điều khiển (CU)
Đơn vị số học và lô gíc (ALU)
Các thanh ghiCPU
2010 Giới thiệu kiến trúc máy tính 10CPU
2010 Giới thiệu kiến trúc máy tính 11Bộ nhớ
2010 Giới thiệu kiến trúc máy tính 12
Bộ nhớ trong
Lưu các lệnh và dữ liệu cho CPU xử lý
Cá loại
ROM - Bộ nhớ chỉ đọc lưu các lệnh và dữ liệu cho hệ thống
RAM - Bộ nhớ truy nhập ngẫu nhiên lưu các lệnh và dữ liệu
cho hệ thống và người dùngBộ nhớ
2010 Giới thiệu kiến trúc máy tính 13Thiết bị ngoại vi
2010 Giới thiệu kiến trúc máy tính 14
Thiết bị vào: điều khiển và nhập dữ liệu
Bàn phím
Chuột
Ổ đĩa
Máy quét
Thiết bị ra: xuất dữ liệu
Màn hình
Máy in
Máy vẽ
Ổ đĩaThiết bị ngoại vi
2010 Giới thiệu kiến trúc máy tính 15Buýt
2010 Giới thiệu kiến trúc máy tính 16
Buýt hệ thống
Tập hợp dây dẫn nối CPU với các bộ phận khác của máy
tính
3 loại:
Buýt địa chỉ (Buýt A)
Buýt dữ liệu (Buýt D)
Buýt điều khiển (Buýt C)Buýt - PCI
2010 Giới thiệu kiến trúc máy tính 17Lịch sử máy tính
2010 Giới thiệu kiến trúc máy tính 18
Lịch sử máy tính có thể được chia thành 5 thế hệ dựa
trên phát triển của mạch điện tử
Thế hệ đầu (1944-1959):
Dùng đèn chân không
Dùng băng từ
Mật độ: ~ 1000 phần tử/ 30cm khối
Ví dụ: ENIAC - Electronic Numerical Integrator and Computer, chi
phí 500,000 USD.ENIAC
2010 Giới thiệu kiến trúc máy tính 19Thế hệ 2 (1960-1964)
2010 Giới thiệu kiến trúc máy tính 20
Dùng bóng bán dẫn
Mật độ: ~ 100,000 phần tử/ 30cm khối
Ví dụ: UNIVAC 1107, UNIVAC III, IBM 7070, 7080,
7090, 1400 series, 1600 series.
Máy UNIVAC đầu tiên được chuyển cho Cục điều tra
dân số Mỹ 3/1951 với giá US$159,000UNIVAC
2010 Giới thiệu kiến trúc máy tính 21Thế hệ 3 (1964-1975):
2010 Giới thiệu kiến trúc máy tính 22
Sử dụng mạch tích hợp
Mật độ: ~ 10 triệu phần tử/30 cm khối
Ví dụ : UNIVAC 9000 series, IBM System/360,
System 3, System 7UNIVAC 9400
2010 Giới thiệu kiến trúc máy tính 23Thế hệ thứ 4 (1975-1989):
2010 Giới thiệu kiến trúc máy tính 24
Sử dụng vi mạch tích hợp
Mật độ: ~ 1 tỷ phần tử/ 30 cm khối
Ví dụ: IBM System 3090, IBM RISC 6000, IBM RT, Cray 2 XMPCray 2 XMP
2010 Giới thiệu kiến trúc máy tính 25Thế hệ thứ 5 (1990-nay):
2010 Giới thiệu kiến trúc máy tính 26
Sử dụng các vi mạch tích hợp
Mật độ: sử dụng công nghệ 0.18m - 0.045m
Ví dụ: Pentium II, III, IV, M, D, Core Duo, Core 2
Duo, Core Quad,...
Hỗ trợ xử lý song song
Hiệu năng cao
Xử lý tiếng nói và hình ảnhThế hệ 5
2010 Giới thiệu kiến trúc máy tính 27Kiến trúc Von-Neumann nguyên thuỷ
2010 Giới thiệu kiến trúc máy tính 28Kiến trúc Von-Neumann hiện đại
2010 Giới thiệu kiến trúc máy tính 29Đặc điểm
2010 Giới thiệu kiến trúc máy tính 30
Đưa ra vào 1945.
Kiến trúc này dựa trên các yếu tố sau:
Dữ liệu và lệnh được lưu trữ trong bộ nhớ chia sẻ đọc/ghi
Bộ nhớ được đánh địa chỉ dựa trên các đoạn và không lệ
thuộc và bản chất thông tin lưu trữ
Các lệnh được thực hiện tuần tựĐặc điểm
2010 Giới thiệu kiến trúc máy tính 31
Quá trình thực hiện lệnh gồm 3 giai đoạn
CPU nạp lệnh từ bộ nhớ
CPU giải mã và thực hiện lệnh, nếu cần dữ liệu thì nạp
dữ liệu từ bộ nhớ
CPU ghi kết quả vào bộ nhớKiến trúc Harvard
2010 Giới thiệu kiến trúc máy tính 32Kiến trúc Harvard
2010 Giới thiệu kiến trúc máy tính 33
Bộ nhớ chia thành 2 phần:
Bộ nhớ chương trình
Bộ nhớ dữ liệu
CPU dùng 2 hệ thống buýt để liên lạc với bộ nhớ:
Buýt địa chỉ/ dữ liệu cho bộ nhớ dữ liệu
Buýt địa chỉ/ dữ liệu cho bộ nhớ chương trìnhKiến trúc Harvard
2010 Giới thiệu kiến trúc máy tính 34
Nhanh hơn nhờ buýt rộng hơn
Hỗ trợ các truy nhập đọc/ ghi bộ nhớ đồng thời, làm
giảm xung độtKiến trúc hiện đại
2010 Giới thiệu kiến trúc máy tính 352010 Giới thiệu kiến trúc máy tính 36
Ví dụ2010 Giới thiệu kiến trúc máy tính 372010 Giới thiệu kiến trúc máy tính 38Biểu diễn dữ liệu
2010 Giới thiệu kiến trúc máy tính 39
Sử dụng hệ nhị phân (0,1) để biểu diễn dữ liệu
Hệ thập lục phân 16 chữ số: 0-9, A, B, C, D, E, F.Hệ thập phân
2010 Giới thiệu kiến trúc máy tính 40
Sử dụng cơ số 10, dùng 10 chữ số: 0, 1, 2, 3, 4, 5, 6,
7, 8, 9.
Số ở hệ thập phân có thể biểu diễn dưới dạng đa
thức:
anan-1...
a1 = an*10n-1an-1*10n-2*
...*a1*100
Ví dụ
123 = 1*102 + 2 * 101 + 3*100 = 100+20+3
123.456 = 1*102 + 2*101 + 3*100 + 4*10-1 + 5*10-2 + 6*10-3
= 100 + 20 + 3 + 0.4 + 0.05 + 0.006 Hệ nhị phân
2010 Giới thiệu kiến trúc máy tính 41
Sử dụng cơ số 2 dùng chữ số: 0,1.
Biểu diễn số nhị phân dạng đa thức:
(11001010)2
= 1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20
= 128 + 64 + 8 + 2 = (202)10Chuyển đổi thập phân sang nhị phân
2010 Giới thiệu kiến trúc máy tính 42Hệ thập lục phân
2010 Giới thiệu kiến trúc máy tính 43
Sử dụng cơ số 16 có 16 chữ số: 0-9, A, B, C, D, E,
F.
Mỗi chữ số hệ 16 có thể biểu diễn bằng 1 cụm 4 bít.Tổ chức dữ liệu
2010 Giới thiệu kiến trúc máy tính 44
Bít
Đơn vị dữ liệu nhỏ nhất
Nhận giá trị 0/1
Nibbles:
Cụm 4 bít
Nhận 16 giá trị (0000)2 từ (1111)2,Tổ chức dữ liệu
2010 Giới thiệu kiến trúc máy tính 45
Byte:
Cụm 8 bít.
Biểu diễn 255 giá trị (0000 0000)2 - (1111 1111)2, hay
(00)16 - (FF)16.Tổ chức dữ liệu
2010 Giới thiệu kiến trúc máy tính 46
Từ:
16 bits, or 2 bytes
Lưu trữ 216 (65536) giá trị, (0000)16 -(FFFF)16.Tổ chức dữ liệu
2010 Giới thiệu kiến trúc máy tính 47
Từ đúp:
32 bit, or 4 byte, or 2 từ
lưu trữ 232 giá trị, (0000 0000)16 - (FFFF FFFF)16.Số có dấu và không dấu
2010 Giới thiệu kiến trúc máy tính 48
Số có dấu: bít có nghĩa lớn nhất (ngoài cùng bên trái)
dùng làm bít dấu
0 Số dương
1 Số âm
Ví dụ
0011, 0111, 0101
1011, 1111, 1101
Số không dấu: Tất cả các bít dùng để biểu diễn giá trị.Số có dấu và không dấu
2010 Giới thiệu kiến trúc máy tính 49
Dải giá trị: n bít có thể biểu diễn:
Có dấu: from -2n-1 đến + 2n-1-1
8 bit: -128 đến +127
16 bit: -32768 đến +32767
32 bit: -2,147,483,648 đến +2,147,483,647
Số không dấu: 0 đến 2n
8 bit: 0 đến 256
16 bit: 0 đến 65536
32 bit: 0 đến 4,294,967,296ASCII
2010 Giới thiệu kiến trúc máy tính 50
ASCII (American Standard Code for Information
Interchange) bảng mã hoá các chữ cái tiếng Anh.
Sử dụng 8 bít/ chữ cái.
ASCII định nghĩa 128 ký tự khác:
33 các ký tự không in được
94 các ký tự in được
Các giá trị 129-255 dành cho tương laiASCII- Các ký tự điều khiển
2010 Giới thiệu kiến trúc máy tính 51ASCII Table - Các ký tự in được
2010 Giới thiệu kiến trúc máy tính 52
ĐƠN VỊ XỬ LÝ TRUNG TÂM
CPU
Giảng viên: Phạm Hoàng Duy
Email: [email protected]ội dung chính
Fall 2009 Kiến trúc máy tính - CPU 2
Sơ đồ khối tổng quát
Chu kỳ lệnh
Các thanh ghi
Đơn vị điều khiển - CU
Đơn vị số học và lô gíc - ALUSơ đồ khối
Fall 2009 Kiến trúc máy tính - CPU 3
CU
IR
PC
MAR
MBR
Internal Bus
A
Y
ALU
Z
FR
A
Bus
D
Bus
CU: Control Unit
IR: Instruction Register
PC: Program Counter
MAR: Memory Address Register
MBR: Memory Buffer Register
A: Accumulator Register
Y, Z: Temporary Register
FR: Flag Register
ALU: Arithmetic and
Logic UnitChu kỳ lệnh
Fall 2009 Kiến trúc máy tính - CPU 4
1. Khi chạy chương trình, HĐH nạp chương trình vào bộ
nhớ trong.
2. Địa chỉ của câu lệnh đầu tiên của chương trình được
đặt vào thanh ghi PC
3. Địa chit ô nhớ chứa câu lệnh được chuyển vào buýt
địa chỉ qua thanh ghi MAR
4. Buýt địa chỉ chuyển địa chỉ lệnh tới đơn vị quản lý bộ
nhớ MMU
5. MMU chọn ra ô nhớ và yêu cầu tín hiệu đọc từ CPUChu trình lệnh
Fall 2009 Kiến trúc máy tính - CPU 5
6. Lệnh được chuyển tử ô nhớ vào MBR qua buýt dữ liệu
7. MBR chuyển lệnh tới thanh ghi lệnh IR. Sau đó tới đơn
vị điều khiển CU
8. CU giải mã câu lệnh và tạo ra các tín hiệu yêu cầu thực
hiện tới các đơn vị khác như ALU để thực hiện lệnh
9. Giá trị thanh ghi PC tăng lên 1 trỏ tới câu lệnh kế của
chương trình
10. Lặp lại các bước 2-9 cho tất cả các câu lệnh của
chương trìnhCác thanh ghi CPU
Fall 2009 Kiến trúc máy tính - CPU 6
Các thanh ghi là các ô nhớ tạm bên trong CPU:
Lưu các lệnh và dữ liệu để xử lý;
Có số lượng ít và dung lượng nhỏ;
Chạy nhanh, ngang với tốc độ CPU.
Kích cỡ thanh ghi thuỳ thuộc vào thiết kế CPU: 8,
16, 32, 64, 128 và 256 bit.
Các CPU cũ như 8086, 80x86 có 16-32 thanh ghi;
CPU mới (Intel Pentium 4, Core 2 Duo) có đến hàng
trăm thanh ghi.Thanh ghi tích luỹ
Fall 2009 Kiến trúc máy tính - CPU 7
Thanh ghi tích luỹ (A) là một trong những thanh ghi
quan trọng dùng để
Lưu các toán hạng
Lưu kết quả xử lý
Kích cỡ tương ứng với độ dài từ của CPU: 8, 16, 32,
64 bit.
Thanh ghi này cũng dùng để trao đổi dữ liệu đầu vào
và đầu ra.Thanh ghi tích luỹ
Fall 2009 Kiến trúc máy tính - CPU 8
Ví dụ: x + y s
Nạp toán hạng x vào thanh ghi A
Nạp toán hạng x vào thanh ghi Y
ALU thực hiện phép cộng A + Y, và lưu kết quả vào Z
Sau đó kết quả được chuyển vào A.Thanh ghi - PC
Fall 2009 Kiến trúc máy tính - CPU 9
PC - thanh ghi đếm chương trình hay con trỏ lệnh lưu
địa chỉ ô nhớ của lệnh kế tiếp.
Khi chương trình được nạp vào bộ nhớ, PC lưu địa chỉ
câu lệnh đầu tiên của chương trình.
Sau khi CPU thực hiện 1 lệnh, địa chỉ lệnh kế được
nạp vào thanh ghi PC.
Kích cỡ của PC tuỳ thuộc vào thiết kế CPU: 16, 32, 64
bit.Thanh ghi cờ - FR
Fall 2009 Kiến trúc máy tính - CPU 10
FR - thanh ghi cờ hay trạng thái: lưu trạng thái kết
quả xử lý của ALU vào trong các bít của mình.
Có 2 kiểu:
Status flags: CF, OF, AF, ZF, PF, SF
Control flags: IF, TF, DF
Các bít cờ thường được dùng làm điều kiện rẽ
nhánh trong chương trình
Kích cỡ tuỳ thuộc vào thiết kế của CPU.Thanh ghi cờ
Fall 2009 Kiến trúc máy tính - CPU 11
ZF: Zero Flag - Cờ không, ZF=1 khi kết quả=0 ; ZF=0 kết quả<>0.
SF: Sign Flag - Cờ dấu, SF=1 kết quả âm; SF=0 kết quả dương.
CF: Carry Flag - Cờ nhớ, CF=1 khi có nhớ, mượn 1 ở bít có nghĩa lớn nhất.
AF: Auxiliary Flag - Cờ phụ, AF=1 khi có nhớ/mượn 1 ở bít có nghĩa lớn nhất
của cụm 4 bít.
OF: Overflow Flag - Cờ tràn, OF=1 có tràn số; OF=0 khi không tràn số.
PF: Parity Flag - Cờ chẵn lẻ, PF=1 khi tổng số bít 1 lẻ; PF=0 tổng số bít 1
chẵn.
IF: Interrupt Flag - Cờ ngắt, IF=1: Cho phép, IF=0: Cấm ngắtCon trỏ ngăn xếp
Ngăn xếp là đoạn bộ nhớ đặc biệt hoạt
động theo cách vào sau ra trước (Last In
First Out - LIFO)
SP - là thanh ghi cho biết vị trí đỉnh ngăn
xếp
2 thao tác ngăn xếp:
Đặt vào: Đặt dữ liệu vào ngăn xếp
SP SP + 1
{SP} Data
Lấy ra: lấy dữ liệu ra khỏi ngăn xếp
Thanh ghi {SP}
SP SP - 1
Fall 2009 Kiến trúc máy tính - CPU 12
SP
Ngăn
xếpThanh ghi dùng chung
Fall 2009 Kiến trúc máy tính - CPU 13
Các thanh ghi dùng chung được dùng cho nhiều
mục đích:
Lưu các toán hạng đầu vào
Lưu các kết quả xử lý
VD:
AX: Thanh ghi tích
BX: Thanh ghi cơ sở
CX: Thanh ghi đếm
DX: Thanh ghi dữ liệuThanh ghi lệnh
Fall 2009 Kiến trúc máy tính - CPU 14
IR - dùng để lưu câu lệnh hiện thời.
IR lấy lệnh từ thanh ghi đệm MBR và chuyển cho
CPU để giải mã.
MBR IR CUMAR/MBR
Fall 2009 Kiến trúc máy tính - CPU 15
MAR - Thanh ghi địa chỉ bộ nhớ
là giao tiếp giữa CPU và buýt địa chỉ.
nhận địa chỉ bộ nhớ của lệnh kế tiếp từ PC và chuyển
cho buýt địa chỉ.
MBR - Thanh ghi đệm bộ nhớ
là giao tiếp giữa CPU và buýt dữ liệu.
nhận lệnh từ buýt dữ liệu và chuyển cho IR.Các thanh ghi tạm
Fall 2009 Kiến trúc máy tính - CPU 16
CPU thường dùng 1 số các thanh ghi tạm để:
Lưu các toán hạng đầu vào
Lưu kết quả xử lý
Hỗ trợ xử lý song song
Cơ chế thực thi tiên tiến như OOO - Out Of Order.Đơn vị điều khiển CU
Fall 2009 Kiến trúc máy tính - CPU 17
Đơn vị điều khiển
CU
IR
CLK Cờ
ALU
Các tín
hiệu điề
khiển
CÁc tín
hiệu điề
khiển
ngoàiĐơn vị điều khiển
Fall 2009 Kiến trúc máy tính - CPU 18
Điều khiển tất cả các hoạt động của CPU dựa trên
xung nhịp
Lấy lệnh từ IP giải mã và sinh các tín hiệu điều khiển
Dùng xung nhịp để đồng bộ các hoạt động bên trong
CPU và giữa CPU với bộ phận bên ngoài.Đơn vị số học và lô gíc ALU
Fall 2009 Kiến trúc máy tính - CPU 19
ADD SUB
MUL DIV SHR ROL
OR NOT
AND XOR
SHL NEG
ROR
IN IN
OUTĐơn vị số học và lô gíc ALU
Fall 2009 Kiến trúc máy tính - CPU 20
ALU bao gồm các đơn vị xử lý thao tác số học và lô
gíc như cộng, trừ, nhân, chia, NOT, AND, OR.
ALU có
2 cổng IN để nhận các dữ liệu vào từ các thanh ghi
Một cổng OUT được nối tới buýt nội để gửi kết quả tới
các thanh ghi.Buýt nội
Fall 2009 Kiến trúc máy tính - CPU 21
Là kênh liên lạc các bộ phận CPU
Hỗ trợ liên lạc song công
Có các giao tiếp để trao đổi thông tin với các buýt
bên ngoài (buýt hệ thống)
Có băng thông lớn và nhanh hơn buýt bên ngoàiVí dụ
Fall 2009 Kiến trúc máy tính - CPU 22
f0, f1: mã hoá
lệnh
11: AND
10: NOT A
01: OR
00: ADD
Tập lệnh
Giảng viên: Phạm Hoàng Duy2010 Kiến trúc máy tính - Tập lệnh 2
Nội dung chính
Giới thiệu tập lệnh
Định dạng và các thành phần lệnh
Địa chỉ lệnh/toán hạng
Các chế độ địa chỉ
Các kiểu lệnh2010 Kiến trúc máy tính - Tập lệnh 3
Lệnh và các thành phần
Lệnh là từ (số) nhị phân thể hiện một thao tác xác
định của bộ xử lý
Các lệnh được lưu trong bộ nhớ
Các lệnh được nạp từ bộ nhớ vào CPU trong quá trình
thực hiện
Mỗi lệnh có chức năng riêng
Các lệnh được chia ra thành các nhóm: chuyển dữ
liệu, tính toán, rẽ nhánh, v.v.2010 Kiến trúc máy tính - Tập lệnh 4
Lệnh và các thành phần
Thực thi lệnh được chia thành các giai đoạn. Tiêu
biểu có 4 giai đoạn:
Nạp lệnh (IF): lệnh được nạp từ bộ nhớ vào CPU;
Giải mã lệnh (ID): CPU "đọc" lệnh;
Thực thi lệnh: lệnh được CPU thực thi;
Ghi kết quả (WB): các kết quả xử lý (nếu có) được ghi lại
vào thanh ghi hoặc bộ nhớ.2010 Kiến trúc máy tính - Tập lệnh 5
Chu trình thực thi
Chu trình thực thi là khoảng thời gian CPU thực hiện
xong 1 lệnh
Một chu trình thự thi gồm vài giai đoạn thực hiện lệnh.
Mỗi giai đoạn thự thi chiếm một vài chu kỳ máy.
Một chu kỳ máy gồm một vài xung đồng hồ.2010 Kiến trúc máy tính - Tập lệnh 6
Chu trình thực thi
Chu trình thực hiện lệnh có thể có tới 7 thành phần:
Chu kỳ nạp
Chu kỳ đọc bộ nhớ
Chu kỳ ghi bộ nhớ
Chu kỳ đọc thiết bị
Chu kỳ ghi thiết bị
Chu kỳ chấp nhận ngắt
Chu kỳ buýt rỗi2010 Kiến trúc máy tính - Tập lệnh 7
Định dạng lệnh
Định dạng tổng quát của lệnh có hai phần:
Mã lệnh (Opcode - operation code): Mỗi lệnh có 1 mã
riêng.
Địa chỉ toán hạng: tuỳ thuộc vào lệnh. Có thể có 1,2 hay 0
địa chỉ.
Opcode Địa chỉ toán hạng
Opcode Nguồn Đích2010 Kiến trúc máy tính - Tập lệnh 8
Toán hạng - 3 địa chỉ
Định dạng: opcode addr1, addr2, addr3
addr1, addr2, addr3 tham chiếu tới thanh ghi hay ô nhớ
Ví dụ:
ADD R1, R2, R3; R1 + R2 R3
R1 cộng R2 rồi gán kết quả cho R3.
Ri
là thanh ghi CPU.
ADD A, B, C; M[A]+M[B] M[C]
A, B, C là các ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 9
Toán hạng - 2 địa chỉ
Định dạng: opcode addr1, addr2
addr1, addr2 tham chiếu tới thanh ghi hay ô nhớ
Ví dụ:
ADD R1, R2; R1 + R2 R2
R1 cộng R2 rồi gán kết quả cho R2.
Ri
là thanh ghi CPU.
ADD A, B; M[A]+M[B] M[B]
A và B là các ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 10
Toán hạng - 1 địa chỉ
Định dạng: opcode addr1
addr1 tham chiếu tới thanh ghi hay ô nhớ
addr1 refers to a register or a memory location.
This Định dạng uses Racc (Accumulator) as the default register
as the 2nd address.
Ví dụ:
ADD R1; R1 + Racc Racc
R1 cộng Racc rồi gán kết quả cho Racc.
Ri
là thanh ghi CPU.
ADD B; M[B]+ Racc Racc
B là ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 11
Toán hạng - 1địa chỉ rưỡi
Định dạng: opcode addr1, addr2
addr1 tham chiếu tới thanh ghi còn addr2 tham chiếu
tới ô nhớ hoặc ngược lại.
Địa chỉ rưỡi là sử dụng các toán hạng lẫn lộn giữa bộ
nhớ và thanh ghi.
Ví dụ:
ADD B, R1; M[B] + R1 R1
R1 là thanh ghi CPU còn B là ô nhớ.2010 Kiến trúc máy tính - Tập lệnh 12
Toán hạng - 0 địa chỉ
Không sử dụng địa chỉ được dùng để thực hiện
các thao tác ngăn xếp: đặt vào & lấy ra2010 Kiến trúc máy tính - Tập lệnh 13
Các chế độ địa chỉ
Các chế độ địa chỉ là các phương pháp tổ chức
các toán hạng của câu lệnh.
Các chế độ tiêu biểu:
Tức thì
Trực tiếp
Gián tiếp thanh ghi
Gián tiếp bộ nhớ
Chỉ số
Tương đối2010 Kiến trúc máy tính - Tập lệnh 14
Chế độ trực tiếp
Giá trị của các toán hạng nguồn có sẵn trong câu
lệnh.
Toán hạng đích có thể là thanh ghi hay ô nhớ.
Ví dụ:
LOAD #1000, R1; 1000 R1
Nạp giá trị 1000 vào thanh ghi R1.
LOAD #500, B; 500 M[B]
Nạp giá trị 500 vào ô nhớ B.2010 Kiến trúc máy tính - Tập lệnh 15
Chế độ trực tiếp (tuyệt đối)
Địa chỉ ô nhớ được đặt sẵn trong câu lệnh.
Toán hạng còn lại có thể là thanh ghi hay ô nhớ.
Ví dụ:
LOAD 1000, R1; M[1000] R1
Nạp giá trị ở ô nhớ 1000 vào thanh ghi R1.2010 Kiến trúc máy tính - Tập lệnh 16
Chế độ trực tiếp (tuyệt đối)
LOAD 1000, R1
200
200 R12010 Kiến trúc máy tính - Tập lệnh 17
Chế độ gián tiếp
Trong chế độ này thanh ghi hay ô nhớ dùng để lưu
địa chỉ toán hạng.
Giá tiếp thanh ghi:
LOAD (Ri
), Rj
; M[Ri
] Rj
Nạp giá trị ô nhớ có địa chỉ lưu trong thanh ghi Ri
vào Rj
.
Giá tiếp bộ nhớ:
LOAD (1000), Ri
; M[M[1000]] Ri
Nạp giá trị ô nhớ có địa chỉ lưu trong ô nhớ 1000 vào Ri
.2010 Kiến trúc máy tính - Tập lệnh 18
Chế độ gián tiếp2010 Kiến trúc máy tính - Tập lệnh 19
Chế độ chỉ số
Địa chỉ các toán hạng được xác định bằng cách cộng
thêm hằng số vào thanh ghi chỉ số
Ví dụ:
LOAD X(Rind), Ri
; M[X+Rind] Ri2010 Kiến trúc máy tính - Tập lệnh 20
Chế độ tương đối
Địa chỉ toán hạng được xác định bằng cách cộng thêm
hằng số vào thanh ghi chương trình PC.
Ví dụ:
LOAD X(PC), Ri
; M[X+PC] Ri2010 Kiến trúc máy tính - Tập lệnh 21
Tóm tắt các chế độ địa chỉ
M[M[1000]]2010 Kiến trúc máy tính - Tập lệnh 22
Các dạng lệnh
Các dạng lệnh tiêu biểu gồm:
Các lệnh di chuyển dữ liệu
Các lệnh số học và lô-gíc
Các câu lệnh điều khiển và tuần tự
Các lệnh vào ra2010 Kiến trúc máy tính - Tập lệnh 23
Các lệnh di chuyển dữ liệu
Chuyển dữ liệu giữa các bộ phận của máy tính:
Giữa các thanh ghi CPU:
MOVE Ri
, Rj
; Ri
Rj
Giữa các thanh ghi và ô nhớ:
MOVE 1000, Rj
; M[1000] Rj
Giữa các ô nhớ
MOVE 1000, (Rj
); M[1000] M[Rj
]2010 Kiến trúc máy tính - Tập lệnh 24
Các lệnh di chuyển dữ liệu2010 Kiến trúc máy tính - Tập lệnh 25
Các lệnh số học và lô gíc
Các lệnh số học và lô-gíc thực hiện các thao tác số
học và lô-gíc trên các thanh ghi và ô nhớ.
Ví dụ:
ADD R1, R2, R3; R1 + R2 R3
SUBSTRACT R1, R2, R3; R1 - R2 R32010 Kiến trúc máy tính - Tập lệnh 26
Các lệnh số học phổ biến2010 Kiến trúc máy tính - Tập lệnh 27
Các lệnh lô-gíc phổ biến2010 Kiến trúc máy tính - Tập lệnh 28
Các lệnh tuần tự và điều khiển
Các lệnh điều khiển thay đổi tuần tự thực hiện các
lệnh:
Rẽ nhánh có điều kiện (Nhảy có điều kiện)
Rẽ nhánh vô điều kiện (Nhảy)
Gọi và trả về (CALL and RETURN)
Thuộc tính chung của các lệnh này là thay đổi giá trị
của bộ đếm chương trình.
Dùng thanh ghi cờ ALU để xác định điều kiện.2010 Kiến trúc máy tính - Tập lệnh 29
Các lệnh điều khiển và tuần tự2010 Kiến trúc máy tính - Tập lệnh 30
Các lệnh điều khiển và tuần tự
Lặp đến khi R1 = 02010 Kiến trúc máy tính - Tập lệnh 31
Các lệnh vào/ra
Các lệnh vào ra được sử dụng để truyền dữ liệu giữa
máy tính và các thiết bị ngoại vi.
Các thiết bị ngoại vi giao tiếp với máy tính qua các cổng
riêng. Mỗi cổng có địa chỉ xác định.
Hai lệnh vào ra căn bản là INPUT và OUTPUT
INPUT truyền dữ liệu từ thiết bị tới bộ xử lý.
OUTPUT truyền dữ liệu từ bộ xử lý tới thiết bị.2010 Kiến trúc máy tính - Tập lệnh 32
Ví dụ
Đoạn chương trình thực hiện cộng 100 số lưu trong ô nhớ từ vị trí 1000.
Kết quả được lưu vào ô nhớ 2000.
Hệ thống nhớ2010 KTMT- Hệ thống nhớ 2
Nội dung
Giới thiệu hệ thống nhớ và mô hình phân cấp bộ
nhớ
Bộ nhớ đệm
Giới thiệu
Tổ chức và kiến trúc đệm
Hiệu năng và phương pháp cái thiện
RAM
ROM2010 KTMT- Hệ thống nhớ 3
Hệ thống nhớ2010 KTMT- Hệ thống nhớ 4
Các tham số tham khảo 2010 KTMT- Hệ thống nhớ 5
Phân cấp bộ nhớ
Các thanh ghi CPU:
Kích cỡ nhỏ(vài chục byte đến vài KB)
Tốc độ truy nhập rất nhanh (cùng xung nhịp CPU), thời gian truy
nhập cỡ 0.25 ns.
Đắt
Lưu dữ liệu tạm thời và kết quả lệnh
Bộ nhớ đệm
Kích cỡ nhỏ (64KB đến 16MB)
Tốc độ nhanh, thời gian truy nhập cỡ vài ns
Đắt
Còn gọi là bộ nhớ "thông minh"
Lưu dữ liệu và lệnh cho CPU2010 KTMT- Hệ thống nhớ 6
Phân cấp bộ nhớ
Bộ nhớ chính:
Kích cỡ lớn, dung lượng từ 256MB tới 4GB ( hệ thống 32 bit)
Tốc độ chậm, thời gian truy nhập trung bình cỡ 50-70 ns
Lưu dữ liệu và lệnh cho hệ thống và người dùng
Khá rẻ
Bộ nhớ thứ cấp:
Kích cỡ rất lớn dung lượng từ 20GB tới 1000GB (2TGB)
Tốc độ rất chậm, thời gian truy nhập trung bình 5ms
Lưu lượng lớn dữ liệu trong các file với thời gian dài
Rất rẻ2010 KTMT- Hệ thống nhớ 7
Vai trò phân cấp
Cải thiện hiệu năng hệ thống
Cân bằng tốc độ cao của CPU và thấp của bộ nhớ chính
và thứ cấp
Thời gian truy nhập của hệ thống nhớ gần với thời gian
truy nhập của bộ nhớ đệm
Giảm chi phí sản xuất
Các bộ phận đắt tiền chỉ dùng với khối lượng nhỏ
Các bộ phận rẻ hơn dùng với khối lượng lớn2010 KTMT- Hệ thống nhớ 8
Phân loại bộ nhớ
Theo kiểu truy nhập:
Bộ nhớ truy nhập ngẫu nhiên (RAM)
Bộ nhớ truy nhập tuần tự (SAM)
Bộ nhớ chỉ đọc (ROM)
Theo kiểu duy trì thông tin:
Bộ nhớ thay đổi: thông tin lưu trữ bị mất khi mất nguồn
Bộ nhớ không thay đổi: thông tin lưu trữ không bị mất khi mất
nguồn
Theo công nghệ chế tạo:
Bộ nhớ bán dẫn: ROM, RAM
Bộ nhớ từ: HDD, FDD, tape
Bộ nhớ quang: CD, DVD2010 KTMT- Hệ thống nhớ 9
Tổ chức các thiết bị nhớ2010 KTMT- Hệ thống nhớ 10
Tổ chức các thiết bị nhớ
Đường địa chỉ: kết nối với buýt A; truyền địa chỉ của 1
loạt ô nhớ từ CPU
Giải mã địa chỉ: dùng thông tin địa chỉ để chọn một loạt
ô nhớ: kích hoạt các ô nhớ đó
Đường địa chỉ : kết nối với buýt Dconnect to D bus;
truyền dữ liệu vào/ra CPU.
Chọn chip (CS): chíp nhớ được kích hoạt khi CS ở
mức tích cực. CPU chỉ làm việc với 1 chíp nhớ tại 1
thời điểm.
Cho phép ghi (WE): ghi vào hàng ô nhớ đã chọn khi
WE ở mức tích cực.
Cho phép đọc (RE): đọc dữ liệu từ hàng đã chọn khi
RE ở mức tích cực (0).2010 KTMT- Hệ thống nhớ 11
Bộ nhớ đệm
Khái niệm
Vai trò
Các nguyên tắc căn bản
Kiến trúc
Tổ chức
Đọc/Ghi
Phương pháp thay đổi dữ liệu
Phương pháp cải thiện hiệu năng2010 KTMT- Hệ thống nhớ 12
Khái niệm
Bộ nhớ đệm là bộ phận của hệ thống nhớ, đóng vái trò
trung gian giữa CPU và bộ nhớ chính;
Bộ nhớ đệm có thể nằm ngoài (hệ thống cũ) hoặc trong
CPU (mới);
Bộ nhớ đệm có kích cỡ nhỏ (16K, 32K,..., 128K với hệ
thống cũ; 256K, 512K, 1MB, 2MB,... với hệ thống mới);
Bộ nhớ đệm nhanh hơn bộ nhớ chính nhiều;
Chi phí trên bit của bộ nhớ đệm lớn hơn bộ nhớ chính
nhiều lần.2010 KTMT- Hệ thống nhớ 13
Vai trò
Cải thiện hiệu năng hệ thống
Cân bằng chênh lệch tốc độ giữa CPU và bộ nhớ chính
(giảm số lần truy nhập trực tiếp vào bộ nhớ chính).
Thời gian truy nhập trung bình của bộ nhớ chính gần với
thời gian truy nhập bộ nhớ đệm
Giảm chi phí sản xuất
Nếu hai hệ thống có cùng hiệu năng, hệ thống với cache
rẻ hơn;
Nếu hai hệ thống có cùng chi phí, hệ thống có cache
nhanh hơn.2010 KTMT- Hệ thống nhớ 14
Nguyên tắc căn bản
Cục bộ không gian:
Nếu có yêu cầu truy nhập 1 vị trí nhớ, khả năng
vùng nhớ lân cận có yêu cầu truy nhập là cao.
Áp dụng cho các mục dữ liệu và lệnh có tính
tuần tự cao trong không gian chương trình
Hầu hết các lệnh chương trình theo tuần tự,
vậy bộ nhớ đệm đọc một khối dữ liệu từ bộ nhớ
chính bao gồm các ô nhớ lân cận với ô nhớ
được truy nhập
Ô lân cận
Ô hiện thời
Ô lân cận2010 KTMT- Hệ thống nhớ 15
Nguyên tắc căn bản
Cục bộ thời gian:
Nếu có yêu cầu truy nhập vị trí nhớ, khả
năng vị trí đó được truy nhập tiếp trong
tương lai gần là cao.
Áp dụng cho các mục dữ liệu và lệnh
trong vòng lặp.
Bộ nhớ đệm đọc 1 khối dữ liệu từ bộ nhớ
chính bao gồm các mục bộ nhớ của vòng
lặp.
Lệnh1
Lệnh 2
Lệnh 3
Lệnh 4
Lệnh 5 Kết
thúc
lặp
Bắt
đầu lặp2010 KTMT- Hệ thống nhớ 16
Hoán đổi dữ liêu
CPU đọc/ghi từng mục dữ liệu từ/tới bộ nhớ đệm;
Lý do?
Bộ nhớ đệm đọc/ghi khối dữ liệu từ/tới bộ nhớ
chính;
Lý do?
CPU Bộ nhớ đệm Bộ nhớ chính
Các mục
dữ liệu:
byte, word
Khối dữ liệu:
16, 32, 64
bytes2010 KTMT- Hệ thống nhớ 17
Tỷ lệ đệm trúng và trượt
Đệm trúng là tình huống CPU truy nhập dữ liệu đã
có trong bộ nhớ đệm.
Xác suất đệm trúng gọi là tỷ lệ trúng H.
0 <= H <= 1
H càng lớn càng tốt.
Đệm trượt là tình huống CPU truy nhập dữ liệu
không có sẵn trong bộ nhớ đệm.
Xác suất trượt còn gọi là tỷ lệ trượt, 1- H.
0 <= (1 - H) <= 1
Tỷ lệ trược cần phải nhỏ.2010 KTMT- Hệ thống nhớ 18
Kiến trúc bộ nhớ đệm - Bên cạnh
Cache
controller
Tag RAM
SRAM
Main
Memory
CPU
System bus
Bộ nhớ đệm và bộ nhớ kết nối
với nhau qua buýt hệ thống
Bộ nhớ đệm và bộ nhớ chính
đều truy nhập vào cùng chu kỳ
buýt của CPU
Ưu:
Thiết kế đơn giản
Trượt nhanh
Nhược:
Trúng chậm
SRAM: RAM to
store cache data
Tag RAM: RAM
to store memory
address2010 KTMT- Hệ thống nhớ 19
Kiến trúc bộ nhớ đệm - Xuyên qua
Bộ nhớ đệm được đặt giữa
CPU và bộ nhớ chính
Bộ nhớ đệm nhận được chu kỳ
buýt của CPU trước, sau đó
chuyển cho bộ nhớ chính
Ưu:
Trúng thì nhanh
Nhược:
Thiết kế phức tạp
Tốn kém
Trượt thì chậm
Tag
RAM
Main
Memory
CPU
Cache
controller
SRAM
System bus
Back side bus2010 KTMT- Hệ thống nhớ 20
Tổ chức bộ nhớ đệm
Làm thế nào để bộ nhớ đệm và bộ nhớ chính hoạt động
cùng với nhau?2010 KTMT- Hệ thống nhớ 21
Các kỹ thuật
Ánh xạ trực tiếp
Đơn giản nhanh nhưng ánh xạ cố định
Ánh xạ liên kết đầy đủ
Phức tạp, chậm nhưng ánh xạ mềm dẻo
Ánh xạ liên kết tập hợp (nhóm)
Phức tạp, nhanh và ánh xạ mềm dẻo2010 KTMT- Hệ thống nhớ 22
Ánh xạ trực tiếp
Line n-1
Line 1
Line 0
Bộ nhớ đệm Bộ nhớ chính
Line n-1
Line 1
Line 0
Page 0
Page 1
Page m-12010 KTMT- Hệ thống nhớ 23
Ánh xạ trực tiếp
Bộ nhớ đệm:
Chia thành n khối hay dòng Line0 tới Linen-1
Bộ nhớ:
Chia thành m trang page0 tới pagem-1.
Các trang có kích cỡ như là bộ nhớ đệm
Mỗi trang có n dòng Line0 tới Linen-1
Ánh xạ:
Line0 của (page0 tới pagem-1) ánh xạ vào Line0 của bộ nhớ đệm;
Line1 của (page0 to pagem-1) ánh xạ vào Line1 của bộ nhớ đệm;
....
Linen-1 của (page0 to pagem-1) ánh xạ vào Linen-1 của bộ nhớ đệm;2010 KTMT- Hệ thống nhớ 24
Địa chỉ ánh xạ trực tiếp
Tag (bit) địa chỉ trang trong bộ nhớ
Line (bit) địa chỉ dòng trong bộ nhớ đệm
Word (bit) địa chỉ từ (ô nhớ) trong dòng
Tag Line Word2010 KTMT- Hệ thống nhớ 25
Địa chỉ ánh xạ trực tiếp
Ví dụ:
Đầu vào:
Kích cỡ bộ nhớ = 4GB
Kích cỡ bộ nhớ đệm = 1MB
Kích cỡ dòng =32 byte
Đầu ra:
Kích cỡ dòng =32 byte = 25 Word = 5 bit
Kích cỡ bộ nhớ đệm = 1MB = 210 Có 210 / 25 = 25 lines
dòng = 5 bit
Tag = 32bit địa chỉ - Line - Word = 32 - 5 - 5 = 22 bit.2010 KTMT- Hệ thống nhớ 26
Ánh xạ trực tiếp
Ưu:
Thiết kế đơn giản
Nhanh do ánh xạ trực tiếp, khi biết địa chỉ ô nhớ có thể
nhanh chóng tìm được vị trí trong bộ nhớ đệm.
Nhược:
Do ánh xạ trực tiếp nên khả năng xung đột cao
Tỷ lệ trúng thấp.2010 KTMT- Hệ thống nhớ 27
Ánh xạ liên kết đầy đủ
Line n-1
Line 1
Line 0
Bộ
nhớ
đệm
Bộ nhớ
Line m-1
Line 1
Line 02010 KTMT- Hệ thống nhớ 28
Ánh xạ liên kết đầy đủ
Bộ nhớ đệm:
Chia thành n khối hoặc dòng Line0 tới Linen-1
Bộ nhớ chính:
Chia thành m khối hoặc dòng Line0 tới Linem-1.
Kích cỡ dòng trong bộ nhớ đệm bằng với dòng trong bộ nhớ
Số các dòng trong bộ nhớ lớn hơn rất nhiều so với dòng trong bộ
nhớ đệm (m >> n).
Ánh xạ:
Một dòng trong bộ nhớ có thể ánh xạ tới bất kỳ dòng nào trong bộ
nhớ đệm;
Dòng Linei
trong bộ nhớ có thể ánh tới Linej
trong bộ nhớ đệm;2010 KTMT- Hệ thống nhớ 29
Địa chỉ ánh xạ liên kết đầy đủ
Tag (bit) địa chỉ của dòng trong bộ nhớ (page =1)
Word (bit) địa chỉ của từ nhớ trong dòng
Tag Word2010 KTMT- Hệ thống nhớ 30
Địa chỉ ánh xạ liên kết đầy đủ
Ví dụ:
Đầu vào:
Kích cỡ bộ nhớ = 4GB
Kích cỡ bộ đệm = 1MB
Kích cỡ dòng line =32 byte
Đầu ra
Cỡ dòng Line = 32 byte = 25 Word = 5 bit
Tag = 32bit địa chỉ - Word = 32 - 5 = 27 bit.2010 KTMT- Hệ thống nhớ 31
Địa chỉ ánh xạ liên kết đầy đủ
Ưu:
Giảm xung đột nhờ ánh xạ mềm dẻo
Tỷ lệ trúng cao hơn.
Nhược:
Chậm do phải tìm kiếm địa chỉ ô nhớ trong bộ đệm.
Phức tạp do có n bộ so sánh địa chỉ thêm vào trong bộ
nhớ đệm.
Thường dùng cho bộ đệm cỡ nhỏ.2010 KTMT- Hệ thống nhớ 32
Địa chỉ ánh xạ liên kết nhóm
Line n-1
Line 1
Line 0
Bộ đệm Bộ nhớ
Line n-1
Line 1
Line 0
Page 0
Page 1
Page m-1
Line n-1
Line 1
Line 0
Way 0 Way 12010 KTMT- Hệ thống nhớ 33
Địa chỉ ánh xạ liên kết nhóm
Bộ nhớ đệm:
Chia thành k nhóm có cùng cỡ;
Mỗi nhóm chia thành n khối hay dòng Line0 tới Linen-1
Bộ nhớ:
Chia thành m trang page0 tới pagem-1.
Các trang có cùng cỡ như nhóm trong bộ nhớ đệm
Mỗi trang có n dòng Line0 tới Linen-1
Ánh xạ:
Ánh xạ từ trang tới nhóm (ánh xạ linh hoạt):
Một trang nhớ có thể được ánh xạ tới bất kỳ nhóm nào trong bộ nhớ đệm.
Ánh xạ các dòng trong trang tới dòng trong nhóm (Ánh xạ cố định):
Line0 của pagei
ánh xạ tới Line0 của nhóm wayj
Line1 của pagei
ánh xạ tới Line1 của nhóm wayj
....
Linen-1 của pagei
ánh xạ tới Linen-1 của nhóm wayj
;2010 KTMT- Hệ thống nhớ 34
Địa chỉ ánh xạ liên kết nhóm
Tag (bit) địa chỉ của trang trong bộ nhớ
Set (bit) địa chỉ dòng trong nhóm của bộ nhớ đệm
Word (bit) địa chỉ từ nhớ trong dòng
Tag Set Word2010 KTMT- Hệ thống nhớ 35
Set associative mapping address
Ví dụ:
Đầu vào:
Bộ nhớ = 4GB
Bộ đệm = 1MB, 2 nhóm
Cỡ dòng =32 byte
Đầu ra
Cỡ dòng =32 byte = 25 Word = 5 bit
Cỡ bộ đệm = 1MB = 210 there are 210 / 25 / 2 = 24 lines trong
1 nhóm Set = 4 bit
Tag = 32bit địa chỉ - Set - Word = 32 - 4 - 5 = 23 bit.2010 KTMT- Hệ thống nhớ 36
Ánh xạ liên kết nhóm
Ưu:
Nhanh do ánh xạ trực tiếp dùng với ánh xạ dòng;
Giảm xung đột do ánh xạ từ trang nhớ tới nhóm của bộ
đệm là linh hoạt
Tỷ lệ đệm trúng cao hơn
Nhược:
Phức tạp về thiết kế và điều khiển do bộ nhớ đệm được
chia thành nhiều nhóm.2010 KTMT- Hệ thống nhớ 37
Đọc ghi bộ nhớ đệm
Đọc
Đệm trúng ( dữ liệu cần nằm sẵn trong bộ đệm)
Mục dữ liệu được nạp từ bộ đệm vào CPU
Bộ nhớ chính không tham gia vào thao tác này
Đệm trượt (dữ liệu cần không có trong bộ đệm)
Mục dữ liệu được nạp từ bộ nhớ chính vào trong bộ đệm
Dữ liệu được nạp tiếp từ bộ nhớ đệm vào CPU
----> thiệt về thời gian2010 KTMT- Hệ thống nhớ 38
Đọc/ghi bộ nhớ đệm
Thao tác ghi
Đệm trúng
Ghi ngay (Write through): mục dữ liệu được ghi vào bộ đệm và
bộ nhớ chính cùng lúc
Ghi chậm (Write back): mục dữ liệu được ghi vào bộ đệm trước,
rồi cả khối dữ liệu được ghi vào bộ nhớ chính khi khối nhớ bị
thay thế.
Đệm trượt
Ghi có cấp phát (Write allocate - nạp trong lúc ghi): mục dữ liệu
trước tiên được ghi từ bộ nhớ chính, rồi cả khối nhớ được nạp
vào bộ đệm.
Ghi không cấp phát (Write non-allocate) (not fetch on write):
Mục dữ liệu chỉ được ghi vào bộ nhớ chính.2010 KTMT- Hệ thống nhớ 39
Phương pháp thay thế đệm
Phương pháp thay thế bộ nhớ đệm xác định các
khối nhớ nào được thay thế khi có khối nhớ mới
đưa vào trong bộ nhớ đệm.
3 phương pháp:
Thay ngẫu nhiên
Thay FIFO
Thay LRU2010 KTMT- Hệ thống nhớ 40
Phương pháp thay thế đệm
Thay ngẫu nhiên:
Các khối nhớ được chọn ngẫu nhiên
Ưu:
Triển khai đơn giản
Nhược:
Tỷ lệ trượt cao do không tính đến khối nhớ đang được dùng.
Nếu khối nhớ đang dùng bị thay ra thì sẽ bị trượt và cần phải nạp lại
khối nhớ.2010 KTMT- Hệ thống nhớ 41
Phương pháp thay thế đệm
Thay thế FIFO :
Dựa trên nguyên tắc vào trước ra trước (First In First Out)
Các khối nhớ nào được nạp vào trước thì bị thay trước.
Ưu:
Tỷ lệ trượt thấp hơn so với phương pháp ngẫu nhiên
Nhược:
Tỷ lệ trượt vẫn cao do không tính đến các khối nhớ đang được dùng.
Một khối nhớ cũ có thể đang được sử dụng
Phức tạp khi triển khai do cần thêm mạch giám sát thứ tự nạp các
khối.2010 KTMT- Hệ thống nhớ 42
Phương pháp thay thế đệm
Thay thế LRU :
Khối nhớ đệm ít được sử dụng gần đây nhất sẽ bị thay
ra.
Ưu:
Tính đến các khối đang được dùng
Tỷ lệ trượt thấp hơn 2 phương pháp trên
Nhược:
Phức tạp do cần thêm mạch giám sát tần suất sử dụng các khối
nhớ.2010 KTMT- Hệ thống nhớ 43
Hiệu năng, các yếu tố ảnh hưởng
Thời gian truy nhập trung bình của hệ thống nhớ có
đệm:
taccess = (Hit cost) + (miss rate) * (miss penalty)
taccess = tcache + (1 - H) * (tmemory)
H tỷ lệ đệm trúng.
tcache = 5ns, tmemory = 60ns và H=80% ta có:
taccess = 5 + (1 - 0.8) * (60) = 5+12 = 17ns
If tcache = 5ns, tmemory = 60ns và H=95%, ta có:
taccess = 5 + (1 - 0.95) * (60) = 5+3 = 8ns2010 KTMT- Hệ thống nhớ 44
Các yếu tố
Các yếu tố ảnh hưởng hiệu năng
Cỡ bộ đệm
Lớn hay bé?
Phân chia bộ đệm: bộ đệm lệnh và cho dữ liệu
Bộ đệm nhiều tầng2010 KTMT- Hệ thống nhớ 45
Cỡ bộ đệm
Thống kê:
Tỷ lệ đệm trượt lệnh nhỏ hơn dữ liệu nhiều :
8KB đệm lệnh, tỷ lệ trượt < 1%
256KB đệm lệnh, tỷ lệ trượt < 0.002%
----> Tăng kích cỡ đệm lệnh không hiệu quả.
8KB đệm dữ liệu, tỷ lệ trượt < 4%
256KB đệm dữ liệu, tỷ lệ trượt < 3%
----> tăng kích cỡ bộ đệm 32 lần, tỷ lệ trượt giảm 25% (4% xuống
3%).2010 KTMT- Hệ thống nhớ 46
Kích cỡ bộ đệm
Bộ đệm lớn:
Chứa được nhiều khối nhớ
Giảm số lần hoán đổi các khối của các chương trình khác
nhau ra bộ nhớ chính.
Bộ đệm lớn chậm hơn bộ đệm nhỏ
Không gian tìm kiếm lớn hơn.
Xu thế: bộ đệm ngày càng lớn:
Hỗ trợ đa nhiệm tốt hơn
Hỗ trợ xử lý song song tốt hơn
Hỗ trợ hệ thống CPU đa nhân tốt hơn.2010 KTMT- Hệ thống nhớ 47
Phân chia bộ đệm
Bộ đệm có thể được chia thành đệm dữ liệu và lệnh
để có hiệu năng tốt hơn do:
Dữ liệu và lệnh khác nhau về tính cục bộ
Dữ liệu có tính cục bộ về thời gian hơn là không gian trong khi
đó lệnh lại có xu hướng ngược lại
Đệm lệnh chỉ hỗ trợ thao tác đọc còn dữ liệu cần hỗ trợ cả
đọc và ghi.
---> tối ưu đơn giản hơn.
Hỗ trợ nhiều thao tác đọc và ghi cùng lúc ---> giảm xung
đột tài nguyên.
Tích hợp với các chức năng khác như giải mã trước vào
trong bộ đệm lệnh ---> xử lý lệnh tốt hơn.2010 KTMT- Hệ thống nhớ 48
Phân chia bộ đệm
Thực tế, hầu hết đệm mức 1 L1 chia làm 2 phần lệnh
và dữ liệu. Các mức đệm cao hơn thì không chia. Lý
do?
Chia L1 sẽ thu được lợi ích tối đa do L1 gần CPU nhất.
CPU đọc ghi trực tiếp lên L1.
Chia ở mức cao hơn thì không thu được lợi ích như vậy
mà lại tạo ra phức tạp trong hệ thống điều khiển đệm.2010 KTMT- Hệ thống nhớ 49
Đệm nhiều mức
Cải thiện hiệu năng do đệm nhiều mức cân bằng tốc
độ CPU và bộ nhớ chính tốt hơn đệm 1 mức.
CPU L1 L2 L3 Main memory
1ns 5ns 15ns 30ns 60ns
1ns 5ns 60ns
Thực tế, bộ đệm thường có 2 mức: L1 và L2. Một vài
CPU có đệm 3 mức: L1,L2, L3.
Giảm chi phí.2010 KTMT- Hệ thống nhớ 50
Các cách làm giảm tỷ lệ trượt
Bộ đệm tốt khi:
Tỷ lệ trúng cao
Tỷ lệ trượt thấp
Trễ khi trượt không quá dài
Miss types:
Compulsory misses: misses usually happen at the program loading
time when program code are loading into memory and code are not
fetched into cache.
Capacity misses: misses due to cache limited capacity, especially in
multi-tasking environment. As cache is small, code of programs are
swapped frequently between cache and main memory.
Conflict misses: misses due to conflicts when there are many
memory blocks are competing for one cache block.2010 KTMT- Hệ thống nhớ 51
Các cách làm giảm tỷ lệ trượt
Tăng kích cỡ khối đệm:
Giảm tỷ lệ trượt bắt buộc:
Khối nhớ lớn che phủ vùng nhớ cục bộ lớn hơn ---> giảm tỷ lệ
trượt bắt buộc.
Tăng trượt xung độtIncrease conflict misses:
Khối đệm lớn giảm số khối trong bộ đệm, như vậy nhiều khối
trong bộ nhớ chính tham chiếu tới một khối đệm ---> tăng tỷ lệ
trượt xung đột.
Khối đệm lớn làm lãng phí dung lượng đệm (một vài phần
không bao giờ được dùng).2010 KTMT- Hệ thống nhớ 52
Các cách làm giảm tỷ lệ trượt
Tăng mức liên kết (tăng số nhóm):
Giảm trượt do xung đột:
Tăng số nhóm ---> ánh xạ bộ đệm và bộ nhớ linh hoạt hơn,
nhiều lựa chọn hơn ---> giảm trượt do xung đột.
Làm chậm bộ đệm:
Tăng số nhóm ---> tăng không gian tìm kiếm ---> chậm hơn.2010 KTMT- Hệ thống nhớ 53
Giới thiệu RAM
RAM là bộ nhớ truy nhập ngẫu nhiên, mỗi ô nhớ được
truy nhập theo bất kỳ thứ tự nào.
RAM là bộ nhớ thay đổi: tất cả thông tin bị mất khi tắt
nguồn điện.
RAM là bộ nhớ bán dẫn. Mỗi ô nhớ là cổng bán dẫn.
RAM lưu trữ thông tin hệ thống và người dùng.
Thông tin hệ thống: thông tin phần cứng và HĐH
Thông tin người dùng: dữ liệu và đoạn mã chương trình người
dùng.2010 KTMT- Hệ thống nhớ 54
Các loại RAM
RAM tĩnh (Static RAM - SRAM)
Mỗi bít là mạch lật flip-flop
Thông tin lưu trong SRAM ổn định không cần phải định kỳ
làm tươi.
SRAM nhanh nhưng đắt hơn DRAM
RAM động (Dynamic RAM-DRAM)
Mỗi bít DRAM là 1 tụ điện
Các thông tin DRAM không ổn định và cần phải làm tươi
định kỳ
DRAM chậm nhưng rẻ hơn SRAM2010 KTMT- Hệ thống nhớ 55
SRAM's Basic Elements
SRAM cell-6T
B
E
C C
B
E
Mạch lật đơn giản2010 KTMT- Hệ thống nhớ 56
Đặc tính SRAM
SRAM sử dụng mạch chốt 2 trạng thái ổn định để lưu
các bít
Một bít SRAMsử dụng 6, 8, 10 transistors (6T, 8T,10T).
SRAM nhanh hơn do:
Các bít có cấu trúc đối xứng
Chíp SRAM nhận tín hiệu địa chỉ các bít nhớ bất cứ lúc nào
SRAM đắt:
Dùng nhiều transitor hơn DRAM
Cấu trúc bên trong phức tạp hơn, mật độ SRAM thấp hơn DRAM.2010 KTMT- Hệ thống nhớ 57
Các thành phần cơ bản DRAM
Tụ điện
Transistor
1 bit DRAM2010 KTMT- Hệ thống nhớ 58
Các đặc tính
Bít DRAM dựa trên tụ điện và transitor. 2 mức tích điện của
tụ thể hiện giá trị lôgíc : 0-rỗng and 1-đầy.
Về bản chất, điện tích của tụ điện bị dò, và phải được nạp
lại định kỳ để duy trì thông tin.
DRAM thường được sắp xếp thành hàng ngang 1 tụ và 1
transitor cho 1 ô nhớ.
DRAM chậm hơn SRAM do phải làm tươi định kỳ và quá
trình nạp tốn thời gian.
DRAM rẻ hơn SRAM do sử dụng ít transistor trên ô nhớ và
mật độ cao hơn.2010 KTMT- Hệ thống nhớ 59
Các kiểu DRAM
SDRAM: DRAM có giao tiếp đồng bộ xung nhịp buýt.
SDR SDRAM: SDRAM cho phép 1 lệnh và truyền 1
từ nhớ trên chu kỳ xung nhịp; 100MHz, 133MHz
DDR SDRAM: Double Data Rate SDRAM
DDR1 SDRAM: DDR 266, 333, 400
DDR2 SDRAM: DDR2 400, 533, 800
DDR3 SDRAM: DDR3 800, 1066, 1333, 16002010 KTMT- Hệ thống nhớ 60
Types of DRAMs
SDRAM PC133 DDR3 1066 SDRAM2010 KTMT- Hệ thống nhớ 61
Giới thiệu ROM
ROM là bộ nhớ chỉ đọc. Ghi vào ROM cần sử dụng các
thiết bị hoặc phương pháp đặc biệt.
ROM là bộ nhớ không thay đổi các thông tin lưu không bị
mất khi mất nguồn.
ROM là bộ nhớ bán dẫn. Mỗi ô nhớ là cổng bán dẫn.
ROM thường được sử dụng để lưu thông tin hệ thống.
Thông tin hệ thống: thông tin BIOS và phần cứng2010 KTMT- Hệ thống nhớ 62
ROM - Ví dụ2010 KTMT- Hệ thống nhớ 63
Các loại ROM
ROM thường: dạng ROM cổ nhất dùng tia cực tím để ghi
thông tin.
PROM: Programmable ROM. PROM có thể ghi hay lập
trình qua các thiết bị gọi là bộ lập trình PROM.
EPROM: Erasable programmable read-only memory.
ROM có thể xoá bằng tia cực tím công suất lớn.
EEPROM: dạng EPROM có thể xoá bằng điện.
Bộ nhớ Flash:
Dạng EEPROM có thể xoá và ghi nhanh hơn EEPROM thường
Có thể xoá ghi với khối lượng lớn.
Bạn đang đọc truyện trên: AzTruyen.Top