Đề tài Hệ máy vi tính IBM PC

Trong máy vi tính ,đóng vai trò trung tâm điều khiển mọi hoạt động của toàn bộ hệ thống là bộ vi xử lý trung tâm CPU ( Central Processing Unit ) . Bộ vi xử lý 8088 trong máy vi tính IBM PC/XT là bộ vi xử lý 16 bit có nhiệm vụ điều khiển các hoạt động cơ bản của máy bằng cách gửi đi hoặc thu nhận các tín hiệu điều khiển , các địa chỉ bộ nhớ và các dữ liệu từ phần này sang phần khác của máy tính thông qua các mạng lưới các đường liên lạc điện từ gọi là bus. Ðể nối bộ nhớ và các chip hỗ trợ khác nhau vào bus có các cổng vào ra (I/O port ) đặt dọc theo bus . Dữ liệu đi qua các cổng vào /ra để đến hoặc rời CPU tới các phần khác của máy vi tính .

doc13 trang | Chia sẻ: maiphuongtt | Lượt xem: 2303 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Đề tài Hệ máy vi tính IBM PC, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Phần i - hệ máy vi tính ibm pc CHƯƠNG I BỘ VI XỬ LÝ 8088 I/ SƠ ÐỒ KHỐI VÀ CÁC CHÂN CHỨC NĂNG Trong máy vi tính ,đóng vai trò trung tâm điều khiển mọi hoạt động của toàn bộ hệ thống là bộ vi xử lý trung tâm CPU ( Central Processing Unit ) . Bộ vi xử lý 8088 trong máy vi tính IBM PC/XT là bộ vi xử lý 16 bit có nhiệm vụ điều khiển các hoạt động cơ bản của máy bằng cách gửi đi hoặc thu nhận các tín hiệu điều khiển , các địa chỉ bộ nhớ và các dữ liệu từ phần này sang phần khác của máy tính thông qua các mạng lưới các đường liên lạc điện từ gọi là bus. Ðể nối bộ nhớ và các chip hỗ trợ khác nhau vào bus có các cổng vào ra (I/O port ) đặt dọc theo bus . Dữ liệu đi qua các cổng vào /ra để đến hoặc rời CPU tới các phần khác của máy vi tính . Bộ vi xử lý 8088 có hai chế độ hoạt động là chế độ MIN và chế độ MAX nên một số chân sẽ có các chức năng khác nhau đối với từng chế độ hoạt động khác nhau của bộ vi xử lý . Hình vẽ I-1 : Sơ đồ khối và các chân chức năng của 8088 *Các chân chức năng - AD0 - AD7 : Các chân địa chỉ dữ liệu phân đường chứa 8 bít dữ liệu hoặc 8 bit thấp của địa chỉ bộ nhớ hoặc I/O . - A8 - A15 : Các chân địa chỉ xác định 8 bit cao của địa chỉ bộ nhớ ,I/O ,trong suốt quá trính HLDA hoạt động các chân này ở trạng thái trở kháng cao . - A16 /S 3 ,A17/S 4 ,A18/S 5 , A19 /S 6 : Các chân địa chỉ /trạng thái ba trạng thái , các chân này ở trạng thái trở kháng cao trong suốt quá trình HLDA .Bít trạng thái S6 luôn =0 ,S5 chỉ trạng thái cờ IF . S4,S3 xác định đoạn nhớ đang được thâm nhập : S 4 S 3 Ðoạn nhớ thâm nhập 0 0 Ðoạn dữ liệu 0 1 Ðoạn ngăn xếp 1 0 Ðoạn lệnh hoặc không có đoạn 1 1 Ðoạn dứ liệu Bảng I-1 : S4 ,S3 xác định đoạn nhớ đang được thâm nhập - RD : Tín hiệu điều khiển đọc dữ liệu từ bộ nhớ ,cổng I/O - READY :tín hiệu vào thông báo bộ nhớ hoặc cổng I/O sẵn sàng làm việc . - INTR : (interupt request ) tín hiệu vào yêu cầu ngắt che được bằng phần mềm . - TEST : tín hiệu vào để kiểm tra bộ VXL bằng lệnh WAIT . - NMI : đầu vào tín hiệu ngắt không che được . - RESET : tín hiệu vào để khởi động bộ VXL ,địa chỉ khởi động FFFF0h - CLK : Tín hiệu nhịp đưa vào cho bộ VXL lấy từ bộ phát xung nhịp 8284 - Vcc : Ðiện áp nguồn 5V. - GND : Ground -đất . - MN / MX : minimum/maximum mode .Tín hiệu vào điều khiển chế độ ,tín hiệu này được xác lập cố định MN/MX nối với +5V - chế độ min ,nối với đất -chế độ max * Các chân ở chế độ MIN - M/IO : Chỉ ra rằng CPU đang thâm nhập bộ nhớ hay cổng I/O . - WR : Tín hiệu ra 3 trạng thái báo ghi dữ liệu bộ nhớ ,I/O INTA (Interupt acknowledge ) : Tín hiệu ra chấp nhận ngắt . - ALE ( Address latch enable ) : Tín hiệu thông báo rằng bus địa chỉ dữ liệu có chứa địa chỉ. DT/R ( Data trasmit / Receiver ) : Tín hiệu ra 3 trạng thái chỉ chiều chuyển động của dữ liệu , DT/ R = 0 dữ liệu đi ra từ CPU , DT/ R = 1 dữ liệu đi vào CPU . - DEN (Data enable ) : Tín hiệu ra ba trạng thái để mở các bộ đệm dữ liệu ,khi DEN =0 - có dữ liệu . - HOLD : Tín hiệu vào yêu cầu treo (thả nổi ) CPU . - HLDA (Hold acknowledge ) : báo ra bộ vi xử lý chấp nhận thả nổi . - SS0 : Tín hiệu trạng thái ,hoạt động theo bảng sau : IO/M DT/ R SS0 --Chu kỳ bus -- 0 0 0 Báo nhận lệnh ngắt 0 0 1 Ðọc bộ nhớ 0 1 0 Ghi bộ nhớ 0 1 1 Dừng 1 0 0 Nhận lệnh 1 0 1 Ðọc cổng I/O 1 1 0 Ghi cổng I/O 1 1 1 Dừng Bảng I-2 */ Các chân ở chế độ MAX - S2 ,S1 ,S0 : Cho biết trạng thái của chu kỳ bus . S2 S1 S0 Chu kỳ bus 0 0 0 Trả lời ngắt 0 0 1 Ðọc cổng I/O 0 1 0 Ghi cổng I/O 0 1 1 Dừng 1 0 0 Nhận lệnh 1 0 1 Ðọc bộ nhớ 1 1 0 Ghi bộ nhớ 1 1 1 Thụ động Bảng I-3 - RQ/ GT0 ,RQ/ GT1 (Request /Grant ) :Tín hiệu hai chiều RQ -yêu cầu treo bus ,GT - tín hiệu báo ra rằng CPU chấp nhận treo . - LOCK : Tín hiệu ra cấm các mạch điều khiển khác sử dụng bus . - QS1 ,QS0 (Queu status): Cho biết trạng thái của hàng đợi lệnh . Bảng trạng thái : QS1 QS0 Trạng thái 0 0 không hoạt động 0 1 Byte thứ nhất của mã lệnh 1 0 Hàng đợi lệnh rỗng 1 1 Các byte tiếp theo Bảng I-4 II/ CÁC THANH GHI CHỨC NĂNG Bộ vi xử lý 8088 có 14 thanh ghi chức năng chia thành các nhóm thanh ghi khác nhau có nhiệm vụ và chức năng riêng biệt ,gồm các thanh ghi sau đây : */ Thanh ghi cờ : OF DF IF TF SF ZF AF PF CF + Các cờ phép toán : CF (cờ nhớ ), PF (cờ kiểm tra chẵn lẻ ) ,AF (cờ phụ ) , ZF (cờ rỗng ), SF (cờ dấu ), OF (cờ tràn ) . + Cờ trạng thái: DF ( chỉ hướng xử lý chuỗi ký tự ), IF (cờ cho phép ngắt), TF ( cờ bẫy ). */ Các thanh ghi đa năng (General register ): Gồm 4 thanh ghi 16 bit Công dụng chung của các thanh ghi này là chứa dữ liệu tạm thời . Ngoài ra các thanh ghi này còn có các chức năng sau : - AX (Accumulato ) : Thanh ghi chính, được sử dụng trong các phép toán số học và logic - BX ( Base ) : Thanh ghi cơ sở dùng trong các phương pháp đánh địa chỉ cơ sở . - CX (Count ) : Thanh ghi đếm dùng làm bộ đếm có tính lặp cho các lệnh dịch và quay . - DX (Data ) : Thanh ghi dữ liệu sử dụng trong các lệnh IN và OUT . */ Các thanh ghi con trỏ : Gồm 3 thanh ghi 16 bit . - IP ( Intruction Pointer ) : Con trỏ lệnh ,dùng để chứa offser của lệnh tiếp theo ( CS:IP ) - SP (Stack pointer ):Dùng để chứa địa chỉ offset của đỉnh ngăn xếp( SS:SP ) - BP ( Base pointer ) : Con trỏ cơ sở dùng để trỏ đến 1 ngăn nhớ trong ngăn xếp (SS:BP) */ Các thanh ghi chỉ số : hai thanh ghi 16 bit là SI và DI - SI (Source index ) ,DI (destination index ): sử dụng trong mode địa chỉ chỉ số để kết hợp đoạn dữ liệu và đoạn thêm . */ Các thanh ghi đoạn : 4 thanh ghi đoạn chứa địa chỉ đoạn tương ứng là . - Thanh ghi CS ( đoạn lệnh ), DS ( đoạn dữ liệu ), SS ( đoạn ngăn xếp ) ,ES (đoạn thêm ). III/ ?ẶC TÍNH KỸ THUẬT 1/ Nguồn điện : Bộ VXL 8088 hoạt động với điện áp +5V sai số ? 10% ,dòng điện max 340 mA .Bộ VXL này hoạt động trong khoảng nhiệt độ 32? F đến 180? F ,khoảng nhiệt độ này không đủ để cho bộ VXL này hoạt động ngoài trời vào mùa đông thậm chí ngay cả vào mùa hè . 2/ Ðặc tính một chiều : Ðây là đặc tính quan trọng, nếu không biết dòng điện đầu vào cùng các dòng điện ra ở các chân ra của 8088 thì không thể ghép nối các đầu này với các phần tử khác. */ Ðặc tính đầu vào : Các đầu vào của bộ VXL này tương thích với tất cả các phần tử logic ngày nay,bảng sau đây miêu tả mức điện áp và dòng điện vào của VXL : Mức logic Mức điện áp Mức dòng điện 0 0.8V Max 10m A Max 1 2.0V Min 10m A Max Bảng I- 5 */Ðặc tính đầu ra Bảng sau minh hoạ đặc tính đầu ra của tất cả các đầu ra của VXL . Mức logic 1 tương thích với hầu như tất cả các phần tử logic , nhưng mức 0 thì có thể không tương thích với các phần tử khác . Phần tử logic chuẩn có mức logic 0 Max = 0.4V còn 8088 có mức ra max 0.45 V .Sự sai khác này làm giảm khả năng chống nhiễu từ mức chuẩn 400mV xuống còn 350mV . Vì vậy cần chú ý không quá 10 tải khác nhau có thể nối vào một đầu ra ,đặc biệt khi dùng các dây dài , và tốt nhất nên chọn các phần tử logic thuộc họ 74LS ,74ALS , 74HC.. Bảng đặc tính đầu ra : Mức logic Mức điện áp Mức dòng điện 0 0.45V Max 2.0mA Max 1 2.4V Min - 400m A Max Bảng I-6 IV/ CÁC CHẾ ÐỘ HOẠT ÐỘNG CỦA 8088: 1/ Chế độ tối thiểu : ( chân MN/ MX nối với nguồn +5V ). Hình vẽ I-2 Trong chế độ này bộ vi xử lý 8088 trực tiếp gửi tín hiệu điều khiển cho hệ thống . Ðây là chế độ hoạt động đơn giản nhất của 8088 ,tín hiệu điều khiển được thực hiện ngay trong bộ vi xử lý . Cấu hình này cho phép các thiết bị ngoại vi của 8085A hoạt động một cách tương thích với 8088 mà không cần các mạch phụ bên ngoài . Hình vẽ I- 2 minh hoạ hệ thống 8088 hoạt động với chế độ MIN . 2/Chế độ MAX ( chân MN /MX nối thẳng với đất ) Khác biệt so với chế độ Min ,trong chế độ 8088 này cần các mạch phụ bên ngoài để chuyển đổi tín hiệu điều khiển ( hình vẽ I-3 ). Các mạch phụ này chuyển đổi tín hiệu các bit trạng thái S0 ,S1 ,S2 thành tín hiệu trao đổi I/O và bộ nhớ để điều khiển sự truyền dữ liệu .Trong chế độ này 8088 cần có thêm bộ điều khiển bus 8288 bởi vì không có đủ các chân tín hiệu đầu ra do các chức năng mới đã thay thế các chức năng của một số chân như minh hoạ trong ( hình I-1).Chế độ MAX được sử dụng khi trong hệ thống có chứa một bộ đồng xử lý như bộ đồng xử lý toán học 8087. Hình vẽ I-3 V/ TẬP LỆNH CỦA 8088 : Cũng như tất cả các bộ vi xử lý khác , bộ vi xử lý 8088 có tập lệnh gồm 125 lệnh chia thành các nhóm lệnh thực hiện các công việc khác nhau như các nhóm lệnh thực hiện các phép tính toán học trên các số nguyên 8 bit hay 16 bit ,nhóm lệnh thực hiện việc di chuyển dữ liệu ,nhóm lệnh kiểm tra một giá trị để thực hiện các hoạt động logic hoặc các lệnh tiếp theo dựa trên kết quả nhận được và các lệnh thực hiện việc giao tiếp giữa bộ vi xử lý với các thiết bị ,phần tử logic ở bên ngoài . Các lệnh này và dữ liệu liên quan đến chúng sẽ được dịch ra dạng nhị phân gọi là ngôn ngữ máy, vì vậy chúng có thể lưu trong bộ nhớ và di chuyển qua các mạch điện từ để hoàn thành từng công việc cụ thể . Sau đây là bảng liệt kê một số lệnh cơ bản và chức năng từng lệnh của bộ vi xử lý 8088 : */ Nhóm các lệnh toán học : AAA - Cộng có chỉnh ASCII AAD - Chia có chỉnh ASCII AAM - Nhân có chỉnh ASCII AAS - Trừ có chỉnh ASCII ADC - Cộng có nhớ ADD - Cộng CWD - Chuyển từ Word sang Word kép AND - phép toán Và (logic ) DAA - Chỉnh thành thập phân cho phép cộng DEC - Giảm 1 dơn vị DAS - Chỉnh thập phân cho phép trừ INC - tăng DIV - Chia IDIV - Chia nguyên MUL - Nhân NEG - Ðổi dấu IMUL - Nhân nguyên OR - Hay , SUB - trừ NOT - Phủ định ROL, ROR - quay trái ,phải SHL,SHR - Dịch trái, dịch phải SBB - Trừ có mượcn */ Nhóm lệnh điều kiện : CMP - So sánh CMPS - So sánh xâu CMPSB - So sánh xâu byte CMPSW - So sánh xâu Word JAE ,JGE - Nhảy nếu lớn hơn hoặc bằng JA, JG - Nhảy nếu lớn hơn JBE ,JLE - Nhảy nếu nhỏ hơn hoặc bằng JB ,JL - Nhảy nếu nhỏ hơn JPE - Nhảy nếu lỗi chẵn lẻ theo chẵn JE - Nhảy nếu bằng JPO - Nhảy nếu lỗi chẵn lẻ theo lẻ JMP - Nhảy không điều kiện JO , JNO - Nhảy nếu có tràn ,không tràn JC - Nhảy nếu cờ nhớ được đặt JZ ,JNZ - Nhảy nếu bằng 0, không bằng 0 JP, JNP - Nhảy nếu có ,không có lỗi chẵn lẻ */Nhóm lệnh truyền số liệu : MOV - Chuyển MOVS - Chuyển byte hay Word của xâu MOVSB - Chuyển byte của xâu MOVSW - Chuyển Word của xâu IN - Ðọc vào một byte hoặc Word OUT - Ðưa ra một byte hoặc Word */ Nhóm lệnh lặp : LOOP - Lặp LOOPE - Lặp trong khi bằng LOOPNE - Lặp trong khi không bằng LOOPZ - Lặp trong khi bằng 0 LOOPNZ - Lặp trong khi khác không REP - Lặp lại REPE - Lặp lại nếu bằng REPNE - Lặp lại nếu khác REPZ - Lặp lại nếu bằng 0 REPNZ - Lặp lại nếu khác không VI/ CÁC DẠNG DỮ LIỆU CỦA 8088 : 8088 có thể làm việc với các dạng dữ liệu số cơ bản đều được tạo từ hai đơn vị cơ sở là Byte - 8 bit và Word - 16 bit phù hợp với khả năng xử lý 16 bit và bus dữ liệu 8 bit của 8088. Dữ liệu ký tự được 8088 lưu trữ theo dạng ASCII chuẩn ,mỗi ký tự được chiếm 1 byte và tập lệnh của 8088 có thể thực hiện phép cộng và trừ thập phân trên các ký tự ASCII này ( kết hợp với cờ AF ). VII/ QUẢN LÝ ÐỊA CHỈ BỘ NHỚ VÀ KHÁI NIỆM ngăn xếp của 8088 Về bản chất 8088 là bộ vi xử lý 16 bit nên nó không thể làm việc trực tiếp với các số lớn hơn 16 bit vì vậy nó chỉ thâm nhập được 64K (65.535 = 216 ) địa chỉ trong bộ nhớ theo lý thuyết . Nhưng thực tế 8088 có thể thâm nhập được một bộ nhớ lớn hơn rất nhiều , 1024K ( = 220 )địa chỉ nhớ , nhờ có bus địa chỉ 20 bit , song vẫn còn bị hạn chế bởi khả năng chỉ xử lý được 16 bit . Do đó để 8088 dùng phương thức đánh địa chỉ theo đoạn để thích hợp với dạng dữ liệu 16 bit của nó. 8088 chia bộ nhớ đánh địa chỉ được thành nhiều đoạn (segment ) mỗi đoạn không chứa quá 64K byte ,và bắt đầu bằng một địa chỉ chia hết cho 16 gọi là một địa chỉ đoạn . Ðể đánh địa chỉ tới từng byte hoặc từng Word 8088 dùng thêm một địa chỉ ,gọi là địa chỉ offset ( địa chỉ tương đối của byte trong đoạn ). Các địa chỉ được tạo lập và xử lý bằng cách kết hợp một địa chỉ đoạn 16 bit với một địa chỉ ofset cũng 16 bit . Ðịa chỉ đoạn được dịch chuyển trái 4 bit (tương đương với nhân 16) rồi cộng với địa chỉ offset tạo thành một địa chỉ 20 bit hoàn chỉnh . */Khái niệm ngăn xếp trong thiết kế của 8088 : Ngăn xếp ( Stack ) là một đặc trưng thiết kế của 8088, nó cung cấp cho chương trình một nơi cất giữ và theo dõi công việc đang thực hiện . Công dụng quan trọng nhấtcủa ngăn xếp là cất giữ địa chỉ chương trình gọi và những tham số cần truyền cho chương trình con . Ngăn xếp còn được dùng như một vùng nhớ làm việc tạm thời . Ngăn xếp còn được sử dụng bắt đầu từ đáy (có địa chỉ cao nhất ) đến đỉnh ( có địa chỉ thấp nhất ) và dữ liệu mới vào sẽ được lưu ở địa chỉ thấp hơn so với đỉnh hiện hành . Ngăn xếp hoạt động theo nguyên tắc vào sau ra trước LIFO - Last in First Out ,như vậy khi bổ xung dữ liệu thì đỉnh ngăn xếp sẽ di chuyển đến các địa chỉ ngày càng thấp hơn ( cứ mỗi lần như thế thanh ghi SP lại giảm đi ) làm cho số gia địa chỉ của các nội dung cũ trong ngăn xếp dương . Bất kỳ phần nào của chương trình cũng đều có thể tạo ngăn xếp mới vào thời điểm bất kỳ ,nhưng thực tế điều này ít xảy ra . Thông thường khi chương trình đang chạy chỉ có một ngăn xếp duy nhất được tạo lập và sử dụng . Như vậy bộ vi xử lý 8088 là một bộ vi xử lý 16 bit có khả năng đánh địa chỉ bộ nớ lên tới 1M ô nhớ nhờ bus địa chỉ 20 bit , hoạt động dựa trên tập hợp các lệnh và các tín hiệu điều khiển trong từng chế độ khác nhau . Trong máy vi tính IBM PC/XT , bộ vi xử lý 8088 được dùng làm bộ xử lý trung tâm CPU ( Central Proccesing Unit ) , lắp trên mainboard .
Tài liệu liên quan