Tài liệu Tổ chức máy tính và hợp ngữ: TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 1
GIỚI THIỆU
TỔ CHỨC MÁY TÍNH
2
Nội dung chương 1
I. Giới thiệu tổ chức máy tính
II. Phương pháp nghiên cứu
III. Tổng quan tổ chức máy vi tính
3
I. Giới thiệu tổ chức máy tính
1. Định nghĩa tổ chức máy tính
2. Mục tiêu của tổ chức máy tính
4
1. Định nghĩa Tổ Chức Máy Tính
Các thuật ngữ tương đương
Kiến trúc máy tính – Computer Architecture
Cấu trúc máy tính
Tổ chức máy tính - Computer Organization
Tổ chức máy tính:
Cấu trúc
Máy tính điện tử
Hoạt động
5
Tổ chức máy tính (tt)
Cấu trúc (structure):
• Các thành phần kết nối tạo hệ thống
Hoạt động (behavior, function):
• Hoạt động của từng thành phần
6
Cấu trúc hệ thống
Computer
Main
Memory
Input
Output
Systems
Interconnection
Peripherals
Communication
lines
Central
Processing
Unit
Computer
7
Cấu trúc CPU
Computer Arithmetic
and
Login Unit
Control
Unit
Internal CPU
Interconnection
Regist...
345 trang |
Chia sẻ: Khủng Long | Lượt xem: 1338 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Tổ chức máy tính và hợp ngữ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 1
GIỚI THIỆU
TỔ CHỨC MÁY TÍNH
2
Nội dung chương 1
I. Giới thiệu tổ chức máy tính
II. Phương pháp nghiên cứu
III. Tổng quan tổ chức máy vi tính
3
I. Giới thiệu tổ chức máy tính
1. Định nghĩa tổ chức máy tính
2. Mục tiêu của tổ chức máy tính
4
1. Định nghĩa Tổ Chức Máy Tính
Các thuật ngữ tương đương
Kiến trúc máy tính – Computer Architecture
Cấu trúc máy tính
Tổ chức máy tính - Computer Organization
Tổ chức máy tính:
Cấu trúc
Máy tính điện tử
Hoạt động
5
Tổ chức máy tính (tt)
Cấu trúc (structure):
• Các thành phần kết nối tạo hệ thống
Hoạt động (behavior, function):
• Hoạt động của từng thành phần
6
Cấu trúc hệ thống
Computer
Main
Memory
Input
Output
Systems
Interconnection
Peripherals
Communication
lines
Central
Processing
Unit
Computer
7
Cấu trúc CPU
Computer Arithmetic
and
Login Unit
Control
Unit
Internal CPU
Interconnection
Registers
CPU
I/O
Memory
System
Bus
CPU
8
2. Mục tiêu của tổ chức máy tính
Thiết kế máy tính
Đánh giá hoạt động máy tính
9
Các giai đoạn thiết kế máy tính
Giai đoạn 1:
• Dùng các cổng luận lý tạo các mạch chức
năng, ví dụ: mạch cộng, bit nhớ
Giai đoạn 2:
• Dùng các mạch chức năng tạo các thành
phần như bộ xử lý, bộ nhớ
Giai đoạn 3:
• Kết nối các thành phần thành máy tính
10
Các cổng luận lý cơ sở
11
Mạch cộng 1 bit
12
Bit nhớ dạng mạch cài D
13
II. Phương pháp nghiên cứu
1. Phân loại máy tính
2. Cấu trúc máy tính
3. Hoạt động của máy tính
14
1. Phân loại máy tính
Phân loại theo thứ tự xuất hiện
Lịch sử máy tính
Phân loại theo khả năng hoạt động
15
Sơ lược lịch sử máy tính
Thế hệ máy tính
Công nghệ phần cứng
Nguyên lý hoạt động phần mềm
16
Sơ lược lịch sử máy tính (tt)
Thế hệ 1 Đèn điện tử (1945-1953)
Tuần tự; ngôn ngữ máy
Thế hệ 2 Transistor (1954-1965)
Dạng batch; ngôn ngữ cấp cao
Thế hệ 3 Mạch tích hợp (IC) (1965-1980)
Dạng đa chương
Thế hệ 4 Mạch tích hợp mật độ cao (1980-)
Dạng đa chương hiện đại
17
Các linh kiện chế tạo phần cứng máy tính
18
Phân loại máy tính theo khả năng hoạt động
Máy vi tính – Microcomputer
Personal Computer (PC)
Máy tính nhỏ – Minicomputer
Máy tính lớn – Mainframe
Siêu máy tính – Supercomputer
19
Hiệu suất các bộ xử lý Intel
20
Các đơn vị
21
2. Cấu trúc máy tính
Cấu trúc máy tính dạng đơn giản
22
Cấu trúc máy tính Von-Neumann
23
Cấu trúc máy tính Von-Neumann (tt)
Bộ xử lý trung tâm – CPU
Đơn vị điều khiển – Control Unit
Đơn vị luận lý số – Arithmetic Logical Unit
Bộ nhớ – Memory
Hệ thống xuất nhập – Input/Output (I/O)
Có khả năng thực hiện các lệnh tuần tự
theo chu kỳ lấy-giải mã-thực hiện lệnh
(Chu kỳ lệnh)
24
3. Hoạt động của máy tính
Thực hiện chương trình (program)
Chương trình gồm một chuỗi các lệnh/chỉ
thị (instruction) thuộc tập lệnh của CPU
Chu kỳ nhập-xử lý-xuất
• Nhập chương trình, dữ liệu
• Thực hiện chương trình
• Xuất kết quả
Đơn vị hoạt động: thực hiện một lệnh
25
Chu kỳ lệnh
26
Chu kỳ lệnh (tt)
27
Hoạt động của máy tính theo các lớp luận lý
28
Phương pháp nghiên cứu
Khảo sát tổ chức máy tính theo
các thành phần cấu trúc
Môn học tổ chức máy tính và hợp ngữ
tổ chức máy vi tính và hợp ngữ
29
III. Tổng quan tổ chức máy vi tính
1. Tổ chức vật lý
2. Tổng quan về phần mềm
30
1. Tổ chức vật lý máy vi tính
System Unit
Power Supply
Mainboard, CPU, RAM
Expansion boards: video, network, sound,
Drives: Floppy, Hard, CD/DVD
Monitor
Keyboard, mouse
Speaker, Printer, Scanner, Modem,
31
Cấu trúc vật lý
32
Các đầu nối (connectors)
33
Bên trong system unit
34
Ví dụ 1: Mainboard
35
Ví dụ 2: Mainboard Intel D875PBZ
36
Ví dụ 2 (tt)
1. Pentium 4 socket
2. 875P Support chip
3. Memory sockets
4. AGP connector
5. Disk interface
6. Gigabit Ethernet
7. 5 PCI slots
8. USB 2.0 ports
9. Cooling technology
10. BIOS
37
Quá trình khởi động
Power Supply – Nguồn cấp điện
ROM BIOS
ROM extensions – ROM mở rộng
Video – Card màn hình,
Boot Drive – Đĩa khởi động
Boot record – Mẩu tin khởi động
Operating system – Hệ điều hành
38
2. Tổng quan về phần mềm
Phần mềm hệ thống
Phần mềm ứng dụng
39
Phần mềm ứng dụng
Xử lý văn bản – Word Processor
Microsoft Word, Corel WordPerfect
Bảng tính – Spreadsheet
Excel, Lotus 1-2-3
Quản trị cơ sở dữ liệu – Database
Access
Đồ hoạ – Graphics
Multimedia, Games, CAD (Computer-Aided Design)
40
Phần mềm ứng dụng mạng
Web Browser
Internet Explorer, Netscape
Web-based Applications
E-Mail
Microsoft Outlook, Web-Mail
41
Phần mềm hệ thống
Hệ điều hành
(Operating System)
Chương trình công cụ, tiện ích
(Tools, Utilities)
Công cụ lập trình
(Programming Tools)
42
Hệ Điều Hành
Với người sử dụng
Được nạp vào bộ nhớ đầu tiên
Quản lý các chu kỳ nhập-xử lý-xuất
Với chương trình/người lập trình
Mở rộng phần cứng máy tính
Quản lý tài nguyên hệ thống
Ví dụ: Microsoft Windows, Linux, UNIX,
MAC OS, .
43
Chương trình công cụ, tiện ích
Hỗ trợ quản lý hệ thống
Ví dụ: Norton Commander
Norton Ghost/Antivirus
Hỗ trợ sử dụng hệ thống hiệu quả hơn
Ví dụ: Download Accelerater
44
Công cụ lập trình
Ngôn ngữ lập trình
Ngôn ngữ máy – Machine language
dạng nhị phân của tập lệnh CPU
Ngôn ngữ dùng ký hiệu / Hợp ngữ
Symbolic language / Assembly language
dạng ký hiệu/gợi nhớ của tập lệnh CPU
Ngôn ngữ cấp cao – High-level language
45
Thực thi chương trình hợp ngữ
Viết chương trình nguồn dùng hợp ngữ
Dùng chương trình dịch hợp ngữ
(Assembler) chuyển đổi chương trình
nguồn thành chương trình thực thi (trên
ngôn ngữ máy tương ứng với một hệ điều
hành).
Thực hiện chương trình trên ngôn ngữ
máy
46
Thực thi chương trình ngôn ngữ cấp cao
Viết chương trình nguồn dùng ngôn ngữ
cấp cao
Có hai phương pháp thực thi:
• Biên dịch
• Thông dịch/Phiên dịch
47
Biên dịch (compilation)
Dùng chương trình biên dịch (Compiler)
chuyển chương trình nguồn thành chương
trình trên ngôn ngữ máy
Thực thi chương trình trên ngôn ngữ máy
Thực thi nhanh
Cần biên dịch lại khi có thay đổi
Ví dụ: ngôn ngữ C,C++,
48
Thông dịch (Interpretation)
Dùng chương trình thông dịch
(Interpreter) đọc và thực thi từng phát
biểu trên chương trình nguồn
Luôn cần chương trình nguồn
Thực thi chậm hơn
Ví dụ: Basic, Scripting language,
49
JAVA
Có thể thực thi trên mọi môi trường
Thực thi chương trình Java:
Quá trình biên dịch
Quá trình thông dịch trên JVM
(Java Virtual Machine)
50
Môi trường lập trình Java
II
51
Thực thi chương trình Java
52
Môn học Tổ chức máy tính và Hợp ngữ
Phần TỔ CHỨC MÁY TÍNH
Chương 1 – Giới thiệu tổ chức máy tính
Chương 2 – Bus
Chương 3 – Bộ xử lý
Chương 4 – Bộ nhớ
Chương 5 – Tập lệnh
Chương 6 – Một số dạng kiến trúc máy tính
Phần HỢP NGỮ
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 2
BUS
(HỆ THỐNG VẬN CHUYỂN
THÔNG TIN)
Nội dung chương 2
I. Các khái niệm cơ bản
II. Cấu trúc máy vi tính
III. Một số thiết bị ngoại vi
I. Các khái niệm cơ bản
1. Khái niệm về Clock
2. Bus
3. Các tiêu chuẩn bus
1. Khái niệm về Clock
Cần kiểm soát về thời gian trên hệ thống:
Có sự trễ (delay) của tín hiệu
Kiểm soát thứ tự thực hiện
Hai kỹ thuật cơ bản:
Đồng bộ - Synchronous
dùng thêm tín hiệu clock (xung nhịp)
Bất đồng bộ - Asynchronous
dùng thêm các tín hiệu bắt tay
Tín hiệu clock
Rising Edge: Cạnh lên
Falling Edge: Cạnh xuống
High: Mức cao
Low: Mức thấp
Thông số của clock
Tần số - Frequency: số chu kỳ trong 1 giây
Chu kỳ - Cycle: chiều dài 1 chu kỳ
Ví dụ:
1GHZ = 109 chu kỳ/giây
1 chu kỳ = 10-9 giây = 1 nano giây
Tác dụng của clock
Mọi thao tác được thực hiện trong thời gian
bằng một số nguyên chu kỳ clock
Ví dụ:
Lệnh cộng – 1 chu kỳ
CPU đọc 1 từ nhớ - 3 chu kỳ
• chu kỳ 1: phát địa chỉ
• chu kỳ 2: chờ
• chu kỳ 3: đọc dữ liệu
2.Bus
Bus: đường dẫn tín hiệu chung giữa các
thiết bị
Các thành phần trên bus
Data bus – Bus dữ liệu
• Truyền dữ liệu
• Kích thước: 8, 16, 32, 64 bit hiệu suất
Address bus – Bus địa chỉ
• Xác định thiết bị gởi, nhận dữ liệu
• Kích thước khả năng quản lý bộ nhớ
Control bus – Bus điều khiển
• Tín hiệu clock
• Đọc, ghi bộ nhớ và thiết bị I/O
Hệ thống máy tính với nhiều bus
3. Các tiêu chuẩn bus
PC bus – 8 bit
ISA (Industry Standard Architecture) bus
– 16 bit
PCI (Peripheral Component Interconnect)
bus – 32/64 bit
Thông số các loại bus
ISA bus
Bus dữ liệu: 16 bit
Xung nhịp (Clock): 8.33 MHz
Băng thông (bandwidth) ~ 16.7 MB/sec
PCI bus
Do Intel thiết kế, độc lập với CPU
Băng thông rộng
Hỗ trợ Plug-and-Play
(thiết lập cấu hình tự động)
PCI 1.0, 2.0, 2.1, 2.2
PCI bus (tt)
Bus dữ liệu: 32 bit, 64 bit
Xung nhịp: 33 MHz, 66 MHz
Băng thông (bandwidth) ~ 133MB/sec
~ 528MB/sec
PCI slots
PCI Express bus
Phát triển kiến trúc PCI
tương thích với PCI
Băng thông rộng
Bắt đầu từ 200 MB/sec, có thể x2, ..,x32
Hỗ trợ tốt hơn cho truyền thông,
đa phương tiện (audio, video)
Thêm bớt thiết bị khi máy hoạt động
(Hot plugging)
PCI Epress (tt)
PCI Express (tt)
PCI Epress (tt)
PCI Express slots
PCI Express slots (x4,x16,x1,x16) và PCI slot
II. Cấu trúc máy vi tính
1. Cấu trúc máy vi tính
2. Các thao tác cơ sở
3. Các phương pháp xuất nhập
1. Cấu trúc máy vi tính
1 CPU hay nhiều CPU
(SMP, Symmetric MultiProcessor)
Bộ nhớ
Các thiết bị I/O
• Mạch điều khiển (Controller)
• Thiết bị (Device)
Các loại bus
Cấu trúc tiêu biểu máy vi tính – Pentium
Cấu trúc tiêu biểu máy vi tính – Pentium 4
Các thành phần chính trên mainboard
Kết nối các thành phần trên mainboard
AGP (Accelerated Graphics Port)
AGP (Accelerated Graphic Port)
Do Intel thiết kế
Tăng tốc độ hiển thị hình 3D, hình động
Dùng 1 bus riêng (AGP)
Chip AGP có thể đồng thời truy cập bộ
nhớ với CPU
Băng thông 533 MB/sec
SCSI (Small Computer System Interface)
Dạng I/O bus, điều khiển nhiều loại thiết
bị: đĩa cứng, CDROM, scanner, máy in ..
Có thể đến 15 thiết bị/cáp
Một số thông số SCSI
IDE (Integrated Drive Electronics)
Còn gọi là ATA (AT Attachment)
EIDE (Extended IDE) ATA-2
• 4 thiết bị
• Điều khiển CDROM
• Hỗ trợ LBA (Logical Block Addressing)
ATA-4 Ultra ATA
• ATA-33/66/100 ..: tốc độ DMA là 33MHz/..
Serial ATA (SATA)
Tốc độ cao, từ 150 MB/sec
Chỉ điều khiển đĩa
Dễ cài đặt
Serial ATA (tt)
USB (Universal Serial Bus)
Kết nối các thiết bị đặt ngoài (external)
Đặc điểm:
• Thống nhất đầu nối
• Cấp nguồn
• Thêm bớt khi máy hoạt động (Hot-plugging)
• Tự động thiết lập cấu hình (Plug-and-Play)
Tốc độ: 12 Mbps(1.0), 450 Mbps(2.0)
7 thiết bị, có thể đến 127 thiết bị với Hub
Ví dụ USB hub
2. Các thao tác cơ sở
Tính toán, thực thi bên trong CPU
Đọc ghi bộ nhớ
Đọc ghi thiết bị xuất nhập
3. Các phương pháp xuất nhập
Xuất nhập theo chương trình
Programmed I/O
Xuất nhập dùng kỹ thuật ngắt
Interrupt-driven I/O
Xuất nhập dùng kỹ thuật truy xuất
trực tiếp bộ nhớ
Direct Memory Access (DMA)
Địa chỉ thiết bị xuất nhập (Địa chỉ I/O)
Memory mapped I/O
• Thiết bị và bộ nhớ dùng chung một không
gian địa chỉ
• Xuất nhập tương đương đọc ghi bộ nhớ
• Không cần lệnh I/O
Isolated I/O
• Dùng không gian địa chỉ riêng
• Cần tín hiệu điều khiển I/O riêng
• Cần các lệnh I/O
Xuất nhập theo chương trình
CPU trực tiếp điều khiển I/O
• Kiểm tra trạng thái thiết bị
• Dùng các lệnh đọc/ghi
• Trao đổi dữ liệu
CPU phải chờ thiết bị hoàn thành thao tác
• Định kỳ kiểm tra trạng thái thiết bị
Lãng phí thời gian CPU
Thông số thiết bị: địa chỉ I/O
Xuất nhập dùng kỹ thuật ngắt
Đặc điểm:
CPU không phải chờ
CPU không cần kiểm tra thiết bị hoàn
thành thao tác
Thiết bị yêu cầu ngắt quãng khi sẵn sàng
Xuất nhập dùng kỹ thuật ngắt (tt)
Yêu cầu:
Phần cứng PIC (Programmable Interrupt
Controller)
Chương trình xử lý ngắt quãng (Interrupt
Handler):
• Thuộc hệ điều hành
• Thuộc chương trình ứng dụng
Ví dụ: CPU đọc 1 thiết bị dùng ngắt
CPU phát lệnh đọc
Thiết bị lấy dữ liệu trong khi CPU thực
hiện việc khác
Thiết bị ngắt quãng CPU
CPU yêu cầu dữ liệu
Thiết bị truyền dữ liệu
Chuyển điều khiển khi có ngắt
Thông số thiết bị dùng ngắt
I/O address
địa chỉ I/O
IRQ i (Interrupt ReQuest)
Yêu cầu ngắt
Xuất nhập dùng DMA
Có phần cứng hỗ trợ DMAC (DMA
Controller)
DMAC thay thế CPU thực hiện trao đổi
dữ liệu giữa bộ nhớ và thiết bị
Hoạt động DMA
CPU khởi động DMAC:
• Địa chỉ thiết bị
• Địa chỉ vùng nhớ
• Chiều trao đổi dữ liệu
• Kích thước dữ liệu
CPU thực hiện việc khác
DMAC thực hiện trao đổi dữ liệu
DMAC gởi tín hiệu ngắt khi hoàn thành
Thông số thiết bị dùng DMA
I/O address
địa chỉ I/O
IRQ i (Interrupt ReQuest)
Yêu cầu ngắt
DMA channel
Kênh DMA
III. Một số thiết bị ngoại vi
1. Đĩa từ
2. CD, DVD
3. Màn hình
4. Máy in
1. Đĩa từ
Đĩa cứng với 4 đĩa
Cấu trúc một mặt đĩa
Đĩa từ (tt)
Track, Sector, Cylinder
Đơn vị truy xuất: sector
Các bước truy xuất sector:
• Di chuyển hệ thống đầu từ đến cylinder
chứa sector – Seek time (mili sec)
• Chờ sector xoay đến vị trí đầu từ -
Rotational latency (rpm)
• Truy xuất sector
Thông số tổng quát: tốc độ truy xuất
(Data Transfer Rate) theo MB/sec
Đĩa từ (tt)
Thông số các loại đĩa mềm
2. Giới thiệu CD và DVD
a. CDROM
b. DVD
a. CDROM
Đĩa CDROM
• Đường kính: 120mm
• Dày: 1.2mm
• Dung lượng: 650MB/70phút, 700MB/80phút
• Lớp nhựa, 1 hay 2 lớp kim loại, lớp bảo vệ
Thông số ổ đĩa CD (CD Drive):
• Loại (internal/external)
• Giao tiếp bus (IDE/SCSI)
• Tốc độ (theo đơn vị 1x = 150 KB/sec)
Cấu trúc luận lý đĩa CDROM
Cấu trúc vật lý đĩa CDROM
Ổ đĩa CD
Các dạng đĩa CDROM
CDROM
CD – Recordable
CD – Rewritable
Cấu trúc đĩa CD-Recordable
2. DVD (Digital Versatile Disk)
Hình thức đĩa và ổ đĩa DVD tương tự CD
Đặc điểm so với CDROM:
• Dung lượng lớn hơn (4.7GB)
• Dùng loại tia laser tần số cao hơn
• Tốc độ truy xuất cao hơn (1.4MB/sec)
Các loại dung lượng đĩa DVD
Đĩa DVD dạng hai mặt, hai lớp
Các dạng đĩa DVD
DVD
DVD – Recordable
DVD – Rewritable
3. Màn hình
Hai dạng thông dụng:
Dùng đèn hình CRT
Dùng tinh thể lỏng LCD
Màn hình dạng CRT (Cathod Ray Tube)
a. CRT b. Quét tia điện tử
Màn hình LCD (Liquid Crystal Display)
Hoạt động màn hình LCD
Thông số màn hình CRT
Dot pitch – Kích thước điểm ảnh, ví dụ
0.22mm
Refresh rate – Tốc độ làm tươi (hz)
Resolution – Độ phân giải
Monitor screen size – Kích thước màn
hình, ví dụ 17”
Display colors – Số màu
Thông số màn hình LCD
Resolution - Độ phân giải
• Theo kích thước (screen size)
Viewing angle – Góc nhìn
• Khoảng 120 170 độ
Brightness – Độ sáng
• Theo candelas/cm2 – Khoảng 250 500
Độ tương phản – Contrast ratio
• Tỉ số giữa trắng/đen – Khoảng 450 1000
Tốc độ đáp ứng – Response rate
• Tốc độ thay đổi màu – Theo milisec
Một số độ phân giải màn hình
Kích thước màn hình
4. Máy in
Các loại máy in:
In kim – Dot-matrix printer
In phun – InkJet
In laser – Laser printer
Thông số chính:
Độ phân giải – dots per inch (dpi)
Tốc độ in – pages per minute (ppm)
Máy in phun
Máy in Laser
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 3
BỘ XỬ LÝ
2
Nội dung chương 3
I. Cấu trúc bộ xử lý
II. Các phương pháp nâng cao khả năng
hoạt động CPU
III. Ví dụ CPU INTEL 32 bit
3
I. Cấu trúc bộ xử lý
1. Cấu trúc bộ xử lý
2. Thanh ghi
3. Đơn vị xử lý
4. Đơn vị điều khiển
4
1. Cấu trúc bộ xử lý
Các thanh ghi
Đơn vị xử lý
Đơn vị điều khiển
5
CPU và system bus
6
Cấu trúc trong CPU
7
Ví dụ: Lấy lệnh
Thanh ghi PC chứa địa chỉ lệnh tiếp theo
Địa chỉ chuyển vào thanh ghi MAR
Địa chỉ đưa lên bus địa chỉ
Đơn vị điều khiển yêu cầu đọc bộ nhớ
Kết quả đưa lên data bus, sao chép vào
thanh ghi MBR, đưa vào thanh ghi IR
8
Dòng dữ liệu của giai đoạn lấy lệnh
9
2. Thanh ghi (registers)
Thanh ghi = ô nhớ bên trong CPU
Nơi làm việc trong CPU
Hai dạng thanh ghi:
• User visible registers: sử dụng bởi phần
mềm
• Control and status registers: sử dụng bên
trong CPU
10
User visible registers
Đa năng (General Purpose, GP)
Dữ liệu (Data)
Địa chỉ (Address)
Mã điều kiện (Condition codes)
11
Control and Status registers
Program Counter (PC)
Bộ đếm chương trình
Instruction Decoding Register
Thanh ghi lệnh
Memory Address Register
Lưu địa chỉ khi truy xuất bộ nhớ
Memory Buffer Register
Lưu giá trị từ nhớ
12
Ví dụ thanh ghi
13
3. Đơn vị xử lý
Thực hiện các thao tác xử lý cơ sở
ALU - Arithmetic Logical Unit
(Đơn vị số học luận lý)
Thao tác số học: cộng, trừ, nhân, chia
Thao tác luận lý: NOT, AND, OR, XOR
Integer Execution Unit
14
Các dạng đơn vị xử lý
Floating-Point Execution Unit (FPU)
Thực hiện xử lý trên số dấu chấm động
MMX Execution Unit
Thực hiện xử lý trên dữ liệu MMX
Multimedia Unit
15
4. Đơn vị điều khiển
Thực hiện lấy lệnh, giải mã lệnh
Tạo các tín hiệu điều khiển bus
Điều khiển đơn vị xử lý
16
Hai phương pháp điều khiển đơn vị xử lý
Tín hiệu (hard-wired control)
Chương trình (microprogrammed control)
chương trình bên trong đơn vị điều khiển
vi chương trình (microprogram)
17
Hard-wired control unit
18
Microprogrammed control
19
Thông dịch lệnh bằng vi chương trình
Bộ nhớ Bộ nhớ
điều khiển
Lệnh i
Vi
chương trình
Thông dịch
20
Vi lệnh
Vi chương trình bao gồm các vi lệnh
(MicroInstruction)
Một vi lệnh gồm các bit tương đương với
một nhóm tín hiệu
Kiến trúc trong của CPU: vi kiến trúc
(MicroArchitecture)
21
Dùng
tín hiệu
Dùng
vi chương trình
Tốc độ thực thi một lệnh Nhanh hơn Chậm hơn
Số lượng lệnh Ít hơn Nhiều hơn
Chương trình biên dịch Phức tạp hơn Đơn giản hơn
Ví dụ SPARC, PowerPC Intel CPU
Dạng kiến trúc máy tính RISC CISC
So sánh hai dạng thực hiện đơn vị xử lý
22
II. Các phương pháp nâng cao
khả năng hoạt động CPU
1. Tác động clock bên trong CPU
2. Thực hiện lệnh song song
3. Cơ chế đường ống
4. Cache
23
1. Tác động clock bên trong CPU
Tăng tần số clock trong CPU (internal
clock / clock subcycle) tăng tốc độ
thực hiện lệnh
Clock bên trong CPU được điều khiển
bởi clock trên mainboard (external clock)
Tần số internal clock là bội số của tần số
external clock
24
2. Thực hiện lệnh song song
Phân loại Flynn
Thực hiện lệnh song song trên bộ vi xử lý
Máy vi tính nhiều bộ xử lý
25
Phân loại kiến trúc máy tính theo Flynn
SISD – Single Intruction stream
Single Data stream
SIMD – Single Intruction stream
Multiple Data stream
MISD – Multiple Intruction stream
Single Data stream
MIMD – Multiple Intruction stream
Multiple Data stream
26
Thực hiện lệnh song song trên bộ vi xử lý
Thực hiện nhiều lệnh trong một chu kỳ
clock
CPU Intel:
• Lệnh SIMD
• Cấu trúc superscalar
27
Ví dụ: superscalar processor
28
Máy tính nhiều bộ xử lý
Kiến trúc SMP (Symmetric MultiProcessor)
• Nhiều bộ xử lý
• Dùng chung bộ nhớ
• Truyền thông qua bộ nhớ
Kiến trúc MMP (Massively Parallel Processors)
• Nhiều bộ xử lý
• Bộ nhớ phân tán
• Truyền thông qua mạng
29
3. Cơ chế đường ống (Pipelining)
Bộ xử lý gồm các phần tử xử lý độc lập
Processing Elements/Stage
Hoạt động như dây chuyền sản xuất
Tại một thời điểm:
• Si thực hiện lệnh j, đưa kết quả cho Si+1
• Si-1 thực hiện lệnh j+1, đưa kết quả cho Si
30
Ví dụ cơ chế đường ống
a. Bộ xử lý có 5 stage
b. Trạng thái các stage trong 9 clock và 9 lệnh
31
Ví dụ cơ chế đường ống (tt)
Mỗi lệnh phải thực hiện trong 5 clock qua
5 stage
Từ lệnh 2 coi như chỉ cần 1 clock để thực
hiện 1 lệnh
32
Mở rộng cơ chế đường ống
Hai đường ống với 5 phần tử
dùng chung phần tử lấy lệnh
33
Lệnh rẽ nhánh (Branch instruction)
if (i= =0) CMP i,0 ; so sánh i, 0
k = 1; BNE Else ; rẽ đến Else nếu i 0
else Then: MOV k,1 ; gán k = 1 nếu i = 0
k = 2; BR Next ; rẽ không điều kiện
Else: MOV k,2 ; gán k = 2
Next:
(a) (b)
Một dạng rẽ nhánh: phát biểu IF
Dạng hợp ngữ tương ứng
34
Lệnh rẽ nhánh (tt)
Khi có lệnh rẽ nhánh thì cơ chế đường
ống bị mất tác dụng
Các dạng rẽ nhánh
• Có điều kiện: IF, Loop
• Không điều kiện
Tỷ lệ lệnh rẽ nhánh: 20 – 30 %
Xử lý: Dự đoán rẽ nhánh
(Branch Prediction)
35
4. Cache
a. Khái niệm
b. Hoạt động
c. Phân loại
d. Thay thế phần tử
36
a. Khái niệm cache
Bộ nhớ dung lượng nhỏ, tốc độ cao
Giúp CPU truy xuất bộ nhớ nhanh hơn
37
b. Hoạt động cache
Giả sử CPU đọc 1 khối nhớ k lần
Nếu không có cache:
• CPU đọc khối trên bộ nhớ k lần
Nếu có cache:
• Lần 1: CPU đọc khối trên bộ nhớ và ghi
khối vào cache
• k-1lần còn lại: CPU đọc khối trên cache
38
Tỷ số thành công (hit ratio, h)
Xét k:
• k >> 1: h 1, chỉ truy xuất trên cache
• k = 1: cache là có hại
Truy xuất trên cache: cache hit
Không truy xuất được trên cache: cache miss
Số lần truy xuất thành công trên cache k -1
Tổng số lần truy xuất k
h =
39
Hoạt động khi có cache
Khi CPU cần truy xuất 1 khối nhớ, CPU
tìm khối trên cache.
Nếu khối có trên cache:
• CPU truy xuất khối trên cache
Nếu khối chưa có trên cache:
• CPU truy xuất khối trên bộ nhớ
• CPU ghi khối vào cache
40
c. Phân loại cache
Cache cấp 1 – First level cache (L1)
• Ở trong CPU
• Kích thước nhỏ (vài chục KB)
Cache cấp 2 – Second level cache (L2)
• Ở ngoài CPU
• Kích thước lớn (vài trăm KB)
41
Các loại cache
42
Disk cache
Mở rộng khái niệm cache: giúp CPU truy
xuất các loại đĩa nhanh hơn
Dùng phần cứng: linh kiện nhớ trên các ổ
đĩa cứng, CD
Dùng phần mềm: dùng một phần bộ nhớ
trong làm disk cache
43
d. Thay thế phần tử trên cache
Khi cache đầy mà cần ghi thêm vào cache
thì phải thay thế một phần tử trên cache
• Nếu phần tử bị thay thế có thay đổi nôi dung
thi phải ghi trở lại bộ nhớ
Có các phương pháp chọn phần tử thay
thế: Optimal, FIFO, LRU (thông dụng)
Least Recently Used (LRU): chọn phần
tử tồn tại trên cache trong khoảng thời
gian lớn nhất mà không được sử dụng
44
III. Ví dụ CPU INTEL 32 bit
1. Giới thiệu
2. Các chế độ hoạt động
3. Kỹ thuật siêu phân luồng
(Hyper-Threading)
4. Kỹ thuật đa lõi (multi-core)
5. Các CPU Intel 32 bit
6. Cấu trúc trong Pentium 4
45
1. Giới thiệu
Intel Architecture 32 – IA32
• Các thanh ghi 32 bit
• Các đơn vị xử lý kích thước 32 bit
Intel 64 Architecture
• Các thanh ghi 64 bit
• Có thêm chế độ hoạt động 32 bit mở rộng
(IA-32e)
46
Các CPU 32 bit
80386/80486
Pentium (1993)
P6 family (1995-1999)
• Pentium Pro, Pentium II, Celeron, Pentium III, Pentium III
Xeon
Pentium 4 (2000-2006)
Xeon (2001-2006)
Pentium M (2003-x)
Pentium Processor Extreme Edition (2005-2007)
Core Duo và Core Solo (2006-x)
47
Giới thiệu (tt)
Xeon
• Cache L2 lớn hơn
• Tốc độ cao hơn
• Dùng cho server
Celeron
• Cache cấp 2 nhỏ hơn
• Dạng PPGA (Plastic Pin Grid Array)
• Giảm giá thành
48
2. Các chế độ hoạt động
Protected mode – Chế độ bảo vệ
• Trạng thái chính của CPU
• Thực hiện mọi lệnh với hiệu suất cao nhất
• Có thể thực hiện các phần mềm viết trên chế
độ thực trong Virtual-8086 mode
Real-address mode – Chế độ thực
• Môi trường lập trình như 8086 có thêm vài
mở rộng
• CPU ở chế độ thực khi cấp điện hay reset
49
Các chế độ hoạt động (tt)
System Management Mode (SMM) –
Chế độ quản trị hệ thống
• Chuyển sang một không gian địa chỉ khác
và giữ nguyên trạng thái CPU
phục vụ cho các hệ điều hành thực hiện
standby, power management, security
• Khi trở về từ SMM, CPU phục hồi lại trạng
thái trước đó
50
3. Kỹ thuật siêu phân luồng
Tăng hiệu suất các CPU Intel 32 bit khi
thực thi ứng dụng và hệ điều hành đa
luồng (multi-threaded) hay ứng dụng đơn
luồng (single-threaded) trong môi trường
đa chương
Cho phép một CPU vật lý thực hiện nhiều
luồng (thread) đồng thời
51
Kiến trúc siêu phân luồng
Một CPU vật lý bao gồm 2 hay nhiều
CPU luận lý với các trạng thái kiến trúc
IA-32
Các CPU luận lý dùng chung phần nhân
của CPU vật lý là phần giao tiếp bus và
phần thực hiện lệnh
52
So sánh siêu phân luồng và đa xử lý
53
Yêu cầu hiện thực siêu phân luồng
CPU hỗ trợ siêu phân luồng
BIOS và Chipset hỗ trợ siêu phân luồng
Hệ điều hành tận dụng kỹ thuật siêu phân
luồng
54
4. Kỹ thuật đa lõi (multi-core)
Tăng khả năng phần cứng siêu phân
luồng bằng cách sử dụng hai hay nhiều
lõi thực thi (execution core) trong một
CPU vật lý (physical package)
Các CPU đa lõi:
• Pentium Processor Extreme Edition
• Pentium D
• Intel Core
• Intel Core 2
55
Kiến trúc đa lõi
56
Kiến trúc đa lõi (tt)
57
5. Các CPU Intel 32 bit
58
CPU Intel 32 bit (tt)
59
CPU Intel 32 bit (tt)
60
CPU Intel 32 bit (tt)
61
CPU Intel 32 bit (tt)
62
Các loại CPU Intel
63
Một số loại CPU Core 2 Duo
64
Một số loại CPU Pentium D
65
6. Cấu trúc trong Pentium 4
Pentium 4 dùng vi kiến trúc NetBurst:
Thực hiện lệnh nhanh:
• ALU nhanh gấp hai tần số CPU
• Thao tác số nguyên cơ bản thực hiện trong ½ clock
Cơ chế đường ống:
• Có thể đến 126 lệnh
Cache L1 có các loại:
• D-Cache: dùng cho dữ liệu
• Ececution Trace Cache lưu các lệnh đã được giải
mã (decoded instrutions)
66
Cấu trúc CPU Pentium 4
67
Hoạt động cơ bản
Cơ chế đường ống với 3 đơn vị xử lý:
Front end: lấy và giải mã lệnh
Execution: thực thi các vi lệnh
Out of order control: hỗ trợ xử lý đồng
thời các vi lệnh, lưu trữ kết quả
Các đơn vị phối hợp hoạt động theo ROB
(ReOder Buffer)
68
Hoạt động cơ bản (tt)
Front end: lấy lệnh, chia thành các vi lệnh và
lưu trên ROB
Execution : lấy các vi lệnh từ ROB và thực
thi.
Out of order control :hoàn tất các vi lệnh,
lưu kết quả lên các thanh ghi
Các vi lệnh đến ROB theo thứ tự, thực thi không
cần đúng thứ tự, kết quả lưu theo thứ tự.
69
CPU Pentium 4 PGA 775 và Pentium 4 M
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 4
BỘ NHỚ
2
Nội dung chương 4
1. Tổ chức thứ bậc của bộ nhớ
2. Bộ nhớ trong
3. Giới thiệu bộ nhớ ảo
3
I. Tổ chức thứ bậc của bộ nhớ
4
Sự thay đổi tính chất theo thứ bậc
Giá thành giảm
Dung lượng tăng
Thời gian truy xuất tăng
Bộ xử lý giảm truy xuất
5
Nguyên lý địa phương
Có 3 dạng truy xuất địa phương:
Phần tử đã truy xuất trong quá khứ gần
thường được truy xuất trong tương lai gần
Việc truy xuất thường được thực hiện
trên một vùng nhớ liên tục
Các lệnh thường được truy xuất tuần tự
6
Nguyên lý điạ phương
và tổ chức thứ bậc bộ nhớ
Khi cần truy xuất CPU tìm dữ liệu trên
vùng nhớ cấp trên
Nếu không có (miss) thì chuyển một
vùng nhớ bao gồm dữ liệu cần truy xuất
từ vùng nhớ cấp thấp hơn
7
II. Bộ nhớ trong
1. Bit nhớ
2. Tổ chức bộ nhớ
3. Phân loại linh kiện nhớ
4. Tính chất bộ nhớ
8
1. Bit nhớ
Bit nhớ dạng mạch cài D
Trạng thái ghi:
CK = 1 Q = D
Trạng thái đọc:
CK = 0 Q không đổi giá trị
9
Bit nhớ (tt)
Là đơn vị cấu tạo bộ nhớ
Có khả năng “nhớ” 1 bit
Dữ liệu thay đổi khi có ghi dữ liệu khác
10
2. Thanh ghi
a. Thanh ghi 4 bit b. Sơ đồ khối
11
Thanh ghi (tt)
Thanh ghi là ô nhớ đặt trong CPU
Lưu các giá trị trung gian, thông tin điều
khiển
12
3. Tổ chức bộ nhớ
Bộ nhớ gồm các ô nhớ
Mỗi ô nhớ có một địa chỉ
Ô nhớ là đơn vị hoạt động của bộ nhớ
Hai trạng thái hoạt động:
• Đọc
• Ghi
13
Yêu cầu tổ chức bộ nhớ
Số tín hiệu không tăng tuyến tính theo
dung lượng bộ nhớ
Có thể ghép các vi mạch nhớ tạo bộ nhớ
lớn hơn
14
Ví dụ
Vi mạch nhớ 512KB
15
Các nhóm tín hiệu
Địa chỉ
• có 19 tín hiệu vì có 512K = 2
19
ô nhớ
có n tín hiệu địa chỉ nếu có 2
n
ô nhớ
• là ngõ vào
Dữ liệu
• có 8 tín hiệu vì ô nhớ có 8 bit
có m tín hiệu nếu ô nhớ có m bit
• là ngõ vào (trạng thái ghi),
là ngõ ra (trạng thái đọc)
16
Các nhóm tín hiệu (tt)
Điều khiển
• CS (Chip select): chọn vi mạch
• WE (Write Enable): phân biệt đọc và ghi
• OE (Output Enable): cho phép ngõ ra
17
4. Phân loại linh kiện nhớ
ROM (Read Only Memory)
RAM (Random Access Memory)
18
ROM
Bộ nhớ chỉ đọc (dữ liệu đã có)
Không mất dữ liệu khi không cấp điện
Dùng cho ROM BIOS, ROM Extensions,
vi chương trình
Phân loại theo cách ghi dữ liệu
FIRMWARE = Hard software
19
Các loại ROM
ROM – Read Only Memory
• Nhà sản xuất ghi
PROM – Programmable ROM
• Người sử dụng ghi 1 lần
• Dạng WORM (Write-Once-Read-Many)
EPROM – Erasable PROM
• Người sử dụng có thể xoá toàn bộ dữ liệu với thiết
bị xoá dùng tia cực tím
EEPROM – Electrically EPROM
• Người sử dụng có thể xoá từng byte dữ liệu bằng
điện, không cần thiết bị xoá
20
Các loại ROM (tt)
Flash memory
• là dạng EEPROM
• có thể ghi, xoá theo khối dữ liệu
• nhanh hơn EEPROM
21
RAM
Bộ nhớ có thể đọc, ghi
Mất dữ liệu khi không cấp điện
Có 2 dạng chính
• SRAM – Static RAM: RAM tĩnh
• DRAM – Dynamic RAM: RAM động
22
RAM tĩnh
Cấu tạo từ các bit nhớ dạng tương tự
mạch cài D
So sánh với RAM động:
• Truy xuất nhanh hơn
• Giá thành cao hơn
• Tiêu thụ nhiều năng lượng hơn
• Mật độ tích hợp (số bits/chip) ít hơn
Dùng làm cache
23
RAM động
Cấu tạo từ mạch dạng tụ điện
Mất dữ liệu sau một khoảng thời gian xác
định dù vẫn được cấp điện
cần phải ghi lại dữ liệu đang lưu trữ
dùng mạch làm tươi (refresh) trên
vi mạch nhớ
Dùng làm bộ nhớ chính (main memory),
bộ nhớ màn hình (video memory)
24
RAM động
25
Phân loại RAM động
Theo hình thức
• SIMM (Single Inline Memory Module)
• DIMM (Dual Inline Memory Module)
• RIMM (Rambus Inline Memory Module)
Theo hoạt động
• RAM DAC
• SDRAM
• DDR-SDRAM
• RDRAM
26
SIMM và DIMM
SIMM DIMM
72 tín hiệu 168 tín hiệu
27
SIMM, DIMM và SO (Small Outline) DIMM
28
RIMM
RIMM – 184 tín hiệu
29
Các loại RAM động
RAMDAC (RAM Digital-Analog Converter)
• Dùng cho video RAM
SDRAM (Synchronous DRAM)
• Đồng bộ với system clock
• Truyền dữ liệu theo khối
DDR-SDRAM (Double Data Rate-SDRAM)
• Gởi dữ liệu 2 lần trong 1 chu kỳ clock
DDR2 – Dual-Channel DDR
• Dùng hai kênh bộ nhớ
30
Các loại RAM động (tt)
RDRAM (Rambus DRAM)
• Dùng với Pentium-4, Itanium
• Tốc độ clock cao, từ 400 Mhz
SLDRAM (Synchronous-Link DRAM)
• 64 bit dữ liệu
• Gởi dữ liệu 2 lần trong 1 chu kỳ
31
Memory Controller (thuộc về ChipSet)
32
Dual-Channel memory (DDR2)
33
Dual-Channel memory (DDR2) (tt)
34
Băng thông
35
5. Tính chất bộ nhớ
Dung lượng bộ nhớ là lũy thừa của 2
Thông số chính:
• Thời gian truy xuất (access time)
Thời gian từ khi có địa chỉ đến khi dữ liệu
ổn định
• Tốc độ truy xuất (transfer rate)
Tính theo bytes/giây
36
III. Giới thiệu bộ nhớ ảo
1. Khái niệm bộ nhớ ảo
2. Bộ nhớ ảo dạng phân trang
3. Bộ nhớ ảo dạng phân đoạn
4. Bộ nhớ ảo dạng phân đoạn có phân
trang
37
1. Khái niệm bộ nhớ ảo
Bộ nhớ ảo (virtual memory):
Kỹ thuật do hệ điều hành, có hỗ trợ của
phần cứng
Cho phép thực hiện chương trình lớn hơn
bộ nhớ trong bằng cách sử dụng bộ nhớ
ngoài
Hoạt động dạng overlay tự động
Bộ nhớ ảo = bộ nhớ trên đĩa
38
Hoạt động bộ nhớ ảo
Chương trình được viết trên không gian
địa chỉ ảo, là thông số của CPU và hệ
điều hành
Khi thực thi, hệ điều hành:
• nạp chương trình vào bộ nhớ
• chuyển đổi địa chỉ ảo thành địa chỉ vật lý
• truy xuất trên bộ nhớ vật lý
39
Các dạng bộ nhớ ảo
Dạng phân trang (paging)
Dạng phân đoạn (segmentation)
Dạng phân đoạn có phân trang
(Paged segmentation /
Segmentation with paging)
40
2. Bộ nhớ ảo dạng phân trang
a. Tổ chức phân trang
b. Chuyển đổi địa chỉ
c. Nạp trang
d. Thay thế trang
41
a. Tổ chức phân trang
Không gian địa chỉ ảo chia thành các
trang (page)
Bộ nhớ được chia thành các khung trang
(page frame), chứa được một trang
• Các trang của một chương trình khi ở trên
bộ nhớ không cần ở các vị trí liên tục
• Số trang >> số khung
Có bảng trang (page table) quản lý các
trang
42
Bảng trang
Có N dòng, với N là số trang
mỗi dòng tương ứng với 1 trang
Cấu trúc 1 dòng:
• Valid bit
Valid = 0 nếu trang chưa có trên bộ nhớ
Valid = 1 nếu trang đang có trên bộ nhớ
• Frame Number (Frame #)
Số thứ tự khung trang đang chứa trang
43
Ví dụ
Bộ nhớ ảo có 8 trang, bộ nhớ vật lý có 4 khung
Bảng trang có 8 phần tử
44
b. Chuyển đổi địa chỉ
Địa chỉ ảo theo phân trang
• Page Number: số thứ tự trang
• Offset: địa chỉ trong trang
Địa chỉ vật lý
• Page Number: số thứ tự khung trang
• Offset: địa chỉ trong khung trang
Offset Page Number
Offset Frame Number
45
Sơ đồ chuyển đổi địa chỉ
46
Truy xuất dữ liệu theo địa chỉ ảo
Tách page # và offset từ địa chỉ ảo
Chuyển page # thành frame # bằng cách
truy xuất bảng trang
A. Tìm phần tử quản lý trang
B. Kiểm tra valid bit
1. Valid = 1
a. Thay page # bằng frame #
b. Truy xuất dữ liệu trên khung với vị trí offset
47
Truy xuất dữ liệu theo địa chỉ ảo (tt)
2. Valid = 0 lỗi trang
a. Tìm trang trên đĩa
b. Tìm một khung trống (có thể phải thay thế
trang nếu các khung đầy)
c. Sao chép trang vào khung trống
d. Cập nhật bảng trang (valid = 1, frame # mới)
e. Thực hiện truy xuất như bước 1
48
Phần cứng hỗ trợ chuyển đổi địa chỉ ảo
TLB (Translation Look-aside Buffer)
• Ở trong CPU
• Cache các phần tử trên bảng trang
Khi chuyển đổi địa chỉ, tìm phần tử quản
lý trang trên TLB trước, nếu không có thì
tìm trên bảng trang
49
Sơ đồ chuyển đổi địa chỉ với TLB
50
c. Nạp trang
Có 2 phương pháp:
Nạp theo yêu cầu
• Nạp trang khi có lỗi trang
Nạp trước
• Nạp trước các trang theo các điều kiện xác
định
51
d. Thay thế trang
Khi các khung đã đầy mà cần nạp thêm
trang thì phải thay thế một trang đang có
trên khung
• Nếu trang bị thay thế có thay đổi nội dung
thì phải đưa ra đĩa
Có các phương pháp chọn phần tử thay
thế: Optimal, FIFO, LRU (thông dụng)
Least Recently Used (LRU): chọn trang
không được truy xuất trong khoảng thời
gian lớn nhất
52
3. Bộ nhớ ảo dạng phân đoạn
Tổ chức phân đoạn
Bộ nhớ ảo bao gồm các đoạn (segment)
có kích thuớc không cố định
Khi nạp đoạn vào bộ nhớ thì hệ điều hành
tìm khoảng trống đủ để nạp đoạn
Có bảng đoạn quản lý các đoạn
53
Nhận xét về phân trang, phân đoạn
Trang trong suốt đối với người lập trình
Phân trang tránh được phân mảnh bên
ngoài
Người lập trình sử dụng được đoạn
Phân đoạn phù hợp với lập trình theo
khối, cấu trúc dữ liệu thay đổi, dùng
chung và bảo vệ bộ nhớ
54
4. Bộ nhớ ảo dạng phân đoạn có phân trang
Kết hợp các ưu điểm của phân đoạn và
phân trang
Tổ chức:
Bộ nhớ ảo bao gồm các đoạn
Trong mỗi đoạn thực hiện phân trang
55
Ví dụ: bộ nhớ ảo trên Pentium
Đơn vị quản lý bộ nhớ
(Memory Management Unit, MMU)
• Đơn vị phân đoạn, (đoạn đến 232 bytes)
• Đơn vị phân trang
Các mô hình bộ nhớ
• Không phân đoạn, không phân trang
• Không phân đoạn, có phân trang
• Có phân đoạn, không phân trang
• Có phân đoạn, có phân trang
56
Chuyển đổi địa chỉ
Địa chỉ ảo dạng phân đoạn:
• Selector – 16 bit
• Offset – 32 bit
Địa chỉ tuyến tính (linear address)
Địa chỉ vật lý
57
Cấu trúc selector
GDT (Global Descriptor Table): dùng cho HDH
LDT (Local Descriptor Table): dùng cho các chương
trình
Privilege level: mức đặc quyền
58
Chuyển đổi địa chỉ đoạn địa chỉ tuyến tính
59
Chuyển đổi địa chỉ tuyến tính địa chỉ vật lý
60
Ứng dụng mức đặc quyền
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 5
TẬP LỆNH
2
Nội dung chương 5
I. Khái niệm về tập lệnh
II. Các dạng dữ liệu
III. Tập lệnh
IV. Định vị địa chỉ
V. Dòng điều khiển
VI. Giới thiệu kỹ thuật lập trình hợp ngữ
3
I. Khái niệm về tập lệnh
1. Các hình thức của tập lệnh
2. Các chỉ tiêu thiết kế tập lệnh
4
1. Các hình thức của tập lệnh
Tập lệnh: tập hợp các lệnh của CPU
ngôn ngữ máy
Có 2 hình thức:
• Dạng nhị phân
bit pattern
• Dạng ký hiệu
symbolic language
assembly language
5
2. Các chỉ tiêu thiết kế tập lệnh
Đầy đủ
Hiệu quả
Dễ nhớ, dễ sử dụng
Tương thích
6
II. Các dạng dữ liệu
1. Biểu diễn số nguyên
2. Biểu diễn số thực
3. Số dạng SIMD
4. Biểu diễn ký tự
7
1. Biểu diễn số nguyên
Số nguyên không dấu
• Biểu diễn nhị phân
Số nguyên có dấu
• Mã bù 2
Số BCD (Binary-Coded Decimal)
Số thập phân mã hoá nhị phân
1 chữ số thập phân biểu diễn trên 4 bit
8
Khuôn dạng số BCD
9
2. Biểu diễn số thực
Dùng tiêu chuẩn IEEE 754
X = S.2
E
10
Ví dụ
11
3. Số dạng SIMD
Sử dụng trên CPU IA-32
Nén các dữ liệu nguyên, số dấu chấm
động trong dữ liệu 64 bit, 128 bit
Thực hiện xử lý dạng SIMD
Single Instruction stream
Multiple Data stream
12
Ví dụ dữ liệu SIMD 64 bit
13
Ví dụ dữ liệu SIMD 128 bit
14
4. Biểu diễn ký tự
Dùng các bảng mã (coding schemes)
ASCII – 7 bit, 8 bit, từ 1967
American Standard Code for Information Interchange
Unicode – 16 bit, từ 1991
• Dạng dựng sẵn (pre-compound)
• Dạng tổ hợp (compound)
15
Không gian mã Unicode
16
III. Tập lệnh
1. Các loại lệnh
2. Khuôn dạng lệnh
17
1. Các loại lệnh
Các lệnh đa năng
Phải có trên các tập lệnh
Các lệnh đặc biệt
Đặc tính riêng của từng CPU
18
Các loại lệnh đa năng
Các lệnh di chuyển dữ liệu
Thanh ghi, bộ nhớ, thiết bị I/O
Các lệnh xử lý dữ liệu
• Dạng 1 toán hạng: NOT, NEG, SHIFT,
• Dạng 2 toán hạng: ADD, , AND,
Điều khiển chương trình
• Gọi thủ tục
• Lặp, Rẽ nhánh
Điều khiển hệ thống
19
Các loại lệnh đặc biệt trên IA-32
Các lệnh dạng SIMD
• MMX
• Streaming SIMD Extensions (SSE)
SSE, SSE2, SSE3
• Prescott New Instructions (PNI)
•
20
Các loại lệnh trên CPU Intel
21
Các loại lệnh trên CPU Intel (tt)
22
2. Khuôn dạng lệnh
Mỗi lệnh có vùng mã lệnh (opcode)
xác định thao tác thực hiện
Mỗi lệnh có thể có các vùng địa chỉ
(address/reference)
xác định toán hạng của lệnh
23
Ví dụ
Khuôn dạng lệnh đơn giản
24
Nhắc lại chu kỳ lệnh
25
Ví dụ: Khuôn dạng lệnh CPU Pentium 4
26
IV. Định vị địa chỉ
1. Khái niệm
2. Các dạng định vị địa chỉ cơ sở
27
1. Khái niệm
Addressing – Định vị địa chỉ
Xác định toán hạng của lệnh từ các vùng
địa chỉ trên lệnh
Toán hạng có thể:
• Hằng số
• Dữ liệu trên thanh ghi, bộ nhớ, thiết bị I/O
Có các dạng định vị địa chỉ phức tạp
phục vụ yêu cầu phần mềm
28
2. Các dạng định vị địa chỉ cơ sở
a. Tức thời (Immediate)
b. Trực tiếp (Direct)
c. Gián tiếp (Indirect)
d. Thanh ghi (Register)
e. Gián tiếp thanh ghi (Register Indirect)
f. Chỉ số (Indexed/Displacement)
g. Stack
29
a. Định vị địa chỉ tức thời
Toán hạng ở trên lệnh, trong vùng địa chỉ
Không cần truy xuất bộ nhớ để lấy toán
hạng
Tốc độ nhanh
Kích thước toán hạng bị giới hạn
Operand Opcode
Instruction
30
b. Định vị địa chỉ trực tiếp
Vùng địa chỉ chứa địa chỉ toán hạng
Cần truy xuất bộ nhớ thêm 1 lần để có
toán hạng
Không cần tính toán địa chỉ toán hạng
Không gian địa chỉ bị giới hạn
31
Sơ đồ định vị địa chỉ trực tiếp
Address A Opcode
Instruction
Memory
Operand
32
c. Định vị địa chỉ gián tiếp
Vùng địa chỉ chứa địa chỉ ô nhớ lưu địa
chỉ toán hạng
Cần truy xuất thêm bộ nhớ 2 lần:
• Lần 1: có địa chỉ toán hạng (pointer)
• Lần 2: có giá trị toán hạng
Có thể gián tiếp nhiều cấp
Tốc độ chậm
33
Sơ đồ định vị địa chỉ gián tiếp
Address A Opcode
Instruction
Memory
Operand
Pointer to operand
34
d. Định vị địa chỉ thanh ghi
Vùng địa chỉ chứa tên thanh ghi lưu toán
hạng
Cần truy xuất thanh ghi để có toán hạng
Vùng địa chỉ nhỏ
• Lệnh ngắn hơn
• Lấy lệnh nhanh hơn
Tốc độ nhanh
Số lượng thanh ghi giới hạn
Tương tự định vị địa chỉ trực tiếp
35
Sơ đồ định vị địa chỉ thanh ghi
Register Address R Opcode
Instruction
Registers
Operand
36
e. Định vị địa chỉ gián tiếp thanh ghi
Tương tự định vị địa chỉ gián tiếp
Vùng địa chỉ chứa tên thanh ghi, giá trị
thanh ghi là địa chỉ ô nhớ lưu toán hạng
Cần truy xuất thanh ghi để có địa chỉ toán
hạng và truy xuất bộ nhớ để có toán hạng
37
Sơ đồ định vị địa chỉ gián tiếp thanh ghi
Register Address R Opcode
Instruction
Memory
Operand Pointer to Operand
Registers
38
f. Định vị địa chỉ chỉ số
Vùng địa chỉ chứa 2 giá trị:
• Hằng số D
• Thanh ghi R
Địa chỉ toán hạng là (R) + D
Dùng để truy xuất vùng nhớ liên tục
dạng (Base + Displacement)
39
Sơ đồ định vị địa chỉ chỉ số
Register R Opcode
Instruction
Memory
Operand Pointer to Operand
Registers
Address A
+
40
Các dạng tương tự, mở rộng
của định vị địa chỉ chỉ số
Base-register addressing
Địa chỉ toán hạng: (B) + D
B: base-register
Base-Index addressing
Địa chỉ toán hạng: (B + I) + D
B: base-register
I: index-register
41
f. Định vị địa chỉ trên stack
Toán hạng được hiểu ngầm tại vị trí đỉnh
stack
Có hai loại lệnh truy xuất đỉnh stack:
• PUSH đưa dữ liệu vào đỉnh stack
• POP lấy dữ liệu từ đỉnh stack
42
Ví dụ stack
Đỉnh stack: Stack Pointer (SP)
SP SP
SP SP
SP
SP
43
V. Dòng điều khiển
1. Khái niệm dòng điều khiển
2. Các loại dòng điều khiển cơ bản
44
1. Khái niệm dòng điều khiển
Dòng điều khiển: thứ tự thực hiện các
lệnh trong chương trình
Thứ tự vật lý: thứ tự các lệnh trên bộ nhớ
Đơn giản, dòng điều khiển trùng với thứ
tự vật lý
Các dòng điều khiển khác thứ tự vật lý:
• Rẽ nhánh
• Gọi thủ tục
• Bẫy
• Ngắt quãng
45
2. Các loại dòng điều khiển cơ bản
a. Tuần tự
b. Rẽ nhánh
c. Thủ tục
d. Bẫy
e. Ngắt quãng
46
a. Tuần tự
Dòng điều khiển tuần tự trùng với thứ tự
vật lý
Lệnh tiếp theo ở ô nhớ tiếp theo
47
b. Rẽ nhánh
Khi có lệnh rẽ nhánh (branch), dòng điều
khiển khác với thứ tự vật lý
Hai dạng rẽ nhánh:
• Có điều kiện, ví dụ: dạng If-Else, vòng lặp
• Không điều kiện, ví dụ: goto
48
c. Thủ tục
Thủ tục (procedure): kỹ thuật quan trọng
nhất của lập trình cấu trúc
Khi có lệnh gọi thủ tục (lệnh CALL)
dòng điều khiển chuyển đến thủ tục
Khi kết thúc thủ tục, dòng điều khiển trở
về lệnh tiếp theo lệnh gọi thủ tục
Nếu coi lệnh gọi thủ tục và thủ tục là
một lệnh thì dòng điều khiển là tuần tự
49
Mô hình gọi thủ tục
50
Các giai đoạn gọi thủ tục
Có một vùng trên stack (stack frame)
được tạo khi gọi thủ tục
Các giai đoạn thực hiện khi gọi thủ tục:
• Truyền tham số
• Lưu địa chỉ trở về
• Cấp phát bộ nhớ cho các biến địa phương
Khi kết thúc thủ tục:
• Xoá stack frame
• Trở về lệnh tiếp theo lệnh gọi
51
Một số tính chất
Các thủ tục có thể gọi lồng nhau
Có thể có nhiều stack frame đồng thời
Có thể có lỗi tràn stack (stack overflow)
• Do có quá nhiều stack frame
• Do biến địa phương, tham số quá lớn
52
Ví dụ stack frame
53
d. Bẫy
Bẫy là lệnh gọi thủ tục tự động do
chương trình đang thực hiện tạo ra vì các
điều kiện xác định, thường là báo lỗi
Ví dụ: bẫy do “chia cho 0”
Khi có lệnh chia cho 0:
• Chương trình đang thực hiện dừng lại
• Dòng điều khiển chuyển đến chương trình
xử lý bẫy (trap handler)
• Thông báo lỗi “divide by zero”
54
Bẫy (tt)
Bẫy do phần cứng phát hiện, hệ điều hành
xử lý
Một số điều kiện dùng tạo bẫy:
• Chia cho 0
• Tràn stack
• Tràn số nguyên, tràn số thực
• Mã lệnh không xác định
• Vi phạm cơ chế bảo vệ
•
55
e. Ngắt quãng
Ngắt quãng làm thay đổi dòng điều khiển
không phải do chương trình đang thực
hiện tạo ra, mà do một nguyên nhân khác
thường liên quan đến xuất nhập
Chương trình xử lý ngắt quãng:
• Trên ROM BIOS
• Thuộc hệ điều hành
• Thuộc chương trình ứng dụng
56
Ví dụ: ngắt quãng bàn phím
Khi có phím ấn:
• Chương trình đang thực hiện dừng lại
• Dòng điều khiển chuyển đến chương trình
xử lý ngắt quãng bàn phím
• Kết thúc chương trình xử lý ngắt quãng,
dòng điều khiển trở về lệnh tiếp theo
57
Chuyển điều khiển khi có ngắt quãng
58
Chu kỳ lệnh với ngắt quãng
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ
Chương 6
MỘT SỐ DẠNG
KIẾN TRÚC MÁY TÍNH
2
Nội dung chương 6
I. Kiến trúc máy tính song song
II. SMP (Symmetric MultiProcessor)
3
I. Kiến trúc máy tính song song
1. Khái niệm
2. Các mô hình kiến trúc song song
3. Giải thuật song song
4
1. Khái niệm
Kiến trúc máy tính tuần tự (kiến trúc
Von-Neumann) tiến đến giới hạn tốc độ
Cần các kiến trúc song song
SISD, SIMD, MISD, MIMD
CPU Intel:
• SIMD
• Pipelining với branch prediction
5
Máy tính dạng SIMD và MIMD
SIMD
• Vector computer
MIMD kiến trúc song song
• MultiProcessor Parallel Computer
• Multicomputer Distributed system
6
Phân loại kiến trúc máy tính song song
7
2. Các mô hình kiến trúc song song
Các thành phần:
Các bộ xử lý
Các bộ nhớ
Các thiết bị I/O
Hệ thống kết nối
8
Các cấp kiến trúc máy tính song song
(a) On-chip parallelism (b) Coprocessor (c) Multiprocessor
(d) Multicomputer (e) Grid
9
Ví dụ: siêu phân luồng trên Pentium 4
10
NUMA multiprocessor
Máy tính NUMA dựa trên hai cấp bus
11
Ví dụ: Multiprocessor
a. Multiprocessor với 16 CPU dùng chung 1 bộ nhớ
b. Một hình ảnh được chia thành 16 phần cho 16 CPU xử lý
12
Ví dụ: Multicomputer
a. Multicomputer với 16 CPU, mỗi CPU có bộ nhớ riêng
b. Một hình ảnh được chia thành 16 phần trên 16 bộ nhớ
13
Kiến trúc Cluster
14
Các sơ đồ kết nối tĩnh
II
15
Kết nối động dùng switches
16
Bộ nhớ dùng chung (shared memory)
17
Bộ nhớ dùng chung (tt)
18
Distributed system
19
3. Giải thuật song song
Được thiết kế qua 4 giai đoạn:
Phân chia
Truyền thông
Tích tụ
Ánh xạ
20
II. SMP
1. Đặc điểm
2. Ví dụ
3. Hoạt động
21
1. Đặc điểm
Tăng hiệu suất máy vi tính dùng CPU
Intel
Tương thích với máy AT
• Hoạt động như máy 1 CPU với hệ điều hành
1 CPU
Dùng cho các CPU Intel từ 80486
• CPU có hỗ trợ multiprocessor
• Các CPU hoàn toàn tương đương
• Cấu hình mặc định: 2 CPU, tối đa 16 CPU
22
Đặc điểm (tt)
Các CPU dùng chung bộ nhớ:
• Các CPU dùng chung một không gian địa
chỉ
• Chỉ có 1 bản hệ điều hành trên bộ nhớ
• Chương trình có thể thực hiện trên mọi CPU
Các CPU dùng chung hệ thống I/O
• Hoạt động với các tiêu chuẩn bus ISA, PCI
23
2. Ví dụ
24
Ví dụ (tt)
BSP Bootstrap Processor
AP Application Processor
APIC Advanced
Programmable Interrupt Controller
ICC Interrupt Controller Communication
25
BSP và AP
BIOS chọn 1 CPU (BSP) để khởi động hệ
điều hành
Các CPU còn lại là AP, bị treo khi khởi
động
AP chỉ hoạt động khi hệ điều hành đã
hoạt động
• BSP hoạt động như AP
26
3. Hoạt động
27
MP BIOS
Kiểm tra các thành phần hệ thống
Tạo các configuration tables dùng cho hệ
điều hành
Khởi động các processor
Cung cấp các dịch vụ khi thực thi
28
Lập trình trên kiến trúc SMP
Dạng shared everything
Dùng thread
Cần các thư viện hỗ trợ các biến mutex,
semaphore
• Loại trừ tương hỗ
• Đồng bộ các thread
29
Ví dụ
Các file đính kèm theo tài liệu này:
- tailieu.pdf