1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI GIẢNG VỀ PHẦN MỀM CỦA HỆ THỐNG MÁY TÍNH ppt

12 556 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 200,2 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thanh ghi SS Stack Segment để ghi địa chỉ đoạn ngăn xếp Thanh ghi ES Extra Segment để ghi địa chỉ đoạn mở rộng + 4 thanh ghi offset để ghi địa chỉ tương đối - còn gọi là con trỏ ô trong

Trang 1

bμi giảng về phần mềm hệ thống của máy tính

1- Tài liệu tham khảo Perter Norton Nguyễn Khải

2 - Technicad reference

3 - Các mạch vi xử lý

Chương 1 giải phẫu pc

Máy gồm : Mạch vi xử lý (Microprocessor , MP)

Bộ nhớ (Memory)

Mạch tạo xung nhịp (Impulse Generator)

Mạch điều khiển ngoại vi (Periferal Control) nằm ở bảng mạch hệ

thống (Main Board)

1 - Mạch xử lý trung tâm CPU (Central Processing Unit) :

Mạch xử lí trung tâm là mạch điều khiển chính các hoạt động vào ra thông tin của máy tính

Các mạch vi xử lý 16 bit của Intel (Mỹ)

Các mạch Vi xử lý 32 bit của Intel

Mạch xử lí trung tâm quản lí thông tin thông qua các địa chỉ được xử lí thông qua bộ địa chỉ hoá

Khi thực hiện một lệnh CPU lấy lệnh từ bộ nhớ, đọc các tham số đi kèm sau lệnh, giải mã lệnh, thực hiện

lệnh và ghi kết quả

Mạch MP-8088, MP-8086 là mạch vi xử lí trung tâm thế hệ 3 đóng trong vỏ dài 40 chân, dùng

14 thanh ghi 8 bít dữ liệu, xử lí 16 bít Tần số hoạt động thấp 5-8Mhz, có khả năng địa chỉ hoá khoảng

1Mbyte

Trang 2

MP-80286 thế hệ 4 đóng trong vỏ vuông 68 chân, dùng loại thanh ghi 16 bít, tần số hoạt động là

10Mhz, có khả năng địa chỉ hoá khoảng 16Mbyte Mạch vi xử lí MP-80286 gồm 4 đơn vị sau :

- Đơn vị điều khiển Bus (BU) sinh ra các tín hiệu địa chỉ, tín hiệu số liệu, tín hiệu điều khiển

Các tín hiệu này sẽ thâm nhập vào bộ nhớ và các cổng vào ra Trong đơn vị này có một bộ nhớ đệm

6byte cho phép nhận lệnh song song trong các quá trình khác nhau

- Đơn vị lệnh (IU) nhận lệnh từ bộ nhớ đệm để đưa vào bộ giải mã lệnh, tín hiệu giải mã của lệnh

được đưa tới bộ nhớ tạm (hàng đợi lệnh) để chờ đưa vào đơn vị thực hiện

- Đơn vị thực hiện (EU) gồm có 15 thanh ghi (Register) loại 16 bit, bộ điều khiển, bộ xử lí số

học và logic ALU (Arithmetical Logical Unit) Đơn vị này thực hiện lệnh theo mã máy và gửi kết quả ra

bộ nhớ hoặc cổng (port) thông qua BUS

- Đơn vị địa chỉ (AU) có chức năng quản lí, bảo vệ bộ nhớ và chuyển địa chỉ logic thành địa chỉ

vật lí

μP80386 hoặc μP80486 là mạch vi xử lí thế hệ 5 đóng trong vỏ vuông 132 chân, dùng loại thanh

ghi 32 bít dữ liệu, tần số hoạt động trên 20 Mhz, có khả năng địa chỉ hoá tới 4 giga Byte MP80386 dùng

Bus dữ liệu 32 bit và Bus địa chỉ 32 bit

MP-80386 gồm 6 đơn vị sau :

-Đơn vị BUS

-Đơn vị nhận lệnh (Prefetch Unit)

-Đơn vị giải mã lệnh (Decode Unit)

-Đơn vị thực hiện lệnh (Execution Unit)

-Đơn vị quản lí bộ nhớ theo đoạn (Segment Unit)

-Đơn vị quản lí bộ nhớ theo trang (Page Unit)

Execution Unit Segment Unit Page Unit

Decode Unit

Prefrest Unit

BUS Unit

2 Các mạch vi xử lí đều có thể bổ trợ chức năng số học nhờ mạch đồng xử lý (Cooprocesor) họ μP80387 (phần mở rộng chức năng số học mở rộng cho xử lý tính toán với dấu phẩy động, nó thực hiện được các phép + - * / và các tính toán lượng giác) mạch μP8089 (mở rộng chức năng xử lý vào ra) Các thanh ghi -

Dịch trái/phải -

ALU

Các thanh ghi đoạn segment -

bộ chuyển đổi đoạn Segment Bộ đệm chuyển đổi -

Bộ chuyển hoá trang Bộ giải mã lệnh -

hàng đợi lệnh đã giải mã Hàng đợi lệnh -

Bộ nhận lệnh Bộ ghép nối BUS 2- Các thanh ghi (Register) : * MP-8088 có 14 thanh ghi + 4 thanh ghi đa năng

Thanh ghi AX (tổng) loại 16 bít phân thành hai nửa gọi là thanh ghi AH và AL

Thanh ghi BX (cơ sở) BH và BL

Thanh ghi CX (ô đếm) CH và CL

Thanh ghi DX (dữ liệu) DH và DL

4 thanh ghi này để lưu các toán hạng và kết quả trung gian

+ 4 thanh ghi địa chỉ đoạn :

Thanh ghi CS (Code Segment) để ghi địa chỉ đoạn mã lệnh gồm 16 bít (bít 15-0)

Thanh ghi DS (Data Segment) để ghi địa chỉ đoạn dữ liệu

Trang 3

Thanh ghi SS (Stack Segment) để ghi địa chỉ đoạn ngăn xếp

Thanh ghi ES (Extra Segment) để ghi địa chỉ đoạn mở rộng

+ 4 thanh ghi offset (để ghi địa chỉ tương đối - còn gọi là con trỏ ô trong một đoạn bộ nhớ ) Thanh ghi IP (Instruction Pointer- con trỏ lệnh) để chứa địa chỉ của ô của đoạn CS

Thanh ghi SP (Stack Pointer - con trỏ STACK) để chứa địa chỉ của ô trong đoạn SS

Thanh ghi BP (Base Pointer - con trỏ cở sở) để chứa địa chỉ của ô trong đoạn BS

Thanh ghi SI (Source Index-chỉ số nguồn) để chứa địa chỉ của nguồn dữ liệu

Thanh ghi DI (Destination Index-chỉ số đích) Để ghi địa chỉ ô đích cất dữ liệu

+ Thanh ghi cờ 16 bít Có 9 bít cờ ứng với bit 4 đến bit 15

15 11 10 9 8 7 6 5 4 3 2 1 0

OF DF IF TF SF ZF AF PF CF

CF= Carry Flag=cờ nhớ; OF=Overflow Flag=cờ tràn ô khi chia cho số 0 ; ZF=Zero Flag=cờ Zero để chỉ phép tính cho kết quả bằng 0; SF= Sign Flag= cờ dấu chỉ trạng thái dấu +/- ; PF=Parity Flag= cờ chẵn lẻ ; AF=Auxiliary Flag= cờ nhớ phụ chỉ thị số nhớ; DF=Direction Flag=cờ định hướng, tiến lùi ; IF=Interrupt Flag=cờ ngắt; TF=Trap Flag= cờ chạy từng bước)

* MP-80286 có 15 thanh ghi phân thành 4 nhóm sau :

- Nhóm thanh ghi đa năng : AX , BX , CX, DX

- Nhóm thanh ghi đoạn bộ nhớ : CS (Code Segment), DS (Data Segment), SS (Stack Segment), ES (Extra Segment)

- Nhóm thanh ghi offset (con trỏ): IP (Instruction Pointer), BP (Base Pointer) , SP (Stack Pointer) , SI (Source Index), DI (Destination Index)

- Thanh ghi cờ và thanh ghi từ trạng thái : F và MSW

* MP-80386 có 32 thanh ghi loại 32 bit phân thành các nhóm chính sau :

- 4 Thanh ghi đa năng ( General Purpose Register) : Các thanh ghi 32 bit có tên là EAX, EBX, ECX , EDX các thanh ghi này cũng có chức năng như các thanh ghi đa năng của các họ vi xử lí khác 16 bít thấp của các thanh ghi này cũng có thể thâm nhập riêng nên nó cũng có tên riêng là AX, BX, CX, DX, các thanh ghi này cũng được phân thành 2 nửa AH,AL

31 16 15 0

- 6 thanh ghi đoạn (Segment Register) : mỗi thanh ghi gồm 2 phần, đó là phần ghi địa chỉ đoạn của bộ nhớ (gọi là bộ chọn mảng) phần này thâm nhập được nên gọi là phần hở , phần thứ hai là phần ghi mô tả mảng không thâm nhập được nên gọi là phần kín Khi thanh ghi chọn mảng được thâm nhập thì thanh ghi mô tả mảng cũng được tự động nạp các thông số của mảng

31 thanh mô tả đoạn 16 15 Thanh ghi chọn đoạn 0

FS

- Các thanh ghi offset (con trỏ ô nhớ tương đối trong từng đoạn)

- 1 Thanh ghi cờ : EFLAGS sử dụng từ bit 0 đến bit 17

Trang 4

- 3 Thanh ghi điều khiển : CR0 (Control Register) chứa MSW từ bit 0-15, 6 bít điều khiển nằm

ở phần cao hơn CR2 (Control Register 2) thanh ghi này chứa địa chỉ tuyến tính của trang bộ nhớ có lỗi Thanh ghi CR3 (Ctrol Register 3) để ghi địa chỉ cơ sở của bảng danh mục trang bộ nhớ Thanh ghi CR1

để dùng cho tương lai của Intel

- 4 Thanh ghi hệ thống :

GDTR (Global Descriptor Table Register)

IDTR (Interrupt Descriptor Table Register)

TR (Task Register)

LDTR (Local Descriptor Table Register)

Trong đó hai thanh ghi GDTR và IDTR chứa 32 bít cơ sở của địa chỉ tuyến tính và 16 bít giới hạn của đoạn GDT và IDT Các đoạn GDT và IDT dùng chung cho tất cả các nhiệm vụ trong hệ thống nên nó hoàn toàn được xác định bởi 32 bit địa chỉ tuyến tính và 16 bít giới hạn

Hai thanh ghi LDTR và TR có 2 phần : đó là phần chọn đoạn bộ nhớ hệ thống và phần mô tả

đoạn hệ thống, nó cũng có phần hở và phần kín như các thanh ghi đoạn

6 thanh ghi gỡ rối kí hiệu là DR0,DR1,DR2,DR3,DR6,DR7 trong đó các thanh ghi từ DR0 -DR3 đùng để ghi 4 điểm gẫy (Break) của chương trình đang chạy, DR6 để ghi trạng thái gỡ rối , thanh ghi DR7 để điều khiển gỡ rối

- 2 thanh ghi kiểm tra RAM (Test Ram) kí hiệu là TR6 và TR7 Trong đó TR6 để ghi từ kiểm tra (Test Word) còn TR7 để ghi trạng thái kiểm tra (Status Word)

Chú thích :

AX là thanh chứa và thực hiện các phép tính, chứa kết quả

BX (gốc) dùng để chỉ ra đầu của bảng chuyển đổi trong bộ nhớ, nó còn được dùng để lưu offset

CX (đếm) dùng để đếm các quá trình xử lý lăp đi lặp lại (trong trường hợp sử dùng với lệnh LOOP, FOR NEXT , Repeat Until , While Wend)

BX (dữ liệu) Dùng để lưu tạm dữ liệu 16 bít

CS Xác định đoạn mã lệnh nào đó chứa chương trình sẽ được thực hiện

DS xác định đoạn dữ liệu là vùng bộ nhớ chứa các dữ liệu hiện thời

SS xác định đoạn chứa ngăn xếp(STACK) để quản lý các tham số và địa chỉ hiện được sử dụng trong chương trình hoạt động

ES là đoạn mở rộng lưu trữ dữ liệu bổ sung cho đoạn dữ liệu và dùng cho việc truyền dữ liệu giữa các

đoạn

IP thanh ghi con trỏ lệnh (iustruction pointer) định vị lệnh đang thực hiện đoạn mã lệnh Nó cho ta địa chỉ offset tổng đoạn mã lệnh Nó được dùng với thanh ghi CS để xác định chính xác lệnh tiếp theo được thực hiện

SP thanh ghi con trỏ ngăn xếp (Stack Pointer cho biết vị trí định ngăn xếp

BP thanh ghi gốc (con trỏ gốc) cho biết địa chỉ offset trong đoạn ngăn xếp

SI thanh ghi chỉ số nguồn (Source Index) để chỉ ra miền dữ liệu cần chuyển tới

3 - Bộ điều khiển ngắt 8259

Ngắt là tín hiệu gửi tới CPU để yêu cầu thực hiện một chức năng xử lí nào đó 8259 chặn tín hiệu

đó lại, xác định mức độ ưu tiên, phát lệnh ngắt tới CPU Khi CPU nhận đươc tín hiệu ngắt nó sẽ gọi một chương trình tương ứng trong ROM-BIOS (Gọi là Service của ROM-BIOS) Hoặc một chương trình

xử lí ngắt của DOS (Gọi là một Function của DOS) Mạch 8259 có thể xử lý 8 tín hiệu ngắt đồng thời

Ta có thể lập trình để quản lí các ngắt

4 - Bộ điều khiển DMA (Direct Memory Acess) 8237a

Để tránh bận CPU một số phần của máy có thể chuyển dữ liệu đi hoặc tới bộ nhớ một cách trực tiếp không qua CPU Bộ phận chuyển giao xử lý vào ra trực tiếp này là bộ DMA 8237a DMA có 4 kênh riêng biệt để mang dữ liệu đến từ bộ nhớ và 344 bít bộ nhớ trong để chứa dữ liệu cần chuyển AT nối 2 bộ điều khiển DMA để sử dụng

5 - Bộ tạo xung nhịp 82284a :

- Phát tần số cơ sở 14,3128 Mhz Tần số làm việc = tần số cơ sở/ hằng số nào đó Tần số làm việc của 8088 là 4,77 MHz, của 80286 là 6 Mhz, 80386 là 40MHz, 80486 có tần số làm việc là 60MHz BUS trong và bộ thời gian 8235 dùng tần số 1,193MHz

6- Bộ ghép nối thiết bị ngoại vi lâp trình được 8255

8255 dùng để nối các thiết bị ngoại vi vào BUS

7- Bộ thời gian lập trình được 8253

8253 (trong AT dùng 8254a) là bộ thời gian và bộ đếm Nhận tín hiệu từ 82284(A) và được chia tần để dùng 1,190MHz 8253 tạo âm thanh loa, đồng hồ

Trang 5

8 - Bộ điều khiển CRT 6845 Điều khiển lái tia màn hình

Gắn ở bảng bổ sung ADAPTER màn hình, có liên quan với thanh ghi trong CPU để điều khiển quét mành CRT

9- Bộ điều khiển PD765 (điều khiển đĩa)

10- BUS

BUS là con đường truyền thông tín hiệu trong các phần tử của thiết bị máy tính

BUS gồm 4 phần :- đường nguồn

- đường tín hiệu điều khiển

- đường dữ liệu

- đường địa chỉ

+ BUS địa chỉ : 20 đường cho phép 2^20 địa chỉ hoá

AT dùng tới 24 đường cho phép 2^24 địa chỉ trên 16 triệu địa chỉ

+BUS dữ liệu: 8086 dùng 16 đường

8088 BUS 8 đường (8bit)

80286 16 đường hoặc 8 đường(có bộ phận chuyển đổi)

80386 32 đường (D0-D31)

Mạch 74LS373 chuyển địa chỉ từ BUS cục bộ sang BUS hệ thống

Mạch 74LS245 để chuyển dữ liệu từ BUS cục bộ sang BUS hệ thống

Mạch 82288 để biến các tín hiệu điều khiển từ BUS cục bộ thành tín hiệu điều khiển của BUS hệ thống

11- Bộ nhớ:

+ Bộ nhớ gồm nhiều khối,mỗi khối 64K

+ Mỗi ô nhớ có 8 bít (1byte), Một từ 16 bít, Một từ kép 32 bit Một từ được nạp vào bộ nhớ theo nguyên tắc byte thấp nạp vào ô có địa chỉ thấp, byte cao nạp vào ô địa chỉ cao như vậy khi hiển thị lên màn hình ta thấy các từ bị xếp ngược : Byte thấp đứng trước Byte cao đứng sau Vơi từ kép thì từ thấp hiển thị trước, từ cao hiện sau

Ví dụ : ta có một từ 2 byte sau 12 34 thì 34 là byte thấp được hiển thị trước, 12 là byte cao được hiển thị sau nên ta thấy 34 12

Ta có 2 từ sau : 12 34 : 56 78 được xếp lần lượt từ ô nhớ thấp lên đến ô nhớ cao, nhưng khi hiển thị lên màn hình ta sẽ thấy như sau 78 56 : 34 12

+ Địa chỉ của một từ đơn hay từ kép là địa chỉ của byte thấp nhất trong từ đó vì BUS địa chỉ gồm 20 đường nên địa chỉ của mỗi ô được đánh giá bằng 20 bít nhị phân = 5 số hệ 16 nên khoảng địa chỉ hoá tối đa từ 00000→FFFFF (từ 0→1048576 ở hệ 10) ở thế hệ vi mạch mới cáp địa chỉ lên đến 32

đường nên khả năng địa chỉ hoá rất cao có thể lên tới vài trục MegaByte

+ Bộ nhớ được phân vùng theo đoạn (segment) hoặc theo từng trang 4k (page)

Phân vùng bộ nhớ theo đoạn như sau :

F0000 → ROM thường trực (ROM_BIOS, ROM basic, chương trình chẩn đoán)

E0000 →vùng ROM cartridge

D0000 → vùngROM cartridge

C0000 → vùng mở rộng BIOS(đĩa XT)

B0000 RAM màn hình thông thường (PC,XT,AT)

B0000 địa chỉ đầu RAM màn hình đơn sắc(dùng 4K ở địa chỉ đầu)

B8000 địa chỉ RAM màn hình mầu đồ thị(dùng 16K ở địa chỉ đầu)

A0000 RAM màn hình mở rộng

90000 →640K

80000 →572K

70000 →572K

60000 →448K

50000 →384K

40000 →320K

30000 →265K

20000 → 192K

10000 → RAM 128K tối đa cho PCjr

00000 → RAM 64K dành cho phần mềm hệ thống

Trang 6

+ MP-80386 có 3 loại địa chỉ : Địa chỉ Logic (ảo), địa chỉ tuyến tính, địa chỉ vật lí Địa chỉ logic gồm 2 phần đoạn: offset Trong đó địa chỉ đoạn được chỉ ra trong các thanh ghi đoạn, địa chỉ offset được chỉ ra trong các thanh ghi con trỏ (pointer) Địa chỉ offset gồm 3 phần: địa chỉ cơ sở, chỉ số và dịch chuyển ( Base, Index, Displacement) Địa chỉ tuyến tính là địa chỉ được định theo ô nhớ đầu tiên của bộ nhớ đuợc tính như sau: lấy địa chỉ đoạn dịch sang trái 4 bít rồi cộng với offset Địa chỉ vật lí là địa chỉ xuất hiện thật ở chân của MP-80386

Nguyễn Khải

Chương 2 Hoạt động vào ra của máy tính

1 - CPU Giao tiếp thế nào :

CPU Giao tiếp với các phần tử khác của hệ thống máy bằng 3 cách:

- Trao đổi trực tiếp (hoặc gián tiếp) với bộ nhớ

- Qua các cổng Tín hiệu vào ra các thiết bị đều qua cổng của nó Mỗi cổng có một địa chỉ xác định

- Qua các ngắt

a - Trao đổi bộ nhớ trực tiếp và gián tiếp :

CPU điều khiển sự truy nhập gián tiếp vào bộ nhớ thông qua các thanh ghi có trong CPU Chẳng hạn tín hiệu từ bàn phím → các thanh ghi trong 80386 → bộ nhớ

- Sự truy nhập gián tiếp vào bộ nhớ đều thông qua khâu trung gian là CPU để xử lý

- Sự truy nhập trực tiếp vào bộ nhớ là quá trình thông tin đi từ nguồn phát thông tin thẳng đến bộ nhớ thông qua khối DMA mà không cần đến CPU

Vào trực tiếp → ( CPU ) → Bộ nhớ

Vào gián tiếp → ( DMA) → Bộ nhớ

b- Cách định địa chỉ:

Địa chỉ bộ nhớ gồm 2 phần :

- Địa chỉ đoạn (địa chỉ đầu của mỗi đoạn 64K)

- Địa chỉ offset (địa chỉ tương đối của ô nhớ trong mỗi đoạn )

- Địa chỉ đoạn gồm 16 bít

- Địa chỉ tương đối (offset) cũng gồm 16 bít

Kết hợp 2 địa chỉ đoạn và offset tạo thành địa chỉ phân đoạn (gọi là một véc tơ ) vì BUS chỉ gồm 20 bít nên địa chỉ phân đoạn cũng cần địa chỉ hoá 20 bít, bằng cách:

Dịch trái địa chỉ đoạn sang trái 4 bít + điạ chỉ offset 16 bít = địa chỉ phân đoạn 20 bít

20 bít nhị phân địa chỉ phân đoạn được phân thành 5 nhóm, mỗi nhóm 4 bít để làm thành 5 số địa chỉ hệ

16

Thí dụ : Địa chỉ đoạn : 1011 1010 0110 0111

B A 6 7

Địa chỉ offset :1100 0100 0100 0110

C 4 4 6

Địa chỉ phân đoạn hệ 16 sẽ là BA670 + C446 = D3BB6

+ Để mô tả một địa chỉ phân đoạn ta có thể dùng cách mô tả gộp dưới dạng tổng của phân dịch trái 4 bít của địa chỉ đoạn + địa chỉ offset (như thí dụ trên là D3BB6 hoặc mô tả tách rời thành 2 phần cách nhau có dạng : ĐIA CHI ĐOAN:offset

như thí dụ trên ta viết là BA67:C446

6

Trang 7

d- Ngăn xếp (STACK)

Ngăn xếp là một vùng bộ nhớ để nhớ và quản lý tiến trình công việc Ghi lại địa chỉ nơi chương trình con được gọi và những tham số truyền cho nó Ngăn xếp hoạt động theo nguyên tắc (LIFO) (Vào cuối ra đầu- last In Pirst Out.)

e- Các luật sử dụng thanh ghi

Các thanh ghi chung AX,BX,CX,DX được dùng thoải mái

+ AX thường dùng để chứa kết quả

+ CS không được sửa trực tiếp nhưng có thể thay đổi gián tiếp bằng cách gọi chương trình con gần hoặc

ax

DS có thể thay đổi được nhưng sau đó thường được trả lại giá trị cũ

+ SS giá trị ban đầu của SS cần phải lưu lại trước khi thực hiện thay đổi với thanh ghi

+ ES có thể thay đổi được theo ý muốn

+ IP không thể thay đổi trực tiếp

+ SP không thể thay đổi được

+ BP thường được thay đổi để truy nhập tới các tham số và thường được phục hồi lại

+ SI, DI có thể tự do theo dõi khi cần

f- Các cổng I/o

+ Cổng là cửa mà qua đó thông tin truyền đến hoặc truyền đi ( bàn phím, màn hình n chuột, đều gửi thông tin ra vào cổng Mỗi linh kiện đều có thể sử dụng vào địa chỉ cổng cho các mục đích khác nhau + Địa chỉ cổng 16 bít CPU gửi dữ liệu hoặc thông tin tới từng cổng bằng cách chỉ ra số thứ tự của cổng, còn cổng trả lời bằng cách gửi lên BUS một tín hiệu trạng thái

Sự trao đổi CPU và cổng thực hiện cụ thể như sau :

Đầu tiên CPU gửi một tín hiệu lên BUS điều khiển để lưu ý tất cả các thiết bị vào ra rằng trên BUS địa chỉ của một cổng nào đó sau đó CPU gửi tín hiệu địa chỉ cổng lên BUS địa chỉ cuối cùng thì thiết bị cổng truyền lên BUS điều khiển một tín hiệu trạng thái sẵn sàng hay không sẵn sàng

Địa chỉ cổng là số thứ tự cổng, đó là một số chỉ tới một vị trí nhớ trong thiết bị vào ra chứ không phải ở trong bộ nhớ

Địa chỉ các cổng như sau: AT

Bộ điều khiển DMA (8237A-5) 000-01F

Bộ điều khiển ngắt (8259A) 020-03F

Bộ thời gian (8253-5;8254.2 ở AT) 040-05F

PPI(8255A5-8255-5 ở PCjr)

Bàn phím (8012) 060-06F

Thanh ghi hay DMA (74LS612) 080-09F

Bộ điều khiển ngắt (8259A) 070-07F

Bộ tạo âm (SN76496N) oc-0c7 0A0-0BF

Bộ điều khiển DMA2 (8237A-5)

Xoá đặt lại bộ xử lý toán OCO-ODF

Xoá đặt lại bộ xử lý toán OFO-OF1

Joystik 200-207 200-20F

Bộ mở rộng 201-217

Máy in song song (thứ 2) 278-27F

Cổng nối tiếp (thứ 2) 2F8-2FF 3F8-3FF 3F8-3FR

Cổng nối tiếp (thứ hai) 2F8-2FF 2F8-2FF

Card mẫu 300-30F 300-34F

Đĩa cứng 320-32F 1FO-1F8

Máy in song song (thứ nhất) 378-37F 378-37R

SDLC(thứ 2 chỉ trên AT) 380-38F 380-38R

Liên lạc bisynchronous(thứ nhất) 3AO-3AF

Bộ ghép nối màn hình đen trắng máy in 3BO-3BF 3BO-3BF

Bộ ghép nối màn hình đồ thị 3DO-3DF 300-3DF

Bộ điều khiển đĩa mềm OFO-OFF 3FO-3F7 2FO-3F7

g- CPU sử dụng ngắt như thế nào

+ Các thiết bị hoạt động theo một chương trình nào đó đều hoạt động ở chế độ ngắt

+ Quá trình như sau:

Trang 8

Thiết bị cứng hay chương trình gửi một tín hiệu gọi là ngắt tới bộ vi xử lý nhận được tín hiệu ngắt nó sẽ dừng tất cả các công việc khác và kích hoạt chương trình con nằm trong bộ nhớ gọi là chương trình xử lý ngắt (mỗi chương trình xử lý ngắt tương ứng 1 số hiệu ngắt cụ thể sau khi chương trình xử lý ngắt đã hoạt động máy tính sẽ tiếp tục thực hiện từ chỗ nó dừng

+ Có 3 lớp ngắt chính sau :

Ngắt cứng tạo ra bởi các mạch của máy tính khi đáp lại một sự kiện nào đấy (chẳng hạn khi một phím trên bàn phím được nhấn) các ngắt này do mạch điều khiển quản lý (8259)

- Ngắt tạo bởi CPU xảy ra trong quá trình thực hiện chương trình máy coi là một sản phẩm đặc biệt của chương trình chẳng hạn chạy chương trình khi chia cho số 0)

- Ngắt do chương trình (ngắt mềm) xảy ra khi gọi chạy chương trình con ngắt này có thể lập trình được

+ Ngoài 3 lớp ngắt chính trên còn có một loại ngắt đặc biệt là ngắt không chắn (NMI) nó dừng

để đòi hỏi sự chú ý tức thời của CPU khi có sự mất điện hoặc hỏng bộ nhớ

+ Quá trình kích hoạt các ngắt như sau :

Khi chương trình gửi số hiệu ngắt tới CPU bộ sử lý ngắt 8259 phân tích số hiệu ngắt nhận được rồi nó chỉ tới một bảng đươc nhớ ở vùng địa chỉ thấp của bộ nhớ Bảng này gọi là bảng vectơ ngắt trong đó mỗi ô của bảng này chứa địa chỉ phân đoạn của chương trình xử lý ngắt cụ thể ứng với một số hiệu ngắt Nhờ có địa chỉ này (vec tơ ngắt) máy sẽ nhẩy tới vùng nhớ có chương trình xử lý ngắt cụ thể và kích hoạt trạng thái ngắt

+ Đồng thời với quá trình ngắt thì giá trị của các thanh ghi CS và thanh ghi con trỏ lệch (IP)

được cất vào ngăn xếp (STACK) Nhờ đó mà máy có thể làm việc khi ngắt xảy ra

Đồng thời giá trị của thanh ghi cờ cũng cất vào ngăn xếp và thanh ghi cờ bị xoá đi để ngăn các ngắt khác tạm thời

Chương 3 PHầN MềM ROM

ROM là bộ nhớ gồm nhiều chương trình cài đặt sẵn chỉ đọc ra mà không thay đổi được Phần mềm của ROM gồm các chức năng sau :

4 thành phần của ROM

A ROM khởi động

B ROM-BIOS

C Tệp các chương trình giữ máy, thực hiện hỗ trợ

D ROM-BASIC

A- ROM khởi động:

Là phần mềm chứa các chương trình khởi động máy gồm các việc sau :

- Kiểm tra độ tin cậy của cả hệ thống, khẳng định mọi công việc đều sẵn sàng kiểm tra điện nguồn, kiểm tra bộ nhớ, kiểm tra ổ đĩa

- Chương trình tạo bảng véc tơ ngắt ở vùng địa chỉ thấp của RAM

- Chương trình kiểm tra các thiết bị liên kết với máy tính và ghi các thông tin kiểm tra được vào vị trí chuổn trong RAM ở vùng địa chỉ thấp

- Chương trình kiểm tra xem có ROM mở rộng không nếu có thì chuyển điều khiển sang ROM mở rộng để thực hiện tiếp các chương trình con có trong ROM mở rộng

8

- Và cuối cùng là chương trình tải BOOT_STRAP gồm việc đọc bản ghi khởi động ở trên đĩa, nếu việc

đọc bản ghi khởi động thành công ( không có lỗi) thì chuyển điều khiển của máy sang cho chương

Trang 9

trình ghi ở bản ghi khởi động đĩa (chương trình này có nhiệm vụ tải phần còn lại của chương trình trên

đĩa)

Nếu quá trình tải của BOOT_STRAP không thành công thì ROM trả lời BOOT-FAILURE

B- ROM-BIOS

Phần mềm điều khiển quá trình máy hoạt động gồm các chương trình điều khiển máy ngoại

vi ROM_BIOS gồm nhiều chương chình phục vụ (Service) các chương trình phục vụ BIOS này được gọi

ra bằng các vec tơ ngắt khác nhau

Thí dụ :

a- Các chương trình phục vụ màn hình được gọi ra bằng vec tơ 1610 gồm tổng số Service0→Service15 (với AT có thêm 4 Service con nữa)

b - Các chương trình phục vụ bàn phím được gọi ra bằng các véc tơ ngắt (16Hex) gồm có 3 service : service 0, service 1, service 2

c- Các chương trình phục vụ cổng được gọi ra bằng ngắt (14H) gồm có 4 service dành cho quá trình truyền thông tin ra cổng

d- Các chương trình phục vụ máy in gọi bằng véc tơ ngắt (17h) gồm có 3 service (service 0, service

1, service 2)

e- Các chương trình phục vụ đĩa của ROM_BIOS gọi qua ngắt (13H) gồm 24 Service

f- Các chương trình phục vụ của ROM_BIOS thực chất là chương trình xử lý ngắt, mỗi chương trình này được gán một số hiệu ngắt, các số hiệu ngắt này ứng với một ô chứa véc tơ ngắt nằm ở vùng

địa chỉ thấp của RAM Vec tơ ngắt chính là địa chỉ phân đoạn để định vị chương trình xử lý ngắt Khi một số hiệu ngắt được gọi ra thì địa chỉ phân đoạn của vec tơ ngắt được tải vào thanh ghi CS (đoạn mã lệnh ) và thanh ghi IP (con trỏ lệnh) Các véc tơ ngắt nằm ở vùng địa chỉ thấp nhất của bộ nhớ RAM

đầu tiên là ngắt số 0 và tiếp tục là ngắt số 1

Mỗi véc tơ ngắt dài 2 từ (4byte) Vị trí của véc tơ ngắt trong vùng bộ nhớ thấp được xác định bằng cách lấy số hiệu ngắt *4 Ví dụ : Ngắt số 5 có địa chỉ offset trong đoạn số 0000 là 5*4=20

Nếu dùng DEBUG để kiểm tra ngắt này thì phải chuyển sang hệ 16 Thí dụ ngắt số 5 ở vùng 5*4=2010=1416

Vậy nếu dùng DEBUG với lệnh D 0000:0014 L4 ta thấy ở địa chỉ đó chứa 4 byte sau 54 FF 00 F0 Do sự sắp xếp từ ngược nên Bốn bai này phải được hiểu như sau: 2 bai đầu làm thành một từ hiểu

đúng là FF 54 đó là địa chỉ offset 2 bai sau làm thành một từ đúng là F0 00 đó là địa chỉ đoạn Vậy địa chỉ F000:FF54 là địa chỉ của chương trình xử lý ngắt số 5 ở trong ROM

Chú ý sự xắp xếp từ ngược : Từ đứng trước 2 byte đầu chỉ địa chỉ offset 2 byte sau chỉ địa chỉ đoạn

* ROM-BIOS gồm tất cả 12 ngắt chia thành 5 nhóm ;

- Nhóm 1 gồm 6 ngắt phục vụ các ngoại vi

- Nhóm 2 gồm 2 ngắt phục vụ các thiết bị hệ thống

- Nhóm 3 gồm 1 ngắt phục vụ điều khiển đồng hồ hệ thống (ngày tháng)

- Nhóm 4 gồm 1 ngắt phục vụ in trang màn hình

- Nhóm 5 gồm 3 ngắt chuyển máy tính sang trạng thái khác

* Cách gọi phục vụ của các ngắt như sau:

- Trước tiên nạp số hiệu phục vụ vào thanh ghi AH

- Sau đó gọi véc tơ ngắt

Thí dụ: Muốn gọi chương trình phục vụ số 1 về màn hình trong ngắt 1610=1016 ta làm như sau :

- Nạp số 1 vào thanh ghi AH bằng lệnh hợp ngữ MOV AH,1

- Gọi véc tơ ngắt số 10h bằng lệnh hợp ngữ INT 10

I - Các Chương trình xử lí ngắt của ROM-BIOS :

1 - Ngắt 00 : Ngắt tạo bởi CPU khi tràn ô khi thực hiện phép chia (DIV) cho 0

2 - Ngắt 01 : Đặt trạng thái chạy từng bước (khi cờ TF=1)

3 - Ngắt 02 : Ngắt không chắn được (ngắt không bị cấm bởi lệnh xoá ngắt CLI)

4 - Ngắt 03 : Đặt và xử lí điểm dừng của chương trình

5 - Ngắt 04 : Được tạo ra khi kết quả của phép tính số học bị tràn

6 - Ngắt 05 : Gọi chương trình in trang màn hình

7 - Ngắt 08 : Ngắt phát sinh từ phần cứng , tạo bởi nhịp kích của đồng hồ trong máy ngắt này thường

được sử dụng trong các chương trình thường trú chạy định kì

8 - ngắt 09 : Ngắt phát sinh từ phần cứng để xử lí bàn phím mỗi khi có một phím được đè hoặc nhả

9 - Ngắt 13 (0Dh) : Tạo khi bộ CRT quét ngược mành màn hình

Trang 10

10- Ngắt 14 (0Dh) : Ngắt phát sinh từ phần cứng và được kích hoạt bởi bộ điều khiển mềm mỗi khi có

một tác vụ về đĩa mềm

11- Ngắt 15 (0Fh) : Điều khiển máy in

12- Ngắt 16 (10h) : Gọi các dịch vụ màn hình của ROM-BIOS

Các chương trình phục vụ màn hình của ROM_BIOS đều được gọi qua ngắt 1610 (10h) Gồm 28 phục vụ theo các bảng phục vụ phân bố sau:

Số hiệu

Service

Chức năng Số hiệu

Service

Chức năng

Od Đặt kiểu màn hình 13 Đọc một điểm (pexel)

1d Đặt kích thước con trỏ 14 Ghi ký tự như điện báo

2d Đặt vị trí con trỏ 15 Lấy kiểu màn hình hiện thời 3 Dọc vi trí con trỏ 16 Ghép bảng mầu

4 Đoc vị trí bút sáng 17 Ghép bộ tạo ký tự

5 Đặt trạng thái hoạt động 18 Chọn lối ra dự bị

6 Cuốn của sổ lên 19 Ghi chuỗi ký tự

7 Cuốn cửa sổ xuống 20 (Có thể đổi địa chỉ cho PC) 8 Đọc ký tự và thuộc tính 21 (Có thể đổi địa chỉ cho PC) 9 Ghi ký tự thuộc tính 26 (Đọc ghi mã hiển thị tổ hợp) 10 Ghi 1 ký tự 27 Lấy thông tin trạng thái

11 Đặt bảng 4 mầu 28 Cất ghi lại trạng thái

12 Ghi 1 điểm (pixel)

13- Ngắt 17 (11h) : Gọi các dịch vụ liệt kê thiết bị

14- Ngắt 18 (12h) : Gọi các dịch vụ tính kích thước bộ nhớ

15- Ngắt 19 (13h) : Goi các dịch vụ ổ đĩa của ROM-BIOS (đĩa mềm và đĩa cứng)

* Các chương trình phục vụ đĩa mềm chuẩn của ROM-BIOS đều được gọi qua ngắt 19d (13Hex) có 6 service Các service này được chọn qua thanh ghi AH như sau:

- Nạp vào thanh ghi AH số hiệu của Service : MOV AH, số hiệu của service

- Gọi Ngắt 13h bằng lệnh Hợp ngữ : INT 13h

Số hiệu Service Chức năng

* Các sevice đĩa cứng

26 Khởi tạo đĩa cứng gắn với bộ phối ghép ESDI

Ngày đăng: 07/08/2014, 05:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm