Cách đây 30 năm, Intel tung ra bộ vi xử lý 8086, giới thiệu kiến trúc x86, làm nền tảng cho tất cả các PC bao gồm Windows, Mac hay Linux được sản xuất ngày nay.Sự ra đời của bộ vi xử lý Intel 8086 năm 1978 là một sự kiện trọng đại đối với ngành công nghiệp máy tính. Bộ vi xử lý 8086 là trung tâm của bất kỳ máy tính nào, từ Windows, Mac hay Linux, đó biến Intel từ một công ty sản xuất chip bán dẫn nhỏ thành một tên tuổi nổi tiếng nhất trên thế giới.Điều ngạc nhiên về sự thành công kỳ diệu của 8086 là rất ít người kỳ vọng về nó khi 8086 còn đang được “thai nghén”. Lịch sử của bộ vi xử lý cách mạng này là một câu chuyện kinh điển về một nhóm nhỏ các kỹ sư thiên tài có thể đạt được thành công khi họ được tự do làm công việc nghiên cứu theo những cách sáng tạo.Khi sự phát triển của 8086 bắt đầu vào tháng 5 năm 1976, các giám đốc điểu hành của Intel chưa bao giờ tưởng tượng được sự tác động ngoạn mục mà 8086 mang lại. Công ty xem 8086 như một dự án lấp chỗ trống trong khi công ty đang kỳ vọng vào một bộ vi xử lý phức tạp và khác biệt là 8800 (tên sau đó là iAPX 432). Trong một kỷ nguyên mà hầu hết các dũng chip đều sử dụng 8bit dữ liệu, 8800 đó nhảy vọt lên 32 bit. Khả năng xử lý đa nhiệm nâng cao và mạch quản lý bộ nhớ có thể được xây dựng tạo thành CPU, cho phép hệ điều hành chạy ít dòng mã điều khiển hơn.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Page | BỘ CƠNG THƯƠNG *************************** Báo Cáo 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 8086 INTEL ngun lí làm việc thơng qua chân tín hiệu Nhóm Thực Hiện: Nhóm 10 Lớp: KTPM3-K9 Thành viên nhóm: HỒNG VĂN CHIẾN NGUYỄN VĂN CHUNG NGUYỄN VĂN ĐẠT PHÙNG VĂN ĐỘ HÀ ĐÌNH ĐỨC Trang Page | MỤC LỤC I Lịch sử đời CPU 8086 II Tổ chức CPU 8086 INTEL 1.Tổ chức tổng quát CPU 8086(sơ đồ khối,chức khối) 2.Các ghi chức 3.Tổ chức nhớ 4.Sự phân đoạn nhớ 5.Địa ngoại vi .9 6.Các chân vi mạch CPU 8086 III.Ngun lí làm việc thơng qua chân tín hiệu 1.Các chân mang thơng tin địa 14 2.Các chân mang thong tin liệu .14 3.Các chân mang tín hiệu trạng thái 14 4.Các chân tín hiệu điều khiển 14 5.Các chân tín hiệu ngắt 15 6.Các chân tín hiệu phục vụ DMA 15 7.Chức chân chế độ MAX 16 Trang BỘ VI XỬ LÝ (CPU) INTEL 8086 I LỊCH SỬ RA ĐỜI CỦA CPU 8086 Page | Cách 30 năm, Intel tung vi xử lý 8086, giới thiệu kiến trúc x86, làm tảng cho tất PC bao gồm Windows, Mac hay Linux sản xuất ngày Sự đời vi xử lý Intel 8086 năm 1978 kiện trọng đại ngành cơng nghiệp máy tính Bộ vi xử lý 8086 trung tâm máy tính nào, từ Windows, Mac hay Linux, biến Intel từ cơng ty sản xuất chip bán dẫn nhỏ thành tên tuổi tiếng giới Điều ngạc nhiên thành công kỳ diệu 8086 người kỳ vọng 8086 cịn “thai nghén” Lịch sử vi xử lý cách mạng câu chuyện kinh điển nhóm nhỏ kỹ sư thiên tài đạt thành công họ tự làm công việc nghiên cứu theo cách sáng tạo Khi phát triển 8086 bắt đầu vào tháng năm 1976, giám đốc điểu hành Intel chưa tưởng tượng tác động ngoạn mục mà 8086 mang lại Công ty xem 8086 dự án lấp chỗ trống công ty kỳ vọng vào vi xử lý phức tạp khác biệt 8800 (tên sau iAPX 432) Trong kỷ nguyên mà hầu hết dũng chip sử dụng 8-bit liệu, 8800 nhảy vọt lên 32 bit Khả xử lý đa nhiệm nâng cao mạch quản lý nhớ xây dựng tạo thành CPU, cho phép hệ điều hành chạy dịng mã điều khiển Nhưng dự án 8800 gặp khó khăn Dự án vấp phải nhiều trì hỗn kỹ sư Intel nhận thấy thiết kế phức tạp chip khó chế tạo với cơng nghệ chip thời Vấn đề Intel chưa dừng đó, Intel bị “chọc sườn” công ty Zilog (công ty thành lập từ kỹ sư xuất phát từ Intel) Zilog nhanh chóng chiếm thị phần cho dịng vi xử lý bậc trung với sản phẩm Z80 CPU Ra đời tháng 7, năm 1976 Z80 phiên nhái nâng cao dòng chip Intel 8080 - dòng chip khởi nguồn cho cách mạng máy tính cá nhân Intel phải đưa câu trả lời cho Z80 Kỹ sư kì cựu Intel – Stephen Morse tác giả đoạn mã 8086 Các giám đốc điều hành Intel trì niềm tin vào 8800 biết công ty cần câu trả lời cho mối nguy từ Zilog Họ quay sang Stephen Morse, người kỹ sư điện tử 36 tuổi, người gây ấn tượng với họ nghiên cứu kỹ tới lỗi thiết kế chip 8800 Công ty định Morse làm kỹ sư cho dự án 8086 “Nếu ban giám đốc Intel có ý niệm mơ hồ kiến trúc tồn cho nhiều hệ vi xử lý… ngày họ không tin tưởng giao công việc cho người” ông Morse hồi tưởng lại Bổ nhiệm Morse lý ngạc nhiên khác Ông ta kỹ sư phần mềm Trước đây, thiết kế CPU Intel miền đất cho kỹ sư phần cứng “Lần đầu tiên, chúng tơi nhìn tính vi xử lý từ khía cạnh phần mềm Câu hỏi khơng phải Trang tính phát triển mà tính muốn để làm cho phần mềm hiệu hơn.” Morse nói Hướng tiếp cận tập trung vào phần mềm chứng minh cho cách mạng ngành công nghiệp Page | Mặc dù 8086 dự án “con cưng” Morse, ông ta không làm việc đơn độc Tham gia vào nhóm Morse nhân viên Intel, bao gồm Bill Pohlman, Jim McKevitt Bruce Ravenel, tất gúp sức đưa 8086 bước thị trường vào mùa hè năm 1978 Vượt việc dừng lại số yêu cầu bản, 8086 tương thích với phần mềm viết cho 8080 có khả hỗ trợ 128KB nhớ - nhà lãnh đạo Intel không can thiệp vào cơng việc Morse “Bởi khơng mong đợi thiết kế tồn lâu dài, không rào cản ngáng chân công việc tôi, tơi tự làm muốn”, ơng nói II.TỔ CHỨC BỘ XỬ LÝ INTEL 8086 (CPU 8086) Bộ Xử Lý (CPU) INTEL 8086 Tổ chức tổng quát CPU 8086 CPU 16 bit (bus số liệu có 16 dây) Nó dùng để chế tạo máy vi tính hãng IBM Thật IBM dựng CPU 8088 với đường bus số liệu bit Cho đến nay, CPU không ngừng cải tiến trải qua dạng 80186, 80286, 80386, 80486, 80586 (Pentium), Pentium Pro, Pentium II, PIII, PIV Các CPU tương thích từ xuống (downward compatible) nghĩa tập lệnh bao gồm tập lệnh CPU cũ thêm nhiều lệnh Hình ảnh CPU 8086: Trang Page | Bus Interface Unit (BIU) Execution Unit (EU) Thực lệnh Giao tiếp Bus AH AL A X BH BL B X CH CL C X DH DL D X PC SP CS 00 0 BP DS Trang 00 0 SI ES 00 Page | DI SS 00 Điều khiển bus ALU (Bộ làm tính & luận lý) CU (Bộ điều khiển) Thanh ghi trạng thái Bus ngoại Hàng chờ lệnh Thanh ghi lệnh Hình: Sơ đồ khối CPU 8086 Ta thấy CPU 8086 chia thành phận chính: Bộ phận thực lệnh (Execution Unit: EU) phận giao tiếp Bus (Bus Interface Unit: BIU) Bộ phận thực lệnh EU: Kiểm soát ghi, giải mã thi hành lệnh tức làm tác vụ mà lệnh yêu cầu Như EU làm hầu hết công việc CPU cổ điển Các ghi đường bus EU 16 bit EU khơng nối với bus hệ thống bên ngồi, lấy lệnh từ hàng chờ lệnh mà BIU cung cấp Khi có yêu cầu truy xuất nhớ hay ngoại vi EU u cầu BIU làm việc BIU tái định địa cho phép EU truy xuất đầy đủ 1MB (8086 có 20 đường địa ngoại) Trang Bộ phận giao tiếp bus (BIU): BIU thực tất tác vụ bus EU Trong EU thực lệnh BIU lấy lệnh từ nhớ cất giữ vào ô nhớ (gọi hàng chờ lệnh) bên CPU Do đó, EU khơng phải đợi lấy lệnh Page | từ nhớ Đây cách đơn giản cache Các ghi 8086 a Thanh ghi đa dụng: CPU 8086 có ghi đa dụng 16bit, chia đơi thành thanh, bit AX (accumulator): ghi tích luỹ bản, tác vụ vào/ra dùng ghi này, tác vụ dùng số liệu tức thời, số tác vụ chuỗi ký tự lệnh tính tốn dùng ghi AX BX (base register): ghi thường dùng để tính tốn địa ô nhớ CX (count register): ghi đếm thường dùng để đếm số lần lệnh vòng lặp xử lý chuỗi ký tự DX (data register): thường chứa địa số lệnh vào ra, lệnh tính tốn số học (kể nhân chia) b Thanh ghi trỏ: Dùng để thâm nhập số liệu ngăn xếp SP (stack pointer): Thanh ghi trỏ ngăn xếp BP (base pointer): Thanh ghi trỏ dùng để lấy số liệu từ ngăn xếp c Thanh ghi số SI (source index): Thanh ghi số nguồn DI (destination index): Thanh ghi số đích d Thanh ghi đoạn: Được dùng tính tốn địa nhớ Mỗi ghi đoạn xác định 64 KB ô nhớ nhớ CS (code segment): Thanh ghi đoạn mã lệnh DS (data segment): Thanh ghi đoạn liệu ES (extra segment): Thanh ghi đoạn thêm Các phép tính chuỗi dùng DI liên quan đến ES SS (stack segment): Thanh ghi đoạn ngăn xếp Con trỏ SP trỏ tới đỉnh ngăn xếp Trang e Thanh ghi cờ: Phản ảnh kết phép tính tốn số học luận lý, xác định trạng thái hoạt động CPU Các bit ghi cờ có ý nghĩa trình bày Page | CF: thể số giữ thoát từ bit cao ghi kết sau phép tính tốn OF: thể việc tính tốn vượt q khả CPU AF: thể số giữ thoát từ bit thứ (bit 3) ghi kết PF: bít thấp ghi kết phép tính tốn có số số chẵn (và ngược lại) ZF: kết phép tính (và ngược lại) DF: cú thể lập trình được, SI DI giảm cho vũng lặp IF: lập trình được, cho phép ngắt TF: lập trình được, cho phép chương trình chạy bước để phục vụ sửa sai chương trình 1 O D I T S Z A P C Để dành dùng sau CF cờ số giữ PF cờ chẳn lẽ AF cờ số giữ phụ ZF cờ zero SF cờ dấu * TF cờ bẩy * IF cờ ngắt * DF cờ hướng OF cờ tràn Tổ chức nhớ Bộ nhớ tổ chức thành mảng gồm ô nhớ bit Các liệu cất giữ lấy từ ô nhớ Mỗi ô nhớ có địa Trang Theo qui ước Intel kiện 16 bit cất giữ vào ô nhớ với byte cao địa cao byte thấp nhớ có địa thấp Page | Sự phân đoạn nhớ CPU 8086 có khơng gian địa MB (ứng với 20 đường dây địa chỉ) Vậy CPU 8086 quản lý nhớ 220 = MB Bộ nhớ 1MB chia thành nhiều đoạn 64 KB Các đoạn chồng lên Mỗi địa ô nhớ xác định số: Đoạn 16 bit Độ dời (offset) Địa cụ thể gọi địa vật lý tính cách dịch trái ghi đoạn bit (nhân cho 16) cộng vào độ dời Vớ dụ: Đoạn CS có giá trị 1002H, địa vật lý nhớ K đoạn CS có độ dời 500H (thường viết CS:500H) là: + 10 020H Vì 1002H dịch trái 4bit = 10020H 50 0H 10 520H Đây địa vật lý ô nhớ K Trong ví dụ ta thấy đoạn CS có điểm bắt đầu địa vật lý 10020H Độ dời 500H khoảng cách từ địa điểm bắt đầu đoạn CS đến ô nhớ K ễ nhớ K Địa vật lý ô nhớ K: 10520H Địa 10020H Độ dời 500H Điểm bắt đầu đoạn CS Trang Chính BIU định dùng đoạn theo tính chất số liệu Nếu số liệu mã lệnh BIU dùng đoạn CS Page | Nếu số liệu liệu chương trình BIU dùng đoạn DS Nếu số liệu liệu nằm ngăn xếp BIU dùng đoạn SS Nếu dùng phép tính chuỗi ghi DI ln chứa độ dời ô nhớ đoạn ES Lúc khởi động CPU 8086 đến địa vật lý cao nhớ (đoạn CS=0FFFFH độ dời 0) để lấy lệnh Địa ứng với địa ROM nhớ Địa ngoại vi Các ngoại vi có địa riêng từ đến 64 KB CPU 8086 dùng lệnh riêng biệt để truy xuất ngoại vi nhớ Muốn truy xuất ngoại vi, BIU cần đưa địa ngoại vi lên 16 bit thấp bus địa (khơng có đoạn) Các chân vi mạch 8086 AD0 … AD15 + AD16 … AD19 20 chân bus địa chỉ, chân từ AD0 đến AD15 đa hợp (multiplex) với bus số liệu, chân từ AD16 đến AD19 đa hợp với nhiệm vụ trạng thái thể chân S3, S4, S5, S6 Trang Page | 10 Hình: Vi mạch –Sơ đồ chân CPU 8086 Sau chu kỳ máy thứ S3, S4 cho ta biết đoạn dùng để tạo địa S S ý nghĩa 0 Đoạn ES Đoạn SS 1 Đoạn CS không đoạn Đoạn DS S5 thể trạng thái cờ ngắt (interrupt flag) S6 giữ trạng thái thấp CPU sử dụng hệ thống bus S7 lưu giữ trạng thái BHE chu kỳ máy thứ Trang 10 RD : CPU dùng tín hiệu để đọc số liệu từ ô nhớ hay từ thiết bị ngoại vi Ready: Ô nhớ ngoại vi dùng tín hiệu để báo cho CPU biết Page | 11 sẳn sàng chuyển liệu TEST : Khi ta dựng lệnh WAIT thỡ CPU trạng thái nghỉ tín hiệu chân xuống thấp CPU thi hành lệnh kế sau lệnh WAIT INTR: Các ngoại vi tác động vào chân cần ngắt CPU NMI (non maskable interrupt): Đây ngã vào ngắt không che, ngắt khơng che có ưu tiên tuyệt đối Reset: Khởi động lại hệ thống CPU 8086 có hai chế độ vận hành MAX ( MX ) MIN (MN) Nhiệm vụ chân tương ứng với chế độ vận hành sau: MIN (MN) MAX ( MX ) HOLD RQ / GT HALD RQ / GT1 WR Lock M / IO S2 DT / R S1 DEN S0 ALE QS0 INTA QS1 Chế độ MN (hiệu điện chân MN / MX cao) DEN (data enable): Cho phép số liệu nhận vào CPU đưa bus số liệu tuỳ theo tín hiệu chân DT / R Nếu chân DT / R có hiệu cao, CPU đưa số liệu bus hệ thống Nếu DT / R cú hiệu thấp, CPU nhận số liệu từ bus hệ thống M / IO (memory / input output): Chân trạng thái cao CPU liên hệ với nhớ Nó trạng thái thấp CPU làm việc với ngoại vi HOLD: Các ngoại vi tác động vào chân muốn sử dụng bus hệ thống HLDA (hold acknowledge): CPU dùng tín hiệu để báo cho ngoại vi biết thả bus hệ thống Trang 11 ALE (address latch enable): Tín hiệu chân cho biết địa nhớ đưa bus hệ thống Page | 12 INTA (interrupt latch enable): Đây tín hiệu cho biết CPU cơng nhận ngắt mà ngoại vi yêu cầu WR : Tín hiệu dùng để viết số liệu vào nhớ Chế độ MX (hiệu điện chân MN / MX thấp) S0, S1, S2 kết hợp, ý nghĩa sau: S S S ý nghĩa 0 Công nhận ngắt 0 Đọc từ ngoại vi Viết ngoại vi 1 Trạng thái dừng (HALT) 0 Tìm lệnh 1 Đọc nhớ 1 Viết vào nhớ 1 Khơng có hoạt động RQ / GT (request / grant): Ngoại vi tạo xung thấp chân để báo cho CPU biết cần sử dụng bus hệ thống CPU báo lại xung âm cho biết thả bus hệ thống RQ / GT1 giống RQ / GT ưu tiên thấp QS0 QS1 cho biết trạng thái hàng chờ lệnh sau: Q S0 Q ý nghĩa S1 0 Chưa có tác vụ Byte thứ lệnh thực Hàng chờ lệnh đầy 1 Byte lệnh lấy từ hàng chờ lệnh LOCK: Đây tín hiệu báo CPU sử dụng bus hệ thống GND (ground): chân mass (0 volt) Vcc hiệu điện nguồn volt Trang 12 CPU 8086 phải dùng chung với số vi mạch khác như: vi mạch điều khiển bus, vi mạch tạo xung nhịp (clock),… tạo thành máy vi tính Page | 13 III NGUN LÍ LÀM VIỆC THƠNG QUA CÁC CHÂN TÍN HIỆU 1.Các chân mang thơng tin địa - Vi xử lý 8086 có 20 đường địa bao gồm từ A0 đến A19 có 16 đường dây thấp từ A0 đến A15 ghép kênh với đường dây liệu từ D0 đến D15 chân từ AD0 đến AD15; đường dây địa từ A16 đến A19 ghép kênh với tín hiệu trạng thái từ S3 đến S6 chân từ A16/S3 đến A19/S6 Do chu kỳ bus địa đường dây sử dụng để mang thông tin địa đưa đến nhớ cổng 2.Các chân mang thông tin liệu - Vi xử lý 8086 có 16 đường dây liệu từ Do đến D15 ghép với kênh 16 đường địa thấp từ A0 đến A15 Khi hoạt động chu kỳ bus liệu đường Trang 13 dây mang thông tin từ liệu-là liệu đọc hay viết vào nhớ hay thiết bị vào ra, hay mã loại ngắt từ điều khiển ngắt 8259 Page 3.Các | 14 chân mang tín hiệu trạng thái - đường dây địa cao từ A16 đến A19 8086 ghép, ghép kênh từ S3 đến S6 Các bit trạng thái đưa liệu thời điểm truyền tới chân AD0-AD15 - Bit S3 bit S4 tạo bit mã nhị phân để xác định ghi sử dụng để tạo địa vật lý để đưa lên bus địa chu kỳ bus - Đường dây trạng thái S5 phản ánh mức logic bit cờ cho phép ngắt bên (IEF) - Tín hiệu READY: cung cấp thiết bị phát xung bên ngồi cung cấp nhớ hệ thống vào để báo cho CPU sẵn sàng cho phép liệu hồn thành Có tác dụng kéo dài chu kỳ đồng hồ 4.Các chân tín hiệu điều khiển - Tín hiệu ALE (cho phép chốt địa chỉ) xung nâng lên mức để báo cho mạch ngồi biết có địa hợp lệ địa Tín hiệu đưa vào điều khiển vi mạch chốt bên để tách bit từ A0 đến A15 khỏi địa liệu từ A0-A15 - Tín hiệu DEN(cho pháp liệu) để báo xem có liệu hợp lệ bus không với mức logic Điều khiển vi mạch đệm bus liệu - Tín hiệu M/IO báo cho mạch điện bên biết nhớ thiết bị nối với bus Mức báo thiết bị sử dụng bus, mức báo cho nhớ sử dụng bus - Tín hiệu DT/R dùng để báo hướng truyền liệu bus Khi DT/R=1 suốt phần liệu phần liệu bus liệu bus liệu chế độ truyền.Do liệu ghi vào nhớ đưa thiết bị vào/ra Ngược lại mức chân DT/R báo hiệu bus chế độ nhận Hay bus liệu đọc từ nhớ cổng vào - Tín hiệu BHE(cho phép băng cao) dùng để báo truy cập băng cao hay băng thấp nhớ BHE=0 truy cập băng cao nhớ mức ngược lại - Tín hiệu RD cho biết chu kì đọc ghi tiến hành CPU chuyển xuống mức để báo cho thiết bị bên ghi hợp lệ liệu đưa bus CPU chuyển RD xuống mức để báo hiệu CPU đọc liệu từ nhớ nhận liệu từ cổng vào Trang 14 5.Các chân tín hiệu ngắt - Tín hiệu INTR đầu vào vi xử lí 8086 sử dụng Page | 15 thiết bị để báo cần phục vụ - Tín hiệu TEST có quan hệ với giao diện ngắt bên ngồi Nếu TEST có mức logic 1thì CPU treo hoạt động chuyển đến trạng thái nghỉ - Đầu vào ngắt không che NMI (Non Maskable Interrupt) mức logic NMI chuyển từ lên 1, điều khiển chuyển đến chương trình phục vụ ngắt khơng che thời điểm hồn thành thực lệnh chạy - Đầu vào RESET sử dụng để thiết lập lại phần cứng cho CPU Chuyển RESET xuống mức logic dùng để khởi tạo ghi nội vi xử lí khởi tạo chương trình phục vụ thiết lập hệ thống 6.Các chân tín hiệu phục vụ DMA - Giao diện truy cập nhớ trực tiếp 8086 chế độ MIN bao gồm: tín hiệu HOLD HALD Khi thiết bị muốn giành quyền điều khiển bus hệ thống để thực truy cập trực tiếp, báo yêu cầu cho CPU cách chuyển HOLD lên mức logic 7.Chức chân chế độ MAX Khi 8086 thiết lập cấu hình MAX tạo tín hiệu để thục mơi trường đa xử lí, đồng xử lí Trang 15 Page | 16 *ĐỒNG HỒ HỆ THỐNG *TÍN HIỆU KHĨA LOCK (Lock Signal) Trang 16 Nếu đầu hệ thống đa xử lí có mức logic 0, vi xử lí muốn khóa vi xử lí khác sử dụng bus Tín hiệu Lock phù hợp với multibus, chuẩn cơng nghiệp cho giao diện vi xử lí mơi trường vi xử lí Page | 17 *CÁC TÍN HIỆU TRẠNG THÁI HÀNG ĐỢI QS,QSo QS1 QS0 Ý nghĩa 0 Không lấy liệu khỏi hàng đợi Byte liệu vừa lấy khỏi hàng đợi byte lệnh Hàng đợi rỗng 1 Byte liệu vừa lấy khỏi hàng đợi byte lệnh Trang 17 ... .9 6 .Các chân vi mạch CPU 8086 III.Ngun lí làm việc thơng qua chân tín hiệu 1 .Các chân mang thơng tin địa 14 2 .Các chân mang thong tin liệu .14 3 .Các chân mang tín hiệu. .. 14 4 .Các chân tín hiệu điều khiển 14 5 .Các chân tín hiệu ngắt 15 6 .Các chân tín hiệu phục vụ DMA 15 7.Chức chân chế độ MAX 16 Trang BỘ VI XỬ LÝ (CPU) INTEL 8086. .. mạch tạo xung nhịp (clock),… tạo thành máy vi tính Page | 13 III NGUYÊN LÍ LÀM VIỆC THƠNG QUA CÁC CHÂN TÍN HIỆU 1 .Các chân mang thông tin địa - Vi xử lý 8086 có 20 đường địa bao gồm từ A0 đến A19