Đại Học Giao Thông Vận Tải Tp.HCM Đại Học Giao Thông Vận Tải Tp.HCM
Khoa Điện – Điện Tử Viễn Thông Khoa Điện – Điện Tử Viễn Thông
Học phần: Vi Xử Lý Học phần: Vi Xử Lý
Chương 1: Giới thiệu Vi Xử Lý Chương 1: Giới thiệu Vi Xử Lý
Giảng viên: TS. Giảng viên:
NGUYỄN HỮU CHÂN THÀNH TS. NGUYỄN HỮU CHÂN THÀNH
Chương 1 bao gồm 6 nội dung:
1. Tổng quan về hệ thống vi xử lý (VXL).
2. Các loại bus trong hệ thống VXL.
3. VXL.
4. Bộ nhớ.
5. Nhập xuất.
6. Vi xử lý và vi điều khiển.
I. Tổng quan về hệ thống VXL
Máy vi tính bao gồm những máy tính dùng bộ vi xử lý (họ Intel, Motorola, AMD…) làm cốt lõi, các vi điều khiển (microcontroller) hay máy vi tính trong một vi mạch (one- chip microcomputer).
4
1. Quá trình phát triển của máy vi tính
Examples: Personal Computer (PC)
5
2. Ứng dụng của VXL
Examples: Refrigerator
6
2. Ứng dụng của VXL
2. Ứng dụng của VXL
7
Examples: Car Door
Examples: Derbot Autonomous Guided Vehicle
8
2. Ứng dụng của VXL
Examples: Derbot Autonomous Guided Vehicle
9
2. Ứng dụng của VXL
Sơ đồ khối tiêu biểu của hệ vi xử lý: (hệ thống vi xử lý có kiến trúc 3-bus)
10
3. Sơ đồ khối của hệ VXL
11
(cid:0) P (Microprocessor): Vi xử lý CPU (Central Processing Unit): Đơn vị xử lý trung tâm Address bus: Bus địa chỉ Data bus: Bus dữ liệu Control bus: Bus điều khiển RAM (Random Access Memory): Bộ nhớ truy xuất ngẫu nhiên ROM (Read-Only Memory): Bộ nhớ chỉ đọc I/O Interface: Khối giao tiếp nhập/xuất Peripheral Devices: Thiết bị ngoại vi
3. Sơ đồ khối của hệ VXL
Một hệ vi xử lý gồm có các thành phần chính sau: - (cid:0) P (microprocessor hay còn gọi là CPU): đọc mã lệnh từ bộ nhớ (được ghi dưới dạng các bit 0 và 1), sau đó giải mã và thực thi lệnh.
- Bộ nhớ (Memory): chứa các chương trình điều khiển hoạt động của toàn hệ và các dữ liệu, kết quả trung gian. (Có hai loại bộ nhớ: RAM (Random Access Memory) là loại bộ nhớ truy xuất ngẫu nhiên và ROM (Read-Only Memory) là loại bộ nhớ chỉ đọc).
12
3. Sơ đồ khối của hệ VXL
Một hệ vi xử lý gồm có các thành phần chính sau:
3. Sơ đồ khối của hệ VXL
- Khối giao tiếp nhập/xuất (Input/Output - I/O): tạo ra khả năng giao tiếp giữa hệ vi xử lý với các thiết bị ngoại vi như bàn phím, chuột … (thiết bị nhập), màn hình, máy in, loa … (thiết bị xuất), các ổ đĩa… (thiết bị xuất/nhập)
13
- Bus: ba khối chức năng trên liên hệ với nhau thông qua một tập các đường dây để truyền thông tin gọi là bus. Trong hệ thống vi xử lý thường bao gồm 3 loại bus: bus địa chỉ, bus dữ liệu và bus điều khiển.
3. Sơ đồ khối của hệ VXL
NOTE:
1. Mọi nguồn thông tin vào CPU, nếu không là bộ nhớ thì là thiết bị đầu vào.
2. Mọi đích đến của thông tin từ CPU, nếu không là bộ nhớ thì là thiết bị đầu ra.
14
3. Sơ đồ khối của hệ VXL
NOTE: 3. Hệ vi xử lý có 3 khối chính:
Bộ nhớ. CPU. Phối ghép (giao tiếp) vào/ra (I/O).
4. CPU đọc thông tin từ bộ nhớ và ghi thông tin vào bộ nhớ. 5. Các thiết bị đầu vào đưa thông tin từ bên ngoài vào hệ vi xử lý.
15
3. Sơ đồ khối của hệ VXL
NOTE: 6. Các thiết bị đầu ra đưa thông tin từ CPU đến các đối tượng bên ngoài.
7. Thông tin không chạy trực tiếp từ bộ nhớ đến các phối ghép vào/ra (I/O) và ngược lại, trước tiên thông tin phải đi qua CPU.
16
NOTE Có thể thấy rằng vi xử lý chỉ trao đổi thông tin với bộ nhớ và các phối ghép vào/ra I/O. Dù hệ thống sau này có phức tạp như thế nào hoặc chương trình có dài đến đâu thì vi xử lý chỉ làm những việc sau:
3. Sơ đồ khối của hệ VXL
1. Đọc từ bộ nhớ 2. Ghi vào bộ nhớ 3. Đọc từ các đầu vào 4. Ghi vào các đầu ra 5. Thực hiện các lệnh nội bộ như lệnh cộng (ADD), lệnh trừ
17
(SUB) …
II. Các loại bus trong hệ thống VXL
Có chức năng chuyển tải các thông tin về địa
chỉ.
Khi đọc/ghi bộ nhớ hay thiết bị I/O, (cid:0) P sẽ đưa ra các bit địa chỉ trên bus địa chỉ để chọn chính xác một ngăn nhớ (word) hay một thiết bị I/O cụ thể nào đó sẽ được giao tiếp với nó.
19
1. BUS địa chỉ (Address Bus)
Số lượng địa chỉ mà (cid:0) P có thể quản lý phụ thuộc vào số bit (số đường dây) của bus địa chỉ (16, 20, 24, 32 … bit).
Ví dụ: Một (cid:0) P có số đường dây của bus địa chỉ
là N = 16
có khả năng quản lý: 2N = 216 = 26.210 = 64.210 =
64 K = 65536 địa chỉ.
Bus địa chỉ là loại bus một chiều (xuất phát từ (cid:0) P).
20
1. BUS địa chỉ (Address Bus)
1. BUS địa chỉ (Address Bus)
Đệm bus địa chỉ
Do tất cả các thiết bị ngoại vi và bộ nhớ đều được nối với bus địa chỉ nên về mặt điện có thể vượt quá tính chịu tải (fan-out) của vi xử lý. Trong trường hợp các mạch nối vào bus địa chỉ tiêu thụ dòng điện lớn hơn khả năng chịu tải của vi xử lý thì hệ thống sẽ không hoạt động hay hoạt động không ổn định. Để giải quyết vấn đề này ta sử dụng các bộ đệm trung gian được gọi là bộ đệm địa chỉ.
21
Ví dụ: Đệm địa chỉ cho CPU có bus địa chỉ 16- bit:
22
1. BUS địa chỉ (Address Bus)
Có chức năng chuyển tải các thông tin về
dữ liệu đến/đi từ (cid:0) P.
Số lượng đường dây của bus này quyết
định số bit dữ liệu mà (cid:0) P có khả năng xử lý cùng một lúc (8, 16, 32, 64 … bit).
23
2. BUS dữ liệu
2. BUS dữ liệu
Bus dữ liệu là loại bus hai chiều.
24
Tuy nhiên tại một thời điểm nhất định thì dữ liệu chỉ được truyền theo một hướng duy nhất.
CPU
Bus dữ liệu
Bus dữ liệu
CP U
Bộ nhớ hoặc phối ghép vào/ra (I/O)
Bộ nhớ hoặc phối ghép vào/ra (I/O)
2. BUS dữ liệu (Data Bus)
b) Ghi - Write
a) Đọc - Read
25
Path 1 ( Được chọn)
Address Bus
Data Bus
CPU
Path 2 (Khoâng chọn)
Lưu ý: Hoạt động của bus địa chỉ và bus dữ liệu hoàn toàn độc lập với nhau
26
2. BUS dữ liệu (Data Bus)
2. BUS dữ liệu (Data Bus)
Đệm bus dữ liệu
Điều khiển hướng
A
Tương tự như bus địa chỉ, bus dữ liệu cũng cần được đệm để tăng fan-out khi cần thiết. Lưu ý là cần dùng kỹ thuật đệm 2 chiều (IC 74LS245).
D0 đến CPU
BD0 đi vào hệ thống
B
27
Kỹ thuật đệm 2 chiều sử dụng thm một tín hiệu điều khiển, tín hiệu ny sẽ quy định chiều dữ liệu sẽ được đệm.
Gồm nhiều đường dây tín hiệu khác nhau ( …), mỗi tín hiệu điều khiển có một chiều nhất định. Khi hoạt động, (cid:0) P có thể đưa tín hiệu điều khiển đến các khối khác nhau trong hệ, đồng thời nó cũng có thể nhận các tín hiệu từ các khối khác để phối hợp hoạt động của toàn hệ.
28
3. BUS điều khiển (Control Bus)
3. BUS điều khiển (Control Bus)
29
Lưu ý: Bus điều khiển ở khối I/O vẽ dạng 2 chiều để chỉ tính 2 chiều của cả nhóm tín hiệu, chứ không phải của mỗi tín hiệu.
Cĩ 6 loại truyền thơng tiêu biểu mà bus điều khiển phải
xác đinh bằng tín hiệu điện:
Đọc từ bộ nhớ Ghi vào bộ nhớ Đọc từ phối ghép đầu vào (Input) Ghi vào phối ghép đầu ra (Output) Nhận biết yêu cầu ngắt (Interrupt acknowledge) Nhận biết yêu cầu treo (Hold acknowledge, phục vụ
DMA)
30
3. BUS điều khiển (Control Bus)
III. VXL
Sơ đồ khối của một (cid:0) P:Có ba khối chức năng chính: khối thực thi (Execution Unit), khối điều khiển tuần tự (Sequencer) và khối giao tiếp bus (Bus Interface).
32
MicroProcessor
Execution Unit: Khối thực thi Control Unit: Khối điều khiển Registers: Các thanh ghi ALU (Arithmetic & Logic Unit): Khối logic - số học Sequencer: Bộ điều khiển tuần tự Instruction Register: Thanh ghi lệnh
33
MicroProcessor
Instruction Decoder: Bộ giải mã lệnh Program Counter: Bộ đếm chương trình Internal bus: Bus nội Bus interface: Giao tiếp bus Data bus driver: Bộ điều khiển bus dữ liệu Control bus driver: Bộ điều khiển bus điều khiển Address bus driver: Bộ điều khiển bus địa chỉ
34
MicroProcessor
MicroProcessor
Khối điều khiển tuần tự (Sequencer): nhận lệnh từ bộ nhớ, sau đó giải mã lệnh và truyền lệnh đã giải mã đến khối thực thi.
35
- Bộ đếm chương trình: là một thanh ghi lưu giữ địa chỉ của lệnh kế tiếp sẽ được thực thi. Mỗi khi một lệnh được thực thi, bộ đếm chương trình sẽ được tăng lên 1 để chỉ ra địa chỉ của lệnh kế tiếp sẽ được thực thi. Nội dung của bộ đếm chương trình được đặt lên bus địa chỉ để tìm và nhận lệnh mong muốn. Như vậy, (cid:0) P thực hiện các lệnh của chương trình một cách tuần tự, trừ khi gặp các lệnh chuyển điều khiển (lệnh nhảy, gọi chương trình con …) làm thay đổi nội dung PC. Trong một số vi xử lý, bộ đếm chương trình còn được gọi là con trỏ lệnh IP (Instruction Pointer).
MicroProcessor
Khối điều khiển tuần tự (Sequencer): nhận lệnh từ bộ nhớ, sau đó giải mã lệnh và truyền lệnh đã giải mã đến khối thực thi.
- Bộ giải mã lệnh: thông dịch (diễn dịch) các lệnh được nhận vào CPU Có thể xem bộ giải mã lệnh như một từ điển lưu trữ nghĩa của mỗi lệnh và các bước mà P cần thực hiện đối với mỗi lệnh được nhận vào. Giống như từ điển nếu có càng nhiều trang thì có thể định nghĩa được nhiều từ hơn, một (cid:0) P có thể hiểu càng nhiều lệnh hơn nếu có bộ giải mã lệnh càng lớn.
- Thanh ghi lệnh IR: lưu giữ mã nhị phân của lệnh đang được thực thi. 36
MicroProcessor
Khối thực thi (Execution Unit): thực thi và ghi kết quả câu lệnh. Các toán hạng (operand) liên quan có mặt ở các thanh ghi (registers) hoặc có từ bus nội (internal bus).
37
+ ALU (Arithmetic Logic Unit): là một mạch điện tử có khả năng thực hiện các phép toán số học (+, -, *, / …) và logic (AND, OR, NOT, XOR…). + Thanh ghi (Register): là một bộ nhớ cực nhanh, có dung lượng hạn chế nằm bên trong (cid:0) P. Các thanh ghi thường được dùng để lưu trữ các thông tin tạm thời. Mỗi thanh ghi có một địa chỉ để truy xuất tới nó. Các thanh ghi được nối với nhau hoặc đến các phần tử khác của (cid:0) P hay nối với bus ngoài nhờ bus nội. Độ rộng của các thanh ghi có thể là 8- bit, 16-bit, 32-bit hay 64-bit tùy thuộc vào loại (cid:0) P.
MicroProcessor
Khối thực thi (Execution Unit): thực thi và ghi kết quả câu lệnh. Các toán hạng (operand) liên quan có mặt ở các thanh ghi (registers) hoặc có từ bus nội (internal bus).
38
Thông tin có thể là giá trị cần được xử lý hay địa chỉ chứa giá trị cần được xử lý nhận từ bộ nhớ (hay I/O). (cid:0) P có càng nhiều thanh ghi và độ rộng càng lớn thì càng tốt vì lúc này chương trình không phải thực hiện nhiều phép truyền thông tin giữa (cid:0) P và bộ nhớ do có thể truy xuất trực tiếp từ thanh ghi, từ đó làm giảm thời gian truy xuất cũng như độ dài lệnh. + Khối điều khiển: tạo ra các tín hiệu điều khiển hoạt động của các bộ phận bên trong và bên ngoài (cid:0) P (tùy theo mã lệnh).
- Giao tiếp bus (Bus Interface): gồm ba bộ điều khiển bus để giao tiếp với bus bên ngoài tương ứng: bus dữ liệu, bus điều khiển và bus địa chỉ.
39
MicroProcessor
Tìm nạp lệnh từ bộ nhớ
40
MicroProcessor
MicroProcessor
Việc tìm nạp lệnh từ bộ nhớ là một trong các thao tác cơ bản nhất mà (cid:0) P thực hiện, gồm các bước như sau: -Nội dung của PC được đặt lên bus địa chỉ.
-Tín hiệu điều khiển READ được xác lập (chuyển sang trạng thái tích cực).
-Mã lệnh được đọc từ bộ nhớ và đưa lên bus dữ liệu.
-Mã lệnh được chốt vào thanh ghi lệnh IR bên trong.
41
- PC được tăng lên để chuẩn bị tìm nạp lệnh kế từ bộ nhớ.
IV. Bộ nhớ
Các đơn vị đo lường bộ nhớ
Đơn vị: Bội số:
Bit: đơn vị nhỏ nhất Nipple = 4 bit Byte = 8 bit Word = 16 bit Long word = 32 bit
43
Kilo = 10^3 Mega = 10^6 Giga = 10^9 Tera = 10^12 Peta = 10^15 exa = 10^18 Zetta = 10^21 Yotta = 10^24
Bộ nhớ thường được chia làm hai loại: bộ nhớ cơ bản (hay bộ nhớ chính – main memory) và bộ nhớ lưu trữ (storage memory).
- Bộ nhớ chính: ROM và RAM. - Bộ nhớ lưu trữ: băng từ, đĩa mềm, đĩa cứng…
Thông thường bộ nhớ lưu trữ được xem như là thiết bị I/O.
44
1. Phân loại
1. Phân loại
Bộ nhớ chỉ đọc – ROM (Read-Only Memory)
-Là bộ nhớ chỉ đọc, không thể sửa đổi thông tin trong các hoạt động thông thường.
-Thông tin ghi trong ROM sẽ không bị mất đi khi mất nguồn cung cấp.
-ROM được ghi bằng thiết bị chuyên dụng.
- ROM thường được dùng để chứa các chương trình và dữ liệu cố định (chương trình khởi động, dữ liệu tra bảng …) 45
1. Phân loại
Các loại ROM:
46
+ ROM: thông tin được ghi lúc chế tạo. + PROM (Programable ROM): là ROM trắng, chỉ cho phép ghi thông tin một lần duy nhất. + EPROM (Erasable ROM): có thể ghi và xóa thông tin nhiều lần. Loại này được xóa bằng cách rọi tia cực tím vào cửa sổ thủy tinh trên bề mặt. + EEPROM (Electrically EPROM): còn gọi là ROM điện, có thể ghi và xóa thông tin bằng xung điện. + Flash ROM: tương tự EEPROM.
1. Phân loại
Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory)
-Cho phép đọc/ghi thông tin bất kỳ lúc nào trong quá trình làm việc mà không cần thiết bị đặc biệt.
-Thông tin trong RAM sẽ bị mất khi mất nguồn cung cấp.
47
1. Phân loại
Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory)
48
- Có hai loại RAM chính: + RAM động – DRAM (Dynamic RAM): có cấu tạo từ các transistor MOSFET và tụ điện (1 phần tử nhớ), lưu trữ thông tin bằng điện tích trong tụ nên thông tin có thể mất đi (rò rĩ hết) nếu không có biện pháp duy trì thích hợp. Do đó cần có quá trình làm tươi (refresh) định kì để phục hồi nội dung của các ô nhớ trước khi nó mất đi (rò rĩ hết). DRAM có thể tích hợp với dung lượng lớn.
1. Phân loại
Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory)
49
-Có hai loại RAM chính: + RAM tĩnh – SRAM (Static RAM): cấu tạo từ những Flipflop (FF) (1 phần tử nhớ), mỗi FF lưu trữ một bit thông tin nên SRAM không cần quá trình làm tươi để duy trì nội dung. Tuy nhiên, nó khó tích hợp với dung lượng lớn.
- Bộ nhớ gồm các phần tử nhớ hay ô nhớ (memory cell) được tổ chức dưới dạng ma trận. Mỗi ô nhớ chứa một bit thông tin. - Mảng nhớ được phân chia thành một chuỗi các ngăn nhớ hay từ nhớ (word). - Mỗi ngăn nhớ đều có một địa chỉ duy nhất. - Một ngăn nhớ có thể có 4-bit, 8-bit, 16-bit … - Ký hiệu: số ngăn nhớ x độ rộng mỗi ngăn nhớ Ví dụ: bộ nhớ 1024 x 8 bao gồm 210 ngăn nhớ, mỗi ngăn nhớ có 8-bit.
50
2. Cấu trúc bên trong tiêu biểu
Memory array: Mảng ô nhớ Row address decoder: Bộ giải mã địa chỉ hàng Column address decoder: Bộ giải mã địa chỉ cột Memory cell: Ô nhớ Three state driver: Bộ điều khiển ngõ ra 3 trạng thái Data Output: Dữ liệu ra Data Input: Dữ liệu vào Address: Địa chỉ Write: Ghi
51
2. Cấu trúc bên trong tiêu biểu
Các tín hiệu tiêu biểu trên một chip nhớ:
52
+ (Chip Select): tín hiệu chọn chip (cho phép chip). + (Output Enable): tín hiệu cho phép xuất dữ liệu (nhận xung kích từ (cid:0) P). + (Write Enable): tín hiệu cho phép ghi dữ liệu (nhận xung kích từ (cid:0) P). + Address: các tín hiệu địa chỉ (từ bus địa chỉ) để chọn ngăn nhớ cần thao tác. + Data: các tín hiệu dữ liệu đọc ra (data output) hay ghi vào (data input), được nối với bus dữ liệu.
2. Cấu trúc bên trong tiêu biểu
3. Truy xuất bộ nhớ
Các quy ước trên giản đồ thời gian:
53
3. Truy xuất bộ nhớ
Các quy ước trên giản đồ thời gian:
54
3. Truy xuất bộ nhớ
Các quy ước trên giản đồ thời gian:
55
3. Truy xuất bộ nhớ
Truy xuất ROM
11 12 13 15 16 17 18 19
D0 D1 D2 D3 D4 D5 D6 D7
10 9 8 7 6 5 4 3 25 24 21 23 2
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12
20 22 27 1
CE OE PGM VPP
2764
Giới thiệu EPROM 2764: Đây là IC nhớ 28 chân 8K (8192 x 8) với 13 đường địa chỉ và 8 đường dữ liệu. Chú ý rằng chân /PGM không được điều khiển bởi vi xử lý, chỉ dùng cho bộ nạp dữ liệu vào ROM. Điện áp VPP chỉ sử dụng khi nạp ROM, còn điện áp VCC = 5V là điện áp hoạt động của ROM.
56
3. Truy xuất bộ nhớ
Quy trình đọc ROM:
A0 – A12 D0 – D7
Ñöôøng ñòa chæ Ñöôøng döõ lieäu
57
/CE /OE /PGM
Choïn chip Cho pheùp xuaát Laäp trình
1. Xác định địa chỉ của ngăn nhớ cần truy xuất. CPU sẽ đưa địa chỉ này lên bus địa chỉ đến ROM. 2. Kích hoạt tín hiệu chọn chip cho phép dữ liệu được xuất ra bus dữ liệu. 3. CPU đợi 1 khoảng thời gian ngắn gọi là thời gian truy cập để vi mạch nhớ giải mã địa chỉ và xuất dữ liệu ra đường dữ liệu. CPU xuất xung nhịp nạp dữ liệu vào thanh ghi bên trong. 4. Tín hiệu chọn chip được đặt ở mức không tích cực và xóa dữ liệu từ ROM vào CPU.
3. Truy xuất bộ nhớ
Địa chỉ từ CPU đến ROM
1
CS
2
Bus dữ liệu
Dữ liệu không có giá trị
Dữ liệu không có giá trị
3
Dữ liệu của ROM ở trên bus dữ liệu
58
Quy trình đọc ROM:
11 12 13 15 16 17 18 19
D0 D1 D2 D3 D4 D5 D6 D7
3. Truy xuất bộ nhớ
Truy xuất RAM Giới thiệu SRAM 6264: Đây là IC nhớ cho phép đọc ghi tùy ý, 28 chân 8K (8192 x 8) với 13 đường địa chỉ và 8 đường dữ liệu.
10 9 8 7 6 5 4 3 25 24 21 23 2
Quy trình đọc RAM: tương tự như đọc dữ liệu từ ROM.
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12
A0 – A12
Ñöôøng ñòa chæ
D0 – D7
Ñöôøng döõ lieäu
/CE
Choïn chip
20 26 27 22
CE CS WE OE
/OE
Cho pheùp xuaát
6264
/WE
Cho pheùp ghi
59
3. Truy xuất bộ nhớ
Địa chỉ từ CPU đến RAM
Read/Write tín hiệu logic để truy cập RAM
Dữ liệu xuất ra có giá trị
Bus dữ liệu
TACC
60
Quy trình đọc RAM:
3. Truy xuất bộ nhớ
Quy trình ghi RAM: 1. Các đường địa chỉ được kết nối với RAM xác định ngăn nhớ nào trong RAM sẽ được kết nối. 2. Dữ liệu cần ghi vào RAM được xuất đến các đường dữ liệu vào của RAM. 3. Hệ thống phải đợi một khoảng thời gian nhỏ. Trong khoảng thời gian này RAM sẽ giải mã địa chỉ và chọn ngăn nhớ mang địa chỉ nhận được. Khoảng thời gian này gọi là thời gian ghi vào RAM. 4. Đường dẫn R/W sẽ được đặt ở mức logic tương ứng với thao tác ghi vào RAM. Tín hiệu này cho phép dữ liệu được ghi vào RAM 5. Chú ý rằng ở đây ta nói về các đường dẫn dữ liệu ra từ RAM và các đường dẫn dữ liệu vào RAM. Trong thực tế vì rằng trong một khoảng khắc nhất định thì ta chỉ thực hiện một thao tác là đọc hoặc ghi, nên cả hai loại đường dẫn trên được thực hiện bằng một đường dẫn hai chiều chung. 61
3. Truy xuất bộ nhớ
Địa chỉ từ CPU đến RAM
Dữ liệu xuất ra RAM ổn định
Bus dữ liệu
Read/Write xuống lên để nạp dữ liệu vàp RAM
62
Quy trình ghi RAM:
Trong một hệ thống vi xử lý, bộ nhớ có thể được tạo thành từ nhiều chip nhớ. Các chip này đều dùng chung bus dữ liệu để trao đổi với (cid:0) P. Do đó để tránh xung đột trên bus, cần phải giải mã địa chỉ để tại mỗi thời điểm chỉ cho phép một chip có thể kết nối với bus dữ liệu để trao đổi với (cid:0) P.
63
4. Giải mã địa chỉ cho bộ nhớ
Kết nối mạch giải mã địa chỉ tổng quát:
Bus địa chỉ
Đến các chân địa chỉ của các chip nhớ
(cid:0) P
Mạch giải mã địa chỉ
Đến các chân chọn chip của các chip nhớ
64
4. Giải mã địa chỉ cho bộ nhớ
Quan hệ giữa giải mã địa chỉ và bảng bộ nhớ:
Bảng bộ nhớ
MSB
LSB
Các bit địa chỉ
2m
m bit
n bit
vùng
… …
đến các chip nhớ
đến bộ giải mã địa chỉ
2n
địa chỉ
65
4. Giải mã địa chỉ cho bộ nhớ
4. Giải mã địa chỉ cho bộ nhớ
có thể quản lý 216 = 26.210 A0) (cid:0)
A13) được đưa đến bộ giải mã (ở đây dùng IC
Ví dụ: (cid:0) P có 16 đường địa chỉ (A15 (cid:0) = 64 K = 65536 địa chỉù: + 3 bit cao (A15 (cid:0) 74LS138). + 13 bit thấp (A12 (cid:0) A0) được đưa đến các chip nhớ.
0000 (cid:0)
1FFF
2000 (cid:0)
3FFF
A13 A14 A15
A B C
4000 (cid:0)
5FFF
+5V
6000 (cid:0)
7FFF
8000 (cid:0)
9FFF
G1 G2A G2B
A000 (cid:0)
BFFF
0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
C000 (cid:0)
DFFF
74LS138
Đưa đến các chân chọn chip của các chip nhớ
E000 (cid:0)
FFFF
66
(cid:0) có 23 = 8 vùng, mỗi vùng có 213 = 23.210 = 8 K = 8192 địa chỉ.
V. Nhập xuất
- Theo chiều trao đổi dữ liệu: + Thiết bị xuất + Thiết bị nhập + Thiết bị nhập/xuất
- Theo dạng truyền dữ liệu:
+ Nối tiếp: đồng bộ và bất đồng bộ (thêm bit start,
stop).
+ Song song.
68
1. Phân loại
2. Cấu trúc tiêu biểu của port I/O
-Các port nhập (I) và xuất (O) giao tiếp (cid:0) P với các thiết bị ngoài không thể nối trực tiếp đến các bus.
-Về cơ bản, một port xuất chỉ là một thanh ghi. Khi (cid:0) P ghi ra địa chỉ được gán cho port, port sẽ chứa dữ liệu có từ bus dữ liệu. Như vậy nó cung cấp ngõ ra có chốt cho các thiết bị ngoài.
69
- Một port nhập thông thường là một bộ đệm 3 trạng thái. Khi (cid:0) P đọc vào từ địa chỉ được gán cho port, bộ đệm 3 trạng thái sẽ đưa dữ liệu từ các ngõ nhập ngoài vào bus dữ liệu rồi (cid:0) P đọc dữ liệu từ bus.
PORT xuất:
70
2. Cấu trúc tiêu biểu của port I/O
PORT nhập:
71
2. Cấu trúc tiêu biểu của port I/O
72
3. Giải mã địa chỉ cho I/O
a. I/O trực tiếp (Định địa chỉ I/O theo kiểu trực tiếp) - Các địa chỉ thiết bị I/O tách khỏi các địa chỉ bộ nhớ. - (cid:0) P cung cấp hai đường điều khiển đọc và ghi riêng cho I/O: và . -Giải mã địa chỉ cho I/O tương tự như giải mã địa chỉ cho bộ nhớ. Lưu ý: Một số thiết bị I/O có thể không có các tín hiệu địa chỉ.
3. Giải mã địa chỉ cho I/O
73
Ví dụ: Giải mã địa chỉ cho I/O
Khi (cid:0) P cần trao đổi dữ liệu với một thiết bị I/O nào đó, nó phát tín hiệu địa chỉ của thiết bị lên bus địa chỉ. Một số trong các tín hiệu địa chỉ này được đặt vào mạch giải mã chọn thiết bị. Mạch giải mã này sẽ kích hoạt chỉ một tín hiệu chọn chip tương ứng với thiết bị được chọn, do đó chỉ có bộ đệm dữ liệu của thiết bị này được nối với bus dữ liệu để trao đổi với (cid:0) P. Trong quá trình này, tín hiệu điều khiển đọc hay ghi cũng được phát trên bus điều khiển để xác định thao tác tương ứng.
74
3. Giải mã địa chỉ cho I/O
3. Giải mã địa chỉ cho I/O
75
b. I/O được ánh xạ như bộ nhớ - (cid:0) P xem các thiết bị I/O như các vị trí bộ nhớ. Các vị trí này không được trùng với các địa chỉ có trong các thiết bị nhớ như ROM và RAM. - (cid:0) P không có các tín hiệu điều khiển đọc và ghi riêng cho I/O.
3. Giải mã địa chỉ cho I/O
76
b. I/O được ánh xạ như bộ nhớ - (cid:0) P xem các thiết bị I/O như các vị trí bộ nhớ. Các vị trí này không được trùng với các địa chỉ có trong các thiết bị nhớ như ROM và RAM. - (cid:0) P không có các tín hiệu điều khiển đọc và ghi riêng cho I/O.
77
Ví dụ 1: Giả sử (cid:0) P có 16 đường địa chỉ, tín hiệu đọc/ghi I/O tích cực mức 0. Trong ví dụ này đường địa chỉ A15 (nối /CS bộ nhớ) được dùng như là bit chọn đọc/ghi bộ nhớ hay I/O. Nếu A15 = 0, ngõ ra /IOR và /IOW luôn là mức 1 nên thao tác được chọn là đọc/ghi bộ nhớ. Ngược lại khi A15 = 1, ngõ ra /IOR hay /IOW sẽ là mức 0 khi có tín hiệu /RD hay /WR tương ứng từ bộ xử lý.
3. Giải mã địa chỉ cho I/O
IOW
WR
XCS
IOR
3. Giải mã địa chỉ cho I/O
RD
78
Ví dụ 2: Mức tích cực của các tín hiệu đọc/ghi I/O là mức 1
Có 3 phương pháp cơ bản: hỏi vòng hay kiểm tra tuần tự (polling), điều khiển ngắt (interrupt) và DMA (Direct Access Memory). Ngoài ra cũng có thể kết hợp các phương pháp trên.
79
4. Các phương pháp điều khiển I/O
4. Các phương pháp điều khiển I/O
a. Polling (Hỏi vòng)
80
(cid:0)
(cid:0) P lần lượt kiểm tra từng I/O xem có yêu cầu dịch vụ không thông qua các cờ (flag). -Tất cả các việc chuyển dữ liệu đến và từ các thiết bị I/O được thực hiện bằng chương trình (cid:0) polling là cơ chế đồng bộ (synchronous) với việc thực thi chương trình.
Kỹ thuật polling có các hạn chế:
+ Mất thời gian của (cid:0) P (do kiểm tra trạng thái của tất cả các ngoại vi thường xuyên). + Chậm trong các hệ thống thời gian thực (real-time), không thỏa mãn cho các thiết bị yêu cầu tốc độ đáp ứng nhanh. + Người sử dụng có thể gặp khó khăn trong trong vấn đề lập trình vì phải luôn canh chừng I/O.
81
4. Các phương pháp điều khiển I/O
Lưu đồ hoạt động của polling:
82
4. Các phương pháp điều khiển I/O
4. Các phương pháp điều khiển I/O
b. Interrupt (Ngắt) Ngắt là một quá trình xử lý thông tin của vi xử lý tương tự như con người xử lý thông tin. Ví dụ khi bạn đang nói chuyện với một người. Người thứ ba đến và gọi tên bạn. Đây là dấu hiệu rằng có một người khác yêu cầu sự quan tâm của bạn. Người thứ ba này có thể được coi như là một yêu cầu ngắt bên ngoài (external interrupt request). Người này yêu cầu bạn ngắt cuộc nói chuyện của mình. Bạn có thể xử lý yêu cầu này bằng các cách như sau:
1. Bạn có thể bỏ qua yêu cầu và coi như người thứ ba là không tồn tại. 2. Bạn có thể dừng một cách thích hợp đối thoại đang diễn ra, rồi bắt đầu
quan tâm đến người thứ ba. Lúc này bạn bắt đầu nói chuyện với người này chứ không nói chuyện với người đầu tiên nữa.
3. Bạn tức khắc dừng nói chuyện với người thứ nhất và bắt đầu nói
83
chuyện ngay với người thứ ba. Khi bạn nói chuyện xong với người thứ ba, bạn muốn quay lại tiếp tục cuộc đối thoại với người thứ nhất tại điểm mà yêu cầu ngắt xuất hiện.
4. Các phương pháp điều khiển I/O
b. Interrupt (Ngắt)
Quá trình trên diễn ra tương tự với kỹ thuật ngắt trong hệ thống vi xử lý. Lúc này CPU đóng vai trò của bạn. Người thứ nhất là chương trình chính đang được thực hiện. Người thứ ba là một yêu cầu ngắt bên ngoài. Đây là một thiết bị phần cứng bên ngoài yêu cầu CPU quan tâm đến nó. CPU phải xử lý yêu cầu ngắt này bằng cách nào đó. Có nhiều cách xử lý ngắt, các cách được nêu ở ví dụ trên là các cách xử lý thông dụng nhất.
Ví dụ như ta có một cảm biến báo cháy. Thông thường khi không có lửa thì cảm biến xuất ra số 1, lúc có lửa thì cảm biến xuất số 0 báo cho vi xử lý kích hoạt chương trình báo động. Vi xử lý có thể luôn luôn đọc trạng thái của cảm biến bằng lệnh IN từ cổng nối với cảm biến. Sau đó vi xử lý kiểm tra trạng thái cảm biến và gọi chương trình báo động khi trạng thái cảm biến là 0. Tuy vậy đây là một thao tác lặp đi lặp lại nhiều lần một cách không hiệu quả, vì phần lớn thời gian cảm biến không báo cháy. Một cách xử lý hiệu quả hơn là đưa tín hiệu của cảm biến vào chân yêu cầu ngắt của vi xử lý. Chỉ khi chân yêu cầu ngắt này được kích hoạt thì vi 84 xử lý mới gọi chương trình báo động.
4. Các phương pháp điều khiển I/O
85
- Ngắt là cơ chế bất đồng bộ (asynchronous) với việc thực thi chương trình. Nó được dùng với mục đích là tránh tối đa hoặc loại bỏ hẳn cơ chế hỏi vòng để kiểm tra trạng thái thiết bị. - Mỗi thiết bị I/O hay bộ điều khiển của nó được nối với một đường interrupt.
4. Các phương pháp điều khiển I/O
-Khi I/O có yêu cầu trao đổi dữ liệu nó sẽ phát ra một tín hiệu báo cho (cid:0) P. Tín hiệu đó được gọi là tín hiệu yêu cầu ngắt IRQ (interrupt request). Khi (cid:0) P nhận được yêu cầu ngắt đó, nếu đồng ý trao đổi thông tin với I/O, nó sẽ trả lời với bộ điều khiển nhập/xuất bằng tín hiệu chấp nhận ngắt INTA (interrupt acknownledge) đồng thời ngừng chương trình đang làm và gọi chương trình phục vụ ngắt cho I/O. Sau khi phục vụ xong, nó quay về tiếp tục thực hiện chương trình đang làm tại nơi bị ngắt.
cần có mạch điều
86
- Khi có nhiều I/O yêu cầu ngắt đồng thời (cid:0) khiển ưu tiên ngắt.
Lưu đồ hoạt động của ngắt:
87
4. Các phương pháp điều khiển I/O
4. Các phương pháp điều khiển I/O
Thủ tục interrupt về nguyên tắc tương tự với gọi chương trình con, ngoại trừ:
1. Interrupt được khởi động từ 1 tín hiệu bên trong hoặc bên
ngoài thay vì từ những thực thi lệnh.
2. Địa chỉ của chương trình phục vụ interrupt được xác định bằng thủ tục hardware thay vì từ vùng địa chỉ của lệnh. (bảng vector ngắt được xác định trước của từng loại vi xử lý).
88
3. Khi đáp ứng 1 interrupt cần lưu tất cả các thông tin định nghĩa trạng thái hiện hành của hệ thống thay vì chỉ lưu trữ bộ đếm chương trình PC.
4. Các phương pháp điều khiển I/O
89
Như vậy để thực hiện thao tác ngắt vi xử lý cần có một phần cứng báo ngắt và một phần mềm gọi là chương trình phục vụ ngắt (interrupt service routines). Phần cứng báo ngắt để tạo tín hiệu điện thông báo cho vi xử lý yêu cầu ngắt. Phần mềm phục vụ ngắt thực hiện thao tác cần thiết như là câu trả lời cho yêu cầu ngắt.
4. Các phương pháp điều khiển I/O
c. DMA (Direct Memory Access) -Thông thường khi chương trình muốn chuyển một byte dữ liệu từ ngoại vi vào bộ nhớ, nó phải thực hiện thông qua (cid:0) P gồm một thao tác nhập và sau đó là thao tác ghi bộ nhớ. Hoặc ngược lại, khi muốn đưa thông tin từ bộ nhớ ra ngoại vi, (cid:0) P phải làm thao tác đọc bộ nhớ rồi xuất ra ngoại vi. Trong trường hợp này, chức năng của (cid:0) P chỉ là chuyển dữ liệu mà không xử lý gì cả. Điều này lặp đi lặp lại nhiều lần sẽ làm lãng phí việc sử dụng (cid:0) P vì chức năng chủ yếu của (cid:0) P là xử lý dữ liệu.
90
-DMA là cơ chế điều khiển cho phép truy xuất bộ nhớ trực tiếp, không thông qua (cid:0) P.
4. Các phương pháp điều khiển I/O
c. DMA (Direct Memory Access)
-Cơ chế DMA được thực hiện bởi một mạch phần cứng được gọi là bộ điều khiển DMA (DMAC - DMA Controller).
91
- DMA giúp rút ngắn thời gian truy xuất giữa bộ nhớ và I/O. Cơ chế này rất tiện dụng cho các thiết bị ngoại vi có khối lượng thông tin trao đổi lớn (trao đổi một khối dữ liệu lớn trong một thời gian ngắn) ví dụ như card màn hình, đĩa cứng … trong máy tính.
4. Các phương pháp điều khiển I/O
c. DMA (Direct Memory Access)
92
- Quá trình DMA bắt đầu khi có tín hiệu yêu cầu DMA (DRQ) từ thiết bị I/O đến DMAC. DMAC tiếp tục gởi tín hiệu yêu cầu (cid:0) P nhường bus (HRQ) đến chân HOLD của (cid:0) P để nó thực thi việc trao đổi dữ liệu trực tiếp giữa bộ nhớ và I/O. Khi (cid:0) P đồng ý nhường bus, nó trả lời cho DMAC bằng tín hiệu chấp nhận nhường bus (HLDA) đồng thời tạm ngưng mọi hoạt động, tự tách ra khỏi hệ thống. Đến lượt DMAC gởi tín hiệu thông báo cho phép trao đổi dữ liệu theo kiểu DMA (DACK) đến thiết bị I/O. Khi DMAC chuyển hết dữ liệu, nó trả quyền điều khiển các bus lại cho (cid:0) P, quá trình DMA kết thúc.
4. Các phương pháp điều khiển I/O
c. DMA (Direct Memory Access)
93
- Trong thực tế, việc sử dụng cơ chế DMA khá phức tạp và qua nhiều công đoạn vì DMAC không thi hành bất kì lệnh nào, chương trình nào (không thực thi phần mềm) để chuyển dữ liệu mà nó thực hiện hoàn toàn bằng phần cứng nên cần phải có trước đầy đủ các thông tin về vị trí dữ liệu của I/O, vị trí bộ nhớ chứa dữ liệu và số lượng byte cần chuyển để (cid:0) P nạp cho DMAC. Ngoài ra, DMAC còn phải có khả năng tạo ra các tín hiệu điều khiển cần thiết giống như các tín hiệu của (cid:0) P.
4. Các phương pháp điều khiển I/O
94
c. DMA (Direct Memory Access)
VI. Vi xử lý và vi điều khiển
Von Neumann and Harvard Computers
96
VXL và VĐK
- Về cấu trúc phần cứng:
+ Vi xử lý: là một CPU đơn chip (như trong sơ đồ khối ở trên). + Vi điều khiển: gồm CPU và một số thành phần khác như bộ nhớ ROM, RAM, các port I/O và một số mạch chức năng như mạch định thời (timer), mạch điều khiển ngắt (interrupt controller), mạch giao tiếp nối tiếp (serial interface)…
- Về ứng dụng:
+ Vi xử lý: thường dùng làm CPU trong các máy vi tính. + Vi điều khiển: thường dùng trong các thiết kế nhỏ, hướng điều khiển.
- Đặc trưng về tập lệnh:
97
+ Vi xử lý: mạnh về các kiểu định địa chỉ, số lệnh nhiều. + Vi điều khiển: có thể thao tác với từng bit đơn (định hướng bit).
VXL và VĐK
So sánh VXL Z80 và VĐK 8051
98
VXL và VĐK
Questions ???
Bài tập chương 1
Bài tập chương 1
1.1 Hãy nêu các thành phần cơ bản trong một hệ vi xử lý? Chức năng của từng thành phần? 1.2 Vi xử lý là gì? Các thành phần cơ bản trong một chip vi xử lý? 1.3 Phân biệt bộ nhớ ROM và RAM?
1.4 Phân biệt bộ nhớ DRAM và SRAM?
101
1.5 Cấu trúc tiêu biểu của một port nhập/xuất?
Bài tập chương 1
1.6 So sánh các phương pháp điều khiển I/O?
1.7 Các thiết bị/linh kiện 3 trạng thái là gì? Tại sao chúng lại cần thiết trong các hệ thống dùng bus?
1.8 Cần bao nhiêu byte để làm thành một word (từ) 32 bit?
1.9 Có bao nhiêu vị trí bộ nhớ có thể được định địa chỉ bởi một (cid:0) P có 20 đường địa chỉ?
102
1.10 Nếu một chip bộ nhớ có kích thước là1024 x 4 bit thì phải cần bao nhiêu chip như vậy để tạo 2K (2048) byte bộ nhớ?
Bài tập chương 1
1.11 Nếu một chip bộ nhớ có kích thước là 256 x 1 bit thì phải cần bao nhiêu chip như vậy để tạo 1 KB bộ nhớ?
1.12 Cần phải có bao nhiêu đường địa chỉ trên một chip bộ nhớ có kích thước 2K x 8 bit?
103
1.13 Một chip nhớ 4 KB có địa chỉ bắt đầu là 2000H trong bảng địa chỉ bộ nhớ. Xác định địa chỉ cuối cùng của chip và số trang trong chip (giả sử chọn kích thước một trang là 256 byte)?
4-to-16 decoder
LSB
1 0 1 0
MSB
A B C D
3-to-8 decoder
Bài tập chương 1
0
A3 A4 A5
A B C
G1 G2
A7
A0 A1
G1 G2A G2B
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A2 A6
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15
74LS138
74LS154
1.14 Trong bộ giải mã 4 sang 16 ở hình a, ngõ ra nào xuống mức thấp nếu các ngõ vào của bộ giải mã có giá trị như hình vẽ?
Hình b)
Hình a)
104
1.15 Trong hình b, hãy tìm ngõ ra nào xuống mức thấp nếu các giá trị vào (bao gồm các đường cho phép) của bộ giải mã 3 sang 8 (74LS138) là: A7(cid:0) A0=11110111