GPU Architectures
Processing is highly data-parallel
GPUs are highly multithreaded
Use thread switching to hide memory latency
Less reliance on multi-level caches
Graphics memory is wide and high-bandwidth
Trend toward general purpose GPUs
Heterogeneous CPU/GPU systems
CPU for sequential code, GPU for parallel code
Programming languages/APIs
DirectX, OpenGL
C for Graphics (Cg), High Level Shader Language
(HLSL)
Compute Unified Device Architecture (CUDA)
Example: NVIDIA Tesla
Streaming Processors
Single-precision FP and integer units
Each SP is fine-grained multithreaded
Warp: group of 32 threads
Executed in parallel,
SIMD style
8 SPs
× 4 clock cycles
Hardware contexts
for 24 warps
Registers, PCs,
136 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 403 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiến trúc máy tính - Nguyễn Kim Khánh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thành việc đọc/ghi dữ liệu
Hazard điều khiển: do rẽ nhánh gây ra
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 353
Hazard về cấu trúc
Khắc phục:
nhân tài nguyên để tránh xung đột
Làm trễ
Ví dụ:
Bus dữ liệu: truyền lệnh và dữ liệu
Æ Bus lệnh riêng, bus dữ liệu riêng (cache
lệnh và cache dữ liệu)
NKK-HUST
Kiến trúc máy tính14 January 2013 354
Ví dụ Hazard về cấu trúc
conflict on arithmetic unit
cache miss
TLB miss
MULT A,B,C
MULT D,E,F
I D F E E E W
I D F F F E E E W
3 clocks necessary for multiplication
stall
NKK-HUST
Kiến trúc máy tính14 January 2013 355
Hazard về dữ liệu
Các dạng:
RAW (Read After Write)
WAR (Write After Read)
WAW (Write After Write)
NKK-HUST
Kiến trúc máy tính14 January 2013 356
Sự phụ thuộc về dữ liệu
RAW
WAR
WAW
ADD A,B,C
ADD E,A,D
ADD A,B,C
ADD B,D,E
ADD A,B,C
ADD A,D,E
Write-A must be earlier than
Read-A
Read-B must be earlier than
Write-B
First Write-A must be earlier
Than second Write-A
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 357
WAR and WAW
WAR
WAW
ADD A,B,C
ADD B,D,E
ADD A,B,C
ADD A,D,E
Read-B is earlier than Write-B
first Write-A is earlier than second Write-A
I D F E W
I D F E W
Write B
Read B
I D F E W
I D F E W
Write A
Write A
no conflict at in-order pipeline
conflict at out-of-order pipeline
NKK-HUST
Kiến trúc máy tính14 January 2013 358
RAW
ADD A,B,C
ADD E,A,D
I D F E W
I D F E C
I D F E W
I D D D F E W
Read A
Write A
stall
Write-A must be earlier
Than Read-A Write A
Read A
NKK-HUST
Kiến trúc máy tính14 January 2013 359
Hazard điều khiển
BEQ A, B, Label
LOAD C, X
・・・・
Label: LOAD C, Y
I D F E C
I D F E C
set PC
stall
Wait for branch address
calculation
next instruction to a branch instruction cannot be fetched until branch condition
defined and PC updated
NKK-HUST
Kiến trúc máy tính14 January 2013 360
Các kiến trúc song song mức lệnh
Siêu đường ống (Superpipeline &
Hyperpipeline)
Siêu vô hướng (Superscalar)
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 361
Superpipeline
NKK-HUST
Kiến trúc máy tính14 January 2013 362
Superscalar
NKK-HUST
Kiến trúc máy tính
6.4. Thiết kế bộ xử lý theo kiến trúc MIPS*
Bộ xử lý MIPS – Chapter 4 – [2]
14 January 2013 363
NKK-HUST
Kiến trúc máy tính14 January 2013 364
Hết chương 6
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính
Kiến trúc máy tính
Chương 7
BỘ NHỚ MÁY TÍNH
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
NKK-HUST
Kiến trúc máy tính 366
Nội dung học phần
Chương 1. Giới thiệu chung
Chương 2. Cơ bản về logic số
Chương 3. Hệ thống máy tính
Chương 4. Số học máy tính
Chương 5. Kiến trúc tập lệnh
Chương 6. Cấu trúc bộ xử lý
Chương 7. Bộ nhớ
Chương 8. Vào-ra
Chương 9. Các kiến trúc song song
14 January 2013
NKK-HUST
Kiến trúc máy tính14 January 2013 367
7.1. Phân cấp bộ nhớ
7.2. Bộ nhớ chính
7.3. Bộ nhớ cache
7.4. Bộ nhớ ngoài
7.5. Bộ nhớ ảo
Nội dung của chương 7
NKK-HUST
Kiến trúc máy tính14 January 2013 368
7.1. Phân cấp bộ nhớ máy tính
Vị trí
Bên trong CPU:
tập thanh ghi
Bộ nhớ trong:
bộ nhớ chính
bộ nhớ cache
Bộ nhớ ngoài: các thiết bị nhớ
Dung lượng
Độ dài từ nhớ (tính bằng bit)
Số lượng từ nhớ
1. Các đặc trưng của bộ nhớ máy tính
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 369
Các đặc trưng của hệ thống nhớ (tiếp)
Đơn vị truyền
Từ nhớ
Khối nhớ
Phương pháp truy nhập
Truy nhập tuần tự (băng từ)
Truy nhập trực tiếp (các loại đĩa)
Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)
Truy nhập liên kết (cache)
NKK-HUST
Kiến trúc máy tính14 January 2013 370
Các đặc trưng của hệ thống nhớ (tiếp)
Hiệu năng (performance)
Thời gian truy nhập
Chu kỳ nhớ
Tốc độ truyền
Kiểu vật lý
Bộ nhớ bán dẫn
Bộ nhớ từ
Bộ nhớ quang
NKK-HUST
Kiến trúc máy tính14 January 2013 371
Các đặc trưng của hệ thống nhớ (tiếp)
Các đặc tính vật lý
Khả biến / Không khả biến
(volatile / nonvolatile)
Xoá được / không xoá được
Tổ chức
NKK-HUST
Kiến trúc máy tính14 January 2013 372
2. Phân cấp bộ nhớ
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính
Công nghệ bộ nhớ
14 January 2013 373
Static RAM (SRAM)
0.5ns – 2.5ns, $2000 – $5000 per GB
Dynamic RAM (DRAM)
50ns – 70ns, $20 – $75 per GB
Ổ đĩa từ
5ms – 20ms, $0.20 – $2 per GB
Bộ nhớ lý tưởng
Thời gian truy nhập như SRAM
Dung lượng và giá thành như ổ đĩa cứng
NKK-HUST
Kiến trúc máy tính14 January 2013 374
Ví dụ hệ thống nhớ thông dụng
Từ trái sang phải:
dung lượng tăng dần
tốc độ giảm dần
giá thành/1bit giảm dần
NKK-HUST
Kiến trúc máy tính14 January 2013 375
Nguyên lý cục bộ hoá tham chiếu bộ nhớ
Trong một khoảng thời gian đủ nhỏ CPU
thường chỉ tham chiếu các thông tin
trong một khối nhớ cục bộ
Ví dụ:
Cấu trúc chương trình tuần tự
Vòng lặp có thân nhỏ
Cấu trúc dữ liệu mảng
NKK-HUST
Kiến trúc máy tính14 January 2013 376
7.2. Bộ nhớ chính
Kiểu bộ nhớ Tiêu
chuẩn
Khả năng xoá Cơ chế ghi Tính
khả biến
Read Only Memory
(ROM) Bộ nhớ
chỉ đọc
Không xoá
được
Mặt nạ
Không
khả biến
Programmable ROM
(PROM)
Bằng điện
Erasable PROM
(EPROM) Bộ nhớ
hầu như
chỉ đọc
bằng tia cực tím,
cả chip
Electrically Erasable
PROM (EEPROM)
bằng điện,
mức từng byte
Flash memory
Bộ nhớ
đọc-ghi
bằng điện,
từng khối
Random Access
Memory (RAM)
bằng điện,
mức từng byte Bằng điện
Khả biến
1. Bộ nhớ bán dẫn
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 377
ROM (Read Only Memory)
Bộ nhớ không khả biến
Lưu trữ các thông tin sau:
Thư viện các chương trình con
Các chương trình điều khiển hệ thống (BIOS)
Các bảng chức năng
Vi chương trình
NKK-HUST
Kiến trúc máy tính14 January 2013 378
Các kiểu ROM
ROM mặt nạ:
thông tin được ghi khi sản xuất
rất đắt
PROM (Programmable ROM)
Cần thiết bị chuyên dụng để ghi bằng chương
trình Æ chỉ ghi được một lần
EPROM (Erasable PROM)
Cần thiết bị chuyên dụng để ghi bằng chương
trình Æ ghi được nhiều lần
Trước khi ghi lại, xóa bằng tia cực tím
NKK-HUST
Kiến trúc máy tính14 January 2013 379
Các kiểu ROM (tiếp)
EEPROM (Electrically Erasable PROM)
Có thể ghi theo từng byte
Xóa bằng điện
Flash memory (Bộ nhớ cực nhanh)
Ghi theo khối
Xóa bằng điện
NKK-HUST
Kiến trúc máy tính14 January 2013 380
RAM (Random Access Memory)
Bộ nhớ đọc-ghi (Read/Write Memory)
Khả biến
Lưu trữ thông tin tạm thời
Có hai loại: SRAM và DRAM
(Static and Dynamic)
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 381
SRAM (Static) – RAM tĩnh
Các bit được lưu trữ bằng các Flip-Flop
Æ thông tin ổn định
Cấu trúc phức tạp
Dung lượng chip nhỏ
Tốc độ nhanh
Đắt tiền
Dùng làm bộ nhớ cache
NKK-HUST
Kiến trúc máy tính14 January 2013 382
DRAM (Dynamic) – RAM động
Các bit được lưu trữ trên tụ điện
Æ cần phải có mạch làm tươi
Cấu trúc đơn giản
Dung lượng lớn
Tốc độ chậm hơn
Rẻ tiền hơn
Dùng làm bộ nhớ chính
NKK-HUST
Kiến trúc máy tính14 January 2013 383
Các DRAM tiên tiến
Enhanced DRAM
Cache DRAM
Synchronous DRAM (SDRAM): làm việc
được đồng bộ bởi xung clock
DDR-SDRAM (Double Data Rate SDRAM)
Rambus DRAM (RDRAM)
NKK-HUST
Kiến trúc máy tính14 January 2013 384
Tổ chức của chip nhớ
Sơ đồ cơ bản của chip nhớ
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 385
Các tín hiệu của chip nhớ
Các đường địa chỉ: An-1 ÷ A0 Æ có 2n từ nhớ
Các đường dữ liệu: Dm-1 ÷ D0Æ độ dài từ
nhớ = m bit
Dung lượng chip nhớ = 2n x m bit
Các đường điều khiển:
Tín hiệu chọn chip CS (Chip Select)
Tín hiệu điều khiển đọc OE (Output Enable)
Tín hiệu điều khiển ghi WE (Write Enable)
(Các tín hiệu điều khiển thường tích cực với mức 0)
NKK-HUST
Kiến trúc máy tính14 January 2013 386
Tổ chức bộ nhớ một chiều
NKK-HUST
Kiến trúc máy tính14 January 2013 387
Tổ chức bộ nhớ hai chiều
NKK-HUST
Kiến trúc máy tính14 January 2013 388
Tổ chức bộ nhớ hai chiều
Có n đường địa chỉ: n = n1 + n2
2n1 hàng,
mỗi hàng có 2n2 từ nhớ,
Có m đường dữ liệu:
mỗi từ nhớ có độ dài m-bit.
Dung lượng của chip nhớ:
[2n1 x (2n2 x m)] bit = (2n1+n2 x m) bit = (2n x m) bit.
Hoạt động giải mã địa chỉ:
Bước 1: bộ giải mã hàng chọn 1 trong 2n1 hàng.
Bước 2: bộ giải mã cột chọn 1 trong 2n2 từ nhớ
(cột) của hàng đã được chọn.
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 389
Tổ chức của DRAM
NKK-HUST
Kiến trúc máy tính14 January 2013 390
Tổ chức của DRAM
Dùng n đường địa chỉ dồn kênh Æ cho
phép truyền 2n bit địa chỉ
Tín hiệu chọn địa chỉ hàng RAS
(Row Address Select)
Tín hiệu chọn địa chỉ cột CAS
(Column Address Select)
Dung lượng của DRAM= 22n x m bit
NKK-HUST
Kiến trúc máy tính14 January 2013 391
Chip nhớ
NKK-HUST
Kiến trúc máy tính14 January 2013 392
Thiết kế mô-đun nhớ bán dẫn
Dung lượng chip nhớ 2n x m bit
Cần thiết kế để tăng dung lượng:
Thiết kế tăng độ dài từ nhớ
Thiết kế tăng số lượng từ nhớ
Thiết kế kết hợp
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 393
Tăng độ dài từ nhớ
VD1:
Cho chip nhớ SRAM 4K x 4 bit
Thiết kế mô-đun nhớ 4K x 8 bit
Giải:
Dung lượng chip nhớ = 212 x 4 bit
chip nhớ có:
12 chân địa chỉ
4 chân dữ liệu
mô-đun nhớ cần có:
12 chân địa chỉ
8 chân dữ liệu
NKK-HUST
Kiến trúc máy tính14 January 2013 394
Ví dụ tăng độ dài từ nhớ
NKK-HUST
Kiến trúc máy tính14 January 2013 395
Bài toán tăng độ dài từ nhớ tổng quát
Cho chip nhớ 2n x mbit
Thiết kế mô-đun nhớ 2n x (k.m) bit
Dùng k chip nhớ
NKK-HUST
Kiến trúc máy tính14 January 2013 396
Tăng số lượng từ nhớ
VD2:
Cho chip nhớ SRAM 4K x 8 bit
Thiết kế mô-đun nhớ 8K x 8 bit
Giải:
Dung lượng chip nhớ = 212 x 8 bit
chip nhớ có:
12 chân địa chỉ
8 chân dữ liệu
Dung lượng mô-đun nhớ = 213 x 8 bit
13 chân địa chỉ
8 chân dữ liệu
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 397
Tăng số lượng từ nhớ
G A Y0 Y1
0 0 0 1
0 1 1 0
1 x 1 1
NKK-HUST
Kiến trúc máy tính14 January 2013 398
Bài tập
1. Tăng số lượng từ gấp 4 lần:
Cho chip nhớ SRAM 4K x 8 bit
Thiết kế mô-đun nhớ 16K x 8 bit
2. Tăng số lượng từ gấp 8 lần:
Cho chip nhớ SRAM 4K x 8 bit
Thiết kế mô-đun nhớ 32K x 8 bit
3. Thiết kế kết hợp:
Cho chip nhớ SRAM 4K x 4 bit
Thiết kế mô-đun nhớ 8K x 8 bit
NKK-HUST
Kiến trúc máy tính14 January 2013 399
Bộ giải mã 2Æ4
G B A Y0 Y1 Y2 Y3
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
1 x x 1 1 1 1
NKK-HUST
Kiến trúc máy tính
Bài tập
Tăng số lượng từ nhớ gấp 3 lần
Tăng số lượng từ nhớ gấp 5, 6, 7 lần
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 401
2. Các đặc trưng cơ bản của bộ nhớ chính
Chứa các chương trình đang thực hiện và các
dữ liệu đang được sử dụng
Tồn tại trên mọi hệ thống máy tính
Bao gồm các ngăn nhớ được đánh địa chỉ trực
tiếp bởi CPU
Dung lượng của bộ nhớ chính nhỏ hơn không
gian địa chỉ bộ nhớ mà CPU quản lý.
Việc quản lý logic bộ nhớ chính tuỳ thuộc vào
hệ điều hành
NKK-HUST
Kiến trúc máy tính14 January 2013 402
Tổ chức bộ nhớ đan xen (interleaved memory)
Độ rộng của bus dữ liệu để trao đổi với
bộ nhớ: m = 8, 16, 32, 64,128 ... bit
Các ngăn nhớ được tổ chức theo byte
Æ tổ chức bộ nhớ vật lý khác nhau
NKK-HUST
Kiến trúc máy tính14 January 2013 403
m=8bit Æ một băng nhớ tuyến tính
NKK-HUST
Kiến trúc máy tính14 January 2013 404
m = 16bit Æ hai băng nhớ đan xen
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 405
m = 32bit Æ bốn băng nhớ đan xen
NKK-HUST
Kiến trúc máy tính14 January 2013 406
m = 64bit Æ tám băng nhớ đan xen
NKK-HUST
Kiến trúc máy tính14 January 2013 407
7.3. Bộ nhớ đệm nhanh (cache memory)
1. Nguyên tắc chung của cache
Cache có tốc độ nhanh hơn bộ nhớ chính
Cache được đặt giữa CPU và bộ nhớ chính nhằm
tăng tốc độ CPU truy cập bộ nhớ
Cache có thể được đặt trên chip CPU
NKK-HUST
Kiến trúc máy tính14 January 2013 408
Ví dụ về thao tác của cache
CPU yêu cầu nội dung của ngăn nhớ
CPU kiểm tra trên cache với dữ liệu này
Nếu có, CPU nhận dữ liệu từ cache
(nhanh)
Nếu không có, đọc Block nhớ chứa dữ
liệu từ bộ nhớ chính vào cache
Tiếp đó chuyển dữ liệu từ cache vào
CPU
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 409
Cấu trúc chung của cache / bộ nhớ chính
NKK-HUST
Kiến trúc máy tính14 January 2013 410
Cấu trúc chung của cache / bộ nhớ chính (tiếp)
Bộ nhớ chính có 2N byte nhớ
Bộ nhớ chính và cache được chia thành
các khối có kích thước bằng nhau
Bộ nhớ chính: B0, B1, B2, ... , Bp-1 (p Blocks)
Bộ nhớ cache: L0, L1, L2, ... , Lm-1 (m Lines)
Kích thước của Block = 8,16,32,64,128 byte
NKK-HUST
Kiến trúc máy tính14 January 2013 411
Cấu trúc chung của cache / bộ nhớ chính (tiếp)
Một số Block của bộ nhớ chính được
nạp vào các Line của cache.
Nội dung Tag (thẻ nhớ) cho biết Block
nào của bộ nhớ chính hiện đang được
chứa ở Line đó.
Khi CPU truy nhập (đọc/ghi) một từ nhớ,
có hai khả năng xảy ra:
Từ nhớ đó có trong cache (cache hit)
Từ nhớ đó không có trong cache (cache
miss).
NKK-HUST
Kiến trúc máy tính14 January 2013 412
2. Các phương pháp ánh xạ
(Chính là các phương pháp tổ chức bộ
nhớ cache)
Ánh xạ trực tiếp
(Direct mapping)
Ánh xạ liên kết toàn phần
(Fully associative mapping)
Ánh xạ liên kết tập hợp
(Set associative mapping)
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 413
Ánh xạ trực tiếp
Mỗi Block của bộ nhớ chính chỉ có thể được nạp
vào một Line của cache:
B0Æ L0
B1Æ L1
....
Bm-1Æ Lm-1
BmÆ L0
Bm+1Æ L1
....
Tổng quát
Bj chỉ có thể nạp vào L j mod m
m là số Line của cache.
NKK-HUST
Kiến trúc máy tính14 January 2013 414
Minh hoạ ánh xạ trực tiếp
NKK-HUST
Kiến trúc máy tính14 January 2013 415
Đặc điểm của ánh xạ trực tiếp
Mỗi một địa chỉ N bit của bộ nhớ chính gồm
ba trường:
Trường Word gồm W bit xác định một từ nhớ
trong Block hay Line:
2W = kích thước của Block hay Line
Trường Line gồm L bit xác định một trong số các
Line trong cache:
2L = số Line trong cache = m
Trường Tag gồm T bit:
T = N - (W+L)
Bộ so sánh đơn giản
Xác suất cache hit thấp
NKK-HUST
Kiến trúc máy tính14 January 2013 416
Ánh xạ liên kết toàn phần
Mỗi Block có thể nạp vào bất kỳ Line
nào của cache.
Địa chỉ của bộ nhớ chính bao gồm hai
trường:
Trường Word giống như trường hợp ở
trên.
Trường Tag dùng để xác định Block của
bộ nhớ chính.
Tag xác định Block đang nằm ở Line đó
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 417
Minh hoạ ánh xạ liên kết toàn phần
NKK-HUST
Kiến trúc máy tính14 January 2013 418
Đặc điểm của ánh xạ liên kết toàn phần
So sánh đồng thời với tất cả các Tag Æ
mất nhiều thời gian
Xác suất cache hit cao.
Bộ so sánh phức tạp.
NKK-HUST
Kiến trúc máy tính14 January 2013 419
Ánh xạ liên kết tập hợp
Cache đươc chia thành các Tập (Set)
Mỗi một Set chứa một số Line
Ví dụ:
4 Line/Set Æ 4-way associative mapping
Ánh xạ theo nguyên tắc sau:
B0Æ S0
B1Æ S1
B2Æ S2
.......
NKK-HUST
Kiến trúc máy tính14 January 2013 420
Minh hoạ ánh xạ liên kết tập hợp
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 421
Đặc điểm của ánh xạ liên kết tập hợp
Kích thước Block = 2W Word
Trường Set có S bit dùng để xác định
một trong số V = 2S Set
Trường Tag có T bit: T = N - (W+S)
Tổng quát cho cả hai phương pháp trên
Thông thường 2,4,8,16Lines/Set
NKK-HUST
Kiến trúc máy tính14 January 2013 422
Ví dụ về ánh xạ địa chỉ
Không gian địa chỉ bộ nhớ chính = 4GB
Dung lượng bộ nhớ cache là 256KB
Kích thước Line (Block) = 32byte.
Xác định số bit của các trường địa chỉ
cho ba trường hợp tổ chức:
Ánh xạ trực tiếp
Ánh xạ liên kết toàn phần
Ánh xạ liên kết tập hợp 4 đường
NKK-HUST
Kiến trúc máy tính14 January 2013 423
Với ánh xạ trực tiếp
Bộ nhớ chính = 4GB = 232 byte Æ N = 32 bit
Cache = 256 KB = 218 byte.
Line = 32 byte = 25 byte ÆW = 5 bit
Số Line trong cache = 218/ 25 = 213 Line
Æ L = 13 bit
T = 32 - (13 + 5) = 14 bit
NKK-HUST
Kiến trúc máy tính14 January 2013 424
Với ánh xạ liên kết toàn phần
Bộ nhớ chính = 4GB = 232 byte Æ N = 32 bit
Line = 32 byte = 25 byte ÆW = 5 bit
Số bit của trường Tag sẽ là: T = 32 - 5 = 27 bit
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 425
Với ánh xạ liên kết tập hợp 4 đường
Bộ nhớ chính = 4GB = 232 byte Æ N = 32 bit
Line = 32 byte = 25 byte ÆW = 5 bit
Số Line trong cache = 218/ 25 = 213 Line
Một Set có 4 Line = 22 Line
Æ số Set trong cache = 213/ 22 = 211 SetÆ
S = 11 bit
Số bit của trường Tag sẽ là: T = 32 - (11 + 5)
= 16 bit
NKK-HUST
Kiến trúc máy tính14 January 2013 426
Bài tập
Giả thiết rằng máy tính có 128KB cache tổ
chức theo kiểu ánh xạ liên kết tập hợp 4-line.
Cache có tất cả là 1024 Set từ S0 đến
S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh
địa chỉ cho từng byte.
a) Tính số bit cho các trường địa chỉ khi truy
nhập cache ?
b) Xác định byte nhớ có địa chỉ 003D02AF(16)
được ánh xạ vào Set nào của cache ?
NKK-HUST
Kiến trúc máy tính14 January 2013 427
3. Thuật giải thay thế (1): Ánh xạ trực tiếp
Không phải lựa chọn
Mỗi Block chỉ ánh xạ vào một Line xác
định
Thay thế Block ở Line đó
NKK-HUST
Kiến trúc máy tính14 January 2013 428
Thuật giải thay thế (2): Ánh xạ liên kết
Được thực hiện bằng phần cứng (nhanh)
Random: Thay thế ngẫu nhiên
FIFO (First In First Out): Thay thế Block nào
nằm lâu nhất ở trong Set đó
LFU (Least Frequently Used): Thay thế Block
nào trong Set có số lần truy nhập ít nhất trong
cùng một khoảng thời gian
LRU (Least Recently Used): Thay thế Block ở
trong Set tương ứng có thời gian lâu nhất không
được tham chiếu tới.
Tối ưu nhất: LRU
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 429
4. Phương pháp ghi dữ liệu khi cache hit
Ghi xuyên qua (Write-through):
ghi cả cache và cả bộ nhớ chính
tốc độ chậm
Ghi trả sau (Write-back):
chỉ ghi ra cache
tốc độ nhanh
khi Block trong cache bị thay thế cần phải
ghi trả cả Block về bộ nhớ chính
NKK-HUST
Kiến trúc máy tính14 January 2013 430
7.4. Bộ nhớ ngoài
Các kiểu bộ nhớ ngoài
Băng từ
Đĩa từ
Đĩa quang
Bộ nhớ Flash
NKK-HUST
Kiến trúc máy tính14 January 2013 431
Đĩa từ
NKK-HUST
Kiến trúc máy tính14 January 2013 432
Các đặc tính đĩa từ
Đầu từ cố định hay đầu từ di động
Đĩa cố định hay thay đổi
Một mặt hay hai mặt
Một đĩa hay nhiều đĩa
Cơ chế đầu từ
Tiếp xúc (đĩa mềm)
Không tiếp xúc
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 433
Nhiều đĩa
NKK-HUST
Kiến trúc máy tính14 January 2013 434
Cylinders
NKK-HUST
Kiến trúc máy tính14 January 2013 435
Đĩa mềm
8”, 5.25”, 3.5”
Dung lượng nhỏ: chỉ tới 1.44Mbyte
Tốc độ chậm
Hiện nay không sản xuất nữa
NKK-HUST
Kiến trúc máy tính14 January 2013 436
Đĩa cứng
Một hoặc nhiều đĩa
Thông dụng
Dung lượng tăng lên rất nhanh
1993: ~ 200MB
2003: ~ 40GB
2012: ~ 500GB
Tốc độ đọc/ghi nhanh
Rẻ tiền
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 437
RAID
Redundant Array of Inexpensive Disks
Redundant Array of Independent Disks
Hệ thống nhớ dung lượng lớn
NKK-HUST
Kiến trúc máy tính14 January 2013 438
Đặc điểm của RAID
Tập các đĩa cứng vật lý được OS coi như
một ổ logic duy nhất Æ dung lượng lớn
Dữ liệu được lưu trữ phân tán trên các ổ
đĩa vật lý Æ truy cập song song (nhanh)
Có thể sử dụng dung lượng dư thừa để
lưu trữ các thông tin kiểm tra chẵn lẻ, cho
phép khôi phục lại thông tin trong trường
hợp đĩa bị hỏng Æ an toàn thông tin
7 loại phổ biến (RAID 0 – 6)
NKK-HUST
Kiến trúc máy tính14 January 2013 439
RAID 0, 1, 2
NKK-HUST
Kiến trúc máy tính14 January 2013 440
RAID 3 & 4
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 441
RAID 5 & 6
NKK-HUST
Kiến trúc máy tính14 January 2013 442
Ánh xạ dữ liệu của RAID 0
NKK-HUST
Kiến trúc máy tính14 January 2013 443
Đĩa quang
CD-ROM (Compact Disk ROM)
CD-R (Recordable CD)
CD-RW (Rewriteable CD)
Dung lượng thông dụng 650MB
Ổ đĩa CD:
Ổ CD-ROM
Ổ CD-Writer: Ghi một phiên hoặc ghi nhiều
phiên
Ổ CD-RW
Tốc độ đọc cơ sở 150KByte/s.
Tốc độ bội, ví dụ: 48x, 52x,...
NKK-HUST
Kiến trúc máy tính14 January 2013 444
Đĩa quang (tiếp)
DVD
Digital Video Disk: chỉ dùng trên ổ đĩa
xem video
Digital Versatile Disk: ổ trên máy tính
Ghi một hoặc hai mặt
Một hoặc hai lớp trên một mặt
Thông dụng: 4,7GB/lớp
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 445
Bộ nhớ flash
Bộ nhớ bán dẫn (flash
memory)
Tốc độ nhanh
Các dạng:
Ổ nhớ kết nối qua cổng USB
Thẻ nhớ
Ổ SSD (Solid State Drive): kết
nối nhiều chip nhớ flash và cho
phép truy cập song song
NKK-HUST
Kiến trúc máy tính14 January 2013 446
7.5. Bộ nhớ ảo (Virtual Memory)
Khái niệm bộ nhớ ảo: gồm bộ nhớ
chính và bộ nhớ ngoài mà được CPU
coi như là một bộ nhớ duy nhất (bộ nhớ
chính).
Các kỹ thuật thực hiện bộ nhớ ảo:
Kỹ thuật phân trang: Chia không gian địa
chỉ bộ nhớ thành các trang nhớ có kích
thước bằng nhau và nằm liền kề nhau
Thông dụng: kích thước trang = 4KBytes
Kỹ thuật phân đoạn: Chia không gian nhớ
thành các đoạn nhớ có kích thước thay
đổi, các đoạn nhớ có thể gối lên nhau.
NKK-HUST
Kiến trúc máy tính14 January 2013 447
Phân trang
Phân chia bộ nhớ thành các phần có kích
thước bằng nhau gọi là các khung trang
Chia chương trình (tiến trình) thành các trang
Cấp phát số hiệu khung trang yêu cầu cho
tiến trình
HĐH duy trì danh sách các khung trang nhớ
trống
Tiến trình không yêu cầu các khung trang liên
tiếp
Sử dụng bảng trang để quản lý
NKK-HUST
Kiến trúc máy tính14 January 2013 448
Cấp phát các khung trang
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 449
Địa chỉ logic và địa chỉ vật lý của phân trang
NKK-HUST
Kiến trúc máy tính14 January 2013 450
Nguyên tắc làm việc của bộ nhớ ảo phân trang
Phân trang theo yêu cầu
Không yêu cầu tất cả các trang của tiến trình nằm
trong bộ nhớ
Chỉ nạp vào bộ nhớ những trang được yêu cầu
Lỗi trang
Trang được yêu cầu không có trong bộ nhớ
HĐH cần hoán đổi trang yêu cầu vào
Có thể cần hoán đổi một trang nào đó ra để lấy
chỗ
Cần chọn trang để đưa ra
NKK-HUST
Kiến trúc máy tính14 January 2013 451
Thất bại
Quá nhiều tiến trình trong bộ nhớ quá nhỏ
HĐH tiêu tốn toàn bộ thời gian cho việc hoán
đổi
Có ít hoặc không có công việc nào được thực
hiện
Đĩa luôn luôn sáng
Giải pháp:
Thuật toán thay trang
Giảm bớt số tiến trình đang chạy
Thêm bộ nhớ
NKK-HUST
Kiến trúc máy tính14 January 2013 452
Lợi ích
Không cần toàn bộ tiến trình nằm trong
bộ nhớ để chạy
Có thể hoán đổi trang được yêu cầu
Như vậy có thể chạy những tiến trình
lớn hơn tổng bộ nhớ sẵn dùng
Bộ nhớ chính được gọi là bộ nhớ thực
Người dùng cảm giác bộ nhớ lớn hơn
bộ nhớ thực
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 453
Cấu trúc bảng trang
NKK-HUST
Kiến trúc máy tính14 January 2013 454
Minh họa: bộ nhớ trên PC hiện nay
Bộ nhớ cache: tích hợp trên chip vi
xử lý:
L1: cache lệnh và cache dữ liệu
L2, L3
Bộ nhớ chính: Tồn tại dưới dạng các
mô-đun nhớ RAM
SIMM – Single Inline Memory Module
DIMM – Dual Inline Memory Module
NKK-HUST
Kiến trúc máy tính14 January 2013 455
Hệ thống nhớ trên PC (tiếp)
ROM BIOS chứa các chương trình sau:
Chương trình POST (Power On Self Test)
Chương trình CMOS Setup
Chương trình Bootstrap loader
Các trình điều khiển vào-ra cơ bản (BIOS)
CMOS RAM:
Chứa thông tin cấu hình hệ thống
Đồng hồ hệ thống
Có pin nuôi riêng
Video RAM: quản lý thông tin của màn hình
Các loại bộ nhớ ngoài
NKK-HUST
Kiến trúc máy tính14 January 2013 456
Hết chương 7
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013
Kiến trúc máy tính
Chương 8
VÀO-RA
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
457
NKK-HUST
Kiến trúc máy tính 458
Nội dung học phần
Chương 1. Giới thiệu chung
Chương 2. Cơ bản về logic số
Chương 3. Hệ thống máy tính
Chương 4. Số học máy tính
Chương 5. Kiến trúc tập lệnh
Chương 6. Cấu trúc bộ xử lý
Chương 7. Bộ nhớ
Chương 8. Vào-ra
Chương 9. Các kiến trúc song song
14 January 2013
NKK-HUST
Kiến trúc máy tính14 January 2013 459
8.1. Tổng quan về vào-ra
8.2. Các phương pháp điều khiển vào-ra
8.3. Nối ghép thiết bị ngoại vi
8.4. Các cổng vào-ra thông dụng trên PC
Nội dung của chương 8
NKK-HUST
Kiến trúc máy tính14 January 2013 460
8.1. Tổng quan về vào-ra
1. Giới thiệu chung
Chức năng của vào-ra: Trao đổi thông
tin giữa máy tính với thế giới bên
ngoài
Các thao tác cơ bản:
Vào dữ liệu (Input)
Ra dữ liệu (Output)
Các thành phần chính:
Các thiết bị ngoại vi
Các mô-đun vào-ra
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 461
Cấu trúc cơ bản của vào-ra
NKK-HUST
Kiến trúc máy tính14 January 2013 462
Đặc điểm của vào-ra
Tồn tại đa dạng các thiết bị ngoại vi
khác nhau về:
Nguyên tắc hoạt động
Tốc độ
Khuôn dạng dữ liệu
Tất cả các thiết bị ngoại vi đều chậm
hơn CPU và RAM
Æ Cần có các mô-đun vào-ra để nối ghép
các thiết bị ngoại vi với CPU và bộ nhớ
chính
NKK-HUST
Kiến trúc máy tính14 January 2013 463
2. Các thiết bị ngoại vi
Chức năng: chuyển đổi dữ liệu giữa
bên trong và bên ngoài máy tính
Phân loại:
Thiết bị ngoại vi giao tiếp người-máy:
Bàn phím, Màn hình, Máy in,...
Thiết bị ngoại vi giao tiếp máy-máy: gồm
các thiết bị theo dõi và kiểm tra
Thiết bị ngoại vi truyền thông: Modem,
Network Interface Card (NIC)
NKK-HUST
Kiến trúc máy tính14 January 2013 464
Một số thiết bị ngoại vi
Input type Prime examples Other examples Data rate (b/s) Main uses
Symbol Keyboard, keypad Music note, OCR 10s Ubiquitous
Position Mouse, touchpad Stick, wheel, glove 100s Ubiquitous
Identity Barcode reader Badge, fingerprint 100s Sales, security
Sensory Touch, motion, light Scent, brain signal 100s Control, security
Audio Microphone Phone, radio, tape 1000s Ubiquitous
Image Scanner, camera Graphic tablet 1000s-106s Photos, publishing
Video Camcorder, DVD VCR, TV cable 1000s-109s Entertainment
Output type Prime examples Other examples Data rate (b/s) Main uses
Symbol LCD line segments LED, status light 10s Ubiquitous
Position Stepper motor Robotic motion 100s Ubiquitous
Warning Buzzer, bell, siren Flashing light A few Safety, security
Sensory Braille text Scent, brain stimulus 100s Personal assistance
Audio Speaker, audiotape Voice synthesizer 1000s Ubiquitous
Image Monitor, printer Plotter, microfilm 1000s Ubiquitous
Video Monitor, TV screen Film/video recorder 1000s-109s Entertainment
Two-way I/O Prime examples Other examples Data rate (b/s) Main uses
Mass storage Hard/floppy disk CD, tape, archive 106s Ubiquitous
Network Modem, fax, LAN Cable, DSL, ATM 1000s-109s Ubiquitous
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 465
Cấu trúc chung của thiết bị ngoại vi
NKK-HUST
Kiến trúc máy tính14 January 2013 466
Các thành phần của thiết bị ngoại vi
Bộ chuyển đổi tín hiệu: chuyển đổi dữ
liệu giữa bên ngoài và bên trong máy
tính
Bộ đệm dữ liệu: đệm dữ liệu khi truyền
giữa mô-đun vào-ra và thiết bị ngoại vi
Khối logic điều khiển: điều khiển hoạt
động của thiết bị ngoại vi đáp ứng theo
yêu cầu từ mô-đun vào-ra
NKK-HUST
Kiến trúc máy tính14 January 2013 467
3. Mô-đun vào-ra
Chức năng của mô-đun vào-ra:
Điều khiển và định thời
Trao đổi thông tin với CPU hoặc bộ nhớ
chính
Trao đổi thông tin với thiết bị ngoại vi
Đệm giữa bên trong máy tính với thiết bị
ngoại vi
Phát hiện lỗi của thiết bị ngoại vi
NKK-HUST
Kiến trúc máy tính14 January 2013 468
Cấu trúc chung của mô-đun vào-ra
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 469
Các thành phần của mô-đun vào-ra
Thanh ghi đệm dữ liệu: đệm dữ liệu
trong quá trình trao đổi
Các cổng vào-ra (I/O Port): kết nối với
thiết bị ngoại vi, mỗi cổng có một địa chỉ
xác định
Thanh ghi trạng thái/điều khiển: lưu giữ
thông tin trạng thái/điều khiển cho các
cổng vào-ra
Khối logic điều khiển: điều khiển mô-
đun vào-ra
NKK-HUST
Kiến trúc máy tính14 January 2013 470
4. Địa chỉ hóa cổng vào-ra
Không gian địa chỉ của bộ xử lý
NKK-HUST
Kiến trúc máy tính14 January 2013 471
Không gian địa chỉ của bộ xử lý (tiếp)
Một số bộ xử lý chỉ quản lý duy nhất một
không gian địa chỉ:
không gian địa chỉ bộ nhớ: 2N địa chỉ
Ví dụ:
Các bộ xử lý 680x0 (Motorola)
Các bộ xử lý theo kiến trúc RISC: MIPS,
NKK-HUST
Kiến trúc máy tính14 January 2013 472
Không gian địa chỉ của bộ xử lý (tiếp)
Một số bộ xử lý quản lý hai không gian địa chỉ
tách biệt:
Không gian địa chỉ bộ nhớ: 2N địa chỉ
Không gian địa chỉ vào-ra: 2N1 địa chỉ
Có tín hiệu điều khiển phân biệt truy nhập không
gian địa chỉ
Tập lệnh có các lệnh vào-ra chuyên dụng
Ví dụ: Pentium (Intel)
không gian địa chỉ bộ nhớ = 232 byte = 4GB
không gian địa chỉ vào-ra = 216 byte = 64KB
Tín hiệu điều khiển
Lệnh vào-ra chuyên dụng: IN, OUT
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 473
Các phương pháp địa chỉ hoá cổng vào-ra
Vào-ra riêng biệt
(Isolated IO hay IO mapped IO)
Vào-ra theo bản đồ bộ nhớ
(Memory mapped IO)
NKK-HUST
Kiến trúc máy tính14 January 2013 474
Vào-ra riêng biệt
Cổng vào-ra được đánh địa chỉ theo
không gian địa chỉ vào-ra
CPU trao đổi dữ liệu với cổng vào-ra
thông qua các lệnh vào-ra chuyên dụng
(IN, OUT)
Chỉ có thể thực hiện trên các hệ thống có
quản lý không gian địa chỉ vào-ra riêng
biệt
NKK-HUST
Kiến trúc máy tính14 January 2013 475
Vào-ra theo bản đồ bộ nhớ
Cổng vào-ra được đánh địa chỉ theo
không gian địa chỉ bộ nhớ
Vào-ra giống như đọc/ghi bộ nhớ
CPU trao đổi dữ liệu với cổng vào-ra
thông qua các lệnh truy nhập dữ liệu bộ
nhớ
Có thể thực hiện trên mọi hệ thống
NKK-HUST
Kiến trúc máy tính14 January 2013 476
8.2. Các phương pháp điều khiển vào-ra
Vào-ra bằng chương trình
(Programmed IO)
Vào-ra điều khiển bằng ngắt
(Interrupt Driven IO)
Truy nhập bộ nhớ trực tiếp - DMA
(Direct Memory Access)
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính
Ba kỹ thuật thực hiện vào một khối dữ liệu
14 January 2013 477
NKK-HUST
Kiến trúc máy tính14 January 2013 478
1.Vào-ra bằng chương trình
Nguyên tắc chung: CPU điều khiển trực
tiếp vào-ra bằng chương trình Æ cần
phải lập trình vào-ra.
NKK-HUST
Kiến trúc máy tính14 January 2013 479
Các tín hiệu điều khiển vào-ra
Tín hiệu điều khiển (Control): kích hoạt thiết
bị ngoại vi
Tín hiệu kiểm tra (Test): kiểm tra trạng thái
của mô-đun vào-ra và thiết bị ngoại vi
Tín hiệu điều khiển đọc (Read): yêu cầu mô-
đun vào-ra nhận dữ liệu từ thiết bị ngoại vi
và đưa vào thanh ghi đệm dữ liệu, rồi CPU
nhận dữ liệu đó
Tín hiệu điều khiển ghi (Write): yêu cầu mô-
đun vào-ra lấy dữ liệu trên bus dữ liệu đưa
đến thanh ghi đệm dữ liệu rồi chuyển ra thiết
bị ngoại vi
NKK-HUST
Kiến trúc máy tính14 January 2013 480
Các lệnh vào-ra
Với vào-ra riêng biệt: sử dụng các lệnh
vào-ra chuyên dụng (IN, OUT).
Với vào-ra theo bản đồ bộ nhớ: sử
dụng các lệnh trao đổi dữ liệu với bộ
nhớ để trao đổi dữ liệu với cổng vào-ra.
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 481
Lưu đồ đoạn chương trình vào-ra
NKK-HUST
Kiến trúc máy tính14 January 2013 482
Hoạt động của vào-ra bằng chương trình
CPU yêu cầu thao tác vào-ra
Mô-đun vào-ra thực hiện thao tác
Mô-đun vào-ra thiết lập các bit trạng
thái
CPU kiểm tra các bit trạng thái:
Nếu chưa sẵn sàng thì quay lại kiểm tra
Nếu sẵn sàng thì chuyển sang trao đổi dữ
liệu với mô-đun vào-ra
NKK-HUST
Kiến trúc máy tính14 January 2013 483
Đặc điểm
Vào-ra do ý muốn của người lập trình
CPU trực tiếp điều khiển vào-ra
CPU đợi mô-đun vào-ra Æ tiêu tốn thời
gian của CPU
NKK-HUST
Kiến trúc máy tính14 January 2013 484
2. Vào-ra điều khiển bằng ngắt
Nguyên tắc chung:
CPU không phải đợi trạng thái sẵn sàng
của mô-đun vào-ra, CPU thực hiện một
chương trình nào đó
Khi mô-đun vào-ra sẵn sàng thì nó phát tín
hiệu ngắt CPU
CPU thực hiện chương trình con vào-ra
tương ứng để trao đổi dữ liệu
CPU trở lại tiếp tục thực hiện chương trình
đang bị ngắt
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 485
Chuyển điều khiển đến chương trình con ngắt
NKK-HUST
Kiến trúc máy tính14 January 2013 486
Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra
Mô-đun vào-ra nhận tín hiệu điều khiển
đọc từ CPU
Mô-đun vào-ra nhận dữ liệu từ thiết bị
ngoại vi, trong khi đó CPU làm việc
khác
Khi đã có dữ liệu Æ mô-đun vào-ra phát
tín hiệu ngắt CPU
CPU yêu cầu dữ liệu
Mô-đun vào-ra chuyển dữ liệu đến CPU
NKK-HUST
Kiến trúc máy tính14 January 2013 487
Hoạt động vào dữ liệu: nhìn từ CPU
Phát tín hiệu điều khiển đọc
Làm việc khác
Cuối mỗi chu trình lệnh, kiểm tra tín
hiệu ngắt
Nếu bị ngắt:
Cất ngữ cảnh (nội dung các thanh ghi)
Thực hiện chương trình con ngắt để vào
dữ liệu
Khôi phục ngữ cảnh của chương trình
đang thực hiện
NKK-HUST
Kiến trúc máy tính14 January 2013 488
Các vấn đề nảy sinh khi thiết kế
Làm thế nào để xác định được mô-đun
vào-ra nào phát tín hiệu ngắt ?
CPU làm như thế nào khi có nhiều yêu
cầu ngắt cùng xẩy ra ?
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 489
Các phương pháp nối ghép ngắt
Sử dụng nhiều đường yêu cầu ngắt
Hỏi vòng bằng phần mềm (Software
Poll)
Hỏi vòng bằng phần cứng (Daisy Chain
or Hardware Poll)
Sử dụng bộ điều khiển ngắt (PIC)
NKK-HUST
Kiến trúc máy tính14 January 2013 490
Nhiều đường yêu cầu ngắt
Mỗi mô-đun vào-ra được nối với một đường yêu cầu
ngắt
CPU phải có nhiều đường tín hiệu yêu cầu ngắt
Hạn chế số lượng mô-đun vào-ra
Các đường ngắt được qui định mức ưu tiên
NKK-HUST
Kiến trúc máy tính14 January 2013 491
Hỏi vòng bằng phần mềm
CPU thực hiện phần mềm hỏi lần lượt từng
mô-đun vào-ra
Chậm
Thứ tự các mô-đun được hỏi vòng chính là
thứ tự ưu tiên
NKK-HUST
Kiến trúc máy tính14 January 2013 492
Hỏi vòng bằng phần cứng
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 493
Kiểm tra vòng bằng phần cứng (tiếp)
CPU phát tín hiệu chấp nhận ngắt
(INTA) đến mô-đun vào-ra đầu tiên
Nếu mô-đun vào-ra đó không gây ra
ngắt thì nó gửi tín hiệu đến mô-đun kế
tiếp cho đến khi xác định được mô-đun
gây ngắt
Thứ tự các mô-đun vào-ra kết nối trong
chuỗi xác định thứ tự ưu tiên
NKK-HUST
Kiến trúc máy tính14 January 2013 494
Bộ điều khiển ngắt lập trình được
PIC – Programmable Interrupt Controller
PIC có nhiều đường vào yêu cầu ngắt có qui
định mức ưu tiên
PIC chọn một yêu cầu ngắt không bị cấm có
mức ưu tiên cao nhất gửi tới CPU
NKK-HUST
Kiến trúc máy tính14 January 2013 495
Đặc điểm của vào-ra điều khiển bằng ngắt
Có sự kết hợp giữa phần cứng và phần
mềm
Phần cứng: gây ngắt CPU
Phần mềm: trao đổi dữ liệu
CPU trực tiếp điều khiển vào-ra
CPU không phải đợi mô-đun vào-ra Æ
hiệu quả sử dụng CPU tốt hơn
NKK-HUST
Kiến trúc máy tính14 January 2013 496
Ngắt của 80x86
Tổ chức kiểu vector ngắt
Số hiệu ngắt: n (00-FF)
Bảng vector ngắt: 256 x 4 byte = 1024bytes
00000 – 003FF
Lệnh INT n
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 497
3. DMA (Direct Memory Access)
Vào-ra bằng chương trình và bằng ngắt
do CPU trực tiếp điều khiển:
Chiếm thời gian của CPU
Tốc độ truyền bị hạn chế vì phải chuyển
qua CPU
Để khắc phục dùng DMA
Thêm mô-đun phần cứng trên bus Æ
DMAC (Controller)
DMAC điều khiển trao đổi dữ liệu giữa mô-
đun vào-ra với bộ nhớ chính
NKK-HUST
Kiến trúc máy tính14 January 2013 498
Sơ đồ cấu trúc của DMAC
NKK-HUST
Kiến trúc máy tính14 January 2013 499
Các thành phần của DMAC
Thanh ghi dữ liệu: chứa dữ liệu trao đổi
Thanh ghi địa chỉ: chứa địa chỉ ngăn
nhớ dữ liệu
Bộ đếm dữ liệu: chứa số từ dữ liệu cần
trao đổi
Logic điều khiển: điều khiển hoạt động
của DMAC
NKK-HUST
Kiến trúc máy tính14 January 2013 500
Hoạt động DMA
CPU “nói” cho DMAC
Vào hay Ra dữ liệu
Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng)
Địa chỉ đầu của mảng nhớ chứa dữ liệu Æ nạp vào
thanh ghi địa chỉ
Số từ dữ liệu cần truyền Æ nạp vào bộ đếm dữ liệu
CPU làm việc khác
DMAC điều khiển trao đổi dữ liệu
Sau khi truyền được một từ dữ liệu thì:
nội dung thanh ghi địa chỉ tăng
nội dung bộ đếm dữ liệu giảm
Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt
CPU để báo kết thúc DMA
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 501
Các kiểu thực hiện DMA
DMA truyền theo khối (Block-transfer DMA):
DMAC sử dụng bus để truyền xong cả khối
dữ liệu
DMA lấy chu kỳ (Cycle Stealing DMA): DMAC
cưỡng bức CPU treo tạm thời từng chu kỳ
bus, DMAC chiếm bus thực hiện truyền một
từ dữ liệu.
DMA trong suốt (Transparent DMA): DMAC
nhận biết những chu kỳ nào CPU không sử
dụng bus thì chiếm bus để trao đổi một từ dữ
liệu.
NKK-HUST
Kiến trúc máy tính14 January 2013 502
Cấu hình DMA (1)
Mỗi lần trao đổi một dữ liệu, DMAC sử dụng
bus hai lần
Giữa mô-đun vào-ra với DMAC
Giữa DMAC với bộ nhớ
NKK-HUST
Kiến trúc máy tính14 January 2013 503
Cấu hình DMA (2)
DMAC điều khiển một hoặc vài mô-đun vào-ra
Mỗi lần trao đổi một dữ liệu, DMAC sử dụng
bus một lần
Giữa DMAC với bộ nhớ
NKK-HUST
Kiến trúc máy tính14 January 2013 504
Cấu hình DMA (3)
Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA
Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần
Giữa DMAC với bộ nhớ
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 505
Đặc điểm của DMA
CPU không tham gia trong quá trình
trao đổi dữ liệu
DMAC điều khiển trao đổi dữ liệu giữa
bộ nhớ chính với mô-đun vào-ra (hoàn
toàn bằng phần cứng)Æ tốc độ nhanh
Phù hợp với các yêu cầu trao đổi mảng
dữ liệu có kích thước lớn
NKK-HUST
Kiến trúc máy tính14 January 2013 506
4. Kênh vào-ra hay là bộ xử lý vào-ra
Việc điều khiển vào-ra được thực hiện
bởi một bộ xử lý vào-ra chuyên dụng
Bộ xử lý vào-ra hoạt động theo chương
trình của riêng nó
Chương trình của bộ xử lý vào-ra có thể
nằm trong bộ nhớ chính hoặc nằm
trong một bộ nhớ riêng
Hoạt động theo kiến trúc đa xử lý
NKK-HUST
Kiến trúc máy tính14 January 2013 507
8.3. Nối ghép thiết bị ngoại vi
1. Các kiểu nối ghép vào-ra
Nối ghép song song
Nối ghép nối tiếp
NKK-HUST
Kiến trúc máy tính14 January 2013 508
Nối ghép song song
Truyền nhiều bit song song
Tốc độ nhanh
Cần nhiều đường truyền dữ liệu
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 509
Nối ghép nối tiếp
Truyền lần lượt từng bit
Cần có bộ chuyển đổi từ dữ liệu song song sang
nối tiếp hoặc/và ngược lại
Tốc độ chậm hơn
Cần ít đường truyền dữ liệu
NKK-HUST
Kiến trúc máy tính14 January 2013 510
2. Các cấu hình nối ghép
Điểm tới điểm (Point to Point)
Thông qua một cổng vào-ra nối ghép với một
thiết bị ngoại vi
Điểm tới đa điểm (Point to Multipoint)
Thông qua một cổng vào-ra cho phép nối
ghép được với nhiều thiết bị ngoại vi
Ví dụ:
SCSI (Small Computer System Interface): 7 hoặc
15 thiết bị
USB (Universal Serial Bus): 127 thiết bị
IEEE 1394 (FireWire): 63 thiết bị
NKK-HUST
Kiến trúc máy tính14 January 2013 511
Hết chương 8
NKK-HUST
Kiến trúc máy tính14 January 2013 512
Kiến trúc máy tính
Chương 9
CÁC KIẾN TRÚC SONG SONG
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính 513
Nội dung học phần
Chương 1. Giới thiệu chung
Chương 2. Cơ bản về logic số
Chương 3. Hệ thống máy tính
Chương 4. Số học máy tính
Chương 5. Kiến trúc tập lệnh
Chương 6. Cấu trúc bộ xử lý
Chương 7. Bộ nhớ
Chương 8. Vào-ra
Chương 9. Các kiến trúc song song
14 January 2013
NKK-HUST
Kiến trúc máy tính14 January 2013 514
9.1. Phân loại kiến trúc máy tính
9.2. Đa xử lý bộ nhớ dùng chung
9.3. Đa xử lý bộ nhớ phân tán
9.4. Bộ xử lý đa lõi
9.5. Bộ xử lý đồ họa*
Nội dung của chương 9
NKK-HUST
Kiến trúc máy tính14 January 2013 515
9.1. Phân loại kiến trúc máy tính
Phân loại của Michael Flynn (1966)
SISD - Single Instruction Stream, Single Data Stream
SIMD - Single Instruction Stream, Multiple Data Stream
MISD - Multiple Instruction Stream, Single Data Stream
MIMD - Multiple Instruction Stream, Multiple Data Stream
NKK-HUST
Kiến trúc máy tính14 January 2013 516
SISD
CU: Control Unit
PU: Processing Unit
MU: Memory Unit
Một bộ xử lý
Đơn dòng lệnh
Dữ liệu được lưu trữ trong một bộ nhớ
Chính là Kiến trúc von Neumann
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 517
SIMD
NKK-HUST
Kiến trúc máy tính14 January 2013 518
SIMD (tiếp)
Đơn dòng lệnh điều khiển đồng thời các
phần tử xử lý PE (processing elements)
Mỗi phần tử xử lý có một bộ nhớ dữ liệu
riêng LM (local memory)
Mỗi lệnh được thực hiện trên một tập
các dữ liệu khác nhau
Các mô hình SIMD
Vector Computer
Array processor
NKK-HUST
Kiến trúc máy tính14 January 2013 519
MISD
Một luồng dữ liệu cùng được truyền đến
một tập các bộ xử lý
Mỗi bộ xử lý thực hiện một dãy lệnh
khác nhau.
Chưa tồn tại máy tính thực tế
Có thể có trong tương lai
NKK-HUST
Kiến trúc máy tính14 January 2013 520
MIMD
Tập các bộ xử lý
Các bộ xử lý đồng thời thực hiện các
dãy lệnh khác nhau trên các dữ liệu
khác nhau
Các mô hình MIMD
Multiprocessors (Shared Memory)
Multicomputers (Distributed Memory)
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 521
MIMD - Shared Memory
NKK-HUST
Kiến trúc máy tính14 January 2013 522
MIMD - Distributed Memory
NKK-HUST
Kiến trúc máy tính14 January 2013 523
9.2. Đa xử lý bộ nhớ dùng chung
SMP- Symmetric Multiprocessors
NKK-HUST
Kiến trúc máy tính14 January 2013 524
SMP (tiếp)
Một máy tính có n >= 2 bộ xử lý giống nhau
Các bộ xử lý dùng chung bộ nhớ và hệ thống
vào-ra
Thời gian truy cập bộ nhớ là bằng nhau với
các bộ xử lý
Tất cả các bộ xử lý chia sẻ truy nhập vào-ra
Các bộ xử lý có thể thực hiện chức năng
giống nhau
Hệ thống được điều khiển bởi một hệ điều
hành phân tán
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 525
Ưu điểm của SMP
Hiệu năng
Các công việc có thể thực hiện song song
Tính sẵn dùng
Các bộ xử lý có thể thực hiện các chức
năng giống nhau, vì vậy lỗi của một bộ xử
lý sẽ không làm dừng hệ thống
Khả năng mở rộng
Người sử dụng có thể tăng hiệu năng bằng
cách thêm bộ xử lý
NKK-HUST
Kiến trúc máy tính14 January 2013 526
9.3. Đa xử lý bộ nhớ phân tán
Clusters
Nhiều máy tính được kết nối với nhau
bằng mạng liên kết tốc độ cao (~ Gbps)
Mỗi máy tính có thể làm việc độc lập
Mỗi máy tính được gọi là một node
Các máy tính có thể được quản lý làm
việc song song theo nhóm (cluster)
Toàn bộ hệ thống có thể coi như là một
máy tính song song
NKK-HUST
Kiến trúc máy tính14 January 2013 527
Cluster (tiếp)
Dễ dàng xây dựng và mở rộng
Tính sẵn sàng cao
Khả năng chịu lỗi
Giá thành rẻ với hiệu năng cao
NKK-HUST
Kiến trúc máy tính14 January 2013 528
Cluster of PCs
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 529
Cluster of SMPs
NKK-HUST
Kiến trúc máy tính14 January 2013 530
Ví dụ: Hệ thống máy chủ Google (12/ 2000)
Cluster of PCs
Hơn 6.000 bộ xử lý
Hệ thống lưu trữ dùng RAID: có 12.000
đĩa cứng ~ 1petabyte (1triệu GB)
2 site ở Silicon Valley, 1site ở Virginia
Mỗi site được kết nối với Internet qua
OC48 (2488Mbps)
NKK-HUST
Kiến trúc máy tính14 January 2013 531
9.4. Bộ xử lý đa lõi (multicores)
Thay đổi của bộ
xử lý:
Tuần tự
Pipeline
Siêu vô hướng
Đa luồng
Đa lõi
NKK-HUST
Kiến trúc máy tính14 January 2013 532
Các dạng tổ chức bộ xử lý đa lõi
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính14 January 2013 533
Intel - Core Duo
2006
Two x86 superscalar, shared L2 cache
Dedicated L1 cache per core
32KB instruction and 32KB data
2MB shared L2 cache
NKK-HUST
Kiến trúc máy tính14 January 2013 534
Intel Core Duo (3)
NKK-HUST
Kiến trúc máy tính14 January 2013 535
Intel x86 Multicore Organization - Core i7
November 2008
Four x86 SMT processors
Dedicated L2, shared L3 cache
Speculative pre-fetch for caches
On chip DDR3 memory controller
Three 8 byte channels (192 bits) giving 32GB/s
No front side bus
QuickPath Interconnection
Cache coherent point-to-point link
High speed communications between processor chips
6.4G transfers per second, 16 bits per transfer
Dedicated bi-directional pairs
Total bandwidth 25.6GB/s
NKK-HUST
Kiến trúc máy tính14 January 2013 536
Intel Core i7
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính
9.5. Bộ xử lý đồ họa (GPU)
History of GPUs
Early video cards
Frame buffer memory with address generation for
video output
3D graphics processing
Originally high-end computers (e.g., SGI)
Moore’s Law ⇒ lower cost, higher density
3D graphics cards for PCs and game consoles
Graphics Processing Units
Processors oriented to 3D graphics tasks
Vertex/pixel processing, shading, texture mapping,
rasterization
14 January 2013 537
NKK-HUST
Kiến trúc máy tính
Graphics in the System
14 January 2013 538
NKK-HUST
Kiến trúc máy tính
GPU Architectures
Processing is highly data-parallel
GPUs are highly multithreaded
Use thread switching to hide memory latency
Less reliance on multi-level caches
Graphics memory is wide and high-bandwidth
Trend toward general purpose GPUs
Heterogeneous CPU/GPU systems
CPU for sequential code, GPU for parallel code
Programming languages/APIs
DirectX, OpenGL
C for Graphics (Cg), High Level Shader Language
(HLSL)
Compute Unified Device Architecture (CUDA)
14 January 2013 539
NKK-HUST
Kiến trúc máy tính
Example: NVIDIA Tesla
Streaming
multiprocessor
8 × Streaming
processors
14 January 2013 540
Bài giảng Kiến trúc máy tính 14 January 2013
Nguyễn Kim Khánh - ĐHBKHN
NKK-HUST
Kiến trúc máy tính
Example: NVIDIA Tesla
Streaming Processors
Single-precision FP and integer units
Each SP is fine-grained multithreaded
Warp: group of 32 threads
Executed in parallel,
SIMD style
8 SPs
× 4 clock cycles
Hardware contexts
for 24 warps
Registers, PCs,
14 January 2013 541
NKK-HUST
Kiến trúc máy tính
Classifying GPUs
Don’t fit nicely into SIMD/MIMD model
Conditional execution in a thread allows an
illusion of MIMD
But with performance degredation
Need to write general purpose code with care
Static: Discovered
at Compile Time
Dynamic: Discovered
at Runtime
Instruction-Level
Parallelism
VLIW Superscalar
Data-Level
Parallelism
SIMD or Vector Tesla Multiprocessor
14 January 2013 542
NKK-HUST
Kiến trúc máy tính14 January 2013 543
Hết
Các file đính kèm theo tài liệu này:
- bai_giang_kien_truc_may_tinh_nguyen_kim_khanh.pdf