Nội dung bài giảng môn Thiết bị ngoại vi và ghép nối nội dung chương 1: Kiến trúc hệ thống vi xử lý
Nội dung bài giảng môn Thiết bị ngoại vi và ghép nối nội dung chương 1: Kiến trúc hệ thống vi xử lý của Học viện Công nghệ Bưu chính Viễn thông với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!
Môn: Thiết bị ngoại vi và ghép nổi
Trường: Học viện Công Nghệ Bưu Chính Viễn Thông
Thông tin:
Tác giả:
Preview text:
lOMoARcPSD| 10435767
CHƯƠNG 1 – KIẾN TRÚC HỆ THỐNG VI XỬ LÝ – MÁY TÍNH LT3
1.1 KIẾN TRÚC HỆ THỐNG VI XỬ LÝ, MÁY TÍNH KINH ĐIỂN
1.1.1 Sơ ồ kiến trúc
Trước hết cần phải xác ịnh máy tính cá nhân (personal computer), hay máy tính lớn
(main frame) cũng chính là một hệ thống vi xử lý. Trong thực tế, máy tính thường do
các hãng lớn chế tạo theo một tiêu chuẩn nhất ịnh, ể có thể hoạt ộng ược với các hệ iều
hành và các phần mềm sẵn có trên thị trường. Mặt khác, các hãng thực hiện các hệ iều
hành hay các phần mềm, cũng thực hiện các hệ iều hành hay các phần mềm mới, dựa
trên cấu hình tiêu chuẩn của các máy tính có mặt trên thị trường. Ngoài các máy tính
chuẩn, một hãng chế tạo máy hay một người sử dụng bất kỳ có thể thực hiện một máy
tính, hay một hệ thống vi xử lý sử dụng cho các ứng dụng riêng như tính toán hay iều
khiển các máy móc thiết bị, các hệ thống như vậy ang ược sử dụng rất phổ biến trong
dân dụng cũng như công nghiệp.
Sơ ồ kiến trúc hệ thống vi xử lý hay một máy tính kinh iển bao gồm các thành phần như trên hình 1.1
Hình 1.1: Sơ ồ kiến trúc hệ thống vi xử lý hay máy tính kinh iển
Hệ thống bao gồm hệ thống trung tâm (Central Sub System – CS), các giao tiếp kết
nối (Interface) và các thiết bị ngoại vi.
Hệ thống trung tâm óng vai trò iều khiển hoạt ộng của toàn bộ hệ thống, nó bao gồm:
Bộ vi xử lý hay còn gọi là bộ xử lý trung tâm (Central Processing Unit) là nơi thực hiện
các chương trình ể iều khiển hoạt ộng của toàn bộ hệ thống. Bộ nhớ (Memory), là các
IC nhớ bán dẫn, là nơi lưu trữ các chương trình cung cấp cho CPU hoạt ộng, cung cấp
các dữ liệu, các biến của chương trình, các hằng số cần thiết của chương trình mà CPU lOMoARcPSD| 10435767
thực hiện. Các bộ iều khiển (controller) iều khiển các chế ộ hoạt ộng ặc biệt của hệ thống,
trong các hệ thống vi xử lý kinh iển thông thường có các bộ iều khiển như: bộ iều khiển
Bus, cung cấp các tín hiệu cho bus hệ thống. Bộ ịnh thời, cung cấp các tín hiệu ịnh
khoảng thời gian cho các hoạt ộng của hệ thống. Bộ iều khiển ngắt, iều khiển vào ra hoạt
ộng theo chế ộ ngắt. DMA, iều khiển truyền dữ liệu trực tiếp giữa bộ nhớ và ngoại vi ….
Các khối mạch trong hệ thống trung tâm ược kết nối với nhau bằng các ường dẫn iện
gọi chung là BUS. BUS ược chia thành 03 nhóm là: Bus ịa chỉ, bus dữ liệu và bus iều
khiển. Bus dữ liệu sử dụng cho việc truyền dữ liệu giữa CPU với các ô nhớ và các thiết
bị ngoại vi. Bus ịa chỉ ể xác ịnh vị trí bộ nhớ hay vào ra sẽ truyền dữ liệu với CPU và
Bus iều khiển ể ịnh nghĩa các chế ộ hoạt ộng khác nhau của hệ thống.
Để giao tiếp với thế giới bên ngoài hệ thống sử dụng khối giao tiếp bao gồm: các bộ
ệm (Buffer) và các cổng vào ra. Thông thường CPU thường ược chế tạo với công nghệ
tốc ộ cao có dòng iện và mức iện áp logic thấp, nên các bộ ệm óng vai trò tương thích
tín hiệu số về dòng iện và iện áp. Ngoài ra các bộ ệm còn thực hiện việc chỉnh lại dạng
tín hiệu số khi bị nhiễu. Ở các hệ thống vi xử lý hoạt ộng với tốc ộ thấp có thể không sử dụng các bộ ệm.
Các cổng vào có chức năng giao tiếp với các thiết bị cấp dữ liệu cho CPU, các cổng ra
sử dụng cho các thiết bị nhận dữ liệu từ CPU. Một số thiết bị có thể truyền dữ liệu hai
chiều với CPU. Các cổng vào ra ược thực hiện bằng các vi mạch chuyên dụng, chúng
tạo ra các luồng dữ liệu số với mức logic và khung truyền theo các chuẩn khác nhau ể
các thiết bị cùng chuẩn có thể giao tiếp với máy tính.
Phần cuối cùng của hệ thống vi xử lý – máy tính kinh iển là các thiết bị bên ngoài
(WideWorld). Các thiết bị này có thể là các thiết bị giao tiếp chuẩn ể giao tiếp giữa hệ
thống với người sử dụng như: bàn phím, con chuột, màn hình …. Các thiết bị này có thể
luôn gắn liền (một khối) với hệ thống. Ngoài ra, các thiết bị gắn vào máy tính cũng có
thể là các thiết bị ặc biệt, chỉ sử dụng trong các ứng dụng cụ thể nào ó. Ví dụ như ầu dò
siêu âm sử dụng trong bệnh viện, các thiết bị iều hiển công nghiệp sử dụng trong các nhà máy.
1.1.1.1 Các hệ thống trung tâm
Như ã ề cập, thành phần quan trọng nhất của hệ thống trung tâm là bộ vi xử lý hay
còn gọi là bộ xử lý trung tâm (CPU – Central Processing Unit). CPU là nơi thực hiện
các chương trình ể tính toán và iều khiển hoạt ộng của toàn bộ hệ thống. Chương trình
bao gồm các lệnh xử lý các dữ liệu nhị phân như: tính toán số học logic, di chuyển dữ
liệu (bên trong CPU, giữa CPU với bộ nhớ hoặc CPU với vào ra), chuyển iều khiển
chương trình ể thực hiện các giải thuật của công việc. lOMoARcPSD| 10435767
Khi hoạt ộng CPU thực hiện các công việc sau: lấy lệnh từ ngoài bộ nhớ bằng cách
cấp ịa chỉ và tín hiệu iều khiển ọc bộ nhớ, giải mã lệnh ể xác ịnh công việc mà lệnh yêu
cầu thực hiện, xác ịnh vị trí các toán hạng (là các dữ liệu) mà lệnh xử lý, thực hiện lệnh
và lưu trữ kết quả trên các thanh ghi hay các ô nhớ ược chỉ ịnh trong lệnh, hoặc thực
hiện các giao tiếp vào ra theo yêu cầu của lệnh.
Do óng vai trò iều khiển hoạt ộng của toàn bộ hệ thống nên CPU là thành phần quan
trọng quyết ịnh tới tốc ộ hoạt ộng của hệ thống. Các ặc tính quan trọng khi ánh giá hay
lựa chọn một CPU cho một hệ thống vi xử lý bao gồm:
- Tốc ộ hoạt ộng: tốc ộ hoạt ộng của CPU phụ thuộc chủ yếu vào công nghệ bán dẫn
chế tạo ra nó. Thông thường CPU áp ứng với xung nhịp càng cao sẽ có tốc ộ hoạt
ộng càng cao. Tuy nhiên, tốc ộ xử lý lệnh trên một ơn vị thời gian còn phụ thuộc
vào cả cấu trúc bên trong của CPU. Ví dụ CPU có hai lõi bên trong sẽ thực hiện
ược nhiều lệnh hơn CPU tốc ộ cao hơn nhưng một lõi. Hiện nay tốc ộ hoạt ộng của
CPU thường ược tính bằng hàng triệu lệnh trên giây MIPS
(Milion of Instruction Per Second).
- Độ lớn dữ liệu mà CPU có thể xử lý ược trong một lệnh (hay ộ lớn toán hạng): ộ
lớn này phụ thuộc vào cấu trúc BUS dữ liệu, cấu trúc bộ phận xử lý dữ liệu
(ALU, DSP, Image Processing ..), và ộ lớn các thanh ghi bên trong CPU. Thông
thường, ộ lớn toán hạng của CPU sẽ bằng với ộ lớn BUS dữ liệu. Tuy nhiên, trong
một số CPU ộ lớn BUS dữ liệu thường nhỏ hơn ộ lớn toán hạng. Ví dụ, CPU 8088
có ộ lớn toán hạng 16 bit nhưng chỉ có BUS dữ liệu 8 bit.
- Kiến trúc bộ vi xử lý: CPU ược chế tạo với nhiều loại kiến trúc khác nhau. Đầu
tiên các CPU ược chế tạo với kiến trúc tập lệnh ầy ủ CISC (Complete Instruction
Set Computer). Với cấu trúc này CPU thực hiện ược nhiều lệnh hơn nhưng sẽ có
cấu trúc phức tạp hơn làm hoạt ộng của nó chậm hơn. CPU có tập lệnh rút gọn ra
ời có cấu trúc ơn giản hơn hoạt ộng nhanh hơn nhưng sẽ thực hiện ược ít lệnh hơn.
Ngoài ra, thông thường các CPU loại RISC (Reduct Instrution Set Computer)
thường có ộ dài lệnh bằng nhau hỗ trợ cho hoạt ộng ường ống (Pipe line). Các CPU
khi mới ra ời có cấu trúc Von Neumann, cấu trúc này sử dụng chung hệ thống BUS
cho cả dữ liệu và chương trình. Các CPU hiện ại thường có cấu trúc Hardvard, với
một BUS riêng cho việc truy cập chương trình và một BUS riêng cho việc truy cập
dữ liệu. Với cấu trúc Hardvard CPU có thể ồng thời ọc mã lệnh và các toán hạng
trong bộ nhớ. Với các ứng dụng a phương tiện, có thể sử dụng các CPU có cấu trúc
hỗ trợ việc xử lý tín hiệu số, chúng thường ược gọi là các bộ xử lý tín hiệu số (DSP
– Digital Signal Processing). Các CPU hỗ trợ mạnh cho việc xử lý hình ảnh số còn
ược gọi là các bộ xử lý ảnh (Image Processing). Để thực hiện các ứng dụng nhỏ,
cho các hệ thống nhúng các hãng phát triển các bộ vi iều khiển (MCU – Micro lOMoARcPSD| 10435767
Controller Unit), bao gồm một hệ thống vi xử lý ược óng gói trong một vi mạch
(single chip). Các bộ vi iều khiển hiện ang chiếm doanh thu cao nhất trên thị trường
linh kiện bán dẫn trên toàn thế giới.
- Các tín hiệu kết nối: Khi thực hiện các hệ thống vi xử lý cần quan tâm tới các tín
hiệu kết nối của CPU. Thông thường, do cần sử dụng các bộ ệm bên ngoài nên các
tín hiệu của CPU thường ược ghép a hợp (Multiplex), ví dụ như tín hiệu ại chỉ và
dữ liệu cùng chung một chân, tín hiệu ịa chỉ và iều khiển cùng chung một chân.
Ngoài ra, còn cần phải quan tâm tới các tín hiệu iều khiển như RD/WR, IRQ,
HOLD … ể xác ịnh ược cấu hình hoạt ộng của hệ thống.
- Tập thanh ghi: tập thanh ghi của CPU óng vai trò quan trọng trong việc lập trình
cho hệ thống bằng các lệnh hợp ngữ, mặt khác chức năng của các thanh ghi sẽ tạo
ra các kiểu hoạt ộng khác nhau khi lập trình.
- Tập lệnh: tập lệnh của CPU sử dụng thực hiện các chương trình hợp ngữ chạy trên
hệ thống. Việc sử dụng các lệnh hợp ngữ sẽ cho phép người sử dụng tác ộng sau
nhất tới cấu hình phần cứng của hệ thống, nhất là tới các thành phần giao tiếp các
thiết bị ngoại vi. Các chương trình hợp ngữ còn cho phép chương trình có dung
lượng nhỏ hơn và thực hiện nhanh hơn khi thực hiện chương trình bằng các ngôn ngữ cấp cao.
- Các chế ộ ịa chỉ: Các chế ộ ịa chỉ của CPU cho phép việc truy cập dữ liệu trong bộ
nhớ ược thực hiện theo nhiều cách khác nhau, có nghĩa là cho phép thực hiện các
kiểu biến khác nhau trong chương trình như: biến mảng, biến con trỏ, biến chuỗi ….
- Nguồn: Các chế ộ nguồn của CPU cho phép nó hoạt ộng ở những chế ộ tiêu thụ
năng lượng khác nhau. Ở nhưng thời gian không cần thiết phải thực hiện chương
trình CPU có thể chuyển qua các chế ộ tiết kiệm nguồn nhằm tiết kiệm năng lượng
trong các hệ thống di ộng.
Thành phần quan trọng thứ hai trong hệ thống là bộ nhớ bán dẫn. Bộ nhớ trong hệ
thống vi xử lý là các vi mạch số có khả năng lưu trữ các dữ liệu 0, 1. Trong hệ thống vi
xử lý bộ nhớ bán dẫn sử dụng ể lưu trữ các chương trình cung cấp cho CPU hoạt ộng,
lưu trữ các hằng và biến của chương trình, và sử dụng cho việc lưu trữ nhanh chóng các
dữ liệu tạm thời trong quá trình tính toán như ngăn xếp. Các ặc tính quan trọng của bộ
nhớ bán dẫn bao gồm: dung lượng nhớ, ộ lớn Bus dữ liệu và tốc ộ truy xuất dữ liệu.
Ngay nay, các bộ nhớ bán dẫn thường có dung lượng rất lớn lên tới hàng trăm MB/vi
mạch. Tốc ộ truy xuất dữ liệu nhanh trong khoảng vài nsec, ộ lớn bus dữ liệu thường là 1, 8 hoặc 16 bit.
Bộ nhớ bán dẫn ược chia thành hai loại chính là bộ nhớ chỉ ọc (ROM – Read Only
Memory) và bộ nhớ có thể ọc ghi ược, hay bộ nhớ truy cập ngẫu nhiên (RAM – Random lOMoARcPSD| 10435767
Access Memory). Trong hệ thống vi xử lý, khi hoạt ộng CPU chỉ có thể ọc ược dữ liệu
từ ROM nhưng có thể ọc và ghi dữ liệu với RAM, việc ghi dữ liệu vào ROM cần có các
chế ộ làm việc ặc biệt.
Dữ liệu ghi trong bộ nhớ ROM sẽ không bị mất khi mất nguồn cung cấp, do ó thông
thường bộ nhớ ROM ược sử dụng ể lưu trữ các chương trình hoặc dữ liệu không cho
phép mất khi mất nguồn. Như trong máy tính bộ nhớ ROM BIOS sử dụng lưu trữ các
chương trình iều khiển các thiết bị vào ra, hoặc keyboard ROM sử dụng lưu trữ mã phím
nhấn. Trong các hệ thống vi xử lý khác ROM ược sử dụng lưu trữ các chương trình khởi
ộng hệ thống. Bộ nhớ ROM cũng ược chia thành nhiều loại khác nhau Mask ROM, PROM, EPROM, EEPROM.
Mask ROM là loại ROM ược ghi dữ liệu ngay khi sản xuất, dữ liệu ã ược ghi sẽ
không xoá hoặc thay ổi ược, với loại ROM này khi muốn sửa chữa, thay ổi hay nâng cấp
chương trình, cần phải ặt hàng lại từ nhà sản xuất, vì thế rất bất tiện cho người sử dụng
. PROM (Programmable ROM) là loại ROM có thể lập trình ược một lần, do trong ma
trận nhớ các bit ược lưu trữ dưới dạng các cầu chì, nên khi ã lập trình làm ứt các cầu chì
sẽ không thể nối lại ược nữa. PROM giúp người sử dụng có thể tự sửa chữa thay ổi hay
nâng cấp các chương trình, tuy nhiên mỗi lần dữ liệu thay ổi cần phải sử dụng một vi
mạch mới nên sẽ làm tăng chi phí hệ thống. Để khắc phục EPROM ra ời với các bit trong
ma trận nhớ ược thực hiện bằng các kênh dẫn MOSFET, ể ghi ROM có thể dùng iện
trường cao ẩy các iện tử tự do của kênh dẫn về cực cổng làm kênh dẫn không dẫn iện.
Để kênh dẫn dẫn iện trở lại người ta cung cấp năng lượng cho các iện tử tự do bằng tia
cực tím, ể các iện tử tự do có thể vượt qua lớp ô xit silic cách iện mỏng quay về kênh
dẫn. Với nguyên lý hoạt ộng này bộ nhớ EPROM có thể lập trình và xoá nhiều lần rất
tiện dụng cho người sử dụng khi thực hiện các hệ thống vi xử lý. EEPROM là loại bộ
nhớ ROM có thể lập trình ược nhiều lần, nhưng các iện tử tự do trên kênh dẫn bị ẩy qua
cực công và quay về ề bằng năng lượng iện trường lớn.
Bộ nhớ RAM cũng ược chia thành hai loại chính là RAM tĩnh (SRAM – Static RAM)
và RAM ộng (DRAM – Dinamic RAM). SRAM lưu trữ các các bit nhớ bằng các Flip –
Flop nên dữ liệu sẽ không bị mất khi vi mạch nhớ còn ược cấp nguồn. Các SRAM có
thời gian truy xuất nhanh, khoảng 80 – 3 ns, tuy nhiên chúng tiêu thụ công suất lớn và
có giá thành cao, vì vậy SRAM chỉ ược sử dụng cho các hệ thống nhỏ hoặc dùng làm bộ
nhớ ệm trong các hệ thống lớn. Bộ nhớ ệm sẽ truyền khối dữ liệu với bộ nhớ chính và
cung cấp cho CPU khi có yêu cầu. Bộ nhớ DRAM lưu trữ các bit nhớ bằng các tụ iện
nhỏ, ể có thể lưu trữ ược một dung lượng lớn trên một diện tích nhỏ thì các tụ iện càng
nhỏ càng tốt. Do việc chế tạo các tụ bán dẫn khá ơn giản nên DRAM có giá thành rẻ, vì
vậy chúng ược sử dụng làm bộ nhớ chính trong các hệ thống lớn như máy tính cá nhân
hay máy chủ. Nhưng do các tụ iện nhỏ nên lượng iện tích lưu trữ sẽ ít và chúng dễ dàng lOMoARcPSD| 10435767
bị rò qua các mạch ọc ghi dữ liệu. Thông thường dữ liệu mức 1 trong DRAM chỉ lưu trữ
ược trong khoảng 10 – 20 msec, do ó ể sử dụng DRAM người ta thiết kế các bộ iều khiển
DRAM ể nạp lại (làm tươi lại) các bit 1 sau khoảng thời gian 7.5 msec. Vì phải làm có
chu kỳ làm tươi nên việc sử dụng DRAM khá phức tạp, tốc ộ truy xuất thấp từ 50 – 70
nsec. Ngày nay các vi mạch DRAM ược chế tạo với dung lượng khá lớn, có thể lên tới 1 Gbyte/vi mạch.
Ngoài các loại bộ nhớ chính nêu trên hiện này còn có một số loại bộ nhớ bán dẫn khác như:
- Flash Memory: là loại EEPROM có thể cho phép ghi và xoá dữ liệu theo từng khối,
giá thành của Flash rẻ hơn nhiều so với EEPROM thông thường do ó hiện nay
Flash ang ược ứng dụng nhiều trong các hệ thống vi xử lý như: làm ROM BIOS
cho máy tính cá nhân, bộ nhớ ngoài truy cập qua USB hoặc thẻ nhớ (Stick
memory), làm ổ cứng cho các máy tính xách tay với ộ chống sốc cao, sử dụng cho
thiết bị trợ giúp cá nhân số (PDA – Personal Digital Assistants), các thiết bị âm
thanh hay máy ảnh, máy quay phim kỹ tuhật số. Khi sử dụng làm các thiết bị nhớ
ngoài di ộng như Flash USB hay thẻ nhớ, các bộ nhớ Flask còn có ộ bền cao do
không bị hư hỏng do sốc, có thể cất giữ ở các iều kiện môi trường khắc nhiệt về
nhiệt ộ, áp suất, ộ ẩm.
- EEPROM nối tiếp (Serial EEPROM): là loại bộ nhớ EEPROM ọc ghi dữ liệu nối
tiếp, thông thường loại bộ nhớ này sử dụng các giao tiếp nối tiếp: I2C, SPI,
Microwire, UNI/O hay 1- wire. Loại bộ nhớ này thường sử dụng ể lưu các dữ liệu
cần thiết khi mất nguồn như các bảng tham số hoạt ộng (parameter), hay các bảng
cấu hình hoạt ộng cho hệ thống vi xử lý.
- Dual port RAM, Quad Port RAM: là các loại bộ nhớ RAM cho phép nhiều chu kỳ
truy cập ồng thời (tương ứng hai và bốn chu kỳ truy cập ồng thời). Thông thường
công nghệ RAM này sử dụng ể thực hiện các thanh ghi trong CPU, cho phép tăng
tốc ộ truy cập dữ liệu.
- RAMDAC (Random Acess Memory Digital to Analogue Converter) là chip nhớ
kết hợp giữa RAM và bộ biến ổi số tương tự. Loại bộ nhớ này thường ược sử dụng
trong các card màn hình của máy tính, chúng thường ược sử dụng ể chứa bảng màu
ể tạo ra mức iện áp tương tự tuỳ theo màu sắc muốn hiển thị trên màn hình màu.
Dữ liệu màu cung cấp từ CPU ược sử dụng làm ịa chỉ cung cấp cho RAMDAC, dữ
liệu số trong DAC sẽ ược truy cập và biến ổi thành mức iện áp ngõ ra của
RAMDAC, mức tín hiệu này sẽ dùng ể lái một trong ba súng iện tử, tương ứng với
một trong ba màu ỏ, lục, lam của màn hình CRT. lOMoARcPSD| 10435767
- PCMCIA – (Personal Computer Memory Card International Association) là cổng
thiết kế cho việc giao tiếp với các loại thể nhớ SRAM hoặc Flash. Sau này, cổng
PCMCIA ược sử dụng cho các ứng dụng giao tiếp với các thiết bị vào ra như Modem, Wireless ….
Khối cuối cùng trong hệ thống trung tâm là các bộ iều khiển (Controller). Các bộ iều
khiển có nhiệm vụ iều khiển các tính năng ặc biệt nhằm nâng cao hiệu năng của hệ thống.
Trong một hệ thống vi xử lý kinh iển thông thường có các bộ iều khiển như: bộ iều khiển
Bus (Bus controller), bộ iều khiển ngắt, bộ iều khiển thâm nhập trực tiếp bộ nhớ (DMAC
– Direct Memory Acess Controller), bộ ịnh thời (PIT- Programmable Interval Timer),
Mạch quản lý bộ nhớ ….
Bộ iều khiển BUS thường nhận các tín hiệu trạng thái từ CPU ể tạo ra các tín hiệu
iều khiển bộ nhớ và vào ra như: các tín hiệu ọc ghi bộ nhớ, ọc ghi vào ra, tín hiệu chấp
nhận yêu cầu ngắt. Ví dụ trong hệ thống 8088 sử dụng bộ iều khiển BUS 8288.
Bộ iều khiển ngắt sử dụng cho việc iều khiển chế ộ ngắt của hệ thống. Khi có yêu
cầu hoạt ộng trước hết các thiết bị vào ra gửi tới bộ iều khiển ngắt yêu cầu ngắt. Bộ iều
khiển ngắt sẽ có nhiều ngõ vào nhận nhiều yêu cầu ngắt từ các vào ra khác nhau. Bộ iều
khiển ngắt có thể ược lập trình trước thực hiện các chức năng như: xử lý ưu tiên cho các
nguồn yêu cầu ngắt, cho phép hoặc cấm các nguồn yêu cầu ngắt, tạo vector ngắt riêng
biệt cho các nguồn ngắt …. Sau khi ã xử lý các yêu cầu ngắt, bộ iều khiển ngắt sẽ gửi
yêu cầu ngắt tới CPU, và nếu ược CPU chấp nhận nó sẽ gửi tín hiệu chấp nhận tới thiết
bị có yêu cầu, kèm theo vector ngắt của thiết bị ó ể CPU có thể tìm và thực hiện chương
trình ngắt tương ứng phục vụ hoạt ộng của thiết bị.
Bộ iều khiển thâm nhập trực tiếp bộ nhớ (DMAC – Direct Memory Access
Controller) cho phép chế ộ truyền dữ liệu trực tiếp giữa thiết bị vào ra và bộ nhớ bán
dẫn. Các ngoại vi thực hiện truyền dữ liệu trực tiếp với bộ nhớ thông thường là các bộ
nhớ ngoài (Đĩa cứng, ĩa mềm…) hoặc các thiết bị mạng. DMAC cũng có nhiều ngõ vào
ể nhận các yêu cầu DMA từ nhiều kênh ngoại vi khác nhau. Nó cũng ược lập trình từ
CPU ể thực hiện các chức năng như: xử lý ưu tiên, cho phép hoặc cấm các kênh DMA,
nhập ịa chỉ của bộ nhớ và vào ra, cũng như ộ lớn khối dữ liệu sẽ truyền trong chu kỳ
DMA. Khi có các yêu cầu DMA từ thiết bị ngoại vi, sau khi xử lý theo tính năng ã ược
lập trình, DMAC sẽ gửi yêu cầu tới CPU (bằng tín hiệu HOLD). Nếu CPU chấp nhận
yêu cầu này nó sẽ dừng hoạt ộng, treo các BUS lên trạng thái trở kháng cao và trả lời
DMAC bằng tín hiệu chấp nhận (HOLDA – Hold Acknowledge). Khi ó DMAC sẽ cung
cấp các tín hiệu ịa chỉ ổng thời cho bộ nhớ và vào ra, cùng với tín hiệu ọc bộ nhớ – ghi
vào ra, hoặc ọc vào ra – ghi bộ nhớ một cách ồng thời, ể truyền dữ liệu giữa bộ nhớ và
vào ra chỉ trong một chu kỳ. Khi một dữ liệu ược ọc ghi xong, bộ ếm ịa chỉ của DMAC lOMoARcPSD| 10435767
sẽ tự ộng tăng lên ể chuẩn bị thực hiện việc ọc ghi dữ liệu kế tiếp trong khối. Khi khối
dữ liệu ã truyền xong, tín hiệu yêu cầu từ DMAC sẽ hết tích cực và CPU sẽ iều khiển
hoạt ộng của hệ thống trở lại.
Bộ ịnh thời có thể lập trình (PIT – Programmable Interval Timer): là vi mạch có thể
lập trình từ CPU ể tạo ra các khoảng thời gian ể ịnh thời cho hoạt ộng nào ó của hệ thống.
Việc xác ịnh các khoảng thời gian sẽ ược tính toán và ghi vào các thanh ghi của PIT, sau
khi ược cho phép chạy, PIT thực hiện việc ếm thời gian và thông báo cho CPU khi thời gian kết thúc.
Bộ iều khiển RAM ộng, nhận ịa chỉ từ CPU sau ó cung cấp theo ịa chỉ hàng và cột
tới vùng nhớ RAM ộng ể truy cập dữ liệu theo yêu cầu của CPU. Ngoài ra các bộ iều
khiển RAM ộng còn tự ộng thực hiện các chu kỳ làm tươi theo quy ịnh cho vùng nhớ RAM ộng mà nó quản lý.
Đơn vị quản lý bộ nhớ (MMU – Memory Management Unit) là vi mạch xử lý việc
truy cập bộ nhớ yêu cầu từ CPU. Nó có chức năng chuyển ổi các ịa chỉ ảo cung cấp từ
CPU trong các chế ộ khác nhau thành ịa chỉ vật lý ể truy cập bộ nhớ.
Ngoài các bộ iều khiển thông dụng kể trên, trong một số hệ thống vi xử lý còn có các
bộ iều khiển ặc biệt khác.
Các khối mạch của hệ thống trung tâm ược kết nối với nhau bằng hệ thống các ường
dây dẫn iện, chúng ược chia thành ba nhóm chính gọi là Bus dữ liệu, Bus ịa chỉ và Bus iều khiển.
Bus dữ liệu là các ường dây sử dụng cho việc truyền dữ liệu giữa các khối, dữ liệu
này bao gồm các mã lệnh truyền từ bộ nhớ tới CPU, các hằng biến của chương trình
truyền giữa CPU và bộ nhớ, các dữ liệu iều khiển truyền giữa CPU và thiết bị ngoại vi.
Như vậy bus dữ liệu là Bus hai chiều, số lượng ường dây trên bus dữ liệu sẽ xác ịnh số
bit có thể truyền ồng thời một lần. Thông thường CPU có bao nhiêu bit sẽ có bấy nhiêu
ường trên bus dữ liệu, các ường này ược nối từ CPU tới tất cả các vi mạch nhớ các bộ
iều khiển và qua các bộ ệm tới tất cả các vào ra.
CPU có một bus ịa chỉ duy nhất ể truyền dữ liệu giữa CPU với tất cả các bộ nhớ và
vào ra và các bộ iều khiển, do ó khi một dữ liệu trên bus cần phải xác ịnh nó ược truyền
giữa CPU và vị trí nào trên hệ thống. Để xác ịnh ược các vị trí này hệ thống sử dụng bus
ịa chỉ. Bus ịa chỉ là bus một chiều có nhiều ường, ịa chỉ có thể tạo ra từ CPU, DMAC,
hay các bộ iều khiển khác cung cấp tới các bộ nhớ hay các vi mạch vào ra ể cho phép
một vị trí duy nhất trong hệ thống truyền dữ liệu. Nếu bus ịa chỉ có N ường, hệ thống sẽ
quản lý ược 2N ịa chỉ bộ nhớ, và kèm theo tín hiệu iều khiển chọn bộ nhớ hoặc vào ra hệ
thống sẽ quản lý thêm ược cực ại 2N ịa chỉ vào ra.
Bus iều khiển cung cấp nhiều tín hiệu iều khiển với các tính năng khác nhau, ể xác
ịnh các chế ộ hoạt ộng của hệ thống. Trong bus ịa chỉ có nhưng tín hiệu một chiều từ lOMoARcPSD| 10435767
CPU cấp ra, hoặc CPU nhận vào, có những tín hiệu cấp từ các bộ iều khiển, từ bộ nhớ hoặc từ vào ra.
Một số tín hiệu iều khiển iển hình trong hệ thống vi xử lý như:
- MEMRD (Memory Read): là tín hiệu từ CPU hoặc bộ iều khiển Bus cung cấp tới
bộ nhớ yêu cầu bộ nhớ cung cấp dữ liệu ể CPU lấy vào bên trong nó.
- MEMWR (Memory Write): là tín hiệu từ CPU hoặc bộ iều khiển Bus cung cấp tới
bộ nhớ yêu cầu bộ nhớ nhận dữ liệu ghi vào bên trong nó.
- IORD (Input Output Read), IOWR (Input Output Write): là tín hiệu yêu cầu ọc ghi vào ra.
- INTR (Interrupt Request): là tín hiệu yêu cầu ngắt từ bộ iều khiển ngắt hoặc từ thiết
bị vào ra cung cấp tới CPU.
- INTA (Interrupt Acknowledge): Tín hiệu chấp nhận yêu cầu ngắt từ CPU trả lời
cho thiết bị ngoại vi hoặc bộ iều khiển ngắt.
- HOLD: tín hiệu yêu cầu DMA ược DMAC gửi tới CPU yêu cầu CPU ngưng hoạt
ộng ể DMAC iều khiển quá trình truyền dữ liệu trực tiếp giữa bộ nhớ và cổng vào ra.
- HOLDA (Hold Acknowledge): tín hiệu chấp nhận yêu cầu DMA từ CPU trả lời cho bộ iều khiển DMA. - …
1.1.1.2 Thiết bị ngoại vi: Thiết bị vào, Thiết bị ra, Thiết bị vào/ra, Thiết bị lưu trữ.
Các thiết bị ngoại vi ược nối tới các cổng vào ra trong hệ vi xử lý, theo chức năng
chúng có thể chia thành hai loại chính: Các thiết bị sử dụng ể giao tiếp giữa hệ thống với
người sử dụng như bàn phím, màn hình, con chuột …. Để người sử dụng có thể tham
gia vào quá trình iều khiển hệ thống hoặc nhận các trạng thái kết quả từ hệ thống. Ngoài
ra còn có các thiết bị chấp hành sự iều khiển của hệ thống vi xử lý, ể thực hiện một công
việc nào ó như máy in ể in văn bản, máy vẽ ể in bản ồ, hay các hệ thống máy móc sản xuất khác.
Theo chiều truyền dữ liệu các thiết bị ngoại vi có thể chia thành: các thiết bị chỉ
truyền dữ liệu cho hệ thống, còn gọi là các thiết bị vào, ví dụ các phím nhấn. Các thiết
bị chỉ nhận dữ liệu từ hệ thống, còn gọi là thiết bị ra, ví dụ như các bộ hiển thị led ơn
hay led bảy oạn. Tuy nhiên, hiện nay a số các thiết bị ngoại vi là các hệ thống vi xử lý
chuyên dụng, còn gọi là các hệ thống nhúng (embed system), các hệ thống này thường
truyền dữ liệu với hệ thống chính bằng các cổng vào ra, và chúng thường truyền dữ liệu
hai chiều gọi là các thiết bị vừa vào vừa ra. Ví dụ trong hệ thống máy tính, bàn phím là lOMoARcPSD| 10435767
một hệ thống vi xử lý có nhiệm vụ nhận mã từ ma trận phím nhấn tạo ra mã quét phím
(scan code) gởi tới cổng bàn phím, ngoài ra các phím chưa ược ọc sẽ nằm trong bộ ệm
bàn phím. Máy in giao tiếp với máy tính bằng ba ịa chỉ, một ịa chỉ cho dữ liệu, một ịa
chỉ thông báo trạng thái và một cổng ể iều khiển các tính năng máy in….
Ngoài ra các thiết bị giao tiếp với máy tính còn có các thiết bị nhớ ngoài. Ổ cứng
(HDD), ổ mềm (FDD), ổ quang gắn cùng khối với hộp máy tính là các thiết bị ngoại vi
có nhiệm vụ lưu trữ dữ liệu. Các thiết bị nhớ ngoài như Flash disk, HDD box, thẻ nhớ
cũng là các thiết bị ngoại vi lưu trữ.
Một số các thiết bị vào ra cơ bản của hệ thống máy tính kinh iển có thể kể ến như:
- Các thiết bị vào cơ bản: Bàn phím (keyboard), màn hình cảm ứng (touch screen),
tấm nhấn chạm (keypad), Chuột (mouse), bi vô hướng (track ball), chuột chạm
(touch pad), Thiết bị vào ồ hoạ (Graphic input): camera, máy quét (scanner), ầu ọc
mã vạch (barcode reader), Ngõ vào âm thanh (Microphone), Giải iều chế tín hiệu
(Demodulator trong modem), Cảm biến (sensor), bộ biến ổi tín hiệu (transducer),
bộ truyền tín hiệu (transmitter), Các thiết bị vào số khác: Bộ số hoá (Digitizer), bút
quang (Light pen), cần trò chơi (joytick), ầu ọc vân tay (finger reader).
- Các thiết bị ra cơ bản: Màn hình, bộ hiển thị iểm, Led 7 oạn, LCD, ma trận led,
CRT, máy in (kim, phun, laser, thermal transfer, ploter), loa (speaker, horn …),
iều chế tín hiệu (modulator trong modem), bộ truyền ộng iện (Actuator), ộng cơ
(motor), relay, khởi ộng từ (contactor), van (valve) …
- Các thiết bị lưu trữ: Thiết bị lưu trữ từ (Băng từ, FDD, HDD, RAID), thiết bị lưu
trữ quang (CD, DVD, Magnetic optic), thiết bị nhớ bán dẫn (Flash chip, PCMCIA card).
1.1.1.3 Kỹ thuật ghép nối
Do CPU thực hiện việc iều khiển toàn bộ hoạt ộng của hệ thống, nên thường ược
thực hiện với công nghệ cao ể có tốc ộ hoạt ộng nhanh. Mặt khác, cấu trúc kết nối hệ
thống trung tâm thực hiện theo Bus. Còn các thiết bị ngoại vi thì tuỳ theo chức năng sử
dụng trong thực tế, sẽ ược thiết kế khác nhau ảm bảo sao cho giá thành hạ, sự tiện dụng
cao. Do ó giữa hệ thống trung tâm và thiết bị ngoại vi thường có sự khác nhau về: mức
tín hiệu, tốc ộ truyền thông tin, kiểu truyền thông tin …. Như vậy, ể các thiết bị ngoại vi
có thể làm việc ược với hệ thống, cần có giao tiếp (Interface) giữa chúng với hệ thống
trung tâm. Các giao tiếp ược thực hiện với hai thành phần chính là: phần cứng là các
cổng vào ra thực hiện bằng các vi mạch chuyên dụng, và phần mềm xây dựng ể thực
hiện các khung truyền dữ liệu tương ứng giữa hai bên.
Thông thường phần cứng trong một hệ thống vi xử lý sẽ bao gồm các loại như: lOMoARcPSD| 10435767
- Cổng vào ra song song: dữ liệu ường truyền ồng thời trên nhiều ường dây từ hệ
thống tới các thiết bị ngoại vi. Các vi mạch phần cứng của các cổng song song sẽ
mở ể ồng thời các ường dây dữ liệu của hệ thống trung tâm kết nối với thiết bị
ngoại vi. Do phải sử dụng nhiều ường dây ồng thời nên các cổng vào ra song song
ngày càng ít ược sử dụng, nhất là khi cần truyền dữ liệu qua khoảng các lớn. Một
số cổng vào ra song song tiêu biểu như: LPT, IDE, ….
- Cổng vào ra nối tiếp: theo một chiều truyền dữ liệu sẽ ược truyền tuần tự trên một
ường dây dẫn iện. Cổng truyền này có các ưu iểm như: tiết kiệm dây dẫn, không bị
nhiễu xuyên kênh giữa ường truyền các bit như cổng song song. Với các ưu iển
trên cổng nối tiếp hiện nay ang ược phát triển khá mạnh với các cơ chế truyền khác
nhau, các cấu hình phần cứng khác nhau. Một số cổng truyền nối tiếp thường thấy
như: cổng COM, cổng USB, cổng IEEE 1394, cổng SCSI ….
- Cổng giao tiếp tương tự: cổng này dùng ể giao tiếp với các thiết bị cung cấp tín
hiệu tương tự. Để nhận các tín hiệu tương tự vào hệ thống cần phải có bộ biến ổi
tương tự sang số (ADC – Analogue to Digital Converter), thông thường các ADC
biến ổi một mức tín hiệu tương tự thành 8, 12 hoặc 16 bit dữ liệu số cung cấp cho
CPU. Để cung cấp các tín hiệu tương tự hệ thống sử dụng các bộ biến ổi số sang
tương tự (DAC – Digital to Analogue Converter). Các giao tiếp tương tự phổ biến
như: Micro phone, loa (Speaker), nhiệt ộ CPU, …
Ngoài các vi mạch thực hiện các chức năng cổng vào ra, các cổng vào ra còn có thể
thực hiện bằng các hệ thống vi xử lý chuyên dụng còn gọi là các hệ thống nhúng. Đối
với các hệ thống máy tính, phần cứng vào ra còn có thể thực hiện bằng các vi mạch phần
cứng cắm vào các khe cắm trên bo mạch chính như: ISA, PCI, AGP, MC ….
Phần mềm iều khiển giao tiếp có thực hiện bằng các chương trình truy cập trực tiếp
vào các vi mạch phần cứng cổng vào ra. Các chương trình iều khiển cổng vào ra trên hệ
thống máy tính, hoặc các hệ thống vi xử lý chuyên dụng, cũng có thể khai thác các tài
nguyên phần mềm sẵn có trong hệ thống như: các hàm iều khiển thiết bị trong ROM
BIOS, các hàm iều khiển thiết bị của hệ iều hành DOS, các hàm iều khiển thiết bị tương
thích trong WINDOWS như các SPI và API. Ngoài ra còn có thể sử dụng các chương
trình chuyên dụng của các hãng chuyên cung cấp phần cứng và phần mềm iều khiển thiết
bị như: Siemens, Omron, ABB, …
1.1.2 Kiến trúc máy tính hiệu năng cao
Sơ ồ khối một máy tính hiện ại hiệu năng cao mô tả trên hình 1.2. Trên hình vẽ CPU
kết nối với bộ nhớ và vi mạch iều khiển bus PCI (PCI brigde) bằng bus nội (local bus).
Thông thường bộ nhớ ệm L1 (SRAM) ược chế tạo sẵn trong CPU, dữ liệu từ bộ nhớ
chính (DRAM) sẽ ược bộ iều khiển quản lý bộ nhớ (MMU), iều khiển truyền khối với lOMoARcPSD| 10435767
bộ nhớ ệm L2 và bộ nhớ ệm L1, CPU sẽ chỉ thao tác ọc ghi dữ liệu trên các bộ nhớ ệm
mà không ọc trực tiếp từ bộ nhớ chính.
Hình 1.2: Sơ ồ khối máy tính hiện ại
Bộ iều khiển bus PCI, ệm các tín hiệu từ bus nội và tạo thêm các tín hiệu cần thiết ể
giao tiếp với các thiết bị tốc ộ cao như: Bo mạch giao tiếp màn hình, giao tiếp ổ cứng
chuẩn IDE, bo mạch giao tiếp mạng nội bộ, bo mạch âm thanh, giao tiếp cổng USB ….
Ngoài ra trên bo mạch chính còn chừa sẵn các khe cắm, ể có thể cắm thêm các bo mạch
giao tiếp với các thiết bị ngoại vi khác. Để giao tiếp với các thiết bị có tốc ộ thấp, tiêu
thụ dòng lớn và ảm bảo giá thành hạ cần sử dụng vi mạch chuyển ổi từ tín hiệu bus PCI
thành tín hiệu bus ISA. Các thiết bị giao tiếp với bus này có thể kể ến như: vi mạch giao
tiếp máy in (LPT ports), vi mạch giao tiếp nối tiếp (COM ports hay Async Ports), vi
mạch giao tiếp con chuột, vi mạch giao tiếp cổng ĩa mềm, vi mạch giao tiếp bàn phím
và các khe cắm ể mở rộng khi cần thiết. Tuy nhiên trên bo mạch chủ các máy tính hiện
nay không còn sử dụng các khe cắm mở rộng cho bus ISA. lOMoARcPSD| 10435767
Hình 1.3: Sơ ồ khối máy tính Pentium
Hình 1.4: Sơ ồ khối máy tính Pentium 4
Hình 1.3 mô tả sơ ồ khối máy tính Pentium, trong cấu hình này bộ nhớ ệm L2 kết nối
với CPU qua bus riêng (cahe bus), bộ nhớ chính giao tiếp với CPU qua PCI brigde. lOMoARcPSD| 10435767
Trong sơ ồ có thêm vi mạch giao tiếp cổng SCSI, sử dụng cho việc giao tiếp với các ổ
cứng loại mới và các thiết bị chế tạo theo chuẩn này. Bàn phím, con chuột, máy in và
nhiều thiết bị khác ang dần chuyển ổi qua chuẩn giao tiếp USB.
Với cấu hình Pentium 4 việc iều khiển các loại bus ều ược tích hợp trong một vi mạch
(bridge chip). Trong hệ thống pentium 4 xuất hiện thêm bus AGP sử dụng cho giao tiếp
bo mạch màn hình tốc ộ cao, hỗ trợ mạnh cho video. Bus ATA giao tiếp với vi mạch
giao tiếp ATA, sử dụng giao tiếp với các ổ cứng và ổ DVD loại này. Bộ nhớ ệm L2 ược
tích hợp ngay trong CPU nên cache bus cũng nằm trong CPU.
Ngoài ra còn có một số bus chuyên dụng khác như VESA bus sử dụng cho bo mạch
màn hình, bus MCA ể mở rộng thiết bị, FireWire bus sử dụng cho thiết bị nội bộ hoặc
mở rộng …. Bảng 1.1 cho biết ặc tính kỹ thuật của một số bus thông dụng.
Bảng 1.1: Đặc tính kỹ thuật một số bus thông dụng 1.1.2.1 Bus nội bộ
Bus nội còn ược gọi là bus hệ thống (system bus), bus chủ (hoist bus) hay bus bộ vi
xử lý (processor bus). Bus nội bao gồm những ường kết nối giữa bộ vi xử lý với khối bộ
nhớ chính (main memory) và bộ iều khiển bus PCI (PCI brigde). Các ường tín hiệu trên
bus này, ược nối trực tiếp từ CPU tới các vi mạch nhớ và vi mạch iều khiển PCI, mà
không qua các bộ ệm bus. Độ lớn của bus tuỳ theo hệ thống có thể lên tới 64 bit ịa chỉ
và 64 bit dữ liệu, tốc ộ truyền lên tới 32 Mbps.
Ở các hệ thống hiện ại, bộ iều khiển bộ nhớ (MMU) ược tích hợp ngay trong CPU
do ó bus này ược gọi là bus bộ nhớ (memory bus), nối trực tiếp các tín hiệu từ CPU tới
các vi mạch nhớ RAM ộng và không sử dụng nối tới bộ iều khiển PCI.
1.1.2.2 Bus tốc ộ cao
Bus tốc ộ cao hay còn gọi là bus kết nối các thiết bị ngoại vi (PCI – Peripheral lOMoARcPSD| 10435767
Componant Interconnect), là bus do PCI brigde cung cấp là bus chính ể kết nối các thiết
bị phần cứng vào một hệ thống vi xử lý. Trong máy tính, các thiết bị có thể kết nối thông
qua các vi mạch phần cứng nối ghép PCI nằm ngay trên bo mạch chính, hoặc bằng các
bo mạch giao tiếp qua khe cắm PCI.
Như trong bảng 1.1, bus PCI ã ược phát triển qua nhiều thế hệ, tốc ộ truyền dữ liệu
tuỳ thuộc vào từng thế hệ có thể từ 132 MBps tới 1GBps, có kiểm tra chẵn lẻ cho ịa chỉ
và dữ liệu. Các tín hiệu iều khiển ược thiết kế ể chương trình phần mềm có thể tự nhận
dạng các thiết bị phần cứng cắm vào hệ thống, thực hiện tính năng cắm là chạy (Plus
and Play). Bus PCI ược sử dụng cho khá nhiều các hệ thống máy tính chuẩn như IBM,
Dec Alpha, Power PC, Spark ….
1.1.2.3 Bus mở rộng
Bus mở rộng hay còn ược gọi là bus chuẩn (standard bus) hay bus vào ra (I/O bus) là
bus ược thiết kế cho các thiết bị hoạt ộng với tốc ộ thấp. Các thiết bị cũng có thể giao
tiếp thông qua các vi mạch nằm ngay trên bo mạch chính, hoặc qua các bo mạch giao tiếp trên các khe cắm.
Các bus mở rộng thực tế bao gồm: bus ISA ược thiết kế bởi IBM năm 1981, vào năm
1983 nó trở thành bus mở rộng cho máy tính PC XT, năm 1984 trở thành bus mở rộng
16 bit cho máy tính IBM AT và năm 1988 ược mở rộng thành chuần EISA với
32 bit. Năm 1987, IBM còn phát triển bus mở rộng MCA (Micro Channel Architecture)
với tốc ộ cao hơn, tuy nhiên ây là một chuẩn óng không ược công bố ể sử dụng cho người sử dụng.
1.2 HOẠT ĐỘNG CỦA HỆ THỐNG
1.2.1 Lưu ồ tổng quát
Hoạt ộng của hệ thống ược thực hiện bằng lưu ồ tổng quát như trên hình 1.5. Khi hệ
thống bắt ầu ược cấp nguồn hoặc khi hệ thống bắt ầu ược khởi ộng lại (reset). Trước hết
bộ ếm chương trình và các vector ịa chỉ hệ thống ược thiết lập lại giá trị mặc ịnh. Ngoài
ra hệ thống còn thực hiện các chương trình thiết lập khác cho qui trình reset.
Tiếp theo CPU lấy mẫu yêu cầu DMA tại ngõ vào của nó, nếu có yêu cầu DMA CPU
sẽ ngưng hoạt ộng ể quá trình DMA ược thực hiện. Khi không có yêu cầu DMA, hoặc
khi DMA ã ược thực hiện xong, CPU kiểm tra các yêu cầu ngắt. Với các ngắt che, CPU
kiểm tra cờ che ngắt, nếu cờ che ược thiết lập ở tình trạng cho phép, hoặc ối với các ngắt
không che, CPU sẽ chuyển iều khiển qua hoạt ộng ở chương trình phục vụ ngắt. Khi
không có ngắt, hoặc khi chương trình phục vụ ngắt ã ược thực hiện xong, CPU sẽ thực
hiện các lệnh của chương trình chính. Quá trình thực hiện một lệnh bao gồm các công
việc: lấy lệnh từ bộ nhớ, giải mã lệnh ể xác ịnh công việc cần thực hiện và thực hiện lệnh lOMoARcPSD| 10435767
ó và lưu trữ kết quả của lệnh. Khi thực hiện xong một lệnh, quá trình hoạt ộng của CPU
sẽ ược lặp lại từ bước kiểm tra yêu cầu DMA.
1.2.2 Thiết lập lại hệ thống - Reset
Quá trình thiết lập lại hệ thống (reset) sẽ xảy ra do các nguyên nhân sau: Hệ thống
ược cấp nguồn lần ầu, nguồn hệ thống bị ngưng cung cấp sau một khoảng thời gian sau
ó ược cung cấp trở lại, khi reset cứng hệ thống bằng cách cung cấp tín hiệu xung tới ngõ
vào reset của CPU, hoặc khi khởi ộng lại bằng phần mềm.
Khi xảy ra reset, thông thường CPU sẽ thực hiện một chương trình ghi sẵn trong bộ
nhớ ROM, tuỳ theo hệ thống cụ thể chương trình này có thể ược gọi là: chương trình
giám sát (monitoring), phần dẻo (firm ware) hoặc trên máy tính nó ược gọi là chương
trình iều khiển vào ra cơ sở của hệ thống (BIOS – Base Input Output System). Chương
trình này sẽ thực hiện quy trình tự kiểm tra khi bật nguồn (POST – Power On Self Test).
Hình 1.5: Lưu ồ tổng quát hoạt ộng của hệ thống vi xử lý
Qui trình POST thường thực hiện các công việc như: -
Xác nhận nguyên nhân gây ra reset ể thực hiện các quy trình xử lý thích hợp. -
Tìm kiếm và kiểm tra dung lượng các loại bộ nhớ của hệ thống trung tâm, thông
báo kết quả kiểm tra và lỗi. lOMoARcPSD| 10435767 -
Tìm và chạy các chương trình khởi tạo các tham số hoạt ộng cho các vi mạch
iều khiển bus, các bộ iều khiển (controller), các vi mạch iều khiển các cổng vào
ra và các thiết bị trong hệ thống. -
Tìm nạp hệ iều hành từ bộ nhớ ngoài và chuyển iều khiển hệ thống cho hệ iều hành.
1.2.3 Lấy lệnh và thực hiện lệnh
Hệ thống vi xử lý hoạt ộng bằng cách thực hiện các chương trình. Các chương trình
là tập hợp các lệnh ược sắp xếp theo một giải thuật hợp lý ể thực hiện một nhiệm vụ nào
ó. Thực hiện một lệnh có nghĩa là CPU thực hiện một chức năng xử lý cơ bản trên các
dữ liệu nhị phân. Trước khi ược thực hiện, các chương trình phải ược chuyển vào bộ nhớ
của hệ thống trung tâm. Việc chuyển chương trình vào bộ nhớ trung tâm có thể thực hiện
bằng nhiều cách như: ghi vào các bộ nhớ ROM bằng các hệ thống ghi dữ liệu. Truyền
từ các thiết bị nhớ (HDD, CD-ROM, Flash disk …) vào vùng nhớ RAM của hệ thống
trung tâm. Truyền tới từ một hệ thống vi xử lý khác, ví dụ như truyền từ máy tính xuống PLC….
Khi hoạt ộng CPU sẽ lặp i lặp lại việc thực hiện các công việc: lấy lệnh, giải mã lệnh,
thực hiện lệnh và lưu trữ kết quả. Để lấy lệnh, CPU cần cung cấp ịa chỉ và tín hiệu iều
khiển ọc cho bộ nhớ và mã lệnh sẽ ược lấy vào trong CPU chứa vào thanh ghi lệnh (hay
hàng ợi lệnh). Địa chỉ lấy lệnh ược CPU giữ trong bộ ếm chương trình (PC – Program
Counter) và cung cấp ra bus ịa chỉ, sau khi lấy một ô nhớ lệnh PC sẽ tự ộng tăng lên 1 ể
chuẩn bị lấy vào ô nhớ kế tiếp. Khi có cơ chế chuyển iều khiển chương trình PC sẽ ược
thay ổi ể CPU lấy lệnh tại vi trí mới trong bộ nhớ.
Dữ liệu do lệnh cung cấp sẽ ược cung cấp tới các mạch iện tử phần cứng bên trong
CPU ể cho kết quả cần thiết. Các loại lệnh mà CPU thực hiện có thể chia thành ba nhóm chính là: -
Các lệnh di chuyển dữ liệu thực hiện việc di chuyển dữ liệu hai chiều giữa: các
thanh ghi bên trong CPU, giữa CPU và bộ nhớ, giữa CPU và vào ra. -
Các lệnh xử lý dữ liệu thực hiện các phép biến ổi dữ liệu nhị phân theo các hàm
số học và logic như: cộng, trừ, nhân, chia, and, or, xor, not hay quay dịch dữ liệu. -
Các lệnh iều khiển bao gồm: các lệnh nhảy, các lệnh rẽ nhánh, các lệnh chương
trình con và các lệnh iều khiển hoạt ộng của CPU. lOMoARcPSD| 10435767
1.2.4 Ngắt - Interrupt
Ngắt là cơ chế cho phép CPU ngưng thực hiện một chương trình hiện tại, ể chuyển
qua hoạt ộng với một chương trình con khác gọi là chương trình phục vụ ngắt
(ISR – Interrupt Service Routine). Trong hệ thống vi xử lý các ngắt sẽ xảy ra trong các trường hợp: -
Xảy ra lỗi khi thực hiện các lệnh của chương trình (lỗi chia cho 0, lỗi tràn số
…), quá trình ngắt ể xử lý các lỗi này thường ược gọi là các ngoại lệ (exception). -
Xảy ra lỗi phần cứng do sự hư hỏng bus hay các vi mạch iện tử trong hệ thống.
Các ngắt này thường cũng ược gọi là các ngoại lệ. -
Khi các bộ iều khiển cổng vào ra yêu cầu ược phục vụ: ở các ngắt này các cổng
vào ra khác nhau sẽ có các chương trình phục vụ riêng, và CPU cần tính
toán ại chỉ ể chuyển hoạt ộng tới chương trình ngắt thích hợp. Các ngắt này ược
gọi là các ngắt phần cứng. -
Khi chương trình chính thực hiện lệnh gọi chương trình ngắt, ngắt này thường
ược gọi là ngắt mềm.
Các ngắt phần cứng bao gồm hai loại chính là ngắt có che ược bằng phần mềm (INT
– Interrupt), và ngắt không che ược bằng phần mềm (NMI – Non Maskable
Interrupt). Với ngắt INT, khi có yêu cầu ngắt CPU sẽ kiểm cờ ngắt (IF – Interrupt Flag),
nếu cờ ngắt ược thiết lập ISR sẽ ược thực hiện, còn nếu không yêu cầu ngắt sẽ bị bỏ qua,
CPU vẫn tiếp tục hoạt ộng trên chương trình hiện tại. Đối với NMI, CPU bắt buộc phải
ngưng chương trình hiện tại ể chuyển qua ISR.
Trước khi chuyển iều khiển qua chương trình phục vụ ngắt, CPU lưu lại các thông
tin cần thiết của chương trình hiện hành bao gồm bộ ếm chương trình và các cở trạng
thái. Các thông tin này sẽ cho phép CPU tiếp tục hoạt ộng thực hiện nhiệm vụ ang bỏ
dở, của chương trình hiện hành, sau khi thực hiện xong chương trình ngắt. CPU sẽ ngưng
thực hiện chương trình ngắt phục hồi các thông tin lưu trữ ể quay về chương trình chính
khi gặp lệnh kết thúc chương trình ngắt (IRET – Interrupt Return).
1.2.5 Thâm nhập trực tiếp bộ nhớ - DMA
Trong máy tính, chu kỳ thâm nhập trực tiếp bộ nhớ (DMA – Direct Memory Access)
ể thực hiện việc truyền dữ liệu trực tiếp giữa thiết bị vào ra và bộ nhớ chính, mà không
thông qua CPU. Nếu không có DMA, khi muốn lấy một dữ liệu từ vào ra ghi vào bộ
nhớ, hoặc ngược lại từ bộ nhớ ghi tới vào ra, CPU phải thực hiện một chu kỳ ọc dữ liệu
vào bên trong nó, và một chu kỳ ghi dữ liệu từ bên trong nó ra ngoài. Công việc này sẽ
rất gây mất thời gian khi cần truyền một khối dữ liệu lớn như ọc một tập tin từ ổ cứng
vào bộ nhớ. Khi có DMA, bộ iều khiển DMA (DMAC – DMA controller) sẽ yêu cầu lOMoARcPSD| 10435767
CPU ngưng hoạt ộng, DMAC sẽ cấp ịa chỉ ồng thời hai tín hiệu ọc vào ra (IORD) và ghi
bộ nhớ (MEMWR), ể thực hiện việc ọc vào ra và ghi trực tiếp tới bộ nhớ mà không
thông qua trung gian. DMAC cũng có thể thực hiện việc ọc bộ nhớ và ghi trực tiếp tới vào ra.
DMA thường sử dụng truyền dữ liệu từ các thiết bị lưu trữ ngoài với bộ nhớ chính,
hoặc giữa bộ nhớ chính và các thiết bị vào ra truyền khối dữ liệu khác như các thiết bị mạng.
1.2.6 Các trạng thái hoạt ộng của hệ thống
Các trạng thái hoạt ộng của hệ thống vi xử lý bao gồm: ọc ghi bộ nhớ, ọc ghi vào ra,
thực hiện cuh kỳ áp ứng ngắt, thực hiện chu kỳ áp ứng DMA, trạng thái chờ và trạng thái bus rỗi.
Khi ọc bộ nhớ CPU cung cấp ịa chỉ, cấp tín hiệu ọc bộ nhớ (MEMR) và nhận dữ liệu
từ bộ nhớ vào các thanh ghi bên trong nó. Khi ghi dữ liệu, CPU cung cấp ịa chỉ, cung
cấp dữ liệu và cấp tín hiệu yêu cầu ghi bộ nhớ, dữ liệu sẽ ược lưu trữ vào ô nhớ chỉ ịnh.
Tương tự với các chu kỳ ọc ghi vào ra CPU sẽ cấp các tín hiệu yêu cầu ọc vào ra (IOR)
hoặc ghi vào ra (IOW). Tuy nhiên, các chu kỳ ọc ghi bộ nhớ và vào ra này sẽ diễn ra
trong nhiều chu kỳ xung nhịp, nếu tốc ộ CPU quá cao mà bộ nhớ và vào ra không áp
ứng kịp, thì chúng phải có trách nhiệm thông báo cho CPU biết, ể CPU chèn thêm các
trạng thái chờ vào chu kỳ ọc ghi. Hình 1.6:
Các chu kỳ ghi vào ra (a) và ghi vào ra có trạng thái chờ (b)
Hình 1.6a mô tả một chu kỳ ghi dữ liệu tới vào ra không có trạng thái chờ. Tại chu
kỳ xung nhịp thứ nhất CPU cung cấp ịa chỉ (Addr). Tới chu kỳ xung nhịp thứ 2 nó cung
cấp tín hiệu ghi vào ra (IOW xuống mức 0), và cung cấp dữ liệu ra bus (Data). Dữ liệu
và IOW sẽ ược giữ nguyên trạng thái cho ến xung nhịp thứ 4, ể hoàn tất chu kỳ ghi dữ
liệu tới vào ra trong 4 chu kỳ xung nhịp của CPU, khi tín hiệu sẵn sàng (Ready) cung lOMoARcPSD| 10435767
cấp từ vào ra luôn giữ nguyên trạng thái mức 1 trong suốt chu kỳ ghi. Trong chu kỳ ghi,
tại chu kỳ xung nhịp thứ 3, CPU sẽ kiểm tra trạng thái của ngõ vào Ready. Nếu ngõ vào
này không còn ở mức tích cực (mức 1), CPU sẽ hiểu là vào ra chưa nhận kịp dữ liệu, và
nó sẽ chèn thêm các xung nhịp chờ cho ến khi tín hiệu ready tích cực trở lại (hình 1.6b).
Ngoài các trạng thái làm việc với thế giới bên ngoài như ọc ghi bộ nhớ, ọc ghi vào ra
và DMA, khi thực hiện các lệnh xử lý ngay bên trong CPU, các tín hiệu kết nối với bên
ngoài của nó sẽ ở trạng thái không tích cực, trạng thái này ược gọi là trạng thái bus rỗi (bus idle).