Thế hệ máy tính cơ khí
• Blaise Pascal (1636-1662): chế tạo máy có thể tính
toán được đầu tiên (cộng, trừ) năm 1642
• Leibniz (1646-1716): chế được máy có thể tính được
phép nhân, chia
• Charles Babbage (1791-1871): nghiên cứu chế tạo
máy phân tích (analytical engine)
• Đưa ý tưởng về máy tính đa năng (general purpose)
• Không thành công do công nghệ phần cứng chưa đáp ứng
101 trang |
Chia sẻ: Mr Hưng | Lượt xem: 995 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Kiến trúc máy tính - Chương 1: Đại cương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KIẾN TRÚC MÁY TÍNH
Chương 1: Đại cương
Nguyễn Duy Phúc
duyphucit@live.com
Vĩnh Long, 08/2013
Các thế hệ máy tính
Thế hệ máy tính cơ khí
• Blaise Pascal (1636-1662): chế tạo máy có thể tính
toán được đầu tiên (cộng, trừ) năm 1642
• Leibniz (1646-1716): chế được máy có thể tính được
phép nhân, chia
• Charles Babbage (1791-1871): nghiên cứu chế tạo
máy phân tích (analytical engine)
• Đưa ý tưởng về máy tính đa năng (general purpose)
• Không thành công do công nghệ phần cứng chưa đáp ứng
Các thế hệ máy tính (2)
Blaise Pascal Pascal's Calculator (Pascaline)
Các thế hệ máy tính (3)
Charles Babbage
Một phần của máy sai phân
(Difference Engine)
Các thế hệ máy tính (4)
Thế hệ đầu tiên (1946-1955)
• Sử dụng đèn điện tử
• Máy tính điện tử số đầu tiên: ENIAC (Electronic
Numerical Integrator and Computer)
• Chế tạo 1943, hoàn thành 1946
• 18.000 đèn điện tử, 1.500 công tắc tự động, 30 tấn, tiêu
thụ 140KWh
• Số thập phân, 20 thanh ghi 10 bit, 5000 phép toán cộng/s
• Lập trình bằng tay bằng cách đấu nối công tắc, đầu cắm
• John Von Neumann thiết kế máy IAS, làm cơ sở cho
nhiều thế hệ máy tính về sau: số nhị phân, lưu trữ
chương trình trong bộ nhớ, ALU
Các thế hệ máy tính (5)
Các thế hệ máy tính (5)
Thế hệ thứ hai (1958-1964)
• Sử dụng bán dẫn (transistor)
• Kích thước giảm, rẻ tiền, tốn ít năng lượng hơn thế
hệ trước
• Ngôn ngữ cấp cao xuất hiện (FORTRAN, COBOL,
ALGOL)
• Xuất hiện hệ điều hành theo lô (Batch)
Các thế hệ máy tính (6)
Thế hệ thứ ba (1965-1971)
• Sử dụng mạch tích hợp (IC – Integrated Circuit),
mạch tích hợp mức độ thấp, trung bình (SSI, MSI)
• Sử dụng bộ nhớ bán dẫn
• Máy tính đa chương trình
• Hệ điều hành chia sẻ thời gian
Các thế hệ máy tính (7)
Thế hệ thứ tư (1972-?)
• Sử dụng mạch tích hợp mức độ cao (LSI), cực cao
(VLSI)
• Kỹ thuật ống dẫn, vô hướng, song song,
• Bộ nhớ cache, bộ nhớ ảo
• Xuất hiện máy tính cá nhân
Các thế hệ máy tính (8)
Khuynh hướng hiện tại
• Máy tính thông minh (trí tuệ nhân tạo): khả năng
bắt chước, suy nghĩ, học hỏi
• Tiên phong là người Nhật
• Một số ứng dụng: game, nhận dạng hình ảnh, nhận
dạng tiếng nói, chữ viết,
Phân loại máy tính
Siêu máy tính (Supercomputer)
• Khả năng tính toán cao
• FLOP (Floating point operations per second): dưới 1
gigaflop/s không được gọi là siêu máy tính
• Sử dụng trong tính toán khoa học
• Đắt tiền, đòi hỏi trình độ kỹ thuật cao để quản lý, sử
dụng
• Tham khảo: www.top500.org
Phân loại máy tính (2)
Máy tính lớn (Mainframe)
• Hệ thống nhập xuất mạnh, lưu trữ dữ liệu lớn
• Dùng trong quản lý
Máy tính mini (Minicomputer)
• Cấu hình mạnh, hoạt động ổn định
• Sử dụng làm máy chủ (server)
Máy tính cá nhân (Microcomputer, Personal
Computer)
• Giá thành rẻ, sử dụng cho mục đích cá nhân
Quy luật Moore (Moore’s law)
Gordon Earle Moore (1929), đồng sáng lập hãng
Intel
Nội dung: khả năng của máy tính sẽ tăng gấp đôi
sau 18 tháng với giá thành như nhau
• Mật độ tích hợp của linh kiện tăng gấp đôi
• Chi phí giảm
• Giảm kích thước
• Tiết kiệm năng lượng
Quy luật Moore (2)
Thông tin và sự mã hóa thông tin
Thông tin và sự mã hóa thông tin (2)
Lượng thông tin:
• Đơn vị là bit
• Công thức tính lượng thông tin cần thiết:
I = Logk(N)
N : số trạng thái có thể có
k : hệ thống số sử dụng để biểu diễn
• Ví dụ: để biểu diễn 8 trạng thái ở hệ 2 cần
Log2(8) = 3 bit
000, 001, 010, 011, 100, 101, 110, 111
Thông tin và sự mã hóa thông tin (3)
Biểu diễn các số
Dạng tổng quát biểu diễn giá trị của một số:
𝑉𝑘 =
𝑖=−𝑚
𝑛−1
𝑏𝑖 . 𝑘
𝑖
• k : hệ biểu diễn
• m : số thứ tự của chữ số phần lẻ (đánh số từ 1)
• n : số thứ tự của chữ số phần nguyên (đánh số từ 0)
Các ký số (bi) được biễu diễn theo quy tắc 0..9, tiếp
theo là A, B, C,
Ví dụ: 13.2510=1.10
1 + 3.100 + 2.10-1 + 5.10-2
Thông tin và sự mã hóa thông tin (4)
Cách biểu diễn phần nguyên của một số hệ 10
sang hệ k:
• Gọi số cần biểu diễn là N
• B1: Chia số N cho k, được phần nguyên n, phần dư d
• B2: Nếu n=0 thì đến bước 3, ngược lại gán N=n và
đến bước 1
• B3: Viết các số dư d ngược lại với thứ tự nhận được.
Kết quả chính là số N cần biểu diễn ở hệ k
Ví dụ: biểu diễn 6710 sang hệ 2
Thông tin và sự mã hóa thông tin (5)
Phép tính Phần nguyên Phần dư
67 / 2 33 1
33 / 2 16 1
16 / 2 8 0
8 / 2 4 0
4 / 2 2 0
2 / 2 1 0
1 / 2 0 1
Kết quả: 6710 = 10000112
Thông tin và sự mã hóa thông tin (6)
Chuyển đổi giữa hệ 2 và hệ 16
• Theo từng nhóm, 4 ký số hệ nhị phân tương đương
1 ký số hệ 16
Ví dụ:
• 10100011012 10.1000.11012 28D16
• 4F16 0100.11112 10011112
Hệ 10 Hệ 2 Hệ 16
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Thông tin và sự mã hóa thông tin (7)
Biểu diễn số nguyên có dấu ở hệ nhị phân:
• Sử dụng dạng bù 2: bit cao nhất có dấu âm
• Công thức tính giá trị:
𝑁 = −𝑑𝑛−1. 2
𝑛−1 +
𝑖=0
𝑛−2
𝑑𝑖 . 2
𝑖
di : chữ số thứ I
n : số chữ số của N
Thông tin và sự mã hóa thông tin (8)
Ví dụ:
• 0101bù 2 - 4 bit = -0.2
3 + 1.22 + 0.21 + 1.20 = 5
• 1011bù 2 - 4 bit = -1.2
3 + 0.22 + 1.21 + 1.20 = -5
Cách chuyển N từ hệ 10 bù 2 – k bit
• Nếu N là số dương: biểu diễn N sang nhị phân, thêm
0 vào phía trước cho đủ k bit
• Nếu N là số âm:
• B1: Lấy trị tuyệt đối của N, sau đó biểu diễn sang nhị
phân, thêm 0 vào phía trước cho đủ k bit
• B2: Nghịch đảo các bit của số có được sau đó cộng thêm 1
Thông tin và sự mã hóa thông tin (9)
Ví dụ:
710 bù 2 – 5 bit
710 1112 00111bù 2 – 5 bit
-710 bù 2 – 5 bit
B1: 710 1112 001112
B2: 001112 đảo bit 110002 + 12 11001bù 2 – 5 bit
Thông tin và sự mã hóa thông tin (10)
Biểu diễn số thực dạng đơn giản
• Phần nguyên: đổi sang dạng nhị phân theo cách
tổng quát
• Phần thập phân: nhân 2, giữ lại phần nguyên cho
đến khi nào phần lẻ bằng 0
• Ví dụ: 17.25
• Phần nguyên: 1510 100012
• Phần thập phân: 0.25 x 2 = 0.5
0.5 x 2 = 1.0
17.2510 = 10001.012
Thông tin và sự mã hóa thông tin (11)
Biểu diễn số thực với dấu chấm động
• Chuẩn hóa về dạng ±𝟏. 𝐟𝐟𝐟𝐟 𝐟 𝐱 𝟐±𝐄
• Gồm 3 phần: phần dấu (+/-), phần mũ (E),
phần định trị (1.ffffff)
• Thường dùng chuẩn IEEE 754
• Chính xác đơn: 32 bit (1 – 8 – 23)
• Chính xác kép: 64 bit (1 – 11 – 52)
• Dạng mở rộng
Thông tin và sự mã hóa thông tin (12)
Biểu diễn số thực dạng chính xác đơn (32 bit)
Giá trị (-1)S x (1.f1f2f23) x 2
(E - 127)
Biểu diễn số thực dạng chính xác kép (64 bit)
Giá trị (-1)S x (1.f1f2f52) x 2
(E - 1023)
31 30 ... 23 22 21 1 0
S E f1 f2 .. f22 f23
63 62 ... 52 51 50 1 0
S E f1 f2 .. f51 f52
Thông tin và sự mã hóa thông tin (13)
Ví dụ: biểu diễn -12.625 dạng chính xác đơn
• B1: -12.625 -1100.1012
• B2: Chuẩn hóa về dạng 1.f
-1100.1012 = -1.1001012 x 2
3
• B3: Điền vào các trường theo chuẩn
S = 1 do là số âm
Phần mũ: E - 127 = 3 E = 130 = 100000102
Kết quả
S E F
1 1000 0010 1001 0100 0000 0000 0000 000
Thông tin và sự mã hóa thông tin (14)
Biểu diễn ký tự
• Bảng mã ASCII (American Standard Codes for
Information Interchange): dùng 7 bit để biểu diễn
một ký tự, về sau mở rộng thành 8 bit
• Bảng mã UNICODE: dùng 16 bit để biểu diễn cho 1
ký tự
Thông tin và sự mã hóa thông tin (15)
Đơn vị đo thông tin
• Nhỏ nhất là bit (b)
• 8 bit = 1 Byte (B)
• Theo lũy thừa 210 các đơn vị kế tiếp là
• 210 B = 1024 B = 1 KB
• 210 KB = 1024 KB = 1 MB (Mega)
• 210 MB = 1024 MB = 1 GB (Giga)
• 210 GB = 1024 GB = 1 TB (Tera)
• 210 TB = 1024 TB = 1 PB (Peta)
• Exa, Zetta, Yotta
KIẾN TRÚC MÁY TÍNH
Chương 2: Kiến trúc phần mềm bộ xử lý
Nguyễn Duy Phúc
duyphucit@live.com
Vĩnh Long, 06/2013
Thành phần cơ bản của một máy tính
Cấu trúc của một hệ thống máy tính đơn giản
Thành phần cơ bản của một máy tính (2)
Bộ nhớ trong (Memory)
• Tập hợp các ô nhớ có kích thước bằng nhau
• Thông tin lưu dạng nhị phân
• Thời gian truy xuất các ô nhớ bằng nhau (RAM –
Random Access Memory)
Bộ phận vào ra
• Nhập xuất thông tin
• Giao tiếp giữa người sử dụng với máy tính hoặc giữa
các máy tính với nhau
Thành phần cơ bản của một máy tính (3)
Bộ xử lý trung tâm (Central Processing Unit)
• Lấy lệnh và dữ liệu từ bộ nhớ và thi hành
• Gồm 2 phần:
• Phần thi hành lệnh: ALU (Arithmetic and Logic Unit) và các
thanh ghi (Registers)
• Phần điều khiển: đảm bảo thi hành lệnh tuần tự và tác
động các mạch chức năng để thực hiện
Bus: kết nối các bộ phận với nhau
• Bus dữ liệu
• Bus địa chỉ
• Bus điều khiển
Sơ đồ mô tả hoạt động điển hình của một máy tính
Định nghĩa kiến trúc máy tính
Gồm 3 phần: kiến trúc phần mềm, tổ chức của
máy tính, lắp đặt phần cứng
Kiến trúc phần mềm: chủ yếu là BXL, bao gồm
• Tập lệnh: tập các lệnh mã máy hoàn chỉnh có thể
hiểu và xử lý bởi CPU
• Kiểu định vị: chỉ ra cách thức thâm nhập toán hạng
Lập trình viên phải nắm vững kiến trúc phần mềm
để lập trình hiệu quả, ít sai sót.
Định nghĩa kiến trúc máy tính (2)
Tổ chức của máy tính:
• Cấu trúc bên trong của BXL
• Cấu trúc bộ nhớ, bus, nhập xuất,
Lắp đặt phần cứng: liên quan đến các bộ phận,
linh kiện điện tử cụ thể
Các máy tính có thể cùng kiến trúc phần mềm
nhưng khác nhau ở tổ chức, lắp đặt
Các kiểu thi hành một lệnh
Một lệnh mã máy bao gồm
• Mã tác vụ
• Toán hạng: thường từ 0 đến 3 toán hạng tùy theo
thiết kế
Vị trí của toán hạng
• Ngăn xếp (Stack)
• Thanh ghi tích lũy (Accumulator Register)
• Thanh ghi đa dụng (General Registers)
Các kiểu thi hành một lệnh (2)
Ví dụ: thực hiện phép tính C:=A+B
Kiến trúc
ngăn xếp
Kiến trúc thanh
ghi tích lũy
Kiến trúc thanh
ghi đa dụng
PUSH A
PUSH B
ADD
LOAD C
LOAD A
ADD B
STORE C
LOAD R1, A
ADD R1, B
STORE R1, C
Các kiểu thi hành một lệnh (3)
Kiến trúc ngăn xếp Kiến trúc thanh ghi tích lũy Kiến trúc thanh ghi đa dụng
Ưu điểm:
- Lệnh ngắn
- Ít mã máy
- Tối thiểu trạng thái
- Dễ dạng tạo bộ biên dịch
Ưu điểm:
- Lệnh ngắn
- Tối thiểu trạng thái
- Thiết kế dễ dàng
Ưu điểm:
- Tốc độ xử lý nhanh
- Ít thâm nhập bộ nhớ
- Kiểu tổng quát để tạo ra
mã hữu hiệu
Nhược điểm:
- Thâm nhập ngăn xếp
không ngẫu nhiên
- Mã không hiệu quả
- Khó dùng trong xử lý
song song và ống dẫn
- Khó tạo bộ biên dịch tối
ưu
Nhược điểm:
- Lưu trữ ở thanh ghi tích
lũy là tạm thời
- Nghẽn ở thanh ghi tích
lũy
- Khó dùng trong xử lý
song song và ống dẫn
- Trao đổi nhiều với bộ
nhớ
Nhược điểm:
- Lệnh dài
- Số lượng thanh ghi bị
giới hạn
Kiểu kiến trúc thanh ghi đa dụng
Được sử dụng nhiều hiện nay
Số toán hạng trong lệnh
• 2 toán hạng, trong đó có 1 toán hạng vừa là toán
hạng nguồn, vừa là toán hạng đích
• 3 toán hạng, có 1 làm toán hạng đích
Loại toán hạng: tức thì, thanh ghi, bộ nhớ
Kiểu tổ hợp toán hạng: thanh ghi – thanh ghi,
thanh ghi – bộ nhớ, bộ nhớ – bộ nhớ
Kiểu kiến trúc thanh ghi đa dụng (2)
Tập lệnh
Tác vụ Mô tả
Tính toán số học và luận lý Phép tính số nguyên và phép tính luận lý
Di chuyển số liệu Nạp số liệu, lưu trữ số liệu
Chuyển điều khiển
Nhảy, vòng lặp, gọi chương trình con và trở về, ngắt
quãng
Hệ thống Gọi hệ điều hành, quản lý bộ nhớ ảo
Tính số có dấu chấm động Các phép tính trên số thực
Tính số thập phân Tính toán, chuyển đổi trên số thập phân
Tính toán trên chuỗi Chuyển dữ liệu, so sánh, tìm kiếm trên chuỗi
Đồ họa và đa phương tiện Nén, giải nén trên dữ liệu hình ảnh, âm thanh, video
Kiểu kiến trúc thanh ghi đa dụng (3)
Các kiểu định vị: xác định cách thức thâm nhập
toán hạng
• Định vị tức thì
• Định vị thanh ghi
• Định vị bộ nhớ
Các lưu trữ từ nhớ (word) trong bộ nhớ
• Big-Endian: byte thấp nhất lưu trong ô nhớ địa chỉ
cao nhất
• Little-Endian: byte thấp nhất lưu trong ô nhớ địa chỉ
thấp nhất
Kiểu kiến trúc thanh ghi đa dụng (4)
Kiểu định vị Ví dụ Giải thích
Thanh ghi Add R3, R4 R3 R3 + R4
Tức thì Add R4, #3 R4 R4 + 3
Trực tiếp Add R1, (1001) R1 R1 + M[1001]
Gián tiếp (thanh ghi) Add R4, (R1) R4 R4 + M[R1]
Gián tiếp (bộ nhớ) Add R1, @(R3) R1 R1 + M[M[R3]]
Gián tiếp (thanh ghi + độ dời) Add R4, 100(R1) R4 R4 + M[R1 + 100]
Gián tiếp (thanh ghi + thanh ghi) Add R3, (R1 + R2) R3 R3 + M[R1 + R2]
Gián tiếp (thanh ghi nền + thanh ghi chỉ
số + độ dời)
Add R1, 100(R2)[R3]
R1 R1 +
M[100 + R2 + d*R3]
Tự tăng Add R1, (R2)+
R1 R1 + M[R2]
R2 R2 + d
Tự giảm Add R1, -(R2)
R2 R2 – d
R1 R1 + M[R2]
Kiến trúc CISC
Kiến trúc tập lệnh phức tạp – CISC (Complex
Instruction Set Computer)
• Nhiều lệnh
• Lệnh có chiều dài thay đổi
• Nhiều kiểu định vị
• Nhiều cách thực hiện lệnh
• Bộ điều khiển sử dụng vi chương trình
Kiến trúc RISC
Kiến trúc tập lệnh rút gọn – RISC (Reduce
Instruction Set Computer)
• Ít lệnh (<100)
• Ít kiểu định vị
• Lệnh có cùng chiều dài
• Ít dạng lệnh
• Bộ điều khiển bằng mạch điện
• Nhiều thanh ghi
Ngôn ngữ cấp cao và ngôn ngữ máy
Mô tả quá trình chuyển đổi từ ngôn ngữ cấp cao sang ngôn ngữ máy
KIẾN TRÚC MÁY TÍNH
Chương 3: Tổ chức bộ xử lý
Nguyễn Duy Phúc
duyphucit@live.com
Vĩnh Long, 06/2013
Đường đi của dữ liệu
Các thành phần:
• ALU
• PC (Program Counter)
• SR (Status Register)
• Thanh ghi tổng quát
• TEMP
• MAR (Memory Address Register)
• MBR (Memory Buffer Register)
• MUX (Multiplexor)
• S1, S2, Dest
Bộ điều khiển
Nhiệm vụ:
• Giải mã lệnh
• Phát tín hiệu điều khiển các bộ phận chức năng thực
hiện lệnh
Có 2 loại:
• Dùng mạch điện tử: đơn giản, phù hợp với BXL RISC
• Dùng vi chương trình (microprogram): dễ sửa đổi,
phù hợp với BXL CISC
Nguyên tắc hoạt động của bộ điều khiển dùng mạch điện tử
Nguyên tắc hoạt động của bộ điều khiển dùng vi chương trình
Diễn tiến thi hành lệnh mã máy
IF
• Đọc lệnh (Instruction Fetch)
ID
• Giải mã lệnh (Instruction Decode)
EX
• Thi hành lệnh (Execute)
MEM
• Thâm nhập bộ nhớ trong hoặc nhảy (Memory Access)
RS
• Lưu trữ kết quả (Result Storing)
Diễn tiến thi hành lệnh mã máy (2)
Đọc lệnh (IF)
• MAR PC
• IR M[MAR]
Giải mã lệnh (ID)
• A Rs1
• B Rs2
• PC PC + d
d: kích thước của lệnh
Diễn tiến thi hành lệnh mã máy (3)
Thi hành lệnh (EX): tùy theo trường hợp
• Liên hệ tới bộ nhớ
• MAR Địa chỉ cần liên hệ do ALU tính (Rs2)
• MBR Dữ liệu cần lưu và bộ nhớ (Rs1)
• Một lệnh tính toán của ALU
• Ngã ra ALU kết quả phép tính
• Lệnh nhảy
• Ngã ra ALU địa chỉ cần nhảy đến
Diễn tiến thi hành lệnh mã máy (4)
Thâm nhập bộ nhớ trong/nhảy lần cuối (MEM)
• Liên hệ tới bộ nhớ
• Đọc từ bộ nhớ: MBR M[MAR]
• Ghi vào bộ nhớ: M[MAR] MBR
• Nhảy
• Có điều kiện nếu điều kiện đúng thì: PC ngã ra ALU
• Không điều kiện thì: PC ngã ra ALU
Lưu trữ kết quả (RS)
• Rd ngã ra ALU / MBR
Diễn tiến thi hành lệnh mã máy (5)
Ví dụ 1: diễn tiến thi hành lệnh ADD R1, R2, R3
IF MAR PC
IR M[MAR]
ID A R2
B R3
PC PC + d
EX Ngã ra ALU A + B
MEM
RS R1 C Ngã ra ALU
Diễn tiến thi hành lệnh mã máy (6)
Ví dụ 2: diễn tiến thi hành lệnh LOAD R1, (R2)
IF MAR PC
IR M[MAR]
ID B R2
PC PC + d
EX MAR Ngã ra ALU B
MEM MBR M[MAR]
RS R1 C Ngã ra ALU MBR
Diễn tiến thi hành lệnh mã máy (7)
Ví dụ 3: diễn tiến thi hành lệnh STORE R3, (R4)
IF MAR PC
IR M[MAR]
ID A R3 B R4
PC PC + d
EX MAR Ngã ra ALU B
MBR Ngã ra ALU A
MEM M[MAR] MBR
RS
Diễn tiến thi hành lệnh mã máy (8)
Ví dụ 4: diễn tiến thi hành lệnh JMP R1
IF MAR PC
IR M[MAR]
ID B R1
PC PC + d
EX Ngã ra ALU B
MEM PC Ngã ra ALU
RS
Kỹ thuật ống dẫn (Pipeline)
Là kỹ thuật làm cho các giai đoạn khác nhau của
nhiều lệnh được thi hành cùng một lúc.
Thực thi lệnh bình thường
Lệnh
Xung nhịp
1 2 3 4 5 6 7 8 9 10
i IF ID EX MEM RS
i + 1 IF ID EX MEM RS
Kỹ thuật ống dẫn (2)
Áp dụng kỹ thuật ống dẫn
Lệnh
Xung nhịp
1 2 3 4 5 6 7 8 9 10
i IF ID EX MEM RS
i + 1 IF ID EX MEM RS
i + 2 IF ID EX MEM RS
i + 3 IF ID EX MEM RS
i + 4 IF ID EX MEM RS
i + 5 IF ID EX MEM RS
Kỹ thuật ống dẫn (3)
Yêu cầu:
• Có mạch điện riêng để thi hành từng giai đoạn của
lệnh
• Có nhiều thanh ghi khác nhau dùng cho đọc và ghi
dữ liệu
• Giải mã phải hoàn tất trong một chu kỳ xung nhịp
• Có nhiều thanh IR, PC, ALU
Kỹ thuật ống dẫn (4)
Khó khăn do cấu trúc
• Do thiếu bộ phận chức năng
Khó khăn do số liệu
• Do trong đường ống có lệnh sử dụng kết quả của
lệnh trước nó
Khó khăn do điều khiển
• Do có lệnh nhảy làm mất tính tuần tự của chương
trình
Các kỹ thuật khác
Siêu vô hướng (SuperScalar)
Máy tính có lệnh thật dài (VLIW)
Máy tính vector
Máy tính song song: SISD, SIMD, MISD, MIMD
Kiến trúc IA-64
KIẾN TRÚC MÁY TÍNH
Chương 4: Bộ nhớ
Nguyễn Duy Phúc
duyphucit@live.com
Vĩnh Long, 06/2013
Các loại bộ nhớ
Bộ nhớ trong: ROM, RAM
Bộ nhớ ngoài: đĩa, băng từ, thẻ nhớ,
Công nghệ chế tạo RAM
• RAM tĩnh (SRAM – Static RAM)
• RAM động (DRAM – Dynamic RAM)
Các loại DRAM
• SDRAM
• DDR SDRAM
• RDRAM
SRAM và DRAM
SRAM DRAM
- Công nghệ ECL
- Kích thước lớn, phức tạp
- Tốc độ nhanh
- Không cần làm tươi bộ nhớ
- Đắt tiền
- Dùng làm bộ nhớ cache,
thanh ghi
- Công nghệ MOS
- Nhỏ gọn, đơn giản
- Tốc độ chậm
- Cần phải làm tươi
- Rẻ tiền
- Dùng làm bộ nhớ chính
(các thanh RAM)
Các cấp bộ nhớ
Toán hạng (Operand)
Khối (Block)
Trang (Page)
File
Từ trên xuống: dung lượng tăng, giá thành và tốc độ giảm
Bộ nhớ Cache
Là bộ nhớ nhanh (thường là SRAM), hoạt động
trung gian giữa bộ nhớ trong và CPU, chứa lệnh
và dữ liệu thường xuyên hoặc sẽ sử dụng đến
CPUMain
Memory
Cache
Xác xuất truy cập dữ liệu trong bộ nhớ
trong
Một chương trình mất 90% thời gian của nó để
thi hành 10% số lệnh của chương trình.
Nguyên tắc về thời gian
• Chương trình luôn có phần được truy xuất thường
xuyên nhất.
Nguyên tắc về không gian
• Khả năng thập nhập ô nhớ kế tiếp là cao do tính
tuần tự của chương trình.
Vận hành của Cache
CPUMain
Memory
Cache
Trao đổi dữ liệu giữa CPU – Cache – Bộ nhớ trong
Blocks Words
Vận hành của Cache (2)
Thành công Cache (Cache hit)
• Dữ liệu cần truy xuất có trong cache
Thất bại Cache (Cache miss)
• Dữ liệu cần truy xuất không tìm thấy trong cache
Trừng phạt thất bại Cache (Cache penalty)
• Thời gian cần thiết để xử lý một thất bại cache
• Bao gồm: thời gian truy xuất bộ nhớ trong + thời
gian chuyển khối cần đọc từ bộ nhớ trong đến cache
Sắp xếp khối trong Cache
Tương ứng trực tiếp
Vị trí đặt khối tính theo công thức
K = i mod n
Trong đó
• K : Vị trí đặt khối trong cache
• i : số thứ tự của khối trong bộ nhớ trong
• n : số lượng khối của cache
Sắp xếp khối trong Cache (2)
Hoàn toàn phối hợp
Một khối trong bộ nhớ trong có thể đặt ở khối
có vị trí bất kỳ trong cache
Sắp xếp khối trong Cache (3)
Phối hợp theo tập hợp
Cache được chia thành nhiều tập hợp, mỗi tập
hợp có nhiều khối, số lượng khối của các tập
hợp bằng nhau
Cách đặt khối trong bộ nhớ vào cache
• Tính K = i mod s
• Trong đó s là số lượng tập hợp của cache
• Khối sẽ được đặt vào bất kỳ vị trí nào trong tập hợp
thứ K
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Bộ nhớ trong
Bộ nhớ cache
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 1 2 3 4 5 6 7
Hoàn toàn phối hợp
0 1 2 3 4 5 6 7
Tương ứng trực tiếp
0 1 2 3 4 5 6 7
0 0 1 1 2 2 3 3
Phối hợp theo tập hợp
Cách tìm khối trong Cache
Ứng với một thao tác truy xuất một từ trong bộ
nhớ, cần phải xác định được:
• Số thứ tự khối cần truy xuất
• Vị trí của từ trong khối
Vị trí của từ trong khối được xác định dựa vào
địa chỉ của từ và kích thước của một khối
Ví dụ: Địa chỉ bộ nhớ là 10 bit, kích thước khối là
16 (4 bit)
Chỉ số khối trong bộ nhớ
(6 bit)
Địa chỉ của từ trong
khối (4 bit)
Cách tìm khối trong Cache (2)
Nhận dạng chỉ số khối – tương ứng trực tiếp
• Chỉ số khối cache: xác định khối cần xét
• Nhãn: dùng so sánh xem khối đang xét có phải khối
cần tìm hay không
Chỉ số khối trong bộ nhớ
Địa chỉ của từ
trong khối
Nhãn Chỉ số khối cache
Cách tìm khối trong Cache (3)
Nhận dạng chỉ số khối – hoàn toàn phối hợp
• Chỉ số khối: được so sánh với nhãn của tất cả các
khối trong cache để xác định khối cần tìm có trong
cache hay không
Chỉ số khối trong bộ nhớ
Địa chỉ của từ
trong khối
Cách tìm khối trong Cache (4)
Nhận dạng chỉ số khối – tương ứng trực tiếp
• Chỉ số khối cache: xác định tập hợp cần xét
• Nhãn: dùng so sánh với nhãn của tất cả khối trong
tập hợp đang xét để xác định khối cần tìm
Chỉ số khối trong bộ nhớ
Địa chỉ của từ
trong khối
Nhãn Chỉ số tập hợp
Thay thế khối trong Cache
Thay thế ngẫu nhiên
Khối xưa nhất (LRU – Least Recently Used)
Vào trước ra trước (FIFO)
Tần số sử dụng ít nhất (LFU – Least Frequently
Used)
Chiến thuật ghi Cache
Ghi đồng thời
• Dữ liệu được ghi cùng lúc vào khối trong cache và bộ
nhớ trong
Ghi lại
• Chỉ ghi lại trong cache, khi nào thay thế khối mới ghi
lại trong bộ nhớ trong
Hiệu quả của Cache
Thường đánh giá bằng thời gian thâm nhập
trung bình của cache
Công thức tính
Thời gian
thâm nhập
trung bình
của cache
=
Thời gian
thâm nhập
thành công
+
Tỷ lệ
thất bại
∗
Trừng phạt
thất bại
Cache duy nhất và Cache riêng lẻ
Cache duy nhất
• Chứa cả lệnh và dữ liệu
Cache riêng lẻ
• Phân biệt cache chứa lệnh và cache chứa dữ liệu
Cache riêng lẻ giúp tránh tranh chấp khi cùng
đọc lệnh và dữ liệu, tối ưu về mặt kích thước và
phối hợp giữa các khối
Các mức Cache
Số mức tùy thuộc vào thiết kế, chênh lệch giữa
CPU và bộ nhớ trong
Ký hiệu: L1, L2, L3,
Ví dụ: các mức cache của một CPU có 2 nhân
Các kỹ thuật tăng băng thông của
bộ nhớ trong
Nới rộng chiều dài ô nhớ (kích thước từ nhớ)
Bộ nhớ đan chéo đơn giản
• Dùng chung đường địa chỉ với điều khiển ô nhớ
Bộ nhớ đan chéo tổ chức độc lập
• Dùng riêng đường địa chỉ, có thể dùng riêng đường
dữ liệu
Tránh xung đột giữa các dãy bộ nhớ
• Thường xử lý bằng cách tăng số lượng dãy
Bộ nhớ ảo (Virtual Memory)
Là cơ chế tự động hoán chuyển (swapping) dữ
liệu giữa bộ nhớ trong và bộ nhớ ngoài để tăng
dung lượng bộ nhớ có thể sử dụng của tiến
trình (process)
Bộ nhớ ảo giúp tiến trình không phụ thuộc vào
kích thước của bộ nhớ RAM có trong máy
Tăng khả năng đa chương, giảm nhẹ gánh nặng
về bộ nhớ cho người lập trình
Mô hình bộ nhớ ảo
KIẾN TRÚC MÁY TÍNH
Chương 5: Nhập – Xuất
Nguyễn Duy Phúc
duyphucit@live.com
Vĩnh Long, 06/2013
Đĩa từ
Lưu trữ dài hạn các tập tin
Tham gia làm bộ nhớ ảo lúc chạy chương trình
Các thông số:
• Dung lượng (GB)
• Giao tiếp (PATA, SATA, SCSI)
• Tốc độ quay (rpm)
• Bộ nhớ đệm – cache (MB)
Cấu tạo của đĩa cứng
Tổ chức lưu trữ thông tin trong đĩa cứng
Đĩa quang
Thẻ nhớ
Thẻ nhớ CompactFlash, MemoryStick, Secure Digital (SD) và xD
Các chuẩn bus
ISA
PCI
AGP
PCI-Express
USB
e-SATA
IEEE 1394
Thunderbolt
Hệ thống đĩa dự phòng (RAID)
RAID – Redundant Arrays of Inexpensive Disks
Các mức RAID
• RAID 0: tăng tốc độ, an toàn thấp
• RAID 1: tăng an toàn
• RAID 5: tăng tốc độ, tăng an toàn
Các file đính kèm theo tài liệu này:
- baigiangkientrucmaytinh_0965.pdf