Chương 2: Cấu trúc và hoạt động của vi xử lý

Chia sẻ: Hoang Cuong | Ngày: | Loại File: DOC | Số trang:34

1
602
lượt xem
206
download

Chương 2: Cấu trúc và hoạt động của vi xử lý

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu "Chương 2: Cấu trúc và hoạt động của vi xử lý" giúp bạn nắm bắt sơ đồ cấu trúc tổng quát của vi xử lý, chức năng, hoạt động của các thành phần bên trong vi xử lý, cấu trúc của các bộ vi xử lý công nghệ cao, các vi xử lý intel thế hệ trước, vi xử lý I386, I486 và Pentium.

Chủ đề:
Lưu

Nội dung Text: Chương 2: Cấu trúc và hoạt động của vi xử lý

  1. CHƯƠNG II: CÂU TRUC VÀ HOAT ĐÔNG CUA VI XƯ LY. ́ ́ ̣ ̣ ̉ ́ 2.1. SƠ ĐỒ CÂU TRUC TÔNG QUAT CUA VI XƯ LY. ́ ́ ̉ ́ ̉ ́ Sơ đồ khôi cua môt bộ vi xư lý truyên thông 8 bit đươc trinh bay trên hinh 2.1. Sơ đồ ́ ̉ ̣ ̀ ́ ̀ ̀ ̀ khôi nay đăc trưng cho hâu hêt cac bộ vi xư lý 8 bit đã có trên thị trương như 8085, ́ ̀ ̣ ̀ ́ ́ 8088/8086 và Z80… Cac bộ vi xư lý cac thế hệ sau sẽ có câu truc bên trong khac đi ́ ́ ́ ́ ́ nhưng vân giư đươc môt số nguyên tăc hoat đông cơ ban cua sơ đồ nay. ̃ ̣ ́ ̣ ̣ ̉ ̉ ̀ MARs Data Register SP PC External BUS Internal BUS BIU Acc Queue ALU Cờ CU ́ ́ ̣ ̀ ̉ Cac tin hiêu điêu khiên và đinh thời ̣ Hinh 2.1. Sơ đồ khôi cua môt bộ vi xử lý 8 bit truyên thông ̀ ́ ̉ ̣ ̀ ́ Vi xư lý là môt mach số có thể thưc hiên nhiêu chưc năng số khac nhau. Nó sẽ thưc ̣ ̣ ̣ ̀ ́ hiên môt bai toan, môt công viêc khi đươc cung câp môt chương trinh. Môt chương ̣ ̣ ̀ ́ ̣ ̣ ́ ̣ ̀ ̣ trinh là môt chuôi cac tin hiêu nhị phân nôi tiêp nhau, môi chuôi nhị phân sẽ yêu câu ̀ ̣ ̃ ́ ́ ̣ ́ ́ ̃ ̃ ̀ (cho phep) môt chưc năng cua vi xư lý hoat đông. Quá trinh lam viêc cua vi xư lý bao ́ ̣ ̉ ̣ ̣ ̀ ̀ ̣ ̉ gôm hai chu kỳ chinh lăp lai môt cach liên tuc đó la: ̀ ́ ̣ ̣ ̣ ́ ̣ ̀ 15
  2. - Chu kỳ lây cac mã lênh. ́ ́ ̣ - Chu kỳ thưc hiên cac chưc năng mà lênh yêu câu. ̣ ́ ̣ ̀ Tương ưng vơi hai chu kỳ trên có thể chia vi xư lý ra hai phân chinh: Đơn vị thưc ̀ ́ hiên lênh EU (Execution Unit), và đơn vị giao tiêp BUS (Bus Interface). ̣ ̣ ́ Đơn vị thưc hiên lênh bao gôm bộ giai mã lênh, hay con goi là đơn vị điêu khiên CU ̣ ̣ ̀ ̉ ̣ ̀ ̣ ̀ ̉ (Control Unit), sẽ đưa ra cac tin hiêu cho phep chon cac khôi trong VXL đươc phep ́ ́ ̣ ́ ̣ ́ ́ ́ hoat đông tuy theo mã lênh mà nó nhân đươc tư BIU. Tưc là vơi cac lênh khac nhau, ̣ ̣ ̀ ̣ ̣ ́ ̣ ́ CU sẽ chon ra cac khôi khac nhau trong CPU hoat đông để thưc hiên chưc năng cua ̣ ́ ́ ́ ̣ ̣ ̣ ̉ ̣ lênh đo. ́ Môt bộ phân quan trong khac cua EU là đơn vị số hoc và logic (ALU - Arithmetic ̣ ̣ ̣ ́ ̉ ̣ Logic Unit ), ALU là nơi thưc hiên tât cả cac phep tinh số hoc và logic mà chương ̣ ́ ́ ́ ́ ̣ trinh yêu câu. Cac toan hang trong cac phep tinh mà ALU thưc hiên có thể năm trong ̀ ̀ ́ ́ ̣ ́ ́ ́ ̣ ̀ cac thanh ghi dư liêu, trong bộ nhơ hoăc đươc xac đinh trong chinh mã lênh. ́ ̣ ̣ ́ ̣ ́ ̣ Cac thanh ghi là cac ô nhơ có tôc độ truy xuât rât nhanh, năm ngay bên trong VXL. ́ ́ ́ ́ ́ ̀ Chung đươc dung lam nơi lưu trư cac toan hang cung câp cho ALU, lưu trư cac dư ́ ̀ ̀ ́ ́ ̣ ́ ́ liêu vao ra VXL, hoăc lưu trư cac đia chỉ cho phep CPU truy câp bộ nhơ hoăc I/O ̣ ̀ ̣ ́ ̣ ́ ̣ ̣ nhanh chong hơn. ́ EU không nôi vơi thế giơi bên ngoai, nó nhân lênh tư bộ nhơ lênh trong BIU. Khi lênh ́ ̀ ̣ ̣ ̣ ̣ cân thâm nhâp bộ nhơ hay ngoai vi EU sẽ yêu câu BIU thưc hiên. ̀ ̣ ̣ ̀ ̣ Bộ nhơ lênh là cac ô nhơ chuyên để cât giư cac mã lênh cua chương trinh đang thưc ̣ ́ ́ ́ ̣ ̉ ̀ hiên. Có loai vi xư lý bộ nhơ lênh bao gôm nhiêu ô đươc goi là hang đơi lênh (Queue ̣ ̣ ̣ ̀ ̀ ̣ ̀ ̣ Instruction) . Hang đơi nay hoat đông theo nguyên tăc FIFO(Fist Input Fist Output – ̀ ̀ ̣ ̣ ́ vao trươc ra trươc), khi EU lây đi 1 byte lênh thì BIU sẽ tư đông lây byte lênh kế tiêp ̀ ́ ̣ ̣ ́ ̣ ́ cua chương trinh lâp đây vao hang đơi. Vơi hang đơi lênh cac chu kỳ giai mã lênh và ̉ ̀ ́ ̀ ̀ ̀ ̀ ̣ ́ ̉ ̣ lây lênh có thể xay ra đông thơi, nâng cao tôc độ vi xư ly. Ơ môt số loai vi xư lý bộ ́ ̣ ̉ ̀ ́ ́ ̣ ̣ nhơ lênh chỉ có 1 byte đươc goi là thanh ghi lênh IR (Instruction Register), vơi loai ̣ ̣ ̣ ̣ CPU nay BIU phai chơ EU thưc hiên xong lênh hiên hanh mơi đươc phep lây vao lênh ̀ ̉ ̣ ̣ ̣ ̀ ́ ́ ̀ ̣ mơi. Đơn vị giao tiêp BUS: BIU thưc hiên tât cả cac thao tac về BUS do EU yêu câu. Ngoai ́ ̣ ́ ́ ́ ̀ ̀ ra trong thơi gian EU đang thưc hiên lênh, BIU sẽ tư đông truy câp tơi bộ nhơ lênh lây ̣ ̣ ̣ ̣ ̣ ́ cac mã lênh cua chương trinh săp vao bộ nhơ lênh, săn sang cung câp cho EU thưc ́ ̣ ̉ ̀ ́ ̀ ̣ ̃ ̀ ́ hiên. Để giao tiêp bên ngoai BIU cung câp cho bộ nhơ và ngoai vi cac tin hiêu đia chi, ̣ ́ ̀ ́ ̣ ́ ́ ̣ ̣ ̉ dư liêu , điêu khiên cân thiêt: ̣ ̀ ̉ ̀ ́ - Đia chỉ cung câp ra bên ngoai thông thương đươc cung câp tư môt thanh ghi đia chỉ ̣ ́ ̀ ́ ̣ ̣ do CU chon, môt số trương hơp có thể tư cac thanh ghi dư liêu, hoăc tư ngay mã ̣ ̣ ́ ̣ ̣ lênh mà CU nhân đươc. ̣ ̣ - Dư liêu đươc truyên ra ngoai tư môt thanh ghi dư liêu, lây vao môt thanh ghi dư ̣ ̀ ̀ ̣ ̣ ́ ̀ ̣ liêu, hoăc lây trưc tiêp vao ALU trong cac lênh số hoc và logic. ̣ ̣ ́ ́ ̀ ́ ̣ ̣ - Cac tin hiêu điêu khiên sẽ đươc đinh thơi trong bộ điêu khiên BUS tuy theo lênh cụ ́ ́ ̣ ̀ ̉ ̣ ̀ ̉ ̀ ̣ thê. ̉ Riêng cac trương hơp lây mã lênh, đia chỉ đươc BIU cung câp tư bộ đêm chương ́ ́ ̣ ̣ ́ ́ trinh PC (Program Counter), và lây mã lênh tư bộ nhơ vao thanh ghi lênh (hoăc hang ̀ ́ ̣ ̀ ̣ ̣ ̀ đơi lênh). ̣ Khi băt đâu hoat đông PC = 0, khi lây vao 1 byte lênh PC tăng lên 1. PC sẽ đươc thiêt ́ ̀ ̣ ̣ ́ ̀ ̣ ́ lâp giá trị mơi, khi có cac lênh rẽ nhanh chuyên điêu khiên chương trinh ̣ ́ ̣ ́ ̉ ̀ ̉ ̀ 16
  3. Trong môt số vi xư lý bộ đêm chương trinh con đươc goi là con trỏ lênh IP (Instruction ̣ ́ ̀ ̀ ̣ ̣ Pointer). Để lam viêc đươc VXL phai hoat đông chung vơi thiêt bị khac như là bộ nhơ và ̀ ̣ ̉ ̣ ̣ ́ ́ ngoai vi, để tao thanh hệ thông VXL. Khi đó bộ vi xư lý đươc goi là đơn vị xư lý trung ̣ ̣ ̀ ́ ̣ tâm CPU (Central Processing Unit ). Phân kế tiêp sẽ miêu tả câu truc và hoat đông cụ ̀ ́ ́ ́ ̣ ̣ thê, cua cac bộ phân chinh trong môt CPU. ̉ ̉ ́ ̣ ́ ̣ 2.2. CHƯC NĂNG, HOAT ĐÔNG CUA CAC THANH PHÂN BÊN TRONG VI ̣ ̣ ̉ ́ ̀ ̀ XƯ LY. ́ 2.2.1. Cac thanh ghi (Registers). ́ Cac thanh ghi là môt bộ phân rât quan trong trong môt CPU. Chung là môt số it cac ô ́ ̣ ̣ ́ ̣ ̣ ́ ̣ ́ ́ nhơ có tôc độ truy xuât rât nhanh, cach đanh đia chỉ đơn gian để CPU có thể truy xuât ́ ́ ́ ́ ́ ̣ ̉ ́ dư liêu môt cach nhanh chong. Cac thanh ghi đươc cho phep hoat đông tư cac bộ chon ̣ ̣ ́ ́ ́ ́ ̣ ̣ ́ ̣ MUX (Multiplex) đươc điêu khiên tư đơn vị điêu khiên CU. Chung đươc chon nhơ số ̀ ̉ ̀ ̉ ́ ̣ it cac bit nhị phân trong mã lênh. ́ ́ ̣ CPU có cang nhiêu thanh ghi, thì tôc độ thưc hiên môt chương trinh cang cao, do giam ̀ ̀ ́ ̣ ̣ ̀ ̀ ̉ đươc thơi gian truy xuât cac hăng, biên ngoai bộ nhơ. Giam đươc số byte lênh do ́ ́ ̀ ́ ̀ ̉ ̣ không phai cung câp đia chỉ cac dư liêu toan hang. Nhưng tât nhiên khi số lương ̉ ́ ̣ ́ ̣ ́ ̣ ́ thanh ghi quá lơn thì viêc truy câp chung cung trơ nên phưc tap như đôi vơi cac ô nhơ. ̣ ̣ ́ ̃ ̣ ́ ́ Để dễ dang truy xuât, cac thanh ghi đươc chia ra cac nhom vơi cac chưc năng riêng ̀ ́ ́ ́ ́ ́ biêt nao đo. Cac hang san xuât khac nhau đưa ra cac tên goi cac thanh ghi khac nhau. ̣ ̀ ́ ́ ̃ ̉ ́ ́ ́ ̣ ́ ́ Nhưng thông thương CPU 8 bit nao cung ghi cac thanh ghi vơi cac chưc năng sau: ̀ ̃ ́ ́ - Bộ đêm chương trinh (PC Program Counter ). Hay goi là con trỏ lênh (IP ́ ̀ ̣ ̣ Instruction Pointer). - Thanh ghi lênh (IR Instruction Register) Môt số CPU là hang đơi lênh (Instruction ̣ ̣ ̀ ̣ Queue). - Thanh ghi đia chỉ bộ nhơ (MAR-Memory Address Register) . ̣ - Thanh ghi con trỏ ngăn xêp (SP-Stack Pointer). ́ - Thanh ghi chỉ số (Index Register). - Thanh ghi đa dung (General Register). ̣ - Thanh ghi chưa (Accumulator Register). - Thanh ghi cơ (Flag Register). Cac thanh ghi đêu đươc nôi chung lên BUS nôi trong CPU theo sơ đồ hinh 2.2. ́ ̀ ́ ̣ ̀ • Thanh ghi bộ đêm chương trinh (PC). ́ ̀ Ơ cac CPU 8 bit bộ đêm chương trinh thương là 16 bit, nó có nhiêm vụ tao ra cac đia ́ ́ ̀ ̣ ̣ ́ ̣ chỉ cung câp tơi bộ nhơ để CPU có thể đoc vao cac byte lênh cua chương trinh. Sau khi ́ ̣ ̀ ́ ̣ ̉ ̀ đoc xong môt byte lênh, PC luôn trỏ tơi đia chỉ cua byte lênh kế tiêp cân lây vao. ̣ ̣ ̣ ̣ ̉ ̣ ́ ̀ ́ ̀ Cac CPU có 16 đương đia chi, PC sẽ đươc nôi thăng tơi bộ đêm đia chi, giá trị cua nó ́ ̣ ̉ ́ ̉ ̣ ̣ ̉ ̉ sẽ đươc cung câp thăng ra Bus đia chỉ để đưa tơi bộ nhơ chương trinh. Tưc là chương ́ ̉ ̣ ̀ trinh có thể năm bât cư nơi đâu trong vung nhơ 64KB mà CPU quan ly. ̀ ̀ ́ ̀ ̉ ́ Môt số CPU 8 bit quan lý bộ nhơ băng 20 đương đia chi, đia chỉ vât lý 20 bit nay ̣ ̉ ̀ ̣ ̉ ̣ ̣ ̀ đươc tinh toan tư môt đia chỉ đoan và môt đia chỉ offset. Đia chỉ đoan sẽ đươc dich trai ́ ́ ̣ ̣ ̣ ̣ ̣ ̣ ̣ ̣ ́ 4 bit rôi công vơi đia chỉ offset để cung câp đia chỉ 20 bit cho bộ đêm đia chi. Trong ̀ ̣ ̣ ́ ̣ ̣ ̣ ̉ trương hơp đoc mã lênh, đia chỉ đoan thương đươc chỉ đinh trong thanh ghi đoan lênh ̣ ̣ ̣ ̣ ̣ ̣ ̣ (CS: Code Segment), và đia chỉ offset sẽ chưa trong thanh ghi con trỏ lênh. ̣ ̣ 17
  4. Bit 0 Bit 1 ……… Bit n ̣ Nap thanh ghi Chuyên dữ liêu ̉ ̣ thanh ghi ra BUS 0 1 ̣ ̉ BUS nôi cua CPU n Hinh 2.2. Nôi ghep cua thanh ghi tới Bus nôi. ̀ ́ ́ ̉ ̣ Quá trinh đôi đia chỉ trong CPU: ̀ ̉ ̣ CPU đươc chế tao để hoat đông theo cac chương trinh đinh săn. Trong cac hệ thông ̣ ̣ ̣ ́ ̀ ̣ ̃ ́ ́ CPU 8 bit (8 đương dư liêu), chương trinh đơn gian bao gôm cac byte (8 bit) xêp lân ̣ ̀ ̉ ̀ ́ ́ ̀ lươt trong cac vung nhơ có thể đia chỉ hoa đươc. Khi hệ thông băt đâu hoat đông, bộ ́ ̀ ̣ ́ ́ ́ ̀ ̣ ̣ đêm chương trinh sẽ đươc khơi đông môt giá trị qui đinh trươc trỏ tơi lênh đâu tiên mà ́ ̀ ̣ ̣ ̣ ̣ ̀ hệ thông sẽ thưc hiên. Khi không có cac cơ chế điêu khiên chương trinh, thì sau khi đoc ́ ̣ ́ ̀ ̉ ̀ ̣ xong môt byte lênh PC sẽ đươc tư đông tăng lên 1, và như vây chu kỳ đoc lênh tiêp ̣ ̣ ̣ ̣ ̣ ̣ ́ theo sẽ lây lênh tai đia chỉ kế tiêp trong bộ nhơ. ́ ̣ ̣ ̣ ́ Có thể có cac chương trinh đươc thưc hiên tư tuân tư tư đâu đên cuôi, luc đó PC sẽ ́ ̀ ̣ ̀ ̀ ́ ́ ́ tuân tư tăng lên sau môi lân lây vao 1 byte lênh như môt bộ đêm binh thương. Cac ̀ ̃ ̀ ́ ̀ ̣ ̣ ́ ̀ ́ chương trinh như vây rât it xay ra trong thưc tê, do cac bai toan thưc tế luôn phai có ̀ ̣ ́ ́ ̉ ́ ́ ̀ ́ ̉ phương hương giai quyêt khac nhau vơi cac điêu kiên khac nhau. Có rât nhiêu lênh gây ̉ ́ ́ ́ ̀ ̣ ́ ́ ̀ ̣ ra viêc thay đôi đia chỉ không theo qui luât tuân tư. Sư thay đôi tuân tư nay không gây ̣ ̉ ̣ ̣ ̀ ̉ ̀ ̀ nên môt sư rôi loan nao, BUS đia chỉ cua CPU dễ dang đưa ra ngay môt đia chỉ bât ky, ̣ ́ ̣ ̀ ̣ ̉ ̀ ̣ ̣ ́ ̀ dù cach xa bươc nhay tuân tư binh thương như thế nao đi nưa. Và cac bộ nhơ ban dân ́ ̉ ̀ ̀ ̀ ́ ́ ̃ vơi nguyên tăc truy câp ngâu nhiên cung sẽ châp nhân cơ chế nay. ́ ̣ ̃ ̃ ́ ̣ ̀ Có ba cach để đôi đia chỉ chương trinh không theo qui luât tăng tuân tư la: ́ ̉ ̣ ̀ ̣ ̀ ̀ - Đôi đia chỉ băng lênh nhay và rẽ nhanh. ̉ ̣ ̀ ̣ ̉ ́ - Đôi đia băng chương trinh con. ̉ ̣ ̀ ̀ - Đôi đia chỉ băng ngăt. ̉ ̣ ̀ ́ Đôi đia chỉ băng lênh nhay và rẽ nhanh : Đôi đia chỉ băng lênh nhay đươc chia ra hai ̉ ̣ ̀ ̣ ̉ ́ ̉ ̣ ̀ ̣ ̉ loai: Nhay tuyêt đôi (Jump) và nhay tương đôi (Jump Relative) ̣ ̉ ̣ ́ ̉ ́ Khi CPU nhân đươc mã cua lênh nhay tuyêt đôi thì hai byte tiêp theo sẽ đươc gưi đên ̣ ̉ ̣ ̉ ̣ ́ ́ ́ nap vao bộ đêm chương trinh PC. Tưc là PC đươc thiêt lâp tưc thơi môt giá trị mơi, ̣ ̀ ́ ̀ ́ ̣ ̣ giá trị nay có thể là môt số bât kỳ trong khoang 0000H .....FFFFH. bât châp giá trị cu. Và ̀ ̣ ́ ̉ ́ ́ ̃ byte lênh tiêp theo đươc lây vao sẽ năm ơ đia chỉ mơi nay. ̣ ́ ́ ̀ ̀ ̣ ̀ 18
  5. Khi CPU nhân đươc lênh nhay tương đôi, thanh ghi PC sẽ đươc công thêm hoăc trư ̣ ̣ ̉ ́ ̣ ̣ đi môt lương nao đo. Lương thêm vao hay bơt đi thương là môt số nhị phân 7 bit chỉ ̣ ̀ ́ ̀ ̣ thị trong mã lênh, phep trư sẽ đươc thưc hiên nêu bit cao nhât cua byte nay băng 1, và ̣ ́ ̣ ́ ́ ̉ ̀ ̀ công thêm nêu bit nay băng 0. Tưc là điêu khiên chương trinh sẽ chuyên đên đia chỉ ̣ ́ ̀ ̀ ̀ ̉ ̀ ̉ ́ ̣ mơi năm trong khoang tư -128.....127 byte so vơi vị trí hiên tai cua lênh nhay. ̀ ̉ ̣ ̣ ̉ ̣ ̉ Đôi đia chỉ băng rẽ nhanh đươc thưc hiên băng cac lênh nhay có điêu kiên. Tưc là ̉ ̣ ̀ ́ ̣ ̀ ́ ̣ ̉ ̀ ̣ CPU thưc hiên cac lênh nhay tuyêt đôi hoăc tương đôi giông như trên nêu thoa man ̣ ́ ̣ ̉ ̣ ́ ̣ ́ ́ ́ ̉ ̃ điêu kiên, nêu điêu kiên không thoa PC sẽ tiêp tuc đươc tăng lên 1 theo qui luât tuân tư. ̀ ̣ ́ ̀ ̣ ̉ ́ ̣ ̣ ̀ Điêu kiên ơ đây là cac cơ trang thai băng 1 hoăc băng 0 (Sẽ xet tơi trong phân thanh ghi ̀ ̣ ́ ̣ ́ ̀ ̣ ̀ ́ ̀ cơ ). Ví dụ sau môt lênh so sanh hai sô, có thể thưc hiên lênh JE (Jump Equal- Nhay nêu ̣ ̣ ́ ́ ̣ ̣ ̉ ́ băng). Luc nay PC có giá trị mơi theo lênh nhay nêu hai số so sanh băng nhau, ngươc ̀ ́ ̀ ̣ ̉ ́ ́ ̀ lai PC sẽ tăng lên 1. ̣ Đôi đia chỉ băng chương trinh con: Cach đôi đia chỉ nay đươc thưc hiên băng cac lênh ̉ ̣ ̀ ̀ ́ ̉ ̣ ̀ ̣ ̀ ́ ̣ goi (Call) và quay về (Return). Khi có môt đoan lênh nao đó cân sư dung trong nhiêu ̣ ̣ ̣ ̣ ̀ ̀ ̣ ̀ lân trong môt chương trinh, Để tranh viêt lăp lai đoan lênh đó nhiêu lân, có thể viêt nó ̀ ̣ ̀ ́ ́ ̣ ̣ ̣ ̣ ̀ ̀ ́ dươi dang môt chương trinh con. Khi cân thưc hiên đoan lênh nay thì goi nó băng lênh ̣ ̣ ̀ ̀ ̣ ̣ ̣ ̀ ̣ ̀ ̣ goi (CALL), tương tư như môt lênh nhay tơi đâu chương trinh con, thưc hiên xong ̣ ̣ ̣ ̉ ̀ ̀ ̣ điêu khiên sẽ đươc chuyên trơ về chương trinh chinh băng lênh quay vê. ̀ ̉ ̉ ̀ ́ ̀ ̣ ̀ Khi găp lênh goi giá trị cua PC sẽ đươc lưu trư trong bộ nhơ tai môt nơi đăc biêt goi là ̣ ̣ ̣ ̉ ̣ ̣ ̣ ̣ ̣ ngăn xêp, rôi đươc nap giá trị mơi đươc chỉ thị trong mã lênh goi, chương trinh sẽ ́ ̀ ̣ ̣ ̣ ̀ đươc chuyên tơi đia chỉ mơi bât kỳ trong khoang tư 0000.....FFFFH giông như lênh ̉ ̣ ́ ̉ ́ ̣ nhay. Khi có lênh quay vê, giá trị PC sẽ đươc phuc hôi tư đinh ngăn xêp, chương trinh ̉ ̣ ̀ ̣ ̀ ̉ ́ ̀ sẽ quay về nơi nó đã chuyên đi (quay về lênh năm kế lênh goi). Cac lênh goi chương ̉ ̣ ̀ ̣ ̣ ́ ̣ ̣ trinh con cung có hai dang không điêu kiên và có điêu kiên giông như cac lênh nhay. ̀ ̃ ̣ ̀ ̣ ̀ ̣ ́ ́ ̣ ̉ Đôi đia chỉ băng ngăt: Đôi đia chỉ băng ngăt gân giông như viêc đôi đia chỉ băng cac ̉ ̣ ̀ ́ ̉ ̣ ̀ ́ ̀ ́ ̣ ̉ ̣ ̀ ́ lênh goi và quay vê. Thanh ghi PC cung đươc lưu trư và nap giá trị mơi khi có phuc vụ ̣ ̣ ̀ ̃ ̣ ̣ ngăt, và đươc phuc hôi khi có lênh quay vê. Khac biêt ơ chỗ phuc vụ ngăt đươc goi ́ ̣ ̀ ̣ ̀ ́ ̣ ̣ ́ ̣ băng xung phân cưng, mà không phai băng lênh goi như trong chương trinh con. Đia ̀ ̀ ̉ ̀ ̣ ̣ ̀ ̣ chỉ chương trinh phuc vụ ngăt có thể là môt đia chỉ cố đinh đươc qui đinh trươc, hoăc ̀ ̣ ́ ̣ ̣ ̣ ̣ ̣ đươc lây tư vung nhơ goi là bang vector ngăt. ́ ̀ ̣ ̉ ́ Có hai loai ngăt: ngăt không che, và ngăt có thể che đươc băng phân mêm: Vơi ngăt ̣ ́ ́ ́ ̀ ̀ ̀ ́ không che, chương trinh ngăt luôn đươc thưc hiên khi có tin hiêu yêu câu. Con vơi ̀ ́ ̣ ́ ̣ ̀ ̀ ngăt che, khi có tin hiêu yêu câu CPU sẽ kiêm tra cơ ngăt, nêu cơ ngăt =1 chương ́ ́ ̣ ̀ ̉ ́ ́ ́ trinh ngăt thưc hiên, cơ ngăt băng 0 chương trinh ngăt sẽ bị bỏ qua. Cơ ngăt có thể thiêt ̀ ́ ̣ ́ ̀ ̀ ́ ́ ́ lâp hay xoa băng lênh phân mêm. Cac cơ chế ngăt sẽ đươc mô tả kỹ trong phân hệ ̣ ́ ̀ ̣ ̀ ̀ ́ ́ ̀ thông ngăt cua vi xư ly. ́ ́ ̉ ́ • Thanh ghi lênh IR (Instruction Pointer). ̣ Thanh ghi lênh năm ơ ngõ vao cua bộ giai mã lênh. Trong bộ nhơ, cac lênh cua 1 ̣ ̀ ̀ ̉ ̉ ̣ ́ ̣ ̉ chương trinh bao gôm hai phân: mã hoat đông (Op Code) và phia sau là cac toan hang ̀ ̀ ̀ ̣ ̣ ́ ́ ́ ̣ (Operand). Op Code sẽ phân biêt cac lênh: Số hoc, logic, di chuyên dư liêu, bit, nhay, ̣ ́ ̣ ̣ ̉ ̣ ̉ chương trinh con ….Con cac toan hang sẽ chỉ ra dư liêu cân xư lý trong lênh năm ơ ̀ ̀ ́ ́ ̣ ̣ ̀ ̣ ̀ đâu hoăc băng bao nhiêu. Thanh ghi lênh sẽ là nơi cac mã lênh đi qua (tư ngoai bộ nhơ ̣ ̀ ̣ ́ ̣ ̀ vao bộ giai mã lênh). Con cac toan hang sẽ đi tơi cac khôi khac nhau cua vi xư lý tuy ̀ ̉ ̣ ̀ ́ ́ ̣ ́ ́ ́ ̉ ̀ theo mã lênh. Ví dụ môt lênh công sẽ có 1 byte Op Code để phân biêt vơi cac lênh khac, ̣ ̣ ̣ ̣ ̣ ́ ̣ ́ và cac byte tiêp theo sẽ chỉ ra toan hang cua phep công. Nó có thể là 1 giá trị sẽ đươc ́ ́ ́ ̣ ̉ ́ ̣ đưa thăng tơi ALU, hoăc có thể là 1 đia chỉ để lây dư liêu tư bộ nhơ cung câp cho ̉ ̣ ̣ ́ ̣ ́ 19
  6. ALU, khi đó đia chỉ nay sẽ đươc đưa tơi BIU để truy câp dư liêu, cung có thể phân ̣ ̀ ̣ ̣ ̃ ̀ toan hang chỉ thị dư liêu cho lênh năm trong môt thanh ghi dư liêu ngay bên trong CPU. ́ ̣ ̣ ̣ ̀ ̣ ̣ Trong mã lênh cua vi xư lý 8 bit thương phân Op code có kich thươc giông nhau ̣ ̉ ̀ ́ ́ (1byte). Vơi 8 bit sẽ phân biêt 256 tổ hơp, có nghia là CPU 8 bit có khả năng xư lý dễ ̣ ̃ dang 256 lênh. Trong thưc tế số lênh cua CPU 8 bit it hơn con số nay mà vân đủ cho tât ̀ ̣ ̣ ̉ ́ ̀ ̃ ́ cả cac công viêc. Có rât nhiêu sư trung lăp trong cac mã lênh, chung bao gôm nhiêu ́ ̣ ́ ̀ ̀ ̣ ́ ̣ ́ ̀ ̀ công viêc giông nhau nhưng sư dung cac toan hang khac. Trong thưc tế thương chỉ có ̣ ́ ̣ ́ ́ ̣ ́ khoang hơn 20 nhiêm vụ khac nhau cho 1 CPU, con lai là cac kiêu khac nhau cua cung ̉ ̣ ́ ̀ ̣ ́ ̉ ́ ̉ ̀ môt nhiêm vu.̣ ̣ ̣ Trong môt số CPU 8 bit thanh ghi lênh đươc thay thế băng hang đơi lênh, Khi đó tât ̣ ̣ ̀ ̀ ̣ ́ cả cac byte mã lênh cua chương trinh đêu qua hang đơi lênh (kể cả mã hoat đông và ́ ̣ ̉ ̀ ̀ ̀ ̣ ̣ ̣ cac toan hang). Khi bộ giai mã lênh nhân đươc mã hoat đông, cac toan hang sẽ đươc ́ ́ ̣ ̉ ̣ ̣ ̣ ̣ ́ ́ ̣ chuyên tư hang đơi lênh tơi cac nơi khac nhau trong CPU. Vơi môt hang đơi lênh, quá ̉ ̀ ̣ ́ ́ ̣ ̀ ̣ trinh giai mã lênh và quá trinh lây lênh có thể thưc hiên môt cach đông thơi, tôc độ hoat ̀ ̉ ̣ ̀ ́ ̣ ̣ ̣ ́ ̀ ́ ̣ đông cua CPU sẽ đươc tăng lên. ̣ ̉ Start ̣ Nap MAR1 = 1000 ̣ Nap MAR2 = 2000 Nap dữ liêu tai ô nhớ có đia chỉ MAR1 = 1000 vao Acc ̣ ̣ ̣ ̣ ̀ Nap dữ liêu từ Acc vao ô nhớ có đia chỉ MAR2 ̣ ̣ ̀ ̣ Tăng MAR1 Yes Đủ 10 Tăng MAR2 ô nhớ chưa ? No Start Hinh 2.3: Giai thuât di chuyên 10 ô nhớ từ đia chỉ 1000 qua đia chỉ 2000 ̀ ̉ ̣ ̉ ̣ ̣ • Thanh ghi đia chỉ bộ nhơ: (MAR: Memory Address Register). ̣ Thanh ghi MAR đươc để sư dung để giư đia chỉ cua ô nhơ cân truyên dư liêu vơi ̣ ̣ ̉ ̀ ̀ ̣ CPU trong môt chương trinh. Dư liêu nay có thể là dư liêu vao ra thông thương trong ̣ ̀ ̣ ̀ ̣ ̀ cac lênh đoc ghi, hoăc là cac toan hang trong cac lênh số hoc và logic. Thay vì phai chỉ ́ ̣ ̣ ̣ ́ ́ ̣ ́ ̣ ̣ ̉ thị đia chỉ cụ thể cua ô nhơ cân truy câp trong mã lênh, chương trinh có thể sư dung ̣ ̉ ̀ ̣ ̣ ̀ ̣ MAR để lưu trư đia chỉ nay. Trong chu kỳ truy xuât, giá trị trong thanh ghi nay sẽ đưa ̣ ̀ ́ ̀ ra BUS đia chỉ để xac đinh ô nhơ cân truy câp. Như vây sẽ giam đươc độ dai cua mã ̣ ́ ̣ ̀ ̣ ̣ ̉ ̀ ̉ lênh, tưc là giam đươc độ lơn cua chương trinh, lam tăng tôc độ thưc hiên chương ̣ ̉ ̉ ̀ ̀ ́ ̣ trinh và giam dung lương lưu trư cân thiêt cho hệ thông. ̀ ̉ ̀ ́ ́ 20
  7. Trong môt số CPU cac thanh ghi đia chỉ bộ nhơ năm ngay ơ nhom cac thanh ghi đa ̣ ́ ̣ ̀ ́ ́ năng. Môt số CPU khac cac thanh ghi nay là chuyên dung. Cac lênh sư dung thanh ghi ̣ ́ ́ ̀ ̣ ́ ̣ ̣ đia chỉ bộ nhơ bao gôm it byte lênh và đươc thưc hiên nhanh chong hơn cac lênh chỉ ra ̣ ̀ ́ ̣ ̣ ́ ́ ̣ trưc tiêp đia chỉ cua ô nhơ. Đăc biêt trong cac lênh thao tac chuôi dư liêu cac thanh ghi ́ ̣ ̉ ̣ ̣ ́ ̣ ́ ̃ ̣ ́ nay đong môt vai trò rât quan trong. Nhơ nhưng thanh ghi nay mà CPU có thể di ̀ ́ ̣ ́ ̣ ̀ chuyên, so sanh môt khôi dư liêu băng môt lênh đơn gian vơi độ dai chỉ 1 hoăc 2 byte. ̉ ́ ̣ ́ ̣ ̀ ̣ ̣ ̉ ̀ ̣ Ví dụ lưu đồ hinh 2.3 sư dung môt chương trinh chuyên 10 byte tư vung nhơ 1000H ̀ ̣ ̣ ̀ ̉ ̀ qua vung nhơ 2000H. Trong đó vong lăp kể tư bươc thư ba trơ đi là cua môt lênh di ̀ ̀ ̣ ̉ ̣ ̣ chuyên chuôi. ̉ ̃ • Thanh ghi con trỏ ngăn xêp (SP-Stack Pointer). ́ Tât cả cac CPU đêu có môt vung nhơ RAM lam nhiêm vụ ngăn xêp. Vung nhơ nay ́ ́ ̀ ̣ ̀ ̀ ̣ ́ ̀ ̀ hoat đông theo nguyên tăc LIFO (Last Input Fist Output- vao trươc ra sau), dư liêu nao ̣ ̣ ́ ̀ ̣ ̀ đưa vao trươc tiên sẽ đươc lây ra sau cung. Để thưc hiên chưc năng nay CPU sư dung ̀ ́ ̀ ̣ ̀ ̣ thanh ghi con trỏ ngăn xêp. Vao đâu chương trinh thanh ghi nay sẽ đươc gan môt giá ́ ̀ ̀ ̀ ̀ ́ ̣ trị trỏ tơi môt đia chỉ cua vung nhơ RAM. Ngăn xêp sẽ đươc truy câp băng nhưng lênh ̣ ̣ ̉ ̀ ́ ̣ ̀ ̣ đăc biêt là PUSH (nap dư liêu vao) và POP (lây dư liêu ra). Khi có dư liêu nao đươc ̣ ̣ ̣ ̣ ̀ ́ ̣ ̣ ̀ nap vao ngăn xêp SP tư đông giam đi, ngươc lai khi lây dư liêu ra khoi ngăn xêp SP sẽ ̣ ̀ ́ ̣ ̉ ̣ ́ ̣ ̉ ́ đươc tư đông tăng lên. ̣ Ví dụ vao đâu chương trinh SP đươc gan 0100H, giá trị cua SP sẽ trỏ đên ô nhơ có đia ̀ ̀ ̀ ́ ̉ ́ ̣ chỉ 0100H (hinh 2.4a). Khi CPU lênh nap thanh chưa Acc vao ngăn xêp(PUSH Acc), ̀ ̣ ̣ ̀ ́ giá trị cua Acc sẽ đươc cât vao ô nhơ có đia chỉ SP-1 =00FFH (hinh 2.4b), và giá trị cua ̉ ́ ̀ ̣ ̀ ̉ SP bây giơ sẽ là 00FFH. Nêu lây giá trị ra môt thanh ghi đa năng, SP sẽ tăng lên 1 trơ ́ ́ ̣ lai như cũ (hinh 2.4c). ̣ ̀ (a) (b) (c) Memory Memory Memory Push Acc Pop Reg. Acc Reg. Acc 0FFH SP 100H SP 100H Hinh 2.4: Thao tac với ngăn xêp ̀ ́ ́ Khi găp cac lênh goi chương trinh con hoăc yêu câu ngăt, giá trị cua bộ đêm chương ̣ ́ ̣ ̣ ̀ ̣ ̀ ́ ̉ ́ trinh sẽ đươc nap vao đinh cua ngăn xêp, SP sẽ tư đông giam đi 2. Khi có lênh quay về ̀ ̣ ̀ ̉ ̉ ́ ̣ ̉ ̣ (Return), thanh ghi PC sẽ đươc phuc hôi tư đinh ngăn xêp. Vì vây chương trinh sẽ quay ̣ ̀ ̉ ́ ̣ ̀ về chỗ đã goi no, nêu trong chương trinh con không con dư liêu nao nap vao mà chưa ̣ ́ ́ ̀ ̀ ̣ ̀ ̣ ̀ lây đươc ra. Vây trong chương trinh con nêu nap vao ngăn xêp cai gi, thì trươc khi có ́ ̣ ̀ ́ ̣ ̀ ́ ́ ̀ lênh quay về phai lây hêt ra. Nêu không thanh PC phuc hôi tư đinh ngăn xêp sẽ chuyên ̣ ̉ ́ ́ ́ ̣ ̀ ̉ ́ ̉ điêu khiên cua chương trinh tơi đia chỉ không đươc quan ly, mà không phai về nơi đã ̀ ̉ ̉ ̀ ̣ ̉ ́ ̉ goi no. ̣ ́ • Thanh ghi chỉ sô: (Index). ́ 21
  8. Thanh ghi chỉ số cung là môt thanh ghi đia chi, đươc sư dung để đia chỉ hoa cac ô nhơ ̃ ̣ ̣ ̉ ̣ ̣ ́ ́ trong chương trinh. Vơi CPU 8 bit thanh ghi chỉ số thương la16 bit. Khi thanh ghi chỉ ̀ ̀ số đã đươc nap môt giá trị nao đo, thì vung nhơ 256 byte kể tư đia chỉ đó có thể truy ̣ ̣ ̀ ́ ̀ ̣ câp tơi băng kiêu chỉ sô. Tưc là cac lênh yêu câu thao tac vơi cac dư liêu trong vung ̣ ̀ ̉ ́ ́ ̣ ̀ ́ ́ ̣ ̀ nhơ nay, chỉ cân chỉ thị trong lênh khoang cach tư đia chỉ chưa trong thanh ghi chỉ số ̀ ̀ ̣ ̉ ́ ̣ tơi đia chỉ cân truy câp, mà không cân phai chỉ thị cụ thể đia chỉ cua ô nhơ đo. ̣ ̀ ̣ ̀ ̉ ̣ ̉ ́ Ví dụ khi thanh ghi chỉ số giư giá trị 1000H, thì lênh xư lý dư liêu tai ô nhơ 1010H chỉ ̣ ̣ ̣ cân cung câp chỉ số là 10H, mà không phai đưa ra giá trị 1010H như cach đia chỉ hoa ̀ ́ ̉ ́ ̣ ́ thông thương. Có thể biêu diên hoat đông đia chỉ hoa cua thanh ghi chỉ số như hinh 2.5. ̉ ̃ ̣ ̣ ̣ ́ ̉ ̀ Internal Bus Index Register Bộ công ̣ Bus đia chỉ ̣ Hinh 2.5: Cung câp đia chỉ băng thanh ghi chỉ sô. ̀ ́ ̣ ̀ ́ Giá trị cua thanh ghi chỉ số sẽ đươc công vơi khoang cach tư ô nhơ cân thao tac, để ̉ ̣ ̉ ́ ̀ ́ cho ra đia chỉ cân thiêt trong nhưng lênh có chế độ đinh vị đia chỉ chỉ sô. ̣ ̀ ́ ̣ ̣ ̣ ́ • Cac thanh ghi đa năng (General Register). ́ Cac thanh ghi nay thông thương chiêm môt số lương lơn trong cac CPU. Cac CPU 8 ́ ̀ ́ ̣ ́ ́ bit thông thương cung có cac thanh ghi đa năng 8 bit, cac thanh ghi nay cung có thể ̃ ́ ́ ̀ ̃ ghep chung tưng căp để tao thanh cac thanh ghi 16 bit . Tuy không có cac chưc năng ́ ̣ ̣ ̀ ́ ́ chuyên dung như cac thanh ghi khac, nhưng chung có thể thưc hiên hâu hêt cac chưc ̣ ́ ́ ́ ̣ ̀ ́ ́ năng mà cac thanh ghi khac đam nhiêm . Thương thì cac thanh ghi đa năng đươc sư ́ ́ ̉ ̣ ́ dung lưu trư dư liêu vao ra CPU, hoăc lam cac biên tam thơi trong môt chương trinh. ̣ ̣ ̀ ̣ ̀ ́ ́ ̣ ̣ ̀ Ngoai ra khi sư dung chung tưng căp chung có thể là nơi lưu trư dư liêu, và lam cac ̀ ̣ ̣ ́ ̣ ̀ ́ biên 16 bit, hoăc giư đia chỉ cua ô nhơ mà chương trinh cân truy câp. Trong cac lênh về ́ ̣ ̣ ̉ ̀ ̀ ̣ ́ ̣ chuôi thì chung có thể đươc sư dung lam cac bộ đêm số lân lăp, đia chỉ trong cac lênh ̃ ́ ̣ ̀ ́ ́ ̀ ̣ ̣ ́ ̣ về chuôi dư liêu…. ̃ ̣ • Thanh ghi chưa: (Accumulator Register). Thanh ghi chưa thương đươc cac CPU sư dung lam nơi chưa môt toan hang trong cac ́ ̣ ̀ ̣ ́ ̣ ́ lênh số hoc và logic, tưc là nó thương an ngư môt đâu vao cua đơn vị số hoc và logic ̣ ̣ ́ ̣ ̀ ̀ ̉ ̣ ALU. Đông thơi thanh chưa con đươc sư dung để lưu kêt quả cuôi cung cua phep tinh ̀ ̀ ̣ ́ ́ ̀ ̉ ́ ́ mà ALU vưa thưc hiên. Vơi cac chưc năng nay chiêu dai cac lênh tinh toan sẽ đươc ̣ ́ ̀ ̀ ̀ ́ ̣ ́ ́ giam ngăn, do không phai chỉ thị cả hai toan hang và nơi lưu trư kêt qua. Ngoai ra ̉ ́ ̉ ́ ̣ ́ ̉ ̀ 22
  9. thanh chưa con đươc sư dung trong cac phep quay dich, và hâu hêt cac lênh về di ̀ ̣ ́ ́ ̣ ̀ ́ ́ ̣ chuyên và xư lý dư liêu như môt thanh ghi đa năng thông thương. Cac CPU trươc đây ̉ ̣ ̣ ́ chỉ có môt thanh ghi chưa, nên cac lênh logic và số hoc băt buôc phai di chuyên dư liêu ̣ ́ ̣ ̣ ́ ̣ ̉ ̉ ̣ tơi thanh ghi chưa. Cang ngay CPU cang có nhiêu thanh chưa hơn, nên chương trinh ̀ ̀ ̀ ̀ ̀ đươc thưc hiên nhanh chong hơn, do giam bơt đươc cac lênh di chuyên dư liêu đên ̣ ́ ̉ ́ ̣ ̉ ̣ ́ thanh chưa. • Thanh ghi cơ (Flag Register). Thanh ghi cơ con đươc goi là thanh ghi mã trang thai CCR (Condition Code Register) ̀ ̣ ̣ ́ bao gôm cac bit đôc lâp. Môi bit chỉ có hai trang thai 0 hoăc 1 đươc goi là cac cơ. Cac ̀ ́ ̣ ̣ ̃ ̣ ́ ̣ ̣ ́ ́ cơ rât it khi tac đông lân nhau, chung chỉ tac đông môt cach đôc lâp tuy theo trang thai ́ ́ ́ ̣ ̃ ́ ́ ̣ ̣ ́ ̣ ̣ ̀ ̣ ́ cua cac phep tinh mà ALU thưc hiên. Trang thai cac cơ là cơ sơ để CPU thưc hiên cac ̉ ́ ́ ́ ̣ ̣ ́ ́ ̣ ́ quyêt đinh, nêu thoa điêu kiên chương trinh thưc hiên theo hương nay, con ngươc lai ́ ̣ ́ ̉ ̀ ̣ ̀ ̣ ̀ ̀ ̣ sẽ theo môt hương khac, tao ra sư rẽ nhanh cho cac chương trinh phù hơp vơi bai toan ̣ ́ ̣ ́ ́ ̀ ̀ ́ thưc tê. ́ Trong CPU 8 bit thương thanh ghi cơ 8 bit, số lương cac bit đươc sư dung và cac kiêu ́ ̣ ́ ̉ cơ hiêu khac nhau tuy thuôc vao tưng loai CPU. Cac cơ thông thương cua môt CPU ̣ ́ ̀ ̣ ̀ ̣ ́ ̉ ̣ gôm: ̀ Cơ nhơ (Carry Flag). Cơ nhơ đươc sư dung lam bit dư trư khi kêt quả cac phep tinh mà ALU thưc hiên ̣ ̀ ́ ́ ́ ́ ̣ vươt ra ngoai giơi han lưu trư cho phep cua thanh chưa. Ví dụ khi sư dung cac thanh ̀ ̣ ́ ̉ ̣ ́ ghi 8 bit để công hai số 8 bit, kêt quả có thể là 9 bit và cơ C sẽ giư bit thư 9. Tương tư ̣ ́ khi công hai số 16 bit cơ C sẽ giư bit thư 17 cua kêt qua. ̣ ̉ ́ ̉ Cơ nhơ cung đươc thiêt lâp mưc 1 khi ALU thưc hiên phep trư, giam hoăc so sanh có ̃ ́ ̣ ̣ ́ ̉ ̣ ́ kêt quả âm. Tưc là cơ CF =1 khi số bị trư nhỏ hơn số trư. ́ Ngoai ra cơ nhơ con đươc sư dung như bit thư 9 trong cac lênh quay dich, ví dụ khi ̀ ̀ ̣ ́ ̣ ̣ dich trai bit ơ MSB sẽ bị rơt ra ngoai, cơ C sẽ giư lây bit đo. ̣ ́ ̀ ́ ́ Cơ dâu S ( Sign Flag). ́ CPU có hai cach biêu diên môt sô: Cach thư nhât nó dung tât cả cac bit cua môt thanh ́ ̉ ̃ ̣ ́ ́ ́ ̀ ́ ́ ̉ ̣ ghi để biêu diên môt số dương. Ví dụ môt thanh ghi 8 bit có thể biêu diên cac số thâp ̉ ̃ ̣ ̣ ̉ ̃ ́ ̣ phân dương tư 1 tơi 255. Cach thư hai CPU sư dung bit trong số cao nhât để lam bit ́ ̣ ̣ ́ ̀ dâu. Ví dụ như thanh ghi 8 bit thì bit D7 sẽ là bit dâu. Khi D7 ơ mưc 0 thì cac bit ́ ́ ́ D0...D6 giư môt số nhị phân dương năm trong khoang 0 tơi 127. Khi D7=1 thì thanh ̣ ̀ ̉ ghi sẽ giư số nhị phân âm trong khoang –128 tơi -1 ̉ Tổ hơp nhị phân tư 0000 0000......0111 1111 biêu diên cac số tư 0...127 tổ hơp tiêp ̉ ̃ ́ ́ theo 1000 0000 trong số có dâu đươc xem như là -128 và tiêp theo 1000 0001 = -127. ́ ́ Khi tiêp tuc đêm lên tơi tổ hơp 1111 1111 = -1. ́ ̣ ́ Cơ dâu S sẽ bao khi dâu thay đôi, cơ dâu =0 khi kêt quả phep tinh trong bộ chưa là số ́ ́ ́ ̉ ́ ́ ́ ́ dương (bit D7=0). Nêu bit D7=1 kêt quả là môt số âm 7 bit thì SF=1. Dưa vao cơ nay ́ ́ ̣ ̀ ̀ mà cac chương trinh nay sẽ có cach tinh thich hơp vơi cac số có dâu. ́ ̀ ̀ ́ ́ ́ ́ ́ Cơ tran V (overflow) . ̀ Cơ tran VF sẽ đươc thiêt lâp mưc 1 khi có sư tran bit 1 tư D6 sang D7, tưc là khi dâu ̀ ́ ̣ ̀ ́ cua số 7 bit thay đôi tư (+) sang (-). Cơ VF luôn đươc thiêt lâp khi có tran, nó đươc ̉ ̉ ́ ̣ ̀ dung cho cac số đươc biêu diên theo cach 7 bit hay cach 8 bit. Vì thế cân phai chú ý để ̀ ́ ̉ ̃ ́ ́ ̀ ̉ nó không anh hương gì đên chương trinh. Cơ tran sẽ bị xoa khi D7 trơ về mưc 0 ̉ ́ ̀ ̀ ́ Cơ ZERO ZF. 23
  10. Khi ALU thưc hiên cac phep tinh có kêt quả trong thanh ghi chưa băng 0, luc đó cơ Z ̣ ́ ́ ́ ́ ̀ ́ sẽ đươc thiêt lâp lên mưc 1. Con ngươc lai cơ Z=0. Thông thương cơ Z để thông bao ́ ̣ ̀ ̣ ́ trang thai so sanh băng, kêt quả cua phep trư = 0 , cac phep logic = 0. Khi thưc hiên cac ̣ ́ ́ ̀ ́ ̉ ́ ́ ́ ̣ ́ phep công, măc dù kêt quả có dư ra bit thư 9 nhưng nêu thanh chưa có giá trị 0 thì cơ ́ ̣ ̣ ́ ́ ZF vân = 1. Ví dụ công FF+01 kêt quả là 100 thì số 1 ơ cơ CF con thanh chưa có giá ̃ ̣ ́ ̀ trị 00 do đó cơ ZF =1. Cơ Z đăc biêt tiên lơi cho cac vong lăp sư dung bộ đêm xuông. Vong lăp có thể giam ̣ ̣ ̣ ́ ̀ ̣ ̣ ́ ́ ̀ ̣ ̉ môt thanh ghi nao đo, cho đên khi nó trơ về 0 thì ngưng. Vơi cac công dung như trên ̣ ̀ ́ ́ ́ ̣ ZF cung vơi CF đươc sư dung rât nhiêu trong cac chương trinh. ̀ ̣ ́ ̀ ́ ̀ Cơ nưa nhơ HF (Half Carry Flag ). Cơ nưa nhơ trong môt số CPU con đươc goi là cơ phụ AF (Auxiliary Flag) không ̣ ̀ ̣ giông như CF, đong vai trò bit thư 9 cua thanh chưa. Nó giông cơ tran nhiêu hơn, cơ ́ ́ ̉ ́ ̀ ̀ nưa nhơ sẽ đươc thiêt lâp mưc 1 khi có sư tran bit 1 tư D3 qua D4. ́ ̣ ̀ Tam bit cua bộ chưa bao gôm 2 nibble riêng biêt, cac bit 7-4 goi là nibble trong số lơn ́ ̉ ̀ ̣ ́ ̣ ̣ MS(Most Significant) và 3-0 là nibble trong số nhỏ LS(Least Significant). Môi nibble là ̃ mã số thâp phân hoăc HEXA đơn. Khi thưc hiên cac phep tinh vơi số BCD (tưc số thâp ̣ ̣ ̣ ́ ́ ́ ̣ phân) cân phai ghi nhân số nhơ cua 4 bit thâp trong đơn vị 8 bit. Ta goi số nhơ nay là ̀ ̉ ̣ ̉ ́ ̣ ̀ số nưa nhơ. Môt số CPU cơ nưa nhơ đươc goi là cơ nhơ phụ AF (Auxiliary Flag ) nó ̣ ̣ sư dung như cơ tran như trong cac phep tinh 16 bit. ̣ ̀ ́ ́ ́ Cơ chăn lẻ PF (Parity Flag). ̃ Cơ chăn lẻ đươc sư dung thông bao số cac bit 1 trong kêt quả cua phep tinh logic là ̃ ̣ ́ ́ ́ ̉ ́ ́ chăn hoăc lẻ tuy theo tưng loai CPU. Cơ chăn lẻ thương đươc sư dung trong cac ̃ ̣ ̀ ̣ ̃ ̣ ́ chương trinh truyên cac dư liêu nôi tiêp, trang thai cua cơ có thể đươc phat ra để bên ̀ ̀ ́ ̣ ́ ́ ̣ ́ ̉ ́ thu có thể kiêm tra xem dư liêu nhân đươc đung hay sai. Chú ý là cơ chăn lẻ không tac ̉ ̣ ̣ ́ ̃ ́ đông khi ALU thưc hiên cac phep tinh số hoc. ̣ ̣ ́ ́ ́ ̣ Cơ trư Subtract. Cơ trư thương đươc viêt tăt là N (Negative) để phân biêt vơi cơ dâu S (Sign). Cơ ́ ́ ̣ ́ trư đươc thiêt lâp khi CPU thưc hiên cac phep tinh trư như (trư, so sanh , giam). Cơ ́ ̣ ̣ ́ ́ ́ ́ ̉ nay thương it đươc sư dung trong cac chương trinh. ̀ ́ ̣ ́ ̀ Ngoai cac cơ sư dung cho viêc thông bao trang thai cac phep tinh như đã mô tả ơ trên, ̀ ́ ̣ ̣ ́ ̣ ́ ́ ́ ́ thanh ghi cơ con có cac cơ điêu khiên sư dung cho cac muc đich khac như: ̀ ́ ̀ ̉ ̣ ́ ̣ ́ ́ Cơ đinh hương DF (Direction Flag). ̣ Cơ nay đươc sư dung cho cac lênh xư lý chuôi dư liêu. Ví dụ như di chuyên chuôi tư ̀ ̣ ́ ̣ ̃ ̣ ̉ ̃ vung nhơ nay sang vung nhơ khac, so sanh chuôi…. Khi thưc hiên CPU lân lươt xư lý ̀ ̀ ̀ ́ ́ ̃ ̣ ̀ tưng byte 1 trong chuôi. Để có đươc cac thao tac nay CPU sư dung cac thanh ghi đia ̃ ́ ́ ̀ ̣ ́ ̣ chỉ và sau môi lân xư lý 1 byte nó tư đông tăng hoăc giam thanh ghi đia chi. Viêc tăng ̃ ̀ ̣ ̣ ̉ ̣ ̉ ̣ hay giam thanh ghi đia chi, tưc là chuôi đươc thao tac tư dươi lên trên hay tư trên ̉ ̣ ̉ ̃ ́ xuông dươi, sẽ tuy thuôc vao cơ đinh hương. Thông thương DF=1 cac lênh xư lý ́ ̀ ̣ ̀ ̣ ́ ̣ chuôi sẽ thưc hiên tư đia chỉ cao đên đia chỉ thâp. ̃ ̣ ̣ ́ ̣ ́ Trong môt số CPU cac lênh xư lý chuôi tăng và giam đia chỉ khac nhau, nghia là cung ̣ ́ ̣ ̃ ̉ ̣ ́ ̃ ̀ là di chuyên chuôi nhưng có môt lênh thưc hiên theo chiêu tăng đia chi, và môt lênh ̉ ̃ ̣ ̣ ̣ ̀ ̣ ̉ ̣ ̣ thưc hiên theo chiêu giam đia chi. Cac CPU như thế sẽ không có đinh hương. ̣ ̀ ̉ ̣ ̉ ́ ̣ Cơ ngăt IF : (Interrupt Flag). ́ Cơ ngăt đươc thiêt lâp =1 băng lênh SI (Set Interrupt ) và xoa băng lênh CLI(Clear ́ ́ ̣ ̀ ̣ ́ ̀ ̣ Interrupt). Khi cơ ngăt=1 cho phep CPU ghi nhân tin hiêu yêu câu ngăt có che, và thưc ́ ́ ̣ ́ ̣ ̀ ́ hiên chương trinh ngăt. Khi cơ ngăt =0, măc dù có tin hiêu yêu câu, chương trinh ngăt ̣ ̀ ́ ́ ̣ ́ ̣ ̀ ̀ ́ 24
  11. sẽ không đươc thưc hiên. Vơi cac yêu câu ngăt không che NMI (Non-Mask able ̣ ́ ̀ ́ Interrupt) cơ ngăt không có ý nghia. ́ ̃ Cơ bây TF: (Trap Flag). ̃ Cơ bây đươc thiêt lâp =1 và xoa = 0 băng cac lênh lâp xoa cơ bây, khi cơ bây băng 1, ̃ ́ ̣ ́ ̀ ́ ̣ ̣ ́ ̃ ̃ ̀ CPU hoat đông ơ chế độ chay tưng bươc để gơ rôi sưa sai chương trinh. Cụ thể là khi ̣ ̣ ̣ ́ ̀ CPU thưc hiên xong môt lênh nó chuyên qua chương trinh con giam sat (Monitor). ̣ ̣ ̣ ̉ ̀ ́ ́ Chương trinh con giam sat đươc thưc hiên bơi ngươi sư dung để kiêm tra lai kêt quả ̀ ́ ́ ̣ ̣ ̉ ̣ ́ cua lênh vưa thưc hiên ơ cac ô nhơ, cac thanh ghi, cac cơ. Sau đó CPU lai quay về thưc ̉ ̣ ̣ ́ ́ ́ ̣ hiên lênh tiêp theo cua chương trinh chinh. Chương trinh con giam sat sẽ đươc đăt tai ̣ ̣ ́ ̉ ̀ ́ ̀ ́ ́ ̣ ̣ môt đia chỉ xac đinh tuy theo loai CPU. ̣ ̣ ́ ̣ ̀ ̣ 2.2.2. Đơn vị điêu khiên CU: (Control Unit). ̀ ̉ Đơn vị điêu khiên con đươc goi là bộ giai mã lênh, nó là nơi cung câp cac tin hiêu ̀ ̉ ̀ ̣ ̉ ̣ ́ ́ ́ ̣ điêu khiên, cho phep tât cả cac bộ phân khac trong CPU lam viêc. Đơn vị điêu khiên ̀ ̉ ́ ́ ́ ̣ ́ ̀ ̣ ̀ ̉ nhân cac mã lênh tư hang đơi lênh, mã lênh nay sẽ đươc hệ thông cac mach điên tư giai ̣ ́ ̣ ̀ ̣ ̣ ̀ ́ ́ ̣ ̣ ̉ ma, tao ra môt day cac tin hiêu cho phep. Tuy theo tưng lênh cụ thể mà cac khôi khac ̃ ̣ ̣ ̃ ́ ́ ̣ ́ ̀ ̣ ́ ́ ́ nhau trong CPU sẽ đươc cho phep hoat đông. Cac bộ vi xư lý khac nhau cơ ban ơ câu ́ ̣ ̣ ́ ́ ̉ ́ truc cua đơn vị điêu khiên. Môt lênh cua họ vi xư lý nay có thể là môt lênh hoan toan ́ ̉ ̀ ̉ ̣ ̣ ̉ ̀ ̣ ̣ ̀ ̀ khac trong môt họ vi xư lý khac. Do câu truc cac mach điên tư bên trong cua đơn vị ́ ̣ ́ ́ ́ ́ ̣ ̣ ̉ điêu khiên khac nhau, mà CPU cua cac hang khac nhau sẽ có cac tâp lênh khac nhau. Vì ̀ ̉ ́ ̉ ́ ̃ ́ ́ ̣ ̣ ́ thế môt chương trinh viêt cho hệ thông vi xư ly, sư dung CPU cua hang nao thì phai ̣ ̀ ́ ́ ́ ̣ ̉ ̃ ̀ ̉ tuân theo tâp lênh , và trinh biên dich cua hang đo, nêu không chương trinh sẽ không ̣ ̣ ̀ ̣ ̉ ̃ ́ ́ ̀ thể thưc hiên măc dù câu truc bộ nhơ và I/O tương đương nhau. ̣ ̣ ́ ́ Đơn vị điêu khiên cua cac CPU truyên thông có thể thưc hiên băng hai phương phap ̀ ̉ ̉ ́ ̀ ́ ̣ ̀ ́ chinh la: Thưc hiên băng cach nôi ghep cưng hệ thông cac công logic, hoăc sư dung bộ ́ ̀ ̣ ̀ ́ ́ ́ ́ ́ ̉ ̣ ̣ nhơ. Đôi vơi loai thư nhât tâp lênh sẽ không thể thay đôi. Đôi vơi loai sư dung bộ nhơ, ́ ̣ ́ ̣ ̣ ̉ ́ ̣ ̣ mã lênh lây tư ngoai bộ nhơ sẽ đong vai trò là đia chỉ cua bộ nhơ, con cac đương dư ̣ ́ ̀ ́ ̣ ̉ ̀ ́ liêu cua bộ nhơ nay sẽ đong vai trò là cac tin hiêu cho phep. Nêu cho phep lâp trinh lai ̣ ̉ ̀ ́ ́ ́ ̣ ́ ́ ́ ̣ ̀ ̣ bộ nhơ nay có thể tao ra cac lênh mơi cho vi xư ly, hoăc có thể thay đôi tâp lênh cho no. ̀ ̣ ́ ̣ ́ ̣ ̉ ̣ ̣ ́ Nhơ có đơn vị điêu khiên mà mã lênh sẽ đươc giam, vì nêu cung câp cac tin hiêu cho ̀ ̉ ̣ ̉ ́ ́ ́ ́ ̣ phep ngay trong mã lênh thì môi khôi chưc năng trong CPU sẽ phai đươc cho phep ́ ̣ ̃ ́ ̉ ́ hoăc không cho phep băng môt bit cua mã lênh. Nhưng khi có đơn vị điêu khiên, môi ̣ ́ ̀ ̣ ̉ ̣ ̀ ̉ ̃ lênh cua chương trinh đêu phai tôn thơi gian giai ma. Để khăc phuc nhươc điêm nay ̣ ̉ ̀ ̀ ̉ ́ ̉ ̃ ́ ̣ ̉ ̀ ngươi ta chế tao ra cac CPU không có đơn vị điêu khiên, cac tin hiêu cho phep cac khôi ̣ ́ ̀ ̉ ́ ́ ̣ ́ ́ ́ chưc năng bên trong CPU hoat đông sẽ đươc lây trưc tiêp tư mã lênh. Khi đó để đam ̣ ̣ ́ ́ ̣ ̉ bao mã lênh không quá dai số lênh thưc hiên đươc cua CPU loai nay it hơn loai truyên ̉ ̣ ̀ ̣ ̣ ̉ ̣ ̀ ́ ̣ ̀ thông rât nhiêu, tuy nhiên nó vân đủ để thưc hiên tât cả cac công viêc, cac lênh phưc tap ́ ́ ̀ ̃ ̣ ́ ́ ̣ ́ ̣ ̣ sẽ đươc thưc hiên băng cac thuât toan thich hơp tư cac lênh đơn gian. Cac CPU loai ̣ ̀ ́ ̣ ́ ́ ́ ̣ ̉ ́ ̣ nay đươc goi là cac CPU có tâp lênh rut gon RISC (Reduce Instruction Set Computer). ̀ ̣ ́ ̣ ̣ ́ ̣ Con cac CPU có đơn vị điêu khiên như đã mô tả ơ trên đươc goi là cac CPU có tâp ̀ ́ ̀ ̉ ̣ ́ ̣ lênh đây đủ CISC (Complex Instruction Set Computer). ̣ ̀ 2.2.3. Bộ điêu khiên BUS. ̀ ̉ Bộ điêu khiên BUS nhân tin hiêu cho phep hoat đông tư bộ giai mã lênh. Nó đinh thơi ̀ ̉ ̣ ́ ̣ ́ ̣ ̣ ̉ ̣ ̣ cac tin hiêu đia chi, dư liêu và điêu khiên để cac CPU liên lac vơi thế giơi bên ngoai. ́ ́ ̣ ̣ ̉ ̣ ̀ ̉ ́ ̣ ̀ Thông thương bộ điêu khiên BUS đươc chia thanh 3 phân: Bộ kiêm soat đia chi, bộ ̀ ̉ ̀ ̀ ̉ ́ ̣ ̉ kiêm soat dư liêu và bộ đinh thơi cac tin hiêu điêu khiên. ̉ ́ ̣ ̣ ́ ́ ̣ ̀ ̉ 25
  12. Bât cư môt lênh truy câp bộ nhơ vao/ra nao cung cân cung câp đây đủ ba nhom tin hiêu ́ ̣ ̣ ̣ ̀ ̀ ̃ ̀ ́ ̀ ́ ́ ̣ đia chi, dư liêu và điêu khiên. Đia chỉ tư môt thanh ghi đia chỉ bộ nhơ hay lây trưc tiêp ̣ ̉ ̣ ̀ ̉ ̣ ̣ ̣ ́ ́ tư mã lênh trươc tiên đươc cung câp lên Bus nôi (Internal Bus) đưa tơi bộ đêm đia chi, ̣ ́ ̣ ̣ ̣ ̉ sau đó theo đinh thơi cua tưng lênh bộ đêm nay sẽ đươc mơ để cung câp đia chỉ ra Bus ̣ ̉ ̣ ̣ ̀ ́ ̣ đia chỉ bên ngoai xac đinh bộ nhơ vao ra lam viêc vơi CPU. Chú ý răng bộ đêm đia chỉ ̣ ̀ ́ ̣ ̀ ̀ ̣ ̀ ̣ ̣ có môt chiêu truyên ra. Tương tư như vây vơi bộ kiêm soat dư liêu, chỉ khac là bộ đêm ̣ ̀ ̀ ̣ ̉ ́ ̣ ́ ̣ dư liêu là hai chiêu, hoăc mơ cho dư liêu tư ngoai đi vao Bus nôi trong cac chu kỳ đoc, ̣ ̀ ̣ ̣ ̀ ̀ ̣ ́ ̣ hoăc mơ cho dư liêu tư Bus nôi cung câp ra bên ngoai trong cac chu kỳ ghi. Tuỳ theo ̣ ̣ ̣ ́ ̀ ́ lênh truy câp là đoc hay ghi mà cac tin hiêu điêu khiên sẽ đươc đinh thơi cung câp ra ̣ ̣ ̣ ́ ́ ̣ ̀ ̉ ̣ ́ bên ngoai môt cach thich hơp. Ngoai ra BIU con nhân cac tin hiêu điêu khiên cung câp ̀ ̣ ́ ́ ̀ ̀ ̣ ́ ́ ̣ ̀ ̉ ́ tư bên ngoai để thưc hiên môt số chu kỳ truy xuât đăc biêt khac như ngăt, DMA…. ̀ ̣ ̣ ́ ̣ ̣ ́ ́ 2.2.4. Đơn vị số hoc và logic ALU : (Arithmetic Logic Unit). ̣ Đơn vị số hoc và logic (ALU) là môt bộ phân quan trong trong CPU để thưc hiên cac ̣ ̣ ̣ ̣ ̣ ́ phep toan số hoc và logic bao gôm: ́ ́ ̣ ̀ Phep toan ́ ́ Dang lênh gơi nhơ ̣ ̣ Ý nghia lênh̃ ̣ Công ̣ ADD M Công số M vơi Acc ̣ Trư SUB M Trư Acc đi M Nhân MUL M Nhân Acc vơi M Chia DIV M Chia Acc cho M And AND M And Acc vơi M Or OR M Or Acc vơi M Xor XOR M Xor Acc vơi M Not NOT Đao Acc ̉ ̣ Dich trai ́ SHL ̣ Dich trai Acc ́ ̣ Dich phai ̉ SHR ̣ Dich phai Acc ̉ Quay trai ́ RRL Quay trai Acc ́ Quay phai ̉ RRR Quay phai Acc ̉ Dich phai số hoc ̣ ̉ ̣ ASR Dich phai số hoc Acc ̣ ̉ ̣ Khi CPU thưc hiên cac bai toan thưc tê, chương trinh phai có cac hương giai quyêt ̣ ́ ̀ ́ ́ ̀ ̉ ́ ̉ ́ vơi cac điêu kiên khac nhau băng cac lênh nhay. Trươc khi thưc hiên cac lênh nhay, ́ ̀ ̣ ́ ̀ ́ ̣ ̉ ̣ ́ ̣ ̉ chương trinh thương thưc hiên cac lênh so sanh để thiêt lâp cac bit cua thanh ghi cơ. ̀ ̣ ́ ̣ ́ ́ ̣ ́ ̉ Cac lênh so sanh và nhay cung đươc ALU đam nhiêm. Cac lênh nay đươc viêt như ́ ̣ ́ ̉ ̃ ̉ ̣ ́ ̣ ̀ ́ ̉ trong bang sau: ̣ Lênh Dang lênh gơi nhơ ̣ ̣ Ý nghia lênh ̃ ̣ ́ So sanh CMP M So sanh Acc vơi M, lâp cơ EQ nêu ́ ̣ ́ băng, lâp cơ GT nêu M>Acc. ̀ ̣ ́ ̉ Nhay Jxx L Thưc hiên lênh tai nhan L nêu điêu kiên ̣ ̣ ̣ ̃ ́ ̀ ̣ thoả man: ̃ JGT: nhay nêu lơn hơn ̉ ́ JGE: nhay nêu lơn hơn hoăc băng. ̉ ́ ̣ ̀ JEQ: nhay nêu băng ̉ ́ ̀ JLE: nhay nêu nhỏ hơn hoăc băng ̉ ́ ̣ ̀ JLT: nhay nêu nhỏ hơn ̉ ́ 26
  13. ̉ ́ ̀ JNE: nhay nêu không băng. Ngoai ra con môt số lênh di chuyên dư liêu trong hệ thông vi xư lý tac đông tơi ALU ̀ ̀ ̣ ̣ ̉ ̣ ́ ́ ̣ như: ̣ Lênh Dang gơi nhơ ̣ Ý nghia cua lênh ̃ ̉ ̣ Nap ̣ LDA M Nap giá trị M vao Acc. ̣ ̀ ̉ ̉ Chuyên đôi EX M Chuyên đôi giá trị giư M và Acc. ̉ ̉ Xoá CLA Xoá Acc Trong thưc tế cac loai CPU cua cac hang khac nhau, sẽ có cac lênh vơi cach viêt gơi ́ ̣ ̉ ́ ̃ ́ ́ ̣ ́ ́ nhơ khac nhau. ́ • Câu truc ALU. ́ ́ Trong cac bai toan cac phep toan cân thưc hiên, có thể bao gôm hai toan hang (như ́ ̀ ́ ́ ́ ́ ̀ ̣ ̀ ́ ̣ công ) hoăc môt toan hang (not). Phep toan môt số con goi là phep toan đơn (monadic ̣ ̣ ̣ ́ ̣ ́ ́ ̣ ̀ ̣ ́ ́ operation), phep toan hai số goi là phep toan hai ngôi (dyadic operation). Để thưc hiên ́ ́ ̣ ́ ́ ̣ cac phep toan trên ALU có câu truc như hinh vẽ 2.6. ́ ́ ́ ́ ́ ̀ ALU nôi vơi BUS hệ thông băng hai nhom đương. Nhom bên phai chỉ sư dung để nhâp ́ ́ ̀ ́ ́ ̉ ̣ ̣ dư liêu vao ALU, nhom nay thương đươc sư dung để đưa môt toan hang vao ALU ̣ ̀ ́ ̀ ̣ ̣ ́ ̣ ̀ trong cac phep toan. Nhom bên trai đươc nôi vơi thanh chưa Acc và tư thanh chưa nôi ́ ́ ́ ́ ́ ́ ́ ra BUS hệ thông. Nhom tin hiêu nay có thể là vao hoăc ra. Thanh chưa đươc sư dung ́ ́ ́ ̣ ̀ ̀ ̣ ̣ ́ cho cac công viêc: ̣ - Giư toan hang thư hai trong cac phep toan hai ngôi. ́ ̣ ́ ́ ́ - Giư toan hang duy nhât trong cac phep toan đơn . ́ ̣ ́ ́ ́ ́ - Giư kêt quả cua cac phep toan . ́ ̉ ́ ́ ́ Môt số CPU không có thanh chưa mà sư dung bộ nhơ tam thơi là môt thanh ghi ngoai ̣ ̣ ̣ ̣ ̀ ALU, cac loai nay không phổ biên lăm nên ta xem xet Acc như môt phân cua ALU. ́ ̣ ̀ ́ ́ ́ ̣ ̀ ̉ ̣ Bus nôi Acc ́ ́ ̣ Cac tin hiêu Cac ham số cơ ban ́ ̀ ̉ ̣ chon ham̀ Flags ̀ ́ ́ Hinh 2.6: Câu truc ALU. 2.3. CÂU TRUC CUA CAC BỘ VI XƯ LÝ CÔNG NGHỆ CAO. ́ ́ ̉ ́ Trong thâp kỷ 90 và cho tơi ngay nay viêc cai tiên về tôc độ và câu truc vi xư lý có cac ̣ ̀ ̣ ̉ ́ ́ ́ ́ ́ bươc tiên vươt bâc. Để nâng cao tôc độ tinh toan vơi nhu câu đa phương tiên, đa ́ ̣ ́ ́ ́ ̀ ̣ nhiêm hang loat bộ vi xư lý mơi ra đơi vơi công nghệ cao, cac kỹ thuât mơi và có thêm ̣ ̀ ̣ ́ ̣ cac khôi chưc năng chuyên dung. Sơ đồ khôi tông quat cho cac bộ vi xư lý nay có thể ́ ́ ̣ ́ ̉ ́ ́ ̀ 27
  14. biêu diên trên hinh 2.7. Sơ đồ nay không chỉ thị cho môt bộ vi xư lý cụ thê, tuy nhiên nó ̉ ̃ ̀ ̀ ̣ ̉ bao gôm cac đăc trưng chinh cua tât cả cac bộ vi xư lý hiên đai. ̀ ́ ̣ ́ ̉ ́ ́ ̣ ̣ Hâu hêt cac bộ vi xư lý hiên đai có 32 bit dư liêu, nhưng môt số vi xư lý có số đương ̀ ́ ́ ̣ ̣ ̣ ̣ dư liêu là bôi số cua 32. Ngoai ra con có cac vi xư lý truy câp dư liêu băng nhiêu BUS ̣ ̣ ̉ ̀ ̀ ́ ̣ ̣ ̀ ̀ 32 bit, hoăc nhiêu BUS 64 bit khac nhau. Trong cac vi xư lý 32 bit, thông thương đơn ̣ ̀ ́ ́ vị xư lý số nguyên (IU – Integer Unit) là 32 bit và cac thanh ghi trong tâp thanh ghí ̣ (RF) cung là 32 bit. Cac vi xư lý 64 bit ngay cang nhiêu trên thị trương, trong cac bộ vi ̃ ́ ̀ ̀ ̀ ́ xư lý nay thương có cac thanh ghi 64 bit. ̀ ́ Bus đia chỉ cua hâu hêt cac bộ vi xư lý hiên đai thương là 32 bit để truy câp trưc tiêp ̣ ̉ ̀ ́ ́ ̣ ̣ ̣ ́ 2 ô nhơ, cung có môt số vi xư lý có số đương đia chỉ nhiêu hơn, khi đó BUS nôi cua 32 ̃ ̣ ̣ ̀ ̣ ̉ nó cung nhiêu hơn 32 bit. ̃ ̀ Data Prefetch Unit and Instruction Decoding Bus Queue Unit Bus Instruction Cache Branch Interface (Icache) Target Address Bus Unit Control Unit (BIU) Data Cache Cache (CU) (Dcache) (BTC) Control Bus Memory Manage- ment Units Internal Bus (MMU) IU FPU Integer Register Floating Point File Register File (FRF) Special (IRF) Function Units Integer Floating Point (SFU) Operation Units Operation Units Hinh 2.7: Sơ đồ khôi cua cac bộ vi xử lý hiên đai. ̀ ́ ̉ ́ ̣ ̣ Tới Prefetch Unit Data Interface Tới Cache Data Bus 2.3.1. Đơn vị giao tiêp BUS (BIU). ́ Address Interface MMU Address Bus Control Tới CU Control Bus Interface Internal Bus 28 Hinh 2.8: Đơn vị giao tiêp BUS (BIU) ̀ ́
  15. Đơn vị giao tiêp BUS là hệ thông bộ đêm để kiêm soat cac tin hiêu giưa cac khôi bên ́ ́ ̣ ̉ ́ ́ ́ ̣ ́ ́ trong vi xư lý vơi cac hệ thông bên ngoai. Sơ đồ khôi cua môt bộ BIU biêu diên trên ́ ́ ̀ ́ ̉ ̣ ̉ ̃ hinh 2.8, nó đươc chia thanh 3 phân chinh la: ̀ ̀ ̀ ́ ̀ - Giao tiêp dư liêu. ́ ̣ - Giao tiêp đia chi. ́ ̣ ̉ - Giao tiêp điêu khiên. ́ ̀ ̉ Khôi giao tiêp dư liêu có nhiêm vụ kêt nôi BUS dư liêu cua hệ thông vơi cac khôi bên ́ ́ ̣ ̣ ́ ́ ̣ ̉ ́ ́ ́ trong vi xư ly. Thông thương dư liêu truyên giưa giao tiêp dư liêu và cac khôi khac bên ́ ̣ ̀ ́ ̣ ́ ́ ́ trong vi xư lý thông qua BUS nôi. Nhưng cung có môt số đương truyên khac, như trên ̣ ̃ ̣ ̀ ́ hinh vẽ khôi giao tiêp dư liêu truyên trưc tiêp vơi cac khôi như đơn vị tiên đoc lênh và ̀ ́ ́ ̣ ̀ ́ ́ ́ ̀ ̣ ̣ hang đơi lênh (PUIQ) và vơi bộ nhơ cache. ̀ ̣ Khôi giao tiêp dư liêu có nhiêm vụ kiêm soat cac đia chỉ cung câp ra bên ngoai. Cac đia ́ ́ ̣ ̣ ̉ ́ ́ ̣ ́ ̀ ́ ̣ chỉ thông thương đươc tao ra bơi đơn vị quan lý bộ nhơ (MMU), vì vây MMU đươc ̣ ̉ ̣ nôi trưc tiêp tơi khôi giao tiêp đia chi. ́ ́ ́ ́ ̣ ̉ Khôi giao tiêp điêu khiên thưc hiên viêc gưi và nhân môt số tin hiêu trang thai và điêu ́ ́ ̀ ̉ ̣ ̣ ̣ ̣ ́ ̣ ̣ ́ ̀ khiên tư CPU cung câp ra hệ thông bên ngoai và tư cac thiêt bị bên ngoai cung câp cho ̉ ́ ́ ̀ ́ ́ ̀ ́ vi xư ly. Hâu hêt cac đương điêu khiên cua giao tiêp điêu khiên đươc nôi tơi đơn vị ́ ̀ ́ ́ ̀ ̉ ̉ ́ ̀ ̉ ́ điêu khiên (CU), tât nhiên CU con đươc kêt nôi tơi cac khôi khac bên trong vi xư ly. ̀ ̉ ́ ̀ ́ ́ ́ ́ ́ ́ Cac tin hiêu điêu khiên cung câp tư trong ra chỉ thị cac trang thai hoat đông bên trong ́ ́ ̣ ̀ ̉ ́ ́ ̣ ́ ̣ ̣ cua vi xư ly, cac tin hiêu tich cưc thông bao cho bộ nhơ và vao/ra trong cac chu kỳ đoc ̉ ́ ́ ́ ̣ ́ ́ ̀ ́ ̣ ghi dư liêu, chỉ thị sư khac nhau trong cac chế độ truy câp, cac chế độ đia chi, châp ̣ ́ ́ ̣ ́ ̣ ̉ ́ nhân cac yêu câu ngăt, cac yêu câu về Bus …. Cac tin hiêu cung câp tư bên ngoai chỉ thị ̣ ́ ̀ ́ ́ ̀ ́ ́ ̣ ́ ̀ trang thai cua cac thiêt bi, thông bao cho vi xư lý nhân biêt cac trương hơp Bus lôi, ̣ ́ ̉ ́ ́ ̣ ́ ̣ ́ ́ ̃ nhân cac yêu câu ngăt hoăc yêu câu về Bus cua cac thiêt bị bên ngoai, nhân biêt viêc ̣ ́ ̀ ́ ̣ ̀ ̉ ́ ́ ̀ ̣ ́ ̣ hoan tât môt chu kỳ Bus, nhân tin hiêu yêu câu câm bộ nhơ cache nôi…. Số lương, cơ ̀ ́ ̣ ̣ ́ ̣ ̀ ́ ̣ chế hoat đông cua cac tin hiêu điêu khiên cua cac CPU khac nhau có thể khac nhau. ̣ ̣ ̉ ́ ́ ̣ ̀ ̉ ̉ ́ ́ ́ 2.3.2. Khôi tiên đoc lênh và hang đơi lênh. (PUIQ) ́ ̀ ̣ ̣ ̀ ̣ PUIQ bao gôm cac mach logic thưc hiên viêc đoc trươc cac lênh tư Icache và săp ̀ ́ ̣ ̣ ̣ ̣ ́ ̣ ́ chung vao hang đơi lênh FIFO. Môt hang đơi lênh thông thương có tư 8 tơi 32 byte. ́ ̀ ̀ ̣ ̣ ̀ ̣ Lênh săp ơ trên cung sẽ đươc chuyên tơi đơn vị giai mã lênh (DU - Decoder Unit). DU ̣ ́ ̀ ̉ ̉ ̣ sẽ giai mã cac lênh và truyên cac tin hiêu điêu khiên thich hơp tơi CU. Hâu hêt cac bộ ̉ ́ ̣ ̀ ́ ́ ̣ ̀ ̉ ́ ̀ ́ ́ vi xư lý hiên đai ngay nay đêu có câu truc siêu hương (superscalar), câu truc nay cho ̣ ̣ ̀ ̀ ́ ́ ́ ́ ̀ phep nhiêu lênh không tranh châp có thể thưc hiên môt cach đông thơi. ́ ̀ ̣ ́ ̣ ̣ ́ ̀ 2.3.3. Khôi chưc năng đăc biêt. ́ ̣ ̣ 29
  16. Để tăng tôc độ xư lý cho cac nhu câu đa phương tiên, môt số vi xư lý có cac khôi chưc ́ ́ ̀ ̣ ̣ ́ ́ năng chuyên dung năm trong khôi cac chưc năng đăc biêt (SFU – Special Function ̣ ̀ ́ ́ ̣ ̣ Unit). Môt SFU thông thương có cac khôi chưc năng sau: ̣ ́ ́ - Khôi đồ hoạ (Graphics Unit). ́ - Khôi xư lý tin hiêu (Signal processing Unit). ́ ́ ̣ - Khôi xư lý anh (Image Processing Unit). ́ ̉ - Khôi xư lý ma trân và vector (Vector and Matrix Processor). ́ ̣ Môt số bộ vi xư lý có nhiêu hơn môt SFU, vơi nhiêu bộ SFU sẽ giam thiêu thơi gian ̣ ̀ ̣ ̀ ̉ ̉ trễ trong giao tiêp giưa giao tiêp cua SFU vơi cac khôi khac lam tăng tôc độ hoat đông ́ ́ ̉ ́ ́ ́ ̀ ́ ̣ ̣ cua toan bộ hệ thông vơi cac nhu câu đa phương tiên ngay môt tăng cao. ̉ ̀ ́ ́ ̀ ̣ ̀ ̣ 2.3.4. Bộ nhơ cache. Bộ nhơ cache là bộ nhơ có tôc độ truy xuât rât nhanh năm giưa CPU và bộ nhơ chinh ́ ́ ́ ̀ ́ (main memory). Dư liêu sẽ đươc truyên theo tưng khôi tư bộ nhơ chinh tơi cache săn ̣ ̀ ́ ́ ̃ sang cung câp cho CPU. Vơi bộ nhơ cache có kich thươc hơp lý sẽ cho phep cai thiên ̀ ́ ́ ́ ̉ ̣ hiêu suât cua toan bộ hệ thông, vì nhơ có nó mà CPU có thể truy câp dư liêu nhanh hơn ̣ ́ ̉ ̀ ́ ̣ ̣ nhiêu so vơi viêc truy câp trong bộ nhơ chinh. Gân như tât cả cac bộ vi xư lý hiên nay ̀ ̣ ̣ ́ ̀ ́ ́ ̣ đêu có câu truc đương ông (Pipeline), vơi câu truc nay cho phep thưc hiên đông thơi ̀ ́ ́ ́ ́ ́ ̀ ́ ̣ ̀ nhiêu lênh tai cung môt thơi điêm. Vì vây trong khi CPU đang thưc hiên môt chu kỳ ̀ ̣ ̣ ̀ ̣ ̉ ̣ ̣ ̣ lênh, nó có thể đông thơi truy câp bộ nhơ để lây dư liêu cho môt lênh khac. Nêu chỉ có ̣ ̀ ̣ ́ ̣ ̣ ̣ ́ ́ môt bộ nhơ cache thì rõ rang viêc truy câp đông thơi như mô tả ơ trên sẽ không thưc ̣ ̀ ̣ ̣ ̀ hiên đươc. Do đó trong hâu hêt cac bộ vi xư lý hiên đai đêu có hai bộ nhơ cache đươc ̣ ̀ ́ ́ ̣ ̣ ̀ sư dung riêng cho mã lênh (Icache) và dư liêu thông thương (Dcache). Thông thương ̣ ̣ ̣ hai loai cache nay có dung lương giông nhau, nhưng trong môt số vi xư lý chung có ̣ ̀ ́ ̣ ́ dung lương khac nhau. Cache nhân thông tin tư bộ nhơ chinh thông qua Bus dư liêu và ́ ̣ ́ ̣ BIU sẽ chỉ đinh kich thươc khôi dư liêu trong môi lân truy câp cua cache. Trong hâu hêt ̣ ́ ́ ̣ ̃ ̀ ̣ ̉ ̀ ́ cac bộ vi xư lý hiên đai kich thươc nay là 16 hoăc 32 byte. Icache thương đươc nôi ́ ̣ ̣ ́ ̀ ̣ ́ trưc tiêp tơi khôi tiên đoc lênh (Prefetch Unit), nó có thể truyên tơi khôi nay môt hoăc ́ ́ ̀ ̣ ̣ ̀ ́ ̀ ̣ ̣ nhiêu lênh trong môt chu ky. Trong nhiêu bộ vi xư ly, Dcache đươc nôi tơi cac khôi xư ̀ ̣ ̣ ̀ ̀ ́ ́ ́ ́ lý dư liêu băng môt Bus riêng goi là ODB (operation data bus) như trên hinh 2.9. ODB ̣ ̀ ̣ ̣ ̀ có độ rông đủ lơn (128 hoăc 256 bit) để có thể cung câp nhiêu toan hang tai cung môt ̣ ̣ ́ ̀ ́ ̣ ̣ ̀ ̣ thơi điêm, điêu nay sẽ lam tăng tôc độ hoat đông cua hệ Secondary cache ̉ ̀ ̀ ̀ ́ ̣ ̣ ̉ thông.́ Secondary cache control logic Instruction Cache Tới Prefetch Unit (Dcache) Internal Bus BIU Data Cache IU FPU SFU (Dcache) ODB 30 Hinh 2.9: Bộ nhớ cache trong vi xử ly. ̀ ́
  17. Nhiêu vi xư lý hiên đai có thiêt kế thêm cache ngoai (cache thư câp - secondary cache). ̀ ̣ ̣ ́ ̀ ́ Cache bên trong con đươc goi là cache sơ câp. Cache ngoai năm giưa bộ nhơ chinh và ̀ ̣ ́ ̀ ̀ ́ cache nôi trong phân câp bộ nhơ, nó có thơi gian truy câp nhanh hơn so vơi bộ nhơ ̣ ́ ̣ chinh và thương có dung lương lơn hơn cache nôi. Vơi cache ngoai hiêu suât hệ thông ́ ̣ ̀ ̣ ́ ́ đươc cai thiên vì bộ nhơ nay cho phep CPU truy câp dư liêu trong môt bộ nhơ có tôc ̉ ̣ ̀ ́ ̣ ̣ ̣ ́ độ cao và dung lương tương đôi lơn. Môt số vi xư lý có bộ điêu khiên và giao tiêp ́ ̣ ̀ ̉ ́ logic nôi trưc tiêp vơi cache ngoai như hinh 2.9. Dung lương cua cache ngoai có thể ́ ́ ̀ ̀ ̉ ̀ lên tơi vai Mbytes. ̀ Môt số vi xư lý hiên đai con có bộ nhơ cache phân nhanh đich (BTC – Branch Target ̣ ̣ ̣ ̀ ́ ́ Cache). Trong môt hệ thông đương ông (pipeline), khi môt nhanh lênh có xung đôt thì ̣ ́ ́ ̣ ́ ̣ ̣ cac lênh thuôc nhanh đó cân đươc lây ra ngoai đương ông, và cac lênh đich (năm đâu ́ ̣ ̣ ́ ̀ ́ ̀ ́ ́ ̣ ́ ̀ ̀ tiên trong nhanh đươc thưc hiên) cân đươc lây vao đương ông. Nêu lênh đich năm ́ ̣ ̀ ́ ̀ ́ ́ ̣ ́ ̀ ngoai bộ nhơ, CPU sẽ phai thưc hiên chu kỳ trễ trong quá trinh thưc hiên lênh, con nêu ̀ ̉ ̣ ̀ ̣ ̣ ̀ ́ lênh đich đâu tiên năm trong BTC chung sẽ đươc đây vao đương ông nhanh chong ̣ ́ ̀ ̀ ́ ̉ ̀ ́ ́ hơn. Như vây BTC cung lam tăng tôc độ cua hệ thông. Trong môt số vi xư lý BTC ̣ ̃ ̀ ́ ̉ ́ ̣ không chưa cac lênh đich mà chỉ chưa đia chỉ cua lênh đich. ́ ̣ ́ ̣ ̉ ̣ ́ Icache 32 i Prefetch Unit 32 i Decoding Unit Pipeline Pipeline Pipeline Operation Operation Operation ……………… Unit 1 Unit 2 Unit n Hinh 2.10: Xử lý lênh theo kiên truc siêu hướng. ̀ ̣ ́ ́ Trong hâu hêt cac vi xư lý hiên đai đêu có đăc tinh xư lý lênh song song (ILP – ̀ ́ ́ ̣ ̣ ̀ ̣ ́ ̣ Instruction Level Parallelism), đăc tinh nay đươc thưc hiên băng câu truc siêu hương ̣ ́ ̀ ̣ ̀ ́ ́ (superscalar). Trong câu truc nay khôi tiên đoc lênh sẽ gưi đông thơi i lênh tơi bộ giai ́ ́ ̀ ́ ̀ ̣ ̣ ̀ ̣ ̉ mã lênh như mô tả trên hinh 2.10. Sau đó bộ điêu khiên (CU) sẽ tao ra cac chỉ thị cho ̣ ̀ ̀ ̉ ̣ ́ môt số đương ông thưc hiên. Hiêu suât thưc hiên lênh sẽ cao nhât khi số đương ông ̣ ́ ̣ ̣ ́ ̣ ̣ ́ ́ đung băng số lênh gưi tơi để có thể thưc hiên đông thơi i lênh cung môt thơi điêm. ́ ̀ ̣ ̣ ̀ ̣ ̀ ̣ ̉ Trong thưc tế điêu kiên nay không phai luc nao cung có thể thưc hiên đươc, do cac giơi ̀ ̣ ̀ ̉ ́ ̀ ̃ ̣ ́ han cua vung ban dân không phai luc nao cung đap ưng đươc sư hoat đông cua cac ̣ ̉ ̀ ́ ̃ ̉ ́ ̀ ̃ ́ ̣ ̣ ̉ ́ khôi trên cung môt chip, và cac bai toan thưc tế cung không cân thiêt yêu câu cac khôi ́ ̀ ̣ ́ ̀ ́ ̃ ̀ ́ ̀ ́ ́ luôn đông thơi hoat đông tai tât cả cac thơi điêm. Vì vây trong thưc tế thương có cac ̀ ̣ ̣ ̣ ́ ́ ̉ ̣ ́ đương ông ngưng hoat đông do cac nguyên nhân như: dư liêu cân xư lý cua lênh trong ́ ̣ ̣ ́ ̣ ̀ ̉ ̣ ông tuỳ thuôc vao kêt quả cua lênh sau no, hoăc cac lênh điêu khiên rẽ nhanh con tuỳ ́ ̣ ̀ ́ ̉ ̣ ́ ̣ ́ ̣ ̀ ̉ ́ ̀ 31
  18. thuôc vao cac lênh chưa đươc thưc hiên trong môt đương ông khac, điêu nay sẽ lam ̣ ̀ ́ ̣ ̣ ̣ ́ ́ ̀ ̀ ̀ cho viêc xư lý lênh trong ông trễ lai. ̣ ̣ ́ ̣ Khôi điêu khiên CU trong cac vi xư lý có thể là cac mach điên tư nôi cưng hoăc có thể ́ ̀ ̉ ́ ́ ̣ ̣ ́ ̣ lâp trinh đươc. Cac CPU loai CISC thương có CU lâp trinh đươc, con cac CPU loai ̣ ̀ ́ ̣ ̣ ̀ ̀ ́ ̣ RISC thương có CU nôi cưng để tăng tôc độ xư lý lênh cung như để thưc hiên hâu hêt ́ ́ ̣ ̃ ̣ ̀ ́ cac lênh chỉ trong môt chu ky. ́ ̣ ̣ ̀ 2.3.5. Khôi xư lý số nguyên (Integer Unit). ́ Hinh 2.11 mô tả câu truc cua môt IU, để thưc hiên đông thơi nhiêu phep tinh tai cung ̀ ́ ́ ̉ ̣ ̣ ̀ ̀ ́ ́ ̣ ̀ môt thơi điêm IU sẽ có nhiêu mach công/trư nhân/chia. Để cung câp dư liêu trong IU ̣ ̉ ̀ ̣ ̣ ́ ̣ có cac thanh ghi (IRF – IU Register File) vơi dung lương thông thương là bôi số cua 32 ́ ̣ ̉ hoăc 64 (tuỳ thuôc vao loai CPU là 32 hay 64 bit). Cac CPU loai CISC thương có 8 tơi ̣ ̣ ̀ ̣ ́ ̣ 16 thanh ghi, con cac CPU loai RISC thương có it nhât 32 thanh ghi, có môt số CPU ̀ ́ ̣ ́ ́ ̣ loai RISC có tơi 100 thanh ghi. Dư liêu thương chuyên tơi cac khôi trong IU theo hai ̣ ̣ ̉ ́ ́ đương. Bộ tao cac tin hiêu giai mã lênh sẽ nhân cac chỉ thị tư CU và trưc tiêp chon ra ̣ ́ ́ ̣ ̉ ̣ ̣ ́ ́ ̣ cac khôi hoat đông thich hơp cho tưng lênh. Vơi cac lênh xư lý số nguyên sẽ nó sẽ đưa ́ ́ ̣ ̣ ́ ̣ ́ ̣ chỉ thị chon mach tơi IU, cac lênh xư lý dâu phây đông sẽ chỉ thị tơi FPU, con cac chưc ̣ ̣ ́ ̣ ́ ̉ ̣ ̀ ́ năng đăc biêt sẽ đươc chỉ thị tơi SFU. Dư liêu cân xư lý sẽ đươc đưa tơi khôi đươc ̣ ̣ ̣ ̀ ́ chon thông qua ODB như trinh bay trên hinh 2.11. Hâu hêt cac CPU đêu có bộ dich ̣ ̀ ̀ ̀ ̀ ́ ́ ̀ ̣ vong (barrel shift) để thưc hiên cac lênh dich nhiêu bit chỉ trong môt chu kỳ may. ̀ ̣ ́ ̣ ̣ ̀ ̣ ́ Control Unit (CU) Decoded Instruction Internal Bus Dispatcher Tới FPU … ̣ hoăc SFU Add/ … Add/ Mul/ … Div k Mul/ IRF Sub 1 Sub j Div i … Control Unit (CU) … Internal Bus Internal Bus Decoded Instruction Dispatcher Tới IU hoăc ́ ́ … Dcache 2.3.6. ̣ Khôi xư lý dâu phây đông. ̉ ̣ Barrel Shifter SFU FAdd/ FSub1 Hinh FSub j FDiv i … FAdd/2.11: Khôi xử lý số nguyên.. ̀ FMul/́ FMul/ FDiv k FSQRT … FRF … … Internal Bus Dcache 32 Hinh 2.12: Khôi xử lý dâu phây đông. ̀ ́ ́ ̉ ̣
  19. FPU có câu truc tương tư như IU như biêu diên trên hinh 2.12, cac dư liêu cung đươc ́ ́ ̉ ̃ ̀ ́ ̣ ̃ truyên tơi cac khôi mach tương tư như đã mô tả đôi vơi IU. FPU cung có tâp thanh ghi ̀ ́ ́ ̣ ́ ̃ ̣ riêng (FRF – Floating Point Register File), thông thương vơi CPU loai CISC số lương ̣ thanh ghi trong FRF là 8, con đôi vơi CPU loai RISC là 32. Cac bộ FRF trong cac CPU ̀ ́ ̣ ́ ́ hiên đai thương đươc thiêt kế theo chuân IEEE81 và IEEE85, tưc là 32 bit cho độ ̣ ̣ ́ ̉ chinh xac đơn (single – precision) và 64 bit cho độ chinh xac kep (double – precision). ́ ́ ́ ́ ́ Vì vây nên cac thanh ghi trong FRF thương là 64 bit ngay cả đôi vơi cac CPU 32 bit. ̣ ́ ́ ́ Môt số CPU có dang dâu phây đông mơ rông lên tơi 80 bit, khi đó cac thanh ghi FRF ̣ ̣ ́ ̉ ̣ ̣ ́ cung phai có dung lương 80 bit. Cac chuân cua DEC Alpha và VAX về dâu phây đông ̃ ̉ ́ ̉ ̉ ́ ̉ ̣ cung hoan toan tương đương vơi cac chuân IEEE đã nêu trên. ̃ ̀ ̀ ́ ̉ 2.3.7. Khôi quan lý bộ nhơ (MMU – Memory Management Unit). ́ ̉ Cac chưc năng cơ ban cua MMU bao gôm: ́ ̉ ̉ ̀ 1. Chuyên đôi đia chỉ ao (logic) thanh đia chỉ thưc (đia chỉ vât ly), sau đó truyên cac ̉ ̉ ̣ ̉ ̀ ̣ ̣ ̣ ́ ̀ ́ đia chỉ vât lý tơi cache hoăc thông qua BIU và Bus đia chỉ tơi cac thiêt bị bên ngoai. ̣ ̣ ̣ ̣ ́ ́ ̀ 2. Tao nên cơ câu phân trang trong chế độ bộ nhơ ao. ̣ ́ ̉ 3. Tao nên cơ chế phân đoan trong khôi phân đoan đia chi. ̣ ̣ ́ ̣ ̣ ̉ 4. Thưc hiên chế độ bao vệ bộ nhơ trong cả hai cơ chế phân trang và phân đoan. ̣ ̉ ̣ 5. Thưc hiên và quan lý môt bộ đêm chuyên đôi đia chỉ (TLB - Translation Lookaside ̣ ̉ ̣ ̣ ̉ ̉ ̣ Buffer) truy câp nhanh, hoăc môt bộ chuyên đôi đia chỉ cache (ATC - Address ̣ ̣ ̣ ̉ ̉ ̣ Translation Cache) cho viêc chuyên đôi số trang tư đia chỉ ao thanh đia chỉ vât ly. ̣ ̉ ̉ ̣ ̉ ̀ ̣ ̣ ́ Từ Prefetch Unit Tới Icache Tới BIU Internal Bus Translation Lookaside Paging Segmentation Buffer (TLB) Unit Unit Từ IU Sơ đồ khôi cua môt bô ́ ̉ ̣ Hinh 2.13: Khôi quan lý trênnhớ MMU. Trong thưc tế tât cả cac bộ ̣̀ MMU như biêu diên bộ hinh 2.13. ́ ̉ ̉ ̃ ̀ ́ ́ vi xư lý hiên đai đêu có khôi phân trang và môt bộ đêm chuyên đôi môt phia (TLB) ̣ ̣ ̀ ́ ̣ ̣ ̉ ̉ ̣ ́ 33
  20. hoăc khôi chuyên đôi đia chỉ cache (ATC). Chỉ có CPU họ X86 là có môt khôi phân ̣ ́ ̉ ̉ ̣ ̣ ́ đoan. Trong trương hơp môt TLB bị mât, MMU sẽ có cac logic giam sat viêc truy câp ̣ ̣ ́ ́ ́ ́ ̣ ̣ tơi cac bang và cac thư viên trang trong bộ nhơ chinh, và nap TLB vơi số trang bị mât. ́ ̉ ́ ̣ ́ ̣ ́ Môt bộ vi xư lý hiên đai có thể có hang trăm chân kêt nôi, điêu nay cho phep có thể có ̣ ̣ ̣ ̀ ́ ́ ̀ ̀ ́ nhiêu Bus dư liêu, phân biêt riêng cac đương dư liêu và đia chi, phân biêt cac đương ̀ ̣ ̣ ́ ̣ ̣ ̉ ̣ ́ giao tiêp vơi bộ nhơ chinh và cac đương giao tiêp vơi cache thư câp (secondary cache), ́ ́ ́ ́ ́ và có thể có rât nhiêu cac tin hiêu thông bao trang thai và điêu khiên. Môt bộ vi xư lý có ́ ̀ ́ ́ ̣ ́ ́ ̀ ̉ ̣ thể có nhiêu đương câp nguôn và nôi masse năm trên cac phia cua chip, điêu nay cho ̀ ́ ̀ ́ ̀ ́ ́ ̉ ̀ ̀ phep cac đương nôi nguôn và masse bên trong chip ngăn hơn, viêc thiêt kế chip đơn ́ ́ ́ ̀ ́ ̣ ́ gian hơn và vì thế có thể giam đươc giá thanh cua no. Ngoai ra thông thương cac ̉ ̉ ̀ ̉ ́ ̀ ́ đương kêt nôi ngăn hơn sẽ có thơi gian trễ và sư lan truyên tin hiêu ngăn hơn. ́ ́ ́ ̀ ́ ̣ ́ 2.4. CAC VI XƯ LÝ INTEL THẾ HỆ TRƯƠC (8086/8088, 80186, 80286). ́ 2.4.1. Vi xư lý 8086/8088. 1. Sơ đồ khôi và chưc năng cac khôi . ́ ́ ́ Sơ đồ khôi cua 8086/8088 trinh bay trên hinh 2.14 bao gôm hai phân chinh. Đơn vị ́ ̉ ̀ ̀ ̀ ̀ ̀ ́ giao tiêp BUS (BIU -Bus Interface Unit) có chưc năng lây lênh đoc cac toan hang và ghi ́ ́ ̣ ̣ ́ ́ ̣ kêt qua, và đơn vị thưc hiên BUS (EU-Execution Unit) để thưc hiên cac lênh. Hai bộ ́ ̉ External ̣ lênh ̣ ̣ ́ ̣ phân nay hoat đông gân như đôc lâp nhau trong hâu hêt cac trương hơp. BIU thưc hiên ̣ ̀ ̣ ̣ ̀ ̣ ̣ ̀ ́ ́ ̣ viêc lây lênh săp vao hang đơi săn sang cho EU lây, vì thế thơi gian lây lênh và thưc ̣ ́ ̣ ́ ̀ ̀ ̃ ̀ ́ ́ ̣ hiên lênh xay ra môt cach đông thơi. Khi có cac lênh điêu khiên chương trinh, BIU sẽ ̣ ̣ ̉ ̣ ́ ̀ ́ ̣ ̀ ̉ ̀ xoa hang BUS Interfacé cac lênh tai đia chỉ mơi. ́ ̀ đơi lênh để lây ́ ̣ ̣ ̣ ̣ Đơn vị số hoc và logic (ALU- Arithmetic Logic Unit) thưc hiên tât cả cac phep toan ̣ BIU EU ́ ̣ ́ ́ ́ mà chương trinh yêu câu. Thanh ghi cơ sẽ thông bao trang thai cac phep toan mà ALU ̀ ̀ ́ ̣ ́ ́ ́ ́ thưc hiên. ̣ + 6 byte queue ES CS DS Execution Unit Control SS System IP AH AL BH BL ALU CH CL DH DL SP BP Flags SI EU DI 34 Hinh 2.14: Sơ đồ khôi vi xử lý 8086/8088. ̀ ́

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản