Giáo trình Cấu trúc máy tính và Hợp ngữ - Nguyễn Mạnh Hoàng

1. Ngôn ngữ, cấp máy và máy ảo (Language, level and

virtual machine)

1.1. Giới thiệu

Máy tính số (Digital computer) là máy giải quyết các vấn đề bằng cách thực hiện

các chỉ thị do con người cung cấp. Chuỗi các chỉ thị này gọi là chương trình (program).

Các mạch điện tử trong một máy tính số sẽ thực hiện một số giới hạn các chỉ thị đơn giản

cho trước. Tập hợp các chỉ thị này gọi là tập lệnh của máy tính. Tất cả các chương trình

muốn thực thi đều phải được biến đổi sang tập lệnh trước khi được thi hành. Các lệnh cơ

bản là:

- Cộng 2 số.

- So sánh với 0.

- Di chuyển dữ liệu.

Tập lệnh của máy tính tạo thành một ngôn ngữ giúp con người có thể tác động lên

máy tính, ngôn ngữ này gọi là ngôn ngữ máy (machine language). Tuy nhiên, hầu hết các

ngôn ngữ máy đều đơn giản nên để thực hiện một yêu cầu nào đó, người thiết kế phải

thực hiện một công việc phức tạp. Đó là chuyển các yêu cầu này thành các chỉ thị có chứa

trong tập lệnh của máy. Vấn đề này có thể giải quyết bằng cách thiết kế một tập lệnh mới

thích hợp cho con người hơn tập lệnh đã cài đặt sẵn trong máy (built-in). Ngôn ngữ máy

sẽ được gọi là ngôn ngữ cấp 1 (L1) và ngôn ngữ vừa được hình thành gọi là ngôn ngữ cấp

2 (L2).

Một phương pháp thực thi chương trình L2 là chuyển một lệnh trong L2 bằng một

chuỗi các lệnh tương đương trong L1. Kết quả là sẽ tạo thành một chương trình L1 và

máy tính sẽ thực hiện chương trình tương đương L1 thay vì thực hiện chương trình L2.

Kỹ thuật này gọi là biên dịch (compile). Cách khác là một lệnh trong chương trình L2 sẽ

được xem như dữ liệu ngõ vào của chương trình L1 và toàn bộ chương trình L2 sẽ được

thực thi tuần tự. Kỹ thuật này gọi là thông dịch (interprete), nó không yêu cầu tạo ra một

chương trình mới trong L1.

Biên dịch và thông dịch đều thực hiện chương trình L2 thông qua tập lệnh trong

chương trình L1. Chúng khác nhau ở chỗ là khi biên dịch thì toàn bộ chương trình L2 sẽ

được chuyển thành chuỗi lệnh L1 rồi sau đó mới được thực thi còn đối với phương pháp

thông dịch thì sẽ thực thi từng lệnh trong L2. Để thuận tiện hơn, ta giả sử tồn tại một máy

tính sử dụng ngôn ngữ máy là L2, ta gọi máy tính này là máy ảo (virtual machine).

pdf139 trang | Chia sẻ: hienduc166 | Lượt xem: 768 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Cấu trúc máy tính và Hợp ngữ - Nguyễn Mạnh Hoàng, để xem tài liệu hoàn chỉnh bạn click vào nút TẢI VỀ ở trên
 vào AL.
Chú ý rằng 4 bit tại 4 lớp đại diện cho 1 điểm ảnh nên trong kiểu hiện 16 EGA
có độ phân giải cao nhất mỗi dòng cần 80byte (640 điểm ảnh / 8 điểm ảnh trên 1 byte);
mỗi trang màn hình gồm 32 KB. Địa chỉ byte của điểm ảnh ở dòng i, cột j trang k (i=0-
349, j=0-639, k=0-1) là:
Address (i,j,k) = A0000h + 8000h*k + 50h*j + int (i/8).
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 133
Với board VGA, các chế độ hiện văn bản từ 0 đến 3 và 7 cũng như các chế độ
đồ họa từ 4 đến 6 và 13 đến 16 của CGA. EGA và MDA đều chạy được trên nó.
Trong chế độ văn bản, mã ký tự được lưu trữ trong lớp nhớ 0 cùng với thuộc
tính trong lớp 1 của RAM video VGA. Quá trình chuyển hóa địa chỉ cũng giống như
EGA nhưng khác ở chổ nó vẫn đảm bảo chế độ văn bản 7 với độ phân giải 720x400,
ma trận điểm ảnh 9x16. Trong chế độ đồ họa 4 ÷ 6 và 13 ÷19 , mọi tổ chức, cấu trúc
cũng như cách tính địa chỉ tương tự như CGA và EGA. VGA được tăng cường 3 kiểu
hiện hình mới từ 17 đến 19.
Kiểu 17 tương thích với board đồ họa của máy PS/2 kiểu 30 là MCGA (multi
colour graphics array). Các điểm ảnh chỉ gổm 1 bit (2 màu) được định vị chỉ trên lớp
0. Thí dụ, trong VGA kiểu 17 với 80 byte trên 1 dòng (640 điểm ảnh / 8 điểm ảnh trên
1 byte). Mỗi trang màn hình gồm 40 KB. Địa chỉ của byte ở dòng i, cột j ( i= 0-479),
j=0-639) như sau:
Address (i,j) = A0000h+50h*j+int (i/8)
Kiểu 18, 4 bit của điểm ảnh được phân trong 4 lớp nhớ như ở EGA. Trong kiểu
VGA phân giải cao với 16 màu khác nhau, 80 byte trên 1 dòng (640 điểm ảnh / 8 điểm
ảnh trên 1 byte), mỗi trang màn hình gồm 40 KB (A0000h byte); địa chỉ của mỗi byte
ở dòng i, cột j (i=0-479; j = 0-639) bằng:
Address (i,j) = A0000h + 50h*j + int (i/8).
Kiểu 19 với 256 màu cho 1 điểm ảnh thì RAM video lại được tổ chức rất đơn
giản như 1 dãy tuyến tính, trong đó 1 byte tương ứng với 1 điểm ảnh. Giá trị của byte
phân định màu của điểm ảnh. Kiểu này đòi hỏi 320 byte (140h) trên 1 dòng (320 điểm
ảnh / 1 điểm ảnh trên 1 byte). Một trang màn hình gồm 64 KB (10000h) nhưng chỉ có
64000 byte được sử dụng. Địa chỉ của điểm ảnh trong dòng i, cột j (i = 0-199, j=0-319)
là:
Address (i,j) = A0000h + 140h*j + i
4.2.4. Bus cục bộ và chip xử lý đồ họa
Để tăng tốc độ hiện đồ họa có 2 giải pháp:
- Dùng bus cục bộ 32 bit để tránh hiện tượng nghẽn cổ chai
(bottleneck) do bus ISA chỉ có 16 bit và tốc độ hạn chế
(8.33Mhz); điều này cho phép 1 lượng thông tin nhiều hơn được
trao đổi giữa CPU và board mạch trong 1 đơn vị thời gian.
- Dùng chip xử lý đồ họa với BIOS riêng trên board mạch điều
khiển monitor. Chip này sẽ làm hầu hết các công việc trừ một ít
lệnh và thông số mô tả nội dung phần màn hình cần hiện là được
cấp từ CPU. Thí dụ cần vẽ 1 hình chữ nhật với màu nào đó, board
chỉ cần vài thông số ban đầu từ CPU như tọa độ của 2 góc và giá
tri màu là đủ. Cách giải quyết như vậy rất có lợi khi PC chạy
trong chế độ đa nhiệm.
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 134
2. Giao tiếp song song
2.1. Cấu trúc cổng song song
Cổng song song gồm có 4 đường điều khiển, 5 đường trạng thái và 8 đường dữ
liệu bao gồm 5 chế độ hoạt động:
- Chế độ tương thích (compatibility).
- Chế độ nibble.
- Chế độ byte.
- Chế độ EPP (Enhanced Parallel Port).
- Chế độ ECP (Extended Capabilities Port).
3 chế độ đầu tiên sử dụng port song song chuẩn (SPP – Standard Parallel Port)
trong khi đó chế độ 4, 5 cần thêm phần cứng để cho phép hoạt động ở tốc độ cao hơn.
Sơ đồ chân của máy in như sau:
Chân Tín hiệu Mô tả
1 STR (Out) Mức tín hiệu thấp, truyền dữ liệu tới máy in
2 D0 Bit dữ liệu 0
3 D1 Bit dữ liệu 1
4 D2 Bit dữ liệu 2
5 D3 Bit dữ liệu 3
6 D4 Bit dữ liệu 4
7 D5 Bit dữ liệu 5
8 D6 Bit dữ liệu 6
9 D7 Bit dữ liệu 7
10 ACK (In) Mức thấp: máy in đã nhận 1 ký tự và có khả
năng nhận nữa
11 BUSY (In) Mức cao: ký tự đã được nhận; bộ đệm máy in
đầy; khởi động máy in; máy in ở trạng thái off-
line.
12 PAPER EMPTY
(In)
Mức cao: hết giấy
13 SELECT (In) Mức cao: máy in ở trạng thái online
14 AUTOFEED (Out) Tự động xuống dòng; mức thấp: máy in xuống
dòng tự động
15 ERROR (In) Mức thấp: hết giấy; máy in ở offline; lỗi máy
in
16 INIT (Out) Mức thấp: khởi động máy in
17 SELECTIN (Out) Mức thấp: chọn máy in
18-25 GROUND 0V
Cổng song song có ba thanh ghi có thể truyền dữ liệu và điều khiển máy in.
Địa chỉ cơ sở của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4
được lưu trữ trong vùng dữ liệu của BIOS. Thanh ghi dữ liệu được định vị ở offset
00h, thanh ghi trang thái ở 01h, và thanh ghi điều khiển ở 02h. Thông thường, địa chỉ
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 135
cơ sở của LPT1 là 378h, LPT2 là 278h, do đó địa chỉ của thanh ghi trạng thái là 379h
hoặc 279h và địa chỉ thanh ghi điều khiển là 37Ah hoặc 27Ah. Tuy nhiên trong một số
trường hợp, địa chỉ của cổng song song có thể khác do quá trình khởi động của BIOS.
BIOS sẽ lưu trữ các địa chỉ này như sau:
Địa chỉ Chức năng
0000h:0408h Địa chỉ cơ sở của LPT1
0000h:040Ah Địa chỉ cơ sở của LPT2
0000h:040Ch Địa chỉ cơ sở của LPT3
Định dạng các thanh ghi như sau:
Thanh ghi dữ liệu (hai chiều):
7 6 5 4 3 2 1 0
Tín hiệu máy in D7 D6 D5 D4 D3 D2 D1 D0
Chân số 9 8 7 6 5 4 3 2
Thanh ghi trạng thái máy in (chỉ đọc):
7 6 5 4 3 2 1 0
Tín hiệu
máy in
BUSY ACK PAPER
EMPTY
SELECT ERROR IRQ x x
Số chân
cắm
11 10 12 13 15 - - -
Thanh ghi điều khiển máy in:
7 6 5 4 3 2 1 0
Tín
hiệu
máy
in
x x DIR IRQ
Enable
SELECTIN INIT AUTOFEED STROBE
Số
chân
cắm
- - - - 17 16 14 1
x: không sử dụng
IRQ Enable: yêu cầu ngắt cứng; 1 = cho phép; 0 = không cho phép
Chú ý rằng chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi
trạng thái, các bit SELECTIN , AUTOFEED và STROBE được đưa qua cổng đảo
trước khi đưa ra các chân của cổng máy in.
Thông thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm
hơn PC nhiều nên các đường ACK , BUSY và STR được sử dụng cho kỹ thuật bắt
tay. Khởi đầu, PC đặt dữ liệu lên bus sau đó kích hoạt đường STR xuống mức thấp để
thông tin cho máy in biết rằng dữ liệu đã ổn định trên bus. Khi máy in xử lý xong dữ
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 136
liệu, nó sẽ trả lại tín hiệu ACK xuống mức thấp để ghi nhận. PC đợi cho đến khi
đường BUSY từ máy in xuống thấp (máy in không bận) thì sẽ đưa tiếp dữ liệu lên bus.
2.2. Giao tiếp với thiết bị ngoại vi
2.2.1. Giao tiếp với máy tính
Quá trình giao tiếp với cổng song song dùng 2 chế độ: chế độ chuẩn SPP và chế
độ mở rộng. Việc giao tiếp ở chế độ chuẩn mô tả như sau:
13 13
25 25
12 12
24 24
11 11
23 23
10 10
22 22
9 9
21 21
8 8
20 20
7 7
19 19
6 6
18 18
5 5
17 17
4 4
16 16
3 3
15 15
2 2
14 14
1 1
Hình 5.15 - Trao đổi dữ liệu qua cổng song song giữa 2 PC dùng chế độ chuẩn
Sơ đồ chân kết nối mô tả như sau:
PC1 PC2
Chức năng Chân Chân Chức năng
D0 2 15 ERROR
D1 3 13 SELECT
D2 4 12 PAPER EMPTY
D3 5 10 ACK
D4 6 11 BUSY
BUSY 11 6 D4
ACK 10 5 D3
PAPER EMPTY 12 4 D2
SELECT 13 3 D1
ERROR 15 2 D0
GND 25 25 GND
Ngoài ra, việc kết nối giữa 2 máy tính sử dụng cổng song song có thể dùng chế
độ mở rộng, chế độ này cho phép giao tiếp với tốc độ cao hơn.
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 137
13 13
25 25
12 12
24 24
11 11
23 23
10 10
22 22
9 9
21 21
8 8
20 20
7 7
19 19
6 6
18 18
5 5
17 17
4 4
16 16
3 3
15 15
2 2
14 14
1 1
rộng
Hình 5.16 - Trao đổi dữ liệu qua cổng song song giữa 2 PC dùng chế độ mở
Sơ đồ chân kết nối mô tả như sau:
PC1 PC2
Chức năng Chân Chân Chức năng
D0 2 2 D0
D1 3 3 D1
D2 4 4 D2
D3 5 5 D3
D4 6 6 D4
D5 7 7 D5
D6 8 8 D6
D7 9 9 D7
SELECT 13 17 SELECTIN
BUSY 11 16 INIT
ACK 10 1 STROBE
SELECTIN 17 13 SELECT
INIT 16 11 BUSY
STROBE 1 10 ACK
2.2.2. Giao tiếp thiết bị khác
Quá trình giao tiếp với các thiết bị ngoại vi có thể thực hiện thông qua chế độ
chuẩn. Để đọc dữ liệu, có thể dùng một IC ghép kênh 2Æ1 74LS257 và dùng 4 bit
trạng thái của cổng song song còn xuất dữ liệu thì sử dụng 8 đường dữ liệu D0 – D7.
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 138
9
Q6
3B
Q2
D6
74LS06
9 8
1 STROBE
14
2 3 2
10K1
9
15 4 D0
D1
Q0 5 8
Q13 7
16 8 D2
6 7
6
4 13 D3
17 14 D4
D5
Q3 12
Q4 15Q5
5 VCC
4
5
18
6
19
7
20
8
21
9
22
10 ACK
23
11 PAPER EMPTY
24
12 SELECT
17 16
18 19
D7 Q7
11
CLK
1
OE
74LS374
74LS257
4 2
3
2 1
SW0-7
2 3
10K
9
25 74LS06
13
7 1Y
9 2Y
4Y
1A 5
2A 11
4A
3
2B
5 Q0
6 Q1
12 Q3
15 Q4
Q6
D0 4
D1 7
D3 13
D4 14
D6
8
7
5 VCC
4
2 1
AUTO FEED 3 4
10 19
13 Q7
4B
1
D7
18
11
CLK
SELECT IN
74LS06
5 6
A/B 15
G OE
1
74LS374
Hình 5.17 – Mạch giao tiếp đơn giản thông qua cổng máy in
Giao diện:
Hình 5.18 – Giao diện của chương trình giao tiếp với cổng máy in
Chương trình giao tiếp trên VB sử dụng thư viện liên kết động để trao đổi dữ
liệu với cổng máy in. Thư viện IO.DLL bao gồm các hàm sau:
- Hàm PortOut: xuất 1 byte ra cổng
Private Declare Sub PortOut Lib "IO.DLL" (ByVal
Port As Integer, ByVal Data As Byte)
Port: địa chỉ cổng, Data: dữ liệu xuất
- Hàm PortWordOut: xuất 1 word ra cổng
Tài liệu Cấu trúc máy tính và Hợp ngữ Tổ chức vào / ra
GV: Nguyễn Mạnh Hoàng Trang 139
Private Declare Sub PortWordOut Lib "IO.DLL"
(ByVal Port As Integer, ByVal Data As Integer)
- Hàm PortDWordOut: xuất 1 double word ra cổng
Private Declare Sub PortDWordOut Lib "IO.DLL"
(ByVal Port As Integer, ByVal Data As Long)
- Hàm PortIn: nhập 1 byte từ cổng, trả về giá trị nhập
Private Declare Function PortIn Lib "IO.DLL"
(ByVal Port As Integer) As Byte
- Hàm PortWordIn: nhập 1 word từ cổng
Private Declare Function PortWordIn Lib "IO.DLL"
(ByVal Port As Integer) As Integer
- Hàm PortDWordIn: nhập 1 double word từ cổng
Private Declare Function PortDWordIn Lib
"IO.DLL" (ByVal Port As Integer) As Long

File đính kèm:

  • pdfcau truc may tinh va hop ngu.pdf