Đề tài 6. Nghiên cứu tìm hiểu về CPU 8088 của Intel và nguyên lý làm việc thông qua các chân tín hiệu.

18 1.7K 1
Đề tài 6. Nghiên cứu tìm hiểu về CPU 8088 của Intel và nguyên lý làm việc thông qua các chân tín hiệu.

Đ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

BÀI TẬP LỚN MÔN : KIẾN TRÚC MÁY TÍNH Đề tài: Nghiên cứu tìm hiểu CPU 8088 Intel nguyên lý làm việc thông qua chân tín hiệu Nội dung & yêu cầu: Trình bày sơ đồ chân, chức chân tín hiệu Sơ đồ khối, chức khối, đặc điểm chức ghi để thấy nguyên lý làm việc vi xử lý 8088 Lớp KHMT Trường ĐH Công Nghiệp Hà Nội NHÓM 11: Nguyễn Duy Đạt Nguyễn Kim Thái Nguyễn Thành Luân Nguyễn Hữu Tiến [1] MỤC LỤC: Mục lục Error: Reference source not found Phần I: Tìm hiểu CPU 8088 Intel 1.1: Giới thiệu chung………………………………………………………… 1.1: Các đặc tính kĩ thuật chủ yếu…………………………………… …… Phần II: Sơ đồ chân, chức chân tín hiệu 2.1 Sơ đồ chân 2.2 Các chân tín hiệu………………………………………………………….4 2.3 Chế độ MIN (Chân MN/MX cần nối thẳng vào +5V mà không qua điện trở)……………………………………………………………………………… 2.4 Chế độ MAX ( chân MN/MX cần nối thẳng vào 0V)…………… Phần III: Sơ đồ khối chức khối Nguyên lý làm việc CPU 8088 3.1 Các khối CPU 8088…………………………………………………8 3.2 ALU……………………………………………………………………… 3.3 BIU……………………………………………………………………… 3.4: EU…………………………………………………………………………11 3.5 Nguyên lý làm việc CPU 8088……………………………………….11 Phần IV: Đặc điểm chức ghi 4.1 Các ghi chức năng.……………………………………………… 11 4.2 Các ghi trỏ số………………………………………… 12 4.3 Các ghi cờ………………………………………………………… 13 4.4 Thanh ghi đoạn……………………………………………………………15 [2] Phần I: Tìm hiểu CPU 8088 Intel 1.1 Giới thiệu chung - Bộ vi xử lý 8088 thuộc họ vi xử lý Intel - Điển hình là: • 8085 vi xử lý bit • 8086 vi xử lý 16 bit hoàn chỉnh • 8088 vi xử lý 16 bit trong/8 bit 1.2 Các đặc tính kĩ thuật chủ yếu - Số ghi: 14 ghi 16 bit - Bus địa chỉ: 20 bit - Bus liệu: - Tập lệnh: 115 - Tốc độ chuẩn: 4.77 Mhz - Số chân vi xử lý: 40 Bộ xử lý 8088 đời sau 8086, có cấu trúc bên tập lệnh hoàn toàn giống 8086 Chỉ khác 8086 kênh chuyển liệu với bên 8088 sử dụng kênh liệu bit nên việc truyền liệu ghi với nhớ chậm so với 8086 Đây bước lùi kĩ thuật đem lại nhiều lợi ích kinh tế Tại thời điểm lịch sử đó, bus DataMaster bit sử dụng rộng rãi thị trường, nhiều loại card mở rộng chip hỗ trợ có sẵn thị trường loại bit nên có giá thấp loại 16 bit tương ứng Việc sử dụng bus liệu bit giúp cho người sử dụng nâng cấp máy tận dụng card bit máy cũ phải mua với giá thấp đồng thời giúp cho nhà sản xuất máy tương thich IBM PC có thêm nhiều hội lựa chọn sản phẩm hãng khác Chiến lược phát triển có tính thừa kế góp phần làm cho khách hàng IBM ngày gia tăng Bộ vi xử lý sử dụng rộng rãi thời gian tới tính kế thừa sản phẩm họ x86 Các chương trình viết cho 8088 chạy hệ thống tiên tiến sau Bên cạnh có nhược điểm: [3] Tốc độ đơn vị thực (EU) bus CPU 8086 cân bằng; với kết hợp hướng dẫn điển hình, 8086 thực hướng dẫn khỏi prefetch xếp hàng chút tốt thời gian Cắt giảm xe buýt đến bit làm cho nút cổ chai nghiêm trọng 8088 Với tốc độ hướng dẫn Truy xuất giảm 50% 8088 so với 8086, chuỗi hướng dẫn nhanh chóng nhanh chóng thoát hàng đợi prefetch 4-byte Khi hàng đợi rỗng, hướng dẫn tận lâu dài để hoàn thành họ làm để lấy Cả hai 8086 8088 bốn chu kỳ đồng hồ để hoàn thành chu kỳ bus; đối 8086 có nghĩa đồng hồ để chuyển byte, 8088 đồng hồ byte Vì vậy, ví dụ, thay đổi byte hướng dẫn xoay, có EU có chu kỳ đồng hồ để thực hiện, thực tám đồng hồ để hoàn thành hàng đợi prefetch Một chuỗi hướng dẫn nhanh ngăn chặn hàng đợi bị đầy nhanh thoát nước tốt, Nói chung, có nhiều hướng dẫn thực bốn đồng hồ theo hướng dẫn byte bao gồm gần tất hướng dẫn ALU liệu di chuyển đăng ký toán hạng số số nhớ toán hạng, thực tế tránh idling EU 8088 1/4 số thời gian thực chương trình hữu ích giới thực, khó để nhàn rỗi nửa thời gian Tóm lại, 8088 thường chạy khoảng nửa nhanh tốc độ 8086 mức tương tự, nút cổ chai xe buýt (sự khác biệt lớn nhất) Một tác dụng phụ việc thiết kế 8088, với xe buýt chậm hàng đợi prefetch nhỏ, tốc độ thực thi mã phụ thuộc vào thứ tự hướng dẫn Khi lập trình 8088, cho hiệu CPU, quan trọng để interleave hướng dẫn lâu dài với người thân ngắn Ví dụ, hoạt động chuỗi lặp lặp lại thay đổi ba nhiều thời gian đủ dài để có thời gian cho prefetch hàng đợi 4-byte để hoàn toàn lấp đầy Nếu hướng dẫn ngắn (tức người với tổng số byte) đặt hướng dẫn chậm này, ngắn thực tốc độ cao khỏi hàng đợi Nếu, mặt khác, hướng dẫn chậm thực tuần tự, trở lại trở lại, sau sau người số đơn vị xe buýt bị buộc phải nhàn rỗi hàng đợi đầy đủ, với hậu mà sau hướng dẫn nhanh phải chịu lấy chậm trễ tránh Như số hướng dẫn, chẳng hạn thay đổi bit đơn-vị trí xoay, lấy nghĩa đen lần lâu dài để lấy để thực hiện, [c] hiệu tổng thể suy giảm yếu tố hai nhiều Nếu phân đoạn mã quan vòng, khác biệt thời gian thực đáng ý thang thời gian người 8088 (như 8086) chậm truy cập nhớ Cùng ALU sử dụng để thực hướng dẫn số học logic sử dụng để tính toán địa có hiệu (Có cộng riêng biệt để thêm ghi đoạn chuyển đến địa bù đắp, EA bù đắp luôn tính hoàn toàn ALU chính.) Hơn nữa, khớp nối lỏng lẻo EU BIU (đơn vị xe buýt) chèn phí thông tin liên lạc đơn vị, bốn đồng hồ chuyển thời gian xe buýt chu kỳ không đặc biệt xếp hợp lý (Tương phản hai chu kỳ đồng hồ thời gian xe buýt CPU 6502 ba đồng hồ chu kỳ bus 80286 với pipelining xuống hai chu kỳ cho hầu hết giao dịch chuyển) Hầu hết 8088 hướng dẫn hoạt động hai sổ đăng ký nhớ, bao gồm ALU chung liệu chuyển động [4] hoạt động, bốn lần chậm cho toán hạng nhớ so với đăng ký toán hạng Vì vậy, 8088 (và 8086) chương trình hiệu tránh lặp lại quyền truy cập toán hạng nhớ có thể, tải toán hạng từ nhớ vào ghi làm việc với họ lưu lại có kết cuối Các thiết lập đăng ký chung tương đối lớn 8088 so với thời hỗ trợ chiến lược Khi đủ đăng ký cho tất biến cần thiết lúc, tiết kiệm đăng ký cách đẩy họ vào stack popping chúng trở lại để khôi phục chúng cách nhanh để sử dụng nhớ để tăng cường cho đăng ký, hướng dẫn ngăn xếp PUSH POP hoạt động nhớ nhanh (Điều không thật 80.286 sau đó, họ dành riêng địa ALU thực truy cập nhớ nhanh nhiều so với 8088 8086) Phần II : Sơ đồ chân, chức chân tín hiệu 2.1 Sơ đồ chân : S6 = liên tục, S5 phản ánh IF S3,S4 phối hợp để chia việc truy nhập ghi đoạn S3 1 S4 0 1 Truy vấn đến đoạn Đoạn liệu phụ (ES:) Đoạn ngăn xếp (SS:) [5] Đoạn mã không đoạn Đoạn liệu Bảng bit trạng thái việc truy nhập đến ghi đoạn (Hình vẽ: Đóng vỏ DIP 40 chân 8088) 2.2 Các chân tín hiệu: • AD7 – AD0 [I/O]: Các chân dồn kênh cho tín hiệu phần thấp bus địa liệu Khi xung ALE = => báo cho mạch biết đường (các chân) có tín hiệu liệu (ALE: Address Latch Enable) Khi xung ALE = => báo cho mạch biết đường (các chân) có tín hiệu địa Các chân trạng thái trở kháng cao 8088 nhận treo (Hold) • A15-A8[O]: Là bit phần cao bus địa Các chân trạng thái trở kháng cao 8088 chấp nhận treo • A16/S3, S17/S4, A18/S5, A19/S6 [O]: Là chân dồn kênh cho địa phần cao tín hiệu trạng thái (A: Address, S: Status) KhiALE = 0: Tại chân tín hiệu trạng thái: S6-S3 Khi ALE = 1: Tại chân tín hiệu địa Các chân trạng thái trở kháng cao 8088 chấp nhận treo • RD [O]: Tín hiệu điều khiển đọc (“Xung cho phép đọc” Khi RD = bus liệu sẵn sàng nhận liệu từ nhớ thiết bị ngoại vi Chân RD trạng thái trở kháng cao 8088 chấp nhận treo • READY [I]: Tín hiệu báo cho CPU biết tình trạng sẵn sàng thiết bị ngoại vi nhớ Khi READY = => CPU thực ghi/đọc mà không cần xen thêm chu kì đợi Ngược lại thiết bị ngoại vi hay nhớ có tốc độ chậm => chúng đưa tín hiệu READY = để báo cho CPU chờ Khi CPU tự kéo dài thời gian thực ghi/đọc xen thêm chu kì đợi • INTR [I]: Đây chân tiếp nhận tín hiệu yêu cầu ngắt che Khi có yêu cầu ngắt tác động đến chân mà cờ cho phép ngắt IF = CPU kết thúc lệnh thi hành dở (kết thúc chu kì lệnh), sau vào chu kì chấp nhận ngắt đưa tín hiệu INTA = chân INTA (24) • TEST [I]: Tín hiệu chân kiểm tra lệnh WAIT Khi CPU thực lệnh WAIT mà TEST = CPU chờ TEST = thực lệnh [6] • NMI [I]: Tín hiệu yêu cầu ngắt không che Tín hiệu không bị khống chế cờ IF CPU nhận biết đường xung yêu cầu ngắt Nhận yêu cầu CPU kết thúc lệnh làm dở, sau chuyển sang thực chương trình phục vụ ngắt INT2 (ISR: Interrupt Service Routie) • RESET [I]: Tín hiệu Reset 8088 (Trong chừng mực coi tín hiệu tín hiệu yêu cầu ngắt không che được) Khi tín hiệu RESET = kéo dài chu kì đồng hồ (4 xung clock) 8088 bị buộc phải khởi động lại, xóa ghi: DS, ES,SS, IP FR bắt đầu thực chương trình địa CS:IP =FFFF:0000 (như khởi động, IF giảm giá thành hệ thống • IO/M [O]: Tín hiệu phân biệt thời điểm cụ thể phần tử thiết bị vào/ra (I/O) nhớ (M: Memory) chọn để trao đổi liệu với CPU Trên Address bus lúc có địa tương ứng thiết bị Chân trạng thái trở kháng cao CPU chấp nhận treo • WR [O]: Xung cho phép (giống RD) Khi CPU đưa tín hiệu WR =0 liệu ổn định chúng ghi vào nhớ thiết bị vào/ra thời điểm chuyển mức WR = Chân WR trạng thái trở kháng cao 8088 chấp nhận treo • INTA [O]: Tín hiệu điều khiển báo cho mạch bên biết CPU chấp nhận yêu cầu ngắt (INTR) Lúc CPU đưa tín hiệu INTA = để báo cho thiết bọ ngoại vi biết chờ mạch đưa lên Data bus số liệu ngắt (kiểu ngắt) [7] • ALE [O]: Xung cho phép chốt địa (Address Latch Enable) Khi ALE =1 có nghĩa bus dồn kênh A/D địa thiết bị ngoại vi hay nhớ ALE không bị thả (trạng thái trở kháng cao), CPU chấp nhận treo ALE =0 • DT/R [O]: Tín hiệu điều khiển đệm bus chiều Data bus để chọn chiều vận chuyển liệu bus D Chân trạng thái trở kháng cao 8088 chấp nhận treo • DEN [O]: Tín hiệu báo cho bên biết bus dồn kênh A/D có liệu ổn định Chân trạng thái trở kháng cao 8088 chấp nhận treo • HOLD [O]: Tín hiệu yêu cầu treo CPU để mạch thực trao đổi liệu với nhớ cách truy cập trực tiếp nhớ (DMA- Direct Memory Access) Khi HOLD =1, 8088 tự tách khỏi hệ thống cách treo bus A, D, C (các bus trạng thái trở kháng cao) để điều khiển DMA DMAC (DMA Controler) lấy quyền điều khiển hệ thống để thực công việc trao đổi dự liệu • HLDA [O]: Tín hiệu báo cho bên biết yêu cầu treo CPU CPU chấp nhận CPU treo bus A, D số tín hiệu điều khiển bus C • SS0 [O]: Đây tín hiêu trạng thái Tín hiệu giống S0 chế độ Max dùng kết hợp với IO/M, DT/R để giải mã hoạt động bus IO/M DT/R 0 0 1 1 1 1 SS0 1 1 Chu kì điều khiển bus Đọc mã lệnh Đọc nhớ Ghi nhớ Bus rỗi (nghỉ) Chấp nhận yêu cầu ngắt Đọc thiết bị ngoại vi Ghi thiết bị ngoại vi Dừng (Halt) Bảng quan hệ số tín hiệu điều khiển 2.4 Chế độ MAX ( chân MN/MX cần nối thẳng vào 0V) Khi 8088 làm việc chế độ Max, số tín hiệu điều khiển cần tạo sở tín hiệu trạng thái nhở dùng thêm bên mạch điều khiển bus 8288 Chế độ Max sử dụng hệ thống có mặt đồng xử lý toán học 8087 [8] Bộ vi xử lý 8088 có hai chế độ hoạt động chế độ MIN chế độ MAX nên số chân có chức khác chế độ hoạt động khác vi xử lý MN/MX nối với +5V - chế độ MIN ,nối với đất - chế độ MAX • S0 0 0 1 1 S0, S1 S2 [O]: Là tín hiệu trạng thái dùng chế độ Max để ghép nối với mạch điều khiển bus 8288 Các tín hiệu 8288 dung để tạo tín hiệu điều khiển chu kì hoạt động bus tín hiệu điều khiển có bảng sau: S1 0 1 0 1 S2 1 1 Chu kì điều khiển bus Chấp nhận yêu cầu ngắt Đọc thiết bị ngoại vi Ghi thiết bị ngoại vi Dừng (Halt) Đọc mã lệnh Đọc nhớ Ghi nhớ Bus rỗi (nghỉ) Tín hiệu INTA IORC IOWC, AIOWC Không MRDC MRDC MWTC, AMWC Không • RQ/GT0 RQ/GT1 [O]: Là tín hiệu yêu cầu dùng bus vi xử lý khác hệ thống thông báo chấp nhận treo CPU phép vi xử lý khác hệ thống dùng bus RQ/GT0 có mức ưu tiên cao RQ/GT1 • LOCK [O]: Tín hiệu CPU đưa để cấm vi xử lý khác hệ thống dùng bus thi hành lệnh đặt sau tiếp đầu LOCK • QS0 QS1 [O]: Tín hiệu thông báo trạng thái khác đệm lệnh (hàng đợi lệnh) Trong hệ vi xử lý có mặt hệ đồng xử lý toán học 8087 tín hiệu dùng để đồng trình hoạt động với 8088 QS0 0 1 QS1 1 Trạng thái đệm lệnh Không hoạt động Đọc byte mã lệnh từ đệm lệnh Đệm lệnh rỗng Đọc byte đệm lệnh [9] Phần III: Sơ đồ khối chức khối Nguyên lý làm việc CPU 8088 3.1 Các khối CPU 8088: Sự hoạt động vi xử lý 8088 thực việc thức lặp lặp lại thao tác lấy lệnh (fetch), giải mã lệnh (decode) thực (execute) CPU 8088 gồm khối chính: - EU (Execution Unit): Đơn vị (khối) thực lệnh - BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để điều khiển bus hiệu Việc chia CPU làm thành phần làm việc đồng thời có liên hệ với qua đệm lệnh làm tăng đáng kể tốc độ xử lý CPU Các bus CPU có nhiệm vụ truyền tải tín hiệu khối Trong số bus có bus liệu 16 bit ALU, bus tín hiệu điều khiển EU bus hệ thống BIU Trước bus vào bus vi xử lý tín hiệu truyền bus thường cho qua cán đệm để nâng cao tính tương thích cho nối ghép nâng cao nối ghép [10] Sơ đồ khối CPU 8088 3.2 ALU Làm nhiệm vụ thực lệnh số học logic • Số học: +, -, *, \, so sánh, đảo dấu • Logic: NOT, AND, OR, XOR 3.3 BIU (Bus Interface Unit) BIU gồm có mạch tạo địa điều khiển BUS Nó có nhiệm vụ bảo đảm cho BUS sử dụng hết dung lượng Để đảm bảo điều đó, BIU phải thực chức sau: - Chức 1: BIU nhận trước lệnh cất tạm vào dãy chứa lệnh nhờ mà MP tăng tốc độ tính toán - Chức 2: BIU đảm đương chức điều khiển BUS để EU tập trung vào việc xử lý liệu thực lệnh Con trỏ chứa địa lệnh thực BIU dùng để trực tiếp truy xuất phối ghép với phận khác máy tính BIU gồm khối chức năng: - Đơn vị điều khiển BUS - Hàng chứa lệnh - Điều khiển địa Đơn vị điều khiển BUS ( Bus control unit): dùng để thực thao tác BUS MP Nó tiếp nhận tạo lệnh, liệu tín hiệu điều khiển MP với nhớ khác hệ Ví dụ, xác định hướng di chuyển liệu BUS liệu đường dây điều khiển DT/R (data transmit/receive ) phát thu liệu.\ Hàng chứa lệnh ( Instruction Queue ): dùng để lưu trữ tạm thời lệnh thực EU Thông qua đơn vị điều khiển BUS BIU nhận trước lệnh cất chúng tạm vào hàng chứa lệnh Đây công việc tốn nhiều thời gian BIU đưa địa chỉ, đọc mã lệnh từ nhớ, đọc/ghi liệu từ cổng vào nhớ Nói cách khác, BIU chịu trách nhiệm đưa địa bus trao đổi liệu với bus [11] Trong BIU có nhớ đệm với dung lượng byte dùng để chứa mã lệnh để chờ EU xử lý ( Bộ đệm gọi hàng đợi lệnh) ° Hàng đợi: tập ghi Với 8086 hàng đợi lệnh byte, 8088 hàng đợi lệnh byte nên chứa tối đa lệnh CPU chưa tập ghi theo kiểu LIFO Cơ chế:  Đọc lệnh (lấy lệnh)  Giải mã lệnh  Thực lệnh ° Thanh ghi IP: Thanh ghi trỏ lệnh, trỏ vào lệnh chuẩn bị thực nằm đoạn CS (CS:IP) Sau đọc byte, IP tự động tăng thêm Như thực tế cặp CS:IP trỏ lệnh chứa địa đầy đủ lệnh nhớ 3.4 EU (Execution Unit) EU bào gồm đơn vị điều khiển, khối có mạch giải mã lệnh Mã lệnh đọc vào từ nhớ đưa đến đầu vào giải mã, thông tin thu từ đầu dược đưa đến mạch tạo xung điều khiển, kết ta thu dãy xung khác từ kênh điều khiển ( tùy vào mã lệnh) để điều khiển hoạt động phận bên bên CPU Ngoài CPU có khối số học lôgic ( Arithmetic And Logic Unit ALU) dùng để thực thao tác khác với toán hạng lệnh Các bus liệu bên EU 16 bit, Eu không nối trực tiếp với bên ngoài, nhận lệnh từ hành đợi lệnh bên BIU Nếu lệnh cần truy cập nhớ cổng vào/ra(I/O port-thiết bị ngoại vi) EU yêu cầu BIU lấy gửi liệu tất địa mà EU thao tác 16 bit, gửi sang BIU BIU thực tính toán để tạo địa vật lý 20 bit phát chân địa chip Tóm lại, CPU hoạt động EU cung cấp thông tin địa cho BIU để khối đọc lệnh liệu thẩn khối đọc lệnh giải mã lệnh 3.5 Nguyên lý hoạt động CPU 8088  BIU có nhiệm vụ đưa địa , đọc mã lệnh từ nhớ, đọc ghi liệu từ/vào cổng nhớ Bên BIU có nhớ đệm (còn gọi hàng đợi lệnh) với dung lượng byte dùng để chứa lệnh đọc nằm sẵn chờ EU xử lý Đây cấu trúc cấy vào vi xử lý 8088 để thực chế xử lý liên tục dòng mã lệnh (Instruction Pipelining) Pipeline chế ứng dụng từ năm 60 máy tính lớn [12]  EU có nhiệm vụ cung cấp địa cho BIU để khối đọc lệnh liệu Giải mã lệnh để tạo tín hiệu điều khiển nhằm thực lệnh giải mã Trong EU có khối tính toán số học logic ALU dùng để thực thao tác khác với toán hạng lệnh Phần IV: Đặc điểm chức ghi 4.1 Các ghi chức năng: Trong khối EU có ghi đa 16 bit Ax, Bx, Cx, Dx Điều đặc biệt cần chứa liệu bit ghi phân chia thành ghi bit cao bit thấp để làm việc độc lập nhau, tập ghi AH AL, BH BL, CH CL, DH DL ( H phần cao, L phần thấp) Mỗi ghi sử dụng cách vạn để chứa tập liệu khác có công việc định thao tác với vài ghi Chính vây ghi thường gắn tên cụ thể sau: • Ax (Accumulator, Acc): chứa, chứa tạm thời liệu (toán hạng, kết phép toán nhân, chia coi Acc) Ax đc phân chia thành AH( phần cao) AL (phần thấp) Nếu kết bit ghi Ax coi ghi tích lũy • Bx (Base): Thanh ghi sở, thường dùng để chưa địa sở cần truy nhập lệnh XLAT BX phân chia thành BH (Phần cao) BL (Phần thấp) • Cx (Count): Bộ đếm, thường dùng để đếm số lần lặp công việc (số vòng lặp vòng lặp) Cx chia thành CH (phần cao) CL (phần thấp) CH thường dùng để chứa số lần lặp lệnh LOOP, CL thường chứa số lần dịch quay lệnh dịch quay ghi • Dx (Data): Thanh ghi liệu , sử dụng để chứa toán hạng , kết Ax Dx dung để chứa toán hạng kết qủa phép nhân chia số 16 bit Dx chứa địa cổng vào trực tiếp (In,Out) Dx phân chia thành DH (phần cao) DL (phần thấp) [13] 4.2 Các ghi trỏ số: Trong CPU 8088 có ba ghi trỏ hai ghi số 16bit Các ghi dùng cho việc lưu trữ thông tin khu vực đặc biệt nhớ Nó thường dùng chủ yếu để trỏ ghi số để xác định địa nhớ Các địa chứa ghi liên hợp với thông tin từ BIU để xác định vị trí thực liệu nhớ.Các ghi ( trừ IP) dùng ghi đa năng, ứng dụng ghi chúng ngầm định ghi lệch cho đoạn tương ứng Cụ thể: • SP (Stack Pointer): Thanh ghi trỏ xếp, trỏ vào đỉnh thời xếp nằm đoạn ngăn xếp SS (Nó kết hợp với ghi SS) Ta có địa logic SS:SP Sau thao tác cất word vào stack (thao tác Push) SP tự động giảm đơn vị, sau thao tác lấy word khỏi stack (thao tác Pop), SP tự động tăng đơn vị • BP (Base stack Pointer): Con trỏ sở, trỏ vào liệu cụ thể, nằm đoạn ngăn xếp SS Ta có địa logic SS: BP • SI (Source Index): Thanh ghi số nguồn (hay nguồn), vào liệu nằm đoạn DS Ta có địa logic DS: SI [14] • DI (Destination Index): Thanh ghi số đích, liệu đoạn DS Ta có địa logic DS: DL Ta có cặp SP, BP với SS SI, DI với DS Trong lệnh thao tác với liệu kiểu chuỗi cặp ES: DI ứng với địa phần tử thuộc chuỗi đích cặp DS: SI ứng với địa phần tử thuộc chuỗi nguồn 4.3 Thanh ghi cờ: Đây ghi 16 bit, bit sử dụng để thể trạng thái vi xử lý thời điểm định trình thực chương trình dãy câu lệnh, dung bit vi xử lý 8088 Mỗi bit gọi cờ (flag) Giá trị cờ biểu diễn kí hiệu gợi nhớ cách biểu diễn chương trình Debug DOS Dựa vào cờ người lập trình có lệnh thích hợp cho vi xử lý Thanh ghi cờ 16 bit người ta dùng hết bit để làm bit cờ hình vẽ đây: 15 x 14 x 13 X 12 X 11 O 10 D I T S | Z x A x P X Các cờ vi xử lý 8088 C | (x: không định nghĩa (don’t care), với bit thấp cờ vi xử lý 8088) Hình vẽ: sơ đồ ghi cờ 8088 ° Cờ trạng thái: Biểu diễn trạng thái phép toán vừa thực  CF (Carry Flag): Cờ nhớ (cờ tràn) CF = (CY – Carry) kết phép toán vượt (tràn) khuôn khổ biểu diễn (có nhớ (mượn) lên (từ) MSB), CF = (NC – No Carry) trường hợp ngược lại Cờ thường sử dụng thực phép cộng, trừ số byte Ví dụ: 1011 0001 + 0110 1001 10001 1010  AF (Auxilary Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ) Cờ có ý nghĩa ta làm việc với số BCD, AF = (AC – Auxilary Carry) có nhớ mượn từ số BCD thấp (4 bit thấp) sang số BCD cao (4 bit cao) AF =0 (NA – No Auxilary carry) trường hợp ngược lại [15]  SF (Sign Flag): Cờ dấu Trong vi sử lý 8088 số âm biểu diễn dạng số bù 2, nên phải dùng cờ SF để thị dấu kết SF = (NG – NiGative), kết phép toán số âm, SF = (PL – Plus) trường hợp ngược lại  ZF (Zero Flag): Cờ rỗng ZF = (ZR – Zero) kết phép toán = 0, ZF = (NZ-Non Zero) trường hợp ngược lại  OF (Overflow Flag): Cờ tràn OF = (OV – Overflow) kết số bù vượt khuôn khổ biểu diễn (tràn số học hay nói cách khác: cộng số dấu mà kết số trái dấu OF = 1), OF = (NV –Non Overflow) trường hợp ngược lại (cờ làm việc với số có dấu)  Cờ điều khiển Cờ trạng thái phụ thuộc điều kiện kết phép toán, với cờ điều khiển ta thiết lập nhờ lệnh  IF (Interrupt Flag): Cờ ngắt IF = (EI- Enable Interrupt) CPU cho phép ngắt, IF = (DI=Disable Interrupt) CPU không cho phép ngắt(cấm) loại ngắt che được(Maskable)…  TF (Trap Flag): Cờ bẫy TF = CPU làm việc chế độ chạy lệnh, thường dùng để gỡ rối chương trình (debug) Sau thực song chuỗi lệnh, vi xử lý phát lệnh ngắt (INT) để có kiểm tra chương trình  DF (Direction Flag): Cờ hướng Điều khiển hướng xử lý thao tác chuỗi DF = (DN – Down) lệnh vận chuyển liệu hay xử lý chuỗi thao tác lùi từ phải sang trái(địa cao đến địa thấp) DF = (UP) trường hợp ngược lại(thao tác địa từu địa thấp đến địa cao) Cờ thường lặp chương trình người sử dụng có lệnh thao tác chuỗi Tiến (thuận – theo chiều tăng địa chỉ) Lùi (ngược – theo chiều giảm địa chỉ) 4.4 Thanh ghi đoạn: [16] Thông thường, nhớ chương trình máy tính chia làm đoạn phục vụ chức khác đoạn chứa câu lệnh, chứa liệu Trong thực tế, vi xử lý 8088 cung cấp ghi 16 bit liên quan đến địa đầu đoạn nói chúng gọi ghi đoạn củ thể là:  CS (Code Segment): Thanh ghi đoạn mã, ghi địa đoạn mã lệnh, chứa địa sở (địa đoạn) chương trình thực  DS (Data Segment): Thanh ghi đoạn liệu, ghi địa đoạn liệu, chứa địa đoạn vùng liệu mà chương trình thực sử dụng Vùng thường chứa biến chương trình  SS (Stack Segment): Thanh ghi đoạn ngăn xếp, ghi địa đoạn nhớ ngăn xếp (stack) chương trình chạy  ES (Extra Segment): Thanh ghi đoạn liệu phụ, ghi địa đoạn liệu bổ sung mà chương trình thực sử dụng Vùng thường chứa biến chương trình Các ghi đoạn 16 bit địa đầu đoạn nhớ, dung lượng lớn đoạn nhớ 64 Kbyte thời điểm đinh vi xử lý làm việc với bốn đoạn nhớ 64 bit Để xác định xác vị trí ô nhớ chương trình ghi đoạn phối hợp với ghi đặc biệt khác gọi ghi lệch hay phân đoạn (offset register) 8088 có 20 bit địa chỉ, ghi quản lý nhớ 16 bit Để xác định ngăn nhớ có địa 20 bit, dùng ghi 16 bit để xác định địa Địa nằm ghi gọi địa đoạn Địa lệch (offset) ghi khác (Ax, Bx, Cx,…) Địa logic: DS:SI DS:DI DS:XX Địa vật lý (phải số 20 bit) xác định sau: Địa vật lý = địa đoạn*16 + địa lệch Ví dụ: DS = 4000h, SI = 3F4Dh Địa logic ngăn nhớ: 4000:3F4D Địa vật lý ngăn nhớ: DS * 16 + SI = 4000 * 16 +3F4D = 43F4Dh [17] Tại thời điểm CPU quản lý nhớ (DS, SS, ES, CS), đồng thời truy cập đoạn Bộ nhớ chia thành nhiều đoạn Mỗi đoạn có kích thước tối đa 64KB Vậy ta có 16 đoạn tách rời địa lệch thay đổi từ 0000H đến FFFFh Nếu địa đoạn thay đổi từ 0000H đến FFFFh có 64 đoạn đoạn bao chùm lên nhau, đoạn kề cách 16 byte (paragraph) Khi khởi động máy (hoặc Reset) CS nạp giá trị F000h, IP nạp giá trị FFF0h, địa thuộc đoạn cuối, nơi đặt ROM khởi động Địa vật lý = F000h*16 + FFF0h =F0000h + FFF0h =FFFF0h [18] [...]... và tạo các lệnh, dữ liệu và các tín hiệu điều khiển giữa MP với các bộ nhớ khác của hệ Ví dụ, xác định hướng di chuyển của dữ liệu trên BUS dữ liệu bằng đường dây điều khiển DT/R (data transmit/receive ) phát hoặc thu dữ liệu.\ Hàng chứa lệnh ( Instruction Queue ): dùng để lưu trữ tạm thời các lệnh sẽ được thực hiện trong EU Thông qua đơn vị điều khiển BUS BIU nhận trước các lệnh và cất chúng tạm vào... lệnh Mã lệnh đọc vào từ bộ nhớ được đưa đến đầu vào của bộ giải mã, các thông tin thu được từ đầu ra của nó sẽ dược đưa đến mạch tạo xung điều khiển, kết quả là ta thu được các dãy xung khác nhau từ kênh điều khiển ( tùy vào mã lệnh) để điều khiển hoạt động các bộ phận bên trong và bên ngoài của CPU Ngoài ra CPU còn có khối số học lôgic ( Arithmetic And Logic Unit ALU) dùng để thực hiện các thao tác khác... (phần cao) và DL (phần thấp) [13] 4.2 Các thanh ghi con trỏ và chỉ số: Trong CPU 8088 còn có ba thanh ghi con trỏ và hai thanh ghi chỉ số 16bit Các thanh ghi này dùng cho việc lưu trữ thông tin trong một khu vực đặc biệt của bộ nhớ Nó thường được dùng chủ yếu để trỏ hoặc ghi chỉ số để xác định một địa chỉ trong bộ nhớ Các địa chỉ được chứa trong các thanh ghi này có thể được liên hợp với các thông tin... toán số học và logic ALU dùng để thực hiện các thao tác khác nhau với các toán hạng của lệnh Phần IV: Đặc điểm và chức năng của các thanh ghi 4.1 Các thanh ghi chức năng: Trong khối EU có 4 thanh ghi đa năng 16 bit Ax, Bx, Cx, Dx Điều đặc biệt là mỗi khi cần chứa các dữ liệu 8 bit thì mỗi thanh ghi có thể được phân chia thành 2 thanh ghi 8 bit cao và 8 bit thấp để làm việc độc lập nhau, đó là các tập thanh... câu lệnh, nhưng chỉ dung 9 bit đối với bộ vi xử lý 8088 Mỗi bit đó được gọi là một cờ (flag) Giá trị của mỗi cờ được biểu diễn bằng các kí hiệu gợi nhớ như cách biểu diễn của chương trình Debug của DOS Dựa vào cờ này người lập trình có thể có các lệnh thích hợp tiếp theo cho bộ vi xử lý Thanh ghi cờ 16 bit nhưng người ta chỉ dùng hết 9 bit của nó để làm các bit cờ như hình vẽ dưới đây: 15 x 14 x 13 X... địa chỉ của chip Tóm lại, khi CPU hoạt động EU sẽ cung cấp thông tin địa chỉ cho BIU để khối này đọc lệnh và dữ liệu còn bản thẩn khối này đọc lệnh và giải mã lệnh 3.5 Nguyên lý hoạt động của CPU 8088  BIU có nhiệm vụ đưa ra địa chỉ , đọc mã lệnh từ bộ nhớ, đọc ghi dữ liệu từ/vào cổng hoặc bộ nhớ Bên trong BIU còn có bộ nhớ đệm (còn gọi là hàng đợi lệnh) với dung lượng 4 byte dùng để chứa các lệnh... hạng của lệnh Các bus dữ liệu bên trong của EU đều là 16 bit, Eu không nối trực tiếp với bên ngoài, nó nhận lệnh từ hành đợi lệnh bên trong BIU Nếu là lệnh cần truy cập bộ nhớ hoặc cổng vào/ra(I/O port-thiết bị ngoại vi) thì EU yêu cầu BIU lấy hoặc gửi dữ liệu tất cả các địa chỉ mà EU thao tác đều là 16 bit, khi gửi sang BIU thì BIU sẽ thực hiện tính toán để tạo địa chỉ vật lý 20 bit và phát ra các chân. .. nhớ, dung lượng lớn nhất của mỗi đoạn nhớ này là 64 Kbyte và tại một thời điểm nhất đinh bộ vi xử lý chỉ làm việc với bốn đoạn nhớ 64 bit này Để xác định chính xác vị trí 1 ô nhớ của chương trình các thanh ghi đoạn sẽ phối hợp với các thanh ghi đặc biệt khác còn gọi là các thanh ghi lệch hay phân đoạn (offset register) 8088 có 20 bit địa chỉ, trong khi đó các thanh ghi quản lý bộ nhớ là 16 bit Để xác... EU xử lý Đây là một cấu trúc mới được cấy vào bộ vi xử lý 8088 để thực hiện cơ chế xử lý liên tục dòng mã lệnh (Instruction Pipelining) Pipeline là một cơ chế đã được ứng dụng từ những năm 60 trong các máy tính lớn [12]  EU có nhiệm vụ cung cấp địa chỉ cho BIU để khối này đọc lệnh và dữ liệu Giải mã lệnh để tạo ra các tín hiệu điều khiển nhằm thực hiện lệnh được giải mã Trong EU còn có khối tính toán... AH và AL, BH và BL, CH và CL, DH và DL ( trong đó H chỉ phần cao, L chỉ phần thấp) Mỗi thanh ghi có thể được sử dụng một cách vạn năng để chứa các tập dữ liệu khác nhau nhưng cũng có nhưng công việc nhất định chỉ thao tác với một vài thanh ghi nào đó Chính vì vây các thanh ghi thường được gắn các tên cụ thể như sau: • Ax (Accumulator, Acc): thanh chứa, chứa tạm thời dữ liệu (toán hạng, kết quả các

Ngày đăng: 14/11/2016, 23:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan