Bộ nhớ Memory: lưu trữ các lệnh và dữ liệu; 2 loại: bộ nhớ trong và bộ nhớ ngoài; chia thành các ô nhớ nhỏ được gán một địa chỉ để CPU có thể định vị khi đọc/ghi dữ liệu.. Bộ nhớ Memory:
Trang 1Phần I Cấu trúc bộ VXL và các hệ thống hỗ trợ Câu 1: Vẽ sơ đồ cấu trúc của hệ thống máy tính? Nêu chức năng của từng bộ phận? Nêu hạn
chế lớn nhất của máy tính theo kiến trúc của Von Neumann
Cấu trúc cơ bản của hệ thống máy tính gồm:
1 Bộ xử lý trung tâm CPU: nhận và thực thi các lệnh CPU gồm các mạch điều khiển
logic, mạch tính toán số học, các thanh ghi trung gian
2 Bộ nhớ (Memory): lưu trữ các lệnh và dữ liệu; 2 loại: bộ nhớ trong và bộ nhớ ngoài; chia
thành các ô nhớ nhỏ được gán một địa chỉ để CPU có thể định vị khi đọc/ghi dữ liệu
3 Phối ghép vào/ra: mạch điện tử, tạo giao tiếp giữa máy tính và thiết bị ngoại vi (màn
hình, bàn phím, máy in, …)
4 Thiết bị ngoại vi (Input / Output): dùng để nhập hay xuất dữ liệu; liên hệ với CPU qua
các mạch giao tiếp I/O
5 Bus hệ thống: tập hợp các đường dây để CPU có thể liên kết với các bộ phận khác.
Bus hệ thống bao gồm 3 loại:
- Bus dữ liệu (data bus): truyền tải dữ liệu, 2 chiều.
- Bus địa chỉ (address bus): đ/c chọn ô nhớ hay ngoại vi.
- Bus điều khiển (control bus): trao đổi thông tin trạng thái và điều khiển giữa CPU và
Bộ nhớ (RAM, ROM)
Thiết bị ra (màn hình, máy in, máy vẽ )
CU
Phối ghép vào ra
Thiết bị vào (bàn phím, chuột, máy quét )
Bus điều khiển Bus dữ liệu
Bus địa chỉ
Hình 4 Sơ đồ khối hệ máy tính cơ bản
Trang 2Hãy cho biết:
- Chương trình này có phần mở rộng là COM hay EXE? Tại sao?
- Mã của lệnh chương trình trên nằm trong bộ phận nào của máy tính? Tại vị trí có địa chỉvật lý nào? Chỉ rõ cách xác định?
- Cách xác định:
+Các lệnh trên được thực hiện trong “Đơn vị thực hiện” EU của bộ vi xử lý Các lệnhđược thực hiện lần lượt theo thú tự từ trên xuống
+Khi thực hiện 1 lệnh nào đó thì giá trị của thanh ghi IP được tăng lên thêm 2 để trỏ vào
vị trí lệnh tiếp theo của chương trình
+Khi chuẩn bị thực hiện lệnh lệnh đầu tiên thì các thanh ghi CS = 125Ah, IP =0104h.còn khi thực hiện lệnh thứ nhất thì chúng có giá trị: CS = 125Ah, IP = 0106h
+ Khi thực hiện lệnh thứ hai thì chúng có giá trị: CS = 125Ah, IP = 0108h
Câu 3: Các máy tính cá nhân (PC) hiện nay được thiết kế theo kiến trúc nào? Theo kiến trúc
này, máy tính gồm những bộ phận gì? Nêu chức năng của từng bộ phận? Nhược điểm chính củakiến trúc này là gì?
2 Bộ nhớ (Memory): là hệ thống con dùng lưu trữ tạm thời các chỉ thị của chương trình và
dữ liệu sẽ được thực hiện bởi máy tính Nó thường được gọi là RAM Bộ nhớ được chiathành các ô, mỗi ô có địa chỉ riêng để dữ liệu có thể nạp
3 Hệ thống vào/ra (I/O): đây là hệ thống con cho phép máy tính tương tác với các thiết bị
khác và liên lạc với thế giới bên ngoài Nó cũng chịu trách nhiệm lưu trữ chương trìnhbằng cách điều khiển đĩa cứng
Trang 34 Bus địa chỉ và bus dữ liệu được dùng chung cho dữ liệu và cho chương trình trong quá
trình trao đổi dữ liệu và lệnh giữa CPU và bộ nhớ
Hạn chế lớn nhất của máy tính theo kiến trúc của Von Neumann đó là: có hiện tượng thắt cổchai do xảy ra xung đột giữa quá trình nhận lệnh và nạp/cất dữ liệu
Câu 4: Bộ xử lý trung tâm (CPU) của máy tính liên kết với các bộ phận khác của hệ thống máy
tính (các cổng vào/ra và bộ nhớ) bằng những nhóm tín hiệu nào? Nêu chức năng, hướng truyềncủa các nhóm tín hiệu đó? Khi CPU nhận lệnh để thực hiện, thì mã lệnh chuyển từ đâu tới đâu,theo đường nào?
TRẢ LỜI:
Bộ xử lý trung tâm (CPU) của máy tính liên kết với các bộ phận khác của hệ thống máy
tính (ngoại vi, bộ nhớ) thông qua các nhóm tín hiệu được gọi là hệ thống bus.
Trong máy tính có hai nhóm bus là bus hệ thống, nối giữa CPU với bộ nhớ chính (trong
các máy hiện đại ngày nay bus hệ thống được nối giữa CPU và vi mạch tổng hợp) và bus vào ranối ghép giữa các thiết bị ngoại vi tới CPU
Hệ thống bus bao gồm 3 loại, bus dữ liệu và bus địa chỉ và bus điều khiển.
̵̵ BUS địa chỉ: Phục vụ việc chọn ô nhớ hoặc thiết bị vào/ra Khi ghi/đọc bộ nhớ
hoặc thiết bị vào/ra, bộ xử lý trung tâm sẽ đưa lên bus này địa chỉ của các thiết bị liên quan.Đây là bus một chiều và xuất phát từ CPU
̵̵ BUS dữ liệu: được dùng để chuyển dữ liệu và thường có từ 8, 16, 20, 24, 32 đến
64 đường dây tuỳ thuộc vào từng CPU cụ thể BUS dữ liệu là loại 2 chiều Các phần tử có đầu
ra nối thẳng với bus dữ liệu đều phải được trang bị đầu ra 3 trạng thái để bảo đảm cho bus hoạtđộng được bình thường
̵̵ BUS điều khiển: Hỗ trợ cho việc trao đổi các thông tin điều khiển và trạng thái
như phân biệt thiết bị được CPU truy nhập là bộ nhớ hay thiết bị vào/ra, thao tác truy nhập làđọc hay viết v.v Bus điều khiển thường gồm hàng chục dây tín hiệu khác nhau, và xét theo
cả nhóm thì đó là loại bus 2 chiều
Khi CPU đọc lệnh để thực hiện, thì mã lệnh chuyển từ bộ nhớ vào CPU thông qua bus dữliệu
Trang 4Câu 5: Phân biệt địa chỉ logic và địa chỉ vật lý của một ngăn nhớ? Nêu phương pháp CPU xác
định địa chỉ vật lý dựa trên địa chỉ logic? Hãy cho biết lệnh đầu tiên sau khi máy tính khởi độngxong có địa chỉ logic bằng bao nhiêu? Tính địa chỉ vật lý của lệnh đó?
TRẢ LỜI:
Địa chỉ logic của một ngăn nhớ Biểu diễn đồng thời cả 2 thanh ghi đoạn và thanh ghi contrỏ, chỉ số được dùng trong lập trình và giao tiếp người máy, được viết theo cách như sau:
Thanh ghi đoạn:Thanh ghi lệch.
Còn địa chỉ vật lý của một ngăn nhớ chính là số thứ tự của ngăn nhớ đó, được bắt đầu tính
từ 0 -220 (ngăn nhớ thứ nhất có địa chỉ vật lý là 0)
CPU xác định địa chỉ vật lý dựa trên địa chỉ logic theo cách: Địa chỉ đoạn sẽ được dịch trái
1 khoảng 4 bit kết hợp với địa chỉ offset giữ nguyên sẽ tạo thành cách xác định địa chỉ 20 bit.Như vậy, địa chỉ vật lý được xác định theo công thức như sau:
Địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh ghi lệch
Lệnh đầu tiên khi máy tính khởi động xong có địa chỉ logic = FFFF:0 Địa chỉ vật lý củalệnh đó là: FFFF0h
Giá trị lớn nhất của thanh ghi độ lệch là FFFF H (216 giá trị) mỗi lần thay đổi (24 giá trị) như vậy với 1 địa chỉ vật lý ta có thể có tối đa 216:24 = 212 giá trị địa chỉ logic Trường hợp địa chỉ vật lý là 00000 H ta chỉ có 1 địa chỉ logic
mà thôi.
Câu 6: Bộ vi xử lý 8086/88 có bus địa chỉ và dữ liệu bao nhiêu bit? Nó có thể truy cập tối đa
được bao nhiêu ô nhớ? Mỗi ô nhớ chứa bao nhiêu bit? Khi CPU thực hiện lệnh:
MOV [DI], AL
ô nhớ được truy cập có địa chỉ là bao nhiêu? Cho biết giá trị các thanh ghi bên trong CPU trướclúc thực hiện lệnh là:
AX = 0000; BX = 0000; CX = 0000; DX = 0000; SP = FFEE; BP=0; SI =0; DI=0;DS=127Ch; ES=127Ch; SS=127Ch; CS=127Ch; IP=0100h
Trang 5Câu 7: Đoạn bộ nhớ là gì? Địa chỉ đoạn bộ nhớ chứa trong các thanh ghi nào? Độ dài của các
thanh ghi địa chỉ của đoạn là bao nhiêu bit? Hãy cho biết ngăn nhớ có địa chỉ vật lý là 256A3h
có thể nằm trong những đoạn bộ nhớ nào, địa chỉ độ lệch bao nhiêu (hãy viết ra ít nhất 3 địa chỉlogic của địa chỉ vật lý trên)? Viết công thức liên hệ giữa địa chỉ vật lý và địa chỉ logic?
TRẢ LỜI:
- Đoạn bộ nhớ là vùng rộng bộ nhớ chứa 2^16 byte=64KB ô nhớ liên tiếp nhau được xácđịnh bằng một địa chỉ đoạn tương ứng bắt đầu từ địa chỉ 0 và địa chỉ đoạn lớn nhất là FFFFFh
- Địa chỉ đoạn bộ nhớ chứa trong thanh ghi đoạn CS,DS,SS,ES
- Độ dài của các thanh ghi địa chỉ đoạn là 16bit
- Ngăn nhớ có địa chỉ vật lý 256A3h có thể có nhiều địa chỉ logic khác nhau
VD: một vài địa chỉ như sau
+ 256A:0003 tương ứng đoạn bộ nhớ có địa chỉ 256Ah và địa chỉ độ lệch 0003h
+ 2560:00A3 tương ứng đoạn bộ nhớ có địa chỉ 2560h và địa chỉ đọ lệch 00A3h
+ 2500:05A3 tương ứng đoạn bộ nhớ có địa chỉ 2500h và địa chỉ độ lệch 05A3h
- Công thức lên hệ giữa địa chỉ vật lý và địa chỉ logic
Địa chỉ vật lý = thanh ghi đoan *16+ thanh ghi offset
Câu 8: Giả sử máy tính thực hiện chương trình có phần mở rộng là COM Với trạng thái ban
đầu các thanh ghi đoạn và con trỏ chỉ số trong CPU như sau: CS=DS=SS=ES=0700H;IP=0100; AX=0000; BX=0000; CX=0000; DX=0000; BP=0000;SP=FFFE; SI=0000; DI=0000.Hỏi:
Khi CPU nhận mã lệnh từ bộ nhớ, nó sử dụng những thanh ghi gì để xác định địa chỉ củalệnh cần đọc vào?
CPU tính địa chỉ vật lý của lệnh trên cơ sở nội dung của các thanh ghi đó theo công thứcnào?
Xác định địa chỉ vật lý của byte mã lệnh đầu tiên với các dữ liệu cho ở trên?
TRẢ LỜI:
- Khi CPU nhận mã lệnh từ bộ nhớ nó sử dụng thanh ghi CS và IP để xác định địa chỉ của lệnh cần đọc vào từ bộ nhớ Trong đó thanh ghi CS dùng để chỉ tới đoạn bộ nhớ, thanh ghi IP chứa địa chỉ Offset trong đoạn bộ nhớ đó
- CPU tính địa chỉ vật lý của lệnh trên cơ sở nội dung các thanh ghi đó theo công thức
Địa chỉ vật lý = thanh ghi đoan *16+ thanh ghi offset
- Với dữ liệu như trên thì khi nhận lệnh đầu tiên giá trị thanh ghi chứa địa chỉ của lệnh sẽ
là CS=0700h và IP =0100h Vậy địa chỉ vật lý của byte mã lệnh đầu tiên là:0700h*16+0100=07100h
Trang 6Câu 9: Xử lý đường ống là gì? Do có cấu trúc bên trong nào mà bộ vi xử lý 8086 có khả năng
thực hiện chương trình theo kiểu đường ống? Giả sử các lệnh đều có thời gian nhận lệnh, giải
mã và thực thi là 1 chu kỳ máy Bằng hình vẽ biểu đồ thời gian, hãy xác định thời gian để CPU hoàn thành 5 lệnh theo cơ chế xử lý đường ống
- Trong thời gian EU thực hiện lệnh thì BIU vẫn có thể đảm nhận nhiệm vụ nhận trướccác lệnh cất tạm vào các hàng đợi lệnh và các thanh ghi dữ liệu Nhờ vậy mà khi bus bị bậntrong chu kỳ đọc thì EU thực hiện các lệnh trước đó còn khi bus bận trong chu kỳ ghi thì EU lạithực hiện các lệnh khác
+ IF: nhận lệnh, ID: giải mã lệnh, EX :thực thi
Vậy cần 7 chu kỳ để thực hiên 5 lệnh
Câu 10: Hãy cho biết tên, ký hiệu và ý nghĩa của 6 cờ chỉ thị trạng thái của kết quả trong CPU?
Xác định giá trị các cờ đó sau khi bộ vi xử lý 8086 thực hiện lệnh sau:
MOV AL,056HADD AL,0AAH(Biết rằng trước đó giá trị các bit cờ trên và thanh ghi AL bằng 0)
TRẢ LỜI:
- Thanh ghi cờ là thanh ghi 16 bit dung để lưu giữ thông tin về trạng thái của EU hoặc kết quả phép toán do ALU thực hiện
2 Cờ nhớ CF CF=1 nếu bit cao nhất có nhớ
3 Cờ tràn OF OF=1 nếu tràn hay phếp tính vượt thang
4 Cờ bậc chẵn PF PF=1 nếu tổng chữ số 1 bằng chẵn
5 Cờ Zero ZF ZF=1 nếu kết quả bằng 0
SF=1 nếu số âm
Trang 7- 8086/8088 chỉ sử dụng 9 bit cờ trong số 16 bit để ghi thông tin
Câu 11: Tại sao trong Bộ vi xử lý 8086 của Intel tất cả các thanh ghi địa chỉ (đoạn và độ lệch)
có dài tối đa là 16 bits nhưng địa chỉ vật lý CPU tạo ra có độ dài 20 bits (từ A0 đến A19) Hãycho biết các cặp thanh ghi (đoạn và độ lệch) tương ứng để địa chỉ hóa mã lệnh, dữ liệu và ngănxếp? Xác định tên các thanh ghi chứa địa chỉ logic của byte mã lệnh nằm trong đoạn bộ nhớ cóđịa chỉ là 1034h và độ lệch là 0200h? Tính địa chỉ vật lý của byte mã lệnh nói trên?
TRẢ LỜI:
- Bộ vi xử lý 8086 của Intel tất cả các thanh ghi địa chỉ (đoạn và độ lệch) có dài tối đa là 16bits nhưng địa chỉ vật lý CPU tạo ra có độ dài 20 bits (từ A0 đến A19) vì CPU sử dụng cácthanh ghi đoạn 16bit CS,DS,SS,ES để xác định địa chỉ đoạn và sủ dụng các thanh ghi OffetIP,SP,BP,SI,DI để xác định địa chỉ dịch chuyển tính từ địa chỉ đoạn Cụ thể là địa chỉ đoạn sẽđược dịch trái 1 khoảng 4 bit kết hợp với địa chỉ offset giữ nguyên sẽ tạo thành địa chỉ 20bitcủa địa chỉ vật lý
- Cặp thanh ghi dùng để địa chỉ hóa mã lệnh là CS:IP ,Đối với dữ liệu là thanh ghi SI:DI,Đối với ngăn xếp là SS:SP
- Byte mã lệnh nằm trong đoạn bộ nhớ có địa chỉ là 1034h và độ lệch là 0200h sử dungthanh ghi CS=1034h và IP=0200h Vậy địa chỉ vật lý =10340+0200=10540h
Câu 12: Bus hệ thống của máy tính nối Bộ vi xử lý Intel 8088 với bộ nhớ và các cổng vào/ra
gồm những bus con gì? Vẽ sơ đồ tạo các bus con trong máy tính PC/XT dùng vi xử lý 8088?Trình bày một chu kỳ bus đọc bộ nhớ?
TRẢ LỜI:
- Bus hệ thống của máy tính nối Bộ vi xử lý Intel 8088 với bộ nhớ và các cổng vào/ra gồmnhững bus con là: bus dữ liệu, bus điều khiển, bus địa chỉ
Trang 8Các chuỗi sự kiện xảy ra trong một chu kỳ bus đọc bộ nhớ:
- Chu kỳ T1: CPU xuất địa chỉ; mạch chốt địa chỉ đưa lên BUS
- Chu kỳ T2: tín hiệu điều khiển đọc (MEMR or IOR) được kích hoạt
- Chu kỳ T3: bộ nhớ (hoặc TB vào/ra) đưa dữ liệu lên bus
- Chu kỳ T4: CPU nhận dữ liệu từ bus Kết thúc chu kỳ đọc!
Một chu kỳ bus ghi gồm 4 nhịp clock:
- T1: CPU xuất địa chỉ
- T2: CPU xuất tín hiệu điều khiển ghi MEMW
- T3: CPU đưa dữ liệu lên BUS
- T4: Bộ nhớ (hoặc TB v/r) nhận dữ liệu từ BUS KẾT THÚC CHU KỲ GHI!
Trang 9Phần II Bộ nhớ và các hệ thống hỗ trợ Câu 1 Trên bản đồ bộ nhớ máy tính? Bộ nhớ ROM BIOS trong máy tính IBM PCXT nằm ở
vùng địa chỉ nào? Nêu chức năng của bộ nhớ ROM BIOS trong máy tính IBM PCXT? Khikhởi động máy tính thì thanh ghi đoạn mã lệnh (CS) và con trỏ lệnh (IP) được khởi tạo giá trịbao nhiêu để vùng nhớ ROM BIOS sẽ được quy chiếu đầu tiên?
TRẢ LỜI:
Trên bản đồ bộ nhớ, địa chỉ ROM BIOS: 8kb từ FE000- FFFFF
Chức năng của bộ nhớ ROM BIOS trong máy tính IBM PCXT:
- Chứa chương trình khởi động máy tính <1kb cuối cùng>
- Hàm vào ra cơ bản
Khi khởi động máy tính thì: CS = FFFFh, IP = 0
Câu 3 Trình bày về bản đồ bộ nhớ trên máy tính IBM PC XT
(độ lớn, không gian địa chỉ, các vùng chính của bản đồ nhớ )
- 1kb cao nhất chứa chương trình khởi động
Câu 2 Tại sao bộ nhớ RAM chính của máy tính thường sử dụng vi mạch nhớ DRAM? Ưu,
nhược điểm của vi mạch nhớ DRAM so với vi mạch nhớ SRAM? Khi máy vi tính IBM PC sửdụng loại vi mạch nhớ là loại DRAM thì CPU cần có thêm thao tác gì để bảo toàn dữ liệutrong bộ nhớ RAM trong quá trình làm việc?
TRẢ LỜI:
Bộ nhớ RAM chính của máy cần dung lượng lớn, vì DRAM vừa có dung lượng lớn vừa
có giá rẻ vì vậy thường dùng DRAM
Ưu điểm của DRAM là dung lượng lớn, giá rẻ Nhược điểm là cần làm tươi thường xuyên và tốc độ chậm hơn SRAM
Trang 10Khi máy vi tính IBM PC sử dụng loại vi mạch nhớ là loại DRAM thì CPU cần làm tươi
để bảo toàn dữ liệu trong bộ nhớ RAM trong quá trình làm việc
Câu 4 Một chu kỳ truy cập đọc bộ nhớ của vi xử lý 8086 gồm mấy chu kỳ đồng hồ? Hãy cho
biết ý nghĩa của tín hiệu ALE và chu kỳ nào nó tích cực, khi CPU truy cập bộ nhớ? Tín hiệunào trong các tín hiệu sau tích cực: IOR, IOW, MEMR, MEMW, khi CPU thực hiện lệnh:
- ALE tích cực ở chu kỳ T1
- Tín hiệu trạng thái M/|IO được phát hiện từ CPU thông báo khi nào thì CPU truy cập bộ nhớ và khi nào thì truy cập vào ra Tín hiệu này được kết hợp với các tín hiệu /RD và /WR để tạo ra các tín hiệu điều khiển, quá trình ghi đọc bộ nhớ và vào/ra
Khi cpu thực hiện lệnh MOV AL,[SI] thì tín hiệu /IOR ở mức tích cực
Câu 5: Một chu kỳ truy cập ghi bộ nhớ của vi xử lý 8086 gồm mấy chu kỳ đồng hồ? Tín hiệu
nào trong các tín hiệu sau tích cực: IOR, IOW, MEMR, MEMW, khi CPU thực hiện lệnh ghi
bộ nhớ? Tính thời gian của một chu kỳ ghi bộ nhớ, nếu biết tần số đồng hồ của CPU là10MHz?
TRẢ LỜI:
- Một chu kỳ truy cập ghi bộ nhớ của vi xử lý 8086 gồm 4 chu kỳ đồng hồ
- /MEMW tích cực khi CPU thực hiện lệnh ghi bộ nhớ
- Thời gian của một chu kỳ ghi bộ nhớ khi tần số đồng hồ CPU là f = 10MHz : 4*1/
(10.10^6)=400ns
Trang 11T =1/f => t = 4*T
Câu 6: Vẽ bản đồ bộ nhớ của máy tính PC/XT dùng vi xử lý 8088? Nêu chức năng, dung
lượng, vùng địa chỉ của bộ nhớ qui ước (conventional memory)? Trong máy tính, để phát hiệnlỗi đọc và ghi bộ nhớ, mỗi byte được bổ sung thêm thông tin gì? Giá trị của nó được xác địnhntn?
bố trí liên tục từ 00000-9FFFFH gọi là bộ nhớ quy ước
- Khi khởi động BIOS sẽ kiểm tra không gian nhớ này và lưu tổng số bộ nhớ được lắp đặtvào vùng giữ liệu của BIOS tại địa chỉ 0040:0017
- 1KB đầu tiên có địa chỉ từ 00000-003FFF dành cho bảng vector ngắt,256 byte tiếp theo
từ 00400-004FF được dành cho vùng dữ liệu cảu BIOS 256 byte tiếp theo nữa từ 00500-005FFdùng để ghi các tham số DOS vùng từ 00700-9FFFF để dành cho các yêu cầu của DOS ghi cấuhình máy Phần còn lại dành cho các phần mềm ứng dụng Mọi máy tính PC/XT và tương ứngđều có bộ nhớ quy ước
- Trong máy tính thường dùng mã kiểm tra lỗi trong bộ nhớ :
o Một trong mã đó là mã chẵn lẻ (Parity code)
o Khi ghi dữ liệu bit Parity được ghi cùng dữ liệu (bit thứ 9)
o Khi đọc byte, Parity được kiểm tra xem có trùng Parity lưu trong bit 9 không.Nếu OK,nếu sai-phát sinh ngắt NMI đến CPU
trùng-Ngoài mã Parity phát hiện lỗi , mã sửa lỗi (ECC) có thể sửa lỗi một số bit trong dữ liệu
Câu 7: Vẽ bản đồ bộ nhớ của máy tính PC/XT dùng vi xử lý 8088? Nêu chức năng, dung
lượng, vùng địa chỉ của bộ nhớ hiển thị VDR (Video Display RAM)? Xác định địa chỉ đoạn và
độ lệch của ngăn nhớ trong bộ nhớ hiển thị VDR tương ứng với ký tự ở góc dưới cùng bên tráimàn hình, nếu màn hình được thiết lập ở chế độ văn bản, độ phân dải 80 x 25?
TRẢ LỜI:
Bản đồ bộ nhớ của máy tính PC/XT dùng vi xử lý 8088 <CÂU 1>
VDR có dung lượng 124kb Địa chỉ: từ A0000 đến BFFFFH Chức năng: lưu thông tincần hiển thị lên màn hình
Màn hình được thiết lập ở chế độ văn bản có địa chỉ đoạn: B800H
Màn hình có độ phân giải 80x25, ký tự nằm ở góc dưới cùng bên trái -> (1;25) có độ lệchoffset là: (d-1)*160+(c-1)*2 = (25-1)*160+(1-1)*2 = 0F00
Trang 12 B800:0F00
Câu 8: Vẽ bản đồ bộ nhớ của máy tính PC/XT dùng vi xử lý 8088? Nêu chức năng, dung
lượng, vùng địa chỉ của bộ nhớ ROM? Hãy cho biết, vi mạch ROM BIOS có dung lượng 8KB,nằm ở vùng địa chỉ nào (từ đến )?
TRẢ LỜI:
Bản đồ bộ nhớ của máy tính PC/XT dùng vi xử lý 8088 <CÂU 1>
Bộ nhớ ROM có dung lượng 256Kb từ C0000H – FFFFFH Trong số 256K byte, mộtphần dùng để chứa các chương trình của ROM BIOS, Một phần dành cho chương trình dịchngôn ngữ BASIC (để trong ROM) một phần bộ nhớ cho bộ điều khiển đĩa cứng và các ROMcủa bảng mạch ngoại vi khác và phần còn lại cho người dùng
Vi mạch ROM BIOS có dung lượng 8KB, nằm ở vùng địa chỉ FE000 – FFFFF
Câu 9: Tín hiệu nào trong các tín hiệu sau tích cực: IOR, IOW, MEMR, MEMW, khi CPU
thực hiện lệnh đọc mã lệnh? Tính thời gian của một chu kỳ ghi bộ nhớ, nếu biết tần số đồng hồcủa CPU là 10MHz? Nếu chip nhớ RAM có thời gian truy cập là 100ns, thì CPU có cần chènthêm trạng thái chờ vào chu kỳ ghi không? Tại sao?
Trang 13Câu 10: Vẽ bản đồ bộ nhớ máy tính IBM PC/XT? Nêu chức năng của các vùng nhớ? Sau khởi
động, CPU thực hiện lệnh đầu tiên nằm trong vùng nhớ nào? Điều đó có liên quan gì với giátrị của thanh ghi đoạn mã lệnh và con trỏ lệnh?
TRẢ LỜI:
- Khi khởi động máy tính sẽ khởi tạo thanh ghi đoạn mã lệnh CS=FFFFh và thanh ghi contrỏ lệnh IP=0000h, bộ vi xử lý 8088 nhận thông tin do CS:IP trỏ tới là FFFF:0000, ứng với địachỉ vật lý FFFF0h Như vậy khi CPU thực hiện lệnh đầu tiên nằm ở vùng địa chỉ cao(vùng nhớtrên) của bản đồ nhớ
Trang 14Câu 11: Số bit địa chỉ và dữ liệu của Bus hệ thống trên máy tính có liên quan gì đến dung
lượng và độ rộng từ nhớ của bộ nhớ trên máy tính? Một chu kỳ bus đọc hay ghi bộ nhớ của vi
xử lý 8088 gồm mấy chu kỳ đồng hồ? Tính thời gian mà bộ vi xử lý truy cập ngăn nhớ, nếutần số của đồng hồ là 5MHz (giả sử không có chu kỳ đợi khi truy cập)?
TRẢ LỜI:
1 Số bit địa chỉ và dữ liệu của Bus hệ thống trên máy tính có liên quan gì đến dung lượng và
độ rộng từ nhớ của bộ nhớ trên máy tính?
Trả lời:
- Số lượng các tín hiệu địa chỉ (bus địa chỉ) của một CPU quyết định độ lớn của khônggian nhớ của máy tính sử dụng CPU đó, tức là quyết định số lượng ô nhớ lớn nhất có thể
có trong bộ nhớ máy tính Số lượng các tín hiệu địa chỉ càng lớn thì không gian nhớ
càng lớn Giả sử số lượng tín hiệu địa chỉ là n thì số ô nhớ có thể là 2n
- Số lượng các tín hiệu số liệu (bus số liệu) quyết định tốc độ truy cập bộ nhớ của CPU(hiểu theo cách là dung lượng dữ liệu có thể truy cập trong 1 chu kỳ đọc ghi)
2 Một chu kỳ bus đọc hay ghi bộ nhớ của vi xử lý 8088 gồm 4 mấy chu kỳ đồng hồ : (T1, T2,T3 ,T4 )
3 Tần số của đồng hồ là 5MHz => ta có chu kỳ là 200ns Do đó chu kỳ đọc ghi bộ nhớ là800ns (vì 1 chu kỳ ghi gồm 4 chu kỳ đồng hồ )
Câu 12: Máy tính IBM PC XT có 20 bits địa chỉ Nếu bộ nhớ RAM (có địa chỉ từ 00000 –
9FFFF) sử dụng vi mạch nhớ có dung lượng 4x8 kbits, thì có bao nhiêu vi mạch nhớ được sửdụng? Giải mã địa chỉ được tổ chức mấy cấp? Những bit địa chỉ nào được dùng để chọn vimạch nhớ, những bit địa chỉ nào được dùng để chọn ngăn nhớ trong vi mạch nhớ?
Trang 15Phần III Vào ra Câu 1: Mô tả các lệnh vào/ra cổng của bộ vi xử lý: tên lệnh, cú pháp, chức năng? Dung lượng
của không gian vào /ra khi sử dụng chế độ địa chỉ trực tiếp? Tín hiệu điều khiển nào được sửdụng khi dùng lệnh đọc cổng vào và ghi cổng ra
TRẢ LỜI:
1 Các lệnh vào/ra:
Trường hợp 1: Cổng dữ liệu 8 bit (port8)
Đọc dữ liệu: IN đích, nguồn
Dạng 1: IN AL, port8 ; nếu địa chỉ port8 < 256
Dạng 2: MOV DX, port8 ; nếu port8 > 255
IN AL, DX
Xuất dữ liệu: OUT đích, nguồn
Dạng 1: OUT port8, AL ; nếu địa chỉ port8 < 256
Dạng 2: MOV DX, port8 ; nếu port8 > 255
OUT DX, AL
Trường hợp 2: Cổng dữ liệu 16 bit (port16)
Đọc dữ liệu: IN đích, nguồn
Dạng 1: IN AX, port16 ; nếu địa chỉ port16 < 256
Dạng 2: MOV DX, port16 ; nếu port16 > 255
IN AX, DX
Xuất dữ liệu: OUT đích, nguồn
Dạng 1: OUT port16, AX ;nếu địa chỉ port16 < 256
Dạng 2: MOV DX, port16 ; nếu port16 > 255
OUT DX, AX
2 Chế độ địa chỉ trực tiếp: không gian cổng vào và không gian cổng ra được địa chỉ hóa bới 8 bits địa chỉ từ A0 đến A7 do đó ta có thể có được 28 cổng vào và 28 cổng ra có địa chỉ
từ 00 H đến FF H
3 Với BVXL có hỗ trợ vào/ra: khi đó BVXL có phần cứng và tập lệnh hỗ trợ vào ra
Cụ thể sẽ có tín hiệu điều khiển vào/ ra riêng IOR, IOW
BVXL không có hỗ trợ vào/ra riêng biệt, khi đó không gian vào/ra sẽ phải sử dụng 1 phần không gian bộ nhớ làm không gian vào/ra, tín hiệu đọc thiết bị vào là MEMR và tín hiệu ghi thiết bị ra là MEMW
Trang 16Câu 2: Trình bày chức năng, các thanh ghi bên trong và các chế độ lập trình của vi mạch vào/ra
song song 8255A? Trong máy tính PC, vi mạch 8255A nằm trên Mainboard có địa chỉ chọn chip là bao nhiêu, được lập trình ở chế độ nào? Chiều của các cổng được thiết lập như thế nào? Viết lại đoạn chương trình khởi tạo 8255A trong BIOS của máy tính?
TRẢ LỜI:
1 Vi mạch lập trình 8255 là vi mạch lập trình cho phép nối ghép vào/ra song song
Bên trong vi mạch có 4 thanh ghi có thể lập trình được là thanh ghi 8 bit tương ứng vớicổng A được gọi là thanh ghi PA Thanh ghi 8 bits tương ứng với cổng B được gọi là thanh ghi
PB và thanh ghi 8 bits tương ứng với cổng C được gọi là thanh ghi PC Một thanh ghi để xáclập chế độ làm việc của 8255 được gọi là thanh ghi điều khiển
Vi mạch vào/ra song song 8255A có 4 chế độ lập trình:
- Mode 0 <Chế độ vào/ra đơn giản>: cổng A, B, C chỉ là cổng vào hoặc cổng ra
- Mode 1 <Chế độ bắt tay>: cổng A, B – vào/ra đơn giản; cổng C – bắt tay (là quá trìnhtrao đổi thông tin giữa 2 thiết bị thông minh)
- Mode 2 < Chế độ vào ra 2 chiều>: cổng A – vào/ ra 2 chiều; cổng B – vào/ra đơn giản;cổng C – bắt tay
- Mode 3 < Lập xóa bít BRS>: lập xóa từng bít của cổng C
2 Vi mạch 8255A nằm trên Mainboard có địa chỉgiải mã 60h, làm việc ở chế độ 0:Thanh ghi cổng A - 60h là cổng vào: Đọc mã bàn phím
Thanh ghi cổng B – 61h là cổng ra: Điều khiển loa, cho phép kiểm tra chẵn lẻ RAM vàkênh I/O
Thanh ghi cổng C – 62h là cổng vào: Đọc cấu hình máy tính
3 Từ điều khiển máy tính IBM PC/XT
- Chế độ vào ra đơn giản: mode 0
Từ điều khiển: 1001 1001= 99H
Đoạn chương trình khởi tạo 8255 của BIOS IBM PC/XT:
MOV AL,99H ;Từ điều khiển
OUT 63H,AL ;ghi vào thanh ghi điều khiển
Câu 3: Trình bày chức năng, các thanh ghi bên trong và các chế độ làm việc của vi mạch định
thời 8253? Trong máy tính PC, vi mạch 8253 có địa chỉ bao nhiêu? Các bộ đếm của 8253 đượckhởi tạo ở những chế độ nào? Viết lại đoạn mã chương trình khởi tạo cho 3 bộ đếm của 8253?