Cấu Trúc Bên Trong Của Vi Xử Lí 8086 Doc - Tài Liệu Text - 123doc

Tải bản đầy đủ (.pdf) (15 trang)
  1. Trang chủ
  2. >>
  3. Giáo Dục - Đào Tạo
  4. >>
  5. Cao đẳng - Đại học
Cấu trúc bên trong của vi xử lí 8086 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (105.25 KB, 15 trang )

CHƯƠNG ICẤU TRÚC BÊN TRONG CỦA VI XỬ LÝ 8086 ___ oOo ___Đây là bộ vi xử lý nổi tiếng một thời của hãng Intel, nó được sử dụng trong nhiều lónh vực khác nhau, nhất là trong các máy IBM PC/XT. Các bộ vi xử lý thuộc họ này sẽ còn được sử dụng rộng rãi trong hàng chục năm nữa. I . CẤU TẠO BÊN TRONG:Bên trong gồm hai khối chính:- Khối thực hiện EU (Execution Unit)- Khối giap tiếp bus (Bus Interface Unit)1 .Khối thực hiện EUỞ hình 1.1 ta thấy trong khối EU ta thấy có một khối điều khiền (Control Unit, CU) chính tại bền trong khối điều khiển này có mạch giải mã lệnh. Mã lệnh đọc vào từ bộ nhớ đưa đến đầu của bộ giải mã, các thông tin thu được từ đầu ra củc nó sẽ được đưa đến mạch tạo xung điều khiển, kết quả là thu được các dãy xung khác nhau (tùy theo mã lệnh) để điều khiển hoạt động của các bộ phận bên trong và bên ngoài CPU. Trong khối EU còn có khối số học và logic (Arithmetic and Logic Unit ALU) dùng để thực hiện các thao tác khác nhau với các toán hạng cuả lệnh. Tóm lại khi CPU hoạt động EU sẽ cung cấp thông tin về điạ chỉ cho BIU để khối này đọc lệnh và dữ liệu, còn bản thân nó thì giải mã lệnh và thực hiện lệnh2. Khối phối ghép bus (Bus Interface Unit BIU)Khối BIU có nhiệm vụ đưa ra điạ chỉ, đọc mã lệnh từ bộ nhớ. Nói cách khác BIU chiu trách nhiệm đưa điạ chỉ ra bus và trao đổi dữ liệu với bus.Trong BIU còn có bộ nhớ đệm lệnh với dung lượng 4 byte dùng để đưa các mã lệnh đọc được nằm sẵn sàng chờ EU xử lý (trong tài liệu cuả Intel bộ lệnh này còn được gọi là hàng đợi lệnh. Đây là một cấu trúc mới được đưa vào bộ VXL 8086/8088 cho việc Intel đưa chế độ xử lý xen kẽ liên tục dùng mã lệnh vào ứng dụng vào trong các bộ VXL thế hệ mới.3. Sơ đồ khối bền trongvà chức năng các khối cuả VXL 8086:Hàng đợi lệnhCác cờAH ALBH BLCH CLDH DLBPDISISPCSESSSDSIPĐiều khiển bus và tạo đòa chỉ654321Bus đòa chỉ Bus dữ liệu Các thanh ghi đoạnArithmetic logic unit (ALU)Bus dữ liệu nộiCác bus hệ thốngExcution Unit(EU)Bus Interface Unit(BIU)Hình 1.1: Sơ đồ khối 8086 Bộ vi xử lý thực hiện các lệnh theo các bước sau:- Lấy lệnh từ bộ nhớ.- Đọc toán hạng (nếu lệnh yêu cầu).- Thực hiện lệnh.- Ghi kết quả.3.1). Khối thực hiện:Nhiệm vụ của khối thực hiện lệnh là thực hiện các lệnh của chương trình. Nó gồm có khối số học – logic (ALU) cho phép thực hiện các phép tính số học (+ , - , * , /) và các phép logic (AND, OR, NOT…). Trong khối thực hiện còn có một số ô nhớ gọi là thanh ghi dùng để chứa dữ liệu cho các phép tính. Mỗi thanh ghi giống như một ô nhớ ngoại trừ chúng được đặt tên thay vì dùng số để chỉ đòa chỉ. EU (Execution Unit) có các thanh ghi công dụng chung chia thành hai nhóm: nhóm thanh ghi dữ liệu và nhóm thanh ghi chỉ số. Các thanh ghi dữ liệu (Data Register): Các thanh ghi chỉ số và con trỏ (Index & Pointer Register):AH ALBH BLCH CLDH DLAX (Accumulator)BX (Base)CX (Count)DX (Data)SPBPSIDICon trỏ Stack (Stack Pointer)Con trỏ nền (Base Pointer)Chỉ số nguồn (Source Index)Chỉ số đích (Destnation Index) Các thanh ghi đoạn (Segment Register): Các thanh ghi trạng thái và điều khiển (Status & Control Register):CSDSSSESĐoạn mã (Code Segment)Đoạn dữ liệu (Data Segment)Đoạn Stack (Stack Segment)Đoạn thêm (Extra Segment)IPFlagCon trỏ lệnh (Intruction Pointer)Cờ Các thanh ghi dữ liệu:Có bốn thanh ghi dữ liệu ký hiệu lần lượt là: AX, BX, CX, DX, được người lập trình sử dụng cho các thao tác với dữ liệu. Mặc dù vi xử lý có thể thao tác với dữ liệu trong bộ nhớ, nhưng một lệnh như vậy sẽ được thực hiện nhanh hơn trong thanh ghi (cần ít chu kỳ đồng hồ hơn). Đó cũng là nguyên nhân tại sao các bộ vi xử lý hiện đại có xu hướng nhiều thanh ghi.Các byte cao và byte thấp trong thanh ghi được truy cập độc lập: Byte cao của thanh ghi AX được gọi là AH và byte thấp được gọi là AL. Tương tự như vậy cho các byte cao và byte thấp của các thanh ghi BX, CX, DX lần lượt là BH & BL, CH & CL, DH & DL. Nhờ điều này mà ta có nhiều thanh ghi hơn khi làm việc với các số liệu có kích thước byte dài. Trong đa số lệnh các thanh ghi dữ liệu được chọn tùy ý nhưng các thanh ghi này lại có chức năng riêng cố đònh trong một số ít lệnh. Thanh ghi tích lũy AX (Accumulator):Là thanh ghi được sử dụng nhiều nhất trong các lệnh số học – logic và truyền dữ liệu bởi vì việc sử dụng thanh ghi này tạo ra mã máy ngắn nhất.Trong các thao tác nhân hoặc chia một trong các số hạn tham gia phải chứa trong AH hoặc AL, các thao tác vào ra cũng sử dụng thanh ghi AH hoặc AL. Thanh ghi cơ sở BX (Base):Thanh ghi BX được dùng cho tính toán đòa chỉ trong phương pháp đònh đòa chỉ gián tiếp. Thanh ghi đếm CX (Count):Việc thực hiện các chương trình lập được thực hiện dễ dàng nhờ thanh ghi CX, trong đó CX đóng vai trò là bộ đếm vòng lập. Một thí dụ khác của việc sử dụng thanh ghi CX đó là lệnh REP (Repeat) lệnh này điều khiển một lớp các lệnh chuyên về các thao tác chuỗi. CL cũng được sử dụng là một biến đếm trong các lệnh dòch hay quay các bit. Thanh ghi dữ liệu DX (Data):DX dùng để đònh đòa chỉ gián tiếp trong các thao tác vào ra, nó cũng còn được sử dụng chứa toán hạn, kết quả trong phép nhân và chia. Thanh ghi con trỏ và chỉ số:Các thanh ghi SP, BP, SI, DI thường trỏ tới các ô nhớ (tức là chứa các đòa chỉ offset của các ô nhớ đó). Khác với thanh ghi đoạn, các thanh ghi con trỏ và ngăn xếp được sử dụng trong các thao tác số học và một số thao tác khác nhau. Thanh ghi con trỏ – ngăn xếp SP (Stack Pointer):Di chuyển từ đòa chỉ cao đến đòa chỉ thấp, dùng để kết hợp với thanh ghi đoạn Stack SS (Stack Segment)để lưu trử đòa chỉ trở về hoặc dữ liệu vào trong ngăn xếp. Thanh ghi con trỏ cơ sở BP (Base Pointer):Thanh ghi này được dùng để truy cập dữ liệu trong ngăn xếp mà không làm thay đổi SP. Tuy nhiên, khác với SP thanh ghi BP cũng còn được sử dụng đễ truy cập dữ liệu ở các đoạn khác.  Thanh ghi chỉ số nguồn SI (Source Index):Thanh ghi SI được sử dụng để trỏ tới các ô nhớ trong đoạn dữ liệu được đònh bởi thanh ghi đoạn dữ liệu DS (Data Segment), có thể truy cập dễ dàng các ô nhớ liên tiếp bằng cách tăng SI. Thanh ghi chỉ số đích DI (Destination Index):Thanh ghi DI có chức năng tương tự như thanh ghi SI và được dùng kết hợp với thanh ghi đoạn thêm ES (Extra Segment). Cả hai DI và SI thích hợp trong các thao tác sao chép, di chuyển hoặc so sánh các khối dữ liệu có dung lượng đến 64kB. Thanh ghi con trỏ lệnh IP (Intruction Pointer):8086 không thực hiện lệnh trực tiếp trong bộ nhớ mà lệnh được lấy ở hàng đợi lệnh có cấu tạo giống như một thanh ghi dòch (FIFO: First In First Out: vào trước ra trước) chứa các mã lệnh cung cấp bởi khối BIU. Thanh ghi IP chỉ đến lệnh tiếp theo chưa được nhập vào hàng đợi lệnh và được dùng kết hợp với thanh ghi CS. Thanh ghi IP được cập nhật mỗi khi có một lệnh được thực hiện xong, khác với các thanh ghi khác, IP không bò tác động trực tiếp bởi các lệnh.  Thanh ghi cờ (Flag Register):Thanh ghi cờ của 8086 có độ dài 16bit (2byte) byte thấp chứa các bit trạng thái giống như trong 8085 phản ánh trạng thái của vi xử lý, byte cao chứa 1 bit trạng thái đó là bit 11 và 3 bit điều khiển dùng để điều khiển hoạt động của vi xử lý. Sau đây là cấu tạo của thanh ghi cờ trong 8086:15 8 7 0OD I T S Z A P CThanh ghi cờ của 8086C: carry flag.P: parity flag.A: auxiliary flag.Z: zero flag.S: sign flag.T: trap flag.I: interrupt enable flag.D: direction flag.O: overflow flag.+ Cờ nhớ CF :Cờ nhớ CF được thiết lập khi có số nhớ từ bit MSB. Trong phép cộng hoặc số thiếu trong phép trừ (MSB trong các lệnh byte là bit 7 và trong các lệnh word là bit 15) cờ CF cũng bò ảnh hưởng bởi các lệnh quay và dòch.+ Cờ chẵn lẻ PF :Sau các lệnh số học hoặc logic đối với các lệnh byte nếu số lượng số ‘1’ trong byte kết quả là chẵn thì cờ PF được thiết lập là ‘1’ ngược lại là ‘0’ nếu là lẻ, đối với các lệnh word chỉ xét các byte thấp.+ Cờ nhớ phụ AF:Cờ nhớ phụ được thiết lập nếu có nhớ (cộng) hoặc có thiếu (trừ) từ phân nửa dưới đến phân nửa trên của toán hạn (đối với lệnh byte đó là bit 3 và đối với lệnh word là bit 7) cờ AF được sử dụng trong các thao tác với số BCD.+ Cờ zero ZF:Cờ zero được thiết lập khi kết quả bằng 0.+ Cờ dấu SF:Cờ dấu là ‘1’ khi bit MSB của kết quả bằng ‘1’ tức là số âm, đối với lệnh byte MSB là bit 7 và trong lệnh word là bit 15.+ Cờ bẫy TF:Tạo khả năng thực hiện chương trình theo từng bước, khi TF bằng ‘1’ 8086 phát sinh ngắt loại 1 (ngắt cứng). Chương trình DEBUG sử dụng khi thi hành lệnh T (trace) để chạy từng bước một lệnh. Đầu tiên DEBUG thiết lập cờ TF rồi mới chuyển điều khiển cho lệnh đó. Sau khi lệnh được thi hành vi xử lý sẽ phát sinh một ngắt do TF được lập DEBUG sử dụng chính phục vụ ngắt này để lấy quyền điều khiển từ vi xử lý.+ Cờ ngắt IF:Cờ ngắt được sử dụng để điều khiển các ngắt phần cứng bên ngoài, nếu cờ này được thiết lập các ngắt phần cứng có thể ngắt 8086. Khi xóa IF, các ngắt bên ngoài không còn tác dụng nửa (bò che). Thực ra vẫn còn một ngắt cứng không che được NMI (Non Maskable Interrupt).Trước khi vi xử lý trao quyền điều khiển cho một phục ngắt nó xóa cả IF và TF, như vậy phục ngắt đó sẽ không bò ngắt. Tất nhiên một phục vụ ngắt có thể đổi cờ để cho phép ngắt khi nó đang thi hành.+ Cờ tràn OF:Cờ tràn là ‘1’ khi có hiện tượng tràn và ngược lại nó bằng ‘0’. Hiện tượng tràn cho thấy một sự thật là phạm vi biểu diễn các số trong máy tính là có giới hạn.Phạm vi biểu diển các số có dấu trong một word từ –32768 đến +32767 và trong một byte từ –126 đến +127.Đối với các số không dấu từ 0 đến 65535 cho một word và từ 0 đến 255 cho một byte. Nếu kết quả của một phép tính vượt ra ngoài phạm vi này thì hiện tượng tràn sẽ xảy ra và kết quả nhận được bò cắt bớt sẽ không phải là kết quả đúng. + Cờ điều khiển DF:Là một trong ba cờ điều khiển dùng điều khiển các thao tác của vi xử lý công dụng của DF là dòch hướng cho các thao tác chuỗi, các thao tác này được thực hiện bởi hai thanh ghi chỉ số SI & DI, nội dung của hai thanh ghi này sẽ tự động tăng lên khi DF = 0 và giảm xuống khi DF =1.3.2). Khối giao tiếp (BIU):Khối giao tiếp làm đơn giản việc liên lạc giữa EU và bộ nhớ hoặc các vi mạch vào ra. Nó có nhiệm vụ gởi các đòa chỉ, số liệu và tín hiệu điều khiển vào các bus, BUI & EU liên hệ với nhau bằng các bus nội bộ, khi EU đang thi hành một lệnh, BIU nạp 6 byte mã lệnh tiếp theo vào và đặt chúng vào hàng đợi lệnh, mục đích của việc này là làm tăng tốc độ của vi xử lý. Nếu EU cần liên lạc với bộ nhớ hay thiết bò ngoại vi, BIU sẽ treo các lệnh nhận trước và thực hiện thực hiện các thao tác cần thiết. BIU cấu tạo gồm các thanh ghi đoạn và con trỏ lệnh dùng để chứa đòa chỉ các ô nhớ.a). Các thanh ghi đoạn:Được dùng để lưu trử đòa chỉ của các lệnh và dữ liệu trong bộ nhớ, vi xử lý dựa trên các giá trò này để truy cập bộ nhớ.Bộ nhớ là tập hợp các byte ô nhớ, mỗi byte có một đòa chỉ xác đònh bắt đầu từ 0. 8086 gán cho mỗi ô nhớ một đòa chỉ vật lý 20 bit. Như vậy, nó có thể đònh đòa chỉ đến byte (tương đương 1MB) ô nhớ, các byte đầu tiên của bộ nhớ có đòa chỉ như sau:0000 0000 0000 0000 00000000 0000 0000 0000 00010000 0000 0000 0000 00100000 0000 0000 0000 00110000 0000 0000 0000 0100Để đơn giản, các đòa chỉ trên thường được biểu diển bằng số thập lục phân như sau:00000H00001H00002H………… Hvà cứ tiếp tục cho đến giá trò lớn nhất là FFFFFHDo các đòa chỉ quá lớn (20 bit) không thể chứa trong một thanh ghi của 8086 (16 bit) nên 8086 chia bộ nhớ thành các đoạn bộ nhớ (Memory Segment).Một đoạn bộ nhớ là một khối gồm 216 (64K) ô nhớ liên tiếp nhau, mỗi đoạn được xác đònh bằng một đòa chỉ đoạn bắt đầu từ đòa chỉ 0, đòa chỉ đoạn là một số 16 bit nên đòa chỉ đoạn lớn nhất là FFFF. Bên trong mỗi đoạn số ô nhớ được xác đònh bằng đòa chỉ tương đối (offset), đó là số byte tính từ đầu đoạn, với một đoạn 64K thì offset cũng là một số 16 bit, byte đầu tiên trong đoạn có offset bằng 0 và byte cuối cùng bằng FFFF.Một ô nhớ có thể được xác đònh bằng đòa chỉ đoạn:đòa chỉ tương đối trong đoạn (segment:offset) và được gọi là đòa chỉ logic.Thí dụ: ô nhớ A4FB: 4872 có đòa chỉ đoạn là A4FB và đòa chỉ offset là 4872. Để tìm đòa chỉ vật lý của ô nhớ trước tiên ta dòch đòa chỉ đoạn về bên trái 4 bit và sau đó cộng với đòa chỉ offset, như vậy đòa chỉ vật lý của ô nhớ A4FB:4872 được tính như sau: A4FB0 4872A9822b). Sắp xếp đoạn:Trong bộ nhớ đoạn 0 bắt đầu từ đòa chỉ 0000:0000 = 00000 và kết thúc ở 0000:FFFF = 0FFFF, đoạn 1 bắt đầu từ đòa chỉ 0001:0000 = 00010 và kết thúc ở đòa chỉ 0001:FFFF = 1000F. Như vậy, có rất nhiều sự chồng nhau giữa các đoạn. Các đoạn bắt đầu từ các đòa chỉ cách nhau 16byte và đòa chỉ đầu của mỗi đoạn luôn kết thúc bằng các số 0. 16byte được gọi là một khúc (Paragraph), các đòa chỉ chia hết cho 16 ( các đòa chỉ kết thúc bằng 0) là các biên giới khúc (Paragraph Boundary)c). Các đoạn của chương trình:Mỗi đoạn chương trình ngôn ngữ máy bao gồm các lệnh và dữ liệu, còn một vùng đặc biệt trong RAM gọi là ngăn xếp (stack). Mã lệnh, dữ liệu và ngăn xếp của chương trình được nạp vào các đoạn bộ nhớ khác nhau đó là đoạn mã (code segment), đoạn dữ liệu (data segment), đoạn ngăn xếp (stack segment).Để theo dõi các đoạn khác nhau của chương trình 8086 được cung cấp 4 thanh ghi đoạn để chứa các đòa chỉ đoạn, các thanh ghi CS, DS, SS lần lược chứa các đòa chỉ đoạn mã, đoạn dữ liệu, và đoạn ngăn xếp. Nếu chương trình muốn truy cập đến một dữ liệu thứ hai nó có thể sử dụng thanh ghi đoạn thêm ES (extra segment).Một chương trình không phải bao giờ cũng cần chiếm hết một đoạn 64KB, do đặc điểm chồng nhau giữa các đoạn cho phép các đoạn của một chương trình nhỏ hơn 64KB có thể đặt gần lại với nhau. Tại một thời điểm, chỉ có các ô nhớ được đònh đòa chỉ bởi 4 thanh ghi đoạn mới có thể truy cập, nghóa là chỉ có 4 đoạn bộ nhớ là tác động. Tuy nhiên nội dung của các thanh ghi đoạn có thể thay đổi bởi chương trình để truy cập đến các đoạn khác nhau. d). Hàng đợi lệnh:Như ta đã biết, để tăng tốc độ vi xử lý khối BIU tiếp nhận các lệnh và đưa vào hàng đợi lệnh (Queue) trong khi đó khối EU đang thi hành lệnh. Hàng đợi lệnh có thể nhận 6 byte mã lệnh, các lệnh của 8086 có độ dài từ 1 đến 6 byte, nếu lệnh chưa vào đầy đủ trong hàng đợi lệnh thì khối EU sẽ chờ cho đến khi lệnh nạp hết vào hàng đợi lệnh.

Tài liệu liên quan

  • Cấu tạo bên trong của Trái Đất Cấu tạo bên trong của Trái Đất
    • 29
    • 544
    • 1
  • Báo cáo Báo cáo " Khả Năng Chảy Nhớt, Cấu Trúc Và Tính Chất Cơ Lí Của Vật Liệu Compozit Polyvinyl Clorua/Nanoclay" doc
    • 8
    • 523
    • 0
  • Cấu trúc bên trong của vi xử lí 8086 doc Cấu trúc bên trong của vi xử lí 8086 doc
    • 15
    • 2
    • 40
  • Cấu trúc cây trong đồ thị vô hướng Cấu trúc cây trong đồ thị vô hướng
    • 36
    • 384
    • 0
  • 84 cấu TRÚC câu TRONG TIẾNG ANH 84 cấu TRÚC câu TRONG TIẾNG ANH
    • 10
    • 885
    • 7
  • Bài 10. Cấu tạo bên trong của Trái Đất Bài 10. Cấu tạo bên trong của Trái Đất
    • 23
    • 435
    • 0
  • Khảo sát cấu trúc  比起  与   相比  và  相比之下  trong tiếng Hán hiện đại Khảo sát cấu trúc 比起 与 相比 và 相比之下 trong tiếng Hán hiện đại
    • 85
    • 2
    • 2
  • Cấu trúc đề thi Hóa 11 HKII Cấu trúc đề thi Hóa 11 HKII
    • 1
    • 299
    • 0
  • Nghiên cứu các nhân tố ảnh hưởng đến cấu trúc vốn của các doanh nghiệp niêm yết trên thị trường chứng khoán Việt Nam Nghiên cứu các nhân tố ảnh hưởng đến cấu trúc vốn của các doanh nghiệp niêm yết trên thị trường chứng khoán Việt Nam
    • 26
    • 994
    • 5
  • Nghiên cứu cấu trúc vốn của các doanh nghiệp ngành khoáng sản niêm yết trên thị trường chứng khoán Việt Nam Nghiên cứu cấu trúc vốn của các doanh nghiệp ngành khoáng sản niêm yết trên thị trường chứng khoán Việt Nam
    • 26
    • 504
    • 0

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

(105.25 KB - 15 trang) - Cấu trúc bên trong của vi xử lí 8086 doc Tải bản đầy đủ ngay ×

Từ khóa » Cấu Trúc Vi Xử Lý 8086