Đặt vấn đề (xác nhận vấn đề): Trước khi giải quyết vấn đề, người lập trình cần xác định xem, liệu vấn đề có thể được giải quyết nhờ một chương trình trong một hệ Vi xử lý hay không. Phải thấy rằng không phải hệ Vi xử lý “vạn năng" đến mức có (giải quyết tất cả mọi vấn đề nảy sinh trong thực tiễn, thậm chí đôi khi còn làm cho sự việc càng thêm phức tạp). Xác định phương pháp giải quyết vấn đề: 23 Đây chính là bước tìm thuật giãi (Algorithm) tối ưu cho vấn đề được đặt ra. Người lập trình phải tìm và lựa chọn được từ nhiều giải pháp một giải pháp tốt nhất, nhưng kinh tế nhất để thực hiện.
Không chỉ tìm giải thuật tốt nhất mà còn phải tìm ngôn ngữ lập trình phù hợp nhất để giải quyết vấn đề. Thực hiện giải pháp: Phương pháp giải quyết vấn đề thường được xác nhận qua từng bước theo một lưu đồ. Lưu đồ là cách thể hiện tường minh các bước thực hiện chương trình trong hệ thống, đồng thời nó giúp người lập trình định hướng tốt khi viết chương trình. Viết chương trình: Bản thân lưu đồ đã cho thấy rõ giải pháp giải quyết vấn đề theo quan điểm lập trình.
Việc chuyển từ lưu đồ sang ngôn ngữ chương trình là bước dễ dàng hơn rất nhiều so với cách viết chương trình không có lưu đồ. Đây chỉ là bước cụ thể hóa lưu đồ nhờ tuần tự thực hiện các lệnh, và là bước thực tế hóa giải pháp thực hiện vấn đề. Kiểm tra và gỡ rối: Sau khi cài đặt việc kiểm tra tính chính xác là vô cùng quan trọng. Những sai sót phải được phát hiện và hiệu chỉnh, đôi khi là từ chính thuật giải.
Việc gỡ rối chương trình tức là thực hiện từng bước chương trình, phát hiện các sai sót ẩn, hiệu chỉnh các sai sót này. Để thực hiện được tất các các bước trên người lập trình phải có kỹ thuật lập trình hoàn thiện để thiết kế chương trình, phải có các công cụ lập trình tốt. Các trung tâm vi xử lý họ 80x86: 2. Mô tả chân của P 8086 và các tín hiệu: + µP8086 được chế tạo theo công nghệ HMOS, đóng vỏ CerDIP 40 chân.
Là loại Vi xử lý có khả năng xử lý trực tiếp dữ liệu 8 hoặc 16 bit. Về tập 1ệnh, µP8086 hoàn toàn tương thích với tập lệnh của IAPX 86/10 và về phần cứng, hoàn toàn tương thích với các mạch ngoại vi của các trung tâm 8080/8085 của Intel. µP8086 có thể hoạt động ở một trong hai chế độ: + Chế độ MIN: CPU tự tạo ra các tín hiệu điều khiển hoạt động của BUS (các chân từ 24 đến 34) Hình 2. Sơ đồ chân trung tâm Vi xử lý 8086 + Chế độ MAX: CPU chỉ đưa ra các tín hiệu trạng thái, cần thêm một chip điều khiển BUS (BUS controller 8288) và chip này sẽ thông dịch các tín hiệu trạng thái thành các tín hiệu điều khiển BUS tương thích với cấu trúc.
MULTIBUSTM, cách này đảm bảo hoạt động đọc số liệu ổn định hơn. 24 AD15 – AD0: BUS dồn kênh dữ liệu và địa chỉ 16 bit. A19 - A16/S6 - S3: 4 bits địa chỉ cao hoặc 4 tín hiệu trạng thái hoạt động hiện tại của CPU. S4 S3 Thanh ghi được truy xuất.
0 0 ES 0 1 SS 1 0 CS 1 1 DS S5 chỉ trạng thái cờ ngắt. S6 luôn luôn bằng 0. + BHE/S7: Tín hiệu này kết hợp với chân địa chỉ A0 cho chỉ thị các trạng thái sau: BHE A0 0 0 Một từ đã được truyền qua D5 – D0. 0 1 Một Byte trên D15 - D8 được truy xuất tới một địa chỉ Byte lẻ.
1 0 Một Byte trên D7 – D0 được truy xuất tới một địa chỉ Byte chẵn. 1 1 chưa xác định RD : Nếu bằng "l" đang đọc bộ nhớ (hoặc thiết bị vào/ra). Nếu bằng "0" đang ghi ra bộ nhớ (hoặc thiết bị vào/ra). READY: nếu bộ nhớ (hoặc thiết bị vào/ra) cần truy nhập hoàn tất việc chuyển dữ liệu đến (hoặc đi) chúng cần phát ra tín hiệu READY ở mức "1" tới chân CPU, chỉ khi ấy CPU mới đọc số liệu vào hoặc đưa dữ liệu ra.
INTR: CPU kiểm tra trạng thái chân này sau khi thực hiện xong mỗi lệnh để xét xem có yêu cầu ngắt từ phần cứng đến hay không, nếu ở mức "1", CPU sẽ chuyển sang phục vụ ngắt. Thao tác kiểm tra này có thể "ch" được nhờ dùng mặt nạ che ngắt. TEST : Lối vào này của CPU luôn luôn được kiểm tra trong lệnh WAIT. Nếu bằng "0" CPU tiếp tục thực hiện chương trình, nếu bằng "1", CPU chạy các chu trình giả cho tới khi TEST = "0".
NMI: Chân ngắt theo sườn lên của xung, không che được. RESET: Chân nhận tín hiệu tái khởi động hệ thống. Nếu có sự thây đổi từ "0" lên "1" và tồn tại tối thiểu trong 4 nhịp đồng hồ thì hệ thống sẽ tự khởi động lại. CLK: Lối vào của xung nhịp đồng hồ.
Vcc: Nguồn nuôi +5V. GND: Chân nối đất (0V). MN/MX: Khi được nối với Vcc, µP8086 hoạt động ở chế độ MIN, nếu nối với GND, hoạt động ở chế độ MAX. S2 , S1, S0 : ở chế độ MAX, chip điều khiển BUS sử dụng 3 tín hiệu, trạng thái này để phát ra các tín hiệu điều khiển truy xuất bộ nhớ và thiết bị vào ra.
Tổ hợp có ý nghĩa như sau: S2 S1 S0 0 0 0 yêu cầu ngắt cứng qua chân 1NTR được chấp nhận. 0 0 1 đọc thiết bị vào/ra 0 1 0 Ghi thiết bị vào/ra 0 1 1 CPU bị treo. 1 0 0 nạp mã chương trình vào hàng nhận lệnh. 1 0 1 đọc bộ nhớ.
1 1 0 ghi vào bộ nhớ 1 1 1 trạng thái thụ động 25 RQ / GT0, RQ / GT1: Tín hiệu phục vụ việc chuyển mạch BUS cục bộ (Local BUS) giữa các đơn vị làm chủ BUS (BUS master). BUS cục bộ là BUS giữa các đơn vị xử lý (không phải là BUS nối với các thiết bị ngoại vi). Đơn vị làm chủ BUS là µP8086 hoặc một chip điều khiển nào đó (ví dụ DMAC) hiện đang nắm quyền điều khiển BUS cục bộ. LOCK: nếu bằng "0" đơn vị làm chủ BUS không nhượng quyền làm chủ BUS cục bộ.
QS1, QS0 chỉ thị trạng thái của hàng nhận lệnh trước PQ 0 0 không hoạt động 0 1 byte 1 của mã toán trong PQ được xử lý 1 0 hàng đợi lệnh được xóa 1 1 byte 2 của mã toán trong PQ được xử lý 2.2 Cấu trúc trung tâm Vi xử lý họ 80x86: - Các µP họ 80x86 được phát triển trên cơ sở công nghệ VLSI với các phần tử cơ bản là các transistor trường MOS có độ tiêu hao công suất rất nhỏ. Sơ đồ khối chức năng của µP8086 được thể hiện trên hình 2.6, gồm hai thành phần chủ yếu là đơn vị ghép nối BUS (BIU), đơn vị thực hiện lệnh (EU). Tất cả các thanh ghi và đường truyền dữ liệu trong EU đều có độ dài 16 bits. BIU thực hiện tất các các nhiệm vụ về BUS cho EU: thiết lập khâu liên kết với BUS dữ liệu, BUS địa chỉ và BUS điều khiển.
Dữ liệu được trao đổi giữa CPU với bộ nhớ khi EU có yêu cầu, song không được truyền trực tiếp tới EU mà thông qua một vùng nhớ RAM dung lượng nhỏ (6 bytes) được gọi là hàng nhận lệnh trước (lnstruction Stream Byte Quere PQ - Prefetch Quere) rồi mới được truyền cho hệ thống điều khiển EU (Execution Ung Control System). - Khi EU đang thực hiện một lệnh thì BIU đã tìm và lấy lệnh sau đặt sẵn vào PQ. Đây là cơ chế đường ống (pipeline), một kỹ thuật tăng tốc độ cho CPU. - Kỹ thuật đường ống sử dụng một vùng nhớ RAM cực nhanh, làm tăng đáng kể tốc độ của bộ Vi xử lý thông qua việc truy tìm lệnh từ bộ nhớ chương trình thay cho sự liên hệ giữa CPU với bộ nhớ chương trình.
Riêng với bộ xử lý Pentium, có hai đường ống, một cho các lệnh và mật cho các dữ liệu.1:Thông số kỹ thuật cơ bản của các trung tâm Vi xử lý họ 80 Loại µp Độ dài Độ rộng Độ rộng Không Tần số thanh BUS địa BUS dữ gian địa cực đại ghi chỉ liệu chỉ 8088 16 bits 20 bits 8 bits 1 MByte 10 MHZ 8086 16 bits 20 bits 16 bits 1 MByte 10 MHZ 80188 16 bits 20 bits 8 bits 1 MByte 10 MHZ 80186 16 bits 20 bits 16 bits 1 MByte 10 MHZ 80286 16 bits 24 bits 16 bits 16Mbytes 16 MHZ 80386SX 32 bits 24 bits 16 bits 16Mbytes 20MHZ 80386DX 32 bits 32 bits 32 bits 4Gbytes 40 MHZ i486 32 bits 32 bits 32 bits 4Gbytes 66 MHZ i486SX 32 bits 32 bits 32 bits 4Gbytes 25 MHZ Pentium (Phiên bản đầu) 32 bits 32 bits 64 bits 4Gbytes 66 MHZ 26 Hình 2. Cấu trúc các khối chức năng µP8086 2.3 Hệ thống thanh ghi trong các µP80x86: - Có thể coi các thanh ghi của các trung tâm Vi xử lý như một bộ nhớ được đặt ngay bên trong CPU, có tốc độ truy cập cực kỳ nhanh, được dùng để lưu giữ các dữ liệu và các kết quả tạm thời của các quá trình tính toán, xử lý. Các thanh ghi trong họµP80x86 có độ dài khác nhau, 16 bits với các trung tâm 8088/86, 80188/86 và 80286, 32 bits với các trung tâm 80386/486 trở đi và được mô tả trên hình 2. - EU của µP8086 có 8 thanh ghi đa năng với tên gọi là AH, AL, BH, BL, CH, CL, DH, DL.
Những thanh ghi này có thể sử dụng riêng lẻ cho việc lưu giữ các dữ liệu nhị phân 8 bits. Cũng có thể sử dụng chúng thành từng cặp thanh ghi có tên gọi là AX (AH-AL), BX (BH-BL), CX (CH-CL), và DX (DH-DL) để lưu giữ các dữ liệu nhị phân 16 bits. Các chế độ làm việc MIN/MAX: -µP8086 có hai chế độ làm việc: chế độ MIN và chế đọ MAX. Chân số 33 của µP8086 được coi như là chân bẫy (trap pin) cho µP8086 trong việc định nghĩa chế độ làm việc.
Những mạch phụ trợ cần thiết cho hai chế độ làm việc không thể thỏa mãn với hệ thống 40 chân của CPU loại này, vì vậy một số chân sẽ đảm nhiệm những chức năng khác khi được xác định cho một chế độ phụ thuộc vào cách nối chân MN/MX. Khi được nối với GND (mức điện áp OV), µP8086 chuyển đổi các chân từ 24 đến 31 sang chế độ MAX. Một mạch phụ điều khiển BUS 8288 sẽ giải mã các tín hiệu trạng thái S0, S1, S2 để tạo ra các tín hiệu định thời và các tín hiệu điều khiển tương thích với cấu trúc MULTIBUSTM trong các hệ thống máy tính.